Compare commits

...

234 Commits

Author SHA1 Message Date
Benjamin Dalsass
9f70d0e4b3 test errors 2024-07-31 08:55:40 +02:00
Benjamin Dalsass
0923f199a0 SymfonyBridgeTest WIP (symfony integration tests architecture) 2024-01-24 08:35:35 +01:00
Benjamin Dalsass
e831a21354 Add FormFieldTypeEnumerationTest unitary test 2024-01-23 15:28:33 +01:00
Benjamin Dalsass
4d5444b585 N°7063 - Forms SDK - Add Symfony forms component 2024-01-22 08:34:30 +01:00
Benjamin Dalsass
368b440f15 N°7063 - Forms SDK - Add Symfony forms component 2024-01-18 13:12:08 +01:00
Benjamin Dalsass
ac32cb0886 Merge branch 'develop' into feature/7063
# Conflicts:
#	lib/composer/autoload_files.php
#	lib/composer/autoload_static.php
#	lib/composer/installed.php
#	symfony/config/services.yaml
2024-01-17 08:17:19 +01:00
Benjamin Dalsass
138da3a107 N°7063 - Forms SDK - Add Symfony forms component 2024-01-17 08:15:42 +01:00
Benjamin Dalsass
098461d4da N°7063 - Forms SDK - Add Symfony forms component 2024-01-16 15:32:54 +01:00
Anne-Cath
df9d71e2f5 Merge remote-tracking branch 'origin/support/3.1' into develop 2024-01-15 16:35:57 +01:00
Pierre Goiffon
5935800b21 Merge remote-tracking branch 'origin/support/3.1' into develop 2024-01-15 15:55:54 +01:00
Benjamin Dalsass
77a81c6d6a N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2024-01-15 15:18:44 +01:00
Benjamin Dalsass
816ab41e27 N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2024-01-15 11:40:52 +01:00
Benjamin Dalsass
7963690a10 N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2024-01-12 17:21:19 +01:00
Molkobain
9ddb82073c Merge remote-tracking branch 'origin/support/3.1' into develop 2024-01-12 12:08:31 +01:00
odain
51fdd04881 Merge branch 'support/3.1' into develop 2024-01-12 08:58:29 +01:00
Molkobain
d721632f2b Merge remote-tracking branch 'origin/support/3.1' into develop 2024-01-11 22:25:31 +01:00
Molkobain
dfd5a5bebc N°7136 - Portal: Add JS API to enable attachments IDs retrieval in an object form 2024-01-11 14:14:58 +01:00
Benjamin Dalsass
e55f1f1d66 N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2024-01-11 10:34:34 +01:00
Benjamin Dalsass
490f8600e5 N°7133 - Linkset displayed as property failed when filter contains single quote or new line 2024-01-10 16:52:05 +01:00
Benjamin Dalsass
a50f579793 N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2024-01-10 13:41:54 +01:00
Benjamin Dalsass
9dde675aef N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2024-01-10 11:24:33 +01:00
Benjamin Dalsass
021159a2c2 N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2024-01-10 10:12:49 +01:00
Molkobain
b3be796277 N°7130 - Fix most Person:first_name being empty after unit tests due to monkey code (mine) 🐒 2024-01-10 10:04:23 +01:00
Pierre Goiffon
b3f2232ba4 N°6037 Fix PHP 8.2 deprecated syntax 2024-01-10 09:48:29 +01:00
Benjamin Dalsass
c7281a5cfc N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2024-01-10 09:32:05 +01:00
Liberty
ef083d5e8f N°2039 - Update Chinese translations for the newsroom (#595)
* Some Chinese Translation:ActioniTopNotification & EventiTopNotification

* optimize

* Update dictionaries/en.dictionary.itop.core.php

good idea!

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>

* Update dictionaries/zh_cn.dictionary.itop.core.php

good idea!

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>

* optimize

---------

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>
2024-01-09 16:58:36 +01:00
Benjamin Dalsass
54d98ba4f7 N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2024-01-09 15:50:28 +01:00
Benjamin Dalsass
5213e205af N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2024-01-09 12:42:48 +01:00
Benjamin Dalsass
153027434d N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2024-01-09 10:34:56 +01:00
Benjamin Dalsass
cc367fa19e N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2024-01-09 10:24:30 +01:00
Stephen Abello
73c989ee67 N°7130 - Allows to ignore existing column field in setup's data migration method (#597)
* Allows to ignore existing column field in setup's data migration method

* Update setup/moduleinstaller.class.inc.php

* N°7130 - Fix typo in variable extraction

* N°7130 - Add unit tests

* Update setup/moduleinstaller.class.inc.php

---------

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>
2024-01-09 09:43:22 +01:00
Benjamin Dalsass
0461cd7d51 N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2024-01-08 16:45:52 +01:00
Benjamin Dalsass
00f241e4cf N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2024-01-08 14:22:49 +01:00
Pierre Goiffon
bfb05d331e Merge remote-tracking branch 'origin/support/3.1' into develop 2024-01-05 17:48:42 +01:00
Pierre Goiffon
a32dd779cb Merge remote-tracking branch 'Combodo/support/3.1' into develop 2024-01-05 11:11:13 +01:00
Eric Espie
3607748f49 Merge remote-tracking branch 'origin/support/3.1' into develop 2024-01-05 10:52:13 +01:00
jf-cbd
96d4aac650 Merge branch 'support/3.1' into develop 2024-01-04 11:24:58 +01:00
jf-cbd
5726a61861 Merge remote-tracking branch 'origin/develop' into develop 2024-01-04 11:06:30 +01:00
jf-cbd
5619586645 Merge branch 'support/3.1.1' into develop 2024-01-04 11:05:58 +01:00
Molkobain
773762bb99 N°7059 - Symfony 6.4 - Fix requires so they succeed when called from the SF console as well 2024-01-04 11:04:07 +01:00
jf-cbd
26f600542b Merge branch 'support/3.1.1' into develop 2024-01-04 10:36:07 +01:00
Pierre Goiffon
6724658181 Merge remote-tracking branch 'origin/support/3.1' into develop
# Conflicts:
#	README.md
#	datamodels/2.x/itop-core-update/dictionaries/hu.dict.itop-core-update.php
2024-01-04 09:03:14 +01:00
Molkobain
3f365885f0 N°7059 - Fix inconsistent class name / file name which breaks PSR-4 convention and SF app 2024-01-03 15:25:41 +01:00
Molkobain
48fe808adf Merge remote-tracking branch 'origin/support/3.1' into develop 2024-01-03 14:54:28 +01:00
Stephen Abello
c61fa7b92f N°2039 - Fix namespace and autoloader 2024-01-03 14:49:25 +01:00
Stephen Abello
135d410a6b N°2039 - Fix some issues with content type, bg task and typos 2024-01-03 11:46:38 +01:00
Molkobain
cb64dbe79f 👥 Add Jaroslav Šafránek to the contributors list! 🙌 2024-01-03 09:31:50 +01:00
Molkobain
f1d5f8635c Merge remote-tracking branch 'origin/support/3.1' into develop 2024-01-02 11:58:07 +01:00
Benjamin Dalsass
75fde4c9a3 N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2024-01-02 11:31:52 +01:00
Benjamin Dalsass
2bcc4d9989 N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2023-12-28 13:37:23 +01:00
Benjamin Dalsass
d6970f6486 N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2023-12-27 14:41:20 +01:00
Benjamin Dalsass
5edf092a24 N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2023-12-27 10:09:42 +01:00
Stephen Abello
9af08fa693 N°2039 - Apply some suggestion from @Hipska
Co-authored-by: Thomas Casteleyn <thomas.casteleyn@super-visions.com> o
2023-12-26 10:21:59 +01:00
Benjamin Dalsass
3b7cad5cbd N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2023-12-22 14:46:32 +01:00
Stephen Abello
05db99aa69 N°2039 - Add iTop notifications to newsroom (#590)
* N°2039 - Add iTop notifications to newsroom

* Update sources/Controller/Newsroom/iTopNewsroomController.php

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>

* Update sources/Controller/Newsroom/iTopNewsroomController.php

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>

* Update sources/Service/Notification/Event/EventiTopNotificationGC.php

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>

* Add a default value to Action url attribute, check if there's an object in the context before adding it to the event

* Phpdoc

* Fix default config values

* Replace MetaModel::EnumPlugins calls for iNewsroomProvider

* Replace hardcoded url with generated routes

* Add dict entries

* Correclty throw error when trying to display a non existing event

* Fix unit test

* Migrate old action email language values to its parent table

* Migrate Action and Event class to XML, generate their dictionary entries, add meta data for ActionNotification and EventNotification

* Fix issue in dictionary definition

* Allows Action to create Events for users that the current user can't see

* Dump autoloader

* Remove classes from homemade "autoloader" as they are now loaded through XML

* Apply suggestions from code review

* Remove class from homemade "autoloader" as they are now loaded through GetClassesForInterfaces

* Apply suggestions from code review

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>

---------

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>
2023-12-22 12:02:19 +01:00
Benjamin Dalsass
2681abbeed N°7059 - Symfony 6.4 - Application skeleton - sources registration
- PDFPage constructor define impact
2023-12-22 11:08:25 +01:00
Benjamin Dalsass
0cf480d824 N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2023-12-22 10:17:25 +01:00
jbostoen
031c90e797 N°7082 Ability to forcefully send e-mails asynchronously (#501)
Will be usefull in use cases like sending mass emails in customer-survey
2023-12-21 11:15:08 +01:00
Benjamin Dalsass
34f0053db7 N°7059 - Symfony 6.4 - Add missing namespaces to match PSR-4 convention (#589) 2023-12-21 10:18:11 +01:00
Benjamin Dalsass
b35151f421 N°7063 - Forms SDK - Add Symfony forms component
error forms issue
2023-12-20 14:26:31 +01:00
Pierre Goiffon
afbdff928d Merge remote-tracking branch 'origin/support/3.1' into develop 2023-12-19 18:42:11 +01:00
Benjamin Dalsass
68b7e9ee65 N°7063 - Forms SDK - Add Symfony forms component
add select
2023-12-19 11:28:17 +01:00
Benjamin Dalsass
12f3e5ed4c N°7063 - Forms SDK - Add Symfony forms component 2023-12-19 10:13:43 +01:00
Molkobain
34ad18eee8 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-12-14 11:50:41 +01:00
Molkobain
e73fcc5903 N°7059 - Fix default conf. param. value 2023-12-14 11:02:45 +01:00
peckpeck
0c467e7115 N°7067 - Add setting to change default "password change" URL (#540)
* Add a setting to change default "password change" URL

* Apply suggestions from code review

---------

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>
2023-12-14 10:08:37 +01:00
Benjamin Dalsass
300ec74f76 N°7059 - Symfony 6.4 - Application skeleton - sources registration
- iKeyboardShortcut namespace issue
2023-12-14 09:12:27 +01:00
Benjamin Dalsass
326a115936 Revert "N°7059 - Symfony 6.4 - Application skeleton - sources registration"
This reverts commit b962488954.
2023-12-14 08:37:52 +01:00
Benjamin Dalsass
b962488954 N°7059 - Symfony 6.4 - Application skeleton - sources registration
- iKeyboardShortcut namespace issue
2023-12-14 08:34:10 +01:00
Molkobain
b5c8c75c4e Merge remote-tracking branch 'origin/support/3.1' into develop 2023-12-13 18:48:50 +01:00
Molkobain
0c100ea2de Merge remote-tracking branch 'origin/support/3.1' into develop 2023-12-13 10:54:35 +01:00
Benjamin Dalsass
be99a7c02d N°7059 - Symfony 6.4 - Application skeleton - sources registration (#588)
We configure global sources directory in symfony configuration file except the directory Application/WebPage (potential impacts)
2023-12-13 10:31:36 +01:00
Eric Espie
4a164f9c01 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-12-12 17:16:58 +01:00
Benjamin Dalsass
45c50995e3 N°7059 - Symfony 6.4 - Application skeleton
- unitary test broken
2023-12-12 16:57:16 +01:00
Benjamin Dalsass
fb29ff29cf N°7059 - Symfony 6.4 - Application skeleton (#587)
Mise en place d'un squelette temporaire fonctionnel d'application Symfony.

- Ajout bundles debug & runtime pour une implémentation standard
- Configuration minimale
- .env file in specific directory
- Frontal application app.php
2023-12-12 16:40:04 +01:00
Thomas Casteleyn
62d7e10257 N°7055 - Apply better default value for portal copy object link (#582) 2023-12-11 11:40:59 +01:00
Pierre Goiffon
9ac823c0ba Merge remote-tracking branch 'origin/support/3.1' into develop 2023-12-08 17:21:17 +01:00
Benjamin Dalsass
1c09a7c38e N°7034 - Symfony 6.4 - FILTER_REQUIRE_ARRAY or FILTER_FORCE_ARRAY flags with InputBag::filter() 2023-12-08 15:13:07 +01:00
Pierre Goiffon
8e2e155e65 Merge remote-tracking branch 'origin/support/3.1' into develop
# Conflicts:
#	lib/composer/installed.php
2023-12-08 11:34:26 +01:00
Molkobain
45a806ac77 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-12-08 08:50:37 +01:00
Molkobain
427646a0c3 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-12-07 12:40:00 +01:00
Molkobain
34e6e921ec Merge remote-tracking branch 'origin/support/3.1' into develop 2023-12-06 16:32:07 +01:00
bdalsass
a41c58ebb4 N°7034 - Symfony 6.4 - Not passing FILTER_REQUIRE_ARRAY or FILTER_FOR… (#581)
* change RequestManipulatorHelper read param function signature (add filter flag)
* add FILTER_REQUIRE_ARRAY flag  when expecting an array with read param function
* add test for the read param function
2023-12-06 14:04:55 +01:00
Benjamin Dalsass
beb015b082 Revert "N°6981 - Symfony 6.4 - Remove deprecated calls - Approval-base"
This reverts commit 4dfd9b062e.
2023-12-06 08:37:29 +01:00
Benjamin Dalsass
4dfd9b062e N°6981 - Symfony 6.4 - Remove deprecated calls - Approval-base 2023-12-05 17:03:49 +01:00
bdalsass
27ce51ab07 N°6934 - Symfony 6.4 - upgrade Symfony bundles to 6.4 (#580)
* Update Symfony lib to version ~6.4.0
* Update code missing return type
* Add an iTop general configuration entry to store application secret (Symfony mandatory parameter)
* Use dependency injection in ExceptionListener & UserProvider classes
2023-12-05 13:56:56 +01:00
Pierre Goiffon
863ab4560c 📝 tests README: fix typo 2023-12-05 11:38:37 +01:00
Pierre Goiffon
c27c99b245 📝 tests README: comments on disabling XDebug 2023-12-05 11:34:36 +01:00
Pierre Goiffon
d1531c5a80 📝 tests README: Add TOC links, add ItopCustomDatamodelTestCase 2023-12-05 11:21:43 +01:00
Molkobain
75f8c428b3 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-12-04 23:21:58 +01:00
Molkobain
4fb581c784 Update versions history with 3.1.1 2023-11-29 16:35:05 +01:00
Molkobain
7b15103880 Merge remote-tracking branch 'origin/support/3.1' into develop
# Conflicts:
#	approot.inc.php
#	datamodels/2.x/authent-cas/module.authent-cas.php
#	datamodels/2.x/authent-external/module.authent-external.php
#	datamodels/2.x/authent-ldap/module.authent-ldap.php
#	datamodels/2.x/authent-local/module.authent-local.php
#	datamodels/2.x/combodo-backoffice-darkmoon-theme/module.combodo-backoffice-darkmoon-theme.php
#	datamodels/2.x/combodo-db-tools/module.combodo-db-tools.php
#	datamodels/2.x/itop-attachments/module.itop-attachments.php
#	datamodels/2.x/itop-backup/module.itop-backup.php
#	datamodels/2.x/itop-bridge-cmdb-services/module.itop-bridge-cmdb-services.php
#	datamodels/2.x/itop-bridge-cmdb-ticket/module.itop-bridge-cmdb-ticket.php
#	datamodels/2.x/itop-bridge-datacenter-mgmt-services/module.itop-bridge-datacenter-mgmt-services.php
#	datamodels/2.x/itop-bridge-endusers-devices-services/module.itop-bridge-endusers-devices-services.php
#	datamodels/2.x/itop-bridge-storage-mgmt-services/module.itop-bridge-storage-mgmt-services.php
#	datamodels/2.x/itop-bridge-virtualization-mgmt-services/module.itop-bridge-virtualization-mgmt-services.php
#	datamodels/2.x/itop-bridge-virtualization-storage/module.itop-bridge-virtualization-storage.php
#	datamodels/2.x/itop-change-mgmt-itil/module.itop-change-mgmt-itil.php
#	datamodels/2.x/itop-change-mgmt/module.itop-change-mgmt.php
#	datamodels/2.x/itop-config-mgmt/module.itop-config-mgmt.php
#	datamodels/2.x/itop-config/module.itop-config.php
#	datamodels/2.x/itop-core-update/module.itop-core-update.php
#	datamodels/2.x/itop-datacenter-mgmt/module.itop-datacenter-mgmt.php
#	datamodels/2.x/itop-endusers-devices/module.itop-endusers-devices.php
#	datamodels/2.x/itop-faq-light/module.itop-faq-light.php
#	datamodels/2.x/itop-files-information/module.itop-files-information.php
#	datamodels/2.x/itop-full-itil/module.itop-full-itil.php
#	datamodels/2.x/itop-hub-connector/module.itop-hub-connector.php
#	datamodels/2.x/itop-incident-mgmt-itil/module.itop-incident-mgmt-itil.php
#	datamodels/2.x/itop-knownerror-mgmt/module.itop-knownerror-mgmt.php
#	datamodels/2.x/itop-oauth-client/module.itop-oauth-client.php
#	datamodels/2.x/itop-portal-base/module.itop-portal-base.php
#	datamodels/2.x/itop-portal/module.itop-portal.php
#	datamodels/2.x/itop-problem-mgmt/module.itop-problem-mgmt.php
#	datamodels/2.x/itop-profiles-itil/module.itop-profiles-itil.php
#	datamodels/2.x/itop-request-mgmt-itil/module.itop-request-mgmt-itil.php
#	datamodels/2.x/itop-request-mgmt/module.itop-request-mgmt.php
#	datamodels/2.x/itop-service-mgmt-provider/module.itop-service-mgmt-provider.php
#	datamodels/2.x/itop-service-mgmt/module.itop-service-mgmt.php
#	datamodels/2.x/itop-sla-computation/module.itop-sla-computation.php
#	datamodels/2.x/itop-storage-mgmt/module.itop-storage-mgmt.php
#	datamodels/2.x/itop-structure/module.itop-structure.php
#	datamodels/2.x/itop-themes-compat/module.itop-themes-compat.php
#	datamodels/2.x/itop-tickets/module.itop-tickets.php
#	datamodels/2.x/itop-virtualization-mgmt/module.itop-virtualization-mgmt.php
#	datamodels/2.x/itop-welcome-itil/module.itop-welcome-itil.php
#	datamodels/2.x/version.xml
2023-11-29 08:41:29 +01:00
Molkobain
bf3de38214 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-27 15:18:05 +01:00
Molkobain
8c4c2b2ee4 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-24 17:27:23 +01:00
Pierre Goiffon
add500193b 📝 tests README: add configuration and tips, change TOC 2023-11-24 15:29:38 +01:00
Anne-Cath
8dff590fe2 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-24 15:23:45 +01:00
Pierre Goiffon
ccfc29a6a9 📝 itop-version-history.md : change branches colors
Specific colors for : 
- unsupported branches (grey)
- LTS (2.7)
- develop
2023-11-24 12:08:18 +01:00
bdalsass
f0ce091809 N°6933 - Symfony 6.4 - Remove deprecated calls (#577)
* N°6933 - SF 6.4 - Remove deprecated calls
- BrowseBrickController (services access)

* N°6933 - SF 6.4 - Remove deprecated calls
- AggregatePageBrickController (services access)

* N°6933 - SF 6.4 - Remove deprecated calls
- CreateBrickController (services access)

* N°6933 - SF 6.4 - Remove deprecated calls
- ManageBrickController (services access)

* N°6933 - SF 6.4 - Remove deprecated calls
- ObjectController (services access)

* N°6933 - SF 6.4 - Remove deprecated calls
- SessionMessageController (services access)

* N°6933 - SF 6.4 - Remove deprecated calls
- UserProfileBrickController (services access)

* N°6933 - SF 6.4 - Remove deprecated calls
- AbstractController (remove getSubscribedServices override, add setter for router service injection)

* Fix SessionMessageController Call to a member function AddMessage() on null

* Fix depreciation on Request::HEADER_X_FORWARDED_ALL constant in index.php

Chose to move the protection to the yaml config instead as it is possible since Symfony 5.2

Also removed default support for the $_SERVER['TRUSTED_PROXIES'], seems too untrusty. Use TRUSTED_PROXIES env var instead !

See https://jolicode.com/blog/symfony-reverse-proxies-and-ip-protection

* ✏️ N°6933 - SF 6.4 - Remove deprecated calls
- AbstractController (typo)

* N°6933 - SF 6.4 - Remove deprecated calls
- CreateBrickController (remove return type)

* Revert "Fix depreciation on Request::HEADER_X_FORWARDED_ALL constant in index.php"

This reverts commit be4daef79a.

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

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>

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

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>

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

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>

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

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>

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

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>

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

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>

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

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>

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

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>

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

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>

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

Co-authored-by: Molkobain <lajarige.guillaume@free.fr>

* N°6933 - SF 6.4 - Remove deprecated calls
- ALl controllers (php doc and parameters names)

---------

Co-authored-by: Pierre Goiffon <pierre.goiffon@combodo.com>
Co-authored-by: Molkobain <lajarige.guillaume@free.fr>
2023-11-24 08:55:21 +01:00
Pierre Goiffon
5aaaeda6c5 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-23 16:01:03 +01:00
Molkobain
3bdb883f1c Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-23 15:08:22 +01:00
Anne-Cath
fbd69f6d3a Merge remote-tracking branch 'origin/support/3.1' into develop
# Conflicts:
#	datamodels/2.x/itop-config-mgmt/dictionaries/zh_cn.dict.itop-config-mgmt.php
2023-11-23 14:30:27 +01:00
Eric Espie
f736634c3e Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-23 11:27:04 +01:00
odain
4b19911e12 Merge branch 'support/3.1' into develop 2023-11-22 12:31:21 +01:00
odain
e73f2c9a30 Merge branch 'support/3.1' into develop 2023-11-22 11:16:46 +01:00
Pierre Goiffon
87bb3d17a9 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-21 18:10:11 +01:00
Pierre Goiffon
33596249a1 N°6973 Fix composer platform check 2023-11-21 11:03:58 +01:00
Pierre Goiffon
26beeb6a80 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-21 11:02:28 +01:00
Stephen Abello
982b3aa5f3 Merge branch 'support/3.1' into develop
# Conflicts:
#	dictionaries/ui/application/bulk/zh_cn.dictionary.itop.bulk.php
#	dictionaries/zh_cn.dictionary.itop.core.php
2023-11-21 10:26:15 +01:00
Pierre Goiffon
8e179f0563 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-21 09:25:35 +01:00
Molkobain
95e0f02cae Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-20 15:55:52 +01:00
Benjamin Dalsass
c0b1e877ad Upgrade PHP min version to 8.1.0 2023-11-20 15:21:00 +01:00
Molkobain
444c9e0589 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-17 08:50:26 +01:00
Molkobain
fb0f692c73 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-16 16:34:30 +01:00
Pierre Goiffon
90a0e50e75 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-16 16:18:22 +01:00
Pierre Goiffon
ad0795da02 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-16 12:07:19 +01:00
Pierre Goiffon
65674b9cc4 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-16 10:40:01 +01:00
Pierre Goiffon
ad0fa6636b Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-15 15:47:24 +01:00
jkoch22
67650012ce N°6954 - Update english translations thanks to @jkoch22 (#554)
Correct incorrect translation
2023-11-14 17:25:47 +01:00
Molkobain
d00137026a 👥 Add @bdejin to contributors list! 🙌 2023-11-14 17:19:54 +01:00
Devin
12a1321bc1 N°6907 - Update chinese translations thanks to @bdejin (#563)
* Add missing translations

* add missing translation

* minor update on translation "see setting

* add missing translations

* add missing translation for file dictionaries\zh_cn.dictionary.itop.core.php

* add missing translation for file dictionaries\zh_cn.dictionary.itop.ui.php

* add missing translation for file dictionaries\zh_cn.dictionary.itop.ui.php

* added missing translation for core and ui

* added missing translation for the rest files

* 🌐 minor Chinese translation updates following comments from chileeb on PR #563

* 🌐 update most of the 'class' translation from '类' to '类型'

* 🌐 add kitty message translation

* 🌐 update '表格中暂无数据' in dictionaries\ui\components\datatable\zh_cn.dictionary.itop.datatable.php to '当前列表没有数据'
2023-11-14 17:16:09 +01:00
Pierre Goiffon
c41ecb1b9d Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-13 16:28:34 +01:00
Molkobain
770bf4c42a Merge remote-tracking branch 'origin/support/3.1' into develop
# Conflicts:
#	sources/Service/Events/EventService.php
2023-11-13 15:24:47 +01:00
Molkobain
d5f054b739 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-13 13:38:25 +01:00
Romain Quetiez
473c4cf3fa N°6658 - Reset the "current user" status (defensive programming) 2023-11-10 16:33:56 +01:00
Romain Quetiez
347156f900 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-10 16:30:22 +01:00
Pierre Goiffon
76b70684cd Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-10 15:21:30 +01:00
Molkobain
336b5da2a7 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-09 18:24:30 +01:00
Molkobain
6f39ae5d76 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-08 15:01:42 +01:00
Molkobain
078fc7bfb8 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-08 11:44:23 +01:00
Molkobain
a67d095c70 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-11-03 09:21:48 +01:00
Stephen Abello
647f43882b Merge branch 'support/3.1' into develop 2023-11-02 11:21:47 +01:00
Molkobain
ca47f5458c Merge remote-tracking branch 'origin/support/3.1' into develop 2023-10-31 16:15:03 +01:00
Molkobain
3027bb5092 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-10-31 14:01:53 +01:00
Molkobain
893efa8e2d Merge remote-tracking branch 'origin/support/3.1' into develop 2023-10-31 13:57:04 +01:00
Molkobain
1ea9659227 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-10-31 11:27:42 +01:00
Benjamin Dalsass
31e58d7597 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-10-31 10:20:10 +01:00
Benjamin Dalsass
3b21ed8fe8 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-10-31 09:38:11 +01:00
Molkobain
0ad8db565d Merge remote-tracking branch 'origin/support/3.1' into develop 2023-10-30 17:00:20 +01:00
bdalsass
a1a83a1ba3 N°6651 - 3.1 bulk modify n:n like Tagset: checkbox ignored (#552)
- handle selectize enable/disable to update operation hidden input state
- don't execute elements click callback when input disabled
- merge current and initial values for the initial value
2023-10-30 08:34:53 +01:00
Romain Quetiez
e7d11e4bec Merge remote-tracking branch 'origin/support/3.1' into develop 2023-10-27 19:41:01 +02:00
Molkobain
e3c26c97f2 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-10-26 11:27:40 +02:00
Molkobain
d6e132fbda 👥 Add @chileeb to contributors list! 🙌 2023-10-26 11:17:51 +02:00
Molkobain
74c4c642eb Update dictionaries/zh_cn.dictionary.itop.ui.php 2023-10-25 14:13:33 +02:00
libin
af3be19175 Chinese Dict Optimize: ProfilesMenu 2023-10-25 14:13:33 +02:00
Molkobain
ee49d64120 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-10-23 15:36:46 +02:00
Anne-Cath
58257fa25e Merge remote-tracking branch 'origin/support/3.1' into develop 2023-10-20 17:07:38 +02:00
Anne-Cath
cb3d8120bd Merge remote-tracking branch 'origin/support/3.1' into develop 2023-10-20 16:56:45 +02:00
Anne-Cath
ace88cb709 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-10-17 12:19:30 +02:00
Anne-Cath
8ca20e3135 Remove change push by error 2023-10-17 11:45:27 +02:00
Pierre Goiffon
4e13cce770 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-10-17 11:27:09 +02:00
Anne-Cath
f408e14d4b WIP - remove log + fix edition with a lot of values (>chunk_size) 2023-10-17 11:05:33 +02:00
Anne-Cath
543daac06d N°6847 - order of label pdf export 2023-10-16 16:03:25 +02:00
Pierre Goiffon
800d1b03c1 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-10-13 17:37:29 +02:00
Molkobain
9b970a472f Merge remote-tracking branch 'origin/support/3.1' into develop 2023-10-13 10:13:25 +02:00
Eric Espie
593131a7ea Merge remote-tracking branch 'origin/support/3.1' into develop 2023-10-06 09:54:20 +02:00
Molkobain
148f708360 N°6805 - Add reference to classes implementing \iWorkingTimeComputer in the datamodel (meta tag) 2023-10-03 21:32:31 +02:00
Molkobain
7d0feab078 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-09-26 22:23:18 +02:00
Pierre Goiffon
aae2db8ad8 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-09-26 11:36:24 +02:00
Molkobain
f3d488de26 Update Jimmy avatar for the sample data 2023-09-25 15:52:10 +02:00
Stephen Abello
ebc15db75e Merge branch 'support/3.1' into develop 2023-09-21 16:32:40 +02:00
Pierre Goiffon
dd28aca260 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-09-20 18:13:27 +02:00
Molkobain
2a6e5b21a9 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-09-20 16:18:55 +02:00
Pierre Goiffon
14f6ce3626 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-09-19 12:30:33 +02:00
Pierre Goiffon
34a2a6ce03 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-09-19 09:59:06 +02:00
Molkobain
db940e3bba Merge remote-tracking branch 'origin/support/3.1' into develop 2023-09-19 08:52:06 +02:00
Molkobain
9f3a6be255 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-09-18 16:23:49 +02:00
Pierre Goiffon
b6ac92d192 Merge remote-tracking branch 'origin/support/3.1' into develop
# Conflicts:
#	datamodels/2.x/itop-core-update/dictionaries/hu.dict.itop-core-update.php
2023-09-18 15:10:58 +02:00
Stephen Abello
ce1c517a9f Merge branch 'support/3.1' into develop 2023-09-15 15:45:36 +02:00
Pierre Goiffon
75b6a3ede8 Merge remote-tracking branch 'origin/support/3.1' into develop
# Conflicts:
#	dictionaries/hu.dictionary.itop.ui.php
#	dictionaries/ja.dictionary.itop.ui.php
#	dictionaries/sk.dictionary.itop.ui.php
#	dictionaries/ui/layouts/navigation-menu/pt_br.dictionary.itop.navigation-menu.php
2023-09-14 16:55:38 +02:00
Thomas Casteleyn
3818bc3f98 N°5218 Fix toolkit error on enum since 3.0.0 (#513) 2023-09-12 17:27:46 +02:00
Pierre Goiffon
d8ec900933 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-09-07 14:53:16 +02:00
acognet
29ba5e73fa N°5491 - Inconsistent dictionnary entries regarding arguments to pass to Dict::Format - fix dictionnary 2023-09-06 10:02:28 +02:00
Pierre Goiffon
acf449c03a Merge remote-tracking branch 'origin/support/3.1' into develop 2023-09-06 09:09:57 +02:00
Pierre Goiffon
ecb4cb7435 📝 CONTRIBUTING : add a mention on "allow edits by maintainers" not available on org forks
Seen in #523, thanks Lars !
2023-09-05 17:35:48 +02:00
acognet
3200b5dc86 N°5491 - Inconsistent dictionnary entries regarding arguments to pass to Dict::Format - fix dictionnary 2023-09-05 15:28:08 +02:00
acognet
e20d4cecd5 N°5491 - Inconsistent dictionnary entries regarding arguments to pass to Dict::Format - fix dictionnary 2023-09-05 15:20:39 +02:00
Eric Espie
36177e09f7 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-09-01 14:15:35 +02:00
acognet
9ae62adff1 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-08-31 16:25:15 +02:00
Anne-Catherine
73a2c935a7 N°6555 - Add class description in tooltip of Dashlet badge (#504) 2023-08-31 14:37:37 +02:00
vdumas
42acbe66c3 N°6682 - Pbs with Audit classes and AccessRight 2023-08-29 16:27:28 +02:00
vdumas
22a9299d97 N°6682 - AuditDomain XML meta declaration missing 2023-08-29 15:13:08 +02:00
Molkobain
b9acd0a9a6 N°6670 - Fix unescaped quote from c761364b 2023-08-22 16:19:59 +02:00
Molkobain
c761364bed N°6670 - Fix EVENT_DOWNLOAD_DOCUMENT event XML declaration missing elements 2023-08-22 16:11:59 +02:00
Romain Quetiez
d79dacf8a3 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-08-18 14:25:54 +02:00
BenGrenoble
efc36e12bc N°6361 - [ERGO] Change query example order to highlight the one working on an empty iTop 2023-08-17 14:25:39 +02:00
BenGrenoble
5a0b12f078 N°6361 - [ERGO] Change query example order to highlight the one working on an empty iTop 2023-08-16 11:04:56 +02:00
Molkobain
22d04cb9fc N°6103 - Remove jQuery Hotkeys plugin 2023-08-11 21:17:53 +02:00
Pierre Goiffon
d8da119c56 📝 Version history: fix typo in 2.7.9 date 2023-08-11 16:12:04 +02:00
Pierre Goiffon
a24d50d7e3 DBBackupDataTest::testPrepareFilesToBackup : fix cleanup not done on failing test 2023-08-11 15:19:48 +02:00
Molkobain
e5716e66bb Merge remote-tracking branch 'origin/support/3.1' into develop 2023-08-11 11:06:21 +02:00
Stephen Abello
c6c2bb33ed 📝 Version history: add 2.7.9 2023-08-10 15:08:56 +02:00
Pierre Goiffon
0d0ef86550 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-08-10 14:41:50 +02:00
Molkobain
ca0bd674a7 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-08-10 10:38:11 +02:00
Molkobain
260b2e0bd6 Fix typo in dictionary file 2023-08-09 15:56:49 +02:00
Pierre Goiffon
90413ae4fe Merge remote-tracking branch 'origin/support/3.1' into develop 2023-08-09 14:54:36 +02:00
Pavel Stetina
b7466e3206 N°6641 - Improve czech translations (thanks to @Stetinac !) (#524)
* 🌐Update cs.dictionary.itop.core.php

* 🌐Update cs.dictionary.itop.ui.php

* 🌐Update cs.dictionary.itop.ui.php

* 🌐Update cs.dict.itop-portal-base.php

* 🌐Update cs.dict.combodo-backoffice-darkmoon-theme.php

* 🌐 Update cs.dictionary.itop.ui.php

Typo fix
2023-08-09 11:46:39 +02:00
Pierre Goiffon
f2812cdbe5 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-08-09 10:21:12 +02:00
Pierre Goiffon
95a2fdec99 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-08-08 15:48:19 +02:00
Pierre Goiffon
6880c49a32 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-08-04 14:59:33 +02:00
Pierre Goiffon
1b48b4a1e1 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-08-03 11:09:29 +02:00
Pierre Goiffon
0516100aae Merge remote-tracking branch 'origin/support/3.1' into develop 2023-08-03 09:41:37 +02:00
Molkobain
5b4079ab7e Merge remote-tracking branch 'origin/support/3.1' into develop 2023-08-02 15:35:31 +02:00
Pierre Goiffon
d284d629a4 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-08-02 10:40:10 +02:00
Pierre Goiffon
c52195e6cd Merge remote-tracking branch 'origin/support/3.1' into develop 2023-08-01 14:39:28 +02:00
Eric Espie
a61734a6f8 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-07-28 10:57:54 +02:00
Eric Espie
750ecd4804 N°6061 - allow local path from an arbitrary path 2023-07-28 10:01:43 +02:00
Pierre Goiffon
781c15d1ee Merge remote-tracking branch 'origin/support/3.1' into develop 2023-07-27 17:03:47 +02:00
Pierre Goiffon
a1499a04d4 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-07-27 14:56:08 +02:00
Eric Espie
fb23bddeb2 N°6061 - allow local path from an arbitrary path 2023-07-27 12:06:14 +02:00
Pierre Goiffon
aa6fa4c674 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-07-27 11:32:52 +02:00
Eric Espie
19e7fc9cb9 N°6061 - Allow services to implement interfaces 2023-07-27 10:23:05 +02:00
Pierre Goiffon
a0a66f3b54 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-07-26 12:08:09 +02:00
Eric Espie
3c9c13a371 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-07-25 17:56:45 +02:00
Pierre Goiffon
96d04e35f9 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-07-25 17:07:44 +02:00
Pierre Goiffon
629a8412dc Merge remote-tracking branch 'origin/support/3.1' into develop 2023-07-24 15:39:25 +02:00
Pierre Goiffon
19a83bc944 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-07-24 12:00:25 +02:00
Eric Espie
a59dacf679 N°6436 - Performance Audit (KPI analysis) 2023-07-20 12:05:13 +02:00
Eric Espie
8b93a404ef Merge remote-tracking branch 'origin/support/3.1' into develop 2023-07-19 15:42:02 +02:00
Molkobain
ded204344d 👥 Add @Stetinac to the contributors list 🙌 2023-07-19 15:24:52 +02:00
Eric Espie
b3121d46c4 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-07-19 11:01:13 +02:00
Eric Espie
f60d03ddd3 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-07-19 09:28:23 +02:00
Pierre Goiffon
3d8345b92c Merge remote-tracking branch 'origin/support/3.1' into develop 2023-07-18 14:17:58 +02:00
Pierre Goiffon
9ab928e92e Merge remote-tracking branch 'origin/support/3.1' into develop 2023-07-18 09:49:17 +02:00
Benjamin Dalsass
ea56939b7a N°6546 - AttributeLinkedSetIndirect filter dosen't work 2023-07-17 10:12:48 +02:00
Molkobain
6caddb65e9 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-07-14 21:11:13 +02:00
Molkobain
8df0d66fb6 Merge remote-tracking branch 'origin/support/3.1' into develop 2023-07-13 10:18:03 +02:00
Eric Espie
a80aa20b23 Merge branch 'support/3.1' into develop 2023-07-12 13:32:26 +02:00
Pierre Goiffon
fd336ffd92 N°6558 Test for iTopDesignFormat::$aVersions consistency 2023-07-12 08:36:20 +02:00
Pierre Goiffon
be1c559ad4 Merge remote-tracking branch 'origin/support/3.1' into develop
# Conflicts:
#	core/config.class.inc.php
2023-07-11 11:59:09 +02:00
Pierre Goiffon
2dce37f289 🔖 Update XML files version to 3.2 2023-07-11 11:25:16 +02:00
Pierre Goiffon
22b5eef4ce 🔖 Fix typo in XML conversion method name 2023-07-11 11:24:45 +02:00
Pierre Goiffon
63426e459a 🔖 Update XML version to 3.2 2023-07-11 11:04:00 +02:00
Pierre Goiffon
8393172ad2 🔖 Prepare 3.2.0 version (modules) 2023-07-11 10:44:46 +02:00
Pierre Goiffon
cc06afc6df 🔖 Prepare 3.2.0 version 2023-07-11 10:30:53 +02:00
2931 changed files with 228363 additions and 31057 deletions

View File

@@ -1,7 +1,14 @@
# iTop version history
```mermaid
%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true,'mainBranchName': 'develop','rotateCommitLabel': true}} }%%
%%{init: { 'logLevel': 'debug', 'theme': 'base', 'themeVariables': {
'git0': 'lawngreen',
'git3': 'dodgerblue',
'git4': 'grey',
'git5': 'grey',
'git6': 'grey',
'git7': 'grey'
}, 'gitGraph': {'showBranches': true,'mainBranchName': 'develop','rotateCommitLabel': true}} }%%
gitGraph
commit id: "2016-07-06" tag: "2.3.0" type: HIGHLIGHT
branch support/2.3 order: 900
@@ -68,6 +75,10 @@ gitGraph
branch support/3.1 order: 840
checkout support/3.1
commit id: "2023-08-09" tag: "3.1.0-2"
checkout support/2.7
commit id: "2023-08-10" tag: "2.7.9"
checkout support/3.1
commit id: "2023-12-20" tag: "3.1.1"
```
To learn more, check the [iTop community versions history on the official wiki](https://www.itophub.io/wiki/page?id=latest:release:start).

View File

@@ -140,7 +140,7 @@ When your code is working, please:
* Pull request description: mind to add all the information useful to understand why you're suggesting this modification and anything necessary to dive into your work. Especially:
- Bugfixes: exact steps to reproduce the bug (given/when/then), description of the bug cause and what solution is implemented
- Enhancements: use cases, implementation details if needed
* Mind to check the "[Allow edits from maintainers](https://docs.github.com/en/github-ae@latest/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork)" option !
* Mind to check the "[Allow edits from maintainers](https://docs.github.com/en/github-ae@latest/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork)" option ! (note that if you are working with an org fork, this option [won't be available](https://github.com/orgs/community/discussions/5634))
## 🙏 We are thankful

View File

@@ -87,9 +87,11 @@ We would like to give a special thank you 🤗 to the people from the community
- Castro, Randall Badilla
- Colantoni, Maria Laura
- Couronné, Guy
- Dejin, Bie (a.k.a [@bdejin](https://github.com/bdejin))
- Dvořák, Lukáš
- Goethals, Stefan
- Gumble, David
- Ji, Leeb (冀利斌) (a.k.a [@chileeb](https://github.com/chileeb))
- Kaltefleiter, Lars (a.k.a [@larhip](https://www.github.com/larhip))
- Khamit, Shamil
- Kincel, Martin
@@ -105,9 +107,11 @@ We would like to give a special thank you 🤗 to the people from the community
- Roháč, Richard (a.k.a [@RohacRichard](https://github.com/RohacRichard))
- Rosenke, Stephan
- Rudner, Björn (a.k.a [@rudnerbjoern](https://github.com/rudnerbjoern))
- Šafránek, Jaroslav (a.k.a [jkcinik](https://sourceforge.net/u/jkcinik/profile/) on SourceForge)
- Seki, Shoji
- Shilov, Vladimir
- Stukalov, Ilya (a.k.a [@ilya](https://www.github.com/ilya-stukalov))
- Stetina, Pavel (a.k.a [@Stetinac](https://github.com/Stetinac))
- Stukalov, Ilya (a.k.a [@ilya](https://www.github.com/ilya)-stukalov)
- Tarjányi, Csaba (a.k.a [@tacsaby](https://github.com/tacsaby))
- Tulio, Marco
- Turrubiates, Miguel

View File

@@ -4,6 +4,8 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
use Combodo\iTop\Application\WebPage\WebPage;
define('ADMIN_PROFILE_NAME', 'Administrator');
define('PORTAL_PROFILE_NAME', 'Portal user');

View File

@@ -17,6 +17,8 @@
* You should have received a copy of the GNU Affero General Public License
*/
use Combodo\iTop\Application\WebPage\WebPage;
define('ADMIN_PROFILE_NAME', 'Administrator');
define('PORTAL_PROFILE_NAME', 'Portal user');

View File

@@ -17,6 +17,8 @@
* You should have received a copy of the GNU Affero General Public License
*/
use Combodo\iTop\Application\WebPage\WebPage;
define('ADMIN_PROFILE_ID', 1);
class UserRightsBaseClass extends cmdbAbstractObject

29
app.php Normal file
View File

@@ -0,0 +1,29 @@
<?php
/**
* Copyright (C) 2013-2023 Combodo SARL
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
*/
use Combodo\iTop\Kernel;
require_once __DIR__.'/lib/autoload_runtime.php';
require_once('approot.inc.php');
require_once('application/startup.inc.php');
return function (array $context) {
return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
};

View File

@@ -7,6 +7,7 @@
// cannot notify depreciation for now as this is still load in autoloader
//DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/AjaxPage.php, now loadable using autoloader');
use Combodo\iTop\Application\WebPage\AjaxPage;
/**
* Class ajax_page

View File

@@ -19,6 +19,8 @@
*/
use Combodo\iTop\Application\UI\Base\iUIBlock;
use Combodo\iTop\Application\WebPage\iTopWebPage;
use Combodo\iTop\Application\WebPage\WebPage;
use Symfony\Component\DependencyInjection\Container;
require_once(APPROOT.'application/newsroomprovider.class.inc.php');
@@ -270,14 +272,14 @@ interface iPreferencesExtension
{
/**
* @api
* @param \WebPage $oPage
* @param WebPage $oPage
*
*/
public function DisplayPreferences(WebPage $oPage);
/**
* @api
* @param \WebPage $oPage
* @param WebPage $oPage
* @param string $sOperation
*
* @return bool true if the operation has been used

View File

@@ -26,7 +26,7 @@ use Combodo\iTop\Application\UI\Base\Component\Html\Html;
use Combodo\iTop\Application\UI\Base\Component\Html\HtmlFactory;
use Combodo\iTop\Application\UI\Base\Component\Input\InputUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Input\Select\SelectOptionUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Input\SelectUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Input\Select\SelectUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Panel\PanelUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\PopoverMenu\PopoverMenu;
use Combodo\iTop\Application\UI\Base\Component\PopoverMenu\PopoverMenuItem\JsPopoverMenuItem;
@@ -42,6 +42,9 @@ use Combodo\iTop\Application\UI\Base\Layout\UIContentBlockUIBlockFactory;
use Combodo\iTop\Application\UI\Links\Direct\BlockDirectLinkSetViewTable;
use Combodo\iTop\Application\UI\Links\Indirect\BlockIndirectLinkSetViewTable;
use Combodo\iTop\Application\UI\Links\Set\LinkSetUIBlockFactory;
use Combodo\iTop\Application\WebPage\AjaxPage;
use Combodo\iTop\Application\WebPage\iTopWebPage;
use Combodo\iTop\Application\WebPage\WebPage;
use Combodo\iTop\Renderer\BlockRenderer;
use Combodo\iTop\Renderer\Console\ConsoleBlockRenderer;
use Combodo\iTop\Renderer\Console\ConsoleFormRenderer;
@@ -285,7 +288,7 @@ abstract class cmdbAbstractObject extends CMDBObject implements iDisplay
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param \cmdbAbstractObject $oObj
* @param array $aParams
*
@@ -354,7 +357,7 @@ JS
* @param int $iKey The identifier of the object
* @param string $sMessageId Your id or one of the well-known ids: 'create', 'update' and 'apply_stimulus'
* @param string $sMessage The HTML message (must be correctly escaped)
* @param string $sSeverity Any of the \WebPage::ENUM_SESSION_MESSAGE_SEVERITY_XXX constants
* @param string $sSeverity Any of the WebPage::ENUM_SESSION_MESSAGE_SEVERITY_XXX constants
* @param float $fRank Ordering of the message: smallest displayed first (can be negative)
* @param bool $bMustNotExist Do not alter any existing message (considering the id)
*
@@ -376,7 +379,7 @@ JS
}
/**
* @param \WebPage $oPage Warning, since 3.0.0 this parameter was kept for compatibility reason. You shouldn't write directly on the page!
* @param WebPage $oPage Warning, since 3.0.0 this parameter was kept for compatibility reason. You shouldn't write directly on the page!
* When writing to the page, markup will be put above the real header of the panel.
* To insert something IN the panel, we now need to add UIBlocks in either the "subtitle" or "toolbar" sections of the array that will be returned.
* @param bool $bEditMode Deprecated parameter in iTop 3.0.0, use {@see GetDisplayMode()} and ENUM_DISPLAY_MODE_* constants instead
@@ -554,7 +557,7 @@ HTML
/**
* Display properties tab of an object
*
* @param \WebPage $oPage
* @param WebPage $oPage
* @param bool $bEditMode Note that this parameter is no longer used in this method. Use {@see static::$sDisplayMode} instead
* @param string $sPrefix
* @param array $aExtraParams
@@ -593,7 +596,7 @@ HTML
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param $sAttCode
*
* @throws \Exception
@@ -634,7 +637,7 @@ HTML
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param bool $bEditMode Note that this parameter is no longer used in this method. Use {@see static::$sDisplayMode} instead
*
* @throws \CoreException
@@ -861,7 +864,7 @@ HTML
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param bool $bEditMode Note that this parameter is no longer used in this method. Use {@see static::$sDisplayMode} instead
* @param string $sPrefix
* @param array $aExtraParams
@@ -1065,7 +1068,7 @@ HTML
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param bool $bEditMode Note that this parameter is no longer used in this method, {@see static::$sDisplayMode} is used instead, but we cannot remove it as it part of the base interface (iDisplay)...
*
* @throws \ApplicationException
@@ -1112,7 +1115,7 @@ HTML
}
// Note: DisplayBareHeader is called before adding $oObjectDetails to the page, so it can inject HTML before it through $oPage.
/** @var \iTopWebPage $oPage */
/** @var iTopWebPage $oPage */
$aHeadersBlocks = $this->DisplayBareHeader($oPage, $bEditMode);
if (false === empty($aHeadersBlocks['subtitle'])) {
$oObjectDetails->AddSubTitleBlocks($aHeadersBlocks['subtitle']);
@@ -1147,7 +1150,7 @@ HTML
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
*
* @throws \ArchivedObjectException
* @throws \CoreException
@@ -1170,7 +1173,7 @@ HTML
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param \CMDBObjectSet $oSet
* @param array $aExtraParams See possible values in {@see DataTableUIBlockFactory::RenderDataTable()}
*
@@ -1232,7 +1235,7 @@ HTML
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param \DBObjectSet $oSet
* @param array $aExtraParams
*
@@ -1404,7 +1407,7 @@ HTML
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param \CMDBObjectSet $oSet
* @param array $aExtraParams key used :
* <ul>
@@ -1527,7 +1530,7 @@ HTML
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param \CMDBObjectSet $oSet
* @param array $aParams
* @param string $sCharset
@@ -1686,7 +1689,7 @@ HTML
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param \CMDBObjectSet $oSet
* @param array $aParams
*
@@ -1899,7 +1902,7 @@ HTML
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param \CMDBObjectSet $oSet
* @param array $aParams
*
@@ -1977,7 +1980,7 @@ HTML
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param \CMDBObjectSet $oSet
* @param array $aExtraParams
*
@@ -2008,7 +2011,7 @@ HTML
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param string $sClass
* @param string $sAttCode
* @param \AttributeDefinition $oAttDef
@@ -2746,7 +2749,7 @@ JS
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param array $aExtraParams
*
* @throws \ArchivedObjectException
@@ -3151,7 +3154,7 @@ EOF
/**
* Select the derived class to create
* @param string $sClass
* @param \WebPage $oP
* @param WebPage $oP
* @param \ApplicationContext $oAppContext
* @param array $aPossibleClasses
* @param array $aHiddenFields
@@ -3246,7 +3249,7 @@ EOF
return $oBlock;
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param string $sClass
* @param \DBObject|null $oSourceObject Object to use for the creation form, can be either the class to instantiate, an object to clone or an object to use (eg. already prefilled / modeled object)
* @param array $aArgs
@@ -3331,7 +3334,7 @@ EOF
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param string $sStimulus
* @param array|null $aPrefillFormParam
* @param bool $bDisplayBareProperties Whether to display the object details or not
@@ -3744,7 +3747,7 @@ HTML;
/**
* Displays a blob document *inline* (if possible, depending on the type of the document)
*
* @param \WebPage $oPage
* @param WebPage $oPage
* @param $sAttCode
*
* @return string
@@ -4832,7 +4835,7 @@ HTML;
/**
* Special display where the case log uses the whole "screen" at the bottom of the "Properties" tab
*
* @param \WebPage $oPage
* @param WebPage $oPage
* @param string $sAttCode
* @param string $sComment
* @param string $sPrefix
@@ -4936,7 +4939,7 @@ HTML
/**
* Special display where the case log uses the whole "screen" at the bottom of the "Properties" tab
*
* @param \WebPage $oPage
* @param WebPage $oPage
* @param string $sAttCode
* @param string $sComment
* @param string $sPrefix
@@ -5061,7 +5064,7 @@ HTML
* Display a form for modifying several objects at once
* The form will be submitted to the current page, with the specified additional values
*
* @param \iTopWebPage $oP
* @param iTopWebPage $oP
* @param string $sClass
* @param array $aSelectedObj
* @param string $sCustomOperation
@@ -5305,7 +5308,7 @@ EOF
/**
* Process the reply made from a form built with DisplayBulkModifyForm
*
* @param \WebPage $oP
* @param WebPage $oP
* @param string $sClass
* @param array $aSelectedObj
* @param string $sCustomOperation
@@ -5445,7 +5448,7 @@ EOF
/**
* Perform all the needed checks to delete one (or more) objects
*
* @param \WebPage $oP
* @param WebPage $oP
* @param $sClass
* @param \DBObject[] $aObjects
* @param $bPreview

View File

@@ -9,6 +9,8 @@ use Combodo\iTop\Application\UI\Base\Component\DataTable\DataTableSettings;
use Combodo\iTop\Application\UI\Base\Component\PopoverMenu\PopoverMenu;
use Combodo\iTop\Application\UI\Base\Component\Toolbar\ToolbarUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Layout\Dashboard\DashboardLayout as DashboardLayoutUIBlock;
use Combodo\iTop\Application\WebPage\iTopWebPage;
use Combodo\iTop\Application\WebPage\WebPage;
require_once(APPROOT.'application/dashboardlayout.class.inc.php');
require_once(APPROOT.'application/dashlet.class.inc.php');
@@ -422,7 +424,7 @@ abstract class Dashboard
}
/**
* @param \WebPage $oPage *
* @param WebPage $oPage *
* @param array $aExtraParams
*
* @throws \ReflectionException
@@ -513,7 +515,7 @@ EOF
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param bool $bEditMode
* @param array $aExtraParams
* @param bool $bCanEdit
@@ -569,7 +571,7 @@ JS
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
*
* @throws \ReflectionException
* @throws \Exception
@@ -592,7 +594,7 @@ JS
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param array $aExtraParams
*/
public function RenderDashletsProperties(WebPage $oPage, $aExtraParams = array())
@@ -1109,7 +1111,7 @@ JS
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param array $aExtraParams
*
* @throws \Exception
@@ -1228,7 +1230,7 @@ EOF
/**
* @param \WebPage $oPage
* @param WebPage $oPage
*
* @param array $aExtraParams
*
@@ -1488,7 +1490,7 @@ JS
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param $sOQL
*
* @throws \DictExceptionMissingString

View File

@@ -19,6 +19,7 @@ use Combodo\iTop\Application\UI\Base\Component\Html\Html;
use Combodo\iTop\Application\UI\Base\Layout\Dashboard\DashboardColumn;
use Combodo\iTop\Application\UI\Base\Layout\Dashboard\DashboardLayout as DashboardLayoutUIBlock;
use Combodo\iTop\Application\UI\Base\Layout\Dashboard\DashboardRow;
use Combodo\iTop\Application\WebPage\WebPage;
/**
* Dashboard presentation
@@ -106,7 +107,7 @@ abstract class DashboardLayoutMultiCol extends DashboardLayout
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param $aCells
* @param bool $bEditMode
* @param array $aExtraParams

View File

@@ -23,6 +23,7 @@ use Combodo\iTop\Application\UI\Base\Component\Html\Html;
use Combodo\iTop\Application\UI\Base\Component\Panel\PanelUIBlockFactory;
use Combodo\iTop\Application\UI\Base\iUIBlock;
use Combodo\iTop\Application\UI\Base\UIBlock;
use Combodo\iTop\Application\WebPage\WebPage;
require_once(APPROOT.'application/forms.class.inc.php');
@@ -222,7 +223,7 @@ abstract class Dashlet
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param bool $bEditMode
* @param bool $bEnclosingDiv
* @param array $aExtraParams
@@ -298,7 +299,7 @@ EOF
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param bool $bEditMode
* @param array $aExtraParams
*
@@ -309,7 +310,7 @@ EOF
/**
* Rendering without the real data
*
* @param \WebPage $oPage
* @param WebPage $oPage
* @param bool $bEditMode
* @param array $aExtraParams
*

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.1">
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2">
<classes>
<class id="AbstractResource" _delta="define">
<parent>cmdbAbstractObject</parent>
@@ -531,10 +531,18 @@
<description>The object containing the document</description>
<type>DBObject</type>
</event_datum>
<event_datum id="att_code">
<description>The optional object attribute code hosting the document</description>
<type>string</type>
</event_datum>
<event_datum id="document">
<description>The document downloaded</description>
<type>ormDocument</type>
</event_datum>
<event_datum id="content_disposition">
<description>The content disposition of the document ("inline" or "attachment")</description>
<type>string</type>
</event_datum>
<event_datum id="debug_info">
<description>Debug string</description>
<type>string</type>

View File

@@ -1,5 +1,7 @@
<?php
use Combodo\iTop\Application\UI\Base\Component\DataTable\DataTableSettings;
use Combodo\iTop\Application\WebPage\WebPage;
use Combodo\iTop\Renderer\Console\ConsoleBlockRenderer;
/**
@@ -61,8 +63,8 @@ class DataTable
}
/**
* @param \WebPage $oPage
* @param \DataTableSettings $oSettings
* @param WebPage $oPage
* @param DataTableSettings $oSettings
* @param $bActionsMenu
* @param $sSelectMode
* @param $bViewLink
@@ -141,7 +143,7 @@ class DataTable
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param $iPageSize
* @param $iDefaultPageSize
* @param $iPageIndex
@@ -236,7 +238,7 @@ class DataTable
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param $sSelectMode
*
* @return string
@@ -255,7 +257,7 @@ class DataTable
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param $iPageSize
* @param $iDefaultPageSize
* @param $iPageIndex
@@ -348,7 +350,7 @@ EOF;
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param $aExtraParams
*
* @return string
@@ -375,7 +377,7 @@ EOF;
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param $aExtraParams
*
* @return string
@@ -405,7 +407,7 @@ EOF;
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param $aColumns
* @param $bViewLink
* @param $iDefaultPageSize
@@ -658,7 +660,7 @@ EOF;
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param $aColumns
* @param $sSelectMode
* @param $iPageSize
@@ -790,7 +792,7 @@ JS
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param $iDefaultPageSize
* @param $iStart
*/
@@ -818,7 +820,7 @@ JS
class PrintableDataTable extends DataTable
{
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param $iPageSize
* @param $iDefaultPageSize
* @param $iPageIndex
@@ -844,7 +846,7 @@ class PrintableDataTable extends DataTable
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param $aColumns
* @param $sSelectMode
* @param $iPageSize

View File

@@ -24,6 +24,8 @@ use Combodo\iTop\Application\UI\DisplayBlock\BlockChartAjaxBars\BlockChartAjaxBa
use Combodo\iTop\Application\UI\DisplayBlock\BlockChartAjaxPie\BlockChartAjaxPie;
use Combodo\iTop\Application\UI\DisplayBlock\BlockCsv\BlockCsv;
use Combodo\iTop\Application\UI\DisplayBlock\BlockList\BlockList;
use Combodo\iTop\Application\WebPage\iTopWebPage;
use Combodo\iTop\Application\WebPage\WebPage;
use Combodo\iTop\Service\Router\Router;
require_once(APPROOT.'/application/utils.inc.php');
@@ -595,7 +597,7 @@ class DisplayBlock
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param array $aExtraParams
*
* @throws \ApplicationException
@@ -1354,7 +1356,7 @@ JS
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param array $aExtraParams
*
* @return \Combodo\iTop\Application\UI\Base\iUIBlock
@@ -1378,7 +1380,7 @@ JS
/**
* @param array $aExtraParams
* @param \WebPage $oPage
* @param WebPage $oPage
*
* @throws \ArchivedObjectException
* @throws \ConfigException
@@ -1456,7 +1458,7 @@ JS
/**
* @param array $aExtraParams
* @param \WebPage $oPage
* @param WebPage $oPage
*
* @return \Combodo\iTop\Application\UI\Base\Layout\UIContentBlock
* @throws \ApplicationException
@@ -1564,7 +1566,7 @@ JS
/**
* @deprecated 3.1.0 N°5957
*
* @param \WebPage $oPage
* @param WebPage $oPage
* @param array $aExtraParams
*
* @return \Combodo\iTop\Application\UI\Base\Component\Html\Html|\Combodo\iTop\Application\UI\Base\Layout\UIContentBlock|string
@@ -1664,7 +1666,7 @@ JS
/**
* @param array $aExtraParams
* @param \WebPage $oPage
* @param WebPage $oPage
*
* @throws \ArchivedObjectException
* @throws \CoreException
@@ -1830,7 +1832,7 @@ class MenuBlock extends DisplayBlock
* an object in with the same tab active by default as the tab that was active when selecting
* the "Modify..." action.
*
* @param \WebPage $oPage
* @param WebPage $oPage
* @param array $aExtraParams
* @param string|null $sId
*

View File

@@ -1,4 +1,8 @@
<?php
use Combodo\iTop\Application\WebPage\CLIPage;
use Combodo\iTop\Application\WebPage\Page;
require_once('xlsxwriter.class.php');
class ExcelExporter

View File

@@ -15,6 +15,7 @@
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
use Combodo\iTop\Application\WebPage\WebPage;
/**
* Helper class to build interactive forms to be used either in stand-alone
@@ -828,7 +829,7 @@ class DesignerFormField
}
/**
* @param \WebPage $oP
* @param WebPage $oP
* @param string $sFormId
* @param string $sRenderMode
*

View File

@@ -140,7 +140,11 @@ class LoginForm extends AbstractLoginFSMExtension implements iLoginUIExtension
$oLoginContext->AddBlockExtension('login_form_footer', new LoginBlockExtension('extensionblock/loginformfooter.html.twig'));
$bEnableResetPassword = MetaModel::GetConfig()->Get('forgot_password');
$sResetPasswordUrl = utils::GetAbsoluteUrlAppRoot() . 'pages/UI.php?loginop=forgot_pwd';
$sResetPasswordUrl = MetaModel::GetConfig()->Get('forgot_password.url');
if ($sResetPasswordUrl == '')
{
$sResetPasswordUrl = utils::GetAbsoluteUrlAppRoot() . 'pages/UI.php?loginop=forgot_pwd';
}
$aData = array(
'bEnableResetPassword' => $bEnableResetPassword,
'sResetPasswordUrl' => $sResetPasswordUrl,

View File

@@ -9,6 +9,7 @@
use Combodo\iTop\Application\Branding;
use Combodo\iTop\Application\TwigBase\Twig\Extension;
use Combodo\iTop\Application\WebPage\NiceWebPage;
use Twig\Environment;
use Twig\Loader\ChainLoader;
use Twig\Loader\FilesystemLoader;

View File

@@ -26,6 +26,8 @@
use Combodo\iTop\Application\Branding;
use Combodo\iTop\Application\Helper\Session;
use Combodo\iTop\Application\WebPage\ErrorPage;
use Combodo\iTop\Application\WebPage\NiceWebPage;
use Combodo\iTop\Service\Events\EventData;
use Combodo\iTop\Service\Events\EventService;

View File

@@ -22,6 +22,7 @@
// Maintenance message display functions
// Only included by approot.inc.php
//
use Combodo\iTop\Application\WebPage\ErrorPage;
/**
* Use a setup page to display the maintenance message

View File

@@ -5,6 +5,9 @@
*/
use Combodo\iTop\Application\Helper\WebResourcesHelper;
use Combodo\iTop\Application\WebPage\ErrorPage;
use Combodo\iTop\Application\WebPage\iTopWebPage;
use Combodo\iTop\Application\WebPage\WebPage;
require_once(APPROOT.'/application/utils.inc.php');
require_once(APPROOT.'/application/template.class.inc.php');
@@ -345,7 +348,7 @@ class ApplicationMenu
/**
* Entry point to display the whole menu into the web page, used by iTopWebPage
* @param \WebPage $oPage
* @param WebPage $oPage
* @param array $aExtraParams
* @throws DictExceptionMissingString
*
@@ -419,7 +422,7 @@ EOF
/**
* Handles the display of the sub-menus (called recursively if necessary)
*
* @param \WebPage $oPage
* @param WebPage $oPage
* @param array $aMenus
* @param array $aExtraParams
* @param int $iActiveMenu

View File

@@ -21,6 +21,7 @@ use Combodo\iTop\Application\UI\Base\Component\Alert\AlertUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\FieldSet\FieldSetUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Html\Html;
use Combodo\iTop\Application\UI\Base\Component\Input\TextArea;
use Combodo\iTop\Application\WebPage\WebPage;
abstract class Query extends cmdbAbstractObject
{

View File

@@ -16,6 +16,7 @@
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
use Combodo\iTop\Application\UI\Base\Component\DataTable\DataTableSettings;
use Combodo\iTop\Application\WebPage\WebPage;
/**

View File

@@ -17,6 +17,9 @@
* You should have received a copy of the GNU Affero General Public License
*/
use Combodo\iTop\Application\WebPage\iTopWebPage;
use Combodo\iTop\Application\WebPage\WebPage;
require_once(APPROOT.'/application/displayblock.class.inc.php');
/**
* This class manages the special template format used internally to build the iTop web pages

View File

@@ -7,6 +7,7 @@
use Combodo\iTop\Application\Helper\FormHelper;
use Combodo\iTop\Application\UI\Base\Component\Form\FormUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Layout\UIContentBlockUIBlockFactory;
use Combodo\iTop\Application\WebPage\WebPage;
use Combodo\iTop\Core\MetaModel\FriendlyNameType;
require_once(APPROOT.'/application/displayblock.class.inc.php');
@@ -65,7 +66,7 @@ class UIExtKeyWidget
//public function __construct($sAttCode, $sClass, $sTitle, $oAllowedValues, $value, $iInputId, $bMandatory, $sNameSuffix = '', $sFieldPrefix = '', $sFormPrefix = '')
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param string $sAttCode
* @param string $sClass
* @param string $sTitle
@@ -132,7 +133,7 @@ class UIExtKeyWidget
}
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param int $iMaxComboLength
* @param bool $bAllowTargetCreation
* @param string $sTitle
@@ -444,7 +445,7 @@ JS
/**
* Get the HTML fragment corresponding to the ext key editing widget
*
* @param \WebPage $oPage
* @param WebPage $oPage
* @param int $iMaxComboLength
* @param boolean $bAllowTargetCreation
* @param string $sTitle

View File

@@ -16,6 +16,7 @@
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
use Combodo\iTop\Application\Helper\WebResourcesHelper;
use Combodo\iTop\Application\WebPage\WebPage;
/**
* Class UIHTMLEditorWidget

View File

@@ -6,6 +6,7 @@
use Combodo\iTop\Application\Helper\FormHelper;
use Combodo\iTop\Application\UI\Links\Direct\BlockDirectLinkSetEditTable;
use Combodo\iTop\Application\WebPage\WebPage;
use Combodo\iTop\Renderer\Console\ConsoleBlockRenderer;
/**

View File

@@ -8,6 +8,8 @@ use Combodo\iTop\Application\UI\Base\Component\DataTable\DataTableUIBlockFactory
use Combodo\iTop\Application\UI\Base\Component\DataTable\StaticTable\FormTableRow\FormTableRow;
use Combodo\iTop\Application\UI\Links\Indirect\BlockIndirectLinkSetEditTable;
use Combodo\iTop\Application\UI\Links\Indirect\BlockObjectPickerDialog;
use Combodo\iTop\Application\WebPage\JsonPage;
use Combodo\iTop\Application\WebPage\WebPage;
use Combodo\iTop\Renderer\Console\ConsoleBlockRenderer;
require_once(APPROOT.'application/displayblock.class.inc.php');

View File

@@ -24,6 +24,8 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
use Combodo\iTop\Application\WebPage\WebPage;
require_once(APPROOT.'/application/displayblock.class.inc.php');
class UIPasswordWidget

View File

@@ -21,6 +21,8 @@
*/
use Combodo\iTop\Application\WebPage\WebPage;
require_once(APPROOT.'/application/displayblock.class.inc.php');
class UISearchFormForeignKeys

View File

@@ -15,6 +15,7 @@
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
use Combodo\iTop\Application\WebPage\iTopWebPage;
/**

View File

@@ -20,6 +20,8 @@
use Combodo\iTop\Application\Helper\Session;
use Combodo\iTop\Application\UI\Base\iUIBlock;
use Combodo\iTop\Application\UI\Base\Layout\UIContentBlock;
use Combodo\iTop\Application\UI\Hook\iKeyboardShortcut;
use Combodo\iTop\Application\WebPage\WebPage;
use Combodo\iTop\Service\Module\ModuleService;
use ScssPhp\ScssPhp\Compiler;
use ScssPhp\ScssPhp\OutputStyle;
@@ -1453,7 +1455,7 @@ class utils
/**
* Merge standard menu items with plugin provided menus items
*
* @param \WebPage $oPage
* @param WebPage $oPage
* @param int $iMenuId
* @param \DBObjectSet $param
* @param array $aActions
@@ -2956,7 +2958,7 @@ HTML;
$aResultPref = [];
$aShortcutPrefs = appUserPreferences::GetPref('keyboard_shortcuts', []);
// Note: Mind the 4 blackslashes, see utils::GetClassesForInterface()
$aShortcutClasses = utils::GetClassesForInterface('iKeyboardShortcut', '', array('[\\\\/]lib[\\\\/]', '[\\\\/]node_modules[\\\\/]', '[\\\\/]test[\\\\/]', '[\\\\/]tests[\\\\/]'));
$aShortcutClasses = utils::GetClassesForInterface(iKeyboardShortcut::class, '', array('[\\\\/]lib[\\\\/]', '[\\\\/]node_modules[\\\\/]', '[\\\\/]test[\\\\/]', '[\\\\/]tests[\\\\/]'));
foreach ($aShortcutClasses as $cShortcutPlugin) {
$sTriggeredElement = $cShortcutPlugin::GetShortcutTriggeredElementSelector();

View File

@@ -24,6 +24,8 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
use Combodo\iTop\Application\WebPage\WebPage;
require_once(APPROOT.'/application/uiwizard.class.inc.php');
class WizardHelper
@@ -367,7 +369,7 @@ JS;
/**
* Add necessary JS snippets (to the page) to be executed for fields update
*
* @param \WebPage $oPage
* @param WebPage $oPage
* @return void
* @since 3.0.3-2 3.0.4 3.1.1 3.2.0 N°6766
*/

View File

@@ -11,7 +11,7 @@ define('APPCONF', APPROOT.'conf/');
*
* @see ITOP_CORE_VERSION to get full iTop core version
*/
define('ITOP_DESIGN_LATEST_VERSION', '3.1');
define('ITOP_DESIGN_LATEST_VERSION', '3.2');
/**
* Constant containing the iTop core version, whatever application was built
@@ -23,7 +23,7 @@ define('ITOP_DESIGN_LATEST_VERSION', '3.1');
* @used-by utils::GetItopVersionWikiSyntax()
* @used-by iTopModulesPhpVersionIntegrationTest
*/
define('ITOP_CORE_VERSION', '3.1.1');
define('ITOP_CORE_VERSION', '3.2.0');
/**
* @var string

View File

@@ -4,7 +4,7 @@
"type": "project",
"license": "AGPL-3.0-only",
"require": {
"php": ">=7.4.0 <8.2.0",
"php": ">=8.1.0 <8.2.0",
"ext-ctype": "*",
"ext-dom": "*",
"ext-gd": "*",
@@ -23,18 +23,24 @@
"pear/archive_tar": "~1.4.14",
"pelago/emogrifier": "^6.0.0",
"scssphp/scssphp": "^1.10.3",
"symfony/console": "5.4.*",
"symfony/dotenv": "5.4.*",
"symfony/framework-bundle": "5.4.*",
"symfony/http-foundation": "5.4.*",
"symfony/http-kernel": "5.4.*",
"symfony/twig-bundle": "5.4.*",
"symfony/yaml": "5.4.*",
"symfony/console": "~6.4.0",
"symfony/dotenv": "~6.4.0",
"symfony/form": "~6.4.0",
"symfony/framework-bundle": "~6.4.0",
"symfony/http-foundation": "~6.4.0",
"symfony/http-kernel": "~6.4.0",
"symfony/runtime": "~6.4.0",
"symfony/serializer": "^6.4",
"symfony/twig-bundle": "~6.4.0",
"symfony/validator": "~6.4.0",
"symfony/var-dumper": "~6.4.0",
"symfony/yaml": "~6.4.0",
"thenetworg/oauth2-azure": "^2.0"
},
"require-dev": {
"symfony/stopwatch": "5.4.*",
"symfony/web-profiler-bundle": "5.4.*"
"symfony/stopwatch": "~6.4.0",
"symfony/web-profiler-bundle": "~6.4.0",
"symfony/debug-bundle": "~6.4.0"
},
"suggest": {
"ext-libsodium": "Required to use the AttributeEncryptedString.",
@@ -46,7 +52,7 @@
},
"config": {
"platform": {
"php": "7.4.0"
"php": "8.1.0"
},
"vendor-dir": "lib",
"preferred-install": {
@@ -54,7 +60,10 @@
},
"sort-packages": true,
"classmap-authoritative": true,
"platform-check": true
"platform-check": true,
"allow-plugins": {
"symfony/runtime": true
}
},
"autoload": {
"classmap": [
@@ -72,6 +81,9 @@
"application/logindefault.class.inc.php",
"application/loginexternal.class.inc.php",
"application/loginurl.class.inc.php"
],
"files": [
"sources/alias.php"
]
},
"conflict": {
@@ -81,6 +93,9 @@
"symfony": {
"allow-contrib": false,
"require": "3.4.*"
},
"runtime": {
"dotenv_path": "symfony/.env"
}
},
"scripts": {

2085
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -17,6 +17,7 @@
// along with iTop. If not, see <http://www.gnu.org/licenses/>
use Combodo\iTop\Application\TwigBase\Twig\TwigHelper;
use Combodo\iTop\Application\WebPage\WebPage;
/**
* Persistent classes (internal): user defined actions
@@ -201,12 +202,39 @@ abstract class ActionNotification extends Action
MetaModel::Init_SetZListItems('details', array('name', 'description', 'status', 'trigger_list'));
// - Attributes to be displayed for a list
MetaModel::Init_SetZListItems('list', array('finalclass', 'description', 'status'));
MetaModel::Init_AddAttribute(new AttributeApplicationLanguage("language", array("sql"=>"language", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array())));
// Search criteria
// - Criteria of the std search form
// MetaModel::Init_SetZListItems('standard_search', array('name'));
// - Default criteria of the search form
// MetaModel::Init_SetZListItems('default_search', array('name'));
}
/**
* @param $sLanguage
* @param $sLanguageCode
*
* @return array [$sPreviousLanguage, $aPreviousPluginProperties]
* @throws \ArchivedObjectException
* @throws \CoreException
* @throws \DictExceptionUnknownLanguage
* @since 3.2.0
*/
public function SetNotificationLanguage($sLanguage = null, $sLanguageCode = null){
$sPreviousLanguage = Dict::GetUserLanguage();
$aPreviousPluginProperties = ApplicationContext::GetPluginProperties('QueryLocalizerPlugin');
$sLanguage = $sLanguage ?? $this->Get('language');
$sLanguageCode = $sLanguageCode ?? $sLanguage;
if (!utils::IsNullOrEmptyString($sLanguage)) {
// If a language is specified for this action, force this language
// when rendering all placeholders inside this message
Dict::SetUserLanguage($sLanguage);
AttributeDateTime::LoadFormatFromConfig();
ApplicationContext::SetPluginProperty('QueryLocalizerPlugin', 'language_code', $sLanguageCode);
}
return [$sPreviousLanguage, $aPreviousPluginProperties];
}
}
/**
@@ -273,7 +301,6 @@ class ActionEmail extends ActionNotification
MetaModel::Init_AddAttribute(new AttributeTemplateString("subject", array("allowed_values" => null, "sql" => "subject", "default_value" => null, "is_null_allowed" => false, "depends_on" => array())));
MetaModel::Init_AddAttribute(new AttributeTemplateHTML("body", array("allowed_values" => null, "sql" => "body", "default_value" => null, "is_null_allowed" => false, "depends_on" => array())));
MetaModel::Init_AddAttribute(new AttributeEnum("importance", array("allowed_values" => new ValueSetEnum('low,normal,high'), "sql" => "importance", "default_value" => 'normal', "is_null_allowed" => false, "depends_on" => array())));
MetaModel::Init_AddAttribute(new AttributeApplicationLanguage("language", array("sql"=>"language", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeBlob("html_template", array("is_null_allowed"=>true, "depends_on"=>array(), "always_load_in_tables"=>false)));
MetaModel::Init_AddAttribute(new AttributeEnum("ignore_notify", array("allowed_values" => new ValueSetEnum('yes,no'), "sql" => "ignore_notify", "default_value" => 'yes', "is_null_allowed" => false, "depends_on" => array())));
@@ -561,15 +588,7 @@ class ActionEmail extends ActionNotification
'attachments' => [],
];
$sPreviousUrlMaker = ApplicationContext::SetUrlMakerClass();
$sPreviousLanguage = Dict::GetUserLanguage();
$aPreviousPluginProperties = ApplicationContext::GetPluginProperties('QueryLocalizerPlugin');
if ($this->Get('language') !== '') {
// If a language is specified for this action, force this language
// when rendering all placeholders inside this message
Dict::SetUserLanguage($this->Get('language'));
AttributeDateTime::LoadFormatFromConfig();
ApplicationContext::SetPluginProperty('QueryLocalizerPlugin', 'language_code', $this->Get('language'));
}
[$sPreviousLanguage, $aPreviousPluginProperties] = $this->SetNotificationLanguage();
try
{
@@ -601,9 +620,7 @@ class ActionEmail extends ActionNotification
}
finally {
ApplicationContext::SetUrlMakerClass($sPreviousUrlMaker);
Dict::SetUserLanguage($sPreviousLanguage);
AttributeDateTime::LoadFormatFromConfig();
ApplicationContext::SetPluginProperty('QueryLocalizerPlugin', 'language_code', $aPreviousPluginProperties['language_code'] ?? null);
$this->SetNotificationLanguage($sPreviousLanguage, $aPreviousPluginProperties['language_code'] ?? null);
}
if (!is_null($oLog)) {

View File

@@ -6,6 +6,7 @@
use Combodo\iTop\Application\UI\Base\Component\FieldBadge\FieldBadgeUIBlockFactory;
use Combodo\iTop\Application\UI\Links\Set\BlockLinkSetDisplayAsProperty;
use Combodo\iTop\Application\WebPage\WebPage;
use Combodo\iTop\Form\Field\LabelField;
use Combodo\iTop\Form\Field\TextAreaField;
use Combodo\iTop\Form\Form;
@@ -12996,7 +12997,7 @@ class AttributeRedundancySettings extends AttributeDBField
* Display an option (form, or current value)
*
* @param string $sCurrentValue
* @param \WebPage $oPage
* @param WebPage $oPage
* @param string $sFormPrefix
* @param bool $bEditMode
* @param string $sUserOption

View File

@@ -25,6 +25,7 @@ MetaModel::IncludeModule('application/audit.domain.class.inc.php');
MetaModel::IncludeModule('application/query.class.inc.php');
MetaModel::IncludeModule('setup/moduleinstallation.class.inc.php');
MetaModel::IncludeModule('core/event.class.inc.php');
MetaModel::IncludeModule('core/action.class.inc.php');
MetaModel::IncludeModule('core/trigger.class.inc.php');

View File

@@ -6,6 +6,9 @@
// The BOM is added at the head of exported UTF-8 CSV data, and removed (if present) from input UTF-8 data.
// This helps MS-Excel (Version > 2007, Windows only) in changing its interpretation of a CSV file (by default Excel reads data as ISO-8859-1 -not 100% sure!)
use Combodo\iTop\Application\WebPage\iTopWebPage;
use Combodo\iTop\Application\WebPage\WebPage;
define('UTF8_BOM', chr(239).chr(187).chr(191)); // 0xEF, 0xBB, 0xBF

View File

@@ -17,6 +17,9 @@
* You should have received a copy of the GNU Affero General Public License
*/
use Combodo\iTop\Application\WebPage\Page;
use Combodo\iTop\Application\WebPage\WebPage;
define('EXPORTER_DEFAULT_CHUNK_SIZE', 1000);
class BulkExportException extends Exception
@@ -391,7 +394,7 @@ abstract class BulkExport
/**
* @param \WebPage $oP
* @param WebPage $oP
* @param $sPartId
*
* @return UIContentBlock

View File

@@ -29,7 +29,7 @@ define('ITOP_APPLICATION_SHORT', 'iTop');
*
* @see ITOP_CORE_VERSION to get iTop core version
*/
define('ITOP_VERSION', '3.1.1-dev');
define('ITOP_VERSION', '3.2.0-dev');
define('ITOP_VERSION_NAME', 'Fullmoon');
define('ITOP_REVISION', 'svn');
@@ -889,6 +889,14 @@ class Config
'source_of_value' => '',
'show_in_conf_sample' => false,
],
'forgot_password.url' => [
'type' => 'string',
'description' => 'Set this value to your "forgot password" service URL if it should be handled out of '.ITOP_APPLICATION_SHORT.'. Note that it will apply to all users (iTop users, LDAP users, ...)',
'default' => '',
'value' => '',
'source_of_value' => '',
'show_in_conf_sample' => false,
],
'deadline_format' => [
'type' => 'string',
'description' => 'The format used for displaying "deadline" attributes: any string with the following placeholders: $date$, $difference$',
@@ -1595,6 +1603,22 @@ class Config
'source_of_value' => '',
'show_in_conf_sample' => false,
],
'notifications.itop.read_notification_retention' => [
'type' => 'integer',
'description' => 'Duration in days after which iTop read notifications will be deleted',
'default' => 182,
'value' => 182,
'source_of_value' => '',
'show_in_conf_sample' => false,
],
'notifications.itop.newsroom_cache_time' => [
'type' => 'integer',
'description' => 'Duration in min between each fetch for notifications in newsroom',
'default' => 5,
'value' => 5,
'source_of_value' => '',
'show_in_conf_sample' => false,
],
'regenerate_session_id_enabled' => [
'type' => 'bool',
'description' => 'If true then session id will be regenerated on each login, to prevent session fixation.',
@@ -1715,6 +1739,14 @@ class Config
'source_of_value' => '',
'show_in_conf_sample' => false,
],
'application.secret' => [
'type' => 'string',
'description' => 'Application secret, uses this value for encrypting the cookies used in the remember me functionality and for creating signed URIs when using ESI (Edge Side Includes).',
'default' => '',
'value' => '',
'source_of_value' => '',
'show_in_conf_sample' => false,
],
];
public function IsProperty($sPropCode)
@@ -1894,6 +1926,15 @@ class Config
*/
protected $m_iPasswordHashAlgo;
/**
* Symfony uses this value for encrypting the cookies used in the remember me functionality and for creating signed URIs when using ESI (Edge Side Includes).
*
* @see https://symfony.com/doc/current/reference/configuration/framework.html#secret
* @since 3.2.0 - N°6934 - Symfony 6.4 - upgrade Symfony bundles to 6.4
* @var string
*/
protected $m_sAppSecret;
/**
* Config constructor.
*
@@ -1938,6 +1979,7 @@ class Config
$this->m_aCharsets = array();
$this->m_bQueryCacheEnabled = DEFAULT_QUERY_CACHE_ENABLED;
$this->m_iPasswordHashAlgo = DEFAULT_HASH_ALGO;
$this->m_sAppSecret = bin2hex(random_bytes(16));
//define default encryption params according to php install
$aEncryptParams = SimpleCrypt::GetNewDefaultParams();
@@ -2098,6 +2140,7 @@ class Config
$this->m_sEncryptionLibrary = isset($MySettings['encryption_library']) ? trim($MySettings['encryption_library']) : $this->m_sEncryptionLibrary;
$this->m_aCharsets = isset($MySettings['csv_import_charsets']) ? $MySettings['csv_import_charsets'] : array();
$this->m_iPasswordHashAlgo = isset($MySettings['password_hash_algo']) ? $MySettings['password_hash_algo'] : $this->m_iPasswordHashAlgo;
$this->m_sAppSecret = isset($MySettings['application.secret']) ? trim($MySettings['application.secret']) : $this->m_sAppSecret;
}
protected function Verify()
@@ -2233,6 +2276,11 @@ class Config
return $this->m_sEncryptionKey;
}
public function GetAppSecret()
{
return $this->m_sAppSecret;
}
public function GetEncryptionLibrary()
{
return $this->m_sEncryptionLibrary;
@@ -2349,6 +2397,12 @@ class Config
$this->m_sEncryptionKey = $sKey;
}
public function SetAppSecret($sKey)
{
$this->m_sAppSecret = $sKey;
}
public function SetCSVImportCharsets($aCharsets)
{
$this->m_aCharsets = $aCharsets;
@@ -2400,6 +2454,7 @@ class Config
$aSettings['encryption_library'] = $this->m_sEncryptionLibrary;
$aSettings['csv_import_charsets'] = $this->m_aCharsets;
$aSettings['password_hash_algo'] = $this->m_iPasswordHashAlgo;
$aSettings['application.secret'] = $this->m_sAppSecret;
foreach ($this->m_aModuleSettings as $sModule => $aProperties)
{
@@ -2512,7 +2567,8 @@ class Config
'encryption_key' => $this->m_sEncryptionKey,
'encryption_library' => $this->m_sEncryptionLibrary,
'csv_import_charsets' => $this->m_aCharsets,
'password_hash_algo' => $this->m_iPasswordHashAlgo
'password_hash_algo' => $this->m_iPasswordHashAlgo,
'application.secret' => $this->m_sAppSecret,
);
foreach ($aOtherValues as $sKey => $value)
{

View File

@@ -8,11 +8,13 @@ use Combodo\iTop\Application\UI\Base\Component\FieldSet\FieldSetUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Html\Html;
use Combodo\iTop\Application\UI\Base\Component\Input\InputUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Input\Select\SelectOptionUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Input\SelectUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Input\Select\SelectUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Panel\PanelUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Layout\MultiColumn\Column\ColumnUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Layout\MultiColumn\MultiColumnUIBlockFactory;
use Combodo\iTop\Application\Helper\ExportHelper;
use Combodo\iTop\Application\WebPage\Page;
use Combodo\iTop\Application\WebPage\WebPage;
/**
* Bulk export: CSV export
@@ -101,7 +103,7 @@ class CSVBulkExport extends TabularBulkExport
}
/**
* @param \WebPage $oP
* @param WebPage $oP
* @param $sPartId
*
* @return UIContentBlock

View File

@@ -1,5 +1,268 @@
<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.1">
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2">
<classes>
<class id="ActioniTopNotification" _delta="define">
<php_parent>
<name>ActionNotification</name>
</php_parent>
<parent>cmdbAbstractObject</parent>
<properties>
<category>grant_by_profile,core/cmdb,application</category>
<abstract>false</abstract>
<key_type>autoincrement</key_type>
<db_table>priv_action_itop_notif</db_table>
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<attributes>
<attribute id="title"/>
</attributes>
</naming>
</properties>
<fields>
<field id="title" xsi:type="AttributeString">
<sql>title</sql>
<default_value/>
<is_null_allowed>false</is_null_allowed>
</field>
<field id="message" xsi:type="AttributeText">
<sql>message</sql>
<default_value/>
<is_null_allowed>true</is_null_allowed>
</field>
<field id="icon" xsi:type="AttributeImage">
<sql>icon</sql>
<default_value/>
<is_null_allowed>true</is_null_allowed>
<display_max_width>96</display_max_width>
<display_max_height>96</display_max_height>
<storage_max_width>256</storage_max_width>
<storage_max_height>256</storage_max_height>
<default_image>null</default_image>
</field>
<field id="priority" xsi:type="AttributeEnum">
<sql>priority</sql>
<values>
<value id="1">
<code>1</code>
</value>
<value id="2">
<code>2</code>
</value>
<value id="3">
<code>3</code>
</value>
<value id="4">
<code>4</code>
</value>
</values>
<default_value>4</default_value>
<is_null_allowed>false</is_null_allowed>
</field>
<field id="recipients" xsi:type="AttributeOQL">
<sql>recipients</sql>
<default_value/>
<is_null_allowed>false</is_null_allowed>
</field>
<field id="url" xsi:type="AttributeString">
<sql>url</sql>
<default_value>$this->url()$</default_value>
<is_null_allowed>false</is_null_allowed>
</field>
</fields>
<presentation>
<details>
<items>
<item id="col:col1">
<items>
<item id="fieldset:ActioniTopNotification:content">
<items>
<item id="name">
<rank>10</rank>
</item>
<item id="status">
<rank>20</rank>
</item>
<item id="language">
<rank>30</rank>
</item>
<item id="title">
<rank>40</rank>
</item>
<item id="message">
<rank>50</rank>
</item>
</items>
</item>
</items>
</item>
<item id="col:col2">
<items>
<item id="fieldset:ActioniTopNotification:settings">
<items>
<item id="priority">
<rank>10</rank>
</item>
<item id="icon">
<rank>20</rank>
</item>
<item id="recipients">
<rank>30</rank>
</item>
<item id="url">
<rank>40</rank>
</item>
</items>
</item>
</items>
</item>
</items>
</details>
<list>
<items>
<item id="title">
<rank>10</rank>
</item>
<item id="status">
<rank>20</rank>
</item>
<item id="language">
<rank>30</rank>
</item>
</items>
</list>
</presentation>
<methods>
<method id="DoExecute">
<comment> /**
*
* Create EventiTopNotification for each recipient
* @param $oTrigger
* @param $aContextArgs
*
* @return void
* @throws \ArchivedObjectException
* @throws \CoreCannotSaveObjectException
* @throws \CoreException
* @throws \CoreUnexpectedValue
* @throws \CoreWarning
* @throws \MySQLException
* @throws \OQLException
*/</comment>
<static>false</static>
<access>public</access>
<code><![CDATA[
public function DoExecute($oTrigger, $aContextArgs)
{
$oRecipientsSearch = DBObjectSearch::FromOQL($this->Get('recipients'));
$oRecipientsSearch->AllowAllData();
$oRecipientsSet = new DBObjectSet($oRecipientsSearch);
[$sPreviousLanguage, $aPreviousPluginProperties] = $this->SetNotificationLanguage();
while ($oRecipient = $oRecipientsSet->Fetch()) {
$oEvent = new EventiTopNotification();
$oEvent->Set('title', MetaModel::ApplyParams($this->Get('title'), $aContextArgs));
$oEvent->Set('message', MetaModel::ApplyParams($this->Get('message'), $aContextArgs));
$oIcon = !$this->Get('icon')->IsEmpty() ? $this->Get('icon') : MetaModel::GetAttributeDef('EventiTopNotification', 'icon')->MakeRealValue(Combodo\iTop\Application\Branding::GetCompactMainLogoAbsoluteUrl(), $oEvent);
$oEvent->Set('icon', $oIcon);
$oEvent->Set('priority', $this->Get('priority'));
$oEvent->Set('contact_id', $oRecipient->GetKey());
$oEvent->Set('trigger_id', $oTrigger->GetKey());
$oEvent->Set('action_id', $this->GetKey());
$iObjectId = array_key_exists('this->object()', $aContextArgs) ? $aContextArgs['this->object()']->GetKey() : 0;
$oEvent->Set('object_id', $iObjectId);
$oEvent->Set('url', MetaModel::ApplyParams($this->Get('url'), $aContextArgs));
$oEvent->DBInsertNoReload();
}
$this->SetNotificationLanguage($sPreviousLanguage, $aPreviousPluginProperties['language_code'] ?? null);
}
]]></code>
</method>
</methods>
</class>
<class id="EventiTopNotification" _delta="define">
<php_parent>
<name>EventNotification</name>
</php_parent>
<parent>cmdbAbstractObject</parent>
<properties>
<category>core/cmdb,view_in_gui</category>
<abstract>false</abstract>
<key_type>autoincrement</key_type>
<db_table>priv_event_itop_notif</db_table>
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<attributes>
<attribute id="title"/>
</attributes>
</naming>
</properties>
<fields>
<field id="title" xsi:type="AttributeString">
<sql>title</sql>
<default_value/>
<is_null_allowed>false</is_null_allowed>
</field>
<field id="icon" xsi:type="AttributeImage">
<sql>icon</sql>
<default_value/>
<is_null_allowed>true</is_null_allowed>
<default_image>null</default_image>
</field>
<field id="priority" xsi:type="AttributeEnum">
<sql>priority</sql>
<values>
<value id="1">
<code>1</code>
</value>
<value id="2">
<code>2</code>
</value>
<value id="3">
<code>3</code>
</value>
<value id="4">
<code>4</code>
</value>
</values>
<default_value>4</default_value>
<is_null_allowed>false</is_null_allowed>
</field>
<field id="url" xsi:type="AttributeURL">
<sql>url</sql>
<default_value/>
<is_null_allowed>false</is_null_allowed>
<target>_blank</target>
</field>
<field id="read" xsi:type="AttributeEnum">
<sql>read</sql>
<values>
<value id="yes">
<code>yes</code>
</value>
<value id="no">
<code>no</code>
</value>
</values>
<default_value>no</default_value>
<is_null_allowed>false</is_null_allowed>
</field>
<field id="read_date" xsi:type="AttributeDateTime">
<sql>read_date</sql>
<default_value/>
<is_null_allowed>true</is_null_allowed>
</field>
<field id="contact_id" xsi:type="AttributeExternalKey">
<sql>contact_id</sql>
<target_class>Contact</target_class>
<default_value/>
<is_null_allowed>false</is_null_allowed>
</field>
</fields>
<presentation/>
<methods/>
</class>
</classes>
<user_rights>
<profiles>
<profile id="1024" _delta="define">
@@ -282,8 +545,50 @@
<field id="obj_attcode" xsi:type="AttributeString"/>
</fields>
</class>
<class id="DefaultWorkingTimeComputer" _delta="define">
<interfaces>
<interface id="iWorkingTimeComputer"/>
</interfaces>
</class>
<class id="ActionNotification" _delta="define">
<!-- Generated by toolkit/export-class-to-meta.php -->
<parent>Action</parent>
<properties>
<category>grant_by_profile,core/cmdb</category>
</properties>
<fields>
<field id="name" xsi:type="AttributeString"/>
<field id="description" xsi:type="AttributeString"/>
<field id="status" xsi:type="AttributeEnum"/>
<field id="trigger_list" xsi:type="AttributeLinkedSetIndirect"/>
<field id="language" xsi:type="AttributeApplicationLanguage"/>
</fields>
</class>
<class id="EventNotification" _delta="define">
<!-- Generated by toolkit/export-class-to-meta.php -->
<parent>Event</parent>
<properties>
<category>core/cmdb,view_in_gui</category>
</properties>
<fields>
<field id="message" xsi:type="AttributeText"/>
<field id="date" xsi:type="AttributeDateTime"/>
<field id="userinfo" xsi:type="AttributeString"/>
<field id="trigger_id" xsi:type="AttributeExternalKey">
<target_class>Trigger</target_class>
</field>
<field id="action_id" xsi:type="AttributeExternalKey">
<target_class>Action</target_class>
</field>
<field id="object_id" xsi:type="AttributeInteger"/>
<field id="trigger_id_friendlyname" xsi:type="AttributeExternalField"/>
<field id="trigger_id_finalclass_recall" xsi:type="AttributeExternalField"/>
<field id="action_id_friendlyname" xsi:type="AttributeExternalField"/>
<field id="action_id_finalclass_recall" xsi:type="AttributeExternalField"/>
</fields>
</class>
</classes>
<attribute_properties_definition _delta="define">
<attribute_properties_definition _delta="define">
<properties>
<property id="sql">
<php_param>sql</php_param>

View File

@@ -4,12 +4,14 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
use Combodo\iTop\Application\WebPage\WebPage;
use Combodo\iTop\Core\MetaModel\FriendlyNameType;
use Combodo\iTop\Service\Events\EventData;
use Combodo\iTop\Service\Events\EventException;
use Combodo\iTop\Service\Events\EventService;
use Combodo\iTop\Service\Events\EventServiceLog;
use Combodo\iTop\Service\Module\ModuleService;
use Combodo\iTop\Service\SummaryCard\SummaryCardService;
use Combodo\iTop\Service\TemporaryObjects\TemporaryObjectManager;
/**

View File

@@ -21,6 +21,9 @@ use Combodo\iTop\Application\UI\Base\Component\MedallionIcon\MedallionIcon;
use Combodo\iTop\Application\UI\Base\Component\Panel\Panel;
use Combodo\iTop\Application\UI\Base\Layout\UIContentBlock;
use Combodo\iTop\Application\UI\Base\Layout\UIContentBlockUIBlockFactory;
use Combodo\iTop\Application\WebPage\iTopPDF;
use Combodo\iTop\Application\WebPage\PDFPage;
use Combodo\iTop\Application\WebPage\WebPage;
use Combodo\iTop\Renderer\BlockRenderer;
/**
@@ -1580,7 +1583,7 @@ EOF
* @param string $sContextKey
* @param array $aContextParams
* @param array $aExcludedObjects
* @param \WebPage $oP
* @param WebPage $oP
* @param array $aResults
* @param bool $bLazyLoading
*
@@ -1602,7 +1605,7 @@ EOF
}
/**
* @param \WebPage $oP
* @param WebPage $oP
* @param array $aResults
* @param bool $bLazyLoading
*

View File

@@ -46,6 +46,15 @@ class EMail implements iEMail
const ORIGINAL_FORMAT = 1; // Original format, consisting in serializing the whole object, inculding the Swift Mailer's object.
// Did not work with attachements since their binary representation cannot be stored as a valid UTF-8 string
const FORMAT_V2 = 2; // New format, only the raw data are serialized (base64 encoded if needed)
/** @var int ENUM_SEND_DEFAULT This option can be used when sending an e-mail to respect the default configuration parameter. */
const ENUM_SEND_DEFAULT = 0;
/** @var int ENUM_SEND_FORCE_SYNCHRONOUS This option can be used when sending an e-mail to ignore the default and force synchronous sending instead. Example of a use case: instant e-mail test. */
const ENUM_SEND_FORCE_SYNCHRONOUS = 1;
/** @var int ENUM_SEND_FORCE_ASYNCHRONOUS This option can be used when sending an e-mail to ignore the default and force synchronous sending instead. Example of a use case: Bulk mails. */
const ENUM_SEND_FORCE_ASYNCHRONOUS = 2;
public function __construct()
{

View File

@@ -1,4 +1,7 @@
<?php
use Combodo\iTop\Application\WebPage\WebPage;
/**
* Copyright (C) 2013-2023 Combodo SARL
*

View File

@@ -11,6 +11,8 @@ use Combodo\iTop\Application\UI\Base\Component\Panel\PanelUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Layout\MultiColumn\Column\ColumnUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Layout\MultiColumn\MultiColumnUIBlockFactory;
use Combodo\iTop\Application\Helper\ExportHelper;
use Combodo\iTop\Application\WebPage\Page;
use Combodo\iTop\Application\WebPage\WebPage;
require_once(APPROOT.'application/xlsxwriter.class.php');
@@ -69,7 +71,7 @@ class ExcelBulkExport extends TabularBulkExport
}
/**
* @param \WebPage $oP
* @param WebPage $oP
* @param $sPartId
*
* @return UIContentBlock

View File

@@ -15,6 +15,8 @@
//
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
use Combodo\iTop\Application\WebPage\Page;
use Combodo\iTop\Application\WebPage\WebPage;
/**
* Bulk export: HTML export
@@ -37,7 +39,7 @@ class HTMLBulkExport extends TabularBulkExport
}
/**
* @param \WebPage $oP
* @param WebPage $oP
* @param $sPartId
*
* @return UIContentBlock

View File

@@ -20,6 +20,7 @@ use Combodo\iTop\Application\UI\Base\Component\CollapsibleSection\CollapsibleSec
use Combodo\iTop\Application\UI\Base\Component\Html\Html;
use Combodo\iTop\Application\UI\Base\iUIBlock;
use Combodo\iTop\Application\UI\Base\Layout\UIContentBlockUIBlockFactory;
use Combodo\iTop\Application\WebPage\WebPage;
use Combodo\iTop\Renderer\BlockRenderer;
define('CASELOG_VISIBLE_ITEMS', 2);

View File

@@ -17,6 +17,7 @@
* You should have received a copy of the GNU Affero General Public License
*/
use Combodo\iTop\Application\WebPage\WebPage;
use Combodo\iTop\Service\Events\EventData;
use Combodo\iTop\Service\Events\EventService;

View File

@@ -8,10 +8,13 @@ use Combodo\iTop\Application\UI\Base\Component\FieldSet\FieldSetUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Html\Html;
use Combodo\iTop\Application\UI\Base\Component\Input\InputUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Input\Select\SelectOptionUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Input\SelectUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Input\Select\SelectUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Panel\PanelUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Layout\MultiColumn\Column\ColumnUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Layout\MultiColumn\MultiColumnUIBlockFactory;
use Combodo\iTop\Application\WebPage\Page;
use Combodo\iTop\Application\WebPage\PDFPage;
use Combodo\iTop\Application\WebPage\WebPage;
/**
* Bulk export: PDF export, based on the HTML export converted to PDF
@@ -49,7 +52,7 @@ class PDFBulkExport extends HTMLBulkExport
}
/**
* @param \WebPage $oP
* @param WebPage $oP
* @param $sPartId
*
* @return UIContentBlock
@@ -68,8 +71,6 @@ class PDFBulkExport extends HTMLBulkExport
//page format
$oSelectFormat = SelectUIBlockFactory::MakeForSelectWithLabel("page_size", Dict::S('Core:BulkExport:PDFPageSize'));
$oSelectFormat->SetIsLabelBefore(false);
//$oSelectFormat->AddCSSClass('ibo-input-checkbox');
$oFieldSetFormat->AddSubBlock($oSelectFormat);
$aPossibleFormat = ['A3', 'A4', 'Letter'];
@@ -79,10 +80,7 @@ class PDFBulkExport extends HTMLBulkExport
}
$oFieldSetFormat->AddSubBlock(new Html('</br>'));
$oSelectOrientation = SelectUIBlockFactory::MakeForSelectWithLabel("page_orientation",
Dict::S('Core:BulkExport:PDFPageOrientation'));
$oSelectOrientation->SetIsLabelBefore(false);
//$oSelectOrientation->AddCSSClass('ibo-input-checkbox');
$oSelectOrientation = SelectUIBlockFactory::MakeForSelectWithLabel("page_orientation", Dict::S('Core:BulkExport:PDFPageOrientation'));
$oFieldSetFormat->AddSubBlock($oSelectOrientation);
$aPossibleOrientation = ['P', 'L'];

View File

@@ -10,6 +10,8 @@ use Combodo\iTop\Application\UI\Base\Component\Input\InputUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Panel\PanelUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Layout\MultiColumn\Column\ColumnUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Layout\MultiColumn\MultiColumnUIBlockFactory;
use Combodo\iTop\Application\WebPage\Page;
use Combodo\iTop\Application\WebPage\WebPage;
/**
* Bulk export: "spreadsheet" export: a simplified HTML export in which the date/time columns are split in two column: date AND time
@@ -34,7 +36,7 @@ class SpreadsheetBulkExport extends TabularBulkExport
}
/**
* @param \WebPage $oP
* @param WebPage $oP
* @param $sPartId
*
* @return UIContentBlock

View File

@@ -6,6 +6,7 @@
use Combodo\iTop\Application\UI\Base\Component\Input\InputUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Layout\UIContentBlockUIBlockFactory;
use Combodo\iTop\Application\WebPage\WebPage;
/**
* Bulk export: Tabular export: abstract base class for all "tabular" exports.
@@ -22,7 +23,7 @@ abstract class TabularBulkExport extends BulkExport
}
/**
* @param \WebPage $oP
* @param WebPage $oP
* @param $sPartId
*
* @return UIContentBlock

View File

@@ -17,6 +17,8 @@
* You should have received a copy of the GNU Affero General Public License
*/
use Combodo\iTop\Application\WebPage\WebPage;
/**
* <p>Stores data for {@link AttributeTagSet} fields
@@ -296,7 +298,7 @@ abstract class TagSetFieldData extends cmdbAbstractObject
/**
* Display Tag Usage
*
* @param \WebPage $oPage
* @param WebPage $oPage
* @param bool $bEditMode
*
* @throws \CoreException

View File

@@ -1,6 +1,7 @@
<?php
use Combodo\iTop\Application\Helper\Session;
use Combodo\iTop\Application\WebPage\WebPage;
define('UR_ALLOWED_NO', 0);
define('UR_ALLOWED_YES', 1);
@@ -867,6 +868,8 @@ class UserRights
*/
public static function Login($sLogin, $sAuthentication = 'any')
{
self::ResetCurrentUserData();
$oUser = self::FindUser($sLogin, $sAuthentication);
if (is_null($oUser))
{

View File

@@ -8,6 +8,8 @@ use Combodo\iTop\Application\UI\Base\Component\Input\InputUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Panel\PanelUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Layout\MultiColumn\Column\ColumnUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Layout\MultiColumn\MultiColumnUIBlockFactory;
use Combodo\iTop\Application\WebPage\Page;
use Combodo\iTop\Application\WebPage\WebPage;
/**
* Bulk export: XML export
@@ -30,7 +32,7 @@ class XMLBulkExport extends BulkExport
}
/**
* @param \WebPage $oP
* @param WebPage $oP
* @param $sPartId
*
* @return UIContentBlock

75
css/form-sdk/form.css Normal file
View File

@@ -0,0 +1,75 @@
/**
* Widgets Factory.
*
* @package FormSDK
* @since 3.2.0
*/
/* debug purpose */
.form-type-pictograms{
display: inline-block;
float: right;
margin-left: 5px;
color: grey;
cursor: pointer;
padding: 0px 5px;
border-radius: 8px;
font-size: 0.9rem;
}
.form-type-pictograms i{
width: 15px;
}
.complete .form-type-pictograms .pattern:after{
content: '\f00c';
font-family: "Font Awesome 6 Free";
font-weight: 900;
background-color: #20b220;
border-radius: 50%;
font-size: 7px;
color: white;
position: relative;
top: -10px;
padding: 2px;
}
/* form label */
.form-label.required:after{
content: '*';
color: #e63535;
margin-left: 3px;
}
.cke_focus .cke_contents{
border: 1px #86b7fe solid;
outline: 0;
border-radius: 6px;
box-shadow: 0 0 0 0.25rem rgba(13,110,253,.25);
}
.form_interval_horizontal{
display: flex;
}
.form_interval_horizontal > div{
margin-right: 8px;
}
.form-compound-fieldset{
padding: 8px;
border-radius: 10px;
border: 1px dashed lightgrey;
}
.form-layout-row{
display: flex;
flex-direction: row;
}
.form-layout-column{
margin: 10px;
}
.form-layout-column:first-child{
margin-left: 0px;
}
.form-layout-column:last-child{
margin-right: 0px;
}

88
css/form-sdk/test.css Normal file
View File

@@ -0,0 +1,88 @@
.layout-grow{
flex-grow: 1;
}
.custom-container{
position: relative;
border-radius: 10px;
padding: 40px 20px 0px;
}
.custom-container:before{
content: 'Custom Layout CSS';
font-weight: 500;
position: absolute;
left: 50%;
top: -10px;
transform: translateX(-50%);
/*border: 1px solid #9c21af;*/
background-color: white;
padding: 5px 15px;
border-radius: 10px;
}
.container-flower{
background-color: #f3deff;
background-size: 500px;
background-repeat: no-repeat;
background-position-x: right;
background-position-y: bottom;
background: linear-gradient( to right bottom, rgb(248 242 251) 50%, rgb(241 187 255) );
padding-bottom: 200px;
}
.container-flower fieldset{
position: relative;
z-index: 1;
}
.container-flower:after{
content: '';
width: 300px;
height: 200px;
background-image: url('../../sources/FormImplementation/Resources/6662396.png');
background-size: 300px;
position: absolute;
bottom: 0px;
right: 0px;
border-radius: 10px;
}
.container-flower .col-form-label{
color: #8d63b7;
}
.container-flower .form-compound-fieldset{
border: 1px solid #8d63b7;
}
.container-color{
position: relative;
border-radius: 10px;
background-color: #faf7ff;
}
.container-color .form-compound-fieldset{
background-color: #ebe4f6;
border: none;
}
.container-color2{
position: relative;
border-radius: 10px;
background-color: #f7f9ff;
}
.container-color2 .form-compound-fieldset{
background-color: #e8edf9;
border: none;
}
.error-label{
color: #d32f2f;
}
.container-color2 .form-compound-fieldset fieldset{
border-bottom: 1px dashed #a3adc5;
}
.container-color2 .form-compound-fieldset fieldset:last-child{
border-bottom: none;
}

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.1">
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2">
<constants>
</constants>
<classes>

View File

@@ -7,6 +7,6 @@
*/
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'CAS:Error:UserNotAllowed' => '用户被禁止登录',
'CAS:Login:SignIn' => '使用CAS 登录',
'CAS:Login:SignInTooltip' => '点击这里使用CAS 服务器认证',
'CAS:Login:SignIn' => '使用CAS登录',
'CAS:Login:SignInTooltip' => '点击这里使用CAS服务器认证',
));

View File

@@ -5,7 +5,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'authent-cas/3.1.1',
'authent-cas/3.2.0',
array(
// Identification
//

View File

@@ -35,5 +35,5 @@
//
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Class:UserExternal' => '外部用户',
'Class:UserExternal+' => '用户在 '.ITOP_APPLICATION_SHORT.' 外部验证身份',
'Class:UserExternal+' => '用户在'.ITOP_APPLICATION_SHORT.'外部验证身份',
));

View File

@@ -27,7 +27,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'authent-external/3.1.1',
'authent-external/3.2.0',
array(
// Identification
//

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.1">
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2">
<classes>
<class id="UserLDAP" _delta="define">
<parent>cmdbAbstractObject</parent>

View File

@@ -34,7 +34,7 @@
// Class: UserLDAP
//
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Class:UserLDAP' => 'LDAP 用户',
'Class:UserLDAP+' => '用户身份由LDAP 认证',
'UserLDAP:server' => 'LDAP specifics~~',
'Class:UserLDAP' => 'LDAP用户',
'Class:UserLDAP+' => '用户身份由LDAP认证',
'UserLDAP:server' => 'LDAP详情',
));

View File

@@ -9,7 +9,7 @@ if (function_exists('ldap_connect'))
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'authent-ldap/3.1.1',
'authent-ldap/3.2.0',
array(
// Identification
//

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.1">
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2">
<module_parameters>
<parameters id="authent-local" _delta="define">
<password_validation.pattern>^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\da-zA-Z]).{8,}$</password_validation.pattern>

View File

@@ -35,11 +35,11 @@
//
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Class:UserLocal' => ITOP_APPLICATION_SHORT.' 用户',
'Class:UserLocal+' => '用户由 '.ITOP_APPLICATION_SHORT.' 验证身份',
'Class:UserLocal+' => '用户由'.ITOP_APPLICATION_SHORT.'验证身份',
'Class:UserLocal/Attribute:password' => '密码',
'Class:UserLocal/Attribute:password+' => '用于验证用户身份的字符串',
'Class:UserLocal/Attribute:expiration' => '密码过期',
'Class:UserLocal/Attribute:expiration+' => '密码过期状态(需要一个扩展才能生效)',
'Class:UserLocal/Attribute:expiration+' => '密码过期状态 (需要一个扩展才能生效)',
'Class:UserLocal/Attribute:expiration/Value:can_expire' => '允许过期',
'Class:UserLocal/Attribute:expiration/Value:can_expire+' => '',
'Class:UserLocal/Attribute:expiration/Value:never_expire' => '永不过期',
@@ -50,7 +50,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Class:UserLocal/Attribute:expiration/Value:otp_expire+' => '用户不允许修改密码.',
'Class:UserLocal/Attribute:password_renewed_date' => '密码更新',
'Class:UserLocal/Attribute:password_renewed_date+' => '上次修改密码的时间',
'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => '密码必须至少8个字符,包含大小写,数字和特殊字符.',
'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => '密码必须至少8个字符, 包含大小写, 数字和特殊字符.',
'UserLocal:password:expiration' => '下面的区域需要插件扩展',
'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => '不允许用户为自己设置"一次性密码"的失效期限',
'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => '不允许用户为自己设置 "一次性密码" 的失效期限',
));

View File

@@ -3,7 +3,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'authent-local/3.1.1',
'authent-local/3.2.0',
array(
// Identification
//

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.1">
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2">
<branding>
<themes>
<theme id="darkmoon" _delta="define">

View File

@@ -21,5 +21,5 @@
* along with iTop. If not, see <http://www.gnu.org/licenses/>
*/
Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'theme:darkmoon' => 'Dark moon~~',
));
'theme:darkmoon' => 'Dark moon',
));

View File

@@ -21,5 +21,5 @@
* along with iTop. If not, see <http://www.gnu.org/licenses/>
*/
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'theme:darkmoon' => 'Dark moon~~',
'theme:darkmoon' => '暗月',
));

View File

@@ -5,7 +5,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'combodo-backoffice-darkmoon-theme/3.1.1',
'combodo-backoffice-darkmoon-theme/3.2.0',
array(
// Identification
//

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.1">
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2">
<menus>
<menu id="DBToolsMenu" xsi:type="WebPageMenuNode" _delta="define">
<rank>30</rank>

View File

@@ -30,6 +30,7 @@ use Combodo\iTop\Application\UI\Base\Component\Title\TitleUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Toolbar\Separator\ToolbarSeparatorUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Toolbar\ToolbarUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Layout\UIContentBlockUIBlockFactory;
use Combodo\iTop\Application\WebPage\iTopWebPage;
use Combodo\iTop\DBTools\Service\DBAnalyzerUtils;
@include_once('../../approot.inc.php');
@@ -43,7 +44,7 @@ const MAX_RESULTS = 10;
* @param iTopWebPage $oP
* @param ApplicationContext $oAppContext
*
* @return \iTopWebPage
* @return iTopWebPage
* @throws \CoreException
* @throws \DictExceptionMissingString
* @throws \MySQLException
@@ -294,7 +295,7 @@ function DisplayErrorDetails($aResults, $bVerbose)
* @param iTopWebPage $oP
* @param ApplicationContext $oAppContext
*
* @return \iTopWebPage
* @return iTopWebPage
* @throws CoreException
* @throws MySQLException
* @throws \Exception

View File

@@ -24,51 +24,51 @@
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
// Dictionary entries go here
'Menu:DBToolsMenu' => '数据库工具',
'DBTools:Class' => '类',
'DBTools:Class' => '类',
'DBTools:Title' => '数据库维护工具',
'DBTools:ErrorsFound' => '发现错误',
'DBTools:Indication' => '重要: 修复数据库错误后,可能会出现新的不一致,您必须重新运行一次分析.',
'DBTools:Disclaimer' => '免责申明: 在应用修复之前,应先备份数据库',
'DBTools:Indication' => '重要: 修复数据库错误后, 可能会出现新的不一致, 您必须重新运行一次分析.',
'DBTools:Disclaimer' => '免责申明: 在应用修复之前, 应先备份数据库',
'DBTools:Error' => '错误',
'DBTools:Count' => '个数',
'DBTools:SQLquery' => 'SQL 查询',
'DBTools:FixitSQLquery' => 'SQL query To Fix it (indication)~~',
'DBTools:SQLresult' => 'SQL 结果',
'DBTools:SQLquery' => 'SQL查询',
'DBTools:FixitSQLquery' => '修复问题的SQL查询 (指示)',
'DBTools:SQLresult' => 'SQL结果',
'DBTools:NoError' => '数据库正确',
'DBTools:HideIds' => '错误列表',
'DBTools:ShowIds' => '详细视图',
'DBTools:ShowReport' => '报告',
'DBTools:IntegrityCheck' => '完整性检查',
'DBTools:FetchCheck' => '提取检查(耗时长)',
'DBTools:FetchCheck' => '提取检查 (耗时长)',
'DBTools:SelectAnalysisType' => '请选择分析类型',
'DBTools:Analyze' => '分析',
'DBTools:Details' => '显示详情',
'DBTools:ShowAll' => '显示所有错误',
'DBTools:Inconsistencies' => '数据库不一致',
'DBTools:DetailedErrorTitle' => '%2$s 个错误在类 %1$s: %3$s',
'DBTools:DetailedErrorLimit' => 'List limited to %1$s errors~~',
'DBAnalyzer-Integrity-OrphanRecord' => 'Orphan record in `%1$s`, it should have its counterpart in table `%2$s`~~',
'DBAnalyzer-Integrity-InvalidExtKey' => '无效的外键 %1$s (列: `%2$s.%3$s`)',
'DBAnalyzer-Integrity-MissingExtKey' => '外键丢失 %1$s (列: `%2$s.%3$s`)',
'DBAnalyzer-Integrity-InvalidValue' => '无效的值 %1$s (列: `%2$s.%3$s`)',
'DBTools:DetailedErrorTitle' => '%2$s个错误在类%1$s: %3$s',
'DBTools:DetailedErrorLimit' => '列表限制为%1$s错误',
'DBAnalyzer-Integrity-OrphanRecord' => '孤立记录位于 `%1$s`, 其应该有副本位于表 `%2$s`',
'DBAnalyzer-Integrity-InvalidExtKey' => '无效的外键%1$s (列: `%2$s.%3$s`)',
'DBAnalyzer-Integrity-MissingExtKey' => '外键丢失%1$s (列: `%2$s.%3$s`)',
'DBAnalyzer-Integrity-InvalidValue' => '无效的值%1$s (列: `%2$s.%3$s`)',
'DBAnalyzer-Integrity-UsersWithoutProfile' => '一些用户账号没有角色',
'DBAnalyzer-Integrity-HKInvalid' => '损坏的层级链 `%1$s`',
'DBAnalyzer-Fetch-Count-Error' => 'Fetch count error in `%1$s`, %2$d entries fetched / %3$d counted~~',
'DBAnalyzer-Integrity-FinalClass' => '字段 `%2$s`.`%1$s` 必须是相同的值,而不是 `%3$s`.`%1$s`',
'DBAnalyzer-Integrity-RootFinalClass' => '字段 `%2$s`.`%1$s` 必须包含一个有效的类',
'DBAnalyzer-Fetch-Count-Error' => '读取计数出错于 `%1$s`, %2$d个记录已读取 / %3$d已~~',
'DBAnalyzer-Integrity-FinalClass' => '字段 `%2$s`.`%1$s` 必须是相同的值, 而不是 `%3$s`.`%1$s`',
'DBAnalyzer-Integrity-RootFinalClass' => '字段 `%2$s`.`%1$s` 必须包含一个有效的类',
));
// Database Info
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'DBTools:DatabaseInfo' => '数据库信息',
'DBTools:Base' => 'Base~~',
'DBTools:Base' => '数据库',
'DBTools:Size' => '大小',
));
// Lost attachments
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'DBTools:LostAttachments' => '附件缺失',
'DBTools:LostAttachments:Disclaimer' => '可以在此搜索数据库中丢失或错放的附件.这不是数据恢复工具,其无法恢复已删除的数据.',
'DBTools:LostAttachments:Disclaimer' => '可以在此搜索数据库中丢失或错放的附件. 这不是数据恢复工具, 其无法恢复已删除的数据.',
'DBTools:LostAttachments:Button:Analyze' => '分析',
'DBTools:LostAttachments:Button:Restore' => '还原',
'DBTools:LostAttachments:Button:Restore:Confirm' => '此操作无法回退, 请确认是否继续还原.',
@@ -81,7 +81,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'DBTools:LostAttachments:Step:AnalyzeResults:Item:CurrentLocation' => '当前位置',
'DBTools:LostAttachments:Step:AnalyzeResults:Item:TargetLocation' => '移动到...',
'DBTools:LostAttachments:Step:RestoreResults' => '还原结果:',
'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d 的附件被还原.',
'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d的附件被还原.',
'DBTools:LostAttachments:StoredAsInlineImage' => '存储为内嵌图像',
'DBTools:LostAttachments:History' => '附件 "%1$s" 已使用数据库工具还原'
));

View File

@@ -24,7 +24,7 @@
/** @noinspection PhpUnhandledExceptionInspection */
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'combodo-db-tools/3.1.1',
'combodo-db-tools/3.2.0',
array(
// Identification
//

View File

@@ -17,11 +17,14 @@
* You should have received a copy of the GNU Affero General Public License
*/
use Combodo\iTop\Application\WebPage\AjaxPage;
use Combodo\iTop\Application\WebPage\JsonPage;
require_once('../../approot.inc.php');
require_once(APPROOT.'/application/application.inc.php');
/**
* @param \AjaxPage $oPage
* @param \Combodo\iTop\Application\WebPage\AjaxPage $oPage
* @param int $iTransactionId
*
* @throws \ArchivedObjectException

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.1">
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2">
<classes>
<class id="Attachment" _delta="define">
<parent>DBObject</parent>

View File

@@ -21,8 +21,8 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Attachments:EmptyTabTitle' => '附件',
'Attachments:FieldsetTitle' => '附件',
'Attachments:DeleteBtn' => '删除',
'Attachments:History_File_Added' => '附件 %1$s 已添加.',
'Attachments:History_File_Removed' => '附件 %1$s 已移除.',
'Attachments:History_File_Added' => '附件%1$s已添加.',
'Attachments:History_File_Removed' => '附件%1$s已移除.',
'Attachments:AddAttachment' => '添加附件: ',
'Attachments:UploadNotAllowedOnThisSystem' => '本系统不支持文件上传.',
'Attachment:Max_Go' => '(最大文件尺寸: %1$s GB)',
@@ -31,7 +31,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Attachments:NoAttachment' => '没有附件. ',
'Attachments:PreviewNotAvailable' => '此附件类型不支持预览.',
'Attachments:Error:FileTooLarge' => '上传的文件过大. %1$s',
'Attachments:Error:UploadedFileEmpty' => '收到的文件为空,无法添加. 可能是因为您发送的是空文件,或者咨询 '.ITOP_APPLICATION_SHORT.' 管理员服务器磁盘是否已满. ',
'Attachments:Error:UploadedFileEmpty' => '收到的文件为空, 无法添加. 可能是因为您发送的是空文件,或者咨询'.ITOP_APPLICATION_SHORT.'管理员服务器磁盘是否已满.',
'Attachments:Render:Icons' => '显示为图标',
'Attachments:Render:Table' => '显示为列表',
'UI:Attachments:DropYourFileHint' => '将文件拖放到此区域的任意位置',
@@ -46,9 +46,9 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Class:Attachment+' => '',
'Class:Attachment/Attribute:expire' => '过期',
'Class:Attachment/Attribute:expire+' => '~~',
'Class:Attachment/Attribute:temp_id' => '临时id',
'Class:Attachment/Attribute:temp_id' => '临时编号',
'Class:Attachment/Attribute:temp_id+' => '~~',
'Class:Attachment/Attribute:item_class' => '项目类',
'Class:Attachment/Attribute:item_class' => '项目类',
'Class:Attachment/Attribute:item_class+' => '~~',
'Class:Attachment/Attribute:item_id' => '项目',
'Class:Attachment/Attribute:item_id+' => '~~',
@@ -66,7 +66,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Attachments:File:Uploader' => '上传者',
'Attachments:File:Size' => '大小',
'Attachments:File:MimeType' => '类型',
'Attachments:File:DownloadsCount' => 'Downloads~~',
'Attachments:File:DownloadsCount' => '下载',
));
//
// Class: Attachment
@@ -75,9 +75,9 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Class:Attachment/Attribute:creation_date' => '创建日期',
'Class:Attachment/Attribute:creation_date+' => '~~',
'Class:Attachment/Attribute:user_id' => '用户id',
'Class:Attachment/Attribute:user_id' => '用户编号',
'Class:Attachment/Attribute:user_id+' => '~~',
'Class:Attachment/Attribute:contact_id' => '联系人id',
'Class:Attachment/Attribute:contact_id' => '联系人编号',
'Class:Attachment/Attribute:contact_id+' => '~~',
));
@@ -86,6 +86,6 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
//
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Class:TriggerOnAttachmentDownload' => 'Trigger (on object\'s attachment download)~~',
'Class:TriggerOnAttachmentDownload+' => 'Trigger on object\'s attachment download of [a child class of] the given class~~',
'Class:TriggerOnAttachmentDownload' => '触发器 (于对象附件下载时)',
'Class:TriggerOnAttachmentDownload+' => '触发器于指定类型 [子类型] 对象附件下载时',
));

View File

@@ -4,6 +4,8 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
use Combodo\iTop\Application\WebPage\WebPage;
class AttachmentPlugIn implements iApplicationUIExtension, iApplicationObjectExtension
{
const ENUM_GUI_ALL = 'all';
@@ -221,7 +223,7 @@ class AttachmentPlugIn implements iApplicationUIExtension, iApplicationObjectExt
/**
* @param \DBObject $oObject
* @param \WebPage $oPage
* @param WebPage $oPage
* @param bool $bEditMode
*
* @throws \CoreException

View File

@@ -19,7 +19,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-attachments/3.1.1',
'itop-attachments/3.2.0',
array(
// Identification
//

View File

@@ -29,6 +29,7 @@ use Combodo\iTop\Application\UI\Base\Component\Button\ButtonUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\DataTable\DataTableUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Input\FileSelect\FileSelectUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Panel\PanelUIBlockFactory;
use Combodo\iTop\Application\WebPage\WebPage;
use Combodo\iTop\Renderer\BlockRenderer;
define('ATTACHMENT_DISPLAY_URL', 'pages/ajax.render.php?operation=display_document&class=Attachment&field=contents&id=');
@@ -42,7 +43,7 @@ define('ATTACHMENTS_RENDERER', 'TableDetailsAttachmentsRenderer');
class AttachmentsRendererFactory
{
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param string $sObjClass class name of the objects holding the attachments
* @param int $iObjKey key of the objects holding the attachments
* @param string $sTransactionId CSRF token
@@ -85,7 +86,7 @@ abstract class AbstractAttachmentsRenderer
*/
const ATTACHMENTS_LIST_CONTAINER_ID = 'AttachmentsListContainer';
/** @var \WebPage */
/** @var WebPage */
protected $oPage;
/**
* @var string CSRF token, must be provided cause when getting content from AJAX we need the one from the original page, not the
@@ -102,14 +103,14 @@ abstract class AbstractAttachmentsRenderer
protected $oAttachmentsSet;
/**
* @param \WebPage $oPage
* @param WebPage $oPage
* @param string $sObjClass class name of the objects holding the attachments
* @param int $iObjKey key of the objects holding the attachments
* @param string $sTransactionId CSRF token
*
* @throws \OQLException
*/
public function __construct(\WebPage $oPage, $sObjClass, $iObjKey, $sTransactionId)
public function __construct(WebPage $oPage, $sObjClass, $iObjKey, $sTransactionId)
{
$this->oPage = $oPage;
$this->sObjClass = $sObjClass;

View File

@@ -17,6 +17,10 @@
* You should have received a copy of the GNU Affero General Public License
*/
use Combodo\iTop\Application\WebPage\AjaxPage;
use Combodo\iTop\Application\WebPage\JsonPage;
use Combodo\iTop\Application\WebPage\WebPage;
if (!defined('APPROOT')) require_once(__DIR__.'/../../approot.inc.php');
require_once(APPROOT.'/application/application.inc.php');

View File

@@ -17,6 +17,8 @@
* You should have received a copy of the GNU Affero General Public License
*/
use Combodo\iTop\Application\WebPage\Page;
if (!defined('APPROOT'))
{
if (file_exists(__DIR__.'/../../approot.inc.php'))
@@ -84,7 +86,7 @@ function Usage($oP)
}
/**
* @param \Page $oP
* @param Page $oP
*
* @throws \DictExceptionUnknownLanguage
* @throws \OQLException

View File

@@ -27,6 +27,8 @@
// /usr/bin/php -q /var/www/combodo/modules/itop-backup/check-backup.php --backup_file=/home/backups/combodo-crm-%Y-%m-%d
// Do not forget to set the 'itop_backup_incident' configuration file parameter !
use Combodo\iTop\Application\WebPage\CLIPage;
if (file_exists(__DIR__.'/../../approot.inc.php'))
{
require_once __DIR__.'/../../approot.inc.php'; // When in env-xxxx folder

View File

@@ -17,6 +17,9 @@
* You should have received a copy of the GNU Affero General Public License
*/
use Combodo\iTop\Application\WebPage\CLIPage;
use Combodo\iTop\Application\WebPage\WebPage;
if (!defined('APPROOT'))
{
if (file_exists(__DIR__.'/../../approot.inc.php'))

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.1">
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2">
<menus>
<menu id="BackupStatus" xsi:type="WebPageMenuNode" _delta="define">
<rank>50</rank>

View File

@@ -21,22 +21,22 @@
* along with iTop. If not, see <http://www.gnu.org/licenses/>
*/
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'bkp-backup-running' => '备份正在进行,请稍后...',
'bkp-restore-running' => '还原正在进行,请稍等...',
'bkp-backup-running' => '备份正在进行, 请稍后...',
'bkp-restore-running' => '还原正在进行, 请稍等...',
'Menu:BackupStatus' => '定时备份',
'bkp-status-title' => '定时备份',
'bkp-status-checks' => '设置与检查',
'bkp-mysqldump-ok' => '已找到mysqldump : %1$s',
'bkp-mysqldump-notfound' => 'mysqldump 找不到: %1$s - 请确认它安装在正确的路径, 或者调整'.ITOP_APPLICATION_SHORT.' 配置文件的选项mysql_bindir.',
'bkp-mysqldump-issue' => 'mysqldump 无法运行 (retcode=%1$d): 请确认它安装在正确的路径, 或者调整'.ITOP_APPLICATION_SHORT.' 配置文件的选项mysql_bindir',
'bkp-missing-dir' => '目标目录 <code>%1$s</code> 找不到',
'bkp-free-disk-space' => '<b>%1$s 可用空间 </b> 位于 <code>%2$s</code>',
'bkp-dir-not-writeable' => '%1$s 没有写入权限',
'bkp-mysqldump-notfound' => 'mysqldump找不到: %1$s - 请确认它安装在正确的路径, 或者调整'.ITOP_APPLICATION_SHORT.'配置文件的参数mysql_bindir.',
'bkp-mysqldump-issue' => 'mysqldump无法运行 (retcode=%1$d): 请确认它安装在正确的路径, 或者调整'.ITOP_APPLICATION_SHORT.'配置文件的参数mysql_bindir',
'bkp-missing-dir' => '目标目录<code>%1$s</code>找不到',
'bkp-free-disk-space' => '<b>%1$s可用空间</b>位于<code>%2$s</code>',
'bkp-dir-not-writeable' => '%1$s没有写入权限',
'bkp-wrong-format-spec' => '当前文件名格式错误 (%1$s). 默认格式应该是: %2$s',
'bkp-name-sample' => '备份文件将以数据库名,日期和时间进行命名. 例如: %1$s',
'bkp-week-days' => '在每个 <b> %1$s%2$s</b> 进行备份',
'bkp-retention' => '最多 <b>%1$d 份备份文件 </b> 在目标目录.',
'bkp-next-to-delete' => '当下一次备份时将被删除 (see the setting "retention_count")',
'bkp-name-sample' => '备份文件将以数据库名, 日期和时间进行命名. 例如: %1$s',
'bkp-week-days' => '在每个<b>%1$s%2$s</b>进行备份',
'bkp-retention' => '最多<b>%1$d份备份文件</b>在目标目录.',
'bkp-next-to-delete' => '当下一次备份时将被删除 (参阅设置 "retention_count")',
'bkp-table-file' => '文件',
'bkp-table-file+' => '只有扩展名是.zip的文件才被认为是备份文件',
'bkp-table-size' => '大小',
@@ -46,7 +46,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'bkp-status-backups-auto' => '定时备份',
'bkp-status-backups-manual' => '手动备份',
'bkp-status-backups-none' => '尚未开始备份',
'bkp-next-backup' => '下一次备份将发生在 <b>%1$s</b> (%2$s) 的 %3$s',
'bkp-next-backup' => '下一次备份将发生在<b>%1$s</b> (%2$s) 的%3$s',
'bkp-next-backup-unknown' => '下一次备份<b>尚未被计划</b>.',
'bkp-button-backup-now' => '立即备份!',
'bkp-button-restore-now' => '还原!',

View File

@@ -3,7 +3,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-backup/3.1.1',
'itop-backup/3.2.0',
array(
// Identification
//

View File

@@ -17,6 +17,8 @@
* You should have received a copy of the GNU Affero General Public License
*/
use Combodo\iTop\Application\WebPage\Page;
if (!defined('APPROOT'))
{
if (file_exists(__DIR__.'/../../approot.inc.php'))
@@ -87,7 +89,7 @@ function GetOperationName() {
}
/**
* @param \Page $oP
* @param Page $oP
*
* @throws \DictExceptionUnknownLanguage
* @throws \OQLException

View File

@@ -25,6 +25,7 @@ use Combodo\iTop\Application\UI\Base\Component\Panel\PanelUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Title\TitleUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Layout\UIContentBlock;
use Combodo\iTop\Application\UI\Base\UIBlock;
use Combodo\iTop\Application\WebPage\iTopWebPage;
use Combodo\iTop\Renderer\BlockRenderer;
if (!defined('APPROOT')) {

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.1">
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2">
<constants/>
<classes>
<class id="lnkFunctionalCIToProviderContract" _delta="define">

View File

@@ -31,7 +31,7 @@
// Class: lnkFunctionalCIToProviderContract
//
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Class:lnkFunctionalCIToProviderContract' => '关联 功能配置项/供应商合同',
'Class:lnkFunctionalCIToProviderContract' => '关联功能配置项/供应商合同',
'Class:lnkFunctionalCIToProviderContract+' => '',
'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s~~',
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_id' => '供应商合同',
@@ -49,7 +49,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
//
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Class:lnkFunctionalCIToService' => '关联 功能配置项/服务',
'Class:lnkFunctionalCIToService' => '关联功能配置项/服务',
'Class:lnkFunctionalCIToService+' => '',
'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s~~',
'Class:lnkFunctionalCIToService/Attribute:service_id' => '服务',

View File

@@ -5,7 +5,7 @@
SetupWebPage::AddModule(
__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
'itop-bridge-cmdb-services/3.1.1',
'itop-bridge-cmdb-services/3.2.0',
array(
// Identification
//

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.1">
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2">
<constants/>
<classes>
<class id="lnkFunctionalCIToTicket" _delta="define">

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