mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-23 10:38:45 +02:00
Compare commits
446 Commits
faf/improv
...
3.2.0-beta
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c2d984d470 | ||
|
|
1de2502fe9 | ||
|
|
6647575965 | ||
|
|
1c00461f4d | ||
|
|
6c0dfd13eb | ||
|
|
b8c4be7a3d | ||
|
|
b8a9ea452f | ||
|
|
c8a1f7f534 | ||
|
|
cbb78056c3 | ||
|
|
c34dc34e3e | ||
|
|
a1e48cc438 | ||
|
|
d4b41d892c | ||
|
|
09a5d7a35f | ||
|
|
ae83a11a8c | ||
|
|
4c0a55dbbb | ||
|
|
6080e456c5 | ||
|
|
cd065cc0db | ||
|
|
46929ce43f | ||
|
|
bda7f58ddd | ||
|
|
c940295663 | ||
|
|
8d2adfbbd2 | ||
|
|
d3b39048d8 | ||
|
|
02a5630f62 | ||
|
|
9d1c66296b | ||
|
|
be3e55acee | ||
|
|
3fd6f47f8b | ||
|
|
bbebca7951 | ||
|
|
07702379c3 | ||
|
|
7c8fa10be9 | ||
|
|
ffcc8ff32a | ||
|
|
6f42b4aafc | ||
|
|
ecd8890c0b | ||
|
|
f568aaf732 | ||
|
|
fbf98aa4d9 | ||
|
|
0f5ee780bc | ||
|
|
12ccbd48b9 | ||
|
|
67762458e4 | ||
|
|
3e3ac0d83f | ||
|
|
fa43aaba49 | ||
|
|
12fc7fbfd9 | ||
|
|
6969013439 | ||
|
|
32835f70b9 | ||
|
|
63cf78f64d | ||
|
|
8be7628668 | ||
|
|
37f0a7e6d9 | ||
|
|
e750ad8755 | ||
|
|
22882e35b4 | ||
|
|
afc40d9cca | ||
|
|
7cf607c34e | ||
|
|
e6c3744aaa | ||
|
|
7769e5e116 | ||
|
|
11502d2e92 | ||
|
|
fc428eeb2b | ||
|
|
a956627187 | ||
|
|
c178fa4677 | ||
|
|
25af60d8df | ||
|
|
9bf0addc9c | ||
|
|
094a9ed82f | ||
|
|
5e64be8580 | ||
|
|
a0b76a25be | ||
|
|
4764553e08 | ||
|
|
f87b4f6154 | ||
|
|
4ccec53e8d | ||
|
|
e7728ee7dd | ||
|
|
c06aa66854 | ||
|
|
7dd913b0dd | ||
|
|
6fb1afaa2f | ||
|
|
8cb92e3bd3 | ||
|
|
d9fcde8dbb | ||
|
|
2389a5d720 | ||
|
|
e2f2afad54 | ||
|
|
f632cf3155 | ||
|
|
bc77c6589d | ||
|
|
13dfdc3d9d | ||
|
|
62caf16153 | ||
|
|
1de179f683 | ||
|
|
8823068608 | ||
|
|
48857631a4 | ||
|
|
fd6796aae3 | ||
|
|
020a37ead9 | ||
|
|
b9b28e31f4 | ||
|
|
0489235c67 | ||
|
|
365d948a59 | ||
|
|
5bc8717d2b | ||
|
|
912b6b4a0d | ||
|
|
163a3afc0f | ||
|
|
fb96184401 | ||
|
|
35265718c1 | ||
|
|
d98e35d918 | ||
|
|
f8b54be896 | ||
|
|
a88ce075cc | ||
|
|
c6f3e36451 | ||
|
|
53dc452d61 | ||
|
|
ccaf2dc5b7 | ||
|
|
d2c7b13454 | ||
|
|
1366acd001 | ||
|
|
bdd2e9ab4d | ||
|
|
08b8be1ab2 | ||
|
|
5c46cb7c9b | ||
|
|
d9581a083d | ||
|
|
46738d4ba4 | ||
|
|
5d5df5ad1a | ||
|
|
ad36066126 | ||
|
|
a642ad6db9 | ||
|
|
e680259728 | ||
|
|
7b8887a9c8 | ||
|
|
1ce81fe466 | ||
|
|
3cf3159469 | ||
|
|
188a3fe3cc | ||
|
|
848c4bb979 | ||
|
|
b6ea73747d | ||
|
|
635c1bda6e | ||
|
|
0d1c3aa464 | ||
|
|
e1246ad375 | ||
|
|
8305cfed24 | ||
|
|
8c46c99ecc | ||
|
|
f7bbbbbe87 | ||
|
|
7b35692ce6 | ||
|
|
22fbb0ca13 | ||
|
|
3dccf9ee3f | ||
|
|
02be397e8f | ||
|
|
61469a28b9 | ||
|
|
24cf28f09a | ||
|
|
9ff54cead8 | ||
|
|
dbcbb187b2 | ||
|
|
71b4d672d4 | ||
|
|
93bba66323 | ||
|
|
0a95aa385a | ||
|
|
cab6394cba | ||
|
|
32140b360f | ||
|
|
b1290072b5 | ||
|
|
c82f169248 | ||
|
|
06a8481511 | ||
|
|
a481992c8e | ||
|
|
0434579ef5 | ||
|
|
59a955f491 | ||
|
|
d1ff87c0e6 | ||
|
|
47248bf0b7 | ||
|
|
0f49154b5d | ||
|
|
0507f95971 | ||
|
|
82220c801b | ||
|
|
2ffcfd2f57 | ||
|
|
e657052d17 | ||
|
|
d85767a838 | ||
|
|
e409ee8337 | ||
|
|
973a716481 | ||
|
|
cfbc75b564 | ||
|
|
78215439ee | ||
|
|
028c7f0604 | ||
|
|
e56d5ed3aa | ||
|
|
e5a8bd61b0 | ||
|
|
eeec57536b | ||
|
|
e3173810fd | ||
|
|
3b7f26d794 | ||
|
|
7fba61ff35 | ||
|
|
1bf156bdda | ||
|
|
6ff60080a1 | ||
|
|
1164e757de | ||
|
|
514e0b80a5 | ||
|
|
9d195d6fa0 | ||
|
|
1235452a1b | ||
|
|
35f4ab4941 | ||
|
|
16ff6341d0 | ||
|
|
e669f0e6b9 | ||
|
|
12ad3c2732 | ||
|
|
ac826cb9f1 | ||
|
|
9dab8679d6 | ||
|
|
d9c0c3cdbe | ||
|
|
4f3b25aa46 | ||
|
|
f737bcb9a0 | ||
|
|
4c78488644 | ||
|
|
3a8ad59e6c | ||
|
|
62f5f2c942 | ||
|
|
c56aeb08f5 | ||
|
|
ddc004a147 | ||
|
|
e4a3a7d0ca | ||
|
|
6ae813221e | ||
|
|
dc553ca83c | ||
|
|
14c637c7f3 | ||
|
|
3ce6c8b7cf | ||
|
|
b4cdf5cf6d | ||
|
|
77cc4672b0 | ||
|
|
331e66e594 | ||
|
|
b65e931c4c | ||
|
|
de5a9261df | ||
|
|
46b0dabb1d | ||
|
|
dfbfab7005 | ||
|
|
aa831b632c | ||
|
|
6cb3519308 | ||
|
|
cfb9fae648 | ||
|
|
f4e791734f | ||
|
|
6653ab0668 | ||
|
|
7ab258ba03 | ||
|
|
b5af30a93f | ||
|
|
dad406d208 | ||
|
|
a6d01739ba | ||
|
|
e3501447ad | ||
|
|
2294fce5da | ||
|
|
ce5c05234d | ||
|
|
bbfa601ab1 | ||
|
|
93e1f6ae03 | ||
|
|
2a9add241e | ||
|
|
c9a9ec2fed | ||
|
|
83764deedb | ||
|
|
172b1cb1ff | ||
|
|
8a4e144725 | ||
|
|
5f35effad9 | ||
|
|
e1374a0e6b | ||
|
|
ca356859a3 | ||
|
|
5efe294895 | ||
|
|
6a6dacc8ce | ||
|
|
28feddb6c9 | ||
|
|
e6fa589412 | ||
|
|
18d0b88531 | ||
|
|
3139a0b610 | ||
|
|
e0170ccc7e | ||
|
|
c24e7ef318 | ||
|
|
ffefa5495a | ||
|
|
3f773539fe | ||
|
|
a371b7f03b | ||
|
|
de97a6263f | ||
|
|
233bbebd93 | ||
|
|
f0c5264fc8 | ||
|
|
367aac3e04 | ||
|
|
3b78885f38 | ||
|
|
793f5c7cbe | ||
|
|
1d4cb6034d | ||
|
|
e6814d6860 | ||
|
|
79198f51a3 | ||
|
|
f14b4c32be | ||
|
|
6be5264fe9 | ||
|
|
6a30d6caa9 | ||
|
|
628a7319d1 | ||
|
|
bc8543d88c | ||
|
|
a51242dc36 | ||
|
|
64ba706083 | ||
|
|
ed562c9f73 | ||
|
|
85c576a986 | ||
|
|
3deb74a4d1 | ||
|
|
b9dd891aac | ||
|
|
1f2469e1e4 | ||
|
|
8fa56a6f3f | ||
|
|
22af1a8787 | ||
|
|
5e15fbec45 | ||
|
|
3a6a5ca49d | ||
|
|
3d6509e246 | ||
|
|
cd34f8b5eb | ||
|
|
8357c86361 | ||
|
|
d48b5d7d21 | ||
|
|
efe61201e5 | ||
|
|
a458d98688 | ||
|
|
a3553202d9 | ||
|
|
b10d381dda | ||
|
|
9dc7b6dc0c | ||
|
|
1be67f349f | ||
|
|
4ca92affcf | ||
|
|
3f401e4de0 | ||
|
|
9b198bc76e | ||
|
|
f7230de6d6 | ||
|
|
a4aa494e5d | ||
|
|
8647414a33 | ||
|
|
a58f0bfc0b | ||
|
|
ff1305165e | ||
|
|
d9b87064a1 | ||
|
|
a468bf8f7e | ||
|
|
65c706fdfe | ||
|
|
0853645264 | ||
|
|
e6162fe958 | ||
|
|
25f266ef66 | ||
|
|
fee07960ca | ||
|
|
5a34c76cc4 | ||
|
|
5efb1a0872 | ||
|
|
2c68f78027 | ||
|
|
7f9b60d66f | ||
|
|
816df1b551 | ||
|
|
1278c4b196 | ||
|
|
a7f3bf9a56 | ||
|
|
4eed5bdeb9 | ||
|
|
739afdb1ec | ||
|
|
75a01db959 | ||
|
|
c29bff4d91 | ||
|
|
7b999cef50 | ||
|
|
69e481dbc1 | ||
|
|
279b29a98c | ||
|
|
12b30c1531 | ||
|
|
bcfbacc625 | ||
|
|
36d6c13941 | ||
|
|
4952fc5575 | ||
|
|
7b8634e9e7 | ||
|
|
c86ebba60d | ||
|
|
db4c70cea3 | ||
|
|
e8c4c45c5c | ||
|
|
a3d5712087 | ||
|
|
5b8a3459f5 | ||
|
|
8a983ecbb7 | ||
|
|
e62473d4e9 | ||
|
|
054520cdac | ||
|
|
b38a7c8ab6 | ||
|
|
3588a50597 | ||
|
|
babdd9f163 | ||
|
|
5d8a0f8e9f | ||
|
|
52106fe48c | ||
|
|
e7a04e0e70 | ||
|
|
90458f6048 | ||
|
|
3a990f46d3 | ||
|
|
673b01585d | ||
|
|
3653a4bc90 | ||
|
|
bdfd956825 | ||
|
|
da99a250bf | ||
|
|
d57fd05552 | ||
|
|
5554241877 | ||
|
|
d9232a645d | ||
|
|
def10a9877 | ||
|
|
b29597110e | ||
|
|
c7a8d90364 | ||
|
|
86489dbbe1 | ||
|
|
6098842d9f | ||
|
|
2f30a0146e | ||
|
|
193af6c759 | ||
|
|
1de9e704fc | ||
|
|
f4b9a9a5fe | ||
|
|
561e743fc3 | ||
|
|
fa5d03fc6e | ||
|
|
7b5fa0a912 | ||
|
|
5f88391935 | ||
|
|
29300fd91e | ||
|
|
2c8b2f6c71 | ||
|
|
4cde461876 | ||
|
|
5a3bfa8043 | ||
|
|
c5544a7a1e | ||
|
|
8ffcb01c43 | ||
|
|
5c46b4ef4a | ||
|
|
912c7fa956 | ||
|
|
79cdb837b5 | ||
|
|
db2ea617d3 | ||
|
|
7499e41e40 | ||
|
|
a97935ca01 | ||
|
|
dc6ea37f23 | ||
|
|
87181669d1 | ||
|
|
efd7fb0f59 | ||
|
|
c2f72f713a | ||
|
|
700c4d0b04 | ||
|
|
43a8152de1 | ||
|
|
8c1d986a03 | ||
|
|
f3dd414a51 | ||
|
|
d1a4d333eb | ||
|
|
b934cbe89e | ||
|
|
71a0f8b87d | ||
|
|
a4edf8cb21 | ||
|
|
dbd5ba0377 | ||
|
|
5d6f293956 | ||
|
|
65e6c84477 | ||
|
|
61e04c5a73 | ||
|
|
9cc7ccb1cd | ||
|
|
a337ef3d88 | ||
|
|
27ac1fe276 | ||
|
|
986c24d777 | ||
|
|
763112c179 | ||
|
|
a5efd981d8 | ||
|
|
6450b52697 | ||
|
|
c0e4d04a1c | ||
|
|
289ca7b505 | ||
|
|
2922b22478 | ||
|
|
2af05a437e | ||
|
|
71d9536bc4 | ||
|
|
b1e1a66496 | ||
|
|
d7270c56cd | ||
|
|
7a7b7381c9 | ||
|
|
da32362ef6 | ||
|
|
5569df5950 | ||
|
|
b08b5297cf | ||
|
|
3e6e096f62 | ||
|
|
6377a738c5 | ||
|
|
a9f8dcc5e8 | ||
|
|
9470d9b9ec | ||
|
|
9750fec959 | ||
|
|
969a301cbb | ||
|
|
c325294e17 | ||
|
|
8588757da9 | ||
|
|
f894cb24c6 | ||
|
|
722765c0aa | ||
|
|
5e9b4da68c | ||
|
|
af2c6d9ab8 | ||
|
|
0176905c20 | ||
|
|
5e4f76bde9 | ||
|
|
0c3e839381 | ||
|
|
5be386d03e | ||
|
|
2ced460ec6 | ||
|
|
ae9bda8bbb | ||
|
|
9566963835 | ||
|
|
cf6e8ab22a | ||
|
|
2aa1385958 | ||
|
|
509df0939e | ||
|
|
9032dac314 | ||
|
|
a29b0a8e33 | ||
|
|
fee1897932 | ||
|
|
093a4cec75 | ||
|
|
892a7fa95f | ||
|
|
48f7ae8476 | ||
|
|
10ef277982 | ||
|
|
ebe7da7acb | ||
|
|
9fa036df7e | ||
|
|
c24c1ba73c | ||
|
|
3650cf761d | ||
|
|
34c4d753d3 | ||
|
|
4d1f8e5704 | ||
|
|
7ac283bffb | ||
|
|
c1efad7556 | ||
|
|
f78b57521a | ||
|
|
da490739be | ||
|
|
8e8d586dcc | ||
|
|
e05b4e772c | ||
|
|
02efea4e55 | ||
|
|
17bab06ff5 | ||
|
|
ab4f224a00 | ||
|
|
fe6ee083f6 | ||
|
|
655539c289 | ||
|
|
33ba754277 | ||
|
|
7948793674 | ||
|
|
8c7b33fb06 | ||
|
|
db4dfe1ba3 | ||
|
|
e00112d6e1 | ||
|
|
3404306de8 | ||
|
|
ff7e4d3db6 | ||
|
|
e371db846a | ||
|
|
5bbf3c9c35 | ||
|
|
fe4233e218 | ||
|
|
8490c2a22f | ||
|
|
e758527ca9 | ||
|
|
3e9f4df1bf | ||
|
|
f3fbce7459 | ||
|
|
ff079f7d01 | ||
|
|
d4c54b6e1c | ||
|
|
39d1ddeab8 | ||
|
|
fada9793f0 | ||
|
|
45a8e6d1c8 | ||
|
|
bf4b07a366 | ||
|
|
48de13b5cf | ||
|
|
b867faa355 | ||
|
|
1848b5f231 | ||
|
|
9fa53d43ab | ||
|
|
646e86b207 | ||
|
|
e93c9b8537 | ||
|
|
849c495093 | ||
|
|
e878938e25 | ||
|
|
7453cc184f |
Binary file not shown.
|
After Width: | Height: | Size: 4.8 MiB |
2
.github/pull_request_template.md
vendored
2
.github/pull_request_template.md
vendored
@@ -65,7 +65,7 @@ Don't remove these lines, check them once done.
|
|||||||
- [ ] I have performed a self-review of my code
|
- [ ] I have performed a self-review of my code
|
||||||
- [ ] I have tested all changes I made on an iTop instance
|
- [ ] I have tested all changes I made on an iTop instance
|
||||||
- [ ] I have added a unit test, otherwise I have explained why I couldn't
|
- [ ] I have added a unit test, otherwise I have explained why I couldn't
|
||||||
- [ ] Is the PR clear and detailled enough so anyone can understand digging in the code?
|
- [ ] Is the PR clear and detailed enough so anyone can understand digging in the code?
|
||||||
|
|
||||||
## Checklist of things to do before PR is ready to merge
|
## Checklist of things to do before PR is ready to merge
|
||||||
<!--
|
<!--
|
||||||
|
|||||||
6
.gitignore
vendored
6
.gitignore
vendored
@@ -47,6 +47,12 @@ tests/*/vendor/*
|
|||||||
!/log/index.php
|
!/log/index.php
|
||||||
!/log/web.config
|
!/log/web.config
|
||||||
|
|
||||||
|
# NPM: `jquery-ui` package is just there for vulnerability scans, so we don't want to version its files (only `jquery-ui-dist` is used within the code base)
|
||||||
|
/node_modules/jquery-ui/**
|
||||||
|
|
||||||
|
# Symfony: Local env file
|
||||||
|
/resources/symfony/.env.local
|
||||||
|
|
||||||
# PHPUnit: Cache file, local XML working copies
|
# PHPUnit: Cache file, local XML working copies
|
||||||
/tests/php-unit-tests/.phpunit.result.cache
|
/tests/php-unit-tests/.phpunit.result.cache
|
||||||
/tests/php-unit-tests/phpunit.xml
|
/tests/php-unit-tests/phpunit.xml
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ $iBeginTime = time();
|
|||||||
chdir(__DIR__);
|
chdir(__DIR__);
|
||||||
|
|
||||||
$aCommands = [
|
$aCommands = [
|
||||||
'php composer/rmDeniedTestDir.php',
|
'php composer/rmUnnecessaryFolders.php',
|
||||||
'php build/commands/setupCssCompiler.php',
|
'php build/commands/setupCssCompiler.php',
|
||||||
// 'bash /tmp/gabuzomeu.sh',
|
// 'bash /tmp/gabuzomeu.sh',
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Copyright (C) 2010-2023 Combodo SARL
|
* Copyright (C) 2010-2024 Combodo SAS
|
||||||
*
|
*
|
||||||
* This file is part of iTop.
|
* This file is part of iTop.
|
||||||
*
|
*
|
||||||
@@ -27,7 +27,7 @@ $iTopFolder = __DIR__."/../../../";
|
|||||||
require_once("$iTopFolder/approot.inc.php");
|
require_once("$iTopFolder/approot.inc.php");
|
||||||
require_once(APPROOT."/application/utils.inc.php");
|
require_once(APPROOT."/application/utils.inc.php");
|
||||||
|
|
||||||
if (php_sapi_name() !== 'cli')
|
if (PHP_SAPI !== 'cli')
|
||||||
{
|
{
|
||||||
throw new \Exception('This script can only run from CLI');
|
throw new \Exception('This script can only run from CLI');
|
||||||
}
|
}
|
||||||
@@ -48,4 +48,4 @@ if (!file_exists($sCssFile))
|
|||||||
{
|
{
|
||||||
fwrite(STDERR, "Failed to compile $sCssFile, exiting.");
|
fwrite(STDERR, "Failed to compile $sCssFile, exiting.");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,73 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* Copyright (C) 2010-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
|
|
||||||
* along with iTop. If not, see <http: *www.gnu.org/licenses/>
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
use Combodo\iTop\Composer\iTopComposer;
|
|
||||||
|
|
||||||
$iTopFolder = __DIR__ . "/../../" ;
|
|
||||||
|
|
||||||
require_once ("$iTopFolder/approot.inc.php");
|
|
||||||
require_once (APPROOT."/setup/setuputils.class.inc.php");
|
|
||||||
|
|
||||||
if (php_sapi_name() !== 'cli')
|
|
||||||
{
|
|
||||||
throw new \Exception('This script can only run from CLI');
|
|
||||||
}
|
|
||||||
|
|
||||||
clearstatcache();
|
|
||||||
|
|
||||||
$oiTopComposer = new iTopComposer();
|
|
||||||
$aDeniedButStillPresent = $oiTopComposer->ListDeniedButStillPresent();
|
|
||||||
|
|
||||||
echo "\n";
|
|
||||||
foreach ($aDeniedButStillPresent as $sDir)
|
|
||||||
{
|
|
||||||
if (false === iTopComposer::IsTestDir($sDir))
|
|
||||||
{
|
|
||||||
echo "ERROR found INVALID denied test dir: '$sDir'\n";
|
|
||||||
throw new \Exception("$sDir must end with /Test/ or /test/");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (false === file_exists($sDir)) {
|
|
||||||
echo "INFO $sDir is in denied list, but not existing on disk => skipping !\n";
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
SetupUtils::rrmdir($sDir);
|
|
||||||
echo "OK Remove denied test dir: '$sDir'\n";
|
|
||||||
}
|
|
||||||
catch (\Exception $e) {
|
|
||||||
echo "\nFAILED to remove denied test dir: '$sDir'\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$aAllowedAndDeniedDirs = array_merge(
|
|
||||||
$oiTopComposer->ListAllowedTestDir(),
|
|
||||||
$oiTopComposer->ListDeniedTestDir()
|
|
||||||
);
|
|
||||||
$aExistingDirs = $oiTopComposer->ListAllTestDir();
|
|
||||||
$aMissing = array_diff($aExistingDirs, $aAllowedAndDeniedDirs);
|
|
||||||
if (false === empty($aMissing)) {
|
|
||||||
echo "Some new tests dirs exists !\n"
|
|
||||||
.' They must be declared either in the allowed or denied list in '.iTopComposer::class." (see N°2651).\n"
|
|
||||||
.' List of dirs:'."\n".var_export($aMissing, true);
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Copyright (C) 2010-2023 Combodo SARL
|
* Copyright (C) 2010-2024 Combodo SAS
|
||||||
*
|
*
|
||||||
* This file is part of iTop.
|
* This file is part of iTop.
|
||||||
*
|
*
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
* @link https://getcomposer.org/doc/03-cli.md#show
|
* @link https://getcomposer.org/doc/03-cli.md#show
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$iTopFolder = __DIR__."/../../";
|
$iTopFolder = __DIR__."/../../../";
|
||||||
|
|
||||||
require_once("$iTopFolder/approot.inc.php");
|
require_once("$iTopFolder/approot.inc.php");
|
||||||
$sApproot = APPROOT;
|
$sApproot = APPROOT;
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Copyright (C) 2013-2023 Combodo SARL
|
* Copyright (C) 2013-2024 Combodo SAS
|
||||||
*
|
*
|
||||||
* This file is part of iTop.
|
* This file is part of iTop.
|
||||||
*
|
*
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
* @link https://github.com/tecnickcom/TCPDF?tab=readme-ov-file#note TCPDF is in support only mode
|
* @link https://github.com/tecnickcom/TCPDF?tab=readme-ov-file#note TCPDF is in support only mode
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$sItopRootFolder = realpath(__DIR__ . "/../../../");
|
$sItopRootFolder = realpath(__DIR__ . "/../../../../");
|
||||||
$sCurrentScriptFileName = basename(__FILE__);
|
$sCurrentScriptFileName = basename(__FILE__);
|
||||||
|
|
||||||
|
|
||||||
51
.make/dependencies/npm/restoreFolderBrowsingProtection.php
Normal file
51
.make/dependencies/npm/restoreFolderBrowsingProtection.php
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2010-2024 Combodo SAS
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
* along with iTop. If not, see <http: *www.gnu.org/licenses/>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ensure that the files for folder browsing protection (.htaccess, web.config) are kept after an "npm install/update" command
|
||||||
|
*/
|
||||||
|
|
||||||
|
$iTopFolder = __DIR__."/../../../";
|
||||||
|
|
||||||
|
require_once("$iTopFolder/approot.inc.php");
|
||||||
|
|
||||||
|
$sDependenciesRootFolderAbsPath = APPROOT . "node_modules/";
|
||||||
|
$aFilesToCheck = [
|
||||||
|
".htaccess",
|
||||||
|
"web.config",
|
||||||
|
];
|
||||||
|
|
||||||
|
echo "This command aims at ensuring that folder browsing protection files (.htaccess, web.config) are present in the dependencies folder even after an install/upgrade command\n";
|
||||||
|
echo "Checking files:\n";
|
||||||
|
|
||||||
|
foreach($aFilesToCheck as $sFileToCheck) {
|
||||||
|
if (file_exists($sDependenciesRootFolderAbsPath . $sFileToCheck)) {
|
||||||
|
echo "✔️ $sFileToCheck is present\n";
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If missing, copy the one from /lib as it contains the necessary allow/deny directives for third-parties
|
||||||
|
copy(APPROOT . "lib/$sFileToCheck", $sDependenciesRootFolderAbsPath . $sFileToCheck);
|
||||||
|
echo "✔️ $sFileToCheck was missing and has been re-created\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure separation with following scripts
|
||||||
|
echo "\n";
|
||||||
95
.make/dependencies/rmUnnecessaryFolders.php
Normal file
95
.make/dependencies/rmUnnecessaryFolders.php
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2010-2024 Combodo SAS
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
* along with iTop. If not, see <http: *www.gnu.org/licenses/>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
$iTopFolder = __DIR__ . "/../../" ;
|
||||||
|
|
||||||
|
require_once ("$iTopFolder/approot.inc.php");
|
||||||
|
require_once (APPROOT."/setup/setuputils.class.inc.php");
|
||||||
|
|
||||||
|
if (php_sapi_name() !== 'cli')
|
||||||
|
{
|
||||||
|
throw new \Exception('This script can only run from CLI');
|
||||||
|
}
|
||||||
|
|
||||||
|
clearstatcache();
|
||||||
|
|
||||||
|
// Read params
|
||||||
|
$key = array_search("--manager", $argv);
|
||||||
|
if (false === $key || false === isset($argv[$key + 1]) ) {
|
||||||
|
throw new \InvalidArgumentException("Usage: " . __FILE__ . " --manager composer|npm");
|
||||||
|
}
|
||||||
|
$sDependenciesHandlerCode = $argv[$key + 1];
|
||||||
|
|
||||||
|
switch ($sDependenciesHandlerCode) {
|
||||||
|
case "composer":
|
||||||
|
$sDependenciesHandlerFQCN = \Combodo\iTop\Dependencies\Composer\iTopComposer::class;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "npm":
|
||||||
|
$sDependenciesHandlerFQCN = \Combodo\iTop\Dependencies\NPM\iTopNPM::class;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new \Exception("Invalid dependencies handler code, $sDependenciesHandlerCode given, expected composer|npm");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Start handler
|
||||||
|
$oDependenciesHandler = new $sDependenciesHandlerFQCN();
|
||||||
|
$aDeniedButStillPresent = $oDependenciesHandler->ListDeniedButStillPresentFoldersAbsPaths();
|
||||||
|
|
||||||
|
echo "\n";
|
||||||
|
foreach ($aDeniedButStillPresent as $sDir)
|
||||||
|
{
|
||||||
|
if (false === $oDependenciesHandler::IsQuestionnableFolder($sDir))
|
||||||
|
{
|
||||||
|
echo "ERROR found INVALID denied test dir: '$sDir'\n";
|
||||||
|
throw new \RuntimeException("$sDir is in the denied list but doesn't comply with the rule (see IsQuestionnableFolder method)");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (false === file_exists($sDir)) {
|
||||||
|
echo "INFO $sDir is in denied list, but not existing on disk => skipping !\n";
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
SetupUtils::rrmdir($sDir);
|
||||||
|
echo "✔️ Remove denied test dir: '$sDir'\n";
|
||||||
|
}
|
||||||
|
catch (\Exception $e) {
|
||||||
|
echo "\n❌ FAILED to remove denied test dir: '$sDir'\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$aAllowedAndDeniedDirs = array_merge(
|
||||||
|
$oDependenciesHandler->ListAllowedFoldersAbsPaths(),
|
||||||
|
$oDependenciesHandler->ListDeniedFoldersAbsPaths()
|
||||||
|
);
|
||||||
|
$aExistingDirs = $oDependenciesHandler->ListAllFoldersAbsPaths();
|
||||||
|
$aMissing = array_diff($aExistingDirs, $aAllowedAndDeniedDirs);
|
||||||
|
if (false === empty($aMissing)) {
|
||||||
|
echo "Some new tests dirs exists !\n"
|
||||||
|
." They must be declared either in the allowed or denied list in {$sDependenciesHandlerFQCN}\n"
|
||||||
|
.' List of dirs:'."\n".var_export($aMissing, true)."\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure separation with following scripts
|
||||||
|
echo "\n";
|
||||||
@@ -159,6 +159,6 @@ We have one sticker per contribution type. You might get multiple stickers with
|
|||||||
* Beta tester: Test and give feedback on beta releases
|
* Beta tester: Test and give feedback on beta releases
|
||||||
* Extension developer: Develop and publish an extension
|
* Extension developer: Develop and publish an extension
|
||||||
|
|
||||||
Here is the design of each stickers for year 2022:
|
Here is the design of each stickers for year 2024:
|
||||||
|
|
||||||

|

|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// Copyright (C) 2010-2023 Combodo SARL
|
// Copyright (C) 2010-2024 Combodo SAS
|
||||||
//
|
//
|
||||||
// This file is part of iTop.
|
// This file is part of iTop.
|
||||||
//
|
//
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
/**
|
/**
|
||||||
* UserRightsMatrix (User management Module)
|
* UserRightsMatrix (User management Module)
|
||||||
*
|
*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// Copyright (C) 2010-2023 Combodo SARL
|
// Copyright (C) 2010-2024 Combodo SAS
|
||||||
//
|
//
|
||||||
// This file is part of iTop.
|
// This file is part of iTop.
|
||||||
//
|
//
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
* UserRightsNull
|
* UserRightsNull
|
||||||
* User management Module - say Yeah! to everything
|
* User management Module - say Yeah! to everything
|
||||||
*
|
*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Copyright (C) 2013-2023 Combodo SARL
|
* Copyright (C) 2013-2024 Combodo SAS
|
||||||
*
|
*
|
||||||
* This file is part of iTop.
|
* This file is part of iTop.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Copyright (C) 2013-2023 Combodo SARL
|
* Copyright (C) 2013-2024 Combodo SAS
|
||||||
*
|
*
|
||||||
* This file is part of iTop.
|
* This file is part of iTop.
|
||||||
*
|
*
|
||||||
|
|||||||
2
app.php
2
app.php
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Copyright (C) 2013-2023 Combodo SARL
|
* Copyright (C) 2013-2024 Combodo SAS
|
||||||
*
|
*
|
||||||
* This file is part of iTop.
|
* This file is part of iTop.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/AjaxPage.php, now loadable using autoloader
|
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/AjaxPage.php, now loadable using autoloader
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// cannot notify depreciation for now as this is still load in autoloader
|
// cannot notify depreciation for now as this is still load in autoloader
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// Copyright (C) 2010-2023 Combodo SARL
|
// Copyright (C) 2010-2024 Combodo SAS
|
||||||
//
|
//
|
||||||
// This file is part of iTop.
|
// This file is part of iTop.
|
||||||
//
|
//
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
/**
|
/**
|
||||||
* Class ApplicationContext
|
* Class ApplicationContext
|
||||||
*
|
*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Copyright (C) 2013-2023 Combodo SARL
|
* Copyright (C) 2013-2024 Combodo SAS
|
||||||
*
|
*
|
||||||
* This file is part of iTop.
|
* This file is part of iTop.
|
||||||
*
|
*
|
||||||
@@ -31,7 +31,7 @@ require_once(APPROOT.'application/newsroomprovider.class.inc.php');
|
|||||||
* Definition of interfaces that can be implemented to customize iTop.
|
* Definition of interfaces that can be implemented to customize iTop.
|
||||||
* You may implement such interfaces in a module file (e.g. main.mymodule.php)
|
* You may implement such interfaces in a module file (e.g. main.mymodule.php)
|
||||||
*
|
*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
* @since 2.7.0
|
* @since 2.7.0
|
||||||
*/
|
*/
|
||||||
@@ -2099,8 +2099,16 @@ class RestUtils
|
|||||||
elseif (is_string($key))
|
elseif (is_string($key))
|
||||||
{
|
{
|
||||||
// OQL
|
// OQL
|
||||||
$oSearch = DBObjectSearch::FromOQL($key);
|
try {
|
||||||
}
|
$oSearch = DBObjectSearch::FromOQL($key);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
throw new CoreOqlException('Query failed to execute', [
|
||||||
|
'query' => $key,
|
||||||
|
'exception_class' => get_class($e),
|
||||||
|
'exception_message' => $e->getMessage(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new Exception("Wrong format for key");
|
throw new Exception("Wrong format for key");
|
||||||
@@ -2273,4 +2281,91 @@ interface iKPILoggerExtension
|
|||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function LogOperation($oKpiLogData);
|
public function LogOperation($oKpiLogData);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implement this interface to add files to the backup
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
* @since 3.2.0
|
||||||
|
*/
|
||||||
|
interface iBackupExtraFilesExtension
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @api
|
||||||
|
* @return string[] Array of relative paths (from app root) for files and directories to be included in the backup
|
||||||
|
*/
|
||||||
|
public function GetExtraFilesRelPaths(): array;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface to provide messages to be displayed in the "Welcome Popup"
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
* @since 3.2.0
|
||||||
|
*/
|
||||||
|
interface iWelcomePopupExtension
|
||||||
|
{
|
||||||
|
// Importance for ordering messages
|
||||||
|
// Just two levels since less important messages have nothing to do in the welcome popup
|
||||||
|
public const ENUM_IMPORTANCE_CRITICAL = 0;
|
||||||
|
public const ENUM_IMPORTANCE_HIGH = 1;
|
||||||
|
public const DEFAULT_IMPORTANCE = self::ENUM_IMPORTANCE_HIGH;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Overload this method if you need to display an icon representing the provider (eg. your own company logo, module icon, ...)
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
* @return string Relative path (from app. root) of the icon representing the provider
|
||||||
|
*/
|
||||||
|
public function GetIconRelPath(): string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @api
|
||||||
|
* @return \Combodo\iTop\Application\WelcomePopup\Message[]
|
||||||
|
*/
|
||||||
|
public function GetMessages(): array;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Overload this method if the provider needs to do some additional processing after the message ($sMessageId) has been acknowledged by the current user
|
||||||
|
*
|
||||||
|
* @param string $sMessageId
|
||||||
|
* @api
|
||||||
|
*/
|
||||||
|
public function AcknowledgeMessage(string $sMessageId): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inherit from this class to provide messages to be displayed in the "Welcome Popup"
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
* @since 3.2.0
|
||||||
|
*/
|
||||||
|
abstract class AbstractWelcomePopupExtension implements iWelcomePopupExtension
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public function GetIconRelPath(): string
|
||||||
|
{
|
||||||
|
return \Combodo\iTop\Application\Branding::$aLogoPaths[\Combodo\iTop\Application\Branding::ENUM_LOGO_TYPE_MAIN_LOGO_COMPACT]['default'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public function GetMessages(): array
|
||||||
|
{
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public function AcknowledgeMessage(string $sMessageId): void
|
||||||
|
{
|
||||||
|
// No need to process the acknowledgment notice by default
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// Copyright (C) 2010-2023 Combodo SARL
|
// Copyright (C) 2010-2024 Combodo SAS
|
||||||
//
|
//
|
||||||
// This file is part of iTop.
|
// This file is part of iTop.
|
||||||
//
|
//
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
* to check and is linked to a set of rules that determine the valid or invalid objects
|
* to check and is linked to a set of rules that determine the valid or invalid objects
|
||||||
* inside the set
|
* inside the set
|
||||||
*
|
*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// Copyright (C) 2010-2023 Combodo SARL
|
// Copyright (C) 2010-2024 Combodo SAS
|
||||||
//
|
//
|
||||||
// This file is part of iTop.
|
// This file is part of iTop.
|
||||||
//
|
//
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
* to check and is linked to a set of rules that determine the valid or invalid objects
|
* to check and is linked to a set of rules that determine the valid or invalid objects
|
||||||
* inside the set
|
* inside the set
|
||||||
*
|
*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// Copyright (C) 2010-2023 Combodo SARL
|
// Copyright (C) 2010-2024 Combodo SAS
|
||||||
//
|
//
|
||||||
// This file is part of iTop.
|
// This file is part of iTop.
|
||||||
//
|
//
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
* or the "bad" ones. The core audit engines computes the complement to the definition
|
* or the "bad" ones. The core audit engines computes the complement to the definition
|
||||||
* set when needed to obtain either the valid objects, or the ones with an error
|
* set when needed to obtain either the valid objects, or the ones with an error
|
||||||
*
|
*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/CaptureWebPage.php, now loadable using autoloader
|
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/CaptureWebPage.php, now loadable using autoloader
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/CaptureWebPage.php, now loadable using autoloader');
|
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/CaptureWebPage.php, now loadable using autoloader');
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/CLIPage.php, now loadable using autoloader
|
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/CLIPage.php, now loadable using autoloader
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/CLIPage.php, now loadable using autoloader');
|
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/CLIPage.php, now loadable using autoloader');
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use Combodo\iTop\Application\Helper\CKEditorHelper;
|
||||||
use Combodo\iTop\Application\Helper\FormHelper;
|
use Combodo\iTop\Application\Helper\FormHelper;
|
||||||
use Combodo\iTop\Application\Helper\Session;
|
use Combodo\iTop\Application\Helper\Session;
|
||||||
use Combodo\iTop\Application\Helper\WebResourcesHelper;
|
use Combodo\iTop\Application\Helper\WebResourcesHelper;
|
||||||
@@ -1060,11 +1061,6 @@ HTML
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fields with CKEditor need to have the highlight.js lib loaded even if they are in read-only, as it is needed to format code snippets
|
|
||||||
if ($bHasFieldsWithRichTextEditor) {
|
|
||||||
WebResourcesHelper::EnableCKEditorToWebPage($oPage);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $aFieldsMap;
|
return $aFieldsMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2307,7 +2303,7 @@ JS
|
|||||||
$sHidden = "<input type=\"hidden\" id=\"{$iId}_count\" value=\"$iEntriesCount\"/>"; // To know how many entries the case log already contains
|
$sHidden = "<input type=\"hidden\" id=\"{$iId}_count\" value=\"$iEntriesCount\"/>"; // To know how many entries the case log already contains
|
||||||
|
|
||||||
$sHTMLValue = "$sHeader<div class=\"ibo-caselog-entry-form--text-input\" $sStyle data-role=\"ibo-caselog-entry-form--text-input\">";
|
$sHTMLValue = "$sHeader<div class=\"ibo-caselog-entry-form--text-input\" $sStyle data-role=\"ibo-caselog-entry-form--text-input\">";
|
||||||
$sHTMLValue .= "<textarea class=\"htmlEditor ibo-input-richtext-placeholder\" style=\"border:0;width:100%\" title=\"$sHelpText\" name=\"attr_{$sFieldPrefix}{$sAttCode}{$sNameSuffix}\" rows=\"8\" cols=\"40\" id=\"$iId\">".utils::EscapeHtml($sEditValue)."</textarea>";
|
$sHTMLValue .= "<textarea class=\"htmlEditor ibo-input-richtext-placeholder\" style=\"border:0;width:100%\" title=\"$sHelpText\" name=\"attr_{$sFieldPrefix}{$sAttCode}{$sNameSuffix}\" rows=\"8\" cols=\"40\" id=\"$iId\">".CKEditorHelper::PrepareCKEditorValueTextEncodingForTextarea($sEditValue)."</textarea>";
|
||||||
$sHTMLValue .= "$sPreviousLog</div>{$sValidationSpan}{$sReloadSpan}$sHidden";
|
$sHTMLValue .= "$sPreviousLog</div>{$sValidationSpan}{$sReloadSpan}$sHidden";
|
||||||
|
|
||||||
// Note: This should be refactored for all types of attribute (see at the end of this function) but as we are doing this for a maintenance release, we are scheduling it for the next main release in to order to avoid regressions as much as possible.
|
// Note: This should be refactored for all types of attribute (see at the end of this function) but as we are doing this for a maintenance release, we are scheduling it for the next main release in to order to avoid regressions as much as possible.
|
||||||
@@ -2319,39 +2315,10 @@ JS
|
|||||||
|
|
||||||
$oPage->add_ready_script("$('#$iId').on('keyup change validate', function(evt, sFormId) { return ValidateCaseLogField('$iId', $bMandatory, sFormId, $sNullValue, $sOriginalValue) } );"); // Custom validation function
|
$oPage->add_ready_script("$('#$iId').on('keyup change validate', function(evt, sFormId) { return ValidateCaseLogField('$iId', $bMandatory, sFormId, $sNullValue, $sOriginalValue) } );"); // Custom validation function
|
||||||
|
|
||||||
// Replace the text area with CKEditor
|
// configure CKEditor
|
||||||
// To change the default settings of the editor,
|
CKEditorHelper::ConfigureCKEditorElementForWebPage($oPage, $iId, $sOriginalValue, true, [
|
||||||
// a) edit the file /js/ckeditor/config.js
|
'placeholder' => Dict::S('UI:CaseLogTypeYourTextHere'),
|
||||||
// b) or override some of the configuration settings, using the second parameter of ckeditor()
|
]);
|
||||||
$aConfig = utils::GetCkeditorPref();
|
|
||||||
$aConfig['placeholder'] = Dict::S('UI:CaseLogTypeYourTextHere');
|
|
||||||
|
|
||||||
// - Final config
|
|
||||||
$sConfigJS = json_encode($aConfig);
|
|
||||||
|
|
||||||
WebResourcesHelper::EnableCKEditorToWebPage($oPage);
|
|
||||||
$oPage->add_ready_script("$('#$iId').ckeditor(function() { /* callback code */ }, $sConfigJS);"); // Transform $iId into a CKEdit
|
|
||||||
|
|
||||||
$oPage->add_ready_script(
|
|
||||||
<<<EOF
|
|
||||||
$('#$iId').on('update', function(evt){
|
|
||||||
BlockField('cke_$iId', $('#$iId').attr('disabled'));
|
|
||||||
//Delayed execution - ckeditor must be properly initialized before setting readonly
|
|
||||||
var retryCount = 0;
|
|
||||||
var oMe = $('#$iId');
|
|
||||||
var delayedSetReadOnly = function () {
|
|
||||||
if (oMe.data('ckeditorInstance').editable() == undefined && retryCount++ < 10) {
|
|
||||||
setTimeout(delayedSetReadOnly, retryCount * 100); //Wait a while longer each iteration
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
oMe.data('ckeditorInstance').setReadOnly(oMe.prop('disabled'));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
setTimeout(delayedSetReadOnly, 50);
|
|
||||||
});
|
|
||||||
EOF
|
|
||||||
);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'HTML':
|
case 'HTML':
|
||||||
@@ -2429,7 +2396,7 @@ HTML;
|
|||||||
$sInputType = self::ENUM_INPUT_TYPE_IMAGE;
|
$sInputType = self::ENUM_INPUT_TYPE_IMAGE;
|
||||||
$aEventsList[] = 'validate';
|
$aEventsList[] = 'validate';
|
||||||
$aEventsList[] = 'change';
|
$aEventsList[] = 'change';
|
||||||
$oPage->add_linked_script(utils::GetAbsoluteUrlAppRoot().'js/edit_image.js');
|
$oPage->LinkScriptFromAppRoot('js/edit_image.js');
|
||||||
$oDocument = $value; // Value is an ormDocument objectm
|
$oDocument = $value; // Value is an ormDocument objectm
|
||||||
$sDefaultUrl = $oAttDef->Get('default_image');
|
$sDefaultUrl = $oAttDef->Get('default_image');
|
||||||
if (is_object($oDocument) && !$oDocument->IsEmpty()) {
|
if (is_object($oDocument) && !$oDocument->IsEmpty()) {
|
||||||
@@ -2545,11 +2512,11 @@ HTML;
|
|||||||
$sHTMLValue .= '</div></div>';
|
$sHTMLValue .= '</div></div>';
|
||||||
$sHTMLValue .= '<div>'.$sReloadSpan.'</div>'; // No validation span for this one: it does handle its own validation!
|
$sHTMLValue .= '<div>'.$sReloadSpan.'</div>'; // No validation span for this one: it does handle its own validation!
|
||||||
$sHTMLValue .= "<input name=\"attr_{$sFieldPrefix}{$sAttCode}{$sNameSuffix}\" type=\"hidden\" id=\"$iId\" value=\"\"/>\n";
|
$sHTMLValue .= "<input name=\"attr_{$sFieldPrefix}{$sAttCode}{$sNameSuffix}\" type=\"hidden\" id=\"$iId\" value=\"\"/>\n";
|
||||||
$oPage->add_linked_script(utils::GetAbsoluteUrlAppRoot().'js/form_handler.js');
|
$oPage->LinkScriptFromAppRoot('js/form_handler.js');
|
||||||
$oPage->add_linked_script(utils::GetAbsoluteUrlAppRoot().'js/console_form_handler.js');
|
$oPage->LinkScriptFromAppRoot('js/console_form_handler.js');
|
||||||
$oPage->add_linked_script(utils::GetAbsoluteUrlAppRoot().'js/field_set.js');
|
$oPage->LinkScriptFromAppRoot('js/field_set.js');
|
||||||
$oPage->add_linked_script(utils::GetAbsoluteUrlAppRoot().'js/form_field.js');
|
$oPage->LinkScriptFromAppRoot('js/form_field.js');
|
||||||
$oPage->add_linked_script(utils::GetAbsoluteUrlAppRoot().'js/subform_field.js');
|
$oPage->LinkScriptFromAppRoot('js/subform_field.js');
|
||||||
$oPage->add_ready_script(
|
$oPage->add_ready_script(
|
||||||
<<<JS
|
<<<JS
|
||||||
$('#{$iId}_field_set').field_set($sFieldSetOptions);
|
$('#{$iId}_field_set').field_set($sFieldSetOptions);
|
||||||
@@ -2575,9 +2542,9 @@ JS
|
|||||||
case 'Set':
|
case 'Set':
|
||||||
case 'TagSet':
|
case 'TagSet':
|
||||||
$sInputType = self::ENUM_INPUT_TYPE_TAGSET;
|
$sInputType = self::ENUM_INPUT_TYPE_TAGSET;
|
||||||
$oPage->add_linked_script(utils::GetAbsoluteUrlAppRoot().'js/selectize.min.js');
|
$oPage->LinkScriptFromAppRoot('js/selectize.min.js');
|
||||||
$oPage->add_linked_stylesheet(utils::GetAbsoluteUrlAppRoot().'css/selectize.default.css');
|
$oPage->LinkStylesheetFromAppRoot('css/selectize.default.css');
|
||||||
$oPage->add_linked_script(utils::GetAbsoluteUrlAppRoot().'js/jquery.itop-set-widget.js');
|
$oPage->LinkScriptFromAppRoot('js/jquery.itop-set-widget.js');
|
||||||
|
|
||||||
$oPage->add_dict_entry('Core:AttributeSet:placeholder');
|
$oPage->add_dict_entry('Core:AttributeSet:placeholder');
|
||||||
|
|
||||||
@@ -2608,6 +2575,13 @@ JS
|
|||||||
$iFieldSize = $oAttDef->GetMaxSize();
|
$iFieldSize = $oAttDef->GetMaxSize();
|
||||||
if ($aAllowedValues !== null)
|
if ($aAllowedValues !== null)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
// convert AttributeBoolean value due to issue with radio style when value is false
|
||||||
|
// @see N°2443 - Boolean don't accept yes/no value
|
||||||
|
if($oAttDef instanceof AttributeBoolean){
|
||||||
|
$value = $value === false ? 0 : 1;
|
||||||
|
}
|
||||||
|
|
||||||
// Discrete list of values, use a SELECT or RADIO buttons depending on the config
|
// Discrete list of values, use a SELECT or RADIO buttons depending on the config
|
||||||
$sDisplayStyle = $oAttDef->GetDisplayStyle();
|
$sDisplayStyle = $oAttDef->GetDisplayStyle();
|
||||||
switch ($sDisplayStyle)
|
switch ($sDisplayStyle)
|
||||||
@@ -3452,7 +3426,7 @@ EOF
|
|||||||
// Dummy collapsible section created in order to get JS files
|
// Dummy collapsible section created in order to get JS files
|
||||||
$oCollapsibleSection = new CollapsibleSection('');
|
$oCollapsibleSection = new CollapsibleSection('');
|
||||||
foreach ($oCollapsibleSection->GetJsFilesUrlRecursively(true) as $sJSFile) {
|
foreach ($oCollapsibleSection->GetJsFilesUrlRecursively(true) as $sJSFile) {
|
||||||
$oPage->add_linked_script($sJSFile);
|
$oPage->LinkScriptFromURI($sJSFile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$aAllowedValues = MetaModel::GetAllowedValues_att($sClass, $sAttCode, $aArgs);
|
$aAllowedValues = MetaModel::GetAllowedValues_att($sClass, $sAttCode, $aArgs);
|
||||||
@@ -5947,7 +5921,7 @@ JS
|
|||||||
final protected function FireEventAfterWrite(array $aChanges, bool $bIsNew): void
|
final protected function FireEventAfterWrite(array $aChanges, bool $bIsNew): void
|
||||||
{
|
{
|
||||||
$this->NotifyAttachedObjectsOnLinkClassModification();
|
$this->NotifyAttachedObjectsOnLinkClassModification();
|
||||||
$this->FireEventDbLinksChangedForCurrentObject();
|
$this->RemoveObjectAwaitingEventDbLinksChanged(get_class($this), $this->GetKey());
|
||||||
$this->FireEvent(EVENT_DB_AFTER_WRITE, ['is_new' => $bIsNew, 'changes' => $aChanges]);
|
$this->FireEvent(EVENT_DB_AFTER_WRITE, ['is_new' => $bIsNew, 'changes' => $aChanges]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6060,31 +6034,6 @@ JS
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Fire the EVENT_DB_LINKS_CHANGED event if current object is registered
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
* @throws \ArchivedObjectException
|
|
||||||
* @throws \CoreException
|
|
||||||
*
|
|
||||||
* @since 3.1.0 N°5906
|
|
||||||
*/
|
|
||||||
final protected function FireEventDbLinksChangedForCurrentObject(): void
|
|
||||||
{
|
|
||||||
if (true === static::IsEventDBLinksChangedBlocked()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$sClass = get_class($this);
|
|
||||||
$sId = $this->GetKey();
|
|
||||||
$bIsObjectAwaitingEventDbLinksChanged = self::RemoveObjectAwaitingEventDbLinksChanged($sClass, $sId);
|
|
||||||
if (false === $bIsObjectAwaitingEventDbLinksChanged) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
self::FireEventDbLinksChangedForObject($this);
|
|
||||||
self::RemoveObjectAwaitingEventDbLinksChanged($sClass, $sId);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fire the EVENT_DB_LINKS_CHANGED event if given object is registered, and unregister it
|
* Fire the EVENT_DB_LINKS_CHANGED event if given object is registered, and unregister it
|
||||||
*
|
*
|
||||||
@@ -6123,9 +6072,9 @@ JS
|
|||||||
self::SetEventDBLinksChangedBlocked(true);
|
self::SetEventDBLinksChangedBlocked(true);
|
||||||
// N°6408 The object can have been deleted
|
// N°6408 The object can have been deleted
|
||||||
if (!is_null($oObject)) {
|
if (!is_null($oObject)) {
|
||||||
MetaModel::StartReentranceProtection($oObject);
|
|
||||||
$oObject->FireEvent(EVENT_DB_LINKS_CHANGED);
|
$oObject->FireEvent(EVENT_DB_LINKS_CHANGED);
|
||||||
MetaModel::StopReentranceProtection($oObject);
|
|
||||||
|
// Update the object if needed
|
||||||
if (count($oObject->ListChanges()) !== 0) {
|
if (count($oObject->ListChanges()) !== 0) {
|
||||||
$oObject->DBUpdate();
|
$oObject->DBUpdate();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Copyright (C) 2013-2023 Combodo SARL
|
* Copyright (C) 2013-2024 Combodo SAS
|
||||||
*
|
*
|
||||||
* This file is part of iTop.
|
* This file is part of iTop.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/CSVPage.php, now loadable using autoloader
|
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/CSVPage.php, now loadable using autoloader
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/CSVPage.php, now loadable using autoloader');
|
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/CSVPage.php, now loadable using autoloader');
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -480,7 +480,7 @@ abstract class Dashboard
|
|||||||
CombodoTooltip.InitTooltipFromMarkup($("#attr_auto_reload_sec"));
|
CombodoTooltip.InitTooltipFromMarkup($("#attr_auto_reload_sec"));
|
||||||
$("#attr_auto_reload_sec").prop('disabled', !$('#attr_auto_reload').is(':checked'));
|
$("#attr_auto_reload_sec").prop('disabled', !$('#attr_auto_reload').is(':checked'));
|
||||||
|
|
||||||
$('#attr_auto_reload').change( function(ev) {
|
$('#attr_auto_reload').on('change', function(ev) {
|
||||||
$("#attr_auto_reload_sec").prop('disabled', !$(this).is(':checked'));
|
$("#attr_auto_reload_sec").prop('disabled', !$(this).is(':checked'));
|
||||||
} );
|
} );
|
||||||
|
|
||||||
@@ -563,8 +563,8 @@ JS
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!$bEditMode) {
|
if (!$bEditMode) {
|
||||||
$oPage->add_linked_script('../js/dashlet.js');
|
$oPage->LinkScriptFromAppRoot('js/dashlet.js');
|
||||||
$oPage->add_linked_script('../js/dashboard.js');
|
$oPage->LinkScriptFromAppRoot('js/dashboard.js');
|
||||||
}
|
}
|
||||||
|
|
||||||
return $oDashboard;
|
return $oDashboard;
|
||||||
@@ -1118,8 +1118,8 @@ JS
|
|||||||
*/
|
*/
|
||||||
protected function RenderEditionTools(WebPage $oPage, DashboardLayoutUIBlock $oDashboard, $aExtraParams)
|
protected function RenderEditionTools(WebPage $oPage, DashboardLayoutUIBlock $oDashboard, $aExtraParams)
|
||||||
{
|
{
|
||||||
$oPage->add_linked_script(utils::GetAbsoluteUrlAppRoot().'js/jquery.iframe-transport.js');
|
$oPage->LinkScriptFromAppRoot('node_modules/blueimp-file-upload/js/jquery.iframe-transport.js');
|
||||||
$oPage->add_linked_script(utils::GetAbsoluteUrlAppRoot().'js/jquery.fileupload.js');
|
$oPage->LinkScriptFromAppRoot('node_modules/blueimp-file-upload/js/jquery.fileupload.js');
|
||||||
$sId = utils::Sanitize($this->GetId(), '', 'element_identifier');
|
$sId = utils::Sanitize($this->GetId(), '', 'element_identifier');
|
||||||
|
|
||||||
$sMenuTogglerId = "ibo-dashboard-menu-toggler-{$sId}";
|
$sMenuTogglerId = "ibo-dashboard-menu-toggler-{$sId}";
|
||||||
@@ -1272,6 +1272,7 @@ EOF
|
|||||||
$sAutoReloadSec = (string) $this->iAutoReloadSec;
|
$sAutoReloadSec = (string) $this->iAutoReloadSec;
|
||||||
$sTitle = utils::HtmlEntities($this->sTitle);
|
$sTitle = utils::HtmlEntities($this->sTitle);
|
||||||
$sFile = utils::HtmlEntities($this->GetDefinitionFile());
|
$sFile = utils::HtmlEntities($this->GetDefinitionFile());
|
||||||
|
$sFileForJS = json_encode($this->GetDefinitionFile());
|
||||||
$sUrl = utils::GetAbsoluteUrlAppRoot().'pages/ajax.render.php';
|
$sUrl = utils::GetAbsoluteUrlAppRoot().'pages/ajax.render.php';
|
||||||
$sReloadURL = $this->GetReloadURL();
|
$sReloadURL = $this->GetReloadURL();
|
||||||
|
|
||||||
@@ -1333,9 +1334,9 @@ $('#dashboard_editor .ui-layout-center').runtimedashboard({
|
|||||||
auto_reload: $sAutoReload,
|
auto_reload: $sAutoReload,
|
||||||
auto_reload_sec: $sAutoReloadSec,
|
auto_reload_sec: $sAutoReloadSec,
|
||||||
submit_to: '$sUrl',
|
submit_to: '$sUrl',
|
||||||
submit_parameters: {operation: 'save_dashboard', file: '$sFile', extra_params: $sJSExtraParams, reload_url: '$sReloadURL'},
|
submit_parameters: {operation: 'save_dashboard', file: {$sFileForJS}, extra_params: $sJSExtraParams, reload_url: '$sReloadURL'},
|
||||||
render_to: '$sUrl',
|
render_to: '$sUrl',
|
||||||
render_parameters: {operation: 'render_dashboard', file: '$sFile', extra_params: $sJSExtraParams, reload_url: '$sReloadURL'},
|
render_parameters: {operation: 'render_dashboard', file: {$sFileForJS}, extra_params: $sJSExtraParams, reload_url: '$sReloadURL'},
|
||||||
new_dashlet_parameters: {operation: 'new_dashlet'}
|
new_dashlet_parameters: {operation: 'new_dashlet'}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// Copyright (C) 2010-2023 Combodo SARL
|
// Copyright (C) 2010-2024 Combodo SAS
|
||||||
//
|
//
|
||||||
// This file is part of iTop.
|
// This file is part of iTop.
|
||||||
//
|
//
|
||||||
@@ -24,7 +24,7 @@ use Combodo\iTop\Application\WebPage\WebPage;
|
|||||||
/**
|
/**
|
||||||
* Dashboard presentation
|
* Dashboard presentation
|
||||||
*
|
*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
abstract class DashboardLayout
|
abstract class DashboardLayout
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// Copyright (C) 2012-2023 Combodo SARL
|
// Copyright (C) 2012-2024 Combodo SAS
|
||||||
//
|
//
|
||||||
// This file is part of iTop.
|
// This file is part of iTop.
|
||||||
//
|
//
|
||||||
@@ -30,7 +30,7 @@ require_once(APPROOT.'application/forms.class.inc.php');
|
|||||||
/**
|
/**
|
||||||
* Base class for all 'dashlets' (i.e. widgets to be inserted into a dashboard)
|
* Base class for all 'dashlets' (i.e. widgets to be inserted into a dashboard)
|
||||||
*
|
*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
abstract class Dashlet
|
abstract class Dashlet
|
||||||
|
|||||||
@@ -40,6 +40,36 @@
|
|||||||
<presentation/>
|
<presentation/>
|
||||||
<methods/>
|
<methods/>
|
||||||
</class>
|
</class>
|
||||||
|
<class id="WelcomePopupAcknowledge" _delta="define">
|
||||||
|
<parent>DBObject</parent>
|
||||||
|
<properties>
|
||||||
|
<comment>/** Acknowledge welcome popup messages */</comment>
|
||||||
|
<abstract>false</abstract>
|
||||||
|
<category></category>
|
||||||
|
<key_type>autoincrement</key_type>
|
||||||
|
<db_table>priv_welcome_popup_acknowledge</db_table>
|
||||||
|
</properties>
|
||||||
|
<fields>
|
||||||
|
<field id="message_uuid" xsi:type="AttributeString">
|
||||||
|
<sql>message_uuid</sql>
|
||||||
|
<default_value/>
|
||||||
|
<is_null_allowed>false</is_null_allowed>
|
||||||
|
</field>
|
||||||
|
<field id="user_id" xsi:type="AttributeExternalKey">
|
||||||
|
<sql>user_id</sql>
|
||||||
|
<target_class>User</target_class>
|
||||||
|
<is_null_allowed>false</is_null_allowed>
|
||||||
|
<on_target_delete>DEL_SILENT</on_target_delete>
|
||||||
|
</field>
|
||||||
|
<field id="acknowledge_date" xsi:type="AttributeDateTime">
|
||||||
|
<sql>acknowledge_date</sql>
|
||||||
|
<default_value/>
|
||||||
|
<is_null_allowed>false</is_null_allowed>
|
||||||
|
</field>
|
||||||
|
</fields>
|
||||||
|
<presentation/>
|
||||||
|
<methods/>
|
||||||
|
</class>
|
||||||
</classes>
|
</classes>
|
||||||
<portals>
|
<portals>
|
||||||
<portal id="backoffice" _delta="define">
|
<portal id="backoffice" _delta="define">
|
||||||
@@ -187,7 +217,9 @@
|
|||||||
</menus>
|
</menus>
|
||||||
<events>
|
<events>
|
||||||
<event id="EVENT_DB_BEFORE_WRITE" _delta="define">
|
<event id="EVENT_DB_BEFORE_WRITE" _delta="define">
|
||||||
<description>An object is about to be written into the database. The object can be modified.</description>
|
<name>Before create or update</name>
|
||||||
|
<description><![CDATA[An object is about to be written into the database.
|
||||||
|
The object can be modified.]]></description>
|
||||||
<sources>
|
<sources>
|
||||||
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
||||||
</sources>
|
</sources>
|
||||||
@@ -208,7 +240,11 @@
|
|||||||
</event_data>
|
</event_data>
|
||||||
</event>
|
</event>
|
||||||
<event id="EVENT_DB_CHECK_TO_WRITE" _delta="define">
|
<event id="EVENT_DB_CHECK_TO_WRITE" _delta="define">
|
||||||
<description>Check an object before it is written into the database (no change possible). Call DBObject::AddCheckIssue() to signal an issue</description>
|
<name>Check to write</name>
|
||||||
|
<description><![CDATA[Check an object before it is written into the database (no change possible).
|
||||||
|
Call $this->AddCheckIssue($sErrorMessage) to report a blocking issue.
|
||||||
|
Call $this->AddCheckWarning($sWarningMessage) to display a warning.
|
||||||
|
]]></description>
|
||||||
<sources>
|
<sources>
|
||||||
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
||||||
</sources>
|
</sources>
|
||||||
@@ -229,7 +265,9 @@
|
|||||||
</event_data>
|
</event_data>
|
||||||
</event>
|
</event>
|
||||||
<event id="EVENT_DB_AFTER_WRITE" _delta="define">
|
<event id="EVENT_DB_AFTER_WRITE" _delta="define">
|
||||||
<description>An object has been written into the database. The modifications can be propagated to other objects.</description>
|
<name>After create or update</name>
|
||||||
|
<description><![CDATA[An object has been written into the database.
|
||||||
|
The modifications can be propagated to other objects.]]></description>
|
||||||
<sources>
|
<sources>
|
||||||
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
||||||
</sources>
|
</sources>
|
||||||
@@ -244,7 +282,7 @@
|
|||||||
<type>boolean</type>
|
<type>boolean</type>
|
||||||
</event_datum>
|
</event_datum>
|
||||||
<event_datum id="changes">
|
<event_datum id="changes">
|
||||||
<description>For updates, the list of changes done during this operation</description>
|
<description><![CDATA[For updates, the list of changes done during this operation]]></description>
|
||||||
<type>array</type>
|
<type>array</type>
|
||||||
</event_datum>
|
</event_datum>
|
||||||
<event_datum id="debug_info">
|
<event_datum id="debug_info">
|
||||||
@@ -254,7 +292,9 @@
|
|||||||
</event_data>
|
</event_data>
|
||||||
</event>
|
</event>
|
||||||
<event id="EVENT_DB_CHECK_TO_DELETE" _delta="define">
|
<event id="EVENT_DB_CHECK_TO_DELETE" _delta="define">
|
||||||
<description>Check an object before it is deleted from the database. Call DBObject::AddDeleteIssue() to signal an issue</description>
|
<name>Check to delete</name>
|
||||||
|
<description><![CDATA[Check an object before it is deleted from the database.
|
||||||
|
Call $this->AddDeleteIssue($sIssueMessage) to signal an issue.]]></description>
|
||||||
<sources>
|
<sources>
|
||||||
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
||||||
</sources>
|
</sources>
|
||||||
@@ -271,7 +311,8 @@
|
|||||||
</event_data>
|
</event_data>
|
||||||
</event>
|
</event>
|
||||||
<event id="EVENT_DB_ABOUT_TO_DELETE" _delta="define">
|
<event id="EVENT_DB_ABOUT_TO_DELETE" _delta="define">
|
||||||
<description>An object is about to be deleted from the database</description>
|
<name>Before delete</name>
|
||||||
|
<description><![CDATA[An object is about to be deleted from the database]]></description>
|
||||||
<sources>
|
<sources>
|
||||||
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
||||||
</sources>
|
</sources>
|
||||||
@@ -288,7 +329,8 @@
|
|||||||
</event_data>
|
</event_data>
|
||||||
</event>
|
</event>
|
||||||
<event id="EVENT_DB_AFTER_DELETE" _delta="define">
|
<event id="EVENT_DB_AFTER_DELETE" _delta="define">
|
||||||
<description>An object has been deleted into the database</description>
|
<name>After delete</name>
|
||||||
|
<description><![CDATA[An object has been deleted into the database]]></description>
|
||||||
<sources>
|
<sources>
|
||||||
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
||||||
</sources>
|
</sources>
|
||||||
@@ -305,7 +347,9 @@
|
|||||||
</event_data>
|
</event_data>
|
||||||
</event>
|
</event>
|
||||||
<event id="EVENT_ENUM_TRANSITIONS" _delta="define">
|
<event id="EVENT_ENUM_TRANSITIONS" _delta="define">
|
||||||
<description>Manage the allowed transitions in current object state. The only action allowed is to deny transitions with DBObject::DenyTransition()</description>
|
<name>Enum transitions</name>
|
||||||
|
<description><![CDATA[Manage the allowed transitions in current object state.
|
||||||
|
The only action allowed is to deny transitions with $this->DenyTransition($sTransitionCode)]]></description>
|
||||||
<sources>
|
<sources>
|
||||||
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
||||||
</sources>
|
</sources>
|
||||||
@@ -325,7 +369,8 @@
|
|||||||
</event_data>
|
</event_data>
|
||||||
</event>
|
</event>
|
||||||
<event id="EVENT_DB_LINKS_CHANGED" _delta="define">
|
<event id="EVENT_DB_LINKS_CHANGED" _delta="define">
|
||||||
<description>At least one link class was changed</description>
|
<name>Links on object have changed</name>
|
||||||
|
<description><![CDATA[At least one link class was changed]]></description>
|
||||||
<sources>
|
<sources>
|
||||||
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
||||||
</sources>
|
</sources>
|
||||||
@@ -341,7 +386,9 @@
|
|||||||
</event_data>
|
</event_data>
|
||||||
</event>
|
</event>
|
||||||
<event id="EVENT_DB_OBJECT_RELOAD" _delta="define">
|
<event id="EVENT_DB_OBJECT_RELOAD" _delta="define">
|
||||||
<description>An object has been re-loaded from the database</description>
|
<name>Object reload</name>
|
||||||
|
<internal>true</internal>
|
||||||
|
<description><![CDATA[An object has been re-loaded from the database]]></description>
|
||||||
<sources>
|
<sources>
|
||||||
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
||||||
</sources>
|
</sources>
|
||||||
@@ -357,7 +404,8 @@
|
|||||||
</event_data>
|
</event_data>
|
||||||
</event>
|
</event>
|
||||||
<event id="EVENT_DB_COMPUTE_VALUES" _delta="define">
|
<event id="EVENT_DB_COMPUTE_VALUES" _delta="define">
|
||||||
<description>An object needs to be recomputed after changes</description>
|
<name>Recompute object values</name>
|
||||||
|
<description><![CDATA[An object needs to be recomputed after changes]]></description>
|
||||||
<sources>
|
<sources>
|
||||||
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
||||||
</sources>
|
</sources>
|
||||||
@@ -374,7 +422,8 @@
|
|||||||
</event_data>
|
</event_data>
|
||||||
</event>
|
</event>
|
||||||
<event id="EVENT_DB_ARCHIVE" _delta="define">
|
<event id="EVENT_DB_ARCHIVE" _delta="define">
|
||||||
<description>An object has been archived</description>
|
<name>Object archived</name>
|
||||||
|
<description><![CDATA[An object has been archived]]></description>
|
||||||
<sources>
|
<sources>
|
||||||
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
||||||
</sources>
|
</sources>
|
||||||
@@ -390,7 +439,8 @@
|
|||||||
</event_data>
|
</event_data>
|
||||||
</event>
|
</event>
|
||||||
<event id="EVENT_DB_UNARCHIVE" _delta="define">
|
<event id="EVENT_DB_UNARCHIVE" _delta="define">
|
||||||
<description>An object has been unarchived</description>
|
<name>Object unarchived</name>
|
||||||
|
<description><![CDATA[An object has been unarchived]]></description>
|
||||||
<sources>
|
<sources>
|
||||||
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
||||||
</sources>
|
</sources>
|
||||||
@@ -406,7 +456,9 @@
|
|||||||
</event_data>
|
</event_data>
|
||||||
</event>
|
</event>
|
||||||
<event id="EVENT_DB_SET_ATTRIBUTES_FLAGS" _delta="define">
|
<event id="EVENT_DB_SET_ATTRIBUTES_FLAGS" _delta="define">
|
||||||
<description>Set object attributes flags. Call cmdbAbstractObject::AddAttributeFlags() for all the attributes to be set for this target state.</description>
|
<name>Set attributes flags</name>
|
||||||
|
<description><![CDATA[Set object attributes flags.
|
||||||
|
Call $this->AddAttributeFlags($sAttCode, $iFlags) for all the attributes to be set for this target state.]]></description>
|
||||||
<sources>
|
<sources>
|
||||||
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
||||||
</sources>
|
</sources>
|
||||||
@@ -417,7 +469,7 @@
|
|||||||
</event_datum>
|
</event_datum>
|
||||||
<event_datum id="target_state">
|
<event_datum id="target_state">
|
||||||
<description>The target state in which to evaluate the flags</description>
|
<description>The target state in which to evaluate the flags</description>
|
||||||
<type>array</type>
|
<type>string</type>
|
||||||
</event_datum>
|
</event_datum>
|
||||||
<event_datum id="debug_info">
|
<event_datum id="debug_info">
|
||||||
<description>Debug string</description>
|
<description>Debug string</description>
|
||||||
@@ -426,7 +478,9 @@
|
|||||||
</event_data>
|
</event_data>
|
||||||
</event>
|
</event>
|
||||||
<event id="EVENT_DB_SET_INITIAL_ATTRIBUTES_FLAGS" _delta="define">
|
<event id="EVENT_DB_SET_INITIAL_ATTRIBUTES_FLAGS" _delta="define">
|
||||||
<description>Set object initial attributes flags. Call cmdbAbstractObject::AddInitialAttributeFlags() for all the initial attributes to be set initially.</description>
|
<name>Set initial attributes flags</name>
|
||||||
|
<description><![CDATA[Set object initial attributes flags.
|
||||||
|
Call $this->AddInitialAttributeFlags($sAttCode, $iFlags) for all the initial attributes to be set initially.]]></description>
|
||||||
<sources>
|
<sources>
|
||||||
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
||||||
</sources>
|
</sources>
|
||||||
@@ -442,7 +496,8 @@
|
|||||||
</event_data>
|
</event_data>
|
||||||
</event>
|
</event>
|
||||||
<event id="EVENT_DOWNLOAD_DOCUMENT" _delta="define">
|
<event id="EVENT_DOWNLOAD_DOCUMENT" _delta="define">
|
||||||
<description>A document has been downloaded from the GUI</description>
|
<name>Document downloaded</name>
|
||||||
|
<description><![CDATA[A document has been downloaded from the GUI]]></description>
|
||||||
<sources>
|
<sources>
|
||||||
<source id="Document">Document</source>
|
<source id="Document">Document</source>
|
||||||
</sources>
|
</sources>
|
||||||
@@ -470,7 +525,9 @@
|
|||||||
</event_data>
|
</event_data>
|
||||||
</event>
|
</event>
|
||||||
<event id="EVENT_LOGIN" _delta="define">
|
<event id="EVENT_LOGIN" _delta="define">
|
||||||
<description>Inform the listeners about the connection states</description>
|
<name>Login</name>
|
||||||
|
<internal>true</internal>
|
||||||
|
<description><![CDATA[Inform the listeners about the connection states]]></description>
|
||||||
<event_data>
|
<event_data>
|
||||||
<event_datum id="code">
|
<event_datum id="code">
|
||||||
<description>The login step result code (LoginWebPage::EXIT_CODE_...) </description>
|
<description>The login step result code (LoginWebPage::EXIT_CODE_...) </description>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ use Combodo\iTop\Application\WebPage\WebPage;
|
|||||||
use Combodo\iTop\Renderer\Console\ConsoleBlockRenderer;
|
use Combodo\iTop\Renderer\Console\ConsoleBlockRenderer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Copyright (C) 2013-2023 Combodo SARL
|
* Copyright (C) 2013-2024 Combodo SAS
|
||||||
*
|
*
|
||||||
* This file is part of iTop.
|
* This file is part of iTop.
|
||||||
*
|
*
|
||||||
@@ -326,6 +326,7 @@ class DataTable
|
|||||||
$sPagesLinks = implode('', $aPagesToDisplay);
|
$sPagesLinks = implode('', $aPagesToDisplay);
|
||||||
$sPagesList = '['.implode(',', array_keys($aPagesToDisplay)).']';
|
$sPagesList = '['.implode(',', array_keys($aPagesToDisplay)).']';
|
||||||
|
|
||||||
|
$sAppRootUrl = utils::GetAbsoluteUrlAppRoot();
|
||||||
$sSelectionMode = ($iNbPages == 1) ? '' : 'positive';
|
$sSelectionMode = ($iNbPages == 1) ? '' : 'positive';
|
||||||
$sHtml =
|
$sHtml =
|
||||||
<<<EOF
|
<<<EOF
|
||||||
@@ -333,11 +334,11 @@ class DataTable
|
|||||||
<div $sPagerStyle>
|
<div $sPagerStyle>
|
||||||
<table id="pager{$this->iListId}" class="pager"><tr>
|
<table id="pager{$this->iListId}" class="pager"><tr>
|
||||||
<td>$sPages</td>
|
<td>$sPages</td>
|
||||||
<td><img src="../images/first.png" class="first"/></td>
|
<td><img src="{$sAppRootUrl}images/first.png" class="first"/>AAAA</td>
|
||||||
<td><img src="../images/prev.png" class="prev"/></td>
|
<td><img src="{$sAppRootUrl}images/prev.png" class="prev"/></td>
|
||||||
<td><span id="index">$sPagesLinks</span></td>
|
<td><span id="index">$sPagesLinks</span></td>
|
||||||
<td><img src="../images/next.png" class="next"/></td>
|
<td><img src="{$sAppRootUrl}images/next.png" class="next"/></td>
|
||||||
<td><img src="../images/last.png" class="last"/></td>
|
<td><img src="{$sAppRootUrl}images/last.png" class="last"/></td>
|
||||||
<td>$sPageSizeCombo</td>
|
<td>$sPageSizeCombo</td>
|
||||||
<td><span id="loading"> </span><input type="hidden" name="selectionMode" value="$sSelectionMode"></input>
|
<td><span id="loading"> </span><input type="hidden" name="selectionMode" value="$sSelectionMode"></input>
|
||||||
</td>
|
</td>
|
||||||
@@ -565,7 +566,7 @@ EOF;
|
|||||||
{
|
{
|
||||||
if (is_object($aObjects[$sAlias]))
|
if (is_object($aObjects[$sAlias]))
|
||||||
{
|
{
|
||||||
$sHilightClass = $aObjects[$sAlias]->GetHilightClass();
|
$sHilightClass = MetaModel::GetHilightClass($sClassName, $aObjects[$sAlias]);
|
||||||
if ($sHilightClass != '')
|
if ($sHilightClass != '')
|
||||||
{
|
{
|
||||||
$aRow['@class'] = $sHilightClass;
|
$aRow['@class'] = $sHilightClass;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -570,7 +570,7 @@ class DisplayBlock
|
|||||||
} else {
|
} else {
|
||||||
// render it as an Ajax (asynchronous) call
|
// render it as an Ajax (asynchronous) call
|
||||||
$oHtml->AddCSSClass("loading");
|
$oHtml->AddCSSClass("loading");
|
||||||
$oHtml->AddHtml("<p><img src=\"../images/indicator_arrows.gif\"> ".Dict::S('UI:Loading').'</p>');
|
$oHtml->AddHtml("<p><img src=\"".utils::GetAbsoluteUrlAppRoot()."images/indicator_arrows.gif\"> ".Dict::S('UI:Loading').'</p>');
|
||||||
$oPage->add_script('
|
$oPage->add_script('
|
||||||
$.post("ajax.render.php?style='.$this->m_sStyle.'",
|
$.post("ajax.render.php?style='.$this->m_sStyle.'",
|
||||||
{ operation: "ajax", filter: "'.$sFilter.'", extra_params: "'.$sExtraParams.'" },
|
{ operation: "ajax", filter: "'.$sFilter.'", extra_params: "'.$sExtraParams.'" },
|
||||||
@@ -1686,16 +1686,19 @@ JS
|
|||||||
$aRes = CMDBSource::QueryToArray($sSql);
|
$aRes = CMDBSource::QueryToArray($sSql);
|
||||||
$oContext = new ApplicationContext();
|
$oContext = new ApplicationContext();
|
||||||
$sContextParam = $oContext->GetForLink();
|
$sContextParam = $oContext->GetForLink();
|
||||||
|
/** @var AttributeDefinition $oGroupByAttDef */
|
||||||
|
$oGroupByAttDef = $aGroupBy["grouped_by_1"]->GetAttDef();
|
||||||
|
|
||||||
$iTotalCount = 0;
|
$iTotalCount = 0;
|
||||||
$aURLs = array();
|
$aURLs = array();
|
||||||
|
|
||||||
foreach ($aRes as $iRow => $aRow) {
|
foreach ($aRes as $iRow => $aRow) {
|
||||||
$sValue = $aRow['grouped_by_1'];
|
$sValue = $aRow['grouped_by_1'];
|
||||||
$sHtmlValue = $oGroupByExp->MakeValueLabel($this->m_oFilter, $sValue, $sValue);
|
$sPlainTextValue = $oGroupByAttDef->GetValueLabel($sValue);
|
||||||
|
$sHtmlValue = utils::EscapeHtml($sPlainTextValue);
|
||||||
$iTotalCount += $aRow['_itop_count_'];
|
$iTotalCount += $aRow['_itop_count_'];
|
||||||
$aValues[] = array(
|
$aValues[] = array(
|
||||||
'label' => html_entity_decode(strip_tags($sHtmlValue), ENT_QUOTES, 'UTF-8'),
|
'label' => $sPlainTextValue,
|
||||||
'label_html' => $sHtmlValue,
|
'label_html' => $sHtmlValue,
|
||||||
'value' => (float)$aRow[$sFctVar],
|
'value' => (float)$aRow[$sFctVar],
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/ErrorPage.php, now loadable using autoloader
|
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/ErrorPage.php, now loadable using autoloader
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/ErrorPage.php, now loadable using autoloader');
|
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/ErrorPage.php, now loadable using autoloader');
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Copyright (C) 2013-2023 Combodo SARL
|
* Copyright (C) 2013-2024 Combodo SAS
|
||||||
*
|
*
|
||||||
* This file is part of iTop.
|
* This file is part of iTop.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// Copyright (C) 2010-2023 Combodo SARL
|
// Copyright (C) 2010-2024 Combodo SAS
|
||||||
//
|
//
|
||||||
// This file is part of iTop.
|
// This file is part of iTop.
|
||||||
//
|
//
|
||||||
@@ -21,7 +21,7 @@ use Combodo\iTop\Application\WebPage\WebPage;
|
|||||||
* Helper class to build interactive forms to be used either in stand-alone
|
* Helper class to build interactive forms to be used either in stand-alone
|
||||||
* modal dialog or in "property-sheet" panes.
|
* modal dialog or in "property-sheet" panes.
|
||||||
*
|
*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
class DesignerForm
|
class DesignerForm
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// Copyright (C) 2010-2023 Combodo SARL
|
// Copyright (C) 2010-2024 Combodo SAS
|
||||||
//
|
//
|
||||||
// This file is part of iTop.
|
// This file is part of iTop.
|
||||||
//
|
//
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
/**
|
/**
|
||||||
* Persistent class InputOutputTask
|
* Persistent class InputOutputTask
|
||||||
*
|
*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/iTopWebPage.php, now loadable using autoloader
|
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/iTopWebPage.php, now loadable using autoloader
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// cannot notify depreciation for now as this is still MASSIVELY used in iTop core !
|
// cannot notify depreciation for now as this is still MASSIVELY used in iTop core !
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/iTopWizardWebPage.php, now loadable using autoloader
|
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/iTopWizardWebPage.php, now loadable using autoloader
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/iTopWizardWebPage.php, now loadable using autoloader');
|
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/iTopWizardWebPage.php, now loadable using autoloader');
|
||||||
@@ -5,7 +5,7 @@ use Combodo\iTop\Application\Helper\Session;
|
|||||||
/**
|
/**
|
||||||
* Class LoginBasic
|
* Class LoginBasic
|
||||||
*
|
*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ use Combodo\iTop\Application\Helper\Session;
|
|||||||
/**
|
/**
|
||||||
* Class LoginExternal
|
* Class LoginExternal
|
||||||
*
|
*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ use Combodo\iTop\Application\Helper\Session;
|
|||||||
/**
|
/**
|
||||||
* Class LoginURL
|
* Class LoginURL
|
||||||
*
|
*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// Copyright (C) 2010-2023 Combodo SARL
|
// Copyright (C) 2010-2024 Combodo SAS
|
||||||
//
|
//
|
||||||
// This file is part of iTop.
|
// This file is part of iTop.
|
||||||
//
|
//
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
/**
|
/**
|
||||||
* Class LoginWebPage
|
* Class LoginWebPage
|
||||||
*
|
*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -97,8 +97,8 @@ class LoginWebPage extends NiceWebPage
|
|||||||
|
|
||||||
public function SetStyleSheet()
|
public function SetStyleSheet()
|
||||||
{
|
{
|
||||||
$this->add_linked_stylesheet(utils::GetAbsoluteUrlAppRoot().'css/login.css');
|
$this->LinkStylesheetFromAppRoot('css/login.css');
|
||||||
$this->add_linked_stylesheet(utils::GetAbsoluteUrlAppRoot().'css/font-awesome/css/all.min.css');
|
$this->LinkStylesheetFromAppRoot('css/font-awesome/css/all.min.css');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -971,7 +971,7 @@ class LoginWebPage extends NiceWebPage
|
|||||||
}
|
}
|
||||||
else if($ret === false)
|
else if($ret === false)
|
||||||
{
|
{
|
||||||
throw new Exception('Nowhere to go??');
|
throw new Exception('Nowhere to go: Your combination of user Profiles denies you access to any '.ITOP_APPLICATION_SHORT.' portal. Please contact your administrator');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Copyright (C) 2013-2023 Combodo SARL
|
* Copyright (C) 2013-2024 Combodo SAS
|
||||||
*
|
*
|
||||||
* This file is part of iTop.
|
* This file is part of iTop.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -125,9 +125,7 @@ class ApplicationMenu
|
|||||||
*/
|
*/
|
||||||
public static function CheckMenuIdEnabled($sMenuId)
|
public static function CheckMenuIdEnabled($sMenuId)
|
||||||
{
|
{
|
||||||
self::LoadAdditionalMenus();
|
if (self::IsMenuIdEnabled($sMenuId) === false)
|
||||||
$oMenuNode = self::GetMenuNode(self::GetMenuIndexById($sMenuId));
|
|
||||||
if (is_null($oMenuNode) || !$oMenuNode->IsEnabled())
|
|
||||||
{
|
{
|
||||||
require_once(APPROOT.'/setup/setuppage.class.inc.php');
|
require_once(APPROOT.'/setup/setuppage.class.inc.php');
|
||||||
$oP = new ErrorPage(Dict::S('UI:PageTitle:FatalError'));
|
$oP = new ErrorPage(Dict::S('UI:PageTitle:FatalError'));
|
||||||
@@ -138,6 +136,19 @@ class ApplicationMenu
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $sMenuId
|
||||||
|
*
|
||||||
|
* @return bool true if the menu exists and current user is allowed to see the menu
|
||||||
|
* @since 3.2.0
|
||||||
|
*/
|
||||||
|
public static function IsMenuIdEnabled($sMenuId):bool
|
||||||
|
{
|
||||||
|
self::LoadAdditionalMenus();
|
||||||
|
$oMenuNode = self::GetMenuNode(self::GetMenuIndexById($sMenuId));
|
||||||
|
return is_null($oMenuNode) === false && $oMenuNode->IsEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Main function to add a menu entry into the application, can be called during the definition
|
* Main function to add a menu entry into the application, can be called during the definition
|
||||||
* of the data model objects
|
* of the data model objects
|
||||||
@@ -269,9 +280,11 @@ class ApplicationMenu
|
|||||||
$oMenuNode = static::GetMenuNode($sMenuGroupIdx);
|
$oMenuNode = static::GetMenuNode($sMenuGroupIdx);
|
||||||
|
|
||||||
if (!($oMenuNode instanceof MenuGroup)) {
|
if (!($oMenuNode instanceof MenuGroup)) {
|
||||||
IssueLog::Error('Menu node was not displayed as a menu group as it is actually not a menu group', LogChannels::CONSOLE, [
|
IssueLog::Error('Menu node without parent (root menu) must be of type menu group. Parent menu is missing or not visible to user.', LogChannels::CONSOLE, [
|
||||||
'menu_node_class' => get_class($oMenuNode),
|
'menu_node_class' => get_class($oMenuNode),
|
||||||
|
'menu_node_id' => $oMenuNode->GetMenuID(),
|
||||||
'menu_node_label' => $oMenuNode->GetLabel(),
|
'menu_node_label' => $oMenuNode->GetLabel(),
|
||||||
|
'current_user_id' => UserRights::GetUserId(),
|
||||||
]);
|
]);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// Copyright (C) 2010-2023 Combodo SARL
|
// Copyright (C) 2010-2024 Combodo SAS
|
||||||
//
|
//
|
||||||
// This file is part of iTop.
|
// This file is part of iTop.
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/NiceWebPage.php, now loadable using autoloader
|
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/NiceWebPage.php, now loadable using autoloader
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/NiceWebPage.php, now loadable using autoloader');
|
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/NiceWebPage.php, now loadable using autoloader');
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/PDFPage.php, now loadable using autoloader
|
* @deprecated 3.0.0 will be removed in 3.1.0 - moved to sources/Application/WebPage/PDFPage.php, now loadable using autoloader
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/PDFPage.php, now loadable using autoloader');
|
DeprecatedCallsLog::NotifyDeprecatedFile('moved to sources/Application/WebPage/PDFPage.php, now loadable using autoloader');
|
||||||
@@ -9,11 +9,17 @@ class PortalDispatcher
|
|||||||
$this->sPortalid = $sPortalId;
|
$this->sPortalid = $sPortalId;
|
||||||
$this->aData = PortalDispatcherData::GetData($sPortalId);
|
$this->aData = PortalDispatcherData::GetData($sPortalId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function IsUserAllowed()
|
/**
|
||||||
|
* @param \User|null $oUser
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
* @since 3.2.0 N°2039 Add $oUser parameter
|
||||||
|
*/
|
||||||
|
public function IsUserAllowed(?User $oUser = null)
|
||||||
{
|
{
|
||||||
$bRet = true;
|
$bRet = true;
|
||||||
$aProfiles = UserRights::ListProfiles();
|
$aProfiles = UserRights::ListProfiles($oUser);
|
||||||
|
|
||||||
foreach($this->aData['deny'] as $sDeniedProfile)
|
foreach($this->aData['deny'] as $sDeniedProfile)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2010-2023 Combodo SARL
|
* Copyright (C) 2010-2024 Combodo SAS
|
||||||
*
|
*
|
||||||
* This file is part of iTop.
|
* This file is part of iTop.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// Copyright (C) 2010-2023 Combodo SARL
|
// Copyright (C) 2010-2024 Combodo SAS
|
||||||
//
|
//
|
||||||
// This file is part of iTop.
|
// This file is part of iTop.
|
||||||
//
|
//
|
||||||
@@ -23,7 +23,7 @@ use Combodo\iTop\Application\WebPage\WebPage;
|
|||||||
* Persistent class Shortcut and derived
|
* Persistent class Shortcut and derived
|
||||||
* Shortcuts of any kind
|
* Shortcuts of any kind
|
||||||
*
|
*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -293,7 +293,7 @@ $("#attr_auto_reload_sec").attr('data-tooltip-content', '$sRateTitle');
|
|||||||
CombodoTooltip.InitTooltipFromMarkup($("#attr_auto_reload_sec"));
|
CombodoTooltip.InitTooltipFromMarkup($("#attr_auto_reload_sec"));
|
||||||
$("#attr_auto_reload_sec").prop('disabled', !$('#attr_auto_reload').is(':checked'));
|
$("#attr_auto_reload_sec").prop('disabled', !$('#attr_auto_reload').is(':checked'));
|
||||||
|
|
||||||
$('#attr_auto_reload').change( function(ev) {
|
$('#attr_auto_reload').on('change', function(ev) {
|
||||||
$("#attr_auto_reload_sec").prop('disabled', !$(this).is(':checked'));
|
$("#attr_auto_reload_sec").prop('disabled', !$(this).is(':checked'));
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// Copyright (C) 2010-2023 Combodo SARL
|
// Copyright (C) 2010-2024 Combodo SAS
|
||||||
//
|
//
|
||||||
// This file is part of iTop.
|
// This file is part of iTop.
|
||||||
//
|
//
|
||||||
@@ -27,7 +27,7 @@ require_once(APPROOT.'setup/setuputils.class.inc.php');
|
|||||||
/**
|
/**
|
||||||
* File to include to initialize the datamodel in memory
|
* File to include to initialize the datamodel in memory
|
||||||
*
|
*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Copyright (C) 2013-2023 Combodo SARL
|
* Copyright (C) 2013-2024 Combodo SAS
|
||||||
*
|
*
|
||||||
* This file is part of iTop.
|
* This file is part of iTop.
|
||||||
*
|
*
|
||||||
@@ -232,12 +232,13 @@ class DisplayTemplate
|
|||||||
static public function UnitTest()
|
static public function UnitTest()
|
||||||
{
|
{
|
||||||
require_once(APPROOT.'/application/startup.inc.php');
|
require_once(APPROOT.'/application/startup.inc.php');
|
||||||
|
|
||||||
|
$sAppRootUrl = utils::GetAbsoluteUrlAppRoot();
|
||||||
$sTemplate = '<div class="page_header">
|
$sTemplate = '<div class="page_header">
|
||||||
<div class="actions_details"><a href="#"><span>Actions</span></a></div>
|
<div class="actions_details"><a href="#"><span>Actions</span></a></div>
|
||||||
<h1>$class$: <span class="hilite">$name$</span></h1>
|
<h1>$class$: <span class="hilite">$name$</span></h1>
|
||||||
</div>
|
</div>
|
||||||
<img src="../../images/connect_to_network.png" style="margin-top:-10px; margin-right:10px; float:right">
|
<img src="'.$sAppRootUrl.'images/connect_to_network.png" style="margin-top:-10px; margin-right:10px; float:right">
|
||||||
<itoptabs>
|
<itoptabs>
|
||||||
<itoptab name="Interfaces">
|
<itoptab name="Interfaces">
|
||||||
<itopblock blockclass="DisplayBlock" type="list" encoding="text/oql">SELECT Interface AS i WHERE i.device_id = $id$</itopblock>
|
<itopblock blockclass="DisplayBlock" type="list" encoding="text/oql">SELECT Interface AS i WHERE i.device_id = $id$</itopblock>
|
||||||
@@ -350,7 +351,8 @@ class ObjectDetailsTemplate extends DisplayTemplate
|
|||||||
if ($iFlags & OPT_ATT_SLAVE)
|
if ($iFlags & OPT_ATT_SLAVE)
|
||||||
{
|
{
|
||||||
$iSynchroFlags = $this->m_oObj->GetSynchroReplicaFlags($sAttCode, $aReasons);
|
$iSynchroFlags = $this->m_oObj->GetSynchroReplicaFlags($sAttCode, $aReasons);
|
||||||
$sSynchroIcon = " <img id=\"synchro_$iInputId\" src=\"../images/transp-lock.png\" style=\"vertical-align:middle\"/>";
|
$sAppRooturl = utils::GetAbsoluteUrlAppRoot();
|
||||||
|
$sSynchroIcon = " <img id=\"synchro_$iInputId\" src=\"{$sAppRooturl}images/transp-lock.png\" style=\"vertical-align:middle\"/>";
|
||||||
$sTip = '';
|
$sTip = '';
|
||||||
foreach($aReasons as $aRow)
|
foreach($aReasons as $aRow)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
<div style="width:100%;background: #fff url(../images/welcome.jpg) top left no-repeat;">
|
|
||||||
<style>
|
|
||||||
.welcome_popup_cell {
|
|
||||||
vertical-align:top;
|
|
||||||
width:50%;
|
|
||||||
border:0px solid #000;
|
|
||||||
-moz-border-radius:10px;
|
|
||||||
padding:5px;
|
|
||||||
text-align:left;
|
|
||||||
}
|
|
||||||
tr td.welcome_popup_cell, tr td.welcome_popup_cell ul {
|
|
||||||
font-size:10pt;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<p></p>
|
|
||||||
<p></p>
|
|
||||||
<p style="text-align:left; font-size:32px;padding-left:400px;padding-top:40px;margin-bottom:30px;margin-top:0;color:#FFFFFF;"><itopstring>UI:WelcomeMenu:Title</itopstring></p>
|
|
||||||
<p></p>
|
|
||||||
<table border="0" style="padding:10px;border-spacing: 10px;width:100%">
|
|
||||||
<tr>
|
|
||||||
<td class="welcome_popup_cell">
|
|
||||||
<itopstring>UI:WelcomeMenu:LeftBlock</itopstring>
|
|
||||||
</td>
|
|
||||||
<td class="welcome_popup_cell">
|
|
||||||
<itopstring>UI:WelcomeMenu:RightBlock</itopstring>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Copyright (C) 2013-2023 Combodo SARL
|
* Copyright (C) 2013-2024 Combodo SAS
|
||||||
*
|
*
|
||||||
* This file is part of iTop.
|
* This file is part of iTop.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Copyright (C) 2013-2023 Combodo SARL
|
* Copyright (C) 2013-2024 Combodo SAS
|
||||||
*
|
*
|
||||||
* This file is part of iTop.
|
* This file is part of iTop.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// Copyright (C) 2010-2023 Combodo SARL
|
// Copyright (C) 2010-2024 Combodo SAS
|
||||||
//
|
//
|
||||||
// This file is part of iTop.
|
// This file is part of iTop.
|
||||||
//
|
//
|
||||||
@@ -24,7 +24,7 @@ use Combodo\iTop\Application\Helper\Session;
|
|||||||
* which choice is configured via the parameter 'transaction_storage'
|
* which choice is configured via the parameter 'transaction_storage'
|
||||||
*
|
*
|
||||||
* @package iTop
|
* @package iTop
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
class privUITransaction
|
class privUITransaction
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright Copyright (C) 2010-2023 Combodo SARL
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -161,8 +161,8 @@ class UIExtKeyWidget
|
|||||||
public function DisplaySelect(WebPage $oPage, $iMaxComboLength, $bAllowTargetCreation, $sTitle, DBObjectset $oAllowedValues, $value, $bMandatory, $sFieldName, $sFormPrefix = '', $aArgs = array(), &$sInputType = '')
|
public function DisplaySelect(WebPage $oPage, $iMaxComboLength, $bAllowTargetCreation, $sTitle, DBObjectset $oAllowedValues, $value, $bMandatory, $sFieldName, $sFormPrefix = '', $aArgs = array(), &$sInputType = '')
|
||||||
{
|
{
|
||||||
$sTitle = addslashes($sTitle);
|
$sTitle = addslashes($sTitle);
|
||||||
$oPage->add_linked_script('../js/extkeywidget.js');
|
$oPage->LinkScriptFromAppRoot('js/extkeywidget.js');
|
||||||
$oPage->add_linked_script('../js/forms-json-utils.js');
|
$oPage->LinkScriptFromAppRoot('js/forms-json-utils.js');
|
||||||
|
|
||||||
$bCreate = (!$this->bSearchMode) && (UserRights::IsActionAllowed($this->sTargetClass, UR_ACTION_MODIFY) && $bAllowTargetCreation);
|
$bCreate = (!$this->bSearchMode) && (UserRights::IsActionAllowed($this->sTargetClass, UR_ACTION_MODIFY) && $bAllowTargetCreation);
|
||||||
$bExtensions = true;
|
$bExtensions = true;
|
||||||
@@ -368,7 +368,7 @@ JS
|
|||||||
*/
|
*/
|
||||||
public function DisplayRadio(WebPage $oPage, $iMaxComboLength, $bAllowTargetCreation, DBObjectset $oAllowedValues, $value, $sFieldName, $sDisplayStyle)
|
public function DisplayRadio(WebPage $oPage, $iMaxComboLength, $bAllowTargetCreation, DBObjectset $oAllowedValues, $value, $sFieldName, $sDisplayStyle)
|
||||||
{
|
{
|
||||||
$oPage->add_linked_script('../js/forms-json-utils.js');
|
$oPage->LinkScriptFromAppRoot('js/forms-json-utils.js');
|
||||||
|
|
||||||
$bCreate = (!$this->bSearchMode) && (UserRights::IsActionAllowed($this->sTargetClass, UR_ACTION_BULK_MODIFY) && $bAllowTargetCreation);
|
$bCreate = (!$this->bSearchMode) && (UserRights::IsActionAllowed($this->sTargetClass, UR_ACTION_BULK_MODIFY) && $bAllowTargetCreation);
|
||||||
$bExtensions = true;
|
$bExtensions = true;
|
||||||
@@ -477,8 +477,8 @@ JS
|
|||||||
$this->bSearchMode = $bSearchMode;
|
$this->bSearchMode = $bSearchMode;
|
||||||
}
|
}
|
||||||
$sTitle = addslashes($sTitle);
|
$sTitle = addslashes($sTitle);
|
||||||
$oPage->add_linked_script('../js/extkeywidget.js');
|
$oPage->LinkScriptFromAppRoot('js/extkeywidget.js');
|
||||||
$oPage->add_linked_script('../js/forms-json-utils.js');
|
$oPage->LinkScriptFromAppRoot('js/forms-json-utils.js');
|
||||||
|
|
||||||
$bCreate = (!$this->bSearchMode) && (UserRights::IsActionAllowed($this->sTargetClass, UR_ACTION_BULK_MODIFY) && $bAllowTargetCreation);
|
$bCreate = (!$this->bSearchMode) && (UserRights::IsActionAllowed($this->sTargetClass, UR_ACTION_BULK_MODIFY) && $bAllowTargetCreation);
|
||||||
$bExtensions = true;
|
$bExtensions = true;
|
||||||
@@ -734,7 +734,7 @@ HTML
|
|||||||
],
|
],
|
||||||
});
|
});
|
||||||
$('#fs_{$this->iId}').on('submit.uiAutocomplete', oACWidget_{$this->iId}.DoSearchObjects);
|
$('#fs_{$this->iId}').on('submit.uiAutocomplete', oACWidget_{$this->iId}.DoSearchObjects);
|
||||||
$('#dc_{$this->iId}').resize(oACWidget_{$this->iId}.UpdateSizes);
|
$('#dc_{$this->iId}').on('resize', oACWidget_{$this->iId}.UpdateSizes);
|
||||||
JS
|
JS
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user