Compare commits

...

352 Commits

Author SHA1 Message Date
Denis
6a95d3f4af Preparing next version 2024-09-25 10:54:37 +02:00
Anne-Catherine
330e8f48da N°7801 - Erratic behavior on organization filter (#667) 2024-09-12 14:46:04 +02:00
Eric Espie
2147ae9105 N°7802 - MTP from itophub/designer failing in itop 3.2.0 2024-09-11 17:24:08 +02:00
jf-cbd
0ee1818f12 N°7732 - CSRF protection generating error when cancelling the creation of an object
N°7741 - PDF export on impact analysis not working
2024-08-07 17:56:34 +02:00
Benjamin Dalsass
a4a1fa4ec9 N°7734 - Date time picker button show html icon 2024-08-07 08:32:06 +02:00
Benjamin Dalsass
3d325caa06 N°7734 - Date time picker button show html icon 2024-08-07 07:54:40 +02:00
Molkobain
9b066b3b88 N°7410 - Add hyperlinks to news features 2024-08-05 09:17:51 +02:00
Eric Espie
38041b25fb N°7722 - Fatal error if xml entry "redefine" doesn't exist 2024-07-31 14:42:08 +02:00
Molkobain
3adeea8172 N°7565 - Newsroom: Fix image being too big since latest CSS fixes 2024-07-31 10:38:16 +02:00
Molkobain
10c3641307 N°7720 - PHP 8.1: Fix usage of trim() with null parameter throwing deprecated notice during setup 2024-07-30 16:59:32 +02:00
Molkobain
af9b03cfa5 N°7565 - Fix typo in english entry 2024-07-30 08:59:35 +02:00
DudekArtur
806a2f0597 N°7693 - Update polish translations (#660)
Co-authored-by: Stephen Abello <stephen.abello@combodo.com>
2024-07-26 14:38:54 +02:00
vdumas
0cb9f7ab4f Fix dico typo on "decreasing" 2024-07-25 11:50:19 +02:00
Molkobain
dc6c894cb8 N°7697 - Remove unit test corrupting DB 2024-07-25 10:22:22 +02:00
Molkobain
3fa9b68882 N°7703 - Add reconciliation keys to newsroom action classes 2024-07-25 10:21:06 +02:00
Stephen Abello
0514f889d3 Update portal compiled stylesheet 2024-07-25 09:21:32 +02:00
vdumas
890841a818 N°7565 - Newsroom - dico tooltip 2024-07-24 17:55:09 +02:00
Anne-Catherine
aed71a6335 N°7146 - Fix style not applied in list in the end-users portal in iTop 3.0+ (#635)
* N°7146 - Fix style not applied in list in the end-users portal in iTop 3.0+ - Add Markup in search list in order to use style

* N°7146 - Fix style not applied in list in the end-users portal in iTop 3.0+

* WIP

* Fix link on external Key

* Add new markup

* Update datamodels/2.x/itop-portal-base/portal/src/Controller/ObjectController.php

Co-authored-by: Thomas Casteleyn <thomas.casteleyn@super-visions.com>

---------

Co-authored-by: Thomas Casteleyn <thomas.casteleyn@super-visions.com>
2024-07-24 17:20:13 +02:00
Benjamin Dalsass
c910d35e25 N°7646 - Check performances compared to beginning of 3.2 development
- use highlight js lib minified version
2024-07-24 15:15:23 +02:00
vdumas
0586a77043 Align untranslated dictionnary entries with english 2024-07-24 14:49:25 +02:00
Stephen Abello
b4b032693a Recompile setup css file 2024-07-24 14:24:37 +02:00
Stephen Abello
054fd8798b N°7552 - Move CKEditor from to npm dependencies 2024-07-24 14:20:18 +02:00
vdumas
35a7d907cd N°7685 - Align Calendar invitation presentation to Email and add tooltip 2024-07-24 13:09:58 +02:00
Molkobain
4c66cfe6e3 N°7697 - Fix unit test 2024-07-24 12:18:22 +02:00
Stephen Abello
4360ad6502 N°7698 - Fix plain text value in HTML field being seen empty 2024-07-24 12:01:19 +02:00
Lars Kaltefleiter
841a2474af N°7687 - Update German translations for iTop 3.2 (#656)
* German translations iTop 3.2

* restore deleted entries
2024-07-24 11:54:03 +02:00
DudekArtur
33b6f2cbc4 N°7693 - Update polish translations (#658) 2024-07-24 11:37:19 +02:00
Stephen Abello
4680b6a497 N°7655 - Handle highlightjs styles in fronts styles and force it to apply over inlined styles 2024-07-24 11:22:00 +02:00
Molkobain
c5727d366f Merge remote-tracking branch 'origin/support/3.1' into support/3.2 2024-07-24 11:01:30 +02:00
Thomas Casteleyn
a749a4654e N°7697 - Add method to rename DB table during setup (#623) 2024-07-24 10:51:07 +02:00
Benjamin Dalsass
3c8a71f39f N°7646 - Check performances compared to beginning of 3.2 development (#659)
- Improve OQL calls in portal services list pages with a cached private key for encoding rules
2024-07-24 10:43:29 +02:00
Timothee
ed7411294e N°7647 exclude fatal error image from build 2024-07-24 10:05:31 +02:00
Molkobain
aaecce7574 N°7686 - Fix typo in dictionary entry 2024-07-24 10:04:20 +02:00
Molkobain
480e2a0fb5 N°7686 - Fix typo in dictionary entry 2024-07-24 09:57:15 +02:00
Thomas Casteleyn
a3a0f33ad4 N°7686 - Update Dutch translations (#657) 2024-07-24 09:01:12 +02:00
Molkobain
089da40941 N°7552 - CKEditor: Fix error message not disappearing when mandatory field is filled 2024-07-23 23:14:47 +02:00
Molkobain
ce0d17e042 N°7552 - CKEditor: Cleanup remains of previous mentions overloads 2024-07-23 22:06:21 +02:00
Molkobain
aba737ab48 N°7552 - CKEditor: Cleanup in portal.scss 2024-07-23 16:06:09 +02:00
Molkobain
a7c5d9e92a N°7552 - CKEditor: Fix rendering in the portal 2024-07-23 16:04:46 +02:00
Molkobain
b2a377d7f1 N°7611 - CKEditor: Harmonize table alignments 2024-07-23 13:56:17 +02:00
Molkobain
1d65234073 N°7552 - CKEditor: Fix unit tests for email notifications 2024-07-23 13:26:35 +02:00
Molkobain
38065791da N°7552 - CKEditor: Harmonize HTML content rendering in edit, read and emails 2024-07-23 11:53:22 +02:00
Molkobain
086d2f0ba4 N°7552 - CKEditor: Include CKE styles in the backoffice theme and emails style 2024-07-23 11:52:39 +02:00
Molkobain
377e06d99a N°7552 - CKEditor: Make style generate in a CSS file instead of an inline tag 2024-07-23 11:50:03 +02:00
vdumas
37cf1b2901 N°6992 - Fix "add lnk" popup title: use label instead of class name 2024-07-23 10:10:32 +02:00
Eric Espie
d9f280dc56 N°7679 - Debug output when licence read-only 2024-07-23 09:48:33 +02:00
vdumas
b207f9ea02 N°7131 - Allow Data Synchro to change the Org of a Person regardless of its Users 2024-07-22 15:18:42 +02:00
vdumas
2690f8171e N°7131 - Allow Data Synchro to change the Org of a Person regardless of its Users 2024-07-22 15:10:41 +02:00
Benjamin Dalsass
7136ac38d6 N°7678 - Bulk modify of objects with HTML field broken
- build ckeditor dist
2024-07-22 14:58:51 +02:00
Benjamin Dalsass
d4b5e98514 N°7678 - Bulk modify of objects with HTML field broken
- file have been restored from its previous version due to a wrong merge conflict resolution
2024-07-22 14:58:06 +02:00
Stephen Abello
0ede0719c5 N°7552 - Fix CKEditor sources not being scrollable in fullscreen 2024-07-22 11:00:54 +02:00
Benjamin Dalsass
06124a0d94 N°7552 - Polishing CKeditor
- remove list properties plugin
- remove unused plugins
2024-07-22 10:22:05 +02:00
Timothee
d19d88e5dc N°7647 Removing unused fonts 2024-07-19 16:39:05 +02:00
Timothee
b2d8b0bfe4 N°7647 Removing needless font format for font-awesome 2024-07-19 16:37:04 +02:00
Timothee
095ac3dfa5 N°7647 Refactoring to allow files blacklist 2024-07-19 15:20:40 +02:00
Stephen Abello
a86edc69ac N°7655 - Make code blocks edition closer to its readonly counterpart 2024-07-19 10:54:06 +02:00
Stephen Abello
21bc4cdc9b Remove unwanted default table configuration for CKEditor 2024-07-19 10:52:49 +02:00
Molkobain
b682ed7ad9 N°7410 - Change acknowledge button label 2024-07-19 10:14:06 +02:00
Molkobain
5e823d1f16 N°7565 - Add description to details and list zlists 2024-07-19 09:46:55 +02:00
Molkobain
d32949d1d3 N°7410 - Fix typo in template path 2024-07-18 16:06:12 +02:00
Molkobain
06c26c99bb N°7565 - Make visual adjustments on the newsroom
- New messages indicator next to the news providers removed as it was confusing and not bringing relevant information
- Add hand cursor on hover of the news
- News content now restricted to a certain height / width to avoid content overflowing everywhere
- Limit message height in the "view all" page
2024-07-18 15:54:32 +02:00
jf-cbd
22e599598a 💬 Fix translations 2024-07-18 10:49:26 +02:00
jf-cbd
d666050e0c 💬 Fix translations 2024-07-18 10:27:16 +02:00
jf-cbd
8018c586cd 💬 Improved translations 2024-07-18 09:48:52 +02:00
Molkobain
e73911c458 N°7611 - Remove table reset / unset CSS rules as overflow from HTML attribute has been fixed 2024-07-18 09:32:09 +02:00
Molkobain
7e79b27823 N°6543 - Fix AttributeHTML field not respecting column constraint due to typo in CSS selector 2024-07-17 21:44:51 +02:00
jf-cbd
5fa9ef05a6 💬 Improved translations 2024-07-17 17:36:20 +02:00
Stephen Abello
f239b658e6 Fix CKEditor change detector being misled by insert carriage plugin 2024-07-17 14:53:13 +02:00
jf-cbd
141c22ff67 Fix selectize bug when multiple selectize fields exist on the same page 2024-07-17 14:17:09 +02:00
Stephen Abello
23651ae510 N°2523 - Align CKEditor and HtmlDomSanitizer denied and allowed lists 2024-07-17 11:45:55 +02:00
Molkobain
45a1efe2ae N°7565 - Update TriggerOnReachingState action message 2024-07-17 11:12:45 +02:00
Molkobain
06c135aab1 N°7565 - Newsroom: Polishing last details
- Force subscription policy on existing mention triggers
- Add news action to all mention triggers
- Add action (not linked to any trigger) for TriggerOnPortalLogUpdate
- Add action (not linked to any trigger) for TriggerOnReachingState for assigned
2024-07-17 10:47:01 +02:00
Molkobain
2203694b3f N°7565 - Fix news icon/timestamp not aligned depending on message length 2024-07-17 10:40:41 +02:00
Molkobain
f7ab9646d0 N°7552 - Fix mentions during object creation 2024-07-17 10:30:28 +02:00
Molkobain
a4959cad15 N°7397 - Fix missing space in dictionaries 2024-07-17 09:52:19 +02:00
Timothee
1c0a7e9bd9 N°7589 pushing menu position down 2024-07-16 17:26:33 +02:00
jf-cbd
cc46761e34 ✏️ Fix typos + fix French translation 2024-07-16 15:39:32 +02:00
Romain Quetiez
e1c3e7a3a6 🦺 N°7629 Remove refactoring protection tests 2024-07-16 10:25:14 +02:00
Romain Quetiez
baf85e7a80 N°7629 Deprecate utils::GetClassesForInterface in favor of InterfaceDiscovery::FindItopClasses
Improve caching strategy and robustness
2024-07-16 10:13:13 +02:00
Eric Espie
147aad9221 N°7631 - hardening code 2024-07-16 09:55:49 +02:00
Stephen Abello
41e0d39a5a Fix selectize element color when active 2024-07-16 09:29:12 +02:00
Timothee
91496b08bd N°7589 - Move oauth client menu under Integration and revert general configuration 2024-07-15 18:04:37 +02:00
Timothee
b3d20effd6 N°7589 - Move oauth client menu under Integration and revert general configuration 2024-07-15 17:51:25 +02:00
Molkobain
2e0b9bd6b4 Revert "N°7630 - Fix wrong enum/ext. key value selected when clicking on drop down list in modal"
No longer necessary as of 4b3e9432df

This reverts commit f0c37bd69e.
2024-07-15 17:01:39 +02:00
Molkobain
e497304b9d N°7630 N°7623 - Update SCSS to match new Selectize version 2024-07-15 16:32:44 +02:00
Molkobain
4b3e9432df N°7630 N°7623 - Fix visual glitches with selectize.js
Mind that as there is no released version of the necessary fixes yet, we upgraded the files based on e6ca6d3

More information on the issue resolving the matter: https://github.com/selectize/selectize.js/issues/1926
2024-07-15 16:24:45 +02:00
Molkobain
1d67d50a20 N°7397 - Update welcome popup content for iTop 3.2 (#648)
* N°7397 - Update welcome popup content for iTop 3.2

* N°7397 - Display illustrations as restylable SVG, add extension to twig to support absolute url in source function

* N°7397 - Update 3.2 welcome messages dictionaries, add French translations and set up other languages files

---------

Co-authored-by: Stephen Abello <stephen.abello@combodo.com>
2024-07-15 16:12:12 +02:00
Benjamin Dalsass
f0c37bd69e N°7630 - Fix wrong enum/ext. key value selected when clicking on drop down list in modal 2024-07-15 10:18:33 +02:00
Stephen Abello
21513f8df0 N°7552 - Fix CKEditors table, hyperlinks, and other options inputs not working in iTop portal 2024-07-12 10:49:20 +02:00
jf-cbd
eb73b6b2f5 N°7552 - Polishing CKeditor (Maximize/full screen mode) - built minified files 2024-07-11 17:17:01 +02:00
jf-cbd
504378261b N°7552 - Polishing CKeditor (Maximize/full screen mode) - built JS files 2024-07-11 17:11:05 +02:00
jf-cbd
a5ceddc40a N°7552 - Polishing CKeditor (Maximize/full screen mode) - remove maximize hybrid mode 2024-07-11 15:09:27 +02:00
jf-cbd
0fb23c4e5b N°7552 - Polishing CKeditor (Maximize/full screen mode) 2024-07-11 15:04:03 +02:00
DarkNight97boss
40c7559905 N°7652 - Update italian translations thanks to @DarkNight97boss (#653) 2024-07-11 13:17:44 +02:00
Benjamin Dalsass
edda622060 N°7443 - url in read-only attribute are displayed different between console and portal 2024-07-11 07:41:55 +02:00
Molkobain
f1694707ee N°7644 - Update french dictionary 2024-07-10 11:36:33 +02:00
Eric Espie
97ec9666ed N°7620 - Changing height of multiple selection combo between 1 and 8 according to allowed values 2024-07-10 10:33:27 +02:00
Thomas Casteleyn
7b91e9e164 N°7644 - Add Brand logo and Model picture (#646)
* Add Brand logo and Model picture

* Add dictionary items for new attributes

* Add Model picture to summary card
2024-07-10 10:29:11 +02:00
Molkobain
ff0f1d8ce9 Merge remote-tracking branch 'origin/support/3.1' into support/3.2 2024-07-10 10:09:43 +02:00
Thomas Casteleyn
1e3c425e81 N°7645 - PHP 8.1: Fix usage of strpos() & str_replace() with null value when compiling empty dictionary (#600)
* fix(compiler): provide empty string instead of null value

* Apply review suggestions
2024-07-10 10:07:12 +02:00
Molkobain
b2b5aeb08b Revert "N°7559 - Fix radio buttons in template fields"
This reverts commit dc8f676f75.
This reverts commit e9ef48b79c.
2024-07-09 11:30:12 +02:00
Stephen Abello
01ab3be8d3 N°7593 - Add robustness to scrollable tabs when the first tab is an Ajax tab 2024-07-09 10:36:39 +02:00
Molkobain
0d7ca88cc2 N°7606 - Improve log form entry robustness by ensuring CKEditor instance is loading before doing anything 2024-07-08 13:34:27 +02:00
Molkobain
4fee774fe5 N°7635 - Upgrade CKEditor dependency "ws" to v7.5.10 2024-07-08 10:40:49 +02:00
jf-cbd
0d9f348e93 🎨 Reformatting log channels name 2024-07-05 12:05:51 +02:00
Molkobain
1ea0018a50 N°7565 - Fix newsroom element's date time alignment 2024-07-05 10:03:44 +02:00
Benjamin Dalsass
3bec8fe7d2 Merge remote-tracking branch 'origin/support/3.1' into support/3.2 2024-07-05 09:24:45 +02:00
Benjamin Dalsass
b2e3fb6354 N°7024 - Fix opening an object with abstract class indirect linked set in Portal 2024-07-05 09:10:19 +02:00
Molkobain
7cedc501f7 N°7565 - Add button in notifications center to access the "all news" page 2024-07-04 23:59:39 +02:00
Molkobain
296c5bd3d2 N°7565 - Refactor "other actions" tab to display action class name on the panel 2024-07-04 23:42:17 +02:00
Molkobain
a2bddea1e2 N°7565 - Forbid disabling internal newsroom provider 2024-07-04 23:33:38 +02:00
Molkobain
53cd9f8b5f N°7565 - Fix newsroom display limit not following user preferences 2024-07-04 23:23:40 +02:00
Molkobain
b344826c44 N°7565 - Increase default mention newsroom notification to priority "Important" instead of "Standard" 2024-07-04 23:07:41 +02:00
Molkobain
a0dc68ab9a N°7565 - Generate newsroom action for Person mention on installation/upgrade 2024-07-04 22:43:37 +02:00
Molkobain
22f2b5d0e5 N°7565 - Fix dictionaries counter-parts in other languages 2024-07-04 18:10:47 +02:00
Stephen Abello
c411900efd N°7552 - Fix CKEditor tables being impossible to resize 2024-07-04 16:17:59 +02:00
Molkobain
592aa93c40 N°7565 - Update newsroom dictionaries with tooltips 2024-07-04 15:59:26 +02:00
Stephen Abello
6c02dd75fa N°7552 - Correctly define custom z-index for CKEditor 2024-07-04 15:57:23 +02:00
Stephen Abello
39853d4949 N°7552 - Keep style from Word/Excel content 2024-07-04 15:11:11 +02:00
Stephen Abello
2404f5d00f N°7552 - Remove unused library masterminds/html5 2024-07-04 14:59:21 +02:00
jf-cbd
f84746274f Merge remote-tracking branch 'refs/remotes/origin/support/3.1' into support/3.2 2024-07-04 13:55:59 +02:00
jf-cbd
45ce68e16e Merge remote-tracking branch 'refs/remotes/origin/support/3.0' into support/3.1 2024-07-04 13:55:11 +02:00
jf-cbd
1aef576403 N°7604 - Security hardening 2024-07-04 13:52:19 +02:00
Molkobain
c3582f0aff N°7552 - Fix mentions not taking triggers filter into account 2024-07-04 11:30:51 +02:00
Molkobain
8c4c0ff5e1 N°7552 - Adjust linkedset display as tag endpoint to return only necessary data 2024-07-04 11:30:51 +02:00
jf-cbd
7b6334d447 Merge remote-tracking branch 'refs/remotes/origin/support/3.1' into support/3.2 2024-07-04 11:01:16 +02:00
jf-cbd
bfd9be8280 Merge remote-tracking branch 'refs/remotes/origin/support/3.0' into support/3.1 2024-07-04 10:59:57 +02:00
jf-cbd
96e1388dde N°7603 - Security hardening + UI blocks examples updated 2024-07-04 10:56:08 +02:00
Timothee
fd64be1dcd N°7490 Upgrade tcpdf version 2024-07-04 10:41:18 +02:00
Stephen Abello
64974a2c54 N°7530 - Fix selectize results not stylized properly in other themes 2024-07-04 10:11:47 +02:00
Timothee
e363692822 Merge remote-tracking branch 'origin/support/3.1' into support/3.2 2024-07-04 09:45:56 +02:00
Stephen Abello
d5d93ed147 N°7530 - Fix quickcreate autocomplete results not displaying properly 2024-07-04 09:43:55 +02:00
Romain Quetiez
c3547f29d0 Cosmetics on the test framework 2024-07-04 09:38:35 +02:00
Benjamin Dalsass
989ba7bbe7 N°7615 - Edition of a n-n link in edit mode not working
- Register input listeners on page ready
2024-07-04 07:55:30 +02:00
Eric Espie
ac90d8036f N°7516 - hardening code 2024-07-03 18:03:34 +02:00
Timothee
644da707d2 Fix merge conflit resolution d3b9965283 2024-07-03 17:13:47 +02:00
Timothee
86b48b8980 Merge remote-tracking branch 'origin/support/3.0' into support/3.1 2024-07-03 17:00:22 +02:00
Timothee
69c8791fc5 Fix merge conflit resolution d3b9965283 2024-07-03 16:48:08 +02:00
jf-cbd
8b35679fcf N°7124 - Security hardening 2024-07-03 15:51:43 +02:00
Stephen Abello
cb8af0a02b N°7602 - Fix issue when displaying CKEditor sources while CKEditor is maximized 2024-07-03 15:47:29 +02:00
Stephen Abello
0b442a2e1a N°7622 - Add carriage return after a block elements in ckeditor 5 2024-07-03 15:26:26 +02:00
Molkobain
f98e92b255 Restore documentation comment 2024-07-03 15:19:55 +02:00
Stephen Abello
eca1836bd8 N°7595 - Fix body text color variable being used before it's declared 2024-07-03 14:47:25 +02:00
Stephen Abello
17e8cad005 N°7595 - Fix CKEditor 5 font color in dark themes 2024-07-03 14:24:52 +02:00
Romain Quetiez
48e89dd27e N°7621 Fix extensibility point introduced in N°4498, JS code included via iBackofficeScriptExtension must be executed after the JS files have been loaded 2024-07-03 09:42:41 +02:00
Eric Espie
e9ef48b79c N°7559 - Fix radio buttons in template fields 2024-07-03 09:28:18 +02:00
Romain Quetiez
ab9df22e76 📝 Reinforce the documentation of WebPage JS inclusion API 2024-07-02 17:18:32 +02:00
jf-cbd
84f2ecd80f Merge branch 'refs/heads/feature/N°7124-CSRF-in-several-iTop-pages' into support/3.2 2024-07-02 17:16:23 +02:00
jf-cbd
98f946c871 N°7124 - [SECU] Cross-Site Request Forgery (CSRF) in several iTop pages (finalize implementation) 2024-07-02 17:14:55 +02:00
odain
452d97f2d0 N°7584 - fix log 2024-07-02 16:00:42 +02:00
odain
3f0e46230f N°7584 - authentication error log only when unescapable login_mode 2024-07-02 14:10:31 +02:00
Eric Espie
fad3259290 Merge remote-tracking branch 'origin/support/3.1' into support/3.2 2024-07-02 10:42:28 +02:00
Eric Espie
5fd8678a3a N°7619 - Object deletion not cascaded to legacy extensions 2024-07-02 10:38:25 +02:00
Eric Espie
86df9ac035 N°7619 - Object deletion not cascaded to legacy extensions 2024-07-02 10:37:36 +02:00
Romain Quetiez
d4b342a35d Simplify for the sake of readability 2024-06-28 23:58:10 +02:00
Romain Quetiez
8c87f5a384 Merge branch 'refs/heads/feature/TestsGivenObjectInDB' into support/3.2 2024-06-28 17:04:35 +02:00
Eric Espie
984f676d6e GivenObjectInDB() and additional improvements in the tests suite to address false positive and slow tests
Rewrite tests on impact analysis to make them readable in the first place, then simplifiy the tests to focus on risk reduction, then complete with some edge case
Rewrite tests on impact graph build when the current user has restricted access to some parts of the graph
2024-06-28 15:24:13 +02:00
Molkobain
0f213b08a6 Merge remote-tracking branch 'origin/support/3.1' into support/3.2 2024-06-28 15:02:46 +02:00
Molkobain
3f997b416f N°7313 - Revert "fix" as it breaks grouping on ext. keys, OQL functions and more
We keep the enhancements to the test framework though.
2024-06-28 14:54:51 +02:00
Molkobain
f88e231780 N°7610 - Fix inline images in log being displayed above the transition buttons 2024-06-28 12:20:46 +02:00
Molkobain
fff95fcebd N°7601 - Avoid image to float along side text when editing, which will render differently in read-only / notifications 2024-06-27 22:16:53 +02:00
Molkobain
de17664c49 N°7601 - Remove image alignment buttons from CKEditor toolbar 2024-06-27 22:07:39 +02:00
Molkobain
2b1826d2e6 N°7606 - Fix lost of submitted log entry when using the grouped stimuli buttons in creation/edit mode 2024-06-27 10:15:48 +02:00
Romain Quetiez
b8d8ec640d Cleanup of legacy tests (sending emails) 2024-06-25 15:41:50 +02:00
Romain Quetiez
e2c01e9e5d 🎉 Releasing 3.0.2-beta1 2024-06-25 15:34:30 +02:00
Molkobain
a55efdff18 N°7315 - Migrate usages of WebPage::add_linked_xxx() for LoginTwigRenderer class 2024-06-25 15:02:20 +02:00
Eric Espie
3c1af200f8 💄 better page consistency 2024-06-24 17:28:27 +02:00
Eric Espie
dc8f676f75 N°7559 - Fix radio buttons in template fields 2024-06-24 17:11:39 +02:00
Anne-Cath
a160f2e212 N°4342 - Improve generic bulk deletion function with memory limit handling - add tests 2024-06-24 14:55:36 +02:00
Eric Espie
c1ce4f9a9f Merge remote-tracking branch 'origin/support/3.1' into support/3.2 2024-06-24 14:30:28 +02:00
Eric Espie
cceb6809e7 Fix CI 2024-06-24 14:20:33 +02:00
Eric Espie
48b559472e Merge remote-tracking branch 'origin/support/3.0' into support/3.1
# Conflicts:
#	tests/php-unit-tests/src/BaseTestCase/ItopTestCase.php
2024-06-24 14:02:04 +02:00
Eric Espie
cddc452693 Merge remote-tracking branch 'origin/support/2.7' into support/3.0 2024-06-24 13:55:29 +02:00
Eric Espie
0904a21e3f Cleanup ItopTestCase 2024-06-24 11:50:37 +02:00
Eric Espie
e800946898 N°7454 - Add dedicated menu entry for config file edition 2024-06-21 14:13:46 +02:00
Eric Espie
e189034436 N°7454 - Add dedicated menu entry for config file edition 2024-06-21 14:05:05 +02:00
Timothee
4590013adc N°7581 Improve error message readability during object creation/modification in the portal (regression introduced with N°7545) 2024-06-21 12:48:43 +02:00
Timothee
66230199f8 Merge remote-tracking branch 'origin/support/3.0' into support/3.1 2024-06-21 12:41:17 +02:00
Timothee
1f1a2b660f N°7581 Improve error message readability during object creation/modification in the portal (regression introduced with N°7545) 2024-06-21 12:36:52 +02:00
Molkobain
b8b35194c9 Merge remote-tracking branch 'origin/support/3.1' into support/3.2 2024-06-21 11:34:11 +02:00
Molkobain
4f36369ea1 Merge remote-tracking branch 'origin/support/3.0' into support/3.1 2024-06-21 11:32:21 +02:00
Molkobain
33a906f11a Merge remote-tracking branch 'origin/support/2.7' into support/3.0 2024-06-21 11:29:18 +02:00
Molkobain
82d11eeb47 N°7127 - Upgrade handlebars.js to v4.7.8 2024-06-21 11:19:39 +02:00
Molkobain
fdef394070 N°7127 - Upgrade handlebars.js to v4.7.8 2024-06-21 11:14:21 +02:00
Timothee
a3a5630e88 N°7581 Improve error message readability during object creation/modification in the portal (regression introduced with N°7545) 2024-06-21 10:37:25 +02:00
Eric Espie
9f7fd6a3a1 N°7465 - Code hardening 2024-06-20 17:42:24 +02:00
Molkobain
112a6f9942 N°7588 - Fix .env.local not working for the portal since Symfony 5.4 migration 2024-06-20 17:09:50 +02:00
odain
60110a4302 N°7584 - Login mode with special characters are not supported 2024-06-20 16:41:50 +02:00
Eric Espie
4426e2adfe N°7516 - Code hardening 2024-06-20 16:28:38 +02:00
vdumas
0028b3cf17 N°7565 - Polishing Newsroom 2024-06-20 16:00:07 +02:00
Eric Espie
4867810ebe N°7516 - Code hardening 2024-06-20 15:36:19 +02:00
Eric Espie
6b2476d220 Merge remote-tracking branch 'origin/support/3.1' into support/3.2 2024-06-20 11:08:23 +02:00
Eric Espie
b8bf66031b Merge remote-tracking branch 'origin/support/3.0' into support/3.1 2024-06-20 11:07:57 +02:00
Eric Espie
2596a150bf Merge remote-tracking branch 'origin/support/2.7' into support/3.0 2024-06-20 11:07:36 +02:00
Eric Espie
142d6c8993 N°7533 - Detect and warns on Galera clusters 2024-06-20 11:06:57 +02:00
Eric Espie
a3309365fc N°7533 - Prevent installation of iTop on Galera clusters 2024-06-20 10:50:50 +02:00
Eric Espie
9dcdb1bc8c N°7533 - Prevent installation of iTop on Galera clusters 2024-06-20 10:47:20 +02:00
Eric Espie
2275daf3b0 N°7533 - Prevent installation of iTop on Galera clusters 2024-06-20 09:49:41 +02:00
Molkobain
d145cb508a N°7552 - Fix regression from previous merge (f63abd9b)
Can't submit HTML field in the backoffice
2024-06-20 09:08:32 +02:00
Eric Espie
7028fd21bc N°7571 - fix warning due to the new version of Html2Text lib 2024-06-19 11:23:08 +02:00
Molkobain
51adfd0254 N°7565 - Refactor way of retrieving user's picture 2024-06-19 11:05:46 +02:00
Eric Espie
6e2ed188eb Merge branch 'support/3.2-beta' into support/3.2 2024-06-19 10:57:27 +02:00
Timothee
2a3516d593 Reapply "Merge remote-tracking branch 'origin/support/3.1' into support/3.2"
This reverts commit 3233b9776f.
2024-06-19 09:47:48 +02:00
Molkobain
c2d984d470 N°7552 - Fix implicit float to int conversion when uploading inline images 2024-06-19 09:08:00 +02:00
Molkobain
1de2502fe9 N°7552 - Fix CKEditor not following datamodel width/height in the backoffice 2024-06-18 23:20:42 +02:00
Molkobain
6647575965 N°7552 - Fix CKEditor overflowing on next column in the backoffice 2024-06-18 23:09:31 +02:00
Eric Espie
e5a60beba0 🚨 Fix autoload files 2024-06-18 17:54:12 +02:00
Eric Espie
2804076bf6 N°7514 - hardening code
(cherry picked from commit b8b9423aa85c65b25f7fb3d9c5ba0933317474d7)
2024-06-18 17:40:20 +02:00
Molkobain
f63abd9b6f Merge remote-tracking branch 'origin/feature/3.2-post-beta' into support/3.2
# Conflicts:
#	js/ckeditor/build/ckeditor.js
#	js/ckeditor/build/ckeditor.js.map
2024-06-18 17:33:13 +02:00
Eric Espie
4ebdc9d6ed fix unit tests 2024-06-18 16:15:35 +02:00
Eric Espie
6e364a0ab9 N°7514 - hardening code 2024-06-18 16:00:08 +02:00
Timothee
3233b9776f Revert "Merge remote-tracking branch 'origin/support/3.1' into support/3.2"
This reverts commit 905bbf9118, reversing
changes made to 1c00461f4d.
2024-06-17 18:03:12 +02:00
Timothee
905bbf9118 Merge remote-tracking branch 'origin/support/3.1' into support/3.2 2024-06-17 17:04:05 +02:00
Timothee
d70e5dff45 Merge remote-tracking branch 'origin/support/3.0' into support/3.1 2024-06-17 16:55:26 +02:00
Timothee
c4fc0ed982 Merge remote-tracking branch 'origin/support/2.7' into support/3.0 2024-06-17 16:51:30 +02:00
Timothee
320922a13d N°7545 Correctly display error message 2024-06-17 16:49:33 +02:00
odain
9514977ce2 ci bug investigation 2024-06-17 16:48:09 +02:00
Eric Espie
62d08dce56 ⬆️ fix composer filters 2024-06-17 15:06:06 +02:00
Eric Espie
71e36d264e fix unit tests 2024-06-17 14:52:55 +02:00
Eric Espie
7dc1672b24 Add logs to unit tests 2024-06-17 11:55:36 +02:00
Eric Espie
50e40879de N°7571 - HTML2Text lib 2024-06-13 18:16:26 +02:00
Romain Quetiez
1c00461f4d Allow more modules to be compatible with LTS 2.7 dictionary format spec 2024-06-13 17:58:29 +02:00
Eric Espie
6cc24e475a N°7571 - HTML2Text lib 2024-06-13 17:28:08 +02:00
Benjamin Dalsass
6c0dfd13eb N°7552 - Polishing CKeditor
- set an editor height to prevent editor growing
2024-06-13 16:21:58 +02:00
Eric Espie
4232284dae N°7571 - HTML2Text lib 2024-06-13 15:33:54 +02:00
jf-cbd
b8c4be7a3d N°7552 - Polishing CKeditor (maximized mode, focus impossible if editor in a modal)
Fullscreen mode for portal (native browser method)
Windowed mode for console (JS method)
portal.css not minified
2024-06-13 15:30:57 +02:00
Benjamin Dalsass
6958fd0965 Merge remote-tracking branch 'origin/feature/3.2-post-beta' into feature/3.2-post-beta 2024-06-13 14:49:46 +02:00
Benjamin Dalsass
1f8726669b N°7567 - Error message on bulk modify on object with different values in a an HTML field 2024-06-13 14:48:06 +02:00
Eric Espie
47d65931e6 N°7571 - ⬆️ Bump HTML2Text library version 2024-06-13 14:45:06 +02:00
Romain Quetiez
b8a9ea452f Fix interferences between tests on dictionaries 2024-06-13 11:32:17 +02:00
jf-cbd
c8a1f7f534 Update licenses for 3.2 release 2024-06-13 11:01:42 +02:00
Romain Quetiez
cbb78056c3 Enable tests on french dictionaries completion (continuous integration) 2024-06-13 10:53:13 +02:00
jf-cbd
bfbb046b10 N°7552 - Polishing CKeditor (maximized mode, focus impossible if editor in a modal)
Fullscreen mode for portal (native browser method)
Windowed mode for console (JS method)
portal.css not minified
2024-06-13 10:32:08 +02:00
Romain Quetiez
c34dc34e3e Complete french translations (reviewed with Vincent) 2024-06-12 18:08:54 +02:00
Vincent Dumas
a1e48cc438 Fix FR missing translations 2024-06-12 17:31:11 +02:00
Eric Espie
8b256caa6c Merge remote-tracking branch 'origin/support/3.1' into feature/3.2-post-beta 2024-06-12 16:49:13 +02:00
Eric Espie
f96d28a0a8 Merge remote-tracking branch 'origin/support/3.0' into support/3.1 2024-06-12 16:48:39 +02:00
Eric Espie
d3b9965283 Merge remote-tracking branch 'origin/support/2.7' into support/3.0
# Conflicts:
#	core/cmdbsource.class.inc.php
2024-06-12 16:48:06 +02:00
Eric Espie
f03d731b1d N°7533 - Prevent installation of iTop on Galera clusters 2024-06-12 16:14:23 +02:00
Timothee
d4b41d892c Automated dictionaries synchronization with english reference 2024-06-11 17:43:44 +02:00
Timothee
09a5d7a35f Automated dictionaries synchronization with english reference 2024-06-11 16:38:40 +02:00
Timothee
ae83a11a8c Future phpunit tests for french dictionaries 2024-06-11 15:45:14 +02:00
jf-cbd
291c513d3b Remove balloon remaining in full screen (on Firefox) 2024-06-11 09:36:21 +02:00
jf-cbd
8935de0809 Dev command to improve development 2024-06-11 09:36:21 +02:00
Benjamin Dalsass
4c0a55dbbb N°5298 - Upgrade CKEditor to version 5
- PrepareCKEditorValueTextEncodingForTextarea: allow null value
2024-06-10 16:13:45 +02:00
Benjamin Dalsass
6080e456c5 N°5298 - Upgrade CKEditor to version 5
- correct textarea encoding for ckeditor
https://ckeditor.com/docs/ckeditor5/latest/installation/getting-started/getting-and-setting-data.html#automatic-integration-with-html-forms
2024-06-10 10:07:20 +02:00
Timothee
cd065cc0db N°7565 - Polishing Newsroom - Add subtitle and user icon (fix SK dictionary) 2024-06-07 15:34:21 +02:00
jf-cbd
46929ce43f Remove header check in ajax.render.php 2024-06-07 10:03:49 +02:00
Benjamin Dalsass
bda7f58ddd N°5298 - Upgrade CKEditor to version 5
- remove text transformation plugin
2024-06-07 08:54:50 +02:00
Benjamin Dalsass
c940295663 N°7529 - Choose which button to keep in CKeditor5 2024-06-07 08:18:58 +02:00
Benjamin Dalsass
8d2adfbbd2 N°5298 - Upgrade CKEditor to version 5
- fix portal issue when choosing a text color, text area value is replaced by hexadecimal color text input
2024-06-07 08:17:38 +02:00
Benjamin Dalsass
d3b39048d8 N°5298 - Upgrade CKEditor to version 5
- remove fired event UPDATE in plugin update-input-on-change
effect: alert dialog on portal when adding image
known impact: validation on portal not triggered on textarea modification
2024-06-07 08:16:29 +02:00
vdumas
02a5630f62 N°7565 - Polishing Newsroom - Add subtitle and user icon 2024-06-06 17:42:02 +02:00
jf-cbd
9d1c66296b N°7124 - [SECU] Cross-Site Request Forgery (CSRF) in several iTop pages 2024-06-06 17:10:49 +02:00
vdumas
be3e55acee N°7565 - Polishing Newsroom - FR entries 2024-06-06 12:15:28 +02:00
vdumas
3fd6f47f8b N°7425 - Add Warning when a user has no contact or no allow org 2024-06-06 12:08:20 +02:00
Eric Espie
bbebca7951 N°7556 - Cross-Site Request Forgery (CSRF) protection 2024-06-05 17:38:51 +02:00
vdumas
07702379c3 N°7560 - Improve help message on Event methods (2) 2024-06-05 15:41:06 +02:00
vdumas
7c8fa10be9 N°7560 - Improve help message on Event methods 2024-06-05 15:06:34 +02:00
jf-cbd
ffcc8ff32a N°7459 optimize memory consumption during compilation with php 8.1+ (#650)
N°7459 optimize memory consumption during compilation with PHP 8.1+
2024-06-05 11:03:43 +02:00
jf-cbd
6f42b4aafc Fix selectize bug when multiple selectize fields exist on the same page 2024-06-05 10:26:26 +02:00
Romain Quetiez
ecd8890c0b List explicitely the modules when finding inconsistencies in installation.xml 2024-06-04 21:56:03 +02:00
vdumas
f568aaf732 N°6303 - Add search ticket bricks in portal 2024-06-04 11:40:59 +02:00
Benjamin Dalsass
fbf98aa4d9 N°5298 - Upgrade CKEditor to version 5
- remove unused object-shortcut toolbar item
2024-06-04 10:58:47 +02:00
vdumas
0f5ee780bc N°7551 - ActionNewsroom Message mandatory 2024-06-03 17:05:02 +02:00
Benjamin Dalsass
12ccbd48b9 N°7467 - Fix column selection broken in CSV export 2024-06-03 15:48:42 +02:00
Eric Espie
67762458e4 Merge remote-tracking branch 'origin/support/3.1' into support/3.2 2024-05-30 12:08:11 +02:00
Eric Espie
3e3ac0d83f N°7542 - code hardening 2024-05-30 12:04:36 +02:00
Benjamin Dalsass
fa43aaba49 N°5298 - Upgrade CKEditor to version 5
- set a minimum editor height (180px) in portal
2024-05-30 09:17:40 +02:00
Benjamin Dalsass
12fc7fbfd9 N°5298 - Upgrade CKEditor to version 5
- set a minimum editor height (180px) in portal
2024-05-30 09:16:39 +02:00
Eric Espie
6969013439 Merge remote-tracking branch 'origin/support/3.1' into support/3.2 2024-05-29 18:20:13 +02:00
Eric Espie
32835f70b9 Merge remote-tracking branch 'origin/support/3.0' into support/3.1 2024-05-29 18:19:48 +02:00
Eric Espie
63cf78f64d Merge remote-tracking branch 'origin/support/2.7' into support/3.0
# Conflicts:
#	pages/preferences.php
2024-05-29 18:18:55 +02:00
Eric Espie
8be7628668 N°7548 - Code hardening 2024-05-29 18:11:36 +02:00
Eric Espie
37f0a7e6d9 N°7548 - Code hardening 2024-05-29 18:08:40 +02:00
Benjamin Dalsass
e750ad8755 N°5298 - Upgrade CKEditor to version 5
- adjust plugin update-input-on-change to prevent emitting event when data has no change
2024-05-28 16:07:00 +02:00
Benjamin Dalsass
22882e35b4 N°5298 - Upgrade CKEditor to version 5
- restore WebResourcesHelper ckeditor for extension compatibility (ex customer survey)
2024-05-28 15:53:52 +02:00
Molkobain
afc40d9cca N°2039 - Fix newsroom menu not opening due to regression in a642ad6d 2024-05-28 13:50:55 +02:00
Benjamin Dalsass
7cf607c34e N°5298 - Upgrade CKEditor to version 5
- restore portal highlight js import
2024-05-28 11:28:46 +02:00
Benjamin Dalsass
e6c3744aaa N°5298 - Upgrade CKEditor to version 5
- restore broken test for CKEditor resources check
2024-05-28 08:29:40 +02:00
Benjamin Dalsass
7769e5e116 N°5298 - Upgrade CKEditor to version 5
- update ckeditor plugin update-input-on-change by removing the event fired
2024-05-28 08:16:21 +02:00
Eric Espie
11502d2e92 N°7478 - Users (except admins) are not allowed to manage their own allowed org list 2024-05-27 14:55:37 +02:00
Molkobain
fc428eeb2b N°6167 - Fix welcome popup opening with collapsed content 2024-05-26 23:03:34 +02:00
Molkobain
a956627187 N°5298 - Merge work from 9bf0addc9c with changes from the WIP CKEditor build repo 2024-05-24 23:35:36 +02:00
Molkobain
c178fa4677 N°5298 - Remove unnecessary SCSS variables 2024-05-24 22:55:34 +02:00
Molkobain
25af60d8df N°5298 - Add class HTML attribute to most HTML tags in the HTMLDOMSanitizer 2024-05-24 22:53:30 +02:00
Benjamin Dalsass
9bf0addc9c N°5298 - Upgrade CKEditor to version 5 (#647) 2024-05-24 16:13:20 +02:00
Eric Espie
094a9ed82f Merge remote-tracking branch 'origin/support/3.1' into support/3.2
# Conflicts:
#	tests/php-unit-tests/unitary-tests/core/CRUDEventTest.php
#	tests/php-unit-tests/unitary-tests/core/DBObject/MockDBObjectWithCRUDEventListener.php
2024-05-24 10:04:40 +02:00
Eric Espie
5e64be8580 N°7491 - Fix unit tests 2024-05-24 09:48:07 +02:00
Eric Espie
a0b76a25be N°7491 - Fix Events during DBObject CRUD 2024-05-24 09:35:00 +02:00
Molkobain
4764553e08 N°5298 - Fix HTML attribute name always empty in RichText block 2024-05-24 09:30:24 +02:00
Romain Quetiez
f87b4f6154 Make sure that tests use valid input data 2024-05-23 09:14:42 +02:00
Molkobain
4ccec53e8d N°5298 - Improve CKEditor fullscreen style in the backoffice 2024-05-22 21:55:16 +02:00
Molkobain
e7728ee7dd N°5298 - Downsize CKEditor buttons / components for better integration with our UIs 2024-05-22 21:54:27 +02:00
Molkobain
c06aa66854 N°5298 - Fix CKEditor not using width/height from the datamodel since upgrade to v5 in the backoffice 2024-05-22 15:13:40 +02:00
Molkobain
7dd913b0dd N°5298 - Fix CKEditor fullscreen style and theme integration in the backoffice 2024-05-22 15:12:37 +02:00
Molkobain
6fb1afaa2f N°5298 - Fix CKEditor fullscreen style in the end-users portal 2024-05-22 13:24:16 +02:00
Molkobain
8cb92e3bd3 N°7494 - Update highlight.js to v11.9.0
Mind that this lib is not maintained through NPM yet as its sources alone don't allow to be used in CKEditor out of the box, it needs extra steps to be built/used. And as we are already struggling with the CKEditor integration, we rather make baby steps.
2024-05-22 13:24:16 +02:00
vdumas
d9fcde8dbb N°7484 - "autoresolve" Parent-Child now supports Friendlyname customization 2024-05-22 12:41:27 +02:00
Eric Espie
2389a5d720 Merge remote-tracking branch 'origin/support/3.1' into support/3.2 2024-05-21 15:08:07 +02:00
Eric Espie
e2f2afad54 Merge remote-tracking branch 'origin/support/3.0' into support/3.1 2024-05-21 15:07:28 +02:00
Eric Espie
f632cf3155 Merge remote-tracking branch 'origin/support/2.7' into support/3.0 2024-05-21 15:07:08 +02:00
Eric Espie
bc77c6589d Merge remote-tracking branch 'origin/support/3.1' into support/3.2 2024-05-21 14:29:56 +02:00
Eric Espie
13dfdc3d9d Merge remote-tracking branch 'origin/support/2.7' into support/3.1 2024-05-21 14:29:10 +02:00
Eric Espie
62caf16153 N°7364 - Code hardening 2024-05-21 14:20:30 +02:00
Romain Quetiez
1de179f683 N°4459 Make sure that every test will pass even if the CI provides an invalid configuration file. Also allow encryption mecanism to be fully controlled by the tests 2024-05-18 17:49:07 +02:00
Romain Quetiez
8823068608 N°4459 - Sodium default encrypted key invalid in the CI (workaround) 2024-05-17 16:56:55 +02:00
Romain Quetiez
48857631a4 Test that any kind of attribute can be written and read, both directly and through an external field 2024-05-17 16:56:55 +02:00
jf-cbd
fd6796aae3 Merge remote-tracking branch 'refs/remotes/origin/support/3.1' into support/3.2
# Conflicts:
#	.make/composer/rmDeniedTestDir.php
#	application/utils.inc.php
2024-05-17 11:16:56 +02:00
jf-cbd
020a37ead9 N°7526 - Profile input unfocus: Previously entered value still filters 2024-05-17 10:58:29 +02:00
Romain Quetiez
b9b28e31f4 Fix false positive when there is a data/production-modules folder 2024-05-17 09:51:16 +02:00
vdumas
0489235c67 N°7477 - Log execution result on DataSynchro made without administrator profile 2024-05-17 09:48:08 +02:00
Romain Quetiez
365d948a59 Merge branch 'support/3.1' into support/3.2
# Conflicts:
#	tests/php-unit-tests/src/Hook/TestsRunStartHook.php
2024-05-16 19:05:03 +02:00
vdumas
5bc8717d2b N°7480 - Setup theme compilation warning 2024-05-16 17:06:44 +02:00
jf-cbd
912b6b4a0d N°7479 - Profile filter unusable 2024-05-16 16:52:22 +02:00
odain
163a3afc0f N°7426 - no session created - replace php_sapi_name() by PHP_SAPI in unattended 2024-05-16 15:31:08 +02:00
Eric Espie
fb96184401 N°7468 - SQL error on MTP and DBTools on 3.2-dev 2024-05-16 14:50:52 +02:00
odain
35265718c1 Merge branch 'support/3.0' into support/3.1 2024-05-16 14:37:41 +02:00
odain
d98e35d918 Merge branch 'support/2.7' into support/3.0 2024-05-16 14:13:24 +02:00
odain
f8b54be896 N°7426 - no session created - replace php_sapi_name() by PHP_SAPI 2024-05-16 14:10:54 +02:00
Romain Quetiez
a88ce075cc Merge branch 'support/3.0' into support/3.1
# Conflicts:
#	tests/php-unit-tests/src/BaseTestCase/ItopTestCase.php
2024-05-16 14:07:36 +02:00
Romain Quetiez
c6f3e36451 Merge branch 'support/2.7' into support/3.0
# Conflicts:
#	tests/php-unit-tests/src/BaseTestCase/ItopTestCase.php
#	tests/php-unit-tests/unitary-tests/core/iTopConfigParserTest.php
2024-05-16 10:09:11 +02:00
Romain Quetiez
53dc452d61 Avoid unnecessary custom test environment compilations (base compilation of file modification time) 2024-05-16 09:53:04 +02:00
Romain Quetiez
ccaf2dc5b7 Make the tests compatible with windows (and linux) 2024-05-16 09:53:04 +02:00
vdumas
d2c7b13454 N°7484 - UserRequest/Incident solution field supports HTML 2024-05-15 10:38:16 +02:00
Molkobain
1366acd001 N°2039 - Fix modal flex direction to column 2024-05-15 10:10:11 +02:00
vdumas
bdd2e9ab4d N°7484 - UserRequest/Incident solution field supports HTML 2024-05-14 17:57:45 +02:00
vdumas
08b8be1ab2 N°7484 - UserRequest/Incident solution field supports HTML 2024-05-14 17:57:24 +02:00
Molkobain
5c46cb7c9b Merge remote-tracking branch 'origin/support/3.1' into support/3.2 2024-05-07 10:42:18 +02:00
Molkobain
d9581a083d Merge remote-tracking branch 'origin/support/3.0' into support/3.1 2024-05-07 10:41:04 +02:00
Molkobain
46738d4ba4 Merge remote-tracking branch 'origin/support/2.7' into support/3.0 2024-05-07 10:38:50 +02:00
Molkobain
5d5df5ad1a N°7255 - Fix misc. stylesheets not working in portal since N°7047 2024-05-07 10:37:39 +02:00
Molkobain
ad36066126 📝 Copyright year bump 2024-05-06 18:35:31 +02:00
Molkobain
a642ad6db9 N°2039 - Refresh messages without waiting for the providers TTL to avoid news not being visible even though they have been created 2024-05-02 17:44:25 +02:00
Molkobain
e680259728 N°2039 - Add test recipient for newsroom action 2024-05-02 17:17:53 +02:00
Molkobain
7b8887a9c8 N°2039 - Rename AsyncSendiTopNotifications into AsyncSendNewsroom 2024-05-02 17:15:14 +02:00
Molkobain
1ce81fe466 N°2039 - Fix information modal flex direction to column 2024-05-02 15:52:24 +02:00
Molkobain
3cf3159469 N°2039 - Fix visual glitches with set input and "+" icon 2024-05-02 15:28:49 +02:00
Molkobain
188a3fe3cc N°2039 - Improve title / message for set input with a minimum item constraint 2024-05-02 13:46:51 +02:00
Molkobain
848c4bb979 N°2039 - Fix autoloaders 2024-05-02 09:45:30 +02:00
Molkobain
b6ea73747d N°2039 - Rename ActioniTopNotification into ActionNewsroom 2024-05-02 09:33:51 +02:00
Molkobain
635c1bda6e N°2039 - Rename iTopNewsroom into NewsroomNotification 2024-05-02 09:30:47 +02:00
Molkobain
0d1c3aa464 N°2039 - Rework actions / events class labels 2024-05-01 20:17:05 +02:00
Stephen Abello
e1246ad375 N°7496 - Missing French translations for toasts preferences 2024-04-30 16:21:29 +02:00
jf-cbd
8305cfed24 Merge branch 'refs/heads/support/3.1' into support/3.2 2024-04-30 15:11:36 +02:00
jf-cbd
8c46c99ecc N°7313 - Bad display of single quotes in charts 2024-04-30 15:04:28 +02:00
Molkobain
f7bbbbbe87 N°2039 - Send news only to Person with at least 1 active user which has access to the backoffice 2024-04-30 11:26:42 +02:00
Molkobain
7b35692ce6 N°2039 - Fix notification not send if Person linked to more than 1 User 2024-04-30 11:26:26 +02:00
Molkobain
22fbb0ca13 N°7264 - Fix selectize background in transition forms 2024-04-30 11:26:26 +02:00
jf-cbd
3dccf9ee3f Merge remote-tracking branch 'refs/remotes/origin/support/3.1' into support/3.2 2024-04-30 10:57:46 +02:00
jf-cbd
02be397e8f Merge remote-tracking branch 'refs/remotes/origin/support/3.0' into support/3.1 2024-04-30 10:57:06 +02:00
jf-cbd
61469a28b9 N°7445 - Invalid Unicode escape sequence on dashlet Header with statistics 2024-04-30 10:56:09 +02:00
2789 changed files with 120404 additions and 167405 deletions

View File

@@ -79,6 +79,12 @@ gitGraph
commit id: "2023-08-10" tag: "2.7.9"
checkout support/3.1
commit id: "2023-12-20" tag: "3.1.1"
checkout support/2.7
commit id: "2024-01-17" tag: "2.7.10"
checkout develop
commit id: "2024-06-25" tag: "3.2.0-beta1" type: HIGHLIGHT
branch support/3.2 order: 830
checkout support/3.2
```
To learn more, check the [iTop community versions history on the official wiki](https://www.itophub.io/wiki/page?id=latest:release:start).

3
.gitignore vendored
View File

@@ -50,6 +50,9 @@ tests/*/vendor/*
# NPM: `jquery-ui` package is just there for vulnerability scans, so we don't want to version its files (only `jquery-ui-dist` is used within the code base)
/node_modules/jquery-ui/**
# Symfony: Local env file
/resources/symfony/.env.local
# PHPUnit: Cache file, local XML working copies
/tests/php-unit-tests/.phpunit.result.cache
/tests/php-unit-tests/phpunit.xml

View File

@@ -1,7 +1,7 @@
<?php
/**
* Copyright (C) 2010-2023 Combodo SARL
* Copyright (C) 2010-2024 Combodo SAS
*
* This file is part of iTop.
*
@@ -27,7 +27,7 @@ $iTopFolder = __DIR__."/../../../";
require_once("$iTopFolder/approot.inc.php");
require_once(APPROOT."/application/utils.inc.php");
if (php_sapi_name() !== 'cli')
if (PHP_SAPI !== 'cli')
{
throw new \Exception('This script can only run from CLI');
}
@@ -48,4 +48,4 @@ if (!file_exists($sCssFile))
{
fwrite(STDERR, "Failed to compile $sCssFile, exiting.");
exit(1);
}
}

View File

@@ -1,6 +1,6 @@
<?php
/**
* Copyright (C) 2010-2023 Combodo SARL
* Copyright (C) 2010-2024 Combodo SAS
*
* This file is part of iTop.
*

View File

@@ -1,6 +1,6 @@
<?php
/**
* Copyright (C) 2013-2023 Combodo SARL
* Copyright (C) 2013-2024 Combodo SAS
*
* This file is part of iTop.
*

View File

@@ -1,6 +1,6 @@
<?php
/**
* Copyright (C) 2010-2023 Combodo SARL
* Copyright (C) 2010-2024 Combodo SAS
*
* This file is part of iTop.
*

View File

@@ -1,6 +1,6 @@
<?php
/**
* Copyright (C) 2010-2023 Combodo SARL
* Copyright (C) 2010-2024 Combodo SAS
*
* This file is part of iTop.
*
@@ -53,12 +53,12 @@ switch ($sDependenciesHandlerCode) {
// Start handler
$oDependenciesHandler = new $sDependenciesHandlerFQCN();
$aDeniedButStillPresent = $oDependenciesHandler->ListDeniedButStillPresentFoldersAbsPaths();
$aDeniedButStillPresent = $oDependenciesHandler->ListDeniedButStillPresentFilesAbsPaths();
echo "\n";
foreach ($aDeniedButStillPresent as $sDir)
{
if (false === $oDependenciesHandler::IsQuestionnableFolder($sDir))
if (false === $oDependenciesHandler::IsQuestionnableFile($sDir))
{
echo "ERROR found INVALID denied test dir: '$sDir'\n";
throw new \RuntimeException("$sDir is in the denied list but doesn't comply with the rule (see IsQuestionnableFolder method)");
@@ -70,7 +70,12 @@ foreach ($aDeniedButStillPresent as $sDir)
}
try {
SetupUtils::rrmdir($sDir);
if(is_dir($sDir)){
SetupUtils::rrmdir($sDir);
}
else{
unlink($sDir);
}
echo "✔️ Remove denied test dir: '$sDir'\n";
}
catch (\Exception $e) {
@@ -80,10 +85,10 @@ foreach ($aDeniedButStillPresent as $sDir)
$aAllowedAndDeniedDirs = array_merge(
$oDependenciesHandler->ListAllowedFoldersAbsPaths(),
$oDependenciesHandler->ListDeniedFoldersAbsPaths()
$oDependenciesHandler->ListAllowedFilesAbsPaths(),
$oDependenciesHandler->ListDeniedFilesAbsPaths()
);
$aExistingDirs = $oDependenciesHandler->ListAllFoldersAbsPaths();
$aExistingDirs = $oDependenciesHandler->ListAllFilesAbsPaths();
$aMissing = array_diff($aExistingDirs, $aAllowedAndDeniedDirs);
if (false === empty($aMissing)) {
echo "Some new tests dirs exists !\n"

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2023 Combodo SARL
// Copyright (C) 2010-2024 Combodo SAS
//
// This file is part of iTop.
//
@@ -19,7 +19,7 @@
/**
* UserRightsMatrix (User management Module)
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2023 Combodo SARL
// Copyright (C) 2010-2024 Combodo SAS
//
// This file is part of iTop.
//
@@ -20,7 +20,7 @@
* UserRightsNull
* User management Module - say Yeah! to everything
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/**
* Copyright (C) 2013-2023 Combodo SARL
* Copyright (C) 2013-2024 Combodo SAS
*
* This file is part of iTop.
*

View File

@@ -1,6 +1,6 @@
<?php
/**
* Copyright (C) 2013-2023 Combodo SARL
* Copyright (C) 2013-2024 Combodo SAS
*
* This file is part of iTop.
*

View File

@@ -1,6 +1,6 @@
<?php
/**
* Copyright (C) 2013-2023 Combodo SARL
* Copyright (C) 2013-2024 Combodo SAS
*
* This file is part of iTop.
*

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,331 +0,0 @@
<?php
namespace Html2Text;
if (!function_exists('mb_split'))
{
function mb_split($pattern, $subject, $limit = -1)
{
return preg_split('/'.$pattern.'/', $subject, $limit);
}
}
/**
* Replace all occurrences of the search string with the replacement string.
*
* @author Sean Murphy <sean@iamseanmurphy.com>
* @copyright Copyright 2012 Sean Murphy. All rights reserved.
* @license http://creativecommons.org/publicdomain/zero/1.0/
* @link http://php.net/manual/function.str-replace.php
*
* @param mixed $search
* @param mixed $replace
* @param mixed $subject
* @param int $count
* @return mixed
*/
function mb_str_replace($search, $replace, $subject, &$count = 0) {
if (!is_array($subject)) {
// Normalize $search and $replace so they are both arrays of the same length
$searches = is_array($search) ? array_values($search) : array($search);
$replacements = is_array($replace) ? array_values($replace) : array($replace);
$replacements = array_pad($replacements, count($searches), '');
foreach ($searches as $key => $search) {
$parts = mb_split(preg_quote($search), $subject);
if (is_array($parts))
{
$count += count($parts) - 1;
$subject = implode($replacements[$key], $parts);
}
}
} else {
// Call mb_str_replace for each subject in array, recursively
foreach ($subject as $key => $value) {
$subject[$key] = mb_str_replace($search, $replace, $value, $count);
}
}
return $subject;
}
/******************************************************************************
* Copyright (c) 2010 Jevon Wright and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* or
*
* LGPL which is available at http://www.gnu.org/licenses/lgpl.html
*
*
* Contributors:
* Jevon Wright - initial API and implementation
* Denis Flaven - some fixes for properly handling UTF-8 characters
****************************************************************************/
class Html2Text {
/**
* Tries to convert the given HTML into a plain text format - best suited for
* e-mail display, etc.
*
* <p>In particular, it tries to maintain the following features:
* <ul>
* <li>Links are maintained, with the 'href' copied over
* <li>Information in the &lt;head&gt; is lost
* </ul>
*
* @param string html the input HTML
* @return string the HTML converted, as best as possible, to text
* @throws Html2TextException if the HTML could not be loaded as a {@link DOMDocument}
*/
static function convert($html) {
// replace &nbsp; with spaces
$html = str_replace("&nbsp;", " ", $html);
$html = mb_str_replace("\xc2\xa0", " ", $html); // DO NOT USE str_replace since it breaks the "à" character which is \xc3 \xa0 in UTF-8
$html = static::fixNewlines($html);
$doc = new \DOMDocument();
if (!@$doc->loadHTML('<?xml encoding="UTF-8">'.$html)) // Forces the UTF-8 character set for HTML fragments
{
throw new Html2TextException("Could not load HTML - badly formed?", $html);
}
$output = static::iterateOverNode($doc);
// remove leading and trailing spaces on each line
$output = preg_replace("/[ \t]*\n[ \t]*/im", "\n", $output);
$output = preg_replace("/ *\t */im", "\t", $output);
// remove unnecessary empty lines
$output = preg_replace("/\n\n\n*/im", "\n\n", $output);
// remove leading and trailing whitespace
$output = trim($output);
return $output;
}
/**
* Unify newlines; in particular, \r\n becomes \n, and
* then \r becomes \n. This means that all newlines (Unix, Windows, Mac)
* all become \ns.
*
* @param string text text with any number of \r, \r\n and \n combinations
* @return string the fixed text
*/
static function fixNewlines($text) {
// replace \r\n to \n
$text = str_replace("\r\n", "\n", $text);
// remove \rs
$text = str_replace("\r", "\n", $text);
return $text;
}
static function nextChildName($node) {
// get the next child
$nextNode = $node->nextSibling;
while ($nextNode != null) {
if ($nextNode instanceof \DOMElement) {
break;
}
$nextNode = $nextNode->nextSibling;
}
$nextName = null;
if ($nextNode instanceof \DOMElement && $nextNode != null) {
$nextName = strtolower($nextNode->nodeName);
}
return $nextName;
}
static function prevChildName($node) {
// get the previous child
$nextNode = $node->previousSibling;
while ($nextNode != null) {
if ($nextNode instanceof \DOMElement) {
break;
}
$nextNode = $nextNode->previousSibling;
}
$nextName = null;
if ($nextNode instanceof \DOMElement && $nextNode != null) {
$nextName = strtolower($nextNode->nodeName);
}
return $nextName;
}
static function iterateOverNode($node) {
if ($node instanceof \DOMText) {
// Replace whitespace characters with a space (equivilant to \s)
return preg_replace("/[\\t\\n\\f\\r ]+/im", " ", $node->wholeText);
}
if ($node instanceof \DOMDocumentType) {
// ignore
return "";
}
$nextName = static::nextChildName($node);
$prevName = static::prevChildName($node);
$name = strtolower($node->nodeName);
// start whitespace
switch ($name) {
case "hr":
return "---------------------------------------------------------------\n";
case "style":
case "head":
case "title":
case "meta":
case "script":
// ignore these tags
return "";
case "h1":
case "h2":
case "h3":
case "h4":
case "h5":
case "h6":
case "ol":
case "ul":
// add two newlines, second line is added below
$output = "\n";
break;
case "td":
case "th":
// add tab char to separate table fields
$output = "\t";
break;
case "tr":
case "p":
case "div":
// add one line
$output = "\n";
break;
case "li":
$output = "- ";
break;
default:
// print out contents of unknown tags
$output = "";
break;
}
// debug
//$output .= "[$name,$nextName]";
if (isset($node->childNodes)) {
for ($i = 0; $i < $node->childNodes->length; $i++) {
$n = $node->childNodes->item($i);
$text = static::iterateOverNode($n);
$output .= $text;
}
}
// end whitespace
switch ($name) {
case "h1":
case "h2":
case "h3":
case "h4":
case "h5":
case "h6":
$output .= "\n";
break;
case "p":
case "br":
// add one line
if ($nextName != "div")
$output .= "\n";
break;
case "div":
// add one line only if the next child isn't a div
if ($nextName != "div" && $nextName != null)
$output .= "\n";
break;
case "a":
// links are returned in [text](link) format
$href = $node->getAttribute("href");
$output = trim($output);
// remove double [[ ]] s from linking images
if (substr($output, 0, 1) == "[" && substr($output, -1) == "]") {
$output = substr($output, 1, strlen($output) - 2);
// for linking images, the title of the <a> overrides the title of the <img>
if ($node->getAttribute("title")) {
$output = $node->getAttribute("title");
}
}
// if there is no link text, but a title attr
if (!$output && $node->getAttribute("title")) {
$output = $node->getAttribute("title");
}
if ($href == null) {
// it doesn't link anywhere
if ($node->getAttribute("name") != null) {
$output = "[$output]";
}
} else {
if ($href == $output || $href == "mailto:$output" || $href == "http://$output" || $href == "https://$output") {
// link to the same address: just use link
$output;
} else {
// replace it
if ($output) {
$output = "[$output]($href)";
} else {
// empty string
$output = $href;
}
}
}
// does the next node require additional whitespace?
switch ($nextName) {
case "h1": case "h2": case "h3": case "h4": case "h5": case "h6":
$output .= "\n";
break;
}
break;
case "img":
if ($node->getAttribute("title")) {
$output = "[" . $node->getAttribute("title") . "]";
} elseif ($node->getAttribute("alt")) {
$output = "[" . $node->getAttribute("alt") . "]";
} else {
$output = "";
}
break;
case "li":
$output .= "\n";
break;
default:
// do nothing
}
return $output;
}
}

View File

@@ -1,28 +0,0 @@
<?php
/******************************************************************************
* Copyright (c) 2010 Jevon Wright and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* or
*
* LGPL which is available at http://www.gnu.org/licenses/lgpl.html
*
*
* Contributors:
* Jevon Wright - initial API and implementation
****************************************************************************/
namespace Html2Text;
class Html2TextException extends \Exception {
var $more_info;
public function __construct($message = "", $more_info = "") {
parent::__construct($message);
$this->more_info = $more_info;
}
}

View File

@@ -2,7 +2,7 @@
/**
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/AjaxPage.php, now loadable using autoloader
* @license http://opensource.org/licenses/AGPL-3.0
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
*/
// cannot notify depreciation for now as this is still load in autoloader

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2023 Combodo SARL
// Copyright (C) 2010-2024 Combodo SAS
//
// This file is part of iTop.
//
@@ -20,7 +20,7 @@
/**
* Class ApplicationContext
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,7 +1,7 @@
<?php
/**
* Copyright (C) 2013-2023 Combodo SARL
* Copyright (C) 2013-2024 Combodo SAS
*
* This file is part of iTop.
*
@@ -31,7 +31,7 @@ require_once(APPROOT.'application/newsroomprovider.class.inc.php');
* Definition of interfaces that can be implemented to customize iTop.
* You may implement such interfaces in a module file (e.g. main.mymodule.php)
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
* @since 2.7.0
*/

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2023 Combodo SARL
// Copyright (C) 2010-2024 Combodo SAS
//
// This file is part of iTop.
//
@@ -22,7 +22,7 @@
* to check and is linked to a set of rules that determine the valid or invalid objects
* inside the set
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2023 Combodo SARL
// Copyright (C) 2010-2024 Combodo SAS
//
// This file is part of iTop.
//
@@ -22,7 +22,7 @@
* to check and is linked to a set of rules that determine the valid or invalid objects
* inside the set
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2023 Combodo SARL
// Copyright (C) 2010-2024 Combodo SAS
//
// This file is part of iTop.
//
@@ -23,7 +23,7 @@
* or the "bad" ones. The core audit engines computes the complement to the definition
* set when needed to obtain either the valid objects, or the ones with an error
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -2,7 +2,7 @@
/**
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/CaptureWebPage.php, now loadable using autoloader
* @license http://opensource.org/licenses/AGPL-3.0
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
*/
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/CaptureWebPage.php, now loadable using autoloader');

View File

@@ -2,7 +2,7 @@
/**
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/CLIPage.php, now loadable using autoloader
* @license http://opensource.org/licenses/AGPL-3.0
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
*/
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/CLIPage.php, now loadable using autoloader');

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
@@ -1061,11 +1061,6 @@ HTML
}
}
// Fields with CKEditor need to have the highlight.js lib loaded even if they are in read-only, as it is needed to format code snippets
if ($bHasFieldsWithRichTextEditor) {
WebResourcesHelper::EnableCKEditorToWebPage($oPage);
}
return $aFieldsMap;
}
@@ -2308,7 +2303,7 @@ JS
$sHidden = "<input type=\"hidden\" id=\"{$iId}_count\" value=\"$iEntriesCount\"/>"; // To know how many entries the case log already contains
$sHTMLValue = "$sHeader<div class=\"ibo-caselog-entry-form--text-input\" $sStyle data-role=\"ibo-caselog-entry-form--text-input\">";
$sHTMLValue .= "<textarea class=\"htmlEditor ibo-input-richtext-placeholder\" style=\"border:0;width:100%\" title=\"$sHelpText\" name=\"attr_{$sFieldPrefix}{$sAttCode}{$sNameSuffix}\" rows=\"8\" cols=\"40\" id=\"$iId\">".utils::EscapeHtml($sEditValue)."</textarea>";
$sHTMLValue .= "<textarea class=\"htmlEditor ibo-input-richtext-placeholder\" style=\"border:0;width:100%\" title=\"$sHelpText\" name=\"attr_{$sFieldPrefix}{$sAttCode}{$sNameSuffix}\" rows=\"8\" cols=\"40\" id=\"$iId\">".CKEditorHelper::PrepareCKEditorValueTextEncodingForTextarea($sEditValue)."</textarea>";
$sHTMLValue .= "$sPreviousLog</div>{$sValidationSpan}{$sReloadSpan}$sHidden";
// Note: This should be refactored for all types of attribute (see at the end of this function) but as we are doing this for a maintenance release, we are scheduling it for the next main release in to order to avoid regressions as much as possible.
@@ -2320,40 +2315,10 @@ JS
$oPage->add_ready_script("$('#$iId').on('keyup change validate', function(evt, sFormId) { return ValidateCaseLogField('$iId', $bMandatory, sFormId, $sNullValue, $sOriginalValue) } );"); // Custom validation function
// Replace the text area with CKEditor
// To change the default settings of the editor,
// a) edit the file /js/ckeditor/config.js
// b) or override some of the configuration settings, using the second parameter of ckeditor()
$aConfig = CKEditorHelper::GetCkeditorPref();
$aConfig['placeholder'] = Dict::S('UI:CaseLogTypeYourTextHere');
$aConfig['detectChanges'] = ['initialValue' => $sOriginalValue];
// - Final config
$sConfigJS = json_encode($aConfig);
WebResourcesHelper::EnableCKEditorToWebPage($oPage);
$oPage->add_ready_script("CombodoCKEditorHandler.CreateInstance('#$iId')");
$oPage->add_ready_script(
<<<EOF
$('#$iId').on('update', function(evt){
BlockField('cke_$iId', $('#$iId').attr('disabled'));
//Delayed execution - ckeditor must be properly initialized before setting readonly
var retryCount = 0;
var oMe = $('#$iId');
var delayedSetReadOnly = function () {
if (oMe.data('ckeditorInstance').editable() == undefined && retryCount++ < 10) {
setTimeout(delayedSetReadOnly, retryCount * 100); //Wait a while longer each iteration
}
else
{
oMe.data('ckeditorInstance').setReadOnly(oMe.prop('disabled'));
}
};
setTimeout(delayedSetReadOnly, 50);
});
EOF
);
// configure CKEditor
CKEditorHelper::ConfigureCKEditorElementForWebPage($oPage, $iId, $sOriginalValue, true, [
'placeholder' => Dict::S('UI:CaseLogTypeYourTextHere'),
]);
break;
case 'HTML':
@@ -4605,6 +4570,8 @@ HTML;
/** @var \iApplicationObjectExtension $oExtensionInstance */
foreach(MetaModel::EnumPlugins('iApplicationObjectExtension') as $oExtensionInstance)
{
$sExtensionClass = get_class($oExtensionInstance);
$this->LogCRUDDebug(__METHOD__, "Calling $sExtensionClass::OnDBInsert()");
$oKPI = new ExecutionKPI();
$oExtensionInstance->OnDBInsert($oNewObj, self::GetCurrentChange());
$oKPI->ComputeStatsForExtension($oExtensionInstance, 'OnDBInsert');
@@ -4686,7 +4653,22 @@ HTML;
return $oDeletionPlan;
}
protected function PostDeleteActions(): void
final protected function PreDeleteActions(): void
{
/** @var \iApplicationObjectExtension $oExtensionInstance */
foreach(MetaModel::EnumPlugins('iApplicationObjectExtension') as $oExtensionInstance)
{
$sExtensionClass = get_class($oExtensionInstance);
$this->LogCRUDDebug(__METHOD__, "Calling $sExtensionClass::OnDBDelete()");
$oKPI = new ExecutionKPI();
$oExtensionInstance->OnDBDelete($this, self::GetCurrentChange());
$oKPI->ComputeStatsForExtension($oExtensionInstance, 'OnDBDelete');
}
parent::PreDeleteActions();
}
final protected function PostDeleteActions(): void
{
parent::PostDeleteActions();
}
@@ -4700,6 +4682,8 @@ HTML;
/** @var \iApplicationObjectExtension $oExtensionInstance */
foreach(MetaModel::EnumPlugins('iApplicationObjectExtension') as $oExtensionInstance)
{
$sExtensionClass = get_class($oExtensionInstance);
$this->LogCRUDDebug(__METHOD__, "Calling $sExtensionClass::OnDBDelete()");
$oKPI = new ExecutionKPI();
$oExtensionInstance->OnDBDelete($this, self::GetCurrentChange());
$oKPI->ComputeStatsForExtension($oExtensionInstance, 'OnDBDelete');
@@ -4721,6 +4705,7 @@ HTML;
foreach(MetaModel::EnumPlugins('iApplicationObjectExtension') as $oExtensionInstance)
{
$sExtensionClass = get_class($oExtensionInstance);
$this->LogCRUDDebug(__METHOD__, "Calling $sExtensionClass::OnIsModified()");
$oKPI = new ExecutionKPI();
$bIsModified = $oExtensionInstance->OnIsModified($this);
$oKPI->ComputeStatsForExtension($oExtensionInstance, 'OnIsModified');
@@ -4780,6 +4765,8 @@ HTML;
/** @var \iApplicationObjectExtension $oExtensionInstance */
foreach(MetaModel::EnumPlugins('iApplicationObjectExtension') as $oExtensionInstance)
{
$sExtensionClass = get_class($oExtensionInstance);
$this->LogCRUDDebug(__METHOD__, "Calling $sExtensionClass::OnCheckToWrite()");
$oKPI = new ExecutionKPI();
$aNewIssues = $oExtensionInstance->OnCheckToWrite($this);
$oKPI->ComputeStatsForExtension($oExtensionInstance, 'OnCheckToWrite');
@@ -4830,6 +4817,8 @@ HTML;
/** @var \iApplicationObjectExtension $oExtensionInstance */
foreach(MetaModel::EnumPlugins('iApplicationObjectExtension') as $oExtensionInstance)
{
$sExtensionClass = get_class($oExtensionInstance);
$this->LogCRUDDebug(__METHOD__, "Calling $sExtensionClass::OnCheckToDelete()");
$oKPI = new ExecutionKPI();
$aNewIssues = $oExtensionInstance->OnCheckToDelete($this);
$oKPI->ComputeStatsForExtension($oExtensionInstance, 'OnCheckToDelete');
@@ -5956,7 +5945,7 @@ JS
final protected function FireEventAfterWrite(array $aChanges, bool $bIsNew): void
{
$this->NotifyAttachedObjectsOnLinkClassModification();
$this->FireEventDbLinksChangedForCurrentObject();
$this->RemoveObjectAwaitingEventDbLinksChanged(get_class($this), $this->GetKey());
$this->FireEvent(EVENT_DB_AFTER_WRITE, ['is_new' => $bIsNew, 'changes' => $aChanges]);
}
@@ -6069,31 +6058,6 @@ JS
}
}
/**
* Fire the EVENT_DB_LINKS_CHANGED event if current object is registered
*
* @return void
* @throws \ArchivedObjectException
* @throws \CoreException
*
* @since 3.1.0 N°5906
*/
final protected function FireEventDbLinksChangedForCurrentObject(): void
{
if (true === static::IsEventDBLinksChangedBlocked()) {
return;
}
$sClass = get_class($this);
$sId = $this->GetKey();
$bIsObjectAwaitingEventDbLinksChanged = self::RemoveObjectAwaitingEventDbLinksChanged($sClass, $sId);
if (false === $bIsObjectAwaitingEventDbLinksChanged) {
return;
}
self::FireEventDbLinksChangedForObject($this);
self::RemoveObjectAwaitingEventDbLinksChanged($sClass, $sId);
}
/**
* Fire the EVENT_DB_LINKS_CHANGED event if given object is registered, and unregister it
*
@@ -6132,9 +6096,9 @@ JS
self::SetEventDBLinksChangedBlocked(true);
// N°6408 The object can have been deleted
if (!is_null($oObject)) {
MetaModel::StartReentranceProtection($oObject);
$oObject->FireEvent(EVENT_DB_LINKS_CHANGED);
MetaModel::StopReentranceProtection($oObject);
// Update the object if needed
if (count($oObject->ListChanges()) !== 0) {
$oObject->DBUpdate();
}

View File

@@ -1,6 +1,6 @@
<?php
/**
* Copyright (C) 2013-2023 Combodo SARL
* Copyright (C) 2013-2024 Combodo SAS
*
* This file is part of iTop.
*

View File

@@ -2,7 +2,7 @@
/**
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/CSVPage.php, now loadable using autoloader
* @license http://opensource.org/licenses/AGPL-3.0
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
*/
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/CSVPage.php, now loadable using autoloader');

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2023 Combodo SARL
// Copyright (C) 2010-2024 Combodo SAS
//
// This file is part of iTop.
//
@@ -24,7 +24,7 @@ use Combodo\iTop\Application\WebPage\WebPage;
/**
* Dashboard presentation
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
abstract class DashboardLayout

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2012-2023 Combodo SARL
// Copyright (C) 2012-2024 Combodo SAS
//
// This file is part of iTop.
//
@@ -30,7 +30,7 @@ require_once(APPROOT.'application/forms.class.inc.php');
/**
* Base class for all 'dashlets' (i.e. widgets to be inserted into a dashboard)
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
abstract class Dashlet

View File

@@ -185,6 +185,11 @@
<decoration_classes>fas fa-cog</decoration_classes>
</style>
</menu>
<menu id="Integrations" xsi:type="TemplateMenuNode" _delta="define">
<rank>50</rank>
<parent>ConfigurationTools</parent>
<template_file/>
</menu>
<menu id="DataSources" xsi:type="OQLMenuNode" _delta="define">
<rank>20</rank>
<parent>ConfigurationTools</parent>
@@ -242,7 +247,9 @@ The object can be modified.]]></description>
<event id="EVENT_DB_CHECK_TO_WRITE" _delta="define">
<name>Check to write</name>
<description><![CDATA[Check an object before it is written into the database (no change possible).
Call $this->AddCheckIssue() to signal an issue.]]></description>
Call $this->AddCheckIssue($sErrorMessage) to report a blocking issue.
Call $this->AddCheckWarning($sWarningMessage) to display a warning.
]]></description>
<sources>
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
</sources>
@@ -292,7 +299,7 @@ The modifications can be propagated to other objects.]]></description>
<event id="EVENT_DB_CHECK_TO_DELETE" _delta="define">
<name>Check to delete</name>
<description><![CDATA[Check an object before it is deleted from the database.
Call $this->AddDeleteIssue() to signal an issue.]]></description>
Call $this->AddDeleteIssue($sIssueMessage) to signal an issue.]]></description>
<sources>
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
</sources>
@@ -347,7 +354,7 @@ Call $this->AddDeleteIssue() to signal an issue.]]></description>
<event id="EVENT_ENUM_TRANSITIONS" _delta="define">
<name>Enum transitions</name>
<description><![CDATA[Manage the allowed transitions in current object state.
The only action allowed is to deny transitions with $this->DenyTransition()]]></description>
The only action allowed is to deny transitions with $this->DenyTransition($sTransitionCode)]]></description>
<sources>
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
</sources>
@@ -456,7 +463,7 @@ The only action allowed is to deny transitions with $this->DenyTransition()]]></
<event id="EVENT_DB_SET_ATTRIBUTES_FLAGS" _delta="define">
<name>Set attributes flags</name>
<description><![CDATA[Set object attributes flags.
Call $this->AddAttributeFlags() for all the attributes to be set for this target state.]]></description>
Call $this->AddAttributeFlags($sAttCode, $iFlags) for all the attributes to be set for this target state.]]></description>
<sources>
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
</sources>
@@ -478,7 +485,7 @@ Call $this->AddAttributeFlags() for all the attributes to be set for this target
<event id="EVENT_DB_SET_INITIAL_ATTRIBUTES_FLAGS" _delta="define">
<name>Set initial attributes flags</name>
<description><![CDATA[Set object initial attributes flags.
Call $this->AddInitialAttributeFlags() for all the initial attributes to be set initially.]]></description>
Call $this->AddInitialAttributeFlags($sAttCode, $iFlags) for all the initial attributes to be set initially.]]></description>
<sources>
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
</sources>

View File

@@ -5,7 +5,7 @@ use Combodo\iTop\Application\WebPage\WebPage;
use Combodo\iTop\Renderer\Console\ConsoleBlockRenderer;
/**
* Copyright (C) 2013-2023 Combodo SARL
* Copyright (C) 2013-2024 Combodo SAS
*
* This file is part of iTop.
*

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
@@ -1695,7 +1695,7 @@ JS
$sHtmlValue = $oGroupByExp->MakeValueLabel($this->m_oFilter, $sValue, $sValue);
$iTotalCount += $aRow['_itop_count_'];
$aValues[] = array(
'label' => $sValue,
'label' => html_entity_decode(strip_tags($sHtmlValue), ENT_QUOTES, 'UTF-8'),
'label_html' => $sHtmlValue,
'value' => (float)$aRow[$sFctVar],
);

View File

@@ -2,7 +2,7 @@
/**
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/ErrorPage.php, now loadable using autoloader
* @license http://opensource.org/licenses/AGPL-3.0
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
*/
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/ErrorPage.php, now loadable using autoloader');

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
@@ -60,6 +60,24 @@ class CoreCannotSaveObjectException extends CoreException
return $sContent;
}
public function getTextMessage()
{
$sTitle = Dict::S('UI:Error:SaveFailed');
$sContent = utils::HtmlEntities($sTitle);
if (count($this->aIssues) == 1) {
$sIssue = reset($this->aIssues);
$sContent .= utils::HtmlEntities($sIssue);
} else {
foreach ($this->aIssues as $sError) {
$sContent .= " ".utils::HtmlEntities($sError).", ";
}
}
return $sContent;
}
public function getIssues()
{
return $this->aIssues;

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/**
* Copyright (C) 2013-2023 Combodo SARL
* Copyright (C) 2013-2024 Combodo SAS
*
* This file is part of iTop.
*

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2023 Combodo SARL
// Copyright (C) 2010-2024 Combodo SAS
//
// This file is part of iTop.
//
@@ -21,7 +21,7 @@ use Combodo\iTop\Application\WebPage\WebPage;
* Helper class to build interactive forms to be used either in stand-alone
* modal dialog or in "property-sheet" panes.
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
class DesignerForm
@@ -209,7 +209,7 @@ class DesignerForm
public function RenderAsPropertySheet($oP, $bReturnHTML = false, $sNotifyParentSelector = null)
{
$sReturn = '';
$sActionUrl = addslashes($this->sSubmitTo);
$sActionUrl = addslashes($this->sSubmitTo ?? '');
$sJSSubmitParams = json_encode($this->aSubmitParams);
$sFormId = $this->GetFormId();
if ($this->oParentForm == null) {
@@ -1330,7 +1330,8 @@ class DesignerComboField extends DesignerFormField
{
if ($this->bMultipleSelection)
{
$sHtml = "<span><select $sCSSClasses multiple size=\"8\"id=\"$sId\" name=\"$sName\">";
$iSize = max(1, min(8, count($this->aAllowedValues)));
$sHtml = "<span><select $sCSSClasses multiple size=\"$iSize\" id=\"$sId\" name=\"$sName\">";
}
else
{

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2023 Combodo SARL
// Copyright (C) 2010-2024 Combodo SAS
//
// This file is part of iTop.
//
@@ -20,7 +20,7 @@
/**
* Persistent class InputOutputTask
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -2,7 +2,7 @@
/**
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/iTopWebPage.php, now loadable using autoloader
* @license http://opensource.org/licenses/AGPL-3.0
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
*/
// cannot notify depreciation for now as this is still MASSIVELY used in iTop core !

View File

@@ -2,7 +2,7 @@
/**
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/iTopWizardWebPage.php, now loadable using autoloader
* @license http://opensource.org/licenses/AGPL-3.0
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
*/
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/iTopWizardWebPage.php, now loadable using autoloader');

View File

@@ -5,7 +5,7 @@ use Combodo\iTop\Application\Helper\Session;
/**
* Class LoginBasic
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/**
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
@@ -53,6 +53,12 @@ class LoginDefaultBefore extends AbstractLoginFSMExtension
{
// Force login mode
LoginWebPage::SetLoginModeAndReload($sProposedLoginMode);
} else {
$sRawLoginMode = utils::ReadParam('login_mode', '', false, utils::ENUM_SANITIZATION_FILTER_RAW_DATA);
if ($sProposedLoginMode !== $sRawLoginMode) {
IssueLog::Error("Authentication issue due to login_mode parameter sanitization. Please avoid special characters", null, ['sRawLoginMode' => $sRawLoginMode]);
//IssueLog::Error("Authentication issue due to login_mode parameter sanitization. Please avoid special characters", null, ['sRawLoginMode' => utils::HtmlEntities($sRawLoginMode)]);
}
}
return LoginWebPage::LOGIN_FSM_CONTINUE;
}

View File

@@ -5,7 +5,7 @@ use Combodo\iTop\Application\Helper\Session;
/**
* Class LoginExternal
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,7 +1,7 @@
<?php
/**
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -2,7 +2,7 @@
/**
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
@@ -52,12 +52,13 @@ class LoginTwigContext
/**
* Set the absolute path on disk of the folder containing the twig templates
*
* @param string $sPath absolute path of twig templates directory
* @api
*
*@param string $sAbsPath Absolute path of twig templates directory
*/
public function SetLoaderPath($sPath)
public function SetLoaderPath($sAbsPath)
{
$this->sTwigLoaderPath = $sPath;
$this->sTwigLoaderPath = $sAbsPath;
}
/**
@@ -84,24 +85,27 @@ class LoginTwigContext
}
/**
* Add the URL of a CSS file to link to the login screen
* Add the absolute URL of a CSS file to link to the login screen
*
* @param string $sFile URL of the CSS file to link
* @api
*
* @param string $sFileAbsURL Absolute URL of the CSS file to link
*/
public function AddCSSFile($sFile)
public function AddCSSFile($sFileAbsURL)
{
$this->aCSSFiles[] = $sFile;
$this->aCSSFiles[] = $sFileAbsURL;
}
/**
* Add the URL of a javascript file to link to the login screen
* @param string $sFile URL of the javascript file to link
* Add the absolute URL of a javascript file to link to the login screen
*
* @api
*
* @param string $sFileAbsURL Absolute URL of the javascript file to link
*/
public function AddJsFile($sFile)
public function AddJsFile($sFileAbsURL)
{
$this->aJsFiles[] = $sFile;
$this->aJsFiles[] = $sFileAbsURL;
}
/**
@@ -133,7 +137,7 @@ class LoginTwigContext
}
/**
* @return array
* @return array Absolute URLs of the CSS files
*/
public function GetCSSFiles()
{
@@ -141,7 +145,7 @@ class LoginTwigContext
}
/**
* @return array
* @return array Absolute URLs of the JS files
*/
public function GetJsFiles()
{
@@ -274,12 +278,12 @@ class LoginTwigRenderer
$aCSSFiles = $oFormData->GetCSSFiles();
foreach ($aCSSFiles as $sCSSFile)
{
$oPage->add_linked_stylesheet($sCSSFile);
$oPage->LinkStylesheetFromURI($sCSSFile);
}
$aJsFiles = $oFormData->GetJsFiles();
foreach ($aJsFiles as $sJsFile)
{
$oPage->add_linked_script($sJsFile);
$oPage->LinkScriptFromURI($sJsFile);
}
}

View File

@@ -5,7 +5,7 @@ use Combodo\iTop\Application\Helper\Session;
/**
* Class LoginURL
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2023 Combodo SARL
// Copyright (C) 2010-2024 Combodo SAS
//
// This file is part of iTop.
//
@@ -20,7 +20,7 @@
/**
* Class LoginWebPage
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/**
* Copyright (C) 2013-2023 Combodo SARL
* Copyright (C) 2013-2024 Combodo SAS
*
* This file is part of iTop.
*

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2023 Combodo SARL
// Copyright (C) 2010-2024 Combodo SAS
//
// This file is part of iTop.
//

View File

@@ -2,7 +2,7 @@
/**
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/NiceWebPage.php, now loadable using autoloader
* @license http://opensource.org/licenses/AGPL-3.0
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
*/
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/NiceWebPage.php, now loadable using autoloader');

View File

@@ -2,7 +2,7 @@
/**
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/PDFPage.php, now loadable using autoloader
* @license http://opensource.org/licenses/AGPL-3.0
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
*/
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/PDFPage.php, now loadable using autoloader');

View File

@@ -9,11 +9,17 @@ class PortalDispatcher
$this->sPortalid = $sPortalId;
$this->aData = PortalDispatcherData::GetData($sPortalId);
}
public function IsUserAllowed()
/**
* @param \User|null $oUser
*
* @return bool
* @since 3.2.0 N°2039 Add $oUser parameter
*/
public function IsUserAllowed(?User $oUser = null)
{
$bRet = true;
$aProfiles = UserRights::ListProfiles();
$aProfiles = UserRights::ListProfiles($oUser);
foreach($this->aData['deny'] as $sDeniedProfile)
{

View File

@@ -1,6 +1,6 @@
<?php
/*
* Copyright (C) 2010-2023 Combodo SARL
* Copyright (C) 2010-2024 Combodo SAS
*
* This file is part of iTop.
*

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2023 Combodo SARL
// Copyright (C) 2010-2024 Combodo SAS
//
// This file is part of iTop.
//
@@ -23,7 +23,7 @@ use Combodo\iTop\Application\WebPage\WebPage;
* Persistent class Shortcut and derived
* Shortcuts of any kind
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2023 Combodo SARL
// Copyright (C) 2010-2024 Combodo SAS
//
// This file is part of iTop.
//
@@ -27,7 +27,7 @@ require_once(APPROOT.'setup/setuputils.class.inc.php');
/**
* File to include to initialize the datamodel in memory
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,6 +1,6 @@
<?php
/**
* Copyright (C) 2013-2023 Combodo SARL
* Copyright (C) 2013-2024 Combodo SAS
*
* This file is part of iTop.
*

View File

@@ -1,6 +1,6 @@
<?php
/**
* Copyright (C) 2013-2023 Combodo SARL
* Copyright (C) 2013-2024 Combodo SAS
*
* This file is part of iTop.
*

View File

@@ -1,6 +1,6 @@
<?php
/**
* Copyright (C) 2013-2023 Combodo SARL
* Copyright (C) 2013-2024 Combodo SAS
*
* This file is part of iTop.
*

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2023 Combodo SARL
// Copyright (C) 2010-2024 Combodo SAS
//
// This file is part of iTop.
//
@@ -24,7 +24,7 @@ use Combodo\iTop\Application\Helper\Session;
* which choice is configured via the parameter 'transaction_storage'
*
* @package iTop
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
class privUITransaction

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2023 Combodo SARL
// Copyright (C) 2010-2024 Combodo SAS
//
// This file is part of iTop.
//
@@ -26,7 +26,7 @@ use Combodo\iTop\Renderer\BlockRenderer;
* UI wdiget for displaying and editing one-way encrypted passwords
*
* @author Romain Quetiez
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
@@ -57,81 +57,41 @@ class UIHTMLEditorWidget
/**
* Get the HTML fragment corresponding to the HTML editor widget
* @param WebPage $oP The web page used for all the output
* @param Hash $aArgs Extra context arguments
*
* @param WebPage $oPage The web page used for all the output
* @param array $aArgs Extra context arguments
*
* @return string The HTML fragment to be inserted into the page
*/
public function Display(WebPage $oPage, $aArgs = array())
public function Display(WebPage $oPage, array $aArgs = array()) : string
{
$iId = $this->m_iId;
$sCode = $this->m_sAttCode.$this->m_sNameSuffix;
$sValue = $this->m_sValue;
$sHelpText = $this->m_sHelpText;
$sValidationField = $this->m_sValidationField;
$aConfig = [];
$sHtmlValue = "<div class=\"field_input_zone field_input_html ibo-input-wrapper\"><textarea class=\"htmlEditor ibo-input-richtext-placeholder\" title=\"$sHelpText\" name=\"attr_{$this->m_sFieldPrefix}{$sCode}\" id=\"$iId\">$sValue</textarea></div>$sValidationField";
$sEncodedValue = CKEditorHelper::PrepareCKEditorValueTextEncodingForTextarea($sValue);
$sHtmlValue = "<div class=\"field_input_zone field_input_html ibo-input-wrapper\"><textarea class=\"htmlEditor ibo-input-richtext-placeholder\" title=\"$sHelpText\" name=\"attr_{$this->m_sFieldPrefix}{$sCode}\" id=\"$iId\">$sEncodedValue</textarea></div>$sValidationField";
// Replace the text area with CKEditor
// To change the default settings of the editor,
// a) edit the file /js/ckeditor/config.js
// b) or override some of the configuration settings, using the second parameter of ckeditor()
$sJSDefineWidth = '';
$aConfig = CKEditorHelper::GetCkeditorPref();
// Prepare CKEditor size
$sWidthSpec = addslashes(trim($this->m_oAttDef->GetWidth()));
if ($sWidthSpec != '') {
/*N°6543 - the function min allow to keep text inside the column when width is defined*/
/* N°6543 - the function min allow to keep text inside the column when width is defined*/
$aConfig['width'] = "min($sWidthSpec,100%)";
$sJSDefineWidth = '$("#cke_'.$iId.' iframe").contents().find("body").css("width", "'.$sWidthSpec.'")';
}
$sHeightSpec = addslashes(trim($this->m_oAttDef->GetHeight()));
if ($sHeightSpec != '') {
$aConfig['height'] = $sHeightSpec;
}
$aConfig['detectChanges'] = ['initialValue' => $sValue];
$sConfigJS = json_encode($aConfig);
WebResourcesHelper::EnableCKEditorToWebPage($oPage);
$oPage->add_ready_script("CombodoCKEditorHandler.CreateInstance('#$iId', $sConfigJS)");
// inject mention item renderer template
$oTwig = TwigHelper::GetTwigEnvironment(BlockRenderer::TWIG_BASE_PATH);
$sTemplate = $oTwig->render('application/object/set/option_renderer.html.twig');
$oPage->add(<<<HTML
<template id="{$iId}_items_template">
$sTemplate
</template>
HTML);
// Please read...
// ValidateCKEditField triggers a timer... calling itself indefinitely
// This design was the quickest way to achieve the field validation (only checking if the field is blank)
// because the ckeditor does not fire events like "change" or "keyup", etc.
// See http://dev.ckeditor.com/ticket/900 => won't fix
// The most relevant solution would be to implement a plugin to CKEdit, and handle the internal events like: setData, insertHtml, insertElement, loadSnapshot, key, afterUndo, afterRedo
// Enable CKEditor
CKEditorHelper::ConfigureCKEditorElementForWebPage($oPage, $iId, $sValue, true, $aConfig);
// Could also be bound to 'instanceReady.ckeditor'
$oPage->add_ready_script("$('#$iId').on('validate', function(evt, sFormId) { return ValidateCKEditField('$iId', '', {$this->m_sMandatory}, sFormId, '') } );\n");
$oPage->add_ready_script(
<<<EOF
$('#$iId').on('update', function(evt){
BlockField('cke_$iId', $('#$iId').prop('disabled'));
//Delayed execution - ckeditor must be properly initialized before setting readonly
var retryCount = 0;
var oMe = $('#$iId');
var delayedSetReadOnly = function () {
if (oMe.data('ckeditorInstance').editable() == undefined && retryCount++ < 10) {
setTimeout(delayedSetReadOnly, retryCount * 100); //Wait a while longer each iteration
}
else
{
oMe.data('ckeditorInstance').setReadOnly(oMe.prop('disabled'));
$sJSDefineWidth
}
};
setTimeout(delayedSetReadOnly, 50);
});
EOF
);
return $sHtmlValue;
}
}

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
@@ -12,7 +12,7 @@ use Combodo\iTop\Renderer\Console\ConsoleBlockRenderer;
/**
* Class UILinksWidgetDirect
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
class UILinksWidgetDirect

View File

@@ -1,6 +1,6 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
@@ -17,6 +17,7 @@ require_once(APPROOT.'application/displayblock.class.inc.php');
class UILinksWidget
{
protected $m_sClass;
protected $m_sClassLabel;
protected $m_sAttCode;
protected $m_sNameSuffix;
protected $m_sInputId;
@@ -24,6 +25,7 @@ class UILinksWidget
protected $m_sExtKeyToRemote;
protected $m_sExtKeyToMe;
protected $m_sLinkedClass;
protected $m_sLinkedClassLabel;
protected $m_sRemoteClass;
protected $m_bDuplicatesAllowed;
/** @var string[] list of editables attcodes */
@@ -46,6 +48,7 @@ class UILinksWidget
public function __construct($sClass, $sAttCode, $sInputId, $sNameSuffix = '', $bDuplicatesAllowed = false)
{
$this->m_sClass = $sClass;
$this->m_sClassLabel = MetaModel::GetName($this->m_sClass);
$this->m_sAttCode = $sAttCode;
$this->m_sInputId = $sInputId;
$this->m_sNameSuffix = $sNameSuffix;
@@ -56,6 +59,7 @@ class UILinksWidget
/** @var AttributeLinkedSetIndirect $oAttDef */
$oAttDef = MetaModel::GetAttributeDef($this->m_sClass, $this->m_sAttCode);
$this->m_sLinkedClass = $oAttDef->GetLinkedClass();
$this->m_sLinkedClassLabel = MetaModel::GetName($this->m_sLinkedClass);
$this->m_sExtKeyToRemote = $oAttDef->GetExtKeyToRemote();
$this->m_sExtKeyToMe = $oAttDef->GetExtKeyToMe();
@@ -365,11 +369,21 @@ class UILinksWidget
return $this->m_sClass;
}
public function GetClassLabel(): string
{
return $this->m_sClassLabel;
}
public function GetLinkedClass(): string
{
return $this->m_sLinkedClass;
}
public function GetLinkedClassLabel(): string
{
return $this->m_sLinkedClassLabel;
}
public function GetAttCode(): string
{
return $this->m_sAttCode;

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2023 Combodo SARL
// Copyright (C) 2010-2024 Combodo SAS
//
// This file is part of iTop.
//
@@ -20,7 +20,7 @@
* Class UIPasswordWidget
* UI wdiget for displaying and editing one-way encrypted passwords
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,7 +1,7 @@
<?php
/**
*
* Copyright (C) 2010-2023 Combodo SARL
* Copyright (C) 2010-2024 Combodo SAS
*
* This file is part of iTop.
*

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2023 Combodo SARL
// Copyright (C) 2010-2024 Combodo SAS
//
// This file is part of iTop.
//
@@ -21,7 +21,7 @@ use Combodo\iTop\Application\WebPage\iTopWebPage;
/**
* Class UIWizard
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2023 Combodo SARL
// Copyright (C) 2010-2024 Combodo SAS
//
// This file is part of iTop.
//
@@ -19,7 +19,7 @@
/**
* Store and retrieve user custom dashboards
*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
require_once(APPROOT.'/core/dbobject.class.php');

Some files were not shown because too many files have changed in this diff Show More