Compare commits
500 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
48a0990d51 | |
|
|
6e171710f6 | |
|
|
edb6e43462 | |
|
|
b01bf7d08c | |
|
|
4f4a1f9c15 | |
|
|
7040635baf | |
|
|
5ed20f1c2f | |
|
|
5c1be1a318 | |
|
|
7d51c8cdd5 | |
|
|
98d7fd025c | |
|
|
f9bd89ef78 | |
|
|
091dca3ceb | |
|
|
0b9fd924a9 | |
|
|
e5e63a3846 | |
|
|
590e58c388 | |
|
|
efd9f8979e | |
|
|
7148ba3c66 | |
|
|
c6ecf73fa6 | |
|
|
c6dd43cff0 | |
|
|
0882b148ec | |
|
|
0e143764e8 | |
|
|
d1d24a0a9c | |
|
|
aceb77d70e | |
|
|
c305685d23 | |
|
|
00c6befb70 | |
|
|
7fe291dfcf | |
|
|
5f7ef8848e | |
|
|
b5af974d34 | |
|
|
c165afc53e | |
|
|
288f693c12 | |
|
|
90b774e86d | |
|
|
67da2f2a3d | |
|
|
2ae77071e2 | |
|
|
ba413775c7 | |
|
|
9d43254603 | |
|
|
9ee9aa4023 | |
|
|
f58ed065fc | |
|
|
7fae8eefca | |
|
|
cf55ca59ed | |
|
|
f420a08802 | |
|
|
62877b7aab | |
|
|
5b77e3d62b | |
|
|
48661c3aa6 | |
|
|
efed19ef1c | |
|
|
0e2b083807 | |
|
|
0706b52427 | |
|
|
d44e7c0c5f | |
|
|
cd5693dbd4 | |
|
|
52d8f436e4 | |
|
|
1778963607 | |
|
|
d3cedcf17f | |
|
|
449b689840 | |
|
|
a5e63e0fce | |
|
|
1f2d7e1ceb | |
|
|
b82d9f17a7 | |
|
|
891e9e3dfa | |
|
|
64a8715245 | |
|
|
e460c4f180 | |
|
|
5d37e2a570 | |
|
|
7b8340f021 | |
|
|
a6a39e6d8a | |
|
|
7787c4fd73 | |
|
|
a482326930 | |
|
|
42c96239c8 | |
|
|
0bec2b9aef | |
|
|
dce8f1ba8a | |
|
|
c8699a5797 | |
|
|
6d356194ba | |
|
|
1572c76963 | |
|
|
ad1ba95566 | |
|
|
0a42d8f198 | |
|
|
99b3100ee9 | |
|
|
8a1421eb97 | |
|
|
89eeeb84ae | |
|
|
1e96df6e95 | |
|
|
7639f0755c | |
|
|
5dffd4d6e0 | |
|
|
77d2b3099a | |
|
|
17b938698e | |
|
|
e6bfaf21ee | |
|
|
b0a630e80a | |
|
|
b5592e84c7 | |
|
|
ee28c6d203 | |
|
|
6c6814b29e | |
|
|
bed7c8827f | |
|
|
95761621a6 | |
|
|
31a88e3a15 | |
|
|
7897ff5b9e | |
|
|
08001488f4 | |
|
|
abb95e38bb | |
|
|
43edc82cbe | |
|
|
7a167f70af | |
|
|
81ab295059 | |
|
|
20f3c4eb71 | |
|
|
3167a8ce49 | |
|
|
af9691ff41 | |
|
|
c3e5647c03 | |
|
|
885df6b3fb | |
|
|
da6471df5f | |
|
|
d9827f8800 | |
|
|
1be15d7d9c | |
|
|
ca2b0b22dd | |
|
|
5ff0af430f | |
|
|
35aa781c90 | |
|
|
8ef90b9dcc | |
|
|
a099de0c6f | |
|
|
5391745155 | |
|
|
8f5d5b58b3 | |
|
|
bb5320e6ca | |
|
|
da19ca7a7c | |
|
|
dd3288585c | |
|
|
8f354b54de | |
|
|
a1c03c364a | |
|
|
fce7a9401a | |
|
|
fbeb65428e | |
|
|
8b95f62d39 | |
|
|
941ec9c060 | |
|
|
397db90533 | |
|
|
03030465d9 | |
|
|
b418a892e3 | |
|
|
7ac2f76804 | |
|
|
e9739d2b06 | |
|
|
b714d25150 | |
|
|
0fa87760cb | |
|
|
1aa1eb6159 | |
|
|
cd3ff91f9a | |
|
|
167cc94f18 | |
|
|
d529021b3f | |
|
|
1b19e40be4 | |
|
|
bb02c97c64 | |
|
|
c47eac110a | |
|
|
9fcfc7276a | |
|
|
6baa6973f3 | |
|
|
150eeccd5e | |
|
|
7b3b3aa5f9 | |
|
|
7d62cc1e63 | |
|
|
a15488a708 | |
|
|
48e44814de | |
|
|
06c20ef292 | |
|
|
de516ed210 | |
|
|
e4ddb4561e | |
|
|
b4de6f5e4b | |
|
|
06e69bf5df | |
|
|
f6df4fd0b3 | |
|
|
3de202b987 | |
|
|
c1296f26e0 | |
|
|
f8e1e81546 | |
|
|
863de97270 | |
|
|
f3986290ea | |
|
|
c3bc265ff0 | |
|
|
1fba94d92b | |
|
|
9591ce0cbd | |
|
|
bd54c07e50 | |
|
|
d919a3cc1b | |
|
|
305f585b17 | |
|
|
2f955d4fef | |
|
|
c22080d2fc | |
|
|
e08a79e64d | |
|
|
ba48d186a9 | |
|
|
bbe7b76673 | |
|
|
6f26f3d386 | |
|
|
bb0386e952 | |
|
|
dde61fdeeb | |
|
|
eb26156159 | |
|
|
7707b9853c | |
|
|
d78c726d9b | |
|
|
b85eaaac73 | |
|
|
3adcad3e5e | |
|
|
8cfc221da4 | |
|
|
c2fe9d32f7 | |
|
|
036731202e | |
|
|
e416e74c30 | |
|
|
fd34a000a6 | |
|
|
37840abb98 | |
|
|
83cf184452 | |
|
|
a18c2edf24 | |
|
|
3c9720ee36 | |
|
|
7503ff40de | |
|
|
679b407562 | |
|
|
2661ad7bf0 | |
|
|
8b54dd8b61 | |
|
|
abd2077ede | |
|
|
535d0395e6 | |
|
|
7c25ad1ed7 | |
|
|
5e6ec475df | |
|
|
dc0f146485 | |
|
|
27e32e8f34 | |
|
|
9d3dd2a831 | |
|
|
f11c792c2f | |
|
|
c4aa9e9b02 | |
|
|
bd5002ca32 | |
|
|
0931197137 | |
|
|
9b0eead911 | |
|
|
f03803f113 | |
|
|
056ddc93ca | |
|
|
68e3b4c187 | |
|
|
0cf387f306 | |
|
|
0a5c377ae6 | |
|
|
5c9eeb1956 | |
|
|
5b1697fc17 | |
|
|
cd5ed73602 | |
|
|
3603711d77 | |
|
|
2ef400aefd | |
|
|
a91e2ac547 | |
|
|
1237b94cc4 | |
|
|
d51eb0892b | |
|
|
a07ca55da5 | |
|
|
f056e82740 | |
|
|
0ce6f3c956 | |
|
|
0a75229a43 | |
|
|
3088bb188f | |
|
|
7f7ca70210 | |
|
|
9b0292f3d2 | |
|
|
e21650fe4a | |
|
|
574ec7a5b3 | |
|
|
5f2a6eed09 | |
|
|
1c29addf08 | |
|
|
ca2e72e6f4 | |
|
|
793e5b5e00 | |
|
|
bb0e23354a | |
|
|
d655fa0ba6 | |
|
|
55fa668765 | |
|
|
e8f8e2cfc5 | |
|
|
a2fc7dff1d | |
|
|
3ab848e8c0 | |
|
|
0c48569c71 | |
|
|
355c0e692c | |
|
|
65aeefaea4 | |
|
|
d2294f76f3 | |
|
|
e0c7a8a9b5 | |
|
|
41556744ff | |
|
|
cf22444a64 | |
|
|
bc22ab8cc4 | |
|
|
d6f9b25283 | |
|
|
77f9161408 | |
|
|
b2349060b5 | |
|
|
bb1006aca8 | |
|
|
964865ae63 | |
|
|
3144036ae0 | |
|
|
9106c7fbfe | |
|
|
fe0680f9b1 | |
|
|
42a1625daa | |
|
|
b8b796316e | |
|
|
a4f83539ba | |
|
|
14288772d5 | |
|
|
7c887184ff | |
|
|
aa75be76e7 | |
|
|
96da9967e0 | |
|
|
88b35835b0 | |
|
|
ecc9361b68 | |
|
|
bf84789f64 | |
|
|
43612a5049 | |
|
|
a87bdc997e | |
|
|
da1da92d01 | |
|
|
965b245794 | |
|
|
d77b69b4d5 | |
|
|
f6adc9bdd0 | |
|
|
95faf83337 | |
|
|
18bce0437d | |
|
|
7e4f82f840 | |
|
|
8ea79e56e7 | |
|
|
e58a55df97 | |
|
|
8b59ef881b | |
|
|
b6386ada32 | |
|
|
62039c300a | |
|
|
50125527de | |
|
|
dc22e87fc2 | |
|
|
5b9e82480d | |
|
|
afe511c403 | |
|
|
3f186d90cc | |
|
|
11f250191d | |
|
|
31adc0883a | |
|
|
590e4fb072 | |
|
|
24ecfa16a0 | |
|
|
edf2efb517 | |
|
|
df90b758bb | |
|
|
d49e8e4d2c | |
|
|
93309e17f9 | |
|
|
4e99779bc5 | |
|
|
405a335ffb | |
|
|
a118cd658e | |
|
|
79b0767343 | |
|
|
f121c16931 | |
|
|
c388194721 | |
|
|
106fc33459 | |
|
|
1ada27a5b8 | |
|
|
75e7e9b71b | |
|
|
43d57fce14 | |
|
|
2aae8635db | |
|
|
5e8271ecc6 | |
|
|
eb7645772a | |
|
|
5c9c872c99 | |
|
|
76af096f52 | |
|
|
5ace1902e3 | |
|
|
9203fa0ed9 | |
|
|
ff95ada636 | |
|
|
803b8755b2 | |
|
|
6524cdcd0b | |
|
|
b6e1a2f775 | |
|
|
640b9f3184 | |
|
|
67582a0f90 | |
|
|
fb719cf331 | |
|
|
aecf84c6b6 | |
|
|
eab081e253 | |
|
|
2b22a15bf9 | |
|
|
afaf31c3a2 | |
|
|
257066f4d0 | |
|
|
d9f401f577 | |
|
|
38b02f11d5 | |
|
|
2cd94a93a5 | |
|
|
075cc4824a | |
|
|
8feb150dba | |
|
|
7e5ac499ef | |
|
|
7a33e79f4a | |
|
|
a9b2076fbe | |
|
|
9fc82c02cb | |
|
|
3d4fe6e5c1 | |
|
|
975f0755ea | |
|
|
02aacd2c40 | |
|
|
414c85eef8 | |
|
|
3095bb5a30 | |
|
|
7993e2ad1b | |
|
|
e1cfb7931e | |
|
|
f0bc1cfe33 | |
|
|
014adb461b | |
|
|
f0837e173b | |
|
|
78306a1a68 | |
|
|
57a792dccd | |
|
|
efdc007eb2 | |
|
|
6f1c595b1f | |
|
|
642d4cd8d7 | |
|
|
bb76878156 | |
|
|
58cfa404b7 | |
|
|
cd8d5302ac | |
|
|
4db95658c3 | |
|
|
77ec211020 | |
|
|
91dcc94e82 | |
|
|
7133d4bff1 | |
|
|
8563df387f | |
|
|
c88378a4fe | |
|
|
790d1ff137 | |
|
|
3a14a19800 | |
|
|
5757f2c9ee | |
|
|
6e1d52e6b8 | |
|
|
5d7a124a79 | |
|
|
b7afc086ec | |
|
|
2a41ccfebd | |
|
|
8655c792a3 | |
|
|
c3c1b18358 | |
|
|
9cb1217995 | |
|
|
075dcfd96f | |
|
|
00c4dd374e | |
|
|
9b843bbff0 | |
|
|
cbcc47d47b | |
|
|
7f527aba07 | |
|
|
d562d11528 | |
|
|
cb9c79bf86 | |
|
|
caba7800d1 | |
|
|
15cad2369c | |
|
|
aae7cbdc5a | |
|
|
33354ff5c7 | |
|
|
5cb5f97743 | |
|
|
8f08303a82 | |
|
|
0a33e58b87 | |
|
|
fc5f10acfa | |
|
|
06a6646acb | |
|
|
8f8caaede7 | |
|
|
40f78c3c28 | |
|
|
9e5116b8fb | |
|
|
773ecc96cc | |
|
|
fca029b7df | |
|
|
318953bddf | |
|
|
139867815f | |
|
|
2ad7f5df6d | |
|
|
6b3251ea67 | |
|
|
baed3947d4 | |
|
|
0757245b75 | |
|
|
afdb029a25 | |
|
|
175e88e15a | |
|
|
fab9a6bbc9 | |
|
|
b55e542cbd | |
|
|
37ff548fa8 | |
|
|
b766ad7f27 | |
|
|
42d634dc76 | |
|
|
d627db10a6 | |
|
|
3714dc73f4 | |
|
|
34b8679917 | |
|
|
7fe9ad5c77 | |
|
|
3a0d5fb512 | |
|
|
c81e6482a8 | |
|
|
f44f9636db | |
|
|
fbb254c3db | |
|
|
575db5c918 | |
|
|
6e1ef36821 | |
|
|
ebaf1f909f | |
|
|
f86214f61e | |
|
|
11cc01a79a | |
|
|
adf3ac9aab | |
|
|
9bd77856b8 | |
|
|
e49e2f01ce | |
|
|
56f3135f21 | |
|
|
2765c1d229 | |
|
|
d28a98bbb1 | |
|
|
2f30694ead | |
|
|
3415d57751 | |
|
|
fa596c94a4 | |
|
|
557de4b744 | |
|
|
7db445f825 | |
|
|
23acd611c2 | |
|
|
56c59289d4 | |
|
|
f24847d1c4 | |
|
|
b801b8a5c9 | |
|
|
9af1f46079 | |
|
|
35d097913f | |
|
|
b2426a52f4 | |
|
|
c812dfb58b | |
|
|
bc3e032efc | |
|
|
5d5fbbc83d | |
|
|
e0fe291da0 | |
|
|
7122ecc154 | |
|
|
81fc86fc01 | |
|
|
644bcd5c4c | |
|
|
a1976b2aec | |
|
|
ed836aa41e | |
|
|
75a2f5ffd9 | |
|
|
581c6177cf | |
|
|
5459bca44b | |
|
|
9c68c183f2 | |
|
|
531aad8baa | |
|
|
5c9658334c | |
|
|
3b8309af11 | |
|
|
7b025e490f | |
|
|
c21a6cad4c | |
|
|
d309ffc1cf | |
|
|
fc4f75f30c | |
|
|
949d407604 | |
|
|
6b49a92f76 | |
|
|
71b8767d21 | |
|
|
b498af4cf4 | |
|
|
1134341635 | |
|
|
ab8108e3b7 | |
|
|
7ecfe96381 | |
|
|
b9a0cdf4e7 | |
|
|
2a9798b370 | |
|
|
e186958006 | |
|
|
2c0c8e5a93 | |
|
|
1bd7dc1687 | |
|
|
aa7c618325 | |
|
|
0d8d2aacc7 | |
|
|
bb2232e62d | |
|
|
8ce9643901 | |
|
|
519627b8e5 | |
|
|
a232176717 | |
|
|
c33b5ba2b7 | |
|
|
3ad177e6c1 | |
|
|
ae15319487 | |
|
|
7f2bd7d53a | |
|
|
b9ebdf673e | |
|
|
8ffbcd09f3 | |
|
|
21ca2c4761 | |
|
|
0e39d35a0b | |
|
|
778acbe551 | |
|
|
86d018009e | |
|
|
9ebf0f7bca | |
|
|
afa0b91b15 | |
|
|
28ddb69fe1 | |
|
|
84950065aa | |
|
|
ced8c16a28 | |
|
|
5a8ab2dd8f | |
|
|
1762dabfab | |
|
|
4f32833e30 | |
|
|
4e17e9e920 | |
|
|
183e5d652d | |
|
|
64a95a972e | |
|
|
50a1ed145c | |
|
|
0c9329b119 | |
|
|
095d0d836f | |
|
|
4df5253b64 | |
|
|
1d5506826a | |
|
|
9292dda43f | |
|
|
665bb0e802 | |
|
|
98e7eb725f | |
|
|
20b358f05f | |
|
|
7263dfe15c | |
|
|
c4baf4ad92 | |
|
|
8d81c5f2d7 | |
|
|
99b1c1792e | |
|
|
65cb4fe20c | |
|
|
68c79ca0a3 | |
|
|
5cbc53c7d9 | |
|
|
f914922383 | |
|
|
a36b20dbf6 | |
|
|
5bae14c6f9 | |
|
|
99ceb6e158 | |
|
|
6701e4c36d | |
|
|
d9319e4cf1 | |
|
|
1c0267883b | |
|
|
f03b5ad8bd | |
|
|
6a467f01af | |
|
|
e4aa30bcd6 |
|
|
@ -38,6 +38,9 @@
|
|||
$language = new text;
|
||||
$text = $language->get();
|
||||
|
||||
//create the database connection
|
||||
$database = database::new();
|
||||
|
||||
//action add or update
|
||||
if (!empty($_REQUEST["id"]) && is_uuid($_REQUEST["id"])) {
|
||||
$action = "update";
|
||||
|
|
@ -93,20 +96,17 @@
|
|||
switch ($_POST['action']) {
|
||||
case 'copy':
|
||||
if (permission_exists('access_control_add')) {
|
||||
$obj = new database;
|
||||
$obj->copy($array);
|
||||
$database->copy($array);
|
||||
}
|
||||
break;
|
||||
case 'delete':
|
||||
if (permission_exists('access_control_delete')) {
|
||||
$obj = new database;
|
||||
$obj->delete($array);
|
||||
$database->delete($array);
|
||||
}
|
||||
break;
|
||||
case 'toggle':
|
||||
if (permission_exists('access_control_update')) {
|
||||
$obj = new database;
|
||||
$obj->toggle($array);
|
||||
$database->toggle($array);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -202,7 +202,7 @@
|
|||
//attempt digs
|
||||
if (!empty($digs) && is_array($digs)) {
|
||||
foreach ($digs as $dig) {
|
||||
$response = shell_exec("dig +noall +answer ".$dig['value']." | awk '{ print $5 }'");
|
||||
$response = shell_exec("dig +noall +answer ".escapeshellarg(str_replace(' ', '', $dig['value']))." | awk '{ print $5 }'");
|
||||
if (!empty($response)) {
|
||||
$lines = explode("\n", $response);
|
||||
foreach ($lines as $l => $line) {
|
||||
|
|
@ -217,7 +217,7 @@
|
|||
$array['access_controls'][0]['access_control_nodes'][$y]['access_control_node_uuid'] = uuid();
|
||||
$array['access_controls'][0]['access_control_nodes'][$y]['node_type'] = $dig['type'];
|
||||
$array['access_controls'][0]['access_control_nodes'][$y]['node_cidr'] = $line.'/32';
|
||||
$array['access_controls'][0]['access_control_nodes'][$y]['node_description'] = !empty($dig['description']) ? $dig['description'] : $dig['value'];
|
||||
$array['access_controls'][0]['access_control_nodes'][$y]['node_description'] = !empty($dig['description']) ? $dig['description'] : str_replace(' ', '', $dig['value']);
|
||||
$y++;
|
||||
}
|
||||
}
|
||||
|
|
@ -229,7 +229,6 @@
|
|||
|
||||
//save the data
|
||||
if (is_array($array)) {
|
||||
$database = new database;
|
||||
$database->app_name = 'access controls';
|
||||
$database->app_uuid = '1416a250-f6e1-4edc-91a6-5c9b883638fd';
|
||||
$database->save($array);
|
||||
|
|
@ -266,7 +265,7 @@
|
|||
$sql = "select * from v_access_controls ";
|
||||
$sql .= "where access_control_uuid = :access_control_uuid ";
|
||||
$parameters['access_control_uuid'] = $access_control_uuid;
|
||||
$database = new database;
|
||||
|
||||
$row = $database->select($sql, $parameters, 'row');
|
||||
if (!empty($row) && count($row) > 0) {
|
||||
$access_control_name = $row["access_control_name"];
|
||||
|
|
@ -282,7 +281,6 @@
|
|||
$sql .= "where access_control_uuid = :access_control_uuid ";
|
||||
$sql .= "order by node_cidr asc";
|
||||
$parameters['access_control_uuid'] = $access_control_uuid;
|
||||
$database = new database;
|
||||
$access_control_nodes = $database->select($sql, $parameters, 'all');
|
||||
unset ($sql, $parameters);
|
||||
}
|
||||
|
|
@ -326,6 +324,9 @@
|
|||
if (permission_exists('access_control_node_add')) {
|
||||
echo button::create(['type'=>'button','label'=>$text['button-import'],'icon'=>$_SESSION['theme']['button_icon_import'],'style'=>'margin-right: 3px;','link'=>'access_control_import.php?id='.escape($access_control_uuid)]);
|
||||
}
|
||||
if (permission_exists('access_control_node_view')) {
|
||||
echo button::create(['type'=>'button','label'=>$text['button-export'],'icon'=>$_SESSION['theme']['button_icon_export'],'style'=>'margin-right: 3px;','link'=>'access_control_export.php?id='.escape($access_control_uuid)]);
|
||||
}
|
||||
if (permission_exists('access_control_node_add')) {
|
||||
echo button::create(['type'=>'button','label'=>$text['button-copy'],'icon'=>$_SESSION['theme']['button_icon_copy'],'id'=>'btn_copy','name'=>'btn_copy','style'=>'display: none;','onclick'=>"modal_open('modal-copy','btn_copy');"]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,185 @@
|
|||
<?php
|
||||
/*
|
||||
FusionPBX
|
||||
Version: MPL 1.1
|
||||
|
||||
The contents of this file are subject to the Mozilla Public License Version
|
||||
1.1 (the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
http://www.mozilla.org/MPL/
|
||||
|
||||
Software distributed under the License is distributed on an "AS IS" basis,
|
||||
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
for the specific language governing rights and limitations under the
|
||||
License.
|
||||
|
||||
The Original Code is FusionPBX
|
||||
|
||||
The Initial Developer of the Original Code is
|
||||
Mark J Crane <markjcrane@fusionpbx.com>
|
||||
Portions created by the Initial Developer are Copyright (C) 2008-2024
|
||||
the Initial Developer. All Rights Reserved.
|
||||
|
||||
Contributor(s):
|
||||
Mark J Crane <markjcrane@fusionpbx.com>
|
||||
*/
|
||||
|
||||
//includes files
|
||||
require_once dirname(__DIR__, 2) . "/resources/require.php";
|
||||
require_once "resources/check_auth.php";
|
||||
require_once "resources/paging.php";
|
||||
|
||||
//check permissions
|
||||
if (permission_exists('access_control_node_view')) {
|
||||
//access granted
|
||||
}
|
||||
else {
|
||||
echo "access denied";
|
||||
exit;
|
||||
}
|
||||
|
||||
//initialize the database object
|
||||
$database = new database;
|
||||
|
||||
//add multi-lingual support
|
||||
$language = new text;
|
||||
$text = $language->get();
|
||||
|
||||
//define available columns
|
||||
$available_columns[] = 'node_type';
|
||||
$available_columns[] = 'node_cidr';
|
||||
$available_columns[] = 'node_description';
|
||||
$available_columns[] = 'insert_date';
|
||||
$available_columns[] = 'insert_user';
|
||||
$available_columns[] = 'update_date';
|
||||
$available_columns[] = 'update_user';
|
||||
|
||||
//action add or update
|
||||
if (!empty($_REQUEST["id"]) && is_uuid($_REQUEST["id"])) {
|
||||
$access_control_uuid = $_REQUEST["id"];
|
||||
}
|
||||
|
||||
//define the functions
|
||||
function array2csv(array &$array) {
|
||||
if (count($array) == 0) {
|
||||
return null;
|
||||
}
|
||||
ob_start();
|
||||
$df = fopen("php://output", 'w');
|
||||
fputcsv($df, array_keys(reset($array)));
|
||||
foreach ($array as $row) {
|
||||
fputcsv($df, $row);
|
||||
}
|
||||
fclose($df);
|
||||
return ob_get_clean();
|
||||
}
|
||||
|
||||
//send download headers
|
||||
function download_send_headers($filename) {
|
||||
// disable caching
|
||||
$now = gmdate("D, d M Y H:i:s");
|
||||
header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
|
||||
header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate");
|
||||
header("Last-Modified: {$now} GMT");
|
||||
|
||||
// force download
|
||||
header("Content-Type: application/force-download");
|
||||
header("Content-Type: application/octet-stream");
|
||||
header("Content-Type: application/download");
|
||||
|
||||
// disposition / encoding on response body
|
||||
header("Content-Disposition: attachment;filename={$filename}");
|
||||
header("Content-Transfer-Encoding: binary");
|
||||
}
|
||||
|
||||
//get the extensions from the database and send them as output
|
||||
if (!empty($_REQUEST["column_group"]) && is_array($_REQUEST["column_group"]) && @sizeof($_REQUEST["column_group"]) != 0) {
|
||||
|
||||
//validate the token
|
||||
$token = new token;
|
||||
if (!$token->validate($_SERVER['PHP_SELF'])) {
|
||||
message::add($text['message-invalid_token'],'negative');
|
||||
header('Location: access_control_export.php');
|
||||
exit;
|
||||
}
|
||||
|
||||
//validate submitted columns
|
||||
foreach ($_REQUEST["column_group"] as $column_name) {
|
||||
if (in_array($column_name, $available_columns)) {
|
||||
$selected_columns[] = $column_name;
|
||||
}
|
||||
}
|
||||
if (!empty($access_control_uuid) && is_uuid($access_control_uuid) && is_array($selected_columns) && @sizeof($selected_columns) != 0) {
|
||||
//get the child data
|
||||
$sql = "select ".implode(', ', $selected_columns)." from v_access_control_nodes ";
|
||||
$sql .= "where access_control_uuid = :access_control_uuid ";
|
||||
$sql .= "order by node_cidr asc";
|
||||
$parameters['access_control_uuid'] = $access_control_uuid;
|
||||
$access_control_nodes = $database->select($sql, $parameters, 'all');
|
||||
unset($sql, $parameters, $selected_columns);
|
||||
|
||||
//send the download headers
|
||||
download_send_headers("access_control_export_".date("Y-m-d").".csv");
|
||||
|
||||
//output the data
|
||||
echo array2csv($access_control_nodes);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
//create token
|
||||
$object = new token;
|
||||
$token = $object->create($_SERVER['PHP_SELF']);
|
||||
|
||||
//include the header
|
||||
$document['title'] = $text['title-access_control_export'];
|
||||
require_once "resources/header.php";
|
||||
|
||||
//show the content
|
||||
echo "<form method='post' name='frm' id='frm'>\n";
|
||||
|
||||
echo "<div class='action_bar' id='action_bar'>\n";
|
||||
echo " <div class='heading'><b>".$text['header-access_control_export']."</b></div>\n";
|
||||
echo " <div class='actions'>\n";
|
||||
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','link'=>'access_control_edit.php?id='.$access_control_uuid]);
|
||||
echo button::create(['type'=>'submit','label'=>$text['button-export'],'icon'=>$_SESSION['theme']['button_icon_export'],'id'=>'btn_save','style'=>'margin-left: 15px;']);
|
||||
echo " </div>\n";
|
||||
echo " <div style='clear: both;'></div>\n";
|
||||
echo "</div>\n";
|
||||
|
||||
echo $text['description-access_control_export'];
|
||||
echo "<br /><br />\n";
|
||||
|
||||
echo "<div class='card'>\n";
|
||||
echo "<table class='list'>\n";
|
||||
echo "<tr class='list-header'>\n";
|
||||
echo " <th class='checkbox'>\n";
|
||||
echo " <input type='checkbox' id='checkbox_all' name='checkbox_all' onclick='list_all_toggle();' ".(empty($available_columns) ? "style='visibility: hidden;'" : null).">\n";
|
||||
echo " </th>\n";
|
||||
echo " <th>".$text['label-column_name']."</th>\n";
|
||||
echo "</tr>\n";
|
||||
|
||||
if (!empty($available_columns) && is_array($available_columns) && @sizeof($available_columns) != 0) {
|
||||
$x = 0;
|
||||
foreach ($available_columns as $column_name) {
|
||||
$list_row_onclick = "if (!this.checked) { document.getElementById('checkbox_all').checked = false; }";
|
||||
echo "<tr class='list-row'>\n";
|
||||
echo " <td class='checkbox'>\n";
|
||||
echo " <input type='checkbox' name='column_group[]' id='checkbox_".$x."' value=\"".$column_name."\" onclick=\"".$list_row_onclick."\">\n";
|
||||
echo " </td>\n";
|
||||
echo " <td onclick=\"document.getElementById('checkbox_".$x."').checked = document.getElementById('checkbox_".$x."').checked ? false : true; ".$list_row_onclick."\">".$column_name."</td>";
|
||||
echo "</tr>";
|
||||
$x++;
|
||||
}
|
||||
}
|
||||
|
||||
echo "</table>\n";
|
||||
echo "</div>\n";
|
||||
echo "<br />\n";
|
||||
echo "<input type='hidden' name='".$token['name']."' value='".$token['hash']."'>\n";
|
||||
echo "</form>\n";
|
||||
|
||||
//include the footer
|
||||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
|
|
@ -211,8 +211,12 @@
|
|||
if (!empty($access_controls) && count($access_controls) > 0) {
|
||||
$x = 0;
|
||||
foreach ($access_controls as $row) {
|
||||
$list_row_url = '';
|
||||
if (permission_exists('access_control_edit')) {
|
||||
$list_row_url = "access_control_edit.php?id=".urlencode($row['access_control_uuid']);
|
||||
if ($row['domain_uuid'] != $_SESSION['domain_uuid'] && permission_exists('domain_select')) {
|
||||
$list_row_url .= '&domain_uuid='.urlencode($row['domain_uuid']).'&domain_change=true';
|
||||
}
|
||||
}
|
||||
echo "<tr class='list-row' href='".$list_row_url."'>\n";
|
||||
if (permission_exists('access_control_add') || permission_exists('access_control_edit') || permission_exists('access_control_delete')) {
|
||||
|
|
@ -254,3 +258,4 @@
|
|||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -55,7 +55,6 @@
|
|||
$y++;
|
||||
$apps[$x]['permissions'][$y]['name'] = "access_control_node_delete";
|
||||
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
|
||||
$y++;
|
||||
|
||||
//cache details
|
||||
$apps[$x]['cache']['key'] = "configuration.acl.conf";
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
if ($num_rows == 0) {
|
||||
|
||||
//set the directory
|
||||
$xml_dir = $setting->get('switch','conf').'/autoload_configs';
|
||||
$xml_dir = $settings->get('switch','conf').'/autoload_configs';
|
||||
$xml_file = $xml_dir."/acl.conf.xml";
|
||||
$xml_file_alt = $_SERVER["DOCUMENT_ROOT"].'/'.PROJECT_PATH.'/app/switch/resources/conf/autoload_configs/acl.conf';
|
||||
|
||||
|
|
@ -74,7 +74,7 @@
|
|||
$array['access_controls'][0]['access_control_name'] = $access_control_name;
|
||||
$array['access_controls'][0]['access_control_default'] = $access_control_default;
|
||||
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('access_control_add', 'temp');
|
||||
|
||||
$database->app_name = 'access_controls';
|
||||
|
|
@ -106,7 +106,7 @@
|
|||
$array['access_control_nodes'][0]['node_cidr'] = $node_cidr;
|
||||
$array['access_control_nodes'][0]['node_description'] = $node_description;
|
||||
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('access_control_node_add', 'temp');
|
||||
|
||||
$database->app_name = 'access_controls';
|
||||
|
|
|
|||
|
|
@ -108,32 +108,59 @@ $text['title-access_control']['zh-cn'] = "访问控制";
|
|||
$text['title-access_control']['ja-jp'] = "アクセス制御";
|
||||
$text['title-access_control']['ko-kr'] = "액세스 제어";
|
||||
|
||||
$text['title_description-access_controls']['en-us'] = "Access control list can allow or deny ranges of IP addresses.";
|
||||
$text['title_description-access_controls']['en-gb'] = "Access control list can allow or deny ranges of IP addresses.";
|
||||
$text['title_description-access_controls']['ar-eg'] = "قائمة التحكم بالوصول يمكن السماح أو الرفض نطاقات العناوين.";
|
||||
$text['title_description-access_controls']['de-at'] = "Die Zugriffskontrollliste kann Bereiche von IP Adressen zulassen oder ablehnen.";
|
||||
$text['title_description-access_controls']['de-ch'] = "Die Zugriffskontrollliste kann Bereiche von IP Adressen zulassen oder ablehnen.";
|
||||
$text['title_description-access_controls']['de-de'] = "Die Zugriffskontrollliste kann Bereiche von IP Adressen zulassen oder ablehnen.";
|
||||
$text['title_description-access_controls']['el-gr'] = "Access control list can allow or deny ranges of IP addresses";
|
||||
$text['title_description-access_controls']['es-cl'] = "Lista de control de acceso puede permitir o denegar los rangos de direcciones IP.";
|
||||
$text['title_description-access_controls']['es-mx'] = "Lista de control de acceso puede permitir o denegar los rangos de direcciones IP.";
|
||||
$text['title_description-access_controls']['fr-ca'] = "Liste de contrôle d'accès peut autoriser ou refuser des plages d'adresses IP.";
|
||||
$text['title_description-access_controls']['fr-fr'] = "Liste de contrôle d'accès peut autoriser ou refuser des plages d'adresses IP.";
|
||||
$text['title_description-access_controls']['he-il'] = " רשימת בקרת גישה יכולה לאפשר או למנוע טווחים של כתובות IP.";
|
||||
$text['title_description-access_controls']['it-it'] = "Le liste per il controllo di accesso permettono o negano l'accesso a range di IP.";
|
||||
$text['title_description-access_controls']['ka-ge'] = "წვდომის კონტროლის სიას IP მისამართების შუალედების დაშვება ან აკრძალვა შეუძლია";
|
||||
$text['title_description-access_controls']['nl-nl'] = "Toegang Controle lijst kan IP adres reeks toestaan of verbieden.";
|
||||
$text['title_description-access_controls']['pl-pl'] = "Lista kontroli dostępu może umożliwić lub zablokować zakresy adresów IP.";
|
||||
$text['title_description-access_controls']['pt-br'] = "Lista de controle de acesso pode permitir ou negar intervalos de endereços IP.";
|
||||
$text['title_description-access_controls']['pt-pt'] = "Lista de controle de acesso pode permitir ou negar intervalos de endereços IP.";
|
||||
$text['title_description-access_controls']['ro-ro'] = "Lista de control al accesului poate permite sau refuza intervale de adrese IP.";
|
||||
$text['title_description-access_controls']['ru-ru'] = "Контроль доступа может разрешить или запретить диапазоны IP адресов.";
|
||||
$text['title_description-access_controls']['sv-se'] = "Åtkomstkontrollista kan tillåta eller neka intervall av IP-adresser.";
|
||||
$text['title_description-access_controls']['uk-ua'] = "Список контролю доступу може дозволити або заборонити діапазони IP-адрес.";
|
||||
$text['title_description-access_controls']['tr-tr'] = "Erişim kontrol listesi IP adres aralıklarına izin verebilir veya reddedebilir.";
|
||||
$text['title_description-access_controls']['zh-cn'] = "访问控制列表可以允许或拒绝 IP 地址范围。";
|
||||
$text['title_description-access_controls']['ja-jp'] = "アクセス コントロール リストでは、IP アドレスの範囲を許可または拒否できます。";
|
||||
$text['title_description-access_controls']['ko-kr'] = "액세스 제어 목록은 IP 주소 범위를 허용하거나 거부할 수 있습니다.";
|
||||
$text['title-access_control_export']['en-us'] = "Access Control Export";
|
||||
$text['title-access_control_export']['en-gb'] = "Access Control Export";
|
||||
$text['title-access_control_export']['ar-eg'] = "";
|
||||
$text['title-access_control_export']['de-at'] = "";
|
||||
$text['title-access_control_export']['de-ch'] = "";
|
||||
$text['title-access_control_export']['de-de'] = "";
|
||||
$text['title-access_control_export']['ek-gr'] = "";
|
||||
$text['title-access_control_export']['es-cl'] = "";
|
||||
$text['title-access_control_export']['es-mx'] = "";
|
||||
$text['title-access_control_export']['fr-ca'] = "";
|
||||
$text['title-access_control_export']['fr-fr'] = "";
|
||||
$text['title-access_control_export']['he-il'] = "";
|
||||
$text['title-access_control_export']['it-it'] = "";
|
||||
$text['title-access_control_export']['ka-ge'] = "";
|
||||
$text['title-access_control_export']['nl-nl'] = "";
|
||||
$text['title-access_control_export']['pl-pl'] = "";
|
||||
$text['title-access_control_export']['pt-br'] = "";
|
||||
$text['title-access_control_export']['pt-pt'] = "";
|
||||
$text['title-access_control_export']['ro-ro'] = "";
|
||||
$text['title-access_control_export']['ru-ru'] = "";
|
||||
$text['title-access_control_export']['sv-se'] = "";
|
||||
$text['title-access_control_export']['uk-ua'] = "";
|
||||
$text['title-access_control_export']['tr-tr'] = "";
|
||||
$text['title-access_control_export']['zh-cn'] = "";
|
||||
$text['title-access_control_export']['ja-jp'] = "";
|
||||
$text['title-access_control_export']['ko-kr'] = "";
|
||||
|
||||
$text['header-access_control_export']['en-us'] = "Access Control Export";
|
||||
$text['header-access_control_export']['en-gb'] = "Access Control Export";
|
||||
$text['header-access_control_export']['ar-eg'] = "";
|
||||
$text['header-access_control_export']['de-at'] = "";
|
||||
$text['header-access_control_export']['de-ch'] = "";
|
||||
$text['header-access_control_export']['de-de'] = "";
|
||||
$text['header-access_control_export']['ek-gr'] = "";
|
||||
$text['header-access_control_export']['es-cl'] = "";
|
||||
$text['header-access_control_export']['es-mx'] = "";
|
||||
$text['header-access_control_export']['fr-ca'] = "";
|
||||
$text['header-access_control_export']['fr-fr'] = "";
|
||||
$text['header-access_control_export']['he-il'] = "";
|
||||
$text['header-access_control_export']['it-it'] = "";
|
||||
$text['header-access_control_export']['ka-ge'] = "";
|
||||
$text['header-access_control_export']['nl-nl'] = "";
|
||||
$text['header-access_control_export']['pl-pl'] = "";
|
||||
$text['header-access_control_export']['pt-br'] = "";
|
||||
$text['header-access_control_export']['pt-pt'] = "";
|
||||
$text['header-access_control_export']['ro-ro'] = "";
|
||||
$text['header-access_control_export']['ru-ru'] = "";
|
||||
$text['header-access_control_export']['sv-se'] = "";
|
||||
$text['header-access_control_export']['uk-ua'] = "";
|
||||
$text['header-access_control_export']['tr-tr'] = "";
|
||||
$text['header-access_control_export']['zh-cn'] = "";
|
||||
$text['header-access_control_export']['ja-jp'] = "";
|
||||
$text['header-access_control_export']['ko-kr'] = "";
|
||||
|
||||
$text['label-node_type']['en-us'] = "Type";
|
||||
$text['label-node_type']['en-gb'] = "Type";
|
||||
|
|
@ -405,6 +432,33 @@ $text['label-access_control_description']['zh-cn'] = "描述";
|
|||
$text['label-access_control_description']['ja-jp'] = "説明";
|
||||
$text['label-access_control_description']['ko-kr'] = "설명";
|
||||
|
||||
$text['title_description-access_controls']['en-us'] = "Access control list can allow or deny ranges of IP addresses.";
|
||||
$text['title_description-access_controls']['en-gb'] = "Access control list can allow or deny ranges of IP addresses.";
|
||||
$text['title_description-access_controls']['ar-eg'] = "قائمة التحكم بالوصول يمكن السماح أو الرفض نطاقات العناوين.";
|
||||
$text['title_description-access_controls']['de-at'] = "Die Zugriffskontrollliste kann Bereiche von IP Adressen zulassen oder ablehnen.";
|
||||
$text['title_description-access_controls']['de-ch'] = "Die Zugriffskontrollliste kann Bereiche von IP Adressen zulassen oder ablehnen.";
|
||||
$text['title_description-access_controls']['de-de'] = "Die Zugriffskontrollliste kann Bereiche von IP Adressen zulassen oder ablehnen.";
|
||||
$text['title_description-access_controls']['el-gr'] = "Access control list can allow or deny ranges of IP addresses";
|
||||
$text['title_description-access_controls']['es-cl'] = "Lista de control de acceso puede permitir o denegar los rangos de direcciones IP.";
|
||||
$text['title_description-access_controls']['es-mx'] = "Lista de control de acceso puede permitir o denegar los rangos de direcciones IP.";
|
||||
$text['title_description-access_controls']['fr-ca'] = "Liste de contrôle d'accès peut autoriser ou refuser des plages d'adresses IP.";
|
||||
$text['title_description-access_controls']['fr-fr'] = "Liste de contrôle d'accès peut autoriser ou refuser des plages d'adresses IP.";
|
||||
$text['title_description-access_controls']['he-il'] = " רשימת בקרת גישה יכולה לאפשר או למנוע טווחים של כתובות IP.";
|
||||
$text['title_description-access_controls']['it-it'] = "Le liste per il controllo di accesso permettono o negano l'accesso a range di IP.";
|
||||
$text['title_description-access_controls']['ka-ge'] = "წვდომის კონტროლის სიას IP მისამართების შუალედების დაშვება ან აკრძალვა შეუძლია";
|
||||
$text['title_description-access_controls']['nl-nl'] = "Toegang Controle lijst kan IP adres reeks toestaan of verbieden.";
|
||||
$text['title_description-access_controls']['pl-pl'] = "Lista kontroli dostępu może umożliwić lub zablokować zakresy adresów IP.";
|
||||
$text['title_description-access_controls']['pt-br'] = "Lista de controle de acesso pode permitir ou negar intervalos de endereços IP.";
|
||||
$text['title_description-access_controls']['pt-pt'] = "Lista de controle de acesso pode permitir ou negar intervalos de endereços IP.";
|
||||
$text['title_description-access_controls']['ro-ro'] = "Lista de control al accesului poate permite sau refuza intervale de adrese IP.";
|
||||
$text['title_description-access_controls']['ru-ru'] = "Контроль доступа может разрешить или запретить диапазоны IP адресов.";
|
||||
$text['title_description-access_controls']['sv-se'] = "Åtkomstkontrollista kan tillåta eller neka intervall av IP-adresser.";
|
||||
$text['title_description-access_controls']['uk-ua'] = "Список контролю доступу може дозволити або заборонити діапазони IP-адрес.";
|
||||
$text['title_description-access_controls']['tr-tr'] = "Erişim kontrol listesi IP adres aralıklarına izin verebilir veya reddedebilir.";
|
||||
$text['title_description-access_controls']['zh-cn'] = "访问控制列表可以允许或拒绝 IP 地址范围。";
|
||||
$text['title_description-access_controls']['ja-jp'] = "アクセス コントロール リストでは、IP アドレスの範囲を許可または拒否できます。";
|
||||
$text['title_description-access_controls']['ko-kr'] = "액세스 제어 목록은 IP 주소 범위를 허용하거나 거부할 수 있습니다.";
|
||||
|
||||
$text['description-node_type']['en-us'] = "Select the type.";
|
||||
$text['description-node_type']['en-gb'] = "Select the type.";
|
||||
$text['description-node_type']['ar-eg'] = "حدد نوع.";
|
||||
|
|
@ -594,4 +648,31 @@ $text['description-access_control_default']['zh-cn'] = "选择默认类型。";
|
|||
$text['description-access_control_default']['ja-jp'] = "デフォルトのタイプを選択します。";
|
||||
$text['description-access_control_default']['ko-kr'] = "기본 유형을 선택합니다.";
|
||||
|
||||
$text['description-access_control_export']['en-us'] = "Select the fields you wish to include in the export.";
|
||||
$text['description-access_control_export']['en-gb'] = "Select the fields you wish to include in the export.";
|
||||
$text['description-access_control_export']['ar-eg'] = "حدد الحقول التي ترغب في تضمينها في التصدير.";
|
||||
$text['description-access_control_export']['de-at'] = "Wählen Sie die Felder aus, die Sie in den Export einbeziehen möchten.";
|
||||
$text['description-access_control_export']['de-ch'] = "Wählen Sie die Felder aus, die Sie in den Export einbeziehen möchten.";
|
||||
$text['description-access_control_export']['de-de'] = "Wählen Sie die Felder aus, die Sie in den Export einbeziehen möchten.";
|
||||
$text['description-access_control_export']['ek-gr'] = "Επιλέξτε τα πεδία που θέλετε να συμπεριλάβετε στην εξαγωγή.";
|
||||
$text['description-access_control_export']['es-cl'] = "Seleccione los campos que desea incluir en la exportación.";
|
||||
$text['description-access_control_export']['es-mx'] = "Seleccione los campos que desea incluir en la exportación.";
|
||||
$text['description-access_control_export']['fr-ca'] = "Sélectionnez les champs que vous souhaitez inclure dans l'exportation.";
|
||||
$text['description-access_control_export']['fr-fr'] = "Sélectionnez les champs que vous souhaitez inclure dans l'exportation.";
|
||||
$text['description-access_control_export']['he-il'] = "בחר את השדות שברצונך לכלול בייצוא.";
|
||||
$text['description-access_control_export']['it-it'] = "Seleziona i campi che desideri includere nell'esportazione.";
|
||||
$text['description-access_control_export']['ka-ge'] = "აირჩიეთ ექსპორტში ჩასასმელი ველები.";
|
||||
$text['description-access_control_export']['nl-nl'] = "Selecteer de velden die u in de export wilt opnemen.";
|
||||
$text['description-access_control_export']['pl-pl'] = "Wybierz pola, które chcesz uwzględnić w eksporcie.";
|
||||
$text['description-access_control_export']['pt-br'] = "Selecione os campos que deseja incluir na exportação.";
|
||||
$text['description-access_control_export']['pt-pt'] = "Selecione os campos que deseja incluir na exportação.";
|
||||
$text['description-access_control_export']['ro-ro'] = "Selectați câmpurile pe care doriți să le includeți în export.";
|
||||
$text['description-access_control_export']['ru-ru'] = "Выберите поля, которые вы хотите включить в экспорт.";
|
||||
$text['description-access_control_export']['sv-se'] = "Välj de fält du vill inkludera i exporten.";
|
||||
$text['description-access_control_export']['uk-ua'] = "Виберіть поля, які потрібно включити в експорт.";
|
||||
$text['description-access_control_export']['tr-tr'] = "Dışa aktarmaya dahil etmek istediğiniz alanları seçin.";
|
||||
$text['description-access_control_export']['zh-cn'] = "选择您希望包含在导出中的字段。";
|
||||
$text['description-access_control_export']['ja-jp'] = "エクスポートに含めるフィールドを選択します。";
|
||||
$text['description-access_control_export']['ko-kr'] = "내보내기에 포함할 필드를 선택합니다.";
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -2,11 +2,7 @@
|
|||
|
||||
/**
|
||||
* access controls class
|
||||
*
|
||||
* @method null download
|
||||
*/
|
||||
if (!class_exists('access_controls')) {
|
||||
|
||||
class access_controls {
|
||||
|
||||
/**
|
||||
|
|
@ -69,7 +65,7 @@ if (!class_exists('access_controls')) {
|
|||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('access_control_node_delete', 'temp');
|
||||
|
||||
//execute delete
|
||||
|
|
@ -236,7 +232,7 @@ if (!class_exists('access_controls')) {
|
|||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('access_control_node_add', 'temp');
|
||||
|
||||
//save the array
|
||||
|
|
@ -264,6 +260,3 @@ if (!class_exists('access_controls')) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -192,5 +192,13 @@
|
|||
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_description'] = "";
|
||||
$y++;
|
||||
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "4f4641c3-7398-421e-a0b3-5d7960813728";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "avaya_blf_subscription_expiry";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_value'] = "60";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_description'] = "The expiry that Avaya phones will populate in their SUBSCRIBE messages. This should be set to equal or less than the nonce-ttl value that is set in your SIP profile.";
|
||||
$y++;
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@
|
|||
//update the status
|
||||
if (permission_exists("user_setting_edit")) {
|
||||
//add the user_edit permission
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add("user_edit", "temp");
|
||||
|
||||
//update the database user_status
|
||||
|
|
@ -153,7 +153,7 @@
|
|||
}
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('extension_edit', 'temp');
|
||||
|
||||
//execute update
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@
|
|||
/**
|
||||
* Define the operator_panel class
|
||||
*/
|
||||
if (!class_exists('basic_operator_panel')) {
|
||||
class basic_operator_panel {
|
||||
|
||||
/**
|
||||
|
|
@ -245,6 +244,3 @@ if (!class_exists('basic_operator_panel')) {
|
|||
return $result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -353,7 +353,7 @@ if (is_array($activity)) {
|
|||
}
|
||||
else {
|
||||
//unregistered extension
|
||||
if (!empty($_SESSION['operator_panel']['show_unregistered']['boolean']) && $_SESSION['operator_panel']['show_unregistered']['boolean'] == 'true') {
|
||||
if (filter_var($_SESSION['operator_panel']['show_unregistered']['boolean'] ?? false, FILTER_VALIDATE_BOOL)) {
|
||||
$css_class = "ur_ext";
|
||||
}
|
||||
else {
|
||||
|
|
@ -551,7 +551,7 @@ if (is_array($activity)) {
|
|||
|
||||
if (in_array($extension, $_SESSION['user']['extensions'])) {
|
||||
$user_extensions[] = $block;
|
||||
} elseif (!empty($ext['call_group']) && filter_var($_SESSION['operator_panel']['group_extensions']['boolean'], FILTER_VALIDATE_BOOLEAN)) {
|
||||
} elseif (!empty($ext['call_group']) && filter_var($_SESSION['operator_panel']['group_extensions']['boolean'] ?? false, FILTER_VALIDATE_BOOLEAN)) {
|
||||
$grouped_extensions[$ext['call_group']][] = $block;
|
||||
} else {
|
||||
$other_extensions[] = $block;
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
$show = $_GET["show"] ?? '';
|
||||
|
||||
//set from session variables
|
||||
$list_row_edit_button = !empty($_SESSION['theme']['list_row_edit_button']['boolean']) ? $_SESSION['theme']['list_row_edit_button']['boolean'] : 'false';
|
||||
$list_row_edit_button = filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL);
|
||||
|
||||
//get the http post data
|
||||
if (!empty($_POST['bridges'])) {
|
||||
|
|
@ -126,7 +126,7 @@
|
|||
$offset = $rows_per_page * $page;
|
||||
|
||||
//get the list
|
||||
$sql = "select b.bridge_uuid, d.domain_name, b.bridge_name, b.bridge_destination, bridge_enabled, bridge_description ";
|
||||
$sql = "select d.domain_uuid, b.bridge_uuid, d.domain_name, b.bridge_name, b.bridge_destination, bridge_enabled, bridge_description ";
|
||||
$sql .= "from v_bridges as b, v_domains as d ";
|
||||
$sql .= "where b.domain_uuid = d.domain_uuid ";
|
||||
if (!empty($show) && $show == "all" && permission_exists('bridge_all')) {
|
||||
|
|
@ -226,7 +226,7 @@
|
|||
echo th_order_by('bridge_destination', $text['label-bridge_destination'], $order_by, $order);
|
||||
echo th_order_by('bridge_enabled', $text['label-bridge_enabled'], $order_by, $order, null, "class='center'");
|
||||
echo " <th class='hide-sm-dn'>".$text['label-bridge_description']."</th>\n";
|
||||
if (permission_exists('bridge_edit') && !empty($list_row_edit_button) && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('bridge_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -234,8 +234,12 @@
|
|||
if (!empty($bridges)) {
|
||||
$x = 0;
|
||||
foreach ($bridges as $row) {
|
||||
$list_row_url = '';
|
||||
if (permission_exists('bridge_edit')) {
|
||||
$list_row_url = "bridge_edit.php?id=".urlencode($row['bridge_uuid']);
|
||||
if ($row['domain_uuid'] != $_SESSION['domain_uuid'] && permission_exists('domain_select')) {
|
||||
$list_row_url .= '&domain_uuid='.urlencode($row['domain_uuid']).'&domain_change=true';
|
||||
}
|
||||
}
|
||||
echo "<tr class='list-row' href='".$list_row_url."'>\n";
|
||||
if (permission_exists('bridge_add') || permission_exists('bridge_edit') || permission_exists('bridge_delete')) {
|
||||
|
|
@ -266,7 +270,7 @@
|
|||
}
|
||||
echo " </td>\n";
|
||||
echo " <td class='description overflow hide-sm-dn'>".escape($row['bridge_description'])."</td>\n";
|
||||
if (permission_exists('bridge_edit') && !empty($list_row_edit_button) && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('bridge_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'>\n";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@
|
|||
*/
|
||||
|
||||
//define the bridges class
|
||||
if (!class_exists('bridges')) {
|
||||
class bridges {
|
||||
|
||||
/**
|
||||
|
|
@ -255,6 +254,3 @@ if (!class_exists('bridges')) {
|
|||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
@ -46,7 +46,7 @@
|
|||
$show = $_GET["show"] ?? '';
|
||||
|
||||
//set from session variables
|
||||
$list_row_edit_button = !empty($_SESSION['theme']['list_row_edit_button']['boolean']) ? $_SESSION['theme']['list_row_edit_button']['boolean'] : 'false';
|
||||
$list_row_edit_button = filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL);
|
||||
|
||||
//get posted data
|
||||
if (!empty($_POST['call_blocks'])) {
|
||||
|
|
@ -301,7 +301,7 @@
|
|||
echo th_order_by('call_block_enabled', $text['label-enabled'], $order_by, $order, null, "class='center'");
|
||||
echo th_order_by('insert_date', $text['label-date-added'], $order_by, $order, null, "class='shrink no-wrap'");
|
||||
echo "<th class='hide-md-dn pct-20'>".$text['label-description']."</th>\n";
|
||||
if (permission_exists('call_block_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('call_block_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -309,8 +309,12 @@
|
|||
if (!empty($result)) {
|
||||
$x = 0;
|
||||
foreach ($result as $row) {
|
||||
$list_row_url = '';
|
||||
if (permission_exists('call_block_edit')) {
|
||||
$list_row_url = "call_block_edit.php?id=".urlencode($row['call_block_uuid']);
|
||||
if ($row['domain_uuid'] != $_SESSION['domain_uuid'] && permission_exists('domain_select')) {
|
||||
$list_row_url .= '&domain_uuid='.urlencode($row['domain_uuid']).'&domain_change=true';
|
||||
}
|
||||
}
|
||||
echo "<tr class='list-row' href='".$list_row_url."'>\n";
|
||||
if (permission_exists('call_block_add') || permission_exists('call_block_edit') || permission_exists('call_block_delete')) {
|
||||
|
|
@ -381,7 +385,7 @@
|
|||
echo " </td>\n";
|
||||
echo " <td class='no-wrap'>".$row['date_formatted']." <span class='hide-sm-dn'>".$row['time_formatted']."</span></td>\n";
|
||||
echo " <td class='description overflow hide-md-dn'>".escape($row['call_block_description'])."</td>\n";
|
||||
if (permission_exists('call_block_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('call_block_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'>";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
@ -405,3 +409,4 @@
|
|||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
The Initial Developer of the Original Code is
|
||||
Mark J Crane <markjcrane@fusionpbx.com>
|
||||
Portions created by the Initial Developer are Copyright (C) 2008-2024
|
||||
Portions created by the Initial Developer are Copyright (C) 2008-2025
|
||||
the Initial Developer. All Rights Reserved.
|
||||
|
||||
Contributor(s):
|
||||
|
|
@ -166,7 +166,7 @@
|
|||
$array['dialplans'][$index]['dialplan_enabled'] = 'true';
|
||||
}
|
||||
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('dialplan_edit', 'temp');
|
||||
|
||||
$database->save($array);
|
||||
|
|
@ -557,7 +557,7 @@ if (permission_exists('call_block_all') || permission_exists('call_block_ring_gr
|
|||
}
|
||||
|
||||
echo "<tr>\n";
|
||||
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
|
||||
echo "<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>\n";
|
||||
echo " ".$text['label-enabled']."\n";
|
||||
echo "</td>\n";
|
||||
echo "<td class='vtable' align='left'>\n";
|
||||
|
|
@ -674,6 +674,8 @@ if (permission_exists('call_block_all') || permission_exists('call_block_ring_gr
|
|||
echo modal::create(['id'=>'modal-block','type'=>'general','message'=>$text['confirm-block'],'actions'=>button::create(['type'=>'button','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_block','style'=>'float: right; margin-left: 15px;','collapse'=>'never','onclick'=>"modal_close(); list_form_submit('form_list');"])]);
|
||||
}
|
||||
|
||||
echo "<div class='card'>\n";
|
||||
|
||||
foreach (['inbound','outbound'] as $direction) {
|
||||
echo "<table class='list' id='list_".$direction."' ".($direction == 'outbound' ? "style='display: none;'" : null).">\n";
|
||||
echo "<tr class='list-header'>\n";
|
||||
|
|
@ -754,6 +756,8 @@ if (permission_exists('call_block_all') || permission_exists('call_block_ring_gr
|
|||
echo "</table>\n";
|
||||
}
|
||||
|
||||
echo "</div>\n";
|
||||
|
||||
echo "<br />\n";
|
||||
echo "<input type='hidden' name='".$token['name']."' value='".$token['hash']."'>\n";
|
||||
echo "</form>\n";
|
||||
|
|
|
|||
|
|
@ -2,10 +2,7 @@
|
|||
|
||||
/**
|
||||
* call block class
|
||||
*
|
||||
* @method null download
|
||||
*/
|
||||
if (!class_exists('call_block')) {
|
||||
class call_block {
|
||||
|
||||
/**
|
||||
|
|
@ -435,7 +432,7 @@ if (!class_exists('call_block')) {
|
|||
unset($rows, $parameters);
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('dialplan_edit', 'temp');
|
||||
|
||||
//save the array
|
||||
|
|
@ -459,6 +456,3 @@ if (!class_exists('call_block')) {
|
|||
} //method
|
||||
|
||||
} //class
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
@ -5,6 +5,7 @@ $array['dashboard'][$x]['dashboard_uuid'] = 'e75f04ff-6d1b-4b39-af0f-e1d1860327c
|
|||
$array['dashboard'][$x]['dashboard_name'] = 'Call Block';
|
||||
$array['dashboard'][$x]['dashboard_path'] = 'dashboard/icon';
|
||||
$array['dashboard'][$x]['dashboard_icon'] = 'fa-ban';
|
||||
$array['dashboard'][$x]['dashboard_icon_color'] = '#EA4C46';
|
||||
$array['dashboard'][$x]['dashboard_url'] = '/app/call_block/call_block.php';
|
||||
$array['dashboard'][$x]['dashboard_target'] = 'self';
|
||||
$array['dashboard'][$x]['dashboard_width'] = '';
|
||||
|
|
@ -13,14 +14,15 @@ $array['dashboard'][$x]['dashboard_content'] = '';
|
|||
$array['dashboard'][$x]['dashboard_content_text_align'] = '';
|
||||
$array['dashboard'][$x]['dashboard_content_details'] = '';
|
||||
$array['dashboard'][$x]['dashboard_chart_type'] = '';
|
||||
$array['dashboard'][$x]['dashboard_heading_text_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_heading_text_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_heading_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_heading_background_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color'] = '#EA4C46';
|
||||
$array['dashboard'][$x]['dashboard_label_enabled'] = 'true';
|
||||
$array['dashboard'][$x]['dashboard_label_text_color'] = '#444444';
|
||||
$array['dashboard'][$x]['dashboard_label_text_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_background_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_background_color'] ='';
|
||||
$array['dashboard'][$x]['dashboard_number_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_background_color'] = '#ffffff';
|
||||
$array['dashboard'][$x]['dashboard_background_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_detail_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_column_span'] = '1';
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
$show = $_GET["show"] ?? '';
|
||||
|
||||
//set from session variables
|
||||
$list_row_edit_button = !empty($_SESSION['theme']['list_row_edit_button']['boolean']) ? $_SESSION['theme']['list_row_edit_button']['boolean'] : 'false';
|
||||
$list_row_edit_button = filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL);
|
||||
|
||||
//get posted data
|
||||
if (!empty($_POST['call_broadcasts'])) {
|
||||
|
|
@ -219,7 +219,7 @@
|
|||
echo th_order_by('broadcast_concurrent_limit', $text['label-concurrent-limit'], $order_by, $order);
|
||||
echo th_order_by('broadcast_start_time', $text['label-start_time'], $order_by, $order);
|
||||
echo th_order_by('broadcast_description', $text['label-description'], $order_by, $order);
|
||||
if (permission_exists('call_broadcast_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('call_broadcast_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -227,8 +227,12 @@
|
|||
if (!empty($result)) {
|
||||
$x = 0;
|
||||
foreach($result as $row) {
|
||||
$list_row_url = '';
|
||||
if (permission_exists('call_broadcast_edit')) {
|
||||
$list_row_url = "call_broadcast_edit.php?id=".urlencode($row['call_broadcast_uuid']);
|
||||
if ($row['domain_uuid'] != $_SESSION['domain_uuid'] && permission_exists('domain_select')) {
|
||||
$list_row_url .= '&domain_uuid='.urlencode($row['domain_uuid']).'&domain_change=true';
|
||||
}
|
||||
}
|
||||
echo "<tr class='list-row' href='".$list_row_url."'>\n";
|
||||
if (permission_exists('call_broadcast_add') || permission_exists('call_broadcast_delete')) {
|
||||
|
|
@ -262,7 +266,7 @@
|
|||
}
|
||||
echo " <td>".escape($broadcast_start_time ?? '')."</td>\n";
|
||||
echo " <td class='description overflow hide-xs'>".escape($row['broadcast_description'])."</td>\n";
|
||||
if (permission_exists('call_broadcast_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('call_broadcast_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'>";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
@ -286,3 +290,4 @@
|
|||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -27,10 +27,7 @@
|
|||
|
||||
/**
|
||||
* call broadcast class
|
||||
*
|
||||
* @method null download
|
||||
*/
|
||||
if (!class_exists('call_broadcast')) {
|
||||
class call_broadcast {
|
||||
|
||||
/**
|
||||
|
|
@ -177,6 +174,3 @@ if (!class_exists('call_broadcast')) {
|
|||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
@ -221,9 +221,18 @@
|
|||
$talk_time = $agent_row['talk_time'];
|
||||
$ready_time = $agent_row['ready_time'];
|
||||
|
||||
//calcudate the length since status change and bridge end
|
||||
$last_status_change_length = time() - $last_status_change;
|
||||
$last_bridge_end_length = time() - $last_bridge_end;
|
||||
|
||||
//set the state to wrap up time
|
||||
if ($last_bridge_end_length < $wrap_up_time) {
|
||||
$state = 'Wrap Up Time';
|
||||
}
|
||||
|
||||
//format the seconds to hh:mm:ss
|
||||
$last_status_change_length = format_seconds(time() - $last_status_change);
|
||||
$last_bridge_end_length = format_seconds(time() - $last_bridge_end);
|
||||
$last_status_change_length_formatted = format_seconds($last_status_change_length);
|
||||
$last_bridge_end_length_formatted = format_seconds($last_bridge_end_length);
|
||||
|
||||
if (permission_exists('call_center_agent_edit')) {
|
||||
$list_row_url = "../call_centers/call_center_agent_edit.php?id=".$agent_uuid;
|
||||
|
|
@ -241,8 +250,8 @@
|
|||
echo "<td>".escape($agent_extension)."</td>\n";
|
||||
echo "<td>".escape($status)."</td>\n";
|
||||
echo "<td>".escape($state)."</td>\n";
|
||||
echo "<td>".escape($last_status_change_length)."</td>\n";
|
||||
echo "<td>".escape($last_bridge_end_length)."</td>\n";
|
||||
echo "<td>".escape($last_status_change_length_formatted)."</td>\n";
|
||||
echo "<td>".escape($last_bridge_end_length_formatted)."</td>\n";
|
||||
echo "<td class='center'>".escape($no_answer_count)."</td>\n";
|
||||
echo "<td class='center'>".escape($calls_answered)."</td>\n";
|
||||
echo "<td>".escape($tier_state)."</td>\n";
|
||||
|
|
|
|||
|
|
@ -128,6 +128,9 @@
|
|||
$x = 0;
|
||||
foreach($call_center_queues as $row) {
|
||||
$list_row_url = PROJECT_PATH."/app/call_center_active/call_center_active.php?queue_name=".escape($row['call_center_queue_uuid'])."&name=".urlencode(escape($row['queue_name']));
|
||||
if ($row['domain_uuid'] != $_SESSION['domain_uuid'] && permission_exists('domain_select')) {
|
||||
$list_row_url .= '&domain_uuid='.urlencode($row['domain_uuid']).'&domain_change=true';
|
||||
}
|
||||
echo "<tr class='list-row' href='".$list_row_url."'>\n";
|
||||
echo " <td><a href='".$list_row_url."'>".escape($row['queue_name'])."</a></td>\n";
|
||||
echo " <td>".escape($row['queue_extension'])."</td>\n";
|
||||
|
|
@ -159,3 +162,4 @@
|
|||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -216,7 +216,7 @@
|
|||
$apps[$x]['default_settings'][$y]['default_setting_category'] = "call_center";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "record_name";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_value'] = "\${sip_from_user}-\${sip_to_user}-\${strftime(%Y)}\${strftime(%b)}\${strftime(%d)}.\${record_ext}";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_value'] = "\${sip_from_user}-\${sip_to_user}-\${strftime(%Y)}\${strftime(%b)}\${strftime(%d)}-\${uuid}.\${record_ext}";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Custom name for call recording. Options: \${record_ext}, \${sip_from_user}, \${sip_to_user}, \${caller_id_number}, \${uuid}";
|
||||
$y++;
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ if ($domains_processed == 1) {
|
|||
}
|
||||
|
||||
if (!empty($array)) {
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('call_center_tier_edit', 'temp');
|
||||
|
||||
$database->app_name = 'call_centers';
|
||||
|
|
@ -93,8 +93,8 @@ if ($domains_processed == 1) {
|
|||
|
||||
//add the recording path if needed
|
||||
if ($row['queue_greeting'] != '') {
|
||||
if (file_exists($setting->get('switch','recordings').'/'.$row['domain_name'].'/'.$row['queue_greeting'])) {
|
||||
$queue_greeting_path = $setting->get('switch','recordings').'/'.$row['domain_name'].'/'.$row['queue_greeting'];
|
||||
if (file_exists($settings->get('switch','recordings').'/'.$row['domain_name'].'/'.$row['queue_greeting'])) {
|
||||
$queue_greeting_path = $settings->get('switch','recordings').'/'.$row['domain_name'].'/'.$row['queue_greeting'];
|
||||
}
|
||||
else {
|
||||
$queue_greeting_path = trim($row['queue_greeting']);
|
||||
|
|
@ -168,7 +168,7 @@ if ($domains_processed == 1) {
|
|||
//save the array to the database
|
||||
if (!empty($array)) {
|
||||
//add the dialplan permission
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add("dialplan_add", "temp");
|
||||
$p->add("dialplan_edit", "temp");
|
||||
|
||||
|
|
|
|||
|
|
@ -42,36 +42,14 @@
|
|||
$language = new text;
|
||||
$text = $language->get();
|
||||
|
||||
//connect to the database
|
||||
$database = new database;
|
||||
|
||||
//set the defaults
|
||||
$agent_id = '';
|
||||
$agent_name = '';
|
||||
$agent_password = '';
|
||||
|
||||
//check for duplicates
|
||||
if (!empty($_GET["check"]) && $_GET["check"] == 'duplicate') {
|
||||
//agent id
|
||||
if (!empty($_GET["agent_id"])) {
|
||||
$sql = "select agent_name ";
|
||||
$sql .= "from v_call_center_agents ";
|
||||
$sql .= "where agent_id = :agent_id ";
|
||||
$sql .= "and domain_uuid = :domain_uuid ";
|
||||
if (!empty($_GET["agent_uuid"]) && is_uuid($_GET["agent_uuid"])) {
|
||||
$sql .= " and call_center_agent_uuid <> :call_center_agent_uuid ";
|
||||
$parameters['call_center_agent_uuid'] = $_GET["agent_uuid"];
|
||||
}
|
||||
$parameters['agent_id'] = $_GET["agent_id"];
|
||||
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
|
||||
$database = new database;
|
||||
$row = $database->select($sql, $parameters, 'row');
|
||||
if (!empty($row) && !empty($row['agent_name'])) {
|
||||
echo $text['message-duplicate_agent_id'].(if_group("superadmin") ? ": ".$row["agent_name"] : null);
|
||||
}
|
||||
unset($sql, $parameters);
|
||||
}
|
||||
|
||||
exit;
|
||||
}
|
||||
|
||||
//action add or update
|
||||
if (!empty($_REQUEST["id"]) && is_uuid($_REQUEST["id"])) {
|
||||
$action = "update";
|
||||
|
|
@ -81,6 +59,14 @@
|
|||
$action = "add";
|
||||
}
|
||||
|
||||
//get the users array
|
||||
$sql = "select * from v_users ";
|
||||
$sql .= "where domain_uuid = :domain_uuid ";
|
||||
$sql .= "order by username asc ";
|
||||
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
|
||||
$users = $database->select($sql, $parameters, 'all');
|
||||
unset($sql, $parameters);
|
||||
|
||||
//get http post variables and set them to php variables
|
||||
if (!empty($_POST)) {
|
||||
$call_center_agent_uuid = $_POST["call_center_agent_uuid"] ?? null;
|
||||
|
|
@ -151,15 +137,6 @@
|
|||
$call_center_agent_uuid = uuid();
|
||||
}
|
||||
|
||||
//get the users array
|
||||
$sql = "select * from v_users ";
|
||||
$sql .= "where domain_uuid = :domain_uuid ";
|
||||
$sql .= "order by username asc ";
|
||||
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
|
||||
$database = new database;
|
||||
$users = $database->select($sql, $parameters, 'all');
|
||||
unset($sql, $parameters);
|
||||
|
||||
//change the contact string to loopback - Not recommended added for backwards comptability causes multiple problems
|
||||
if ($_SESSION['call_center']['agent_contact_method']['text'] == 'loopback') {
|
||||
$agent_contact = str_replace("user/", "loopback/", $agent_contact);
|
||||
|
|
@ -193,11 +170,9 @@
|
|||
}
|
||||
|
||||
//save to the data
|
||||
$database = new database;
|
||||
$database->app_name = 'call_center';
|
||||
$database->app_uuid = '95788e50-9500-079e-2807-fd530b0ea370';
|
||||
$database->save($array);
|
||||
//$message = $database->message;
|
||||
|
||||
//syncrhonize configuration
|
||||
save_call_center_xml();
|
||||
|
|
@ -295,7 +270,6 @@
|
|||
$sql .= "and call_center_agent_uuid = :call_center_agent_uuid ";
|
||||
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
|
||||
$parameters['call_center_agent_uuid'] = $call_center_agent_uuid;
|
||||
$database = new database;
|
||||
$row = $database->select($sql, $parameters, 'row');
|
||||
if (!empty($row)) {
|
||||
$call_center_agent_uuid = $row["call_center_agent_uuid"];
|
||||
|
|
@ -338,47 +312,12 @@
|
|||
if ($action == "update") {
|
||||
$document['title'] = $text['title-call_center_agent_edit'];
|
||||
}
|
||||
|
||||
//include the header
|
||||
require_once "resources/header.php";
|
||||
|
||||
//get the list of users for this domain
|
||||
$sql = "select * from v_users ";
|
||||
$sql .= "where domain_uuid = :domain_uuid ";
|
||||
$sql .= "and user_enabled = 'true' ";
|
||||
$sql .= "order by username asc ";
|
||||
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
|
||||
$database = new database;
|
||||
$users = $database->select($sql, $parameters, 'all');
|
||||
unset($sql, $parameters);
|
||||
|
||||
//javascript to check for duplicates
|
||||
?>
|
||||
<script language="javascript">
|
||||
function check_duplicates() {
|
||||
//check agent id
|
||||
var agent_id = document.getElementById('agent_id').value;
|
||||
$("#duplicate_agent_id_response").load("call_center_agent_edit.php?check=duplicate&agent_id="+agent_id+"&agent_uuid=<?php echo escape($call_center_agent_uuid ?? ''); ?>", function() {
|
||||
var duplicate_agent_id = false;
|
||||
if ($("#duplicate_agent_id_response").html() != '') {
|
||||
$('#agent_id').addClass('formfld_highlight_bad');
|
||||
display_message($("#duplicate_agent_id_response").html(), 'negative'<?php if (if_group("superadmin")) { echo ', 3000'; } ?>);
|
||||
duplicate_agent_id = true;
|
||||
}
|
||||
else {
|
||||
$("#duplicate_agent_id_response").html('');
|
||||
$('#agent_id').removeClass('formfld_highlight_bad');
|
||||
duplicate_agent_id = false;
|
||||
}
|
||||
|
||||
if (duplicate_agent_id == false) {
|
||||
document.getElementById('frm').submit();
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<?php
|
||||
//show the content
|
||||
echo "<form method='post' name='frm' id='frm' onsubmit='check_duplicates(); return false;'>\n";
|
||||
echo "<form method='post' name='frm' id='frm' onsubmit=''>\n";
|
||||
|
||||
echo "<div class='action_bar' id='action_bar'>\n";
|
||||
echo " <div class='heading'>";
|
||||
|
|
@ -404,21 +343,6 @@
|
|||
echo "</td>\n";
|
||||
echo "<td width='70%' class='vtable' align='left'>\n";
|
||||
echo " <input class='formfld' type='text' name='agent_name' maxlength='255' value=\"".escape($agent_name)."\" />\n";
|
||||
/*
|
||||
echo "<select id=\"agent_name\" name=\"agent_name\" class='formfld'>\n";
|
||||
echo "<option value=\"\"></option>\n";
|
||||
if (is_array($users)) {
|
||||
foreach($users as $field) {
|
||||
if ($field[username] == $agent_name) {
|
||||
echo "<option value='".escape($field[username])."' selected='selected'>".escape($field[username])."</option>\n";
|
||||
}
|
||||
else {
|
||||
echo "<option value='".escape($field[username])."'>".escape($field[username])."</option>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
echo "</select>";
|
||||
*/
|
||||
echo "<br />\n";
|
||||
echo $text['description-agent_name']."\n";
|
||||
echo "</td>\n";
|
||||
|
|
@ -467,7 +391,6 @@
|
|||
echo "</td>\n";
|
||||
echo "<td class='vtable' align='left'>\n";
|
||||
echo " <input class='formfld' type='number' name='agent_id' id='agent_id' maxlength='255' min='1' step='1' value='".escape($agent_id)."'>\n";
|
||||
echo " <div style='display: none;' id='duplicate_agent_id_response'></div>\n";
|
||||
echo "<br />\n";
|
||||
echo $text['description-agent_id']."\n";
|
||||
echo "</td>\n";
|
||||
|
|
@ -478,7 +401,7 @@
|
|||
echo " ".$text['label-agent_password']."\n";
|
||||
echo "</td>\n";
|
||||
echo "<td class='vtable' align='left'>\n";
|
||||
echo " <input class='formfld' type='password' name='agent_password' autocomplete='off' onmouseover=\"this.type='text';\" onfocus=\"this.type='text';\" onmouseout=\"if (!\$(this).is(':focus')) { this.type='password'; }\" onblur=\"this.type='password';\" maxlength='255' min='1' step='1' value='".escape($agent_password)."'>\n";
|
||||
echo " <input class='formfld password' type='password' name='agent_password' autocomplete='off' onmouseover=\"this.type='text';\" onfocus=\"this.type='text';\" onmouseout=\"if (!\$(this).is(':focus')) { this.type='password'; }\" onblur=\"this.type='password';\" maxlength='255' min='1' step='1' value='".escape($agent_password)."'>\n";
|
||||
echo "<br />\n";
|
||||
echo $text['description-agent_password']."\n";
|
||||
echo "</td>\n";
|
||||
|
|
|
|||
|
|
@ -172,7 +172,7 @@
|
|||
$array['users'][0]['user_status'] = $row['agent_status'];
|
||||
$array['users'][0]['domain_uuid'] = $_SESSION['domain_uuid'];
|
||||
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('user_edit', 'temp');
|
||||
|
||||
$database = new database;
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@
|
|||
$text = $language->get();
|
||||
|
||||
//set from session variables
|
||||
$list_row_edit_button = !empty($_SESSION['theme']['list_row_edit_button']['boolean']) ? $_SESSION['theme']['list_row_edit_button']['boolean'] : 'false';
|
||||
$list_row_edit_button = filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL);
|
||||
|
||||
//get posted data
|
||||
if (!empty($_POST['call_center_agents'])) {
|
||||
|
|
@ -206,7 +206,7 @@
|
|||
//echo th_order_by('agent_wrap_up_time', $text['label-wrap_up_time'], $order_by, $order);
|
||||
//echo th_order_by('agent_reject_delay_time', $text['label-reject_delay_time'], $order_by, $order);
|
||||
//echo th_order_by('agent_busy_delay_time', $text['label-busy_delay_time'], $order_by, $order);
|
||||
if (permission_exists('call_center_agent_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('call_center_agent_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -214,8 +214,12 @@
|
|||
if (!empty($result)) {
|
||||
$x = 0;
|
||||
foreach($result as $row) {
|
||||
$list_row_url = '';
|
||||
if (permission_exists('call_center_agent_edit')) {
|
||||
$list_row_url = "call_center_agent_edit.php?id=".urlencode($row['call_center_agent_uuid']);
|
||||
if ($row['domain_uuid'] != $_SESSION['domain_uuid'] && permission_exists('domain_select')) {
|
||||
$list_row_url .= '&domain_uuid='.urlencode($row['domain_uuid']).'&domain_change=true';
|
||||
}
|
||||
}
|
||||
echo "<tr class='list-row' href='".$list_row_url."'>\n";
|
||||
if (permission_exists('call_center_agent_delete')) {
|
||||
|
|
@ -266,7 +270,7 @@
|
|||
//echo " <td>".$row[agent_wrap_up_time]."</td>\n";
|
||||
//echo " <td>".$row[agent_reject_delay_time]."</td>\n";
|
||||
//echo " <td>".$row[agent_busy_delay_time]."</td>\n";
|
||||
if (permission_exists('call_center_agent_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('call_center_agent_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'>";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
@ -290,3 +294,4 @@
|
|||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
The Initial Developer of the Original Code is
|
||||
Mark J Crane <markjcrane@fusionpbx.com>
|
||||
Portions created by the Initial Developer are Copyright (C) 2008-2024
|
||||
Portions created by the Initial Developer are Copyright (C) 2008-2025
|
||||
the Initial Developer. All Rights Reserved.
|
||||
|
||||
Contributor(s):
|
||||
|
|
@ -42,6 +42,10 @@
|
|||
$language = new text;
|
||||
$text = $language->get();
|
||||
|
||||
//initialize database and settings
|
||||
$database = database::new();
|
||||
$settings = new settings(['database' => $database, $_SESSION['domain_uuid'] ?? '', $_SESSION['user_uuid'] ?? '']);
|
||||
|
||||
//set the defaults
|
||||
$queue_name = '';
|
||||
$queue_extension = '';
|
||||
|
|
@ -61,24 +65,24 @@
|
|||
$action = "add";
|
||||
}
|
||||
|
||||
//get the domain_uuid
|
||||
//get the domain details
|
||||
$domain_uuid = $_SESSION['domain_uuid'];
|
||||
$domain_name = $_SESSION['domain_name'];
|
||||
|
||||
//initialize the destinations object
|
||||
//initialize the destination object
|
||||
$destination = new destinations;
|
||||
|
||||
//get total call center queues count from the database, check limit, if defined
|
||||
if ($action == 'add') {
|
||||
if (!empty($_SESSION['limit']['call_center_queues']['numeric'])) {
|
||||
if (!empty($settings->get('limit','call_center_queues', ''))) {
|
||||
$sql = "select count(*) from v_call_center_queues ";
|
||||
$sql .= "where domain_uuid = :domain_uuid ";
|
||||
$parameters['domain_uuid'] = $domain_uuid;
|
||||
$database = new database;
|
||||
$total_call_center_queues = $database->select($sql, $parameters, 'column');
|
||||
unset($sql, $parameters);
|
||||
|
||||
if ($total_call_center_queues >= $_SESSION['limit']['call_center_queues']['numeric']) {
|
||||
message::add($text['message-maximum_queues'].' '.$_SESSION['limit']['call_center_queues']['numeric'], 'negative');
|
||||
if ($total_call_center_queues >= $settings->get('limit','call_center_queues', 0)) {
|
||||
message::add($text['message-maximum_queues'].' '.$settings->get('limit','call_center_queues', ''), 'negative');
|
||||
header('Location: call_center_queues.php');
|
||||
return;
|
||||
}
|
||||
|
|
@ -124,7 +128,7 @@
|
|||
$queue_context = $_POST["queue_context"];
|
||||
}
|
||||
else if ($action == 'add') {
|
||||
$queue_context = $_SESSION['domain_name'];
|
||||
$queue_context = $domain_name;
|
||||
}
|
||||
|
||||
//remove invalid characters
|
||||
|
|
@ -149,7 +153,6 @@
|
|||
$sql .= "and t.call_center_queue_uuid = q.call_center_queue_uuid; ";
|
||||
$parameters['domain_uuid'] = $domain_uuid;
|
||||
$parameters['call_center_tier_uuid'] = $call_center_tier_uuid;
|
||||
$database = new database;
|
||||
$tiers = $database->select($sql, $parameters, 'all');
|
||||
unset($sql, $parameters);
|
||||
|
||||
|
|
@ -168,7 +171,7 @@
|
|||
if ($esl->is_connected()) {
|
||||
//callcenter_config tier del [queue_name] [agent_name]
|
||||
if (is_numeric($queue_extension) && is_uuid($call_center_agent_uuid)) {
|
||||
$cmd = "callcenter_config tier del ".$queue_extension."@".$_SESSION['domain_name']." ".$call_center_agent_uuid;
|
||||
$cmd = "callcenter_config tier del ".$queue_extension."@".$domain_name." ".$call_center_agent_uuid;
|
||||
$response = event_socket::api($cmd);
|
||||
}
|
||||
}
|
||||
|
|
@ -178,10 +181,9 @@
|
|||
$array['call_center_tiers'][0]['call_center_tier_uuid'] = $call_center_tier_uuid;
|
||||
$array['call_center_tiers'][0]['domain_uuid'] = $domain_uuid;
|
||||
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('call_center_tier_delete', 'temp');
|
||||
|
||||
$database = new database;
|
||||
$database->app_name = 'call_centers';
|
||||
$database->app_uuid = '95788e50-9500-079e-2807-fd530b0ea370';
|
||||
$database->delete($array);
|
||||
|
|
@ -205,7 +207,6 @@
|
|||
$sql = "select * from v_call_center_queues ";
|
||||
$sql .= "where call_center_queue_uuid = :call_center_queue_uuid ";
|
||||
$parameters['call_center_queue_uuid'] = $call_center_queue_uuid;
|
||||
$database = new database;
|
||||
$row = $database->select($sql, $parameters, 'row');
|
||||
if (!empty($row)) {
|
||||
//if (!permission_exists('call_center_queue_domain')) {
|
||||
|
|
@ -298,8 +299,8 @@
|
|||
|
||||
//add the recording path if needed
|
||||
if (!empty($queue_greeting)) {
|
||||
if (file_exists($_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domain_name'].'/'.$queue_greeting)) {
|
||||
$queue_greeting_path = $_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domain_name'].'/'.$queue_greeting;
|
||||
if (file_exists($settings->get('switch','recordings', '').'/'.$domain_name.'/'.$queue_greeting)) {
|
||||
$queue_greeting_path = $settings->get('switch','recordings', '').'/'.$domain_name.'/'.$queue_greeting;
|
||||
}
|
||||
else {
|
||||
$queue_greeting_path = trim($queue_greeting);
|
||||
|
|
@ -371,8 +372,8 @@
|
|||
|
||||
//add definable export variables can be set in default settings
|
||||
$export_variables = 'call_center_queue_uuid,sip_h_Alert-Info';
|
||||
if (!empty($_SESSION['call_center']['export_vars'])) {
|
||||
foreach ($_SESSION['call_center']['export_vars'] as $export_variable) {
|
||||
if (!empty($settings->get('call_center','export_vars', []))) {
|
||||
foreach ($settings->get('call_center','export_vars', []) as $export_variable) {
|
||||
$export_variables .= ','.$export_variable;
|
||||
}
|
||||
}
|
||||
|
|
@ -413,7 +414,7 @@
|
|||
if (!empty($queue_cc_exit_keys)) {
|
||||
$dialplan_xml .= " <action application=\"set\" data=\"cc_exit_keys=".xml::sanitize($queue_cc_exit_keys)."\"/>\n";
|
||||
}
|
||||
$dialplan_xml .= " <action application=\"callcenter\" data=\"".xml::sanitize($queue_extension)."@".$_SESSION["domain_name"]."\"/>\n";
|
||||
$dialplan_xml .= " <action application=\"callcenter\" data=\"".xml::sanitize($queue_extension)."@".$domain_name."\"/>\n";
|
||||
if ($destination->valid($queue_timeout_app.':'.$queue_timeout_data)) {
|
||||
$dialplan_xml .= " <action application=\"".xml::sanitize($queue_timeout_app)."\" data=\"".xml::sanitize($queue_timeout_data)."\"/>\n";
|
||||
}
|
||||
|
|
@ -434,12 +435,11 @@
|
|||
$array['dialplans'][0]["app_uuid"] = "95788e50-9500-079e-2807-fd530b0ea370";
|
||||
|
||||
//add the dialplan permission
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add("dialplan_add", "temp");
|
||||
$p->add("dialplan_edit", "temp");
|
||||
|
||||
//save to the data
|
||||
$database = new database;
|
||||
$database->app_name = 'call_centers';
|
||||
$database->app_uuid = '95788e50-9500-079e-2807-fd530b0ea370';
|
||||
$database->save($array);
|
||||
|
|
@ -457,7 +457,7 @@
|
|||
|
||||
//clear the cache
|
||||
$cache = new cache;
|
||||
$cache->delete("dialplan:".$_SESSION["domain_name"]);
|
||||
$cache->delete("dialplan:".$domain_name);
|
||||
|
||||
//clear the destinations session array
|
||||
if (isset($_SESSION['destinations']['array'])) {
|
||||
|
|
@ -496,19 +496,19 @@
|
|||
*/
|
||||
//add the agent
|
||||
if (is_numeric($queue_extension) && is_uuid($call_center_agent_uuid) && is_numeric($tier_level) && is_numeric($tier_position)) {
|
||||
$cmd = "callcenter_config tier add ".$queue_extension."@".$_SESSION["domain_name"]." ".$call_center_agent_uuid." ".$tier_level." ".$tier_position;
|
||||
$cmd = "callcenter_config tier add ".$queue_extension."@".$domain_name." ".$call_center_agent_uuid." ".$tier_level." ".$tier_position;
|
||||
$response = event_socket::api($cmd);
|
||||
}
|
||||
usleep(200);
|
||||
//agent set level
|
||||
if (is_numeric($queue_extension) && is_numeric($tier_level)) {
|
||||
$cmd = "callcenter_config tier set level ".$queue_extension."@".$_SESSION["domain_name"]." ".$call_center_agent_uuid." ".$tier_level;
|
||||
$cmd = "callcenter_config tier set level ".$queue_extension."@".$domain_name." ".$call_center_agent_uuid." ".$tier_level;
|
||||
$response = event_socket::api($cmd);
|
||||
}
|
||||
usleep(200);
|
||||
//agent set position
|
||||
if (is_numeric($queue_extension) && is_numeric($tier_position)) {
|
||||
$cmd = "callcenter_config tier set position ".$queue_extension."@".$_SESSION["domain_name"]." ".$tier_position;
|
||||
$cmd = "callcenter_config tier set position ".$queue_extension."@".$domain_name." ".$tier_position;
|
||||
$response = event_socket::api($cmd);
|
||||
}
|
||||
usleep(200);
|
||||
|
|
@ -538,7 +538,6 @@
|
|||
$sql .= "and call_center_queue_uuid = :call_center_queue_uuid ";
|
||||
$parameters['domain_uuid'] = $domain_uuid;
|
||||
$parameters['call_center_queue_uuid'] = $call_center_queue_uuid;
|
||||
$database = new database;
|
||||
$call_center_queues = $database->select($sql, $parameters, 'all');
|
||||
unset($sql, $parameters);
|
||||
|
||||
|
|
@ -587,17 +586,16 @@
|
|||
$sql .= "order by tier_level asc, tier_position asc, a.agent_name asc";
|
||||
$parameters['domain_uuid'] = $domain_uuid;
|
||||
$parameters['call_center_queue_uuid'] = $call_center_queue_uuid ?? null;
|
||||
$database = new database;
|
||||
$tiers = $database->select($sql, $parameters, 'all');
|
||||
unset($sql, $parameters);
|
||||
|
||||
//add an empty row to the tiers array
|
||||
if (count($tiers) == 0) {
|
||||
$rows = $_SESSION['call_center']['agent_add_rows']['numeric'] ?? null;
|
||||
$rows = $settings->get('call_center','agent_add_rows', null);
|
||||
$id = 0;
|
||||
}
|
||||
if (count($tiers) > 0) {
|
||||
$rows = $_SESSION['call_center']['agent_edit_rows']['numeric'];
|
||||
$rows = $settings->get('call_center','agent_edit_rows', null);
|
||||
$id = count($tiers)+1;
|
||||
}
|
||||
for ($x = 0; $x < $rows; $x++) {
|
||||
|
|
@ -615,7 +613,6 @@
|
|||
$sql .= "where domain_uuid = :domain_uuid ";
|
||||
$sql .= "order by agent_name asc";
|
||||
$parameters['domain_uuid'] = $domain_uuid;
|
||||
$database = new database;
|
||||
$agents = $database->select($sql, $parameters, 'all');
|
||||
unset($sql, $parameters);
|
||||
|
||||
|
|
@ -624,6 +621,7 @@
|
|||
$audio_files[0] = $sounds->get();
|
||||
unset($sounds);
|
||||
|
||||
//get the list of sounds
|
||||
if (permission_exists('call_center_announce_sound')) {
|
||||
$sounds = new sounds;
|
||||
$sounds->sound_types = ['recordings'];
|
||||
|
|
@ -646,7 +644,7 @@
|
|||
if (empty($queue_tier_rule_no_agent_no_wait)) { $queue_tier_rule_no_agent_no_wait = "true"; }
|
||||
if (empty($queue_discard_abandoned_after)) { $queue_discard_abandoned_after = "900"; }
|
||||
if (empty($queue_abandoned_resume_allowed)) { $queue_abandoned_resume_allowed = "false"; }
|
||||
if (empty($queue_context)) { $queue_context = $_SESSION['domain_name']; }
|
||||
if (empty($queue_context)) { $queue_context = $domain_name; }
|
||||
|
||||
//create token
|
||||
$object = new token;
|
||||
|
|
@ -667,12 +665,8 @@
|
|||
}
|
||||
|
||||
//set the record_template
|
||||
if (empty($_SESSION['call_center']['record_name']['text'])) {
|
||||
$record_template = $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/archive/\${strftime(%Y)}/\${strftime(%b)}/\${strftime(%d)}/\${uuid}.\${record_ext}";
|
||||
}
|
||||
else {
|
||||
$record_template = $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/archive/".$_SESSION['call_center']['record_name']['text'];
|
||||
}
|
||||
$record_template = $settings->get('switch','recordings', '')."/".$domain_name."/archive/";
|
||||
$record_template .= $settings->get('call_center','record_name', "\${strftime(%Y)}/\${strftime(%b)}/\${strftime(%d)}/\${uuid}.\${record_ext}");
|
||||
|
||||
//show the content
|
||||
if (permission_exists('recording_play') || permission_exists('recording_download')) {
|
||||
|
|
@ -757,7 +751,7 @@
|
|||
}
|
||||
echo "</div>\n";
|
||||
echo " <div class='actions'>\n";
|
||||
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','style'=>'margin-right: 15px;','link'=>'call_center_queues.php']);
|
||||
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$settings->get('theme','button_icon_back', ''),'id'=>'btn_back','style'=>'margin-right: 15px;','link'=>'call_center_queues.php']);
|
||||
|
||||
if ($action == "update") {
|
||||
if (permission_exists('call_center_wallboard')) {
|
||||
|
|
@ -765,10 +759,10 @@
|
|||
}
|
||||
//echo button::create(['type'=>'button','label'=>$text['button-stop'],'icon'=>$_SESSION['theme']['button_icon_stop'],'link'=>'cmd.php?cmd=unload&id='.urlencode($call_center_queue_uuid)]);
|
||||
//echo button::create(['type'=>'button','label'=>$text['button-start'],'icon'=>$_SESSION['theme']['button_icon_start'],'link'=>'cmd.php?cmd=load&id='.urlencode($call_center_queue_uuid)]);
|
||||
echo button::create(['type'=>'button','label'=>$text['button-reload'],'icon'=>$_SESSION['theme']['button_icon_reload'],'link'=>'cmd.php?cmd=reload&id='.urlencode($call_center_queue_uuid)]);
|
||||
echo button::create(['type'=>'button','label'=>$text['button-view'],'icon'=>$_SESSION['theme']['button_icon_view'],'style'=>'margin-right: 15px;','link'=>PROJECT_PATH.'/app/call_center_active/call_center_active.php?queue_name='.urlencode($call_center_queue_uuid)]);
|
||||
echo button::create(['type'=>'button','label'=>$text['button-reload'],'icon'=>$settings->get('theme','button_icon_reload', ''),'link'=>'cmd.php?cmd=reload&id='.urlencode($call_center_queue_uuid)]);
|
||||
echo button::create(['type'=>'button','label'=>$text['button-view'],'icon'=>$settings->get('theme','button_icon_view', ''),'style'=>'margin-right: 15px;','link'=>PROJECT_PATH.'/app/call_center_active/call_center_active.php?queue_name='.urlencode($call_center_queue_uuid)]);
|
||||
}
|
||||
echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'id'=>'btn_save']);
|
||||
echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$settings->get('theme','button_icon_save', ''),'id'=>'btn_save']);
|
||||
echo " </div>\n";
|
||||
echo " <div style='clear: both;'></div>\n";
|
||||
echo "</div>\n";
|
||||
|
|
@ -791,7 +785,7 @@
|
|||
echo " ".$text['label-extension']."\n";
|
||||
echo "</td>\n";
|
||||
echo "<td class='vtable' align='left'>\n";
|
||||
echo " <input class='formfld' type='number' name='queue_extension' maxlength='255' min='0' step='1' value=\"".escape($queue_extension)."\" required='required' placeholder=\"".($_SESSION['call_center']['extension_range']['text'] ?? '')."\">\n";
|
||||
echo " <input class='formfld' type='number' name='queue_extension' maxlength='255' min='0' step='1' value=\"".escape($queue_extension)."\" required='required' placeholder=\"".$settings->get('call_center','extension_range', '')."\">\n";
|
||||
echo "<br />\n";
|
||||
echo $text['description-extension']."\n";
|
||||
echo "</td>\n";
|
||||
|
|
@ -818,8 +812,8 @@
|
|||
if ($key == 'recordings') {
|
||||
if (
|
||||
!empty($instance_value) &&
|
||||
($instance_value == $row["value"] || $instance_value == $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name'].'/'.$row["value"]) &&
|
||||
file_exists($_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name'].'/'.pathinfo($row["value"], PATHINFO_BASENAME))
|
||||
($instance_value == $row["value"] || $instance_value == $settings->get('switch','recordings', '')."/".$domain_name.'/'.$row["value"]) &&
|
||||
file_exists($settings->get('switch','recordings', '')."/".$domain_name.'/'.pathinfo($row["value"], PATHINFO_BASENAME))
|
||||
) {
|
||||
$selected = "selected='selected'";
|
||||
$playable = '../recordings/recordings.php?action=download&type=rec&filename='.pathinfo($row["value"], PATHINFO_BASENAME);
|
||||
|
|
@ -862,7 +856,7 @@
|
|||
case 'ogg' : $mime_type = 'audio/ogg'; break;
|
||||
}
|
||||
echo "<audio id='recording_audio_".$instance_id."' style='display: none;' preload='none' ontimeupdate=\"update_progress('".$instance_id."')\" onended=\"recording_reset('".$instance_id."');\" src='".($playable ?? '')."' type='".($mime_type ?? '')."'></audio>";
|
||||
echo button::create(['type'=>'button','title'=>$text['label-play'].' / '.$text['label-pause'],'icon'=>$_SESSION['theme']['button_icon_play'],'id'=>'recording_button_'.$instance_id,'style'=>'display: '.(!empty($mime_type) ? 'inline' : 'none'),'onclick'=>"recording_play('".$instance_id."', document.getElementById('".$instance_id."').value, document.getElementById('".$instance_id."').options[document.getElementById('".$instance_id."').selectedIndex].parentNode.getAttribute('data-type'))"]);
|
||||
echo button::create(['type'=>'button','title'=>$text['label-play'].' / '.$text['label-pause'],'icon'=>$settings->get('theme','button_icon_play', ''),'id'=>'recording_button_'.$instance_id,'style'=>'display: '.(!empty($mime_type) ? 'inline' : 'none'),'onclick'=>"recording_play('".$instance_id."', document.getElementById('".$instance_id."').value, document.getElementById('".$instance_id."').options[document.getElementById('".$instance_id."').selectedIndex].parentNode.getAttribute('data-type'))"]);
|
||||
unset($playable, $mime_type);
|
||||
}
|
||||
echo "<br />\n";
|
||||
|
|
@ -1318,8 +1312,8 @@
|
|||
if ($key == 'recordings') {
|
||||
if (
|
||||
!empty($instance_value) &&
|
||||
($instance_value == $row["value"] || $instance_value == $_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name'].'/'.$row["value"]) &&
|
||||
file_exists($_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name'].'/'.pathinfo($row["value"], PATHINFO_BASENAME))
|
||||
($instance_value == $row["value"] || $instance_value == $settings->get('switch','recordings', '')."/".$domain_name.'/'.$row["value"]) &&
|
||||
file_exists($settings->get('switch','recordings', '')."/".$domain_name.'/'.pathinfo($row["value"], PATHINFO_BASENAME))
|
||||
) {
|
||||
$selected = "selected='selected'";
|
||||
$playable = '../recordings/recordings.php?action=download&type=rec&filename='.pathinfo($row["value"], PATHINFO_BASENAME);
|
||||
|
|
@ -1362,7 +1356,7 @@
|
|||
case 'ogg' : $mime_type = 'audio/ogg'; break;
|
||||
}
|
||||
echo "<audio id='recording_audio_".$instance_id."' style='display: none;' preload='none' ontimeupdate=\"update_progress('".$instance_id."')\" onended=\"recording_reset('".$instance_id."');\" src='".($playable ?? '')."' type='".($mime_type ?? '')."'></audio>";
|
||||
echo button::create(['type'=>'button','title'=>$text['label-play'].' / '.$text['label-pause'],'icon'=>$_SESSION['theme']['button_icon_play'],'id'=>'recording_button_'.$instance_id,'style'=>'display: '.(!empty($mime_type) ? 'inline' : 'none'),'onclick'=>"recording_play('".$instance_id."', document.getElementById('".$instance_id."').value, document.getElementById('".$instance_id."').options[document.getElementById('".$instance_id."').selectedIndex].parentNode.getAttribute('data-type'))"]);
|
||||
echo button::create(['type'=>'button','title'=>$text['label-play'].' / '.$text['label-pause'],'icon'=>$settings->get('theme','button_icon_play', ''),'id'=>'recording_button_'.$instance_id,'style'=>'display: '.(!empty($mime_type) ? 'inline' : 'none'),'onclick'=>"recording_play('".$instance_id."', document.getElementById('".$instance_id."').value, document.getElementById('".$instance_id."').options[document.getElementById('".$instance_id."').selectedIndex].parentNode.getAttribute('data-type'))"]);
|
||||
unset($playable, $mime_type);
|
||||
}
|
||||
echo "<br />\n";
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
$show = $_GET["show"] ?? '';
|
||||
|
||||
//set from session variables
|
||||
$list_row_edit_button = !empty($_SESSION['theme']['list_row_edit_button']['boolean']) ? $_SESSION['theme']['list_row_edit_button']['boolean'] : 'false';
|
||||
$list_row_edit_button = filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL);
|
||||
|
||||
//get posted data
|
||||
if (!empty($_POST['call_center_queues']) && is_array($_POST['call_center_queues'])) {
|
||||
|
|
@ -219,7 +219,7 @@
|
|||
//echo th_order_by('queue_abandoned_resume_allowed', $text['label-abandoned_resume_allowed'], $order_by, $order);
|
||||
//echo th_order_by('queue_tier_rule_wait_multiply_level', $text['label-tier_rule_wait_multiply_level'], $order_by, $order);
|
||||
echo th_order_by('queue_description', $text['label-description'], $order_by, $order, null, "class='hide-sm-dn'");
|
||||
if (permission_exists('call_center_queue_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('call_center_queue_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -227,8 +227,12 @@
|
|||
if (!empty($result)) {
|
||||
$x = 0;
|
||||
foreach($result as $row) {
|
||||
$list_row_url = '';
|
||||
if (permission_exists('call_center_queue_edit')) {
|
||||
$list_row_url = "call_center_queue_edit.php?id=".urlencode($row['call_center_queue_uuid']);
|
||||
if ($row['domain_uuid'] != $_SESSION['domain_uuid'] && permission_exists('domain_select')) {
|
||||
$list_row_url .= '&domain_uuid='.urlencode($row['domain_uuid']).'&domain_change=true';
|
||||
}
|
||||
}
|
||||
echo "<tr class='list-row' href='".$list_row_url."'>\n";
|
||||
if (permission_exists('call_center_queue_add') || permission_exists('call_center_queue_delete')) {
|
||||
|
|
@ -269,7 +273,7 @@
|
|||
//echo " <td>".escape($row[queue_abandoned_resume_allowed])." </td>\n";
|
||||
//echo " <td>".escape($row[queue_tier_rule_wait_multiply_level])." </td>\n";
|
||||
echo " <td class='description overflow hide-sm-dn'>".escape($row['queue_description'])."</td>\n";
|
||||
if (permission_exists('call_center_queue_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('call_center_queue_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'>";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
@ -293,3 +297,4 @@
|
|||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -26,11 +26,8 @@
|
|||
|
||||
/**
|
||||
* cache class provides an abstracted cache
|
||||
*
|
||||
* @method string dialplan - builds the dialplan for call center
|
||||
*/
|
||||
//define the call center class
|
||||
if (!class_exists('call_center')) {
|
||||
class call_center {
|
||||
/**
|
||||
* define the variables
|
||||
|
|
@ -78,7 +75,7 @@
|
|||
$array['dialplan_details'][0]['domain_uuid'] = $this->domain_uuid;
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('dialplan_delete', 'temp');
|
||||
$p->add('dialplan_detail_delete', 'temp');
|
||||
|
||||
|
|
@ -216,7 +213,7 @@
|
|||
$array["dialplans"][0] = $dialplan;
|
||||
|
||||
//add temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add("dialplan_add", 'temp');
|
||||
$p->add("dialplan_detail_add", 'temp');
|
||||
$p->add("dialplan_edit", 'temp');
|
||||
|
|
@ -242,7 +239,7 @@
|
|||
$array['call_center_queues'][0]['dialplan_uuid'] = $this->dialplan_uuid;
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('call_center_queue_edit', 'temp');
|
||||
|
||||
//execute update
|
||||
|
|
@ -349,7 +346,7 @@
|
|||
}
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('call_center_tier_delete', 'temp');
|
||||
$p->add('dialplan_delete', 'temp');
|
||||
$p->add('dialplan_detail_delete', 'temp');
|
||||
|
|
@ -446,7 +443,7 @@
|
|||
}
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('call_center_tier_delete', 'temp');
|
||||
|
||||
//execute delete
|
||||
|
|
@ -578,7 +575,7 @@
|
|||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('call_center_tier_add', 'temp');
|
||||
$p->add('dialplan_add', 'temp');
|
||||
|
||||
|
|
@ -611,7 +608,6 @@
|
|||
} //method
|
||||
|
||||
} //class
|
||||
}
|
||||
|
||||
/*
|
||||
$o = new call_center;
|
||||
|
|
@ -625,5 +621,3 @@ $c->destination_number = "";
|
|||
$c->queue_cc_exit_keys = "";
|
||||
$c->dialplan();
|
||||
*/
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
The Initial Developer of the Original Code is
|
||||
Mark J Crane <markjcrane@fusionpbx.com>
|
||||
Portions created by the Initial Developer are Copyright (C) 2017-2023
|
||||
Portions created by the Initial Developer are Copyright (C) 2017-2025
|
||||
the Initial Developer. All Rights Reserved.
|
||||
|
||||
Contributor(s):
|
||||
|
|
@ -258,21 +258,24 @@
|
|||
echo "</script>\n";
|
||||
|
||||
//show the content
|
||||
echo "<div class='action_bar sub'>\n";
|
||||
echo " <div class='heading'><b>".$text['header-call_center_queues'].(!empty($agent['agent_name']) ? " </b> Agent: <strong>".$agent['agent_name']."</strong>" : "</b>")."</div>\n";
|
||||
echo " <div class='actions'>\n";
|
||||
echo "<div class='hud_box'>";
|
||||
|
||||
echo "<div class='hud_content' style='display: block;'>\n";
|
||||
echo " <div class='action_bar sub'>\n";
|
||||
echo " <div class='heading' style='padding-left: 5px;'><b>".$text['header-call_center_queues'].(!empty($agent['agent_name']) ? " </b> Agent: <strong>".$agent['agent_name']."</strong>" : "</b>")."</div>\n";
|
||||
echo " <div class='actions' style='padding-top: 2px;'>\n";
|
||||
echo button::create(['type'=>'button','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'collapse'=>false,'onclick'=>"document.getElementById('form_list_call_center_agent_dashboard').submit();"]);
|
||||
echo " </div>\n";
|
||||
echo " <div style='clear: both;'></div>\n";
|
||||
echo " </div>\n";
|
||||
echo " <div style='clear: both;'></div>\n";
|
||||
echo "</div>\n";
|
||||
|
||||
echo "<form id='form_list_call_center_agent_dashboard' method='post'>\n";
|
||||
echo " <form id='form_list_call_center_agent_dashboard' method='post'>\n";
|
||||
|
||||
echo "<table class='list'>\n";
|
||||
echo "<tr class='list-header'>\n";
|
||||
echo " <th>".$text['label-queue_name']."</th>\n";
|
||||
echo " <th class='shrink'>".$text['label-status']."</th>\n";
|
||||
echo "</tr>\n";
|
||||
echo " <table class='list' style='padding: 0 5px;'>\n";
|
||||
echo " <tr class='list-header'>\n";
|
||||
echo " <th>".$text['label-queue_name']."</th>\n";
|
||||
echo " <th class='shrink'>".$text['label-status']."</th>\n";
|
||||
echo " </tr>\n";
|
||||
|
||||
if (!empty($call_center_queues) && is_array($call_center_queues) && @sizeof($call_center_queues) != 0) {
|
||||
$x = 0;
|
||||
|
|
@ -295,9 +298,12 @@
|
|||
unset($call_center_queues);
|
||||
}
|
||||
|
||||
echo "</table>\n";
|
||||
echo "<br />\n";
|
||||
echo "<input type='hidden' name='".$token['name']."' value='".$token['hash']."'>\n";
|
||||
echo "</form>\n";
|
||||
echo " </table>\n";
|
||||
echo " <br />\n";
|
||||
echo " <input type='hidden' name='".$token['name']."' value='".$token['hash']."'>\n";
|
||||
echo " </form>\n";
|
||||
echo "</div>\n";
|
||||
|
||||
echo "</div>\n";
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -3,6 +3,29 @@
|
|||
$array['dashboard'][$x]['dashboard_uuid'] = '9083305a-ebb4-4b67-bb9b-8c09cf030261';
|
||||
$array['dashboard'][$x]['dashboard_name'] = 'Call Center Agents';
|
||||
$array['dashboard'][$x]['dashboard_path'] = 'call_centers/call_center_agents';
|
||||
$array['dashboard'][$x]['dashboard_icon'] = '';
|
||||
$array['dashboard'][$x]['dashboard_url'] = '';
|
||||
$array['dashboard'][$x]['dashboard_target'] = '';
|
||||
$array['dashboard'][$x]['dashboard_width'] = '';
|
||||
$array['dashboard'][$x]['dashboard_height'] = '';
|
||||
$array['dashboard'][$x]['dashboard_content'] = '';
|
||||
$array['dashboard'][$x]['dashboard_content_text_align'] = '';
|
||||
$array['dashboard'][$x]['dashboard_content_details'] = '';
|
||||
$array['dashboard'][$x]['dashboard_chart_type'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_enabled'] = 'true';
|
||||
$array['dashboard'][$x]['dashboard_label_text_color'] = '#3164AD';
|
||||
$array['dashboard'][$x]['dashboard_label_text_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_background_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_background_color'] = '#ffffff';
|
||||
$array['dashboard'][$x]['dashboard_background_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_detail_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_column_span'] = '1';
|
||||
$array['dashboard'][$x]['dashboard_row_span'] = '2';
|
||||
$array['dashboard'][$x]['dashboard_details_state'] = 'none';
|
||||
$array['dashboard'][$x]['dashboard_order'] = '180';
|
||||
$array['dashboard'][$x]['dashboard_enabled'] = 'false';
|
||||
$array['dashboard'][$x]['dashboard_description'] = 'Status for agent in a call center.';
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@
|
|||
//includes files
|
||||
require_once dirname(__DIR__, 2) . "/resources/require.php";
|
||||
require_once "resources/check_auth.php";
|
||||
require_once "resources/classes/waveform.php";
|
||||
|
||||
use maximal\audio\Waveform;
|
||||
|
||||
|
|
@ -96,8 +95,8 @@
|
|||
Waveform::$colorB = !empty($_SESSION['theme']['audio_player_waveform_color_b_leg']['text']) ? color_to_rgba_array($_SESSION['theme']['audio_player_waveform_color_b_leg']['text']) : [0,125,232,0.6]; // array rgba, right (b-leg) wave color
|
||||
Waveform::$backgroundColor = !empty($_SESSION['theme']['audio_player_waveform_color_background']['text']) ? color_to_rgba_array($_SESSION['theme']['audio_player_waveform_color_background']['text']) : [0,0,0,0]; // array rgba, default: transparent
|
||||
Waveform::$axisColor = !empty($_SESSION['theme']['audio_player_waveform_color_axis']['text']) ? color_to_rgba_array($_SESSION['theme']['audio_player_waveform_color_axis']['text']) : [0,0,0,0.3]; // array rgba
|
||||
Waveform::$singlePhase = empty($_SESSION['theme']['audio_player_waveform_single_phase']['boolean']) || $_SESSION['theme']['audio_player_waveform_single_phase']['boolean'] !== 'true' ? false : true; // positive phase only - left (a-leg) top, right (b-leg) bottom
|
||||
Waveform::$singleAxis = empty($_SESSION['theme']['audio_player_waveform_single_axis']['boolean']) || $_SESSION['theme']['audio_player_waveform_single_axis']['boolean'] !== 'false' ? true : false; // combine channels into single axis
|
||||
Waveform::$singlePhase = filter_var($_SESSION['theme']['audio_player_waveform_single_phase']['boolean'] ?? false, FILTER_VALIDATE_BOOL) ? 'true': 'false'; // positive phase only - left (a-leg) top, right (b-leg) bottom
|
||||
Waveform::$singleAxis = filter_var($_SESSION['theme']['audio_player_waveform_single_axis']['boolean'] ?? true, FILTER_VALIDATE_BOOL) ? 'true': 'false'; // combine channels into single axis
|
||||
$height = !empty($_SESSION['theme']['audio_player_waveform_height']['text']) && is_numeric(str_replace('px','',$_SESSION['theme']['audio_player_waveform_height']['text'])) ? 2.2 * (int) str_replace('px','',$_SESSION['theme']['audio_player_waveform_height']['text']) : null;
|
||||
$wf = $waveform->getWaveform($temp_filename, 1600, $height ?? 180); // input: png filename returns boolean true/false, or 'base64' returns base64 string
|
||||
}
|
||||
|
|
|
|||
|
|
@ -237,7 +237,7 @@
|
|||
$array["call_flows"][$i]["call_flow_description"] = $call_flow_description;
|
||||
|
||||
//add the dialplan permission
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add("dialplan_add", "temp");
|
||||
$p->add("dialplan_edit", "temp");
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
$show = $_GET["show"] ?? '';
|
||||
|
||||
//set from session variables
|
||||
$list_row_edit_button = !empty($_SESSION['theme']['list_row_edit_button']['boolean']) ? $_SESSION['theme']['list_row_edit_button']['boolean'] : 'false';
|
||||
$list_row_edit_button = filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL);
|
||||
|
||||
//get search
|
||||
$search = $_REQUEST['search'] ?? null;
|
||||
|
|
@ -235,7 +235,7 @@
|
|||
}
|
||||
echo th_order_by('call_flow_enabled', $text['label-enabled'], $order_by, $order, null, "class='center'");
|
||||
echo th_order_by('call_flow_description', $text['label-call_flow_description'], $order_by, $order, null, "class='hide-sm-dn'");
|
||||
if (permission_exists('call_flow_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('call_flow_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -243,8 +243,12 @@
|
|||
if (!empty($call_flows)) {
|
||||
$x = 0;
|
||||
foreach ($call_flows as $row) {
|
||||
$list_row_url = '';
|
||||
if (permission_exists('call_flow_edit')) {
|
||||
$list_row_url = "call_flow_edit.php?id=".urlencode($row['call_flow_uuid']);
|
||||
if ($row['domain_uuid'] != $_SESSION['domain_uuid'] && permission_exists('domain_select')) {
|
||||
$list_row_url .= '&domain_uuid='.urlencode($row['domain_uuid']).'&domain_change=true';
|
||||
}
|
||||
}
|
||||
echo "<tr class='list-row' href='".$list_row_url."'>\n";
|
||||
if (permission_exists('call_flow_add') || permission_exists('call_flow_edit') || permission_exists('call_flow_delete')) {
|
||||
|
|
@ -287,7 +291,7 @@
|
|||
echo escape($row['call_flow_enabled']);
|
||||
}
|
||||
echo " <td class='description overflow hide-sm-dn'>".escape($row['call_flow_description'])." </td>\n";
|
||||
if (permission_exists('call_flow_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('call_flow_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'>";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
@ -311,3 +315,4 @@
|
|||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@
|
|||
*/
|
||||
|
||||
//define the call_flows class
|
||||
if (!class_exists('call_flows')) {
|
||||
class call_flows {
|
||||
|
||||
/**
|
||||
|
|
@ -121,7 +120,7 @@ if (!class_exists('call_flows')) {
|
|||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('dialplan_delete', 'temp');
|
||||
$p->add('dialplan_detail_delete', 'temp');
|
||||
|
||||
|
|
@ -223,7 +222,7 @@ if (!class_exists('call_flows')) {
|
|||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('dialplan_edit', 'temp');
|
||||
|
||||
//save the array
|
||||
|
|
@ -374,7 +373,7 @@ if (!class_exists('call_flows')) {
|
|||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('dialplan_add', 'temp');
|
||||
|
||||
//save the array
|
||||
|
|
@ -410,6 +409,3 @@ if (!class_exists('call_flows')) {
|
|||
} //method
|
||||
|
||||
} //class
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@
|
|||
//includes files
|
||||
require_once dirname(__DIR__, 2) . "/resources/require.php";
|
||||
require_once "resources/check_auth.php";
|
||||
require_once "resources/classes/waveform.php";
|
||||
|
||||
use maximal\audio\Waveform;
|
||||
|
||||
|
|
@ -96,8 +95,8 @@
|
|||
Waveform::$colorB = !empty($_SESSION['theme']['audio_player_waveform_color_b_leg']['text']) ? color_to_rgba_array($_SESSION['theme']['audio_player_waveform_color_b_leg']['text']) : [0,125,232,0.6]; // array rgba, right (b-leg) wave color
|
||||
Waveform::$backgroundColor = !empty($_SESSION['theme']['audio_player_waveform_color_background']['text']) ? color_to_rgba_array($_SESSION['theme']['audio_player_waveform_color_background']['text']) : [0,0,0,0]; // array rgba, default: transparent
|
||||
Waveform::$axisColor = !empty($_SESSION['theme']['audio_player_waveform_color_axis']['text']) ? color_to_rgba_array($_SESSION['theme']['audio_player_waveform_color_axis']['text']) : [0,0,0,0.3]; // array rgba
|
||||
Waveform::$singlePhase = empty($_SESSION['theme']['audio_player_waveform_single_phase']['boolean']) || $_SESSION['theme']['audio_player_waveform_single_phase']['boolean'] !== 'true' ? false : true; // positive phase only - left (a-leg) top, right (b-leg) bottom
|
||||
Waveform::$singleAxis = empty($_SESSION['theme']['audio_player_waveform_single_axis']['boolean']) || $_SESSION['theme']['audio_player_waveform_single_axis']['boolean'] !== 'false' ? true : false; // combine channels into single axis
|
||||
Waveform::$singlePhase = filter_var($_SESSION['theme']['audio_player_waveform_single_phase']['boolean'] ?? false, FILTER_VALIDATE_BOOL) ? 'true': 'false'; // positive phase only - left (a-leg) top, right (b-leg) bottom
|
||||
Waveform::$singleAxis = filter_var($_SESSION['theme']['audio_player_waveform_single_axis']['boolean'] ?? true, FILTER_VALIDATE_BOOL) ? 'true': 'false'; // combine channels into single axis
|
||||
$height = !empty($_SESSION['theme']['audio_player_waveform_height']['text']) && is_numeric(str_replace('px','',$_SESSION['theme']['audio_player_waveform_height']['text'])) ? 2.2 * (int) str_replace('px','',$_SESSION['theme']['audio_player_waveform_height']['text']) : null;
|
||||
$wf = $waveform->getWaveform($temp_filename, 1600, $height ?? 180); // input: png filename returns boolean true/false, or 'base64' returns base64 string
|
||||
}
|
||||
|
|
|
|||
|
|
@ -209,6 +209,9 @@
|
|||
}
|
||||
require_once "resources/header.php";
|
||||
|
||||
//set the back button
|
||||
$_SESSION['call_forward_back'] = $_SERVER['PHP_SELF'];
|
||||
|
||||
//show the content
|
||||
if ($is_included) {
|
||||
echo "<div class='action_bar sub'>\n";
|
||||
|
|
@ -238,7 +241,7 @@
|
|||
}
|
||||
}
|
||||
if ($show !== 'all' && permission_exists('call_forward_all')) {
|
||||
echo button::create(['type' => 'button', 'label' => $text['button-show_all'], 'icon' => $_SESSION['theme']['button_icon_all'], 'link' => '?show=all' . $param]);
|
||||
echo button::create(['type' => 'button', 'label' => $text['button-show_all'], 'icon' => $_SESSION['theme']['button_icon_all'], 'link' => '?show=all' . (!empty($params) ? '&'.implode('&', $params) : null)]);
|
||||
}
|
||||
echo "<form id='form_search' class='inline' method='get'>\n";
|
||||
if ($show == 'all' && permission_exists('call_forward_all')) {
|
||||
|
|
@ -293,8 +296,8 @@
|
|||
echo " <th>" . $text['label-dnd'] . "</th>\n";
|
||||
}
|
||||
echo " <th class='" . ($is_included ? 'hide-md-dn' : 'hide-sm-dn') . "'>" . $text['label-description'] . "</th>\n";
|
||||
$list_row_edit_button = $_SESSION['theme']['list_row_edit_button']['boolean'] ?? 'false';
|
||||
if ( $list_row_edit_button === 'true') {
|
||||
$list_row_edit_button = filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL);
|
||||
if ($list_row_edit_button) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -303,6 +306,9 @@
|
|||
$x = 0;
|
||||
foreach ($extensions as $row) {
|
||||
$list_row_url = PROJECT_PATH . "/app/call_forward/call_forward_edit.php?id=" . $row['extension_uuid'] . "&return_url=" . urlencode($_SERVER['REQUEST_URI']);
|
||||
if ($row['domain_uuid'] != $_SESSION['domain_uuid'] && permission_exists('domain_select')) {
|
||||
$list_row_url .= '&domain_uuid='.urlencode($row['domain_uuid']).'&domain_change=true';
|
||||
}
|
||||
echo "<tr class='list-row' href='" . $list_row_url . "'>\n";
|
||||
if (!$is_included && $extensions) {
|
||||
echo " <td class='checkbox'>\n";
|
||||
|
|
@ -396,7 +402,7 @@
|
|||
echo " </td>\n";
|
||||
}
|
||||
echo " <td class='description overflow " . ($is_included ? 'hide-md-dn' : 'hide-sm-dn') . "'>" . escape($row['description']) . " </td>\n";
|
||||
if ($list_row_edit_button === 'true') {
|
||||
if ($list_row_edit_button) {
|
||||
echo " <td class='action-button'>";
|
||||
echo button::create(['type' => 'button', 'title' => $text['button-edit'], 'icon' => $_SESSION['theme']['button_icon_edit'], 'link' => $list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
|
|||
|
|
@ -248,7 +248,7 @@
|
|||
}
|
||||
|
||||
//add the dialplan permission
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add("extension_edit", "temp");
|
||||
|
||||
//save the data
|
||||
|
|
@ -341,7 +341,7 @@
|
|||
*/
|
||||
|
||||
//send feature event notify to the phone
|
||||
if (!empty($_SESSION['device']['feature_sync']['boolean']) && $_SESSION['device']['feature_sync']['boolean'] == "true") {
|
||||
if (filter_var($_SESSION['device']['feature_sync']['boolean'] ?? false, FILTER_VALIDATE_BOOL)) {
|
||||
$ring_count = ceil($call_timeout / 6);
|
||||
$feature_event_notify = new feature_event_notify;
|
||||
$feature_event_notify->domain_name = $_SESSION['domain_name'];
|
||||
|
|
@ -421,7 +421,6 @@
|
|||
|
||||
//synchronize configuration
|
||||
if (!empty($_SESSION['switch']['extensions']['dir']) && is_readable($_SESSION['switch']['extensions']['dir'])) {
|
||||
require_once "app/extensions/resources/classes/extension.php";
|
||||
$ext = new extension;
|
||||
$ext->xml();
|
||||
unset($ext);
|
||||
|
|
@ -504,7 +503,7 @@
|
|||
}
|
||||
|
||||
//prepare the autocomplete
|
||||
if(!empty($_SESSION['follow_me']['follow_me_autocomplete']['boolean']) && $_SESSION['follow_me']['follow_me_autocomplete']['boolean'] == 'true') {
|
||||
if(filter_var($_SESSION['follow_me']['follow_me_autocomplete']['boolean'] ?? false, FILTER_VALIDATE_BOOLEAN)) {
|
||||
echo "<link rel=\"stylesheet\" href=\"".PROJECT_PATH."/resources/jquery/jquery-ui.min.css\" />\n";
|
||||
echo "<script src=\"".PROJECT_PATH."/resources/jquery/jquery-ui.min.js\"></script>\n";
|
||||
echo "<script type=\"text/javascript\">\n";
|
||||
|
|
@ -533,13 +532,16 @@
|
|||
$object = new token;
|
||||
$token = $object->create($_SERVER['PHP_SELF']);
|
||||
|
||||
//save the back button location using referer
|
||||
$back_destination = "window.location.href='" . ($_SESSION['call_forward_back'] ?? "/app/call_forward/call_forward.php") . "'";
|
||||
|
||||
//show the content
|
||||
echo "<form method='post' name='frm' id='frm'>\n";
|
||||
|
||||
echo "<div class='action_bar' id='action_bar'>\n";
|
||||
echo " <div class='heading'><b>".$text['title-call_forward']."</b></div>\n";
|
||||
echo " <div class='actions'>\n";
|
||||
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','onclick'=>'history.back();']);
|
||||
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','onclick'=>$back_destination]);
|
||||
echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'id'=>'btn_save','style'=>'margin-left: 15px;']);
|
||||
echo " </div>\n";
|
||||
echo " <div style='clear: both;'></div>\n";
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@
|
|||
}
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('extension_add', 'temp');
|
||||
|
||||
//execute update
|
||||
|
|
@ -214,7 +214,7 @@
|
|||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('extension_edit', 'temp');
|
||||
|
||||
//save the array
|
||||
|
|
@ -227,7 +227,7 @@
|
|||
$p->delete('extension_edit', 'temp');
|
||||
|
||||
//send feature event notify to the phone
|
||||
if (!empty($_SESSION['device']['feature_sync']['boolean']) && $_SESSION['device']['feature_sync']['boolean'] == "true") {
|
||||
if (filter_var($_SESSION['device']['feature_sync']['boolean'] ?? false, FILTER_VALIDATE_BOOL)) {
|
||||
foreach ($extensions as $uuid => $extension) {
|
||||
$feature_event_notify = new feature_event_notify;
|
||||
$feature_event_notify->domain_name = $_SESSION['domain_name'];
|
||||
|
|
@ -248,7 +248,6 @@
|
|||
|
||||
//synchronize configuration
|
||||
if (!empty($_SESSION['switch']['extensions']['dir']) && is_readable($_SESSION['switch']['extensions']['dir'])) {
|
||||
require_once "app/extensions/resources/classes/extension.php";
|
||||
$ext = new extension;
|
||||
$ext->xml();
|
||||
unset($ext);
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@
|
|||
$array['extensions'][0]['do_not_disturb'] = $this->enabled;
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('extension_edit', 'temp');
|
||||
|
||||
//execute update
|
||||
|
|
@ -226,7 +226,7 @@
|
|||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('extension_edit', 'temp');
|
||||
|
||||
//save the array
|
||||
|
|
@ -240,7 +240,7 @@
|
|||
$p->delete('extension_edit', 'temp');
|
||||
|
||||
//send feature event notify to the phone
|
||||
if (!empty($_SESSION['device']['feature_sync']['boolean']) && $_SESSION['device']['feature_sync']['boolean'] == "true") {
|
||||
if (filter_var($_SESSION['device']['feature_sync']['boolean'] ?? false, FILTER_VALIDATE_BOOL)) {
|
||||
foreach ($extensions as $uuid => $extension) {
|
||||
$feature_event_notify = new feature_event_notify;
|
||||
$feature_event_notify->domain_name = $_SESSION['domain_name'];
|
||||
|
|
@ -261,7 +261,6 @@
|
|||
|
||||
//synchronize configuration
|
||||
if (!empty($_SESSION['switch']['extensions']['dir']) && is_readable($_SESSION['switch']['extensions']['dir'])) {
|
||||
require_once "app/extensions/resources/classes/extension.php";
|
||||
$ext = new extension;
|
||||
$ext->xml();
|
||||
unset($ext);
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@
|
|||
$array['follow_me'][0]['follow_me_enabled'] = $this->follow_me_enabled;
|
||||
$array['follow_me'][0]['follow_me_ignore_busy'] = $this->follow_me_ignore_busy;
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('follow_me_add', 'temp');
|
||||
//execute insert
|
||||
$database = new database;
|
||||
|
|
@ -115,7 +115,7 @@
|
|||
$array['follow_me'][0]['follow_me_enabled'] = $this->follow_me_enabled;
|
||||
$array['follow_me'][0]['follow_me_ignore_busy'] = $this->follow_me_ignore_busy;
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('follow_me_add', 'temp');
|
||||
//execute update
|
||||
$database = new database;
|
||||
|
|
@ -135,7 +135,7 @@
|
|||
//delete related follow me destinations
|
||||
$array['follow_me_destinations'][0]['follow_me_uuid'] = $this->follow_me_uuid;
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('follow_me_destination_delete', 'temp');
|
||||
//execute delete
|
||||
$database = new database;
|
||||
|
|
@ -210,7 +210,7 @@
|
|||
}
|
||||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('follow_me_destination_add', 'temp');
|
||||
//execute insert
|
||||
$database = new database;
|
||||
|
|
@ -234,7 +234,7 @@
|
|||
$extension_uuid = $result[0]['extension_uuid'];
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add("follow_me_edit", 'temp');
|
||||
$p->add("extension_edit", 'temp');
|
||||
|
||||
|
|
@ -389,7 +389,7 @@
|
|||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('extension_edit', 'temp');
|
||||
$p->add('follow_me_edit', 'temp');
|
||||
|
||||
|
|
@ -405,7 +405,7 @@
|
|||
$p->delete('follow_me_edit', 'temp');
|
||||
|
||||
//send feature event notify to the phone
|
||||
if (!empty($_SESSION['device']['feature_sync']['boolean']) && $_SESSION['device']['feature_sync']['boolean'] == "true") {
|
||||
if (filter_var($_SESSION['device']['feature_sync']['boolean'] ?? false, FILTER_VALIDATE_BOOL)) {
|
||||
foreach ($extensions as $uuid => $extension) {
|
||||
$feature_event_notify = new feature_event_notify;
|
||||
$feature_event_notify->domain_name = $_SESSION['domain_name'];
|
||||
|
|
@ -426,7 +426,6 @@
|
|||
|
||||
//synchronize configuration
|
||||
if (!empty($_SESSION['switch']['extensions']['dir']) && is_readable($_SESSION['switch']['extensions']['dir'])) {
|
||||
require_once "app/extensions/resources/classes/extension.php";
|
||||
$ext = new extension;
|
||||
$ext->xml();
|
||||
unset($ext);
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ $array['dashboard'][$x]['dashboard_uuid'] = 'ba60799a-1c40-44a8-80ef-c2be4f4692f
|
|||
$array['dashboard'][$x]['dashboard_name'] = 'Call Forward';
|
||||
$array['dashboard'][$x]['dashboard_path'] = 'call_forward/call_forward';
|
||||
$array['dashboard'][$x]['dashboard_icon'] = 'fa-forward';
|
||||
$array['dashboard'][$x]['dashboard_icon_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_url'] = '/app/call_forward/call_forward.php';
|
||||
$array['dashboard'][$x]['dashboard_target'] = 'self';
|
||||
$array['dashboard'][$x]['dashboard_width'] = '';
|
||||
|
|
@ -18,9 +19,9 @@ $array['dashboard'][$x]['dashboard_label_text_color'] = '';
|
|||
$array['dashboard'][$x]['dashboard_label_text_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_background_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_background_color'] ='';
|
||||
$array['dashboard'][$x]['dashboard_background_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_detail_background_color'] = '';
|
||||
|
|
|
|||
|
|
@ -34,6 +34,9 @@
|
|||
$y++;
|
||||
$apps[$x]['permissions'][$y]['name'] = 'call_recording_download';
|
||||
$apps[$x]['permissions'][$y]['groups'][] = 'superadmin';
|
||||
$y++;
|
||||
$apps[$x]['permissions'][$y]['name'] = 'call_recording_transcribe';
|
||||
$apps[$x]['permissions'][$y]['groups'][] = 'superadmin';
|
||||
$y = 0;
|
||||
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "95cb740e-e377-4852-8894-06441c61e78b";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_category'] = "call_recordings";
|
||||
|
|
@ -42,4 +45,13 @@
|
|||
$apps[$x]['default_settings'][$y]['default_setting_value'] = "90";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Number of days to retain the maintenance logs in the database.";
|
||||
$y++;
|
||||
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "e329db05-2967-422a-a71f-d0175b083828";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_category'] = "call_recordings";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "record_extension";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_value'] = "mp3";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Call recording file format options: wav, mp3";
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -38,13 +38,16 @@
|
|||
exit;
|
||||
}
|
||||
|
||||
//create the database connection
|
||||
$database = new database;
|
||||
|
||||
//add multi-lingual support
|
||||
$language = new text;
|
||||
$text = $language->get();
|
||||
|
||||
//add the settings object
|
||||
$settings = new settings(["domain_uuid" => $_SESSION['domain_uuid'], "user_uuid" => $_SESSION['user_uuid']]);
|
||||
$transcribe_enabled = $settings->get('transcribe', 'enabled', 'false');
|
||||
$transcribe_enabled = $settings->get('transcribe', 'enabled', false);
|
||||
$transcribe_engine = $settings->get('transcribe', 'engine', '');
|
||||
|
||||
//set additional variables
|
||||
|
|
@ -68,7 +71,7 @@
|
|||
}
|
||||
break;
|
||||
case 'transcribe':
|
||||
if (permission_exists('call_recording_download')) {
|
||||
if (permission_exists('call_recording_transcribe')) {
|
||||
$obj = new call_recordings;
|
||||
$obj->transcribe($call_recordings);
|
||||
}
|
||||
|
|
@ -104,24 +107,6 @@
|
|||
}
|
||||
$parameters['time_zone'] = $time_zone;
|
||||
|
||||
//get the count
|
||||
//$sql = "select count(*) ";
|
||||
//$sql .= "from view_call_recordings ";
|
||||
//$sql .= "where true ";
|
||||
//if ($_GET['show'] != "all" || !permission_exists('call_recording_all')) {
|
||||
// $sql .= "and (domain_uuid = :domain_uuid or domain_uuid is null) ";
|
||||
// $parameters['domain_uuid'] = $_SESSION['domain_uuid'];
|
||||
//}
|
||||
//if (isset($search)) {
|
||||
// $sql .= "and (";
|
||||
// $sql .= " lower(call_recording_name) like :search ";
|
||||
// $sql .= " or lower(call_recording_path) like :search ";
|
||||
// $sql .= ") ";
|
||||
// $parameters['search'] = '%'.$search.'%';
|
||||
//}
|
||||
//$database = new database;
|
||||
//$num_rows = $database->select($sql, $parameters, 'column');
|
||||
|
||||
//prepare some of the paging values
|
||||
$rows_per_page = (!empty($_SESSION['domain']['paging']['numeric'])) ? $_SESSION['domain']['paging']['numeric'] : 50;
|
||||
$page = $_GET['page'] ?? '';
|
||||
|
|
@ -138,7 +123,7 @@
|
|||
//$sql .= "from v_call_recordings as r, v_domains as d ";
|
||||
$sql .= "where true ";
|
||||
if ($show != "all" || !permission_exists('call_recording_all')) {
|
||||
$sql .= "and (r.domain_uuid = :domain_uuid or r.domain_uuid is null) ";
|
||||
$sql .= "and r.domain_uuid = :domain_uuid ";
|
||||
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
|
||||
}
|
||||
$sql .= "and r.domain_uuid = d.domain_uuid ";
|
||||
|
|
@ -156,21 +141,17 @@
|
|||
}
|
||||
$sql .= order_by($order_by, $order, 'r.call_recording_date', 'desc');
|
||||
$sql .= limit_offset($rows_per_page, $offset);
|
||||
$database = new database;
|
||||
$call_recordings = $database->select($sql, $parameters ?? null, 'all');
|
||||
unset($sql, $parameters);
|
||||
|
||||
//detect if any transcriptions available
|
||||
if ($transcribe_enabled == 'true' && !empty($transcribe_engine) && !empty($call_recordings) && is_array($call_recordings)) {
|
||||
if ($transcribe_enabled && !empty($transcribe_engine) && !empty($call_recordings) && is_array($call_recordings)) {
|
||||
$transcriptions_exists = false;
|
||||
foreach ($call_recordings as $row) {
|
||||
if (!empty($row['call_recording_transcription'])) { $transcriptions_exists = true; }
|
||||
}
|
||||
}
|
||||
|
||||
//count the results
|
||||
$result_count = is_array($call_recordings) ? sizeof($call_recordings) : 0;
|
||||
|
||||
//limit the number of results
|
||||
if (!empty($_SESSION['cdr']['limit']['numeric']) && $_SESSION['cdr']['limit']['numeric'] > 0) {
|
||||
$num_rows = $_SESSION['cdr']['limit']['numeric'];
|
||||
|
|
@ -199,7 +180,7 @@
|
|||
if (permission_exists('call_recording_download') && !empty($call_recordings)) {
|
||||
echo button::create(['type'=>'button','label'=>$text['button-download'],'icon'=>$_SESSION['theme']['button_icon_download'],'id'=>'btn_download','name'=>'btn_download','style'=>'display: none;','collapse'=>'hide-xs','onclick'=>"list_action_set('download'); list_form_submit('form_list');"]);
|
||||
}
|
||||
if ($transcribe_enabled == 'true' && !empty($transcribe_engine) && !empty($call_recordings)) {
|
||||
if (permission_exists('call_recording_transcribe') && $transcribe_enabled && !empty($transcribe_engine) && !empty($call_recordings)) {
|
||||
echo button::create(['type'=>'button','label'=>$text['button-transcribe'],'icon'=>'quote-right','id'=>'btn_transcribe','name'=>'btn_transcribe','style'=>'display: none;','collapse'=>'hide-xs','onclick'=>"list_action_set('transcribe'); list_form_submit('form_list');"]);
|
||||
}
|
||||
if (permission_exists('call_recording_delete') && !empty($call_recordings)) {
|
||||
|
|
@ -272,12 +253,9 @@
|
|||
if (is_array($call_recordings) && @sizeof($call_recordings) != 0) {
|
||||
$x = 0;
|
||||
foreach ($call_recordings as $row) {
|
||||
//add padding to the call recording length
|
||||
$call_recording_length_padding = (!empty($row['call_recording_length'])) ? str_pad($row['call_recording_length'], 2, '0', STR_PAD_LEFT) : '';
|
||||
|
||||
//playback progress bar
|
||||
if (permission_exists('call_recording_play')) {
|
||||
echo "<tr class='list-row' id='recording_progress_bar_".escape($row['call_recording_uuid'])."' style='display: none;' onclick=\"recording_play('".escape($row['call_recording_uuid'])."')\"><td id='playback_progress_bar_background_".escape($row['call_recording_uuid'])."' class='playback_progress_bar_background' colspan='".$col_count."'><span class='playback_progress_bar' id='recording_progress_".escape($row['call_recording_uuid'])."'></span></td>".(permission_exists('xml_cdr_details') ? "<td class='action-button' style='border-bottom: none !important;'></td>" : null)."</tr>\n";
|
||||
echo "<tr class='list-row' id='recording_progress_bar_".escape($row['call_recording_uuid'])."' style='display: none;' onclick=\"recording_seek(event,'".escape($row['call_recording_uuid'])."')\"><td id='playback_progress_bar_background_".escape($row['call_recording_uuid'])."' class='playback_progress_bar_background' colspan='".$col_count."'><span class='playback_progress_bar' id='recording_progress_".escape($row['call_recording_uuid'])."'></span></td>".(permission_exists('xml_cdr_details') ? "<td class='action-button' style='border-bottom: none !important;'></td>" : null)."</tr>\n";
|
||||
echo "<tr class='list-row' style='display: none;'><td></td></tr>\n"; // dummy row to maintain alternating background color
|
||||
}
|
||||
if (permission_exists('call_recording_play')) {
|
||||
|
|
@ -314,13 +292,13 @@
|
|||
if (permission_exists('call_recording_download')) {
|
||||
echo button::create(['type'=>'button','title'=>$text['label-download'],'icon'=>$_SESSION['theme']['button_icon_download'],'link'=>'download.php?id='.urlencode($row['call_recording_uuid']).'&binary']);
|
||||
}
|
||||
if ($transcribe_enabled == 'true' && !empty($transcribe_engine) && $transcriptions_exists === true) {
|
||||
if (permission_exists('call_recording_transcribe') && $transcribe_enabled && !empty($transcribe_engine) && $transcriptions_exists === true) {
|
||||
echo button::create(['type'=>'button','title'=>$text['label-transcription'],'icon'=>'quote-right','style'=>(empty($row['call_recording_transcription']) ? 'visibility:hidden;' : null),'onclick'=>"document.getElementById('transcription_".$row['call_recording_uuid']."').style.display = document.getElementById('transcription_".$row['call_recording_uuid']."').style.display == 'none' ? 'table-row' : 'none'; this.blur(); return false;"]);
|
||||
}
|
||||
}
|
||||
echo " </td>\n";
|
||||
}
|
||||
echo " <td class='right overflow hide-sm-dn shrink'>".($row['call_recording_length'] <= 59 ? '0:' : null).escape($call_recording_length_padding)."</td>\n";
|
||||
echo " <td class='right overflow hide-sm-dn shrink'>".escape(gmdate("G:i:s", $row['call_recording_length']))."</td>\n";
|
||||
echo " <td class='overflow center no-wrap'>".escape($row['call_recording_date_formatted'])." <span class='hide-sm-dn'>".escape($row['call_recording_time_formatted'])."</span></td>\n";
|
||||
echo " <td class='left hide-sm-dn shrink'>".($row['call_direction'] != '' ? escape($text['label-'.$row['call_direction']]) : null)."</td>\n";
|
||||
if (permission_exists('xml_cdr_details')) {
|
||||
|
|
@ -329,7 +307,7 @@
|
|||
echo " </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
if ($transcribe_enabled == 'true' && !empty($transcribe_engine) && !empty($row['call_recording_transcription'])) {
|
||||
if (permission_exists('call_recording_transcribe') && $transcribe_enabled && !empty($transcribe_engine) && !empty($row['call_recording_transcription'])) {
|
||||
echo "<tr style='display: none;'><td></td></tr>\n"; // dummy row to maintain same background color for transcription row
|
||||
echo "<tr id='transcription_".$row['call_recording_uuid']."' class='list-row' style='display: none;'>\n";
|
||||
echo " <td style='padding: 10px 20px 15px 20px;' colspan='".$col_count."'>\n";
|
||||
|
|
|
|||
|
|
@ -26,10 +26,7 @@
|
|||
|
||||
/**
|
||||
* call_recordings class
|
||||
*
|
||||
* @method null download
|
||||
*/
|
||||
if (!class_exists('call_recordings')) {
|
||||
class call_recordings {
|
||||
|
||||
/**
|
||||
|
|
@ -110,7 +107,7 @@ if (!class_exists('call_recordings')) {
|
|||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//add temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('xml_cdr_edit', 'temp');
|
||||
|
||||
//remove record_path, record_name and record_length
|
||||
|
|
@ -152,11 +149,11 @@ if (!class_exists('call_recordings')) {
|
|||
|
||||
//add the settings object
|
||||
$settings = new settings(["domain_uuid" => $_SESSION['domain_uuid'], "user_uuid" => $_SESSION['user_uuid']]);
|
||||
$transcribe_enabled = $settings->get('transcribe', 'enabled', 'false');
|
||||
$transcribe_enabled = $settings->get('transcribe', 'enabled', false);
|
||||
$transcribe_engine = $settings->get('transcribe', 'engine', '');
|
||||
|
||||
//transcribe multiple recordings
|
||||
if ($transcribe_enabled == 'true' && !empty($transcribe_engine) && is_array($records) && @sizeof($records) != 0) {
|
||||
if ($transcribe_enabled && !empty($transcribe_engine) && is_array($records) && @sizeof($records) != 0) {
|
||||
//add the transcribe object
|
||||
$transcribe = new transcribe($settings);
|
||||
|
||||
|
|
@ -200,7 +197,7 @@ if (!class_exists('call_recordings')) {
|
|||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//add temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('xml_cdr_edit', 'temp');
|
||||
|
||||
//remove record_path, record_name and record_length
|
||||
|
|
@ -274,6 +271,7 @@ if (!class_exists('call_recordings')) {
|
|||
case "ogg" : header("Content-Type: audio/ogg"); break;
|
||||
}
|
||||
}
|
||||
$call_recording_name = preg_replace('#[^a-zA-Z0-9_\-\.]#', '', $call_recording_name);
|
||||
header('Content-Disposition: attachment; filename="'.$call_recording_name.'"');
|
||||
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
|
||||
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
|
||||
|
|
@ -415,7 +413,7 @@ if (!class_exists('call_recordings')) {
|
|||
}
|
||||
// If the range starts with an '-' we start from the beginning
|
||||
// If not, we forward the file pointer
|
||||
// And make sure to get the end byte if spesified
|
||||
// And make sure to get the end byte if specified
|
||||
if ($range[0] == '-') {
|
||||
// The n-number of the last bytes is requested
|
||||
$c_start = $size - substr($range, 1);
|
||||
|
|
@ -482,7 +480,7 @@ if (!class_exists('call_recordings')) {
|
|||
$domain_settings = new settings(['database' => $database, 'domain_uuid' => $domain_uuid]);
|
||||
|
||||
//get the recording location for this domain
|
||||
$call_recording_location = $domain_settings->get('switch', 'recordings', '/var/lib/freeswitch/storage/recordings') . '/default';
|
||||
$call_recording_location = $domain_settings->get('switch', 'recordings', '/var/lib/freeswitch/recordings');
|
||||
|
||||
//get the retention days for this domain
|
||||
$retention_days = $domain_settings->get('call_recordings', 'filesystem_retention_days', '');
|
||||
|
|
@ -492,8 +490,8 @@ if (!class_exists('call_recordings')) {
|
|||
$retention_days = intval($retention_days);
|
||||
|
||||
//get list of mp3 and wav files
|
||||
$mp3_files = glob("$call_recording_location/$domain_name/*/archive/*.mp3");
|
||||
$wav_files = glob("$call_recording_location/$domain_name/*/archive/*.wav");
|
||||
$mp3_files = glob("$call_recording_location/$domain_name/archive/*/*/*/*.mp3");
|
||||
$wav_files = glob("$call_recording_location/$domain_name/archive/*/*/*/*.wav");
|
||||
|
||||
//combine to single array
|
||||
$domain_call_recording_files = array_merge($mp3_files, $wav_files);
|
||||
|
|
@ -506,7 +504,7 @@ if (!class_exists('call_recordings')) {
|
|||
//remove the file when it is older
|
||||
if (unlink($file)) {
|
||||
//log success
|
||||
maintenance_service::log_write(self::class, "Removed $file from call_recordings", $domain_uuid);
|
||||
maintenance_service::log_write(self::class, "Removed $file from call_recordings older than $retention_days days", $domain_uuid);
|
||||
} else {
|
||||
//log failure
|
||||
maintenance_service::log_write(self::class, "Unable to remove $file", $domain_uuid, maintenance_service::LOG_ERROR);
|
||||
|
|
@ -524,6 +522,3 @@ if (!class_exists('call_recordings')) {
|
|||
}
|
||||
|
||||
} //class
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@
|
|||
//includes files
|
||||
require_once dirname(__DIR__, 2) . "/resources/require.php";
|
||||
require_once "resources/check_auth.php";
|
||||
require_once "resources/classes/waveform.php";
|
||||
|
||||
use maximal\audio\Waveform;
|
||||
|
||||
|
|
@ -84,8 +83,8 @@
|
|||
Waveform::$colorB = !empty($_SESSION['theme']['audio_player_waveform_color_b_leg']['text']) ? color_to_rgba_array($_SESSION['theme']['audio_player_waveform_color_b_leg']['text']) : [0,125,232,0.6]; // array rgba, right (b-leg) wave color
|
||||
Waveform::$backgroundColor = !empty($_SESSION['theme']['audio_player_waveform_color_background']['text']) ? color_to_rgba_array($_SESSION['theme']['audio_player_waveform_color_background']['text']) : [0,0,0,0]; // array rgba, default: transparent
|
||||
Waveform::$axisColor = !empty($_SESSION['theme']['audio_player_waveform_color_axis']['text']) ? color_to_rgba_array($_SESSION['theme']['audio_player_waveform_color_axis']['text']) : [0,0,0,0.3]; // array rgba
|
||||
Waveform::$singlePhase = empty($_SESSION['theme']['audio_player_waveform_single_phase']['boolean']) || $_SESSION['theme']['audio_player_waveform_single_phase']['boolean'] !== 'true' ? false : true; // positive phase only - left (a-leg) top, right (b-leg) bottom
|
||||
Waveform::$singleAxis = empty($_SESSION['theme']['audio_player_waveform_single_axis']['boolean']) || $_SESSION['theme']['audio_player_waveform_single_axis']['boolean'] !== 'false' ? true : false; // combine channels into single axis
|
||||
Waveform::$singlePhase = filter_var($_SESSION['theme']['audio_player_waveform_single_phase']['boolean'] ?? false, FILTER_VALIDATE_BOOL) ? 'true': 'false'; // positive phase only - left (a-leg) top, right (b-leg) bottom
|
||||
Waveform::$singleAxis = filter_var($_SESSION['theme']['audio_player_waveform_single_axis']['boolean'] ?? true, FILTER_VALIDATE_BOOL) ? 'true': 'false'; // combine channels into single axis
|
||||
$height = !empty($_SESSION['theme']['audio_player_waveform_height']['text']) && is_numeric(str_replace('px','',$_SESSION['theme']['audio_player_waveform_height']['text'])) ? 2.2 * (int) str_replace('px','',$_SESSION['theme']['audio_player_waveform_height']['text']) : null;
|
||||
$wf = $waveform->getWaveform($temp_filename, 1600, $height ?? 180); // input: png filename returns boolean true/false, or 'base64' returns base64 string
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,5 +56,16 @@
|
|||
$y++;
|
||||
$apps[$x]['permissions'][$y]['name'] = "call_active_all";
|
||||
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
|
||||
|
||||
$y++;
|
||||
$apps[$x]['permissions'][$y]['name'] = "call_active_profile";
|
||||
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
|
||||
$y++;
|
||||
$apps[$x]['permissions'][$y]['name'] = "call_active_application";
|
||||
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
|
||||
$y++;
|
||||
$apps[$x]['permissions'][$y]['name'] = "call_active_codec";
|
||||
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
|
||||
$y++;
|
||||
$apps[$x]['permissions'][$y]['name'] = "call_active_secure";
|
||||
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -468,8 +468,8 @@ $text['label-domain']['zh-cn'] = "领域";
|
|||
$text['label-domain']['ja-jp'] = "ドメイン";
|
||||
$text['label-domain']['ko-kr'] = "도메인";
|
||||
|
||||
$text['label-destination']['en-us'] = "Dest";
|
||||
$text['label-destination']['en-gb'] = "Dest";
|
||||
$text['label-destination']['en-us'] = "Destination";
|
||||
$text['label-destination']['en-gb'] = "Destination";
|
||||
$text['label-destination']['ar-eg'] = "الوجهة";
|
||||
$text['label-destination']['de-at'] = "Ziel";
|
||||
$text['label-destination']['de-ch'] = "Ziel";
|
||||
|
|
@ -546,8 +546,8 @@ $text['label-codec']['zh-cn'] = "读/写编解码器";
|
|||
$text['label-codec']['ja-jp'] = "読み取り/書き込みコーデック";
|
||||
$text['label-codec']['ko-kr'] = "읽기/쓰기 코덱";
|
||||
|
||||
$text['label-cid-number']['en-us'] = "CID Number";
|
||||
$text['label-cid-number']['en-gb'] = "CID Number";
|
||||
$text['label-cid-number']['en-us'] = "Caller Number";
|
||||
$text['label-cid-number']['en-gb'] = "Caller Number";
|
||||
$text['label-cid-number']['ar-eg'] = "رقم CID";
|
||||
$text['label-cid-number']['de-at'] = "Anrufer Nummer";
|
||||
$text['label-cid-number']['de-ch'] = "Anrufer Nummer";
|
||||
|
|
@ -572,8 +572,8 @@ $text['label-cid-number']['zh-cn'] = "来电号码";
|
|||
$text['label-cid-number']['ja-jp'] = "CID番号";
|
||||
$text['label-cid-number']['ko-kr'] = "CID 번호";
|
||||
|
||||
$text['label-cid-name']['en-us'] = "CID Name";
|
||||
$text['label-cid-name']['en-gb'] = "CID Name";
|
||||
$text['label-cid-name']['en-us'] = "Caller Name";
|
||||
$text['label-cid-name']['en-gb'] = "Caller Name";
|
||||
$text['label-cid-name']['ar-eg'] = "اسم CID";
|
||||
$text['label-cid-name']['de-at'] = "Anrufer Name";
|
||||
$text['label-cid-name']['de-ch'] = "Anrufer Name";
|
||||
|
|
@ -650,6 +650,33 @@ $text['label-eavesdrop']['zh-cn'] = "窃听";
|
|||
$text['label-eavesdrop']['ja-jp'] = "盗聴";
|
||||
$text['label-eavesdrop']['ko-kr'] = "엿듣다";
|
||||
|
||||
$text['label-duration']['en-us'] = "Duration";
|
||||
$text['label-duration']['en-gb'] = "Duration";
|
||||
$text['label-duration']['ar-eg'] = "المدة";
|
||||
$text['label-duration']['de-at'] = "Dauer";
|
||||
$text['label-duration']['de-ch'] = "Dauer";
|
||||
$text['label-duration']['de-de'] = "Dauer";
|
||||
$text['label-duration']['el-gr'] = "Διάρκεια";
|
||||
$text['label-duration']['es-cl'] = "Duración";
|
||||
$text['label-duration']['es-mx'] = "Duración";
|
||||
$text['label-duration']['fr-ca'] = "Durée";
|
||||
$text['label-duration']['fr-fr'] = "Durée";
|
||||
$text['label-duration']['he-il'] = "משך השיחה";
|
||||
$text['label-duration']['it-it'] = "Durata";
|
||||
$text['label-duration']['ka-ge'] = "ხანგრძლივობა";
|
||||
$text['label-duration']['nl-nl'] = "Duur";
|
||||
$text['label-duration']['pl-pl'] = "Czas trwania";
|
||||
$text['label-duration']['pt-br'] = "Duração";
|
||||
$text['label-duration']['pt-pt'] = "Duração";
|
||||
$text['label-duration']['ro-ro'] = "Durată";
|
||||
$text['label-duration']['ru-ru'] = "Продолжительность";
|
||||
$text['label-duration']['sv-se'] = "Samtalstid";
|
||||
$text['label-duration']['uk-ua'] = "Тривалість";
|
||||
$text['label-duration']['tr-tr'] = "Süre";
|
||||
$text['label-duration']['zh-cn'] = "期间";
|
||||
$text['label-duration']['ja-jp'] = "間隔";
|
||||
$text['label-duration']['ko-kr'] = "지속";
|
||||
|
||||
$text['description-2']['en-us'] = "Use this to view all extensions and monitor and interact with active calls.";
|
||||
$text['description-2']['en-gb'] = "Use this to view all extensions and monitor and interact with active calls.";
|
||||
$text['description-2']['ar-eg'] = "استخدم هذا لعرض جميع الملحقات ومراقبة المكالمات النشطة والتفاعل معها.";
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
The Initial Developer of the Original Code is
|
||||
Mark J Crane <markjcrane@fusionpbx.com>
|
||||
Portions created by the Initial Developer are Copyright (C) 2008-2023
|
||||
Portions created by the Initial Developer are Copyright (C) 2008-2025
|
||||
the Initial Developer. All Rights Reserved.
|
||||
|
||||
Contributor(s):
|
||||
|
|
@ -78,7 +78,12 @@
|
|||
$.ajax({
|
||||
url: url,
|
||||
success: function(response){
|
||||
$("#ajax_reponse").html(response);
|
||||
$("#ajax_response").html(response);
|
||||
const table = document.getElementById('calls_active');
|
||||
var row_count = table.rows.length;
|
||||
if (row_count > 0) { row_count = row_count - 1; }
|
||||
const calls_active_count = document.getElementById('calls_active_count');
|
||||
calls_active_count.innerHTML = row_count;
|
||||
}
|
||||
});
|
||||
timer_id = setTimeout(ajax_get, refresh);
|
||||
|
|
@ -132,19 +137,70 @@
|
|||
<?php
|
||||
|
||||
//create simple array of users own extensions
|
||||
unset($_SESSION['user']['extensions']);
|
||||
if (is_array($_SESSION['user']['extension'])) {
|
||||
foreach ($_SESSION['user']['extension'] as $assigned_extensions) {
|
||||
$_SESSION['user']['extensions'][] = $assigned_extensions['user'];
|
||||
unset($_SESSION['user']['extensions']);
|
||||
if (is_array($_SESSION['user']['extension'])) {
|
||||
foreach ($_SESSION['user']['extension'] as $assigned_extensions) {
|
||||
$_SESSION['user']['extensions'][] = $assigned_extensions['user'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo "<div id='ajax_reponse'></div>\n";
|
||||
echo "<div id='cmd_response' style='display: none;'></div>\n";
|
||||
echo "<div id='time_stamp' style='visibility:hidden'>".date('Y-m-d-s')."</div>\n";
|
||||
echo "<br><br><br>";
|
||||
//create token
|
||||
$object = new token;
|
||||
$token = $object->create('/app/calls_active/calls_active_inc.php');
|
||||
$_SESSION['app']['calls_active']['token']['name'] = $token['name'];
|
||||
$_SESSION['app']['calls_active']['token']['hash'] = $token['hash'];
|
||||
|
||||
require_once "resources/footer.php";
|
||||
//show the content header
|
||||
echo "<div class='action_bar' id='action_bar'>\n";
|
||||
echo " <div class='heading'><b>".$text['title']."</b><div id='calls_active_count' class='count'>".number_format($num_rows)."</div></div>\n";
|
||||
echo " <div class='actions'>\n";
|
||||
echo " <span id='refresh_state'>".button::create(['type'=>'button','title'=>$text['label-refresh_pause'],'icon'=>'sync-alt fa-spin','onclick'=>'refresh_stop()'])."</span>";
|
||||
if (permission_exists('call_active_eavesdrop') && !empty($user['extensions'])) {
|
||||
if (sizeof($user['extensions']) > 1) {
|
||||
echo " <input type='hidden' id='eavesdrop_dest' value=\"".(($_REQUEST['eavesdrop_dest'] == '') ? $user['extension'][0]['destination'] : escape($_REQUEST['eavesdrop_dest']))."\">\n";
|
||||
echo " <i class='fas fa-headphones' style='margin-left: 15px; cursor: help;' title='".$text['description-eavesdrop_destination']."' align='absmiddle'></i>\n";
|
||||
echo " <select class='formfld' style='margin-right: 5px;' align='absmiddle' onchange=\"document.getElementById('eavesdrop_dest').value = this.options[this.selectedIndex].value; refresh_start();\" onfocus='refresh_stop();'>\n";
|
||||
if (is_array($user['extensions'])) {
|
||||
foreach ($user['extensions'] as $user_extension) {
|
||||
echo " <option value='".escape($user_extension)."' ".(($_REQUEST['eavesdrop_dest'] == $user_extension) ? "selected" : null).">".escape($user_extension)."</option>\n";
|
||||
}
|
||||
}
|
||||
echo " </select>\n";
|
||||
}
|
||||
else if (sizeof($user['extensions']) == 1) {
|
||||
echo " <input type='hidden' id='eavesdrop_dest' value=\"".escape($user['extension'][0]['destination'])."\">\n";
|
||||
}
|
||||
}
|
||||
if (permission_exists('call_active_hangup') && $rows) {
|
||||
echo button::create(['type'=>'button','label'=>$text['label-hangup'],'icon'=>'phone-slash','id'=>'btn_delete','onclick'=>"refresh_stop(); modal_open('modal-hangup','btn_hangup');"]);
|
||||
}
|
||||
if (permission_exists('call_active_all')) {
|
||||
if ($show == "all") {
|
||||
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$theme_button_icon_back,'link'=>'calls_active.php','onmouseover'=>'refresh_stop()','onmouseout'=>'refresh_start()']);
|
||||
}
|
||||
else {
|
||||
echo button::create(['type'=>'button','label'=>$text['button-show_all'],'icon'=>$theme_button_icon_all,'link'=>'calls_active.php?show=all','onmouseover'=>'refresh_stop()','onmouseout'=>'refresh_start()']);
|
||||
}
|
||||
}
|
||||
echo " </div>\n";
|
||||
echo " <div style='clear: both;'></div>\n";
|
||||
echo "</div>\n";
|
||||
|
||||
if (permission_exists('call_active_hangup') && $rows) {
|
||||
echo modal::create(['id'=>'modal-hangup','type'=>'general','message'=>$text['confirm-hangups'],'actions'=>button::create(['type'=>'button','label'=>$text['label-hangup'],'icon'=>'check','id'=>'btn_hangup','style'=>'float: right; margin-left: 15px;','collapse'=>'never','onclick'=>"modal_close(); list_action_set('hangup'); list_form_submit('form_list');"])]);
|
||||
}
|
||||
|
||||
echo $text['description']."\n";
|
||||
echo "<br /><br />\n";
|
||||
|
||||
//show the content body
|
||||
echo "<div id='ajax_response'></div>\n";
|
||||
echo "<div id='cmd_response' style='display: none;'></div>\n";
|
||||
echo "<div id='time_stamp' style='visibility:hidden'>".date('Y-m-d-s')."</div>\n";
|
||||
echo "<br><br><br>";
|
||||
|
||||
//show the footer
|
||||
require_once "resources/footer.php";
|
||||
|
||||
/*
|
||||
// deprecated functions for this page
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
The Initial Developer of the Original Code is
|
||||
Mark J Crane <markjcrane@fusionpbx.com>
|
||||
Portions created by the Initial Developer are Copyright (C) 2008-2023
|
||||
Portions created by the Initial Developer are Copyright (C) 2008-2025
|
||||
the Initial Developer. All Rights Reserved.
|
||||
|
||||
Contributor(s):
|
||||
|
|
@ -37,6 +37,21 @@
|
|||
exit;
|
||||
}
|
||||
|
||||
//get the session settings
|
||||
$domain_uuid = $_SESSION['domain_uuid'];
|
||||
$domain_name = $_SESSION['domain_name'];
|
||||
$user_uuid = $_SESSION['user_uuid'];
|
||||
$gateways = $_SESSION['gateways'];
|
||||
$user = $_SESSION['user'];
|
||||
|
||||
//initialize the settings object
|
||||
$settings = new settings(["domain_uuid" => $domain_uuid, "user_uuid" => $user_uuid]);
|
||||
|
||||
//get the settings
|
||||
$template_name = $settings->get('domain', 'template', 'default');
|
||||
$theme_button_icon_back = $settings->get('theme', 'button_icon_back', '');
|
||||
$theme_button_icon_all = $settings->get('theme', 'button_icon_all', '');
|
||||
|
||||
//add multi-lingual support
|
||||
$language = new text;
|
||||
$text = $language->get();
|
||||
|
|
@ -46,7 +61,7 @@
|
|||
if ($show != "all") { $show = ''; }
|
||||
|
||||
//include theme config for button images
|
||||
include_once("themes/".$_SESSION['domain']['template']['name']."/config.php");
|
||||
include_once("themes/".$template_name."/config.php");
|
||||
|
||||
//set the command
|
||||
$switch_cmd = 'show channels as json';
|
||||
|
|
@ -80,7 +95,7 @@
|
|||
if (($show == 'all' && permission_exists('call_active_all'))) {
|
||||
$rows[] = $row;
|
||||
}
|
||||
elseif ($row['domain_name'] == $_SESSION['domain_name']) {
|
||||
elseif ($row['domain_name'] == $domain_name) {
|
||||
$rows[] = $row;
|
||||
}
|
||||
}
|
||||
|
|
@ -88,10 +103,8 @@
|
|||
}
|
||||
$num_rows = @sizeof($rows);
|
||||
|
||||
|
||||
//if the connnection is available then run it and return the results
|
||||
if (!$event_socket) {
|
||||
|
||||
$msg = "<div align='center'>".$text['confirm-socket']."<br /></div>";
|
||||
echo "<div align='center'>\n";
|
||||
echo "<table width='40%'>\n";
|
||||
|
|
@ -103,172 +116,164 @@
|
|||
echo "</tr>\n";
|
||||
echo "</table>\n";
|
||||
echo "</div>\n";
|
||||
|
||||
return;
|
||||
}
|
||||
else {
|
||||
|
||||
//create token
|
||||
$object = new token;
|
||||
$token = $object->create('/app/calls_active/calls_active_inc.php');
|
||||
//add the style
|
||||
echo "<style>\n";
|
||||
echo " /* Small screens: Hide columns with class 'hide-small' */\n";
|
||||
echo " @media (max-width: 600px) {\n";
|
||||
echo " .hide-small {\n";
|
||||
echo " display: none;\n";
|
||||
echo " }\n";
|
||||
echo " }\n";
|
||||
echo "\n";
|
||||
echo " /* Medium screens: Hide columns with class 'hide-medium' */\n";
|
||||
echo "@media (max-width: 1023px) and (min-width: 601px) {\n";
|
||||
echo " .hide-medium {\n";
|
||||
echo " display: none;\n";
|
||||
echo " }\n";
|
||||
echo " }\n";
|
||||
echo "\n";
|
||||
echo "</style>\n";
|
||||
|
||||
//show content
|
||||
echo "<div class='action_bar' id='action_bar'>\n";
|
||||
echo " <div class='heading'><b>".$text['title']."</b><div class='count'>".number_format($num_rows)."</div></div>\n";
|
||||
echo " <div class='actions'>\n";
|
||||
echo " <span id='refresh_state'>".button::create(['type'=>'button','title'=>$text['label-refresh_pause'],'icon'=>'sync-alt fa-spin','onclick'=>'refresh_stop()'])."</span>";
|
||||
if (permission_exists('call_active_eavesdrop') && !empty($_SESSION['user']['extensions'])) {
|
||||
if (sizeof($_SESSION['user']['extensions']) > 1) {
|
||||
echo " <input type='hidden' id='eavesdrop_dest' value=\"".(($_REQUEST['eavesdrop_dest'] == '') ? $_SESSION['user']['extension'][0]['destination'] : escape($_REQUEST['eavesdrop_dest']))."\">\n";
|
||||
echo " <i class='fas fa-headphones' style='margin-left: 15px; cursor: help;' title='".$text['description-eavesdrop_destination']."' align='absmiddle'></i>\n";
|
||||
echo " <select class='formfld' style='margin-right: 5px;' align='absmiddle' onchange=\"document.getElementById('eavesdrop_dest').value = this.options[this.selectedIndex].value; refresh_start();\" onfocus='refresh_stop();'>\n";
|
||||
if (is_array($_SESSION['user']['extensions'])) {
|
||||
foreach ($_SESSION['user']['extensions'] as $user_extension) {
|
||||
echo " <option value='".escape($user_extension)."' ".(($_REQUEST['eavesdrop_dest'] == $user_extension) ? "selected" : null).">".escape($user_extension)."</option>\n";
|
||||
}
|
||||
//show the results
|
||||
echo "<div id='cmd_reponse'></div>\n";
|
||||
|
||||
echo "<form id='form_list' method='post' action='calls_exec.php'>\n";
|
||||
echo "<input type='hidden' id='action' name='action' value=''>\n";
|
||||
|
||||
echo "<div class='card'>\n";
|
||||
echo " <table id='calls_active' class='list'>\n";
|
||||
echo " <tr class='list-header'>\n";
|
||||
if (permission_exists('call_active_hangup')) {
|
||||
echo " <th class='checkbox'>\n";
|
||||
echo " <input type='checkbox' id='checkbox_all' name='checkbox_all' onclick='if (this.checked) { refresh_stop(); } else { refresh_start(); } list_all_toggle();' ".(empty($rows) ? "style='visibility: hidden;'" : null).">\n";
|
||||
echo " </th>\n";
|
||||
}
|
||||
if (permission_exists('call_active_profile')) {
|
||||
echo " <th class='hide-small'>".$text['label-profile']."</th>\n";
|
||||
}
|
||||
echo " <th>".$text['label-duration']."</th>\n";
|
||||
if ($show == 'all') {
|
||||
echo " <th>".$text['label-domain']."</th>\n";
|
||||
}
|
||||
echo " <th class='hide-small'>".$text['label-cid-name']."</th>\n";
|
||||
echo " <th>".$text['label-cid-number']."</th>\n";
|
||||
echo " <th>".$text['label-destination']."</th>\n";
|
||||
if (permission_exists('call_active_application')) {
|
||||
echo " <th class='hide-small hide-medium'>".$text['label-app']."</th>\n";
|
||||
}
|
||||
if (permission_exists('call_active_codec')) {
|
||||
echo " <th class='hide-small hide-medium'>".$text['label-codec']."</th>\n";
|
||||
}
|
||||
if (permission_exists('call_active_secure')) {
|
||||
echo " <th class='hide-small hide-medium'>".$text['label-secure']."</th>\n";
|
||||
}
|
||||
if (permission_exists('call_active_eavesdrop') || permission_exists('call_active_hangup')) {
|
||||
echo " <th> </th>\n";
|
||||
}
|
||||
echo " </tr>\n";
|
||||
|
||||
if (is_array($rows)) {
|
||||
$x = 0;
|
||||
foreach ($rows as $row) {
|
||||
|
||||
//set the php variables
|
||||
foreach ($row as $key => $value) {
|
||||
$$key = $value;
|
||||
}
|
||||
|
||||
//get the sip profile
|
||||
$name_array = explode("/", $name);
|
||||
$sip_profile = $name_array[1];
|
||||
$sip_uri = $name_array[2];
|
||||
|
||||
//get the number
|
||||
//$temp_array = explode("@", $sip_uri);
|
||||
//$tmp_number = $temp_array[0];
|
||||
//$tmp_number = str_replace("sip:", "", $tmp_number);
|
||||
|
||||
//remove the '+' because it breaks the call recording
|
||||
$cid_num = str_replace("+", "", $cid_num);
|
||||
|
||||
//replace gateway uuid with name
|
||||
if (is_array($gateways) && sizeof($gateways) > 0) {
|
||||
foreach ($gateways as $gateway_uuid => $gateway_name) {
|
||||
$application_data = str_replace($gateway_uuid, $gateway_name, $application_data);
|
||||
}
|
||||
echo " </select>\n";
|
||||
}
|
||||
else if (sizeof($_SESSION['user']['extensions']) == 1) {
|
||||
echo " <input type='hidden' id='eavesdrop_dest' value=\"".escape($_SESSION['user']['extension'][0]['destination'])."\">\n";
|
||||
|
||||
//calculate elapsed seconds
|
||||
$elapsed_seconds = time() - $created_epoch;
|
||||
|
||||
//convert seconds to hours, minutes, and seconds
|
||||
$hours = floor($elapsed_seconds / 3600);
|
||||
$minutes = floor(($elapsed_seconds % 3600) / 60);
|
||||
$seconds = $elapsed_seconds % 60;
|
||||
|
||||
//format the elapsed time as HH:MM:SS
|
||||
$elapsed_time = sprintf('%02d:%02d:%02d', $hours, $minutes, $seconds);
|
||||
|
||||
//reduce too long app data
|
||||
if(strlen($application_data) > 80) {
|
||||
$application_data = substr($application_data, 0, 80) . '...';
|
||||
}
|
||||
}
|
||||
if (permission_exists('call_active_hangup') && $rows) {
|
||||
echo button::create(['type'=>'button','label'=>$text['label-hangup'],'icon'=>'phone-slash','id'=>'btn_delete','onclick'=>"refresh_stop(); modal_open('modal-hangup','btn_hangup');"]);
|
||||
}
|
||||
if (permission_exists('call_active_all')) {
|
||||
if ($show == "all") {
|
||||
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'link'=>'calls_active.php','onmouseover'=>'refresh_stop()','onmouseout'=>'refresh_start()']);
|
||||
|
||||
//send the html
|
||||
echo " <tr class='list-row'>\n";
|
||||
if (permission_exists('call_active_hangup')) {
|
||||
echo " <td class='checkbox'>\n";
|
||||
echo " <input type='checkbox' name='calls[$x][checked]' id='checkbox_".$x."' value='true' onclick=\"if (this.checked) { refresh_stop(); } else { document.getElementById('checkbox_all').checked = false; }\">\n";
|
||||
echo " <input type='hidden' name='calls[$x][uuid]' value='".escape($uuid)."' />\n";
|
||||
echo " </td>\n";
|
||||
}
|
||||
else {
|
||||
echo button::create(['type'=>'button','label'=>$text['button-show_all'],'icon'=>$_SESSION['theme']['button_icon_all'],'link'=>'calls_active.php?show=all','onmouseover'=>'refresh_stop()','onmouseout'=>'refresh_start()']);
|
||||
if (permission_exists('call_active_profile')) {
|
||||
echo " <td class='hide-small'>".escape($sip_profile)." </td>\n";
|
||||
}
|
||||
}
|
||||
echo " </div>\n";
|
||||
echo " <div style='clear: both;'></div>\n";
|
||||
echo "</div>\n";
|
||||
|
||||
if (permission_exists('call_active_hangup') && $rows) {
|
||||
echo modal::create(['id'=>'modal-hangup','type'=>'general','message'=>$text['confirm-hangups'],'actions'=>button::create(['type'=>'button','label'=>$text['label-hangup'],'icon'=>'check','id'=>'btn_hangup','style'=>'float: right; margin-left: 15px;','collapse'=>'never','onclick'=>"modal_close(); list_action_set('hangup'); list_form_submit('form_list');"])]);
|
||||
}
|
||||
|
||||
echo $text['description']."\n";
|
||||
echo "<br /><br />\n";
|
||||
|
||||
//show the results
|
||||
echo "<div id='cmd_reponse'></div>\n";
|
||||
|
||||
echo "<form id='form_list' method='post' action='calls_exec.php'>\n";
|
||||
echo "<input type='hidden' id='action' name='action' value=''>\n";
|
||||
|
||||
echo "<div class='card'>\n";
|
||||
echo "<table class='list'>\n";
|
||||
echo "<tr class='list-header'>\n";
|
||||
if (permission_exists('call_active_hangup')) {
|
||||
echo " <th class='checkbox'>\n";
|
||||
echo " <input type='checkbox' id='checkbox_all' name='checkbox_all' onclick='if (this.checked) { refresh_stop(); } else { refresh_start(); } list_all_toggle();' ".(empty($rows) ? "style='visibility: hidden;'" : null).">\n";
|
||||
echo " </th>\n";
|
||||
}
|
||||
echo " <th>".$text['label-profile']."</th>\n";
|
||||
echo " <th>".$text['label-created']."</th>\n";
|
||||
if ($show == 'all') {
|
||||
echo " <th>".$text['label-domain']."</th>\n";
|
||||
}
|
||||
echo " <th>".$text['label-number']."</th>\n";
|
||||
echo " <th>".$text['label-cid-name']."</th>\n";
|
||||
echo " <th>".$text['label-cid-number']."</th>\n";
|
||||
echo " <th>".$text['label-destination']."</th>\n";
|
||||
echo " <th>".$text['label-app']."</th>\n";
|
||||
echo " <th>".$text['label-codec']."</th>\n";
|
||||
echo " <th>".$text['label-secure']."</th>\n";
|
||||
if (permission_exists('call_active_eavesdrop') || permission_exists('call_active_hangup')) {
|
||||
echo " <th> </th>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
||||
if (is_array($rows)) {
|
||||
$x = 0;
|
||||
foreach ($rows as $row) {
|
||||
|
||||
//set the php variables
|
||||
foreach ($row as $key => $value) {
|
||||
$$key = $value;
|
||||
}
|
||||
|
||||
//get the sip profile
|
||||
$name_array = explode("/", $name);
|
||||
$sip_profile = $name_array[1];
|
||||
$sip_uri = $name_array[2];
|
||||
|
||||
//get the number
|
||||
$temp_array = explode("@", $sip_uri);
|
||||
$tmp_number = $temp_array[0];
|
||||
$tmp_number = str_replace("sip:", "", $tmp_number);
|
||||
|
||||
//remove the '+' because it breaks the call recording
|
||||
$cid_num = str_replace("+", "", $cid_num);
|
||||
|
||||
//replace gateway uuid with name
|
||||
if (is_array($_SESSION['gateways']) && sizeof($_SESSION['gateways']) > 0) {
|
||||
foreach ($_SESSION['gateways'] as $gateway_uuid => $gateway_name) {
|
||||
$application_data = str_replace($gateway_uuid, $gateway_name, $application_data);
|
||||
}
|
||||
}
|
||||
|
||||
// reduce too long app data
|
||||
if(strlen($application_data) > 512) {
|
||||
$application_data = substr($application_data, 0, 512) . '...';
|
||||
}
|
||||
|
||||
//send the html
|
||||
echo "<tr class='list-row'>\n";
|
||||
if (permission_exists('call_active_hangup')) {
|
||||
echo " <td class='checkbox'>\n";
|
||||
echo " <input type='checkbox' name='calls[$x][checked]' id='checkbox_".$x."' value='true' onclick=\"if (this.checked) { refresh_stop(); } else { document.getElementById('checkbox_all').checked = false; }\">\n";
|
||||
echo " <input type='hidden' name='calls[$x][uuid]' value='".escape($uuid)."' />\n";
|
||||
echo " </td>\n";
|
||||
}
|
||||
echo " <td>".escape($sip_profile)." </td>\n";
|
||||
echo " <td>".escape($created)." </td>\n";
|
||||
if ($show == 'all') {
|
||||
echo " <td>".escape($domain_name)." </td>\n";
|
||||
}
|
||||
echo " <td>".escape($tmp_number)." </td>\n";
|
||||
echo " <td>".escape($cid_name)." </td>\n";
|
||||
echo " <td>".escape($cid_num)." </td>\n";
|
||||
echo " <td>".escape($dest)." </td>\n";
|
||||
echo " <td>".(!empty($application) ? escape($application).":".escape($application_data) : null)." </td>\n";
|
||||
echo " <td>".escape($read_codec).":".escape($read_rate)." / ".escape($write_codec).":".escape($write_rate)." </td>\n";
|
||||
echo " <td>".escape($secure)." </td>\n";
|
||||
if (permission_exists('call_active_eavesdrop') || permission_exists('call_active_hangup')) {
|
||||
echo " <td class='button right' style='padding-right: 0;'>\n";
|
||||
//eavesdrop
|
||||
if (permission_exists('call_active_eavesdrop') && $callstate == 'ACTIVE' && !empty($_SESSION['user']['extensions']) && !in_array($cid_num, $_SESSION['user']['extensions'])) {
|
||||
echo button::create(['type'=>'button','label'=>$text['label-eavesdrop'],'icon'=>'headphones','collapse'=>'hide-lg-dn','onclick'=>"if (confirm('".$text['confirm-eavesdrop']."')) { eavesdrop_call('".escape($cid_num)."','".escape($uuid)."'); } else { this.blur(); return false; }",'onmouseover'=>'refresh_stop()','onmouseout'=>'refresh_start()']);
|
||||
}
|
||||
//hangup
|
||||
if (permission_exists('call_active_hangup')) {
|
||||
echo button::create(['type'=>'button','label'=>$text['label-hangup'],'icon'=>'phone-slash','collapse'=>'hide-lg-dn','onclick'=>"if (confirm('".$text['confirm-hangup']."')) { list_self_check('checkbox_".$x."'); list_action_set('hangup'); list_form_submit('form_list'); } else { this.blur(); return false; }",'onmouseover'=>'refresh_stop()','onmouseout'=>'refresh_start()']);
|
||||
}
|
||||
echo "</td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
||||
//unset the domain name
|
||||
unset($domain_name);
|
||||
|
||||
//increment counter
|
||||
$x++;
|
||||
//echo " <td>".escape($created)." </td>\n";
|
||||
echo " <td>".escape($elapsed_time)."</td>\n";
|
||||
if ($show == 'all') {
|
||||
echo " <td>".escape($domain_name)." </td>\n";
|
||||
}
|
||||
unset($rows);
|
||||
}
|
||||
//echo " <td>".escape($tmp_number)." </td>\n";
|
||||
echo " <td class='hide-small'>".escape($cid_name)." </td>\n";
|
||||
echo " <td>".escape($cid_num)." </td>\n";
|
||||
echo " <td>".escape($dest)." </td>\n";
|
||||
if (permission_exists('call_active_application')) {
|
||||
echo " <td class='hide-small hide-medium' style='max-width: 200px; word-wrap: break-word;'>".(!empty($application) ? escape($application).":".escape($application_data) : null)." </td>\n";
|
||||
}
|
||||
if (permission_exists('call_active_codec')) {
|
||||
echo " <td class='hide-small hide-medium'>".escape($read_codec).":".escape($read_rate)." / ".escape($write_codec).":".escape($write_rate)." </td>\n";
|
||||
}
|
||||
if (permission_exists('call_active_secure')) {
|
||||
echo " <td class='hide-small hide-medium'>".escape($secure)." </td>\n";
|
||||
}
|
||||
if (permission_exists('call_active_eavesdrop') || permission_exists('call_active_hangup')) {
|
||||
echo " <td class='button right' style='padding-right: 0;'>\n";
|
||||
//eavesdrop
|
||||
if (permission_exists('call_active_eavesdrop') && $callstate == 'ACTIVE' && !empty($user['extensions']) && !in_array($cid_num, $user['extensions'])) {
|
||||
echo button::create(['type'=>'button','label'=>$text['label-eavesdrop'],'icon'=>'headphones','collapse'=>'hide-lg-dn','onclick'=>"if (confirm('".$text['confirm-eavesdrop']."')) { eavesdrop_call('".escape($cid_num)."','".escape($uuid)."'); } else { this.blur(); return false; }",'onmouseover'=>'refresh_stop()','onmouseout'=>'refresh_start()']);
|
||||
}
|
||||
//hangup
|
||||
if (permission_exists('call_active_hangup')) {
|
||||
echo button::create(['type'=>'button','label'=>$text['label-hangup'],'icon'=>'phone-slash','collapse'=>'hide-lg-dn','onclick'=>"if (confirm('".$text['confirm-hangup']."')) { list_self_check('checkbox_".$x."'); list_action_set('hangup'); list_form_submit('form_list'); } else { this.blur(); return false; }",'onmouseover'=>'refresh_stop()','onmouseout'=>'refresh_start()']);
|
||||
}
|
||||
echo " </td>\n";
|
||||
}
|
||||
echo " </tr>\n";
|
||||
|
||||
echo "</table>\n";
|
||||
echo "</div>\n";
|
||||
|
||||
echo "<input type='hidden' name='".$token['name']."' value='".$token['hash']."'>\n";
|
||||
|
||||
echo "</form>\n";
|
||||
//unset the domain name
|
||||
unset($domain_name);
|
||||
|
||||
//increment counter
|
||||
$x++;
|
||||
}
|
||||
}
|
||||
|
||||
echo " </table>\n";
|
||||
echo "</div>\n";
|
||||
echo "<input type='hidden' name='".$_SESSION['app']['calls_active']['token']['name']."' value='".$_SESSION['app']['calls_active']['token']['hash']."'>\n";
|
||||
echo "</form>\n";
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -176,5 +176,13 @@
|
|||
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_description'] = "SPA PC VLAN ID. Options 0 to 4094.";
|
||||
$y++;
|
||||
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "78637de4-ec12-4d41-8c65-39afe50d2b02";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "spa_router_mode";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_value'] = "0";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
|
||||
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Options: 0:Bridge, 1:NAT.";
|
||||
$y++;
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@
|
|||
$array['dialplans'][0]["app_uuid"] = "b81412e8-7253-91f4-e48e-42fc2c9a38d9";
|
||||
|
||||
//add the dialplan permission
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add("dialplan_add", "temp");
|
||||
$p->add("dialplan_edit", "temp");
|
||||
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
$show = $_GET["show"] ?? '';
|
||||
|
||||
//set from session variables
|
||||
$list_row_edit_button = !empty($_SESSION['theme']['list_row_edit_button']['boolean']) ? $_SESSION['theme']['list_row_edit_button']['boolean'] : 'false';
|
||||
$list_row_edit_button = filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL);
|
||||
|
||||
//get posted data
|
||||
if (!empty($_POST['conference_centers'])) {
|
||||
|
|
@ -221,7 +221,7 @@
|
|||
echo th_order_by('conference_center_pin_length', $text['label-conference_center_pin_length'], $order_by, $order, null, "class='center shrink'");
|
||||
echo th_order_by('conference_center_enabled', $text['label-conference_center_enabled'], $order_by, $order, null, "class='center'");
|
||||
echo th_order_by('conference_center_description', $text['label-conference_center_description'], $order_by, $order, null, "class='hide-sm-dn'");
|
||||
if (permission_exists('conference_center_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('conference_center_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -229,8 +229,12 @@
|
|||
if (!empty($conference_centers)) {
|
||||
$x = 0;
|
||||
foreach ($conference_centers as $row) {
|
||||
$list_row_url = '';
|
||||
if (permission_exists('conference_center_edit')) {
|
||||
$list_row_url = "conference_center_edit.php?id=".$row['conference_center_uuid'];
|
||||
if ($row['domain_uuid'] != $_SESSION['domain_uuid'] && permission_exists('domain_select')) {
|
||||
$list_row_url .= '&domain_uuid='.urlencode($row['domain_uuid']).'&domain_change=true';
|
||||
}
|
||||
}
|
||||
echo "<tr class='list-row' href='".$list_row_url."'>\n";
|
||||
if (permission_exists('conference_center_edit') || permission_exists('conference_center_delete')) {
|
||||
|
|
@ -262,7 +266,7 @@
|
|||
}
|
||||
echo " </td>\n";
|
||||
echo " <td class='description overflow hide-sm-dn'>".escape($row['conference_center_description'])." </td>\n";
|
||||
if (permission_exists('conference_center_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('conference_center_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'>";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
@ -285,3 +289,4 @@
|
|||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -188,7 +188,7 @@
|
|||
$array['conference_room_users'][0]['domain_uuid'] = $_SESSION['domain_uuid'];
|
||||
|
||||
//un-assigne the users from the conference room
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('conference_room_user_delete', 'temp');
|
||||
|
||||
$database->app_name = 'conference_centers';
|
||||
|
|
@ -358,7 +358,7 @@
|
|||
$array['conference_room_users'][0]['conference_room_uuid'] = $conference_room_uuid;
|
||||
$array['conference_room_users'][0]['user_uuid'] = $_SESSION["user_uuid"];
|
||||
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('conference_room_user_add', 'temp');
|
||||
|
||||
$database->app_name = 'conference_centers';
|
||||
|
|
@ -440,7 +440,7 @@
|
|||
$array['conference_room_users'][0]['conference_room_uuid'] = $conference_room_uuid;
|
||||
$array['conference_room_users'][0]['user_uuid'] = $user_uuid;
|
||||
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('conference_room_user_add', 'temp');
|
||||
|
||||
$database->app_name = 'conference_centers';
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
$search = $_GET["search"] ?? null;
|
||||
|
||||
//set from session variables
|
||||
$list_row_edit_button = !empty($_SESSION['theme']['list_row_edit_button']['boolean']) ? $_SESSION['theme']['list_row_edit_button']['boolean'] : 'false';
|
||||
$list_row_edit_button = filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL);
|
||||
|
||||
//get the http post data
|
||||
if (!empty($_POST['conference_rooms'])) {
|
||||
|
|
@ -300,7 +300,7 @@
|
|||
echo th_order_by('enabled', $text['label-enabled'], $order_by, $order, null, "class='center'");
|
||||
}
|
||||
echo th_order_by('description', $text['label-description'], $order_by, $order, null, "class='hide-sm-dn'");
|
||||
if (permission_exists('conference_room_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('conference_room_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -319,8 +319,12 @@
|
|||
$participant_pin = substr($participant_pin, 0, 3) ."-". substr($participant_pin, 3, 3) ."-". substr($participant_pin, -3)."\n";
|
||||
}
|
||||
|
||||
$list_row_url = '';
|
||||
if (permission_exists('conference_room_edit')) {
|
||||
$list_row_url = "conference_room_edit.php?id=".urlencode($row['conference_room_uuid']);
|
||||
if ($row['domain_uuid'] != $_SESSION['domain_uuid'] && permission_exists('domain_select')) {
|
||||
$list_row_url .= '&domain_uuid='.urlencode($row['domain_uuid']).'&domain_change=true';
|
||||
}
|
||||
}
|
||||
echo "<tr class='list-row' href='".$list_row_url."'>\n";
|
||||
if (permission_exists('conference_room_add') || permission_exists('conference_room_edit') || permission_exists('conference_room_delete')) {
|
||||
|
|
@ -486,7 +490,7 @@
|
|||
}
|
||||
|
||||
echo " <td class='description overflow hide-sm-dn'>".escape($row['description'])."</td>\n";
|
||||
if (permission_exists('conference_room_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('conference_room_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'>\n";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
@ -508,3 +512,4 @@
|
|||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@
|
|||
$text = $language->get();
|
||||
|
||||
//set from session variables
|
||||
$list_row_edit_button = !empty($_SESSION['theme']['list_row_edit_button']['boolean']) ? $_SESSION['theme']['list_row_edit_button']['boolean'] : 'false';
|
||||
$list_row_edit_button = filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL);
|
||||
|
||||
//set variables from the http values
|
||||
$order_by = $_GET["order_by"] ?? '' ? $_GET["order_by"] : 'start_epoch';
|
||||
|
|
@ -152,7 +152,7 @@
|
|||
echo "<th>".$text['label-time']."</th>\n";
|
||||
echo th_order_by('start_epoch', $text['label-start'], $order_by, $order);
|
||||
echo th_order_by('end_epoch', $text['label-end'], $order_by, $order);
|
||||
if (permission_exists('conference_session_details') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('conference_session_details') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -191,7 +191,7 @@
|
|||
echo " <td>".$time_difference." </td>\n";
|
||||
echo " <td>".$start_date." </td>\n";
|
||||
echo " <td>".$end_date." </td>\n";
|
||||
if (permission_exists('conference_session_details') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('conference_session_details') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'>\n";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-view'],'icon'=>$_SESSION['theme']['button_icon_view'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
$text = $language->get();
|
||||
|
||||
//set from session variables
|
||||
$list_row_edit_button = !empty($_SESSION['theme']['list_row_edit_button']['boolean']) ? $_SESSION['theme']['list_row_edit_button']['boolean'] : 'false';
|
||||
$list_row_edit_button = filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL);
|
||||
|
||||
//get the http post data
|
||||
if (!empty($_POST['conference_sessions'])) {
|
||||
|
|
@ -172,7 +172,7 @@
|
|||
echo th_order_by('profile', $text['label-profile'], $order_by, $order);
|
||||
//echo th_order_by('recording', $text['label-recording'], $order_by, $order);
|
||||
echo "<th>".$text['label-tools']."</th>\n";
|
||||
if ($list_row_edit_button == 'true') {
|
||||
if ($list_row_edit_button) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -232,7 +232,7 @@
|
|||
echo "</table>\n";
|
||||
}
|
||||
echo " </td>\n";
|
||||
if ($list_row_edit_button == 'true') {
|
||||
if ($list_row_edit_button) {
|
||||
echo " <td class='action-button'>\n";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-view'],'icon'=>$_SESSION['theme']['button_icon_view'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ Luis Daniel Lucio Quiroz <dlucio@okay.com.mx>
|
|||
*/
|
||||
|
||||
//define the conference centers class
|
||||
if (!class_exists('conference_centers')) {
|
||||
class conference_centers {
|
||||
|
||||
/**
|
||||
|
|
@ -349,7 +348,7 @@ if (!class_exists('conference_centers')) {
|
|||
if (!empty($array)) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('dialplan_detail_delete', 'temp');
|
||||
$p->add('dialplan_delete', 'temp');
|
||||
|
||||
|
|
@ -425,7 +424,7 @@ if (!class_exists('conference_centers')) {
|
|||
if (!empty($array)) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('conference_room_user_delete', 'temp');
|
||||
$p->add('conference_room_delete', 'temp');
|
||||
|
||||
|
|
@ -489,7 +488,7 @@ if (!class_exists('conference_centers')) {
|
|||
if (!empty($array)) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('conference_session_detail_delete', 'temp');
|
||||
$p->add('conference_user_delete', 'temp');
|
||||
|
||||
|
|
@ -578,7 +577,7 @@ if (!class_exists('conference_centers')) {
|
|||
if (!empty($array)) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add("dialplan_edit", "temp");
|
||||
|
||||
//save the array
|
||||
|
|
@ -800,7 +799,7 @@ if (!class_exists('conference_centers')) {
|
|||
|
||||
|
||||
} //class
|
||||
}
|
||||
|
||||
|
||||
//example conference center
|
||||
/*
|
||||
|
|
@ -814,5 +813,3 @@ if (!class_exists('conference_centers')) {
|
|||
$result = $conference_center->rooms();
|
||||
print_r($result);
|
||||
*/
|
||||
|
||||
?>
|
||||
|
|
@ -5,6 +5,7 @@ $array['dashboard'][$x]['dashboard_uuid'] = 'd1b26c96-6cfd-45ea-824f-0b5e16a9aab
|
|||
$array['dashboard'][$x]['dashboard_name'] = 'Conference Centers';
|
||||
$array['dashboard'][$x]['dashboard_path'] = 'dashboard/icon';
|
||||
$array['dashboard'][$x]['dashboard_icon'] = 'fa-hotel';
|
||||
$array['dashboard'][$x]['dashboard_icon_color'] = '#5D5CE3';
|
||||
$array['dashboard'][$x]['dashboard_url'] = '/app/conference_centers/conference_rooms.php';
|
||||
$array['dashboard'][$x]['dashboard_target'] = 'self';
|
||||
$array['dashboard'][$x]['dashboard_width'] = '';
|
||||
|
|
@ -14,14 +15,14 @@ $array['dashboard'][$x]['dashboard_content_text_align'] = '';
|
|||
$array['dashboard'][$x]['dashboard_content_details'] = '';
|
||||
$array['dashboard'][$x]['dashboard_chart_type'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_enabled'] = 'true';
|
||||
$array['dashboard'][$x]['dashboard_label_text_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_text_color'] = '#444444';
|
||||
$array['dashboard'][$x]['dashboard_label_text_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_background_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color'] = '#5d5ce3';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_background_color'] ='';
|
||||
$array['dashboard'][$x]['dashboard_number_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_background_color'] = '#ffffff';
|
||||
$array['dashboard'][$x]['dashboard_background_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_detail_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_column_span'] = '1';
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@
|
|||
//includes files
|
||||
require_once dirname(__DIR__, 2) . "/resources/require.php";
|
||||
require_once "resources/check_auth.php";
|
||||
require_once "resources/classes/waveform.php";
|
||||
|
||||
use maximal\audio\Waveform;
|
||||
|
||||
|
|
@ -96,8 +95,8 @@
|
|||
Waveform::$colorB = !empty($_SESSION['theme']['audio_player_waveform_color_b_leg']['text']) ? color_to_rgba_array($_SESSION['theme']['audio_player_waveform_color_b_leg']['text']) : [0,125,232,0.6]; // array rgba, right (b-leg) wave color
|
||||
Waveform::$backgroundColor = !empty($_SESSION['theme']['audio_player_waveform_color_background']['text']) ? color_to_rgba_array($_SESSION['theme']['audio_player_waveform_color_background']['text']) : [0,0,0,0]; // array rgba, default: transparent
|
||||
Waveform::$axisColor = !empty($_SESSION['theme']['audio_player_waveform_color_axis']['text']) ? color_to_rgba_array($_SESSION['theme']['audio_player_waveform_color_axis']['text']) : [0,0,0,0.3]; // array rgba
|
||||
Waveform::$singlePhase = empty($_SESSION['theme']['audio_player_waveform_single_phase']['boolean']) || $_SESSION['theme']['audio_player_waveform_single_phase']['boolean'] !== 'true' ? false : true; // positive phase only - left (a-leg) top, right (b-leg) bottom
|
||||
Waveform::$singleAxis = empty($_SESSION['theme']['audio_player_waveform_single_axis']['boolean']) || $_SESSION['theme']['audio_player_waveform_single_axis']['boolean'] !== 'false' ? true : false; // combine channels into single axis
|
||||
Waveform::$singlePhase = filter_var($_SESSION['theme']['audio_player_waveform_single_phase']['boolean'] ?? false, FILTER_VALIDATE_BOOL) ? 'true': 'false'; // positive phase only - left (a-leg) top, right (b-leg) bottom
|
||||
Waveform::$singleAxis = filter_var($_SESSION['theme']['audio_player_waveform_single_axis']['boolean'] ?? true, FILTER_VALIDATE_BOOL) ? 'true': 'false'; // combine channels into single axis
|
||||
$height = !empty($_SESSION['theme']['audio_player_waveform_height']['text']) && is_numeric(str_replace('px','',$_SESSION['theme']['audio_player_waveform_height']['text'])) ? 2.2 * (int) str_replace('px','',$_SESSION['theme']['audio_player_waveform_height']['text']) : null;
|
||||
$wf = $waveform->getWaveform($temp_filename, 1600, $height ?? 180); // input: png filename returns boolean true/false, or 'base64' returns base64 string
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
if ($num_rows == 0) {
|
||||
|
||||
//set the directory
|
||||
$xml_dir = $setting->get('switch','conf').'/autoload_configs';
|
||||
$xml_dir = $settings->get('switch','conf').'/autoload_configs';
|
||||
$xml_file = $xml_dir."/conference.conf";
|
||||
$xml_file_alt = $_SERVER["DOCUMENT_ROOT"].'/'.PROJECT_PATH.'/app/switch/resources/conf/autoload_configs/conference.conf';
|
||||
|
||||
|
|
@ -65,7 +65,7 @@
|
|||
$array['conference_controls'][0]['control_name'] = $control_name;
|
||||
$array['conference_controls'][0]['control_enabled'] = 'true';
|
||||
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('conference_control_add', 'temp');
|
||||
|
||||
$database->app_name = 'conference_controls';
|
||||
|
|
@ -96,7 +96,7 @@
|
|||
}
|
||||
$array['conference_control_details'][0]['control_enabled'] = $control_enabled;
|
||||
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('conference_control_detail_add', 'temp');
|
||||
|
||||
$database->app_name = 'conference_controls';
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@
|
|||
$text = $language->get();
|
||||
|
||||
//set from session variables
|
||||
$list_row_edit_button = !empty($_SESSION['theme']['list_row_edit_button']['boolean']) ? $_SESSION['theme']['list_row_edit_button']['boolean'] : 'false';
|
||||
$list_row_edit_button = filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL);
|
||||
|
||||
//get the http post data
|
||||
if (!empty($_POST['conference_control_details'])) {
|
||||
|
|
@ -163,7 +163,7 @@
|
|||
echo th_order_by('control_action', $text['label-control_action'], $order_by, $order, null, null, $param);
|
||||
echo th_order_by('control_data', $text['label-control_data'], $order_by, $order, null, "class='pct-50 hide-xs'", $param);
|
||||
echo th_order_by('control_enabled', $text['label-control_enabled'], $order_by, $order, null, "class='center'", $param);
|
||||
if (permission_exists('conference_control_detail_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('conference_control_detail_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -200,7 +200,7 @@
|
|||
echo $text['label-'.$row['control_enabled']];
|
||||
}
|
||||
echo " </td>\n";
|
||||
if (permission_exists('conference_control_detail_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('conference_control_detail_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'>\n";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@
|
|||
$text = $language->get();
|
||||
|
||||
//set from session variables
|
||||
$list_row_edit_button = !empty($_SESSION['theme']['list_row_edit_button']['boolean']) ? $_SESSION['theme']['list_row_edit_button']['boolean'] : 'false';
|
||||
$list_row_edit_button = filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL);
|
||||
|
||||
//get the http post data
|
||||
if (!empty($_POST['conference_controls'])) {
|
||||
|
|
@ -179,7 +179,7 @@
|
|||
echo th_order_by('control_name', $text['label-control_name'], $order_by, $order);
|
||||
echo th_order_by('control_enabled', $text['label-control_enabled'], $order_by, $order, null, "class='center shrink'");
|
||||
echo " <th class='hide-sm-dn'>".$text['label-control_description']."</th>\n";
|
||||
if (permission_exists('conference_control_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('conference_control_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -215,7 +215,7 @@
|
|||
}
|
||||
echo " </td>\n";
|
||||
echo " <td class='description overflow hide-sm-dn'>".escape($row['control_description'])."</td>\n";
|
||||
if (permission_exists('conference_control_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('conference_control_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'>\n";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
|
|||
|
|
@ -26,12 +26,7 @@
|
|||
|
||||
/**
|
||||
* conference_controls class
|
||||
*
|
||||
* @method null delete
|
||||
* @method null toggle
|
||||
* @method null copy
|
||||
*/
|
||||
if (!class_exists('conference_controls')) {
|
||||
class conference_controls {
|
||||
|
||||
/**
|
||||
|
|
@ -103,7 +98,7 @@ if (!class_exists('conference_controls')) {
|
|||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('conference_control_detail_delete', 'temp');
|
||||
|
||||
//execute delete
|
||||
|
|
@ -426,6 +421,3 @@ if (!class_exists('conference_controls')) {
|
|||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
if ($num_rows == 0) {
|
||||
|
||||
//set the directory
|
||||
$xml_dir = $setting->get('switch','conf').'/autoload_configs';
|
||||
$xml_dir = $settings->get('switch','conf').'/autoload_configs';
|
||||
$xml_file = $xml_dir."/conference.conf";
|
||||
$xml_file_alt = $_SERVER["DOCUMENT_ROOT"].'/'.PROJECT_PATH.'/app/switch/resources/conf/autoload_configs/conference.conf';
|
||||
|
||||
|
|
@ -65,7 +65,7 @@
|
|||
$array['conference_profiles'][0]['profile_name'] = $profile_name;
|
||||
$array['conference_profiles'][0]['profile_enabled'] = 'true';
|
||||
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('conference_profile_add', 'temp');
|
||||
|
||||
$database->app_name = 'conference_profiles';
|
||||
|
|
@ -91,7 +91,7 @@
|
|||
$array['conference_profile_params'][0]['profile_param_value'] = $profile_param_value;
|
||||
$array['conference_profile_params'][0]['profile_param_enabled'] = $profile_param_enabled;
|
||||
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('conference_profile_param_add', 'temp');
|
||||
|
||||
$database->app_name = 'conference_profiles';
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@
|
|||
$text = $language->get();
|
||||
|
||||
//set from session variables
|
||||
$list_row_edit_button = !empty($_SESSION['theme']['list_row_edit_button']['boolean']) ? $_SESSION['theme']['list_row_edit_button']['boolean'] : 'false';
|
||||
$list_row_edit_button = filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL);
|
||||
|
||||
//get the http post data
|
||||
if (!empty($_POST['conference_profile_params'])) {
|
||||
|
|
@ -152,7 +152,7 @@
|
|||
echo th_order_by('profile_param_value', $text['label-profile_param_value'], $order_by, $order, null, "class='pct-40'", $param);
|
||||
echo th_order_by('profile_param_enabled', $text['label-profile_param_enabled'], $order_by, $order, null, "class='center'", $param);
|
||||
echo th_order_by('profile_param_description', $text['label-profile_param_description'], $order_by, $order, null, "class='hide-sm-dn'", $param);
|
||||
if (permission_exists('conference_profile_param_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('conference_profile_param_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -189,7 +189,7 @@
|
|||
}
|
||||
echo " </td>\n";
|
||||
echo " <td class='description overflow hide-sm-dn'>".escape($row['profile_param_description'])." </td>\n";
|
||||
if (permission_exists('conference_profile_param_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('conference_profile_param_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'>\n";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@
|
|||
$search = $_GET["search"] ?? '';
|
||||
|
||||
//set from session variables
|
||||
$list_row_edit_button = !empty($_SESSION['theme']['list_row_edit_button']['boolean']) ? $_SESSION['theme']['list_row_edit_button']['boolean'] : 'false';
|
||||
$list_row_edit_button = filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL);
|
||||
|
||||
//get the http post data
|
||||
if (!empty($_POST['conference_profiles'])) {
|
||||
|
|
@ -175,7 +175,7 @@
|
|||
echo th_order_by('profile_name', $text['label-profile_name'], $order_by, $order);
|
||||
echo th_order_by('profile_enabled', $text['label-profile_enabled'], $order_by, $order, null, "class='center'");
|
||||
echo " <th class='hide-sm-dn'>".$text['label-profile_description']."</th>\n";
|
||||
if (permission_exists('conference_profile_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('conference_profile_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -211,7 +211,7 @@
|
|||
}
|
||||
echo " </td>\n";
|
||||
echo " <td class='description overflow hide-sm-dn'>".escape($row['profile_description'])."</td>\n";
|
||||
if (permission_exists('conference_profile_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('conference_profile_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'>\n";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
|
|||
|
|
@ -26,12 +26,7 @@
|
|||
|
||||
/**
|
||||
* conference_profiles class
|
||||
*
|
||||
* @method null delete
|
||||
* @method null toggle
|
||||
* @method null copy
|
||||
*/
|
||||
if (!class_exists('conference_profiles')) {
|
||||
class conference_profiles {
|
||||
|
||||
/**
|
||||
|
|
@ -103,7 +98,7 @@ if (!class_exists('conference_profiles')) {
|
|||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('conference_profile_param_delete', 'temp');
|
||||
|
||||
//execute delete
|
||||
|
|
@ -410,7 +405,7 @@ if (!class_exists('conference_profiles')) {
|
|||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('conference_profile_param_add', 'temp');
|
||||
|
||||
//save the array
|
||||
|
|
@ -432,6 +427,3 @@ if (!class_exists('conference_profiles')) {
|
|||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
@ -91,7 +91,7 @@
|
|||
$user_uuid = $_REQUEST["user_uuid"];
|
||||
$conference_uuid = $_REQUEST["id"];
|
||||
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('conference_user_delete', 'temp');
|
||||
|
||||
$array['conference_users'][0]['domain_uuid'] = $_SESSION['domain_uuid'];
|
||||
|
|
@ -124,7 +124,7 @@
|
|||
$array['conference_users'][0]['conference_uuid'] = $conference_uuid;
|
||||
$array['conference_users'][0]['user_uuid'] = $user_uuid;
|
||||
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('conference_user_add', 'temp');
|
||||
|
||||
$database = new database;
|
||||
|
|
@ -239,7 +239,7 @@
|
|||
$array['dialplans'][0]['dialplan_enabled'] = $conference_enabled;
|
||||
$array['dialplans'][0]['dialplan_description'] = $conference_description;
|
||||
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('dialplan_add', 'temp');
|
||||
$p->add('dialplan_edit', 'temp');
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
$show = $_GET["show"] ?? '';
|
||||
|
||||
//set from session variables
|
||||
$list_row_edit_button = !empty($_SESSION['theme']['list_row_edit_button']['boolean']) ? $_SESSION['theme']['list_row_edit_button']['boolean'] : 'false';
|
||||
$list_row_edit_button = filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL);
|
||||
|
||||
//get posted data
|
||||
if (!empty($_POST['conferences'])) {
|
||||
|
|
@ -223,7 +223,7 @@
|
|||
echo "<th style='text-align: center;'>".$text['label-tools']."</th>\n";
|
||||
echo th_order_by('conference_enabled', $text['table-enabled'], $order_by, $order, null, "class='center'");
|
||||
echo th_order_by('conference_description', $text['table-description'], $order_by, $order, null, "class='hide-sm-dn'");
|
||||
if (permission_exists('conference_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('conference_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -231,8 +231,12 @@
|
|||
if (!empty($conferences)) {
|
||||
$x = 0;
|
||||
foreach($conferences as $row) {
|
||||
$list_row_url = '';
|
||||
if (permission_exists('conference_edit')) {
|
||||
$list_row_url = "conference_edit.php?id=".urlencode($row['conference_uuid']);
|
||||
if ($row['domain_uuid'] != $_SESSION['domain_uuid'] && permission_exists('domain_select')) {
|
||||
$list_row_url .= '&domain_uuid='.urlencode($row['domain_uuid']).'&domain_change=true';
|
||||
}
|
||||
}
|
||||
echo "<tr class='list-row' href='".$list_row_url."'>\n";
|
||||
if (permission_exists('conference_add') || permission_exists('conference_edit') || permission_exists('conference_delete')) {
|
||||
|
|
@ -277,7 +281,7 @@
|
|||
echo $text['label-'.$row['conference_enabled']];
|
||||
}
|
||||
echo " <td class='description overflow hide-sm-dn'>".escape($row['conference_description'])." </td>\n";
|
||||
if (permission_exists('conference_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('conference_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'>";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
@ -301,3 +305,4 @@
|
|||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@
|
|||
*/
|
||||
|
||||
//define the conferences class
|
||||
if (!class_exists('conferences')) {
|
||||
class conferences {
|
||||
|
||||
/**
|
||||
|
|
@ -108,7 +107,7 @@ if (!class_exists('conferences')) {
|
|||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('conference_user_delete', 'temp');
|
||||
$p->add('dialplan_detail_delete', 'temp');
|
||||
$p->add('dialplan_delete', 'temp');
|
||||
|
|
@ -203,7 +202,7 @@ if (!class_exists('conferences')) {
|
|||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('dialplan_edit', 'temp');
|
||||
|
||||
//save the array
|
||||
|
|
@ -341,7 +340,7 @@ if (!class_exists('conferences')) {
|
|||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('conference_user_add', 'temp');
|
||||
$p->add('dialplan_add', 'temp');
|
||||
|
||||
|
|
@ -374,6 +373,3 @@ if (!class_exists('conferences')) {
|
|||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
@ -5,6 +5,7 @@ $array['dashboard'][$x]['dashboard_uuid'] = 'c3c37d29-b654-4024-8ee4-d752b3e4db4
|
|||
$array['dashboard'][$x]['dashboard_name'] = 'Conferences';
|
||||
$array['dashboard'][$x]['dashboard_path'] = 'dashboard/icon';
|
||||
$array['dashboard'][$x]['dashboard_icon'] = 'fa-comments';
|
||||
$array['dashboard'][$x]['dashboard_icon_color'] = '#0292ff';
|
||||
$array['dashboard'][$x]['dashboard_url'] = '/app/conferences/conferences.php';
|
||||
$array['dashboard'][$x]['dashboard_target'] = 'self';
|
||||
$array['dashboard'][$x]['dashboard_width'] = '';
|
||||
|
|
@ -14,14 +15,14 @@ $array['dashboard'][$x]['dashboard_content_text_align'] = '';
|
|||
$array['dashboard'][$x]['dashboard_content_details'] = '';
|
||||
$array['dashboard'][$x]['dashboard_chart_type'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_enabled'] = 'true';
|
||||
$array['dashboard'][$x]['dashboard_label_text_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_text_color'] = '#444444';
|
||||
$array['dashboard'][$x]['dashboard_label_text_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_background_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color'] = '#0292FF';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_background_color'] ='';
|
||||
$array['dashboard'][$x]['dashboard_number_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_background_color'] = '#ffffff';
|
||||
$array['dashboard'][$x]['dashboard_background_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_detail_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_column_span'] = '1';
|
||||
|
|
@ -41,3 +42,4 @@ $array['dashboard'][$x]['dashboard_groups'][$y]['group_name'] = 'admin';
|
|||
$y++;
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ $text['title-active_conferences']['ro-ro'] = "Conferințe active";
|
|||
$text['title-active_conferences']['ru-ru'] = "Активные конференции";
|
||||
$text['title-active_conferences']['sv-se'] = "Aktiva Konferenser";
|
||||
$text['title-active_conferences']['uk-ua'] = "Активні кноференції";
|
||||
$text['title-active_conferences']['tr-tr'] = "Aktif Konferanslar";
|
||||
$text['title-active_conferences']['zh-cn'] = "活动会议";
|
||||
$text['title-active_conferences']['ja-jp'] = "アクティブな会議";
|
||||
$text['title-active_conferences']['ko-kr'] = "활성 회의";
|
||||
|
|
@ -48,22 +49,23 @@ $text['message-denied']['ro-ro'] = "acces interzis";
|
|||
$text['message-denied']['ru-ru'] = "Доступ запрещён";
|
||||
$text['message-denied']['sv-se'] = "Tillträde Nekat";
|
||||
$text['message-denied']['uk-ua'] = "в доступі відмовлено";
|
||||
$text['message-denied']['tr-tr'] = "erişim engellendi";
|
||||
$text['message-denied']['zh-cn'] = "拒绝访问";
|
||||
$text['message-denied']['ja-jp'] = "アクセス拒否";
|
||||
$text['message-denied']['ko-kr'] = "접근 불가";
|
||||
|
||||
$text['message-connection']['en-us'] = "Connection to Event Socket failed.";
|
||||
$text['message-connection']['en-gb'] = "Connection to Event Socket failed.";
|
||||
$text['message-connection']['ar-eg'] = "فشل الاتصال بـ Event Socket.";
|
||||
$text['message-connection']['ar-eg'] = "فشل الاتصال بمقبس الحدث.";
|
||||
$text['message-connection']['de-at'] = "Verbindung zum Event Socket fehlgeschlagen.";
|
||||
$text['message-connection']['de-ch'] = "Verbindung zum Event Socket fehlgeschlagen.";
|
||||
$text['message-connection']['de-de'] = "Verbindung zum Event Socket fehlgeschlagen.";
|
||||
$text['message-connection']['el-gr'] = "Η σύνδεση στο Event Socket απέτυχε.";
|
||||
$text['message-connection']['el-gr'] = "Η σύνδεση με την υποδοχή συμβάντος απέτυχε.";
|
||||
$text['message-connection']['es-cl'] = "Conexión a Socket de Evento fallida.";
|
||||
$text['message-connection']['es-mx'] = "Conexión a Socket de Evento fallida.";
|
||||
$text['message-connection']['fr-ca'] = "Connexion à l'Event Socket en echec.";
|
||||
$text['message-connection']['fr-fr'] = "Connexion à l'Event Socket en echec.";
|
||||
$text['message-connection']['he-il'] = "החיבור ל-Event Socket נכשל.";
|
||||
$text['message-connection']['he-il'] = "החיבור לשקע אירועים נכשל.";
|
||||
$text['message-connection']['it-it'] = "Connessione all'Event Socket fallita.";
|
||||
$text['message-connection']['ka-ge'] = "მოვლენების სოკეტთან მიერთება არ განხორციელდა.";
|
||||
$text['message-connection']['nl-nl'] = "Verbinding met Event-Socket mislukt";
|
||||
|
|
@ -74,6 +76,7 @@ $text['message-connection']['ro-ro'] = "Conexiunea la Event Socket a eșuat.";
|
|||
$text['message-connection']['ru-ru'] = "Подключение к Event Socket неудачно.";
|
||||
$text['message-connection']['sv-se'] = "Anslutning till Händelse misslyckades";
|
||||
$text['message-connection']['uk-ua'] = "Помилка підключення до сокета подій.";
|
||||
$text['message-connection']['tr-tr'] = "Olay Soketine bağlantı başarısız oldu.";
|
||||
$text['message-connection']['zh-cn'] = "与事件套接字的连接失败。";
|
||||
$text['message-connection']['ja-jp'] = "イベントソケットへの接続に失敗しました。";
|
||||
$text['message-connection']['ko-kr'] = "이벤트 소켓에 연결하지 못했습니다.";
|
||||
|
|
@ -100,6 +103,7 @@ $text['message-click_to_unmute']['ro-ro'] = "Faceți clic pentru a activa sunetu
|
|||
$text['message-click_to_unmute']['ru-ru'] = "Нажмите, чтобы включить микрофон участника";
|
||||
$text['message-click_to_unmute']['sv-se'] = "Klicka för att Aktivera Deltagares Mikrofon";
|
||||
$text['message-click_to_unmute']['uk-ua'] = "Натисніть, щоб включити учасника";
|
||||
$text['message-click_to_unmute']['tr-tr'] = "Üyenin Sesini Açmak İçin Tıklayın";
|
||||
$text['message-click_to_unmute']['zh-cn'] = "单击以取消静音成员";
|
||||
$text['message-click_to_unmute']['ja-jp'] = "クリックしてメンバーのミュートを解除";
|
||||
$text['message-click_to_unmute']['ko-kr'] = "회원을 음소거 해제하려면 클릭하세요.";
|
||||
|
|
@ -126,6 +130,7 @@ $text['message-click_to_mute']['ro-ro'] = "Faceți clic pentru a dezactiva sunet
|
|||
$text['message-click_to_mute']['ru-ru'] = "Нажмите, чтобы отключить микрофон участника";
|
||||
$text['message-click_to_mute']['sv-se'] = "Klicka för att Stänga Av Deltagares Mikrofon";
|
||||
$text['message-click_to_mute']['uk-ua'] = "Натисніть, щоб вилючити учасника";
|
||||
$text['message-click_to_mute']['tr-tr'] = "Üyeyi sessize almak için tıklayın";
|
||||
$text['message-click_to_mute']['zh-cn'] = "点击静音成员";
|
||||
$text['message-click_to_mute']['ja-jp'] = "クリックしてメンバーをミュート";
|
||||
$text['message-click_to_mute']['ko-kr'] = "회원을 음소거하려면 클릭하세요.";
|
||||
|
|
@ -152,6 +157,7 @@ $text['label-conference_center_room']['ro-ro'] = "Sala Centrului de Conferințe"
|
|||
$text['label-conference_center_room']['ru-ru'] = "Конференц-центр";
|
||||
$text['label-conference_center_room']['sv-se'] = "Konferenscenter";
|
||||
$text['label-conference_center_room']['uk-ua'] = "Конференц-центр";
|
||||
$text['label-conference_center_room']['tr-tr'] = "Konferans Merkezi Odası";
|
||||
$text['label-conference_center_room']['zh-cn'] = "会议中心室";
|
||||
$text['label-conference_center_room']['ja-jp'] = "カンファレンスセンタールーム";
|
||||
$text['label-conference_center_room']['ko-kr'] = "컨퍼런스 센터룸";
|
||||
|
|
@ -178,6 +184,7 @@ $text['label-yes']['ro-ro'] = "da";
|
|||
$text['label-yes']['ru-ru'] = "Да";
|
||||
$text['label-yes']['sv-se'] = "Ja";
|
||||
$text['label-yes']['uk-ua'] = "Так";
|
||||
$text['label-yes']['tr-tr'] = "Evet";
|
||||
$text['label-yes']['zh-cn'] = "是的";
|
||||
$text['label-yes']['ja-jp'] = "はい";
|
||||
$text['label-yes']['ko-kr'] = "예";
|
||||
|
|
@ -204,6 +211,7 @@ $text['label-volume']['ro-ro'] = "Volum";
|
|||
$text['label-volume']['ru-ru'] = "Громкость";
|
||||
$text['label-volume']['sv-se'] = "Volym";
|
||||
$text['label-volume']['uk-ua'] = "Обсяг";
|
||||
$text['label-volume']['tr-tr'] = "Hacim";
|
||||
$text['label-volume']['zh-cn'] = "体积";
|
||||
$text['label-volume']['ja-jp'] = "音量";
|
||||
$text['label-volume']['ko-kr'] = "용량";
|
||||
|
|
@ -230,6 +238,7 @@ $text['label-video']['ro-ro'] = "Video";
|
|||
$text['label-video']['ru-ru'] = "Видео";
|
||||
$text['label-video']['sv-se'] = "Video";
|
||||
$text['label-video']['uk-ua'] = "Відео";
|
||||
$text['label-video']['tr-tr'] = "Video";
|
||||
$text['label-video']['zh-cn'] = "视频";
|
||||
$text['label-video']['ja-jp'] = "ビデオ";
|
||||
$text['label-video']['ko-kr'] = "동영상";
|
||||
|
|
@ -255,7 +264,8 @@ $text['label-unmute-all']['pt-pt'] = "Todos com som";
|
|||
$text['label-unmute-all']['ro-ro'] = "Activați sunetul pe toate";
|
||||
$text['label-unmute-all']['ru-ru'] = "Включить все микрофоны";
|
||||
$text['label-unmute-all']['sv-se'] = "Aktivera Allas Mikrofoner";
|
||||
$text['label-unmute-all']['uk-ua'] = "Unmute All ";
|
||||
$text['label-unmute-all']['uk-ua'] = "Увімкнути всі";
|
||||
$text['label-unmute-all']['tr-tr'] = "Tümünü sessize al";
|
||||
$text['label-unmute-all']['zh-cn'] = "全部取消静音";
|
||||
$text['label-unmute-all']['ja-jp'] = "すべてミュート解除";
|
||||
$text['label-unmute-all']['ko-kr'] = "모두 음소거 해제";
|
||||
|
|
@ -281,7 +291,8 @@ $text['label-unmute']['pt-pt'] = "Com som";
|
|||
$text['label-unmute']['ro-ro'] = "nori";
|
||||
$text['label-unmute']['ru-ru'] = "Включить микрофон";
|
||||
$text['label-unmute']['sv-se'] = "Mikrofon Aktiv";
|
||||
$text['label-unmute']['uk-ua'] = "Unmute ";
|
||||
$text['label-unmute']['uk-ua'] = "увімкнено звук";
|
||||
$text['label-unmute']['tr-tr'] = "Unmute";
|
||||
$text['label-unmute']['zh-cn'] = "云";
|
||||
$text['label-unmute']['ja-jp'] = "雲霧て";
|
||||
$text['label-unmute']['ko-kr'] = "구름 안개";
|
||||
|
|
@ -308,6 +319,7 @@ $text['label-unlock']['ro-ro'] = "Deblocați";
|
|||
$text['label-unlock']['ru-ru'] = "Разблокировать";
|
||||
$text['label-unlock']['sv-se'] = "Lås Upp";
|
||||
$text['label-unlock']['uk-ua'] = "Розблокувати";
|
||||
$text['label-unlock']['tr-tr'] = "Kilidini aç";
|
||||
$text['label-unlock']['zh-cn'] = "开锁";
|
||||
$text['label-unlock']['ja-jp'] = "ロック解除";
|
||||
$text['label-unlock']['ko-kr'] = "터놓다";
|
||||
|
|
@ -334,6 +346,7 @@ $text['label-undeaf']['ro-ro'] = "nesurde";
|
|||
$text['label-undeaf']['ru-ru'] = "Undeaf";
|
||||
$text['label-undeaf']['sv-se'] = "Hörbarhet";
|
||||
$text['label-undeaf']['uk-ua'] = "Неглухий";
|
||||
$text['label-undeaf']['tr-tr'] = "Sağır olmayan";
|
||||
$text['label-undeaf']['zh-cn'] = "不聋";
|
||||
$text['label-undeaf']['ja-jp'] = "耳が聞こえない";
|
||||
$text['label-undeaf']['ko-kr'] = "귀머거리";
|
||||
|
|
@ -360,6 +373,7 @@ $text['label-tools']['ro-ro'] = "Instrumente";
|
|||
$text['label-tools']['ru-ru'] = "Утилиты";
|
||||
$text['label-tools']['sv-se'] = "Verktyg";
|
||||
$text['label-tools']['uk-ua'] = "Параметри";
|
||||
$text['label-tools']['tr-tr'] = "Aletler";
|
||||
$text['label-tools']['zh-cn'] = "工具";
|
||||
$text['label-tools']['ja-jp'] = "ツール";
|
||||
$text['label-tools']['ko-kr'] = "도구";
|
||||
|
|
@ -386,6 +400,7 @@ $text['label-tool']['ro-ro'] = "Instrumente";
|
|||
$text['label-tool']['ru-ru'] = "Утилиты";
|
||||
$text['label-tool']['sv-se'] = "Verktyg";
|
||||
$text['label-tool']['uk-ua'] = "Параметри";
|
||||
$text['label-tool']['tr-tr'] = "Aletler";
|
||||
$text['label-tool']['zh-cn'] = "工具";
|
||||
$text['label-tool']['ja-jp'] = "ツール";
|
||||
$text['label-tool']['ko-kr'] = "도구";
|
||||
|
|
@ -412,6 +427,7 @@ $text['label-talking']['ro-ro'] = "Vorbind";
|
|||
$text['label-talking']['ru-ru'] = "Разговривайте";
|
||||
$text['label-talking']['sv-se'] = "Talande";
|
||||
$text['label-talking']['uk-ua'] = "Розмова";
|
||||
$text['label-talking']['tr-tr'] = "Konuşmak";
|
||||
$text['label-talking']['zh-cn'] = "说";
|
||||
$text['label-talking']['ja-jp'] = "おしゃべり";
|
||||
$text['label-talking']['ko-kr'] = "말하는";
|
||||
|
|
@ -438,6 +454,7 @@ $text['label-speak']['ro-ro'] = "Vorbi";
|
|||
$text['label-speak']['ru-ru'] = "Говорите";
|
||||
$text['label-speak']['sv-se'] = "Tala";
|
||||
$text['label-speak']['uk-ua'] = "Говорити";
|
||||
$text['label-speak']['tr-tr'] = "Konuşmak";
|
||||
$text['label-speak']['zh-cn'] = "说话";
|
||||
$text['label-speak']['ja-jp'] = "話す";
|
||||
$text['label-speak']['ko-kr'] = "말하다";
|
||||
|
|
@ -464,6 +481,7 @@ $text['label-recording']['ro-ro'] = "Înregistrare";
|
|||
$text['label-recording']['ru-ru'] = "Запись";
|
||||
$text['label-recording']['sv-se'] = "Inspelning";
|
||||
$text['label-recording']['uk-ua'] = "Запис";
|
||||
$text['label-recording']['tr-tr'] = "Kayıt";
|
||||
$text['label-recording']['zh-cn'] = "记录";
|
||||
$text['label-recording']['ja-jp'] = "録音";
|
||||
$text['label-recording']['ko-kr'] = "녹음";
|
||||
|
|
@ -490,6 +508,7 @@ $text['label-quiet']['ro-ro'] = "Liniște";
|
|||
$text['label-quiet']['ru-ru'] = "Тихо";
|
||||
$text['label-quiet']['sv-se'] = "Tyst";
|
||||
$text['label-quiet']['uk-ua'] = "Спокійно";
|
||||
$text['label-quiet']['tr-tr'] = "Sessizlik";
|
||||
$text['label-quiet']['zh-cn'] = "安静的";
|
||||
$text['label-quiet']['ja-jp'] = "静かな";
|
||||
$text['label-quiet']['ko-kr'] = "조용한";
|
||||
|
|
@ -516,6 +535,7 @@ $text['label-participant-pin']['ro-ro'] = "PIN participant";
|
|||
$text['label-participant-pin']['ru-ru'] = "PIN участника";
|
||||
$text['label-participant-pin']['sv-se'] = "Pinkod Deltagare";
|
||||
$text['label-participant-pin']['uk-ua'] = "PIN учасника";
|
||||
$text['label-participant-pin']['tr-tr'] = "Katılımcı PIN'i";
|
||||
$text['label-participant-pin']['zh-cn'] = "参与者密码";
|
||||
$text['label-participant-pin']['ja-jp'] = "参加者暗証番号";
|
||||
$text['label-participant-pin']['ko-kr'] = "참가자 PIN";
|
||||
|
|
@ -542,6 +562,7 @@ $text['label-participant']['ro-ro'] = "Participant";
|
|||
$text['label-participant']['ru-ru'] = "Участник";
|
||||
$text['label-participant']['sv-se'] = "Deltagare";
|
||||
$text['label-participant']['uk-ua'] = "Учасник";
|
||||
$text['label-participant']['tr-tr'] = "Katılımcı";
|
||||
$text['label-participant']['zh-cn'] = "参与者";
|
||||
$text['label-participant']['ja-jp'] = "参加者";
|
||||
$text['label-participant']['ko-kr'] = "참가자";
|
||||
|
|
@ -568,6 +589,7 @@ $text['label-not-recording']['ro-ro'] = "Nu se înregistrează";
|
|||
$text['label-not-recording']['ru-ru'] = "Не записывается";
|
||||
$text['label-not-recording']['sv-se'] = "Spelar inte in";
|
||||
$text['label-not-recording']['uk-ua'] = "Не записується";
|
||||
$text['label-not-recording']['tr-tr'] = "Kayıt Yapılmıyor";
|
||||
$text['label-not-recording']['zh-cn'] = "不录音";
|
||||
$text['label-not-recording']['ja-jp'] = "記録しない";
|
||||
$text['label-not-recording']['ko-kr'] = "녹음하지 않음";
|
||||
|
|
@ -593,7 +615,8 @@ $text['label-no']['pt-pt'] = "Não";
|
|||
$text['label-no']['ro-ro'] = "Nu";
|
||||
$text['label-no']['ru-ru'] = "Нет";
|
||||
$text['label-no']['sv-se'] = "Nej";
|
||||
$text['label-no']['uk-ua'] = "Ні";
|
||||
$text['label-no']['uk-ua'] = "немає";
|
||||
$text['label-no']['tr-tr'] = "HAYIR";
|
||||
$text['label-no']['zh-cn'] = "不";
|
||||
$text['label-no']['ja-jp'] = "いいえ";
|
||||
$text['label-no']['ko-kr'] = "아니요";
|
||||
|
|
@ -620,6 +643,7 @@ $text['label-mute-all-alt']['ro-ro'] = "Dezactivați sunetul tuturor participan
|
|||
$text['label-mute-all-alt']['ru-ru'] = "Отключить микрофоны всем участникам.";
|
||||
$text['label-mute-all-alt']['sv-se'] = "Stäng av Deltagares mikrofon";
|
||||
$text['label-mute-all-alt']['uk-ua'] = "Вимкнути звук для всіх учасників.";
|
||||
$text['label-mute-all-alt']['tr-tr'] = "Tüm Katılımcıları Sessize Al.";
|
||||
$text['label-mute-all-alt']['zh-cn'] = "将所有与会者静音。";
|
||||
$text['label-mute-all-alt']['ja-jp'] = "すべての参加者をミュートします。";
|
||||
$text['label-mute-all-alt']['ko-kr'] = "모든 참가자를 음소거합니다.";
|
||||
|
|
@ -646,6 +670,7 @@ $text['label-mute-all']['ro-ro'] = "Dezactivați toate";
|
|||
$text['label-mute-all']['ru-ru'] = "Отключить все микрофоны";
|
||||
$text['label-mute-all']['sv-se'] = "Stäng av Allas mikrofon";
|
||||
$text['label-mute-all']['uk-ua'] = "Вимкнути всі";
|
||||
$text['label-mute-all']['tr-tr'] = "Tümünü Sessize Al";
|
||||
$text['label-mute-all']['zh-cn'] = "全部静音";
|
||||
$text['label-mute-all']['ja-jp'] = "すべてミュート";
|
||||
$text['label-mute-all']['ko-kr'] = "모두 음소거";
|
||||
|
|
@ -672,6 +697,7 @@ $text['label-mute']['ro-ro'] = "Mut";
|
|||
$text['label-mute']['ru-ru'] = "Отключить микрофон";
|
||||
$text['label-mute']['sv-se'] = "Stäng av mikrofon";
|
||||
$text['label-mute']['uk-ua'] = "Вимкнути звук";
|
||||
$text['label-mute']['tr-tr'] = "Sesini kapatmak";
|
||||
$text['label-mute']['zh-cn'] = "沉默的";
|
||||
$text['label-mute']['ja-jp'] = "無音";
|
||||
$text['label-mute']['ko-kr'] = "무음";
|
||||
|
|
@ -698,6 +724,7 @@ $text['label-hand_raised']['ro-ro'] = "Mâna Ridicată";
|
|||
$text['label-hand_raised']['ru-ru'] = "Поднятая рука";
|
||||
$text['label-hand_raised']['sv-se'] = "Upphöjd hand";
|
||||
$text['label-hand_raised']['uk-ua'] = "Піднята рука";
|
||||
$text['label-hand_raised']['tr-tr'] = "El Kaldırıldı";
|
||||
$text['label-hand_raised']['zh-cn'] = "举手";
|
||||
$text['label-hand_raised']['ja-jp'] = "挙手";
|
||||
$text['label-hand_raised']['ko-kr'] = "제기 손";
|
||||
|
|
@ -724,6 +751,7 @@ $text['label-moderator']['ro-ro'] = "Moderator";
|
|||
$text['label-moderator']['ru-ru'] = "Модератор";
|
||||
$text['label-moderator']['sv-se'] = "Värd";
|
||||
$text['label-moderator']['uk-ua'] = "Модератор";
|
||||
$text['label-moderator']['tr-tr'] = "Moderatör";
|
||||
$text['label-moderator']['zh-cn'] = "版主";
|
||||
$text['label-moderator']['ja-jp'] = "モデレータ";
|
||||
$text['label-moderator']['ko-kr'] = "중재자";
|
||||
|
|
@ -750,6 +778,7 @@ $text['label-message']['ro-ro'] = "Mesaj";
|
|||
$text['label-message']['ru-ru'] = "Сообщение";
|
||||
$text['label-message']['sv-se'] = "Meddelande";
|
||||
$text['label-message']['uk-ua'] = "Повідомлення";
|
||||
$text['label-message']['tr-tr'] = "Mesaj";
|
||||
$text['label-message']['zh-cn'] = "信息";
|
||||
$text['label-message']['ja-jp'] = "メッセージ";
|
||||
$text['label-message']['ko-kr'] = "메시지";
|
||||
|
|
@ -770,12 +799,13 @@ $text['label-members']['it-it'] = "Membri";
|
|||
$text['label-members']['ka-ge'] = "მონაწილე";
|
||||
$text['label-members']['nl-nl'] = "Deelnemers";
|
||||
$text['label-members']['pl-pl'] = "Uczestnicy";
|
||||
$text['label-members']['pt-br'] = "Total";
|
||||
$text['label-members']['pt-br'] = "Membros";
|
||||
$text['label-members']['pt-pt'] = "Deputados";
|
||||
$text['label-members']['ro-ro'] = "Membrii";
|
||||
$text['label-members']['ru-ru'] = "Участники";
|
||||
$text['label-members']['sv-se'] = "Deltagare";
|
||||
$text['label-members']['uk-ua'] = "Учасники";
|
||||
$text['label-members']['tr-tr'] = "Üyeler";
|
||||
$text['label-members']['zh-cn'] = "成员";
|
||||
$text['label-members']['ja-jp'] = "メンバー";
|
||||
$text['label-members']['ko-kr'] = "회원";
|
||||
|
|
@ -802,6 +832,7 @@ $text['label-member-count']['ro-ro'] = "Număr de membri";
|
|||
$text['label-member-count']['ru-ru'] = "Количество участников";
|
||||
$text['label-member-count']['sv-se'] = "Antal Deltagare";
|
||||
$text['label-member-count']['uk-ua'] = "Кількість учасиків";
|
||||
$text['label-member-count']['tr-tr'] = "Üye Sayısı";
|
||||
$text['label-member-count']['zh-cn'] = "会员人数";
|
||||
$text['label-member-count']['ja-jp'] = "メンバー数";
|
||||
$text['label-member-count']['ko-kr'] = "회원 수";
|
||||
|
|
@ -828,6 +859,7 @@ $text['label-lock']['ro-ro'] = "Lacăt";
|
|||
$text['label-lock']['ru-ru'] = "Заблокировать";
|
||||
$text['label-lock']['sv-se'] = "Lås";
|
||||
$text['label-lock']['uk-ua'] = "Блокувати";
|
||||
$text['label-lock']['tr-tr'] = "Kilit";
|
||||
$text['label-lock']['zh-cn'] = "锁";
|
||||
$text['label-lock']['ja-jp'] = "ロック";
|
||||
$text['label-lock']['ko-kr'] = "잠그다";
|
||||
|
|
@ -847,13 +879,14 @@ $text['label-kick']['he-il'] = "בְּעִיטָה";
|
|||
$text['label-kick']['it-it'] = "Espelli";
|
||||
$text['label-kick']['ka-ge'] = "გაგდება";
|
||||
$text['label-kick']['nl-nl'] = "Er uittrappen";
|
||||
$text['label-kick']['pl-pl'] = "Kick ";
|
||||
$text['label-kick']['pl-pl'] = "Rzut";
|
||||
$text['label-kick']['pt-br'] = "Ejetar";
|
||||
$text['label-kick']['pt-pt'] = "Ejectar";
|
||||
$text['label-kick']['ro-ro'] = "Lovitură";
|
||||
$text['label-kick']['ru-ru'] = "Выкинуть";
|
||||
$text['label-kick']['sv-se'] = "Sparka Ut";
|
||||
$text['label-kick']['uk-ua'] = "удар ногою";
|
||||
$text['label-kick']['tr-tr'] = "Tekme atmak";
|
||||
$text['label-kick']['zh-cn'] = "踢";
|
||||
$text['label-kick']['ja-jp'] = "キック";
|
||||
$text['label-kick']['ko-kr'] = "발 차기";
|
||||
|
|
@ -880,6 +913,7 @@ $text['label-joined']['ro-ro'] = "S-a alăturat";
|
|||
$text['label-joined']['ru-ru'] = "Подключился";
|
||||
$text['label-joined']['sv-se'] = "Blev medlem";
|
||||
$text['label-joined']['uk-ua'] = "Приєднався";
|
||||
$text['label-joined']['tr-tr'] = "Katıldı";
|
||||
$text['label-joined']['zh-cn'] = "已加入";
|
||||
$text['label-joined']['ja-jp'] = "参加しました";
|
||||
$text['label-joined']['ko-kr'] = "가입";
|
||||
|
|
@ -906,6 +940,7 @@ $text['label-interactive']['ro-ro'] = "Conferință interactivă";
|
|||
$text['label-interactive']['ru-ru'] = "Интерактивная конференция";
|
||||
$text['label-interactive']['sv-se'] = "Interaktiv Konferens";
|
||||
$text['label-interactive']['uk-ua'] = "Інтерактивна конференція";
|
||||
$text['label-interactive']['tr-tr'] = "Etkileşimli Konferans";
|
||||
$text['label-interactive']['zh-cn'] = "互动会议";
|
||||
$text['label-interactive']['ja-jp'] = "インタラクティブな会議";
|
||||
$text['label-interactive']['ko-kr'] = "인터랙티브 컨퍼런스";
|
||||
|
|
@ -932,6 +967,7 @@ $text['label-id']['ro-ro'] = "ID";
|
|||
$text['label-id']['ru-ru'] = "ID";
|
||||
$text['label-id']['sv-se'] = "ID";
|
||||
$text['label-id']['uk-ua'] = "ID";
|
||||
$text['label-id']['tr-tr'] = "ID";
|
||||
$text['label-id']['zh-cn'] = "ID";
|
||||
$text['label-id']['ja-jp'] = "ID";
|
||||
$text['label-id']['ko-kr'] = "ID";
|
||||
|
|
@ -958,6 +994,7 @@ $text['label-hear']['ro-ro'] = "Auzi";
|
|||
$text['label-hear']['ru-ru'] = "Слушать";
|
||||
$text['label-hear']['sv-se'] = "Höra";
|
||||
$text['label-hear']['uk-ua'] = "Почуйте";
|
||||
$text['label-hear']['tr-tr'] = "Duymak";
|
||||
$text['label-hear']['zh-cn'] = "听到";
|
||||
$text['label-hear']['ja-jp'] = "聞く";
|
||||
$text['label-hear']['ko-kr'] = "듣다";
|
||||
|
|
@ -971,8 +1008,8 @@ $text['label-gain']['de-de'] = "Verstärkung";
|
|||
$text['label-gain']['el-gr'] = "Κέρδος";
|
||||
$text['label-gain']['es-cl'] = "Ganancia";
|
||||
$text['label-gain']['es-mx'] = "Ganancia";
|
||||
$text['label-gain']['fr-ca'] = "Gain";
|
||||
$text['label-gain']['fr-fr'] = "Gain";
|
||||
$text['label-gain']['fr-ca'] = "Gagner";
|
||||
$text['label-gain']['fr-fr'] = "Gagner";
|
||||
$text['label-gain']['he-il'] = "לְהַשִׂיג";
|
||||
$text['label-gain']['it-it'] = "Guadagno";
|
||||
$text['label-gain']['ka-ge'] = "გაძლიერება";
|
||||
|
|
@ -984,6 +1021,7 @@ $text['label-gain']['ro-ro'] = "Câştig";
|
|||
$text['label-gain']['ru-ru'] = "Усиление";
|
||||
$text['label-gain']['sv-se'] = "Förstärka";
|
||||
$text['label-gain']['uk-ua'] = "посилення";
|
||||
$text['label-gain']['tr-tr'] = "Kazanmak";
|
||||
$text['label-gain']['zh-cn'] = "获得";
|
||||
$text['label-gain']['ja-jp'] = "得";
|
||||
$text['label-gain']['ko-kr'] = "얻다";
|
||||
|
|
@ -1005,11 +1043,12 @@ $text['label-floor']['ka-ge'] = "აქვს იატაკი(Has Floor)";
|
|||
$text['label-floor']['nl-nl'] = "Heeft het woord";
|
||||
$text['label-floor']['pl-pl'] = "Posiada piętro";
|
||||
$text['label-floor']['pt-br'] = "Derrubar";
|
||||
$text['label-floor']['pt-pt'] = "Floor";
|
||||
$text['label-floor']['pt-pt'] = "Tem Piso";
|
||||
$text['label-floor']['ro-ro'] = "Are podea";
|
||||
$text['label-floor']['ru-ru'] = "Has Floor";
|
||||
$text['label-floor']['ru-ru'] = "Имеет пол";
|
||||
$text['label-floor']['sv-se'] = "Har Ordet";
|
||||
$text['label-floor']['uk-ua'] = "Має Поверх";
|
||||
$text['label-floor']['tr-tr'] = "Zemini Var";
|
||||
$text['label-floor']['zh-cn'] = "有楼层";
|
||||
$text['label-floor']['ja-jp'] = "床あり";
|
||||
$text['label-floor']['ko-kr'] = "바닥 있음";
|
||||
|
|
@ -1036,6 +1075,7 @@ $text['label-energy']['ro-ro'] = "Energie";
|
|||
$text['label-energy']['ru-ru'] = "Энергия";
|
||||
$text['label-energy']['sv-se'] = "Energi";
|
||||
$text['label-energy']['uk-ua'] = "Енергія";
|
||||
$text['label-energy']['tr-tr'] = "Enerji";
|
||||
$text['label-energy']['zh-cn'] = "活力";
|
||||
$text['label-energy']['ja-jp'] = "エネルギー";
|
||||
$text['label-energy']['ko-kr'] = "에너지";
|
||||
|
|
@ -1062,6 +1102,7 @@ $text['label-end-conference']['ro-ro'] = "Încheierea conferinței";
|
|||
$text['label-end-conference']['ru-ru'] = "Закончить конференцию";
|
||||
$text['label-end-conference']['sv-se'] = "Avsluta Konferens";
|
||||
$text['label-end-conference']['uk-ua'] = "Завершити конференцію";
|
||||
$text['label-end-conference']['tr-tr'] = "Konferans Sonu";
|
||||
$text['label-end-conference']['zh-cn'] = "结束会议";
|
||||
$text['label-end-conference']['ja-jp'] = "会議終了";
|
||||
$text['label-end-conference']['ko-kr'] = "컨퍼런스 종료";
|
||||
|
|
@ -1085,9 +1126,10 @@ $text['label-deaf']['pl-pl'] = "Głuchy";
|
|||
$text['label-deaf']['pt-br'] = "Ensurdecer ";
|
||||
$text['label-deaf']['pt-pt'] = "Ensurdecer";
|
||||
$text['label-deaf']['ro-ro'] = "Surd";
|
||||
$text['label-deaf']['ru-ru'] = "Deaf";
|
||||
$text['label-deaf']['ru-ru'] = "Глухой";
|
||||
$text['label-deaf']['sv-se'] = "Hör inte";
|
||||
$text['label-deaf']['uk-ua'] = "Глухий";
|
||||
$text['label-deaf']['tr-tr'] = "Sağır";
|
||||
$text['label-deaf']['zh-cn'] = "聋";
|
||||
$text['label-deaf']['ja-jp'] = "聴覚障がい";
|
||||
$text['label-deaf']['ko-kr'] = "청각 장애인";
|
||||
|
|
@ -1114,6 +1156,7 @@ $text['label-cid-num']['ro-ro'] = "Număr CID";
|
|||
$text['label-cid-num']['ru-ru'] = "Номер Caller ID";
|
||||
$text['label-cid-num']['sv-se'] = "CID, nummerpresentation";
|
||||
$text['label-cid-num']['uk-ua'] = "CID Номер";
|
||||
$text['label-cid-num']['tr-tr'] = "CID Numarası";
|
||||
$text['label-cid-num']['zh-cn'] = "来电号码";
|
||||
$text['label-cid-num']['ja-jp'] = "CID 番号";
|
||||
$text['label-cid-num']['ko-kr'] = "CID 번호";
|
||||
|
|
@ -1140,6 +1183,7 @@ $text['label-cid-name']['ro-ro'] = "Nume CID";
|
|||
$text['label-cid-name']['ru-ru'] = "CID Имя";
|
||||
$text['label-cid-name']['sv-se'] = "CID, Namnpresentation";
|
||||
$text['label-cid-name']['uk-ua'] = "CID Ім’я";
|
||||
$text['label-cid-name']['tr-tr'] = "CID Adı";
|
||||
$text['label-cid-name']['zh-cn'] = "客户ID名称";
|
||||
$text['label-cid-name']['ja-jp'] = "CID名";
|
||||
$text['label-cid-name']['ko-kr'] = "CID 이름";
|
||||
|
|
@ -1166,6 +1210,7 @@ $text['label-capabilities']['ro-ro'] = "Capabilități";
|
|||
$text['label-capabilities']['ru-ru'] = "Возможности";
|
||||
$text['label-capabilities']['sv-se'] = "Möjligheter";
|
||||
$text['label-capabilities']['uk-ua'] = "Можливості";
|
||||
$text['label-capabilities']['tr-tr'] = "Yetenekler";
|
||||
$text['label-capabilities']['zh-cn'] = "能力";
|
||||
$text['label-capabilities']['ja-jp'] = "機能";
|
||||
$text['label-capabilities']['ko-kr'] = "기능";
|
||||
|
|
@ -1192,6 +1237,7 @@ $text['description-interactive']['ro-ro'] = "Utilizați aceasta pentru a monitor
|
|||
$text['description-interactive']['ru-ru'] = "Используйте это, чтобы наблюдать и взаимодействовать с участниками конференции.";
|
||||
$text['description-interactive']['sv-se'] = "Använd detta för att Monitorera och Interagera med deltagare i Konferensen";
|
||||
$text['description-interactive']['uk-ua'] = "Використовуйте це для моніторингу та взаємодії з учасниками конференції.";
|
||||
$text['description-interactive']['tr-tr'] = "Bunu konferans üyelerini izlemek ve onlarla etkileşim kurmak için kullanın.";
|
||||
$text['description-interactive']['zh-cn'] = "使用它来监控会议成员并与之互动。";
|
||||
$text['description-interactive']['ja-jp'] = "これを使用して、会議のメンバーを監視したり、メンバーと対話したりできます。";
|
||||
$text['description-interactive']['ko-kr'] = "이를 사용하여 회의 구성원을 모니터링하고 상호 작용합니다.";
|
||||
|
|
@ -1218,6 +1264,7 @@ $text['description-active']['ro-ro'] = "Listați toate conferințele care sunt a
|
|||
$text['description-active']['ru-ru'] = "Список всех активных конференций с по крайней мере одним участником.";
|
||||
$text['description-active']['sv-se'] = "Lista alla konferenser som för närvarande är aktiva med en eller flera medlemmar.";
|
||||
$text['description-active']['uk-ua'] = "Перелічіть усі активні конференції з одним або кількома учасниками.";
|
||||
$text['description-active']['tr-tr'] = "Şu anda bir veya daha fazla üyesi olan aktif tüm konferansları listeleyin.";
|
||||
$text['description-active']['zh-cn'] = "列出当前有一名或多名成员参加的所有会议。";
|
||||
$text['description-active']['ja-jp'] = "1 人以上のメンバーと現在アクティブなすべての会議を一覧表示します。";
|
||||
$text['description-active']['ko-kr'] = "현재 한 명 이상의 구성원과 함께 활성화된 모든 회의를 나열합니다.";
|
||||
|
|
@ -1244,6 +1291,7 @@ $text['button-stop-rec']['ro-ro'] = "Opriți înregistrarea";
|
|||
$text['button-stop-rec']['ru-ru'] = "Остановить запись";
|
||||
$text['button-stop-rec']['sv-se'] = "Stoppa Inspelning";
|
||||
$text['button-stop-rec']['uk-ua'] = "Зупинити";
|
||||
$text['button-stop-rec']['tr-tr'] = "Kaydı Durdur";
|
||||
$text['button-stop-rec']['zh-cn'] = "停止记录";
|
||||
$text['button-stop-rec']['ja-jp'] = "記録の停止";
|
||||
$text['button-stop-rec']['ko-kr'] = "기록 중지";
|
||||
|
|
@ -1262,7 +1310,7 @@ $text['button-start-rec']['fr-fr'] = "Commencer l'Enregistrement";
|
|||
$text['button-start-rec']['he-il'] = "התחל להקליט";
|
||||
$text['button-start-rec']['it-it'] = "Avvia Registrazione";
|
||||
$text['button-start-rec']['ka-ge'] = "ჩაწერის დაწყება";
|
||||
$text['button-start-rec']['nl-nl'] = "Start opname";
|
||||
$text['button-start-rec']['nl-nl'] = "Startrecord";
|
||||
$text['button-start-rec']['pl-pl'] = "Początek nagrywania";
|
||||
$text['button-start-rec']['pt-br'] = "Iniciar gravação";
|
||||
$text['button-start-rec']['pt-pt'] = "Começar gravação";
|
||||
|
|
@ -1270,6 +1318,7 @@ $text['button-start-rec']['ro-ro'] = "Începeți înregistrarea";
|
|||
$text['button-start-rec']['ru-ru'] = "Включить запись";
|
||||
$text['button-start-rec']['sv-se'] = "Starta Inspelning";
|
||||
$text['button-start-rec']['uk-ua'] = "Записувати";
|
||||
$text['button-start-rec']['tr-tr'] = "Kaydı Başlat";
|
||||
$text['button-start-rec']['zh-cn'] = "开始录制";
|
||||
$text['button-start-rec']['ja-jp'] = "記録開始";
|
||||
$text['button-start-rec']['ko-kr'] = "기록 시작";
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@
|
|||
echo " <td>".escape($conference_extension)."</td>\n";
|
||||
echo " <td>".escape($participant_pin)."</td>\n";
|
||||
echo " <td class='center'>".escape($member_count)."</td>\n";
|
||||
if (permission_exists('conference_interactive_view') && !empty($_SESSION['theme']['list_row_edit_button']['boolean']) && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') {
|
||||
if (permission_exists('conference_interactive_view') && filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL)) {
|
||||
echo " <td class='action-button'>";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-view'],'icon'=>$_SESSION['theme']['button_icon_view'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ $text['title-database_transactions']['pt-pt'] = "Transações de Banco de Dados"
|
|||
$text['title-database_transactions']['ro-ro'] = "Tranzacții cu baze de date";
|
||||
$text['title-database_transactions']['ru-ru'] = "Изменения в базе данных";
|
||||
$text['title-database_transactions']['sv-se'] = "Databas Transaktioner";
|
||||
$text['title-database_transactions']['tr-tr'] = "Veritabanı İşlemleri";
|
||||
$text['title-database_transactions']['uk-ua'] = "Трансакції бази даних";
|
||||
$text['title-database_transactions']['zh-cn'] = "数据库事务";
|
||||
$text['title-database_transactions']['ja-jp'] = "データベース トランザクション";
|
||||
|
|
@ -37,7 +38,7 @@ $text['title-database_transaction']['es-cl'] = "Transacción de bases de datos";
|
|||
$text['title-database_transaction']['es-mx'] = "Transacción de bases de datos";
|
||||
$text['title-database_transaction']['fr-ca'] = "Transactions de base de données";
|
||||
$text['title-database_transaction']['fr-fr'] = "Transactions de base de données";
|
||||
$text['title-database_transaction']['he-il'] = "Database";
|
||||
$text['title-database_transaction']['he-il'] = "עסקאות במסד נתונים";
|
||||
$text['title-database_transaction']['it-it'] = "Transazione del database";
|
||||
$text['title-database_transaction']['ka-ge'] = "მონაცემთა ბაზის ტრანზაქცია";
|
||||
$text['title-database_transaction']['nl-nl'] = "Database transactie";
|
||||
|
|
@ -48,6 +49,7 @@ $text['title-database_transaction']['ro-ro'] = "Tranzacție cu baze de date";
|
|||
$text['title-database_transaction']['ru-ru'] = "Изменение в базе данных";
|
||||
$text['title-database_transaction']['sv-se'] = "Transaktionsdatabas";
|
||||
$text['title-database_transaction']['uk-ua'] = "Трансакція бази даних";
|
||||
$text['title-database_transaction']['tr-tr'] = "Veritabanı İşlemi";
|
||||
$text['title-database_transaction']['zh-cn'] = "数据库事务";
|
||||
$text['title-database_transaction']['ja-jp'] = "データベース トランザクション";
|
||||
$text['title-database_transaction']['ko-kr'] = "데이터베이스 트랜잭션";
|
||||
|
|
@ -74,6 +76,7 @@ $text['description-database_transactions']['ro-ro'] = "Urmăriți modificările
|
|||
$text['description-database_transactions']['ru-ru'] = "Отслеживайте изменения в базе данных. Отслеживайте время внесения изменений, пользователя и адрес пользователя, внесшего изменения. Предоставьте возможность отменить удаление и обновление транзакций.";
|
||||
$text['description-database_transactions']['sv-se'] = "Spåra ändringar i databasen. Spåra när ändringarna gjordes, användaren och adressen till användaren som gjorde ändringarna. Ge ett alternativ för att ångra radering och uppdatering av transaktioner.";
|
||||
$text['description-database_transactions']['uk-ua'] = "Відстежуйте зміни до бази даних. Відстежуйте, коли внесені зміни, користувач та адреса користувача, який вніс зміни. Забезпечити варіант видалення та оновлення транзакцій.";
|
||||
$text['description-database_transactions']['tr-tr'] = "Veritabanındaki değişiklikleri izleyin. Değişikliklerin ne zaman yapıldığını, değişiklikleri yapan kullanıcının kullanıcısını ve adresini izleyin. İşlemleri silme ve güncellemeyi geri alma seçeneği sağlayın.";
|
||||
$text['description-database_transactions']['zh-cn'] = "跟踪对数据库的更改。 跟踪进行更改的时间、进行更改的用户和地址。 提供撤消删除和更新事务的选项。";
|
||||
$text['description-database_transactions']['ja-jp'] = "データベースへの変更を追跡します。 変更がいつ行われたか、変更を行ったユーザーのユーザーとアドレスを追跡します。 トランザクションの削除と更新を元に戻すオプションを提供します。";
|
||||
$text['description-database_transactions']['ko-kr'] = "데이터베이스에 대한 변경 사항을 추적합니다. 변경된 시기, 사용자 및 변경한 사용자의 주소를 추적합니다. 트랜잭션 삭제 및 업데이트를 실행 취소하는 옵션을 제공합니다.";
|
||||
|
|
@ -100,6 +103,7 @@ $text['label-user']['ro-ro'] = "Utilizator";
|
|||
$text['label-user']['ru-ru'] = "Пользователь";
|
||||
$text['label-user']['sv-se'] = "Användare";
|
||||
$text['label-user']['uk-ua'] = "Користувач";
|
||||
$text['label-user']['tr-tr'] = "Kullanıcı";
|
||||
$text['label-user']['zh-cn'] = "用户";
|
||||
$text['label-user']['ja-jp'] = "ユーザー";
|
||||
$text['label-user']['ko-kr'] = "사용자";
|
||||
|
|
@ -126,6 +130,7 @@ $text['label-user_uuid']['ro-ro'] = "Utilizator";
|
|||
$text['label-user_uuid']['ru-ru'] = "Пользователь";
|
||||
$text['label-user_uuid']['sv-se'] = "Användare";
|
||||
$text['label-user_uuid']['uk-ua'] = "Користувач";
|
||||
$text['label-user_uuid']['tr-tr'] = "kullanıcı";
|
||||
$text['label-user_uuid']['zh-cn'] = "用户";
|
||||
$text['label-user_uuid']['ja-jp'] = "ユーザー";
|
||||
$text['label-user_uuid']['ko-kr'] = "사용자";
|
||||
|
|
@ -152,6 +157,7 @@ $text['description-user_uuid']['ro-ro'] = "Tranzacția utilizatorului.";
|
|||
$text['description-user_uuid']['ru-ru'] = "Транзакции пользователя.";
|
||||
$text['description-user_uuid']['sv-se'] = "Användar transaktion";
|
||||
$text['description-user_uuid']['uk-ua'] = "Операція користувача.";
|
||||
$text['description-user_uuid']['tr-tr'] = "Kullanıcı işlemi.";
|
||||
$text['description-user_uuid']['zh-cn'] = "用户交易。";
|
||||
$text['description-user_uuid']['ja-jp'] = "ユーザー取引。";
|
||||
$text['description-user_uuid']['ko-kr'] = "사용자 거래.";
|
||||
|
|
@ -167,7 +173,7 @@ $text['label-app_name']['es-cl'] = "Aplicación";
|
|||
$text['label-app_name']['es-mx'] = "Aplicación";
|
||||
$text['label-app_name']['fr-ca'] = "Application";
|
||||
$text['label-app_name']['fr-fr'] = "Application";
|
||||
$text['label-app_name']['he-il'] = "יישום";
|
||||
$text['label-app_name']['he-il'] = "בַּקָשָׁה";
|
||||
$text['label-app_name']['it-it'] = "Applicazione";
|
||||
$text['label-app_name']['ka-ge'] = "აპლიკაცია";
|
||||
$text['label-app_name']['nl-nl'] = "Applicatie";
|
||||
|
|
@ -178,6 +184,7 @@ $text['label-app_name']['ro-ro'] = "Aplicație";
|
|||
$text['label-app_name']['ru-ru'] = "Приложение";
|
||||
$text['label-app_name']['sv-se'] = "Applikation";
|
||||
$text['label-app_name']['uk-ua'] = "Додаток";
|
||||
$text['label-app_name']['tr-tr'] = "Başvuru";
|
||||
$text['label-app_name']['zh-cn'] = "应用";
|
||||
$text['label-app_name']['ja-jp'] = "応用";
|
||||
$text['label-app_name']['ko-kr'] = "애플리케이션";
|
||||
|
|
@ -193,7 +200,7 @@ $text['description-app_name']['es-cl'] = "Nombre de aplicación.";
|
|||
$text['description-app_name']['es-mx'] = "Nombre de aplicación.";
|
||||
$text['description-app_name']['fr-ca'] = "Nom de l'application";
|
||||
$text['description-app_name']['fr-fr'] = "Nom de l'application";
|
||||
$text['description-app_name']['he-il'] = "שם הבקשה";
|
||||
$text['description-app_name']['he-il'] = "שם האפליקציה.";
|
||||
$text['description-app_name']['it-it'] = "Nome dell'applicazione.";
|
||||
$text['description-app_name']['ka-ge'] = "აპლიკაციის სახელი.";
|
||||
$text['description-app_name']['nl-nl'] = "Applicatie naam.";
|
||||
|
|
@ -204,6 +211,7 @@ $text['description-app_name']['ro-ro'] = "Numele aplicatiei.";
|
|||
$text['description-app_name']['ru-ru'] = "Имя приложения.";
|
||||
$text['description-app_name']['sv-se'] = "Applikation namn";
|
||||
$text['description-app_name']['uk-ua'] = "Назва заявки.";
|
||||
$text['description-app_name']['tr-tr'] = "Uygulama adı.";
|
||||
$text['description-app_name']['zh-cn'] = "应用名称。";
|
||||
$text['description-app_name']['ja-jp'] = "アプリケーション名。";
|
||||
$text['description-app_name']['ko-kr'] = "애플리케이션 이름.";
|
||||
|
|
@ -219,7 +227,7 @@ $text['label-app_uuid']['es-cl'] = "Aplicación Id";
|
|||
$text['label-app_uuid']['es-mx'] = "Aplicación Id";
|
||||
$text['label-app_uuid']['fr-ca'] = "ID d'application";
|
||||
$text['label-app_uuid']['fr-fr'] = "ID d'application";
|
||||
$text['label-app_uuid']['he-il'] = "יישום Id";
|
||||
$text['label-app_uuid']['he-il'] = "מזהה אפליקציה";
|
||||
$text['label-app_uuid']['it-it'] = "Applicazione";
|
||||
$text['label-app_uuid']['ka-ge'] = "აპლიკაციის ID";
|
||||
$text['label-app_uuid']['nl-nl'] = "Applicatie ID.";
|
||||
|
|
@ -230,6 +238,7 @@ $text['label-app_uuid']['ro-ro'] = "Id. aplicație";
|
|||
$text['label-app_uuid']['ru-ru'] = "Id приложения";
|
||||
$text['label-app_uuid']['sv-se'] = "Applikation Id.";
|
||||
$text['label-app_uuid']['uk-ua'] = "Додаток Id";
|
||||
$text['label-app_uuid']['tr-tr'] = "Uygulama Kimliği";
|
||||
$text['label-app_uuid']['zh-cn'] = "申请编号";
|
||||
$text['label-app_uuid']['ja-jp'] = "アプリケーションID";
|
||||
$text['label-app_uuid']['ko-kr'] = "애플리케이션 ID";
|
||||
|
|
@ -245,7 +254,7 @@ $text['description-app_uuid']['es-cl'] = "Nombre de aplicación.";
|
|||
$text['description-app_uuid']['es-mx'] = "Nombre de aplicación.";
|
||||
$text['description-app_uuid']['fr-ca'] = "Nom de l'application";
|
||||
$text['description-app_uuid']['fr-fr'] = "Nom de l'application";
|
||||
$text['description-app_uuid']['he-il'] = "שם הבקשה";
|
||||
$text['description-app_uuid']['he-il'] = "שם האפליקציה.";
|
||||
$text['description-app_uuid']['it-it'] = "Nome dell'applicazione.";
|
||||
$text['description-app_uuid']['ka-ge'] = "აპლიკაციის სახელი.";
|
||||
$text['description-app_uuid']['nl-nl'] = "Applicatie naam.";
|
||||
|
|
@ -256,6 +265,7 @@ $text['description-app_uuid']['ro-ro'] = "Numele aplicatiei.";
|
|||
$text['description-app_uuid']['ru-ru'] = "Имя приложения.";
|
||||
$text['description-app_uuid']['sv-se'] = "Applikation namn.";
|
||||
$text['description-app_uuid']['uk-ua'] = "Назва заявки.";
|
||||
$text['description-app_uuid']['tr-tr'] = "Uygulama adı.";
|
||||
$text['description-app_uuid']['zh-cn'] = "应用名称。";
|
||||
$text['description-app_uuid']['ja-jp'] = "アプリケーション名。";
|
||||
$text['description-app_uuid']['ko-kr'] = "애플리케이션 이름.";
|
||||
|
|
@ -271,7 +281,7 @@ $text['label-transaction_code']['es-cl'] = "Código";
|
|||
$text['label-transaction_code']['es-mx'] = "Código";
|
||||
$text['label-transaction_code']['fr-ca'] = "Code";
|
||||
$text['label-transaction_code']['fr-fr'] = "Code";
|
||||
$text['label-transaction_code']['he-il'] = "קודקוד";
|
||||
$text['label-transaction_code']['he-il'] = "קוד";
|
||||
$text['label-transaction_code']['it-it'] = "Codice";
|
||||
$text['label-transaction_code']['ka-ge'] = "კოდი";
|
||||
$text['label-transaction_code']['nl-nl'] = "Code";
|
||||
|
|
@ -282,6 +292,7 @@ $text['label-transaction_code']['ro-ro'] = "Cod";
|
|||
$text['label-transaction_code']['ru-ru'] = "Код";
|
||||
$text['label-transaction_code']['sv-se'] = "Kod";
|
||||
$text['label-transaction_code']['uk-ua'] = "Коди";
|
||||
$text['label-transaction_code']['tr-tr'] = "Kod";
|
||||
$text['label-transaction_code']['zh-cn'] = "代码";
|
||||
$text['label-transaction_code']['ja-jp'] = "コード";
|
||||
$text['label-transaction_code']['ko-kr'] = "암호";
|
||||
|
|
@ -308,6 +319,7 @@ $text['description-transaction_code']['ro-ro'] = "Cod de tranzacție.";
|
|||
$text['description-transaction_code']['ru-ru'] = "Код транзакции.";
|
||||
$text['description-transaction_code']['sv-se'] = "Transaktion kod.";
|
||||
$text['description-transaction_code']['uk-ua'] = "Код транзакції.";
|
||||
$text['description-transaction_code']['tr-tr'] = "İşlem kodu.";
|
||||
$text['description-transaction_code']['zh-cn'] = "交易代码。";
|
||||
$text['description-transaction_code']['ja-jp'] = "取引コード。";
|
||||
$text['description-transaction_code']['ko-kr'] = "트랜잭션 코드.";
|
||||
|
|
@ -334,6 +346,7 @@ $text['label-transaction_address']['ro-ro'] = "Adresa IP";
|
|||
$text['label-transaction_address']['ru-ru'] = "IP Адреса";
|
||||
$text['label-transaction_address']['sv-se'] = "IP Address";
|
||||
$text['label-transaction_address']['uk-ua'] = "IP-адреса";
|
||||
$text['label-transaction_address']['tr-tr'] = "IP Adresi";
|
||||
$text['label-transaction_address']['zh-cn'] = "IP地址";
|
||||
$text['label-transaction_address']['ja-jp'] = "IPアドレス";
|
||||
$text['label-transaction_address']['ko-kr'] = "IP 주소";
|
||||
|
|
@ -360,6 +373,7 @@ $text['description-transaction_address']['ro-ro'] = "adresa IP a utilizatorului.
|
|||
$text['description-transaction_address']['ru-ru'] = "IP адреса пользователя.";
|
||||
$text['description-transaction_address']['sv-se'] = "Användarens IP Address";
|
||||
$text['description-transaction_address']['uk-ua'] = "IP-адреса користувача.";
|
||||
$text['description-transaction_address']['tr-tr'] = "Kullanıcının IP adresi.";
|
||||
$text['description-transaction_address']['zh-cn'] = "用户的 IP 地址。";
|
||||
$text['description-transaction_address']['ja-jp'] = "ユーザーの IP アドレス。。";
|
||||
$text['description-transaction_address']['ko-kr'] = "사용자의 IP 주소입니다.";
|
||||
|
|
@ -375,7 +389,7 @@ $text['label-transaction_type']['es-cl'] = "Tipo";
|
|||
$text['label-transaction_type']['es-mx'] = "Tipo";
|
||||
$text['label-transaction_type']['fr-ca'] = "Type";
|
||||
$text['label-transaction_type']['fr-fr'] = "Type";
|
||||
$text['label-transaction_type']['he-il'] = "סוג";
|
||||
$text['label-transaction_type']['he-il'] = "סוּג";
|
||||
$text['label-transaction_type']['it-it'] = "Tipo";
|
||||
$text['label-transaction_type']['ka-ge'] = "ტიპი";
|
||||
$text['label-transaction_type']['nl-nl'] = "Type";
|
||||
|
|
@ -386,6 +400,7 @@ $text['label-transaction_type']['ro-ro'] = "Tip";
|
|||
$text['label-transaction_type']['ru-ru'] = "Тип";
|
||||
$text['label-transaction_type']['sv-se'] = "Typ";
|
||||
$text['label-transaction_type']['uk-ua'] = "Тип";
|
||||
$text['label-transaction_type']['tr-tr'] = "Tip";
|
||||
$text['label-transaction_type']['zh-cn'] = "类型";
|
||||
$text['label-transaction_type']['ja-jp'] = "タイプ";
|
||||
$text['label-transaction_type']['ko-kr'] = "유형";
|
||||
|
|
@ -393,9 +408,9 @@ $text['label-transaction_type']['ko-kr'] = "유형";
|
|||
$text['description-transaction_type']['en-us'] = "Type: add, update, delete";
|
||||
$text['description-transaction_type']['en-gb'] = "Type: add, update, delete";
|
||||
$text['description-transaction_type']['ar-eg'] = "النوع: إضافة، تحديث، حذف";
|
||||
$text['description-transaction_type']['de-at'] = "Typ: add, update, delete";
|
||||
$text['description-transaction_type']['de-ch'] = "Typ: add, update, delete";
|
||||
$text['description-transaction_type']['de-de'] = "Typ: add, update, delete";
|
||||
$text['description-transaction_type']['de-at'] = "Typ: hinzufügen, aktualisieren, löschen";
|
||||
$text['description-transaction_type']['de-ch'] = "Typ: hinzufügen, aktualisieren, löschen";
|
||||
$text['description-transaction_type']['de-de'] = "Typ: hinzufügen, aktualisieren, löschen";
|
||||
$text['description-transaction_type']['el-gr'] = "Τύπος: προσθήκη, ενημέρωση, διαγραφή";
|
||||
$text['description-transaction_type']['es-cl'] = "Tipo: añadir, actualizar, eliminar";
|
||||
$text['description-transaction_type']['es-mx'] = "Tipo: añadir, actualizar, eliminar";
|
||||
|
|
@ -412,6 +427,7 @@ $text['description-transaction_type']['ro-ro'] = "Tip: adăugați, actualizați,
|
|||
$text['description-transaction_type']['ru-ru'] = "Тип: добавить, обновить, удалить";
|
||||
$text['description-transaction_type']['sv-se'] = "Typ: lägg till, ändra, ta bort, välj";
|
||||
$text['description-transaction_type']['uk-ua'] = "Тип: додати, оновити, видалити";
|
||||
$text['description-transaction_type']['tr-tr'] = "Tür: ekle, güncelle, sil";
|
||||
$text['description-transaction_type']['zh-cn'] = "类型:添加、更新、删除";
|
||||
$text['description-transaction_type']['ja-jp'] = "タイプ: 追加、更新、削除";
|
||||
$text['description-transaction_type']['ko-kr'] = "유형: 추가, 업데이트, 삭제";
|
||||
|
|
@ -438,6 +454,7 @@ $text['label-transaction_date']['ro-ro'] = "Data";
|
|||
$text['label-transaction_date']['ru-ru'] = "Дата";
|
||||
$text['label-transaction_date']['sv-se'] = "Datum";
|
||||
$text['label-transaction_date']['uk-ua'] = "Дата";
|
||||
$text['label-transaction_date']['tr-tr'] = "Tarih";
|
||||
$text['label-transaction_date']['zh-cn'] = "日期";
|
||||
$text['label-transaction_date']['ja-jp'] = "日にち";
|
||||
$text['label-transaction_date']['ko-kr'] = "날짜";
|
||||
|
|
@ -464,6 +481,7 @@ $text['description-transaction_date']['ro-ro'] = "Data tranzacției.";
|
|||
$text['description-transaction_date']['ru-ru'] = "Дата транзакции.";
|
||||
$text['description-transaction_date']['sv-se'] = "Transaktions datum.";
|
||||
$text['description-transaction_date']['uk-ua'] = "Дата операції.";
|
||||
$text['description-transaction_date']['tr-tr'] = "İşlem tarihi.";
|
||||
$text['description-transaction_date']['zh-cn'] = "交易日期。";
|
||||
$text['description-transaction_date']['ja-jp'] = "取引日。";
|
||||
$text['description-transaction_date']['ko-kr'] = "거래 날짜.";
|
||||
|
|
@ -490,6 +508,7 @@ $text['label-transaction_old']['ro-ro'] = "Inainte de";
|
|||
$text['label-transaction_old']['ru-ru'] = "До";
|
||||
$text['label-transaction_old']['sv-se'] = "Före";
|
||||
$text['label-transaction_old']['uk-ua'] = "До";
|
||||
$text['label-transaction_old']['tr-tr'] = "Önce";
|
||||
$text['label-transaction_old']['zh-cn'] = "前";
|
||||
$text['label-transaction_old']['ja-jp'] = "前";
|
||||
$text['label-transaction_old']['ko-kr'] = "전에";
|
||||
|
|
@ -505,7 +524,7 @@ $text['description-transaction_old']['es-cl'] = "Array antes de la transacción.
|
|||
$text['description-transaction_old']['es-mx'] = "Array antes de la transacción.";
|
||||
$text['description-transaction_old']['fr-ca'] = "Tableau avant la transaction";
|
||||
$text['description-transaction_old']['fr-fr'] = "Tableau avant la transaction";
|
||||
$text['description-transaction_old']['he-il'] = "לפני העסקה";
|
||||
$text['description-transaction_old']['he-il'] = "מערך לפני העסקה.";
|
||||
$text['description-transaction_old']['it-it'] = "Array prima della transazione.";
|
||||
$text['description-transaction_old']['ka-ge'] = "მასივი ტრანზაქციამდე.";
|
||||
$text['description-transaction_old']['nl-nl'] = "Tabel voor de transactie.";
|
||||
|
|
@ -516,6 +535,7 @@ $text['description-transaction_old']['ro-ro'] = "Matrice înainte de tranzacție
|
|||
$text['description-transaction_old']['ru-ru'] = "Массив перед транзакцией.";
|
||||
$text['description-transaction_old']['sv-se'] = "Array före transaktionen.";
|
||||
$text['description-transaction_old']['uk-ua'] = "Проти операції.";
|
||||
$text['description-transaction_old']['tr-tr'] = "İşlemden önceki dizi.";
|
||||
$text['description-transaction_old']['zh-cn'] = "交易前的数组。";
|
||||
$text['description-transaction_old']['ja-jp'] = "トランザクション前の配列。";
|
||||
$text['description-transaction_old']['ko-kr'] = "거래 전 배열.";
|
||||
|
|
@ -542,6 +562,7 @@ $text['label-transaction_new']['ro-ro'] = "După";
|
|||
$text['label-transaction_new']['ru-ru'] = "После";
|
||||
$text['label-transaction_new']['sv-se'] = "Efter";
|
||||
$text['label-transaction_new']['uk-ua'] = "Після";
|
||||
$text['label-transaction_new']['tr-tr'] = "Sonrasında";
|
||||
$text['label-transaction_new']['zh-cn'] = "后";
|
||||
$text['label-transaction_new']['ja-jp'] = "後";
|
||||
$text['label-transaction_new']['ko-kr'] = "후에";
|
||||
|
|
@ -568,6 +589,7 @@ $text['description-transaction_new']['ro-ro'] = "Matrice după tranzacție.";
|
|||
$text['description-transaction_new']['ru-ru'] = "Массив после транзакции.";
|
||||
$text['description-transaction_new']['sv-se'] = "Array efter transaktionen.";
|
||||
$text['description-transaction_new']['uk-ua'] = "Проводити після операції.";
|
||||
$text['description-transaction_new']['tr-tr'] = "İşlem sonrası dizi.";
|
||||
$text['description-transaction_new']['zh-cn'] = "交易后的数组。";
|
||||
$text['description-transaction_new']['ja-jp'] = "トランザクション後の配列。";
|
||||
$text['description-transaction_new']['ko-kr'] = "트랜잭션 후 배열.";
|
||||
|
|
@ -594,6 +616,7 @@ $text['label-transaction_result']['ro-ro'] = "Rezultat";
|
|||
$text['label-transaction_result']['ru-ru'] = "Результат.";
|
||||
$text['label-transaction_result']['sv-se'] = "Resultat";
|
||||
$text['label-transaction_result']['uk-ua'] = "Почати";
|
||||
$text['label-transaction_result']['tr-tr'] = "Sonuç";
|
||||
$text['label-transaction_result']['zh-cn'] = "结果";
|
||||
$text['label-transaction_result']['ja-jp'] = "結果";
|
||||
$text['label-transaction_result']['ko-kr'] = "결과";
|
||||
|
|
@ -620,6 +643,7 @@ $text['description-transaction_result']['ro-ro'] = "Rezultatul tranzacției.";
|
|||
$text['description-transaction_result']['ru-ru'] = "Результат транзакции.";
|
||||
$text['description-transaction_result']['sv-se'] = "Resultat av transaktionen.";
|
||||
$text['description-transaction_result']['uk-ua'] = "Результат операції.";
|
||||
$text['description-transaction_result']['tr-tr'] = "İşlemin sonucu.";
|
||||
$text['description-transaction_result']['zh-cn'] = "交易的结果。";
|
||||
$text['description-transaction_result']['ja-jp'] = "トランザクションの結果。";
|
||||
$text['description-transaction_result']['ko-kr'] = "거래 결과.";
|
||||
|
|
@ -635,7 +659,7 @@ $text['label-true']['es-cl'] = "verdadero";
|
|||
$text['label-true']['es-mx'] = "verdadero";
|
||||
$text['label-true']['fr-ca'] = "Vrai";
|
||||
$text['label-true']['fr-fr'] = "Vrai";
|
||||
$text['label-true']['he-il'] = "אמת אמיתית";
|
||||
$text['label-true']['he-il'] = "נָכוֹן";
|
||||
$text['label-true']['it-it'] = "vero";
|
||||
$text['label-true']['ka-ge'] = "ჭეშმარიტი";
|
||||
$text['label-true']['nl-nl'] = "waar";
|
||||
|
|
@ -646,6 +670,7 @@ $text['label-true']['ro-ro'] = "Adevărat";
|
|||
$text['label-true']['ru-ru'] = "Да";
|
||||
$text['label-true']['sv-se'] = "sann";
|
||||
$text['label-true']['uk-ua'] = "Справді";
|
||||
$text['label-true']['tr-tr'] = "doğru";
|
||||
$text['label-true']['zh-cn'] = "真的";
|
||||
$text['label-true']['ja-jp'] = "真実";
|
||||
$text['label-true']['ko-kr'] = "진실";
|
||||
|
|
@ -661,7 +686,7 @@ $text['label-false']['es-cl'] = "falso";
|
|||
$text['label-false']['es-mx'] = "falso";
|
||||
$text['label-false']['fr-ca'] = "Faux";
|
||||
$text['label-false']['fr-fr'] = "Faux";
|
||||
$text['label-false']['he-il'] = "שקר כוזב";
|
||||
$text['label-false']['he-il'] = "שֶׁקֶר";
|
||||
$text['label-false']['it-it'] = "falso";
|
||||
$text['label-false']['ka-ge'] = "ცრუ";
|
||||
$text['label-false']['nl-nl'] = "onwaar";
|
||||
|
|
@ -672,6 +697,7 @@ $text['label-false']['ro-ro'] = "fals";
|
|||
$text['label-false']['ru-ru'] = "Нет";
|
||||
$text['label-false']['sv-se'] = "falsk";
|
||||
$text['label-false']['uk-ua'] = "Логін";
|
||||
$text['label-false']['tr-tr'] = "YANLIŞ";
|
||||
$text['label-false']['zh-cn'] = "错误的";
|
||||
$text['label-false']['ja-jp'] = "間違い";
|
||||
$text['label-false']['ko-kr'] = "거짓";
|
||||
|
|
@ -698,6 +724,7 @@ $text['button-add']['ro-ro'] = "Adăuga";
|
|||
$text['button-add']['ru-ru'] = "Добавить";
|
||||
$text['button-add']['sv-se'] = "Lägg Till";
|
||||
$text['button-add']['uk-ua'] = "Додати";
|
||||
$text['button-add']['tr-tr'] = "Eklemek";
|
||||
$text['button-add']['zh-cn'] = "添加";
|
||||
$text['button-add']['ja-jp'] = "追加";
|
||||
$text['button-add']['ko-kr'] = "추가하다";
|
||||
|
|
@ -724,6 +751,7 @@ $text['button-edit']['ro-ro'] = "Editați";
|
|||
$text['button-edit']['ru-ru'] = "Редактировать";
|
||||
$text['button-edit']['sv-se'] = "Ändra";
|
||||
$text['button-edit']['uk-ua'] = "Редагування";
|
||||
$text['button-edit']['tr-tr'] = "Düzenlemek";
|
||||
$text['button-edit']['zh-cn'] = "编辑";
|
||||
$text['button-edit']['ja-jp'] = "編集";
|
||||
$text['button-edit']['ko-kr'] = "편집하다";
|
||||
|
|
@ -750,6 +778,7 @@ $text['button-delete']['ro-ro'] = "Șterge";
|
|||
$text['button-delete']['ru-ru'] = "Удалить";
|
||||
$text['button-delete']['sv-se'] = "Ta Bort";
|
||||
$text['button-delete']['uk-ua'] = "Делет";
|
||||
$text['button-delete']['tr-tr'] = "Silmek";
|
||||
$text['button-delete']['zh-cn'] = "删除";
|
||||
$text['button-delete']['ja-jp'] = "消去";
|
||||
$text['button-delete']['ko-kr'] = "삭제";
|
||||
|
|
@ -776,6 +805,7 @@ $text['button-save']['ro-ro'] = "Salvați";
|
|||
$text['button-save']['ru-ru'] = "Сохранить";
|
||||
$text['button-save']['sv-se'] = "Spara";
|
||||
$text['button-save']['uk-ua'] = "Зберегти";
|
||||
$text['button-save']['tr-tr'] = "Kaydetmek";
|
||||
$text['button-save']['zh-cn'] = "节省";
|
||||
$text['button-save']['ja-jp'] = "保存";
|
||||
$text['button-save']['ko-kr'] = "구하다";
|
||||
|
|
@ -802,6 +832,7 @@ $text['button-view']['ro-ro'] = "Vedere";
|
|||
$text['button-view']['ru-ru'] = "Просмотрт";
|
||||
$text['button-view']['sv-se'] = "Visa";
|
||||
$text['button-view']['uk-ua'] = "Переглянути";
|
||||
$text['button-view']['tr-tr'] = "Görüş";
|
||||
$text['button-view']['zh-cn'] = "看法";
|
||||
$text['button-view']['ja-jp'] = "意見";
|
||||
$text['button-view']['ko-kr'] = "보다";
|
||||
|
|
@ -827,7 +858,8 @@ $text['button-back']['pt-pt'] = "Voltar";
|
|||
$text['button-back']['ro-ro'] = "Înapoi";
|
||||
$text['button-back']['ru-ru'] = "Назад";
|
||||
$text['button-back']['sv-se'] = "Tillbaka";
|
||||
$text['button-back']['uk-ua'] = "Зареєструватися";
|
||||
$text['button-back']['uk-ua'] = "Назад";
|
||||
$text['button-back']['tr-tr'] = "Geri";
|
||||
$text['button-back']['zh-cn'] = "后退";
|
||||
$text['button-back']['ja-jp'] = "戻る";
|
||||
$text['button-back']['ko-kr'] = "뒤쪽에";
|
||||
|
|
@ -854,6 +886,7 @@ $text['confirm-delete']['ro-ro'] = "Chiar vrei să ștergi asta?";
|
|||
$text['confirm-delete']['ru-ru'] = "Вы действительно хотите удалить это?";
|
||||
$text['confirm-delete']['sv-se'] = "Vill du verkligen ta bort detta?";
|
||||
$text['confirm-delete']['uk-ua'] = "Ви дійсно хочете видалити це?";
|
||||
$text['confirm-delete']['tr-tr'] = "Bunu gerçekten silmek istiyor musunuz?";
|
||||
$text['confirm-delete']['zh-cn'] = "您真的要删除它吗?";
|
||||
$text['confirm-delete']['ja-jp'] = "本当にこれを削除しますか?";
|
||||
$text['confirm-delete']['ko-kr'] = "정말 삭제하시겠습니까?";
|
||||
|
|
@ -880,6 +913,7 @@ $text['message-add']['ro-ro'] = "Adăugați finalizat";
|
|||
$text['message-add']['ru-ru'] = "Добавление выполнено";
|
||||
$text['message-add']['sv-se'] = "Tillagd";
|
||||
$text['message-add']['uk-ua'] = "Додати завершено";
|
||||
$text['message-add']['tr-tr'] = "Tamamlandı Ekle";
|
||||
$text['message-add']['zh-cn'] = "添加完成";
|
||||
$text['message-add']['ja-jp'] = "追加完了";
|
||||
$text['message-add']['ko-kr'] = "추가완료";
|
||||
|
|
@ -906,6 +940,7 @@ $text['message-update']['ro-ro'] = "Actualizare finalizată";
|
|||
$text['message-update']['ru-ru'] = "Обновление выполнено";
|
||||
$text['message-update']['sv-se'] = "Ändring utförd";
|
||||
$text['message-update']['uk-ua'] = "Оновлення завершено";
|
||||
$text['message-update']['tr-tr'] = "Güncelleme Tamamlandı";
|
||||
$text['message-update']['zh-cn'] = "更新完成";
|
||||
$text['message-update']['ja-jp'] = "アップデート完了";
|
||||
$text['message-update']['ko-kr'] = "업데이트 완료";
|
||||
|
|
@ -932,6 +967,7 @@ $text['message-delete']['ro-ro'] = "Ștergere finalizată";
|
|||
$text['message-delete']['ru-ru'] = "Удаление выполнено";
|
||||
$text['message-delete']['sv-se'] = "Borttagning utförd";
|
||||
$text['message-delete']['uk-ua'] = "Видалити завершено";
|
||||
$text['message-delete']['tr-tr'] = "Sil Tamamlandı";
|
||||
$text['message-delete']['zh-cn'] = "删除完成";
|
||||
$text['message-delete']['ja-jp'] = "削除完了";
|
||||
$text['message-delete']['ko-kr'] = "삭제 완료";
|
||||
|
|
@ -958,6 +994,7 @@ $text['message-required']['ro-ro'] = "Vă rugăm să oferiți:";
|
|||
$text['message-required']['ru-ru'] = "Пожалуйста предоставьте:";
|
||||
$text['message-required']['sv-se'] = "Var god ange: ";
|
||||
$text['message-required']['uk-ua'] = "Будь ласка, заповніть:";
|
||||
$text['message-required']['tr-tr'] = "Lütfen şunları sağlayın:";
|
||||
$text['message-required']['zh-cn'] = "请提供:";
|
||||
$text['message-required']['ja-jp'] = "どうか提供してください:";
|
||||
$text['message-required']['ko-kr'] = "제공 부탁드립니다:";
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@
|
|||
$order = $_GET["order"] ?? '';
|
||||
|
||||
//set from session variables
|
||||
$list_row_edit_button = !empty($_SESSION['theme']['list_row_edit_button']['boolean']) ? $_SESSION['theme']['list_row_edit_button']['boolean'] : 'false';
|
||||
$list_row_edit_button = filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL);
|
||||
$button_icon_view = !empty($_SESSION['theme']['button_icon_view']) ? $_SESSION['theme']['button_icon_view'] : '';
|
||||
|
||||
//add the user filter and search term
|
||||
|
|
@ -187,7 +187,7 @@
|
|||
echo th_order_by('transaction_address', $text['label-transaction_address'], $order_by, $order);
|
||||
echo th_order_by('transaction_type', $text['label-transaction_type'], $order_by, $order);
|
||||
echo th_order_by('transaction_date', $text['label-transaction_date'], $order_by, $order);
|
||||
if (permission_exists('database_transaction_edit') && !empty($list_row_edit_button) && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('database_transaction_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -195,8 +195,12 @@
|
|||
$x = 0;
|
||||
foreach($transactions as $row) {
|
||||
if (empty($row['domain_name'])) { $row['domain_name'] = $text['label-global']; }
|
||||
$list_row_url = '';
|
||||
if (permission_exists('database_transaction_edit')) {
|
||||
$list_row_url = "database_transaction_edit.php?id=".urlencode($row['database_transaction_uuid']).(!empty($page) ? "&page=".urlencode($page) : null).(!empty($search) ? "&search=".urlencode($search) : null);
|
||||
if ($row['domain_uuid'] != $_SESSION['domain_uuid'] && permission_exists('domain_select')) {
|
||||
$list_row_url .= '&domain_uuid='.urlencode($row['domain_uuid']).'&domain_change=true';
|
||||
}
|
||||
}
|
||||
echo "<tr class='list-row' href='".$list_row_url."'>\n";
|
||||
echo " <td>".escape($row['domain_name'])." </td>\n";
|
||||
|
|
@ -206,7 +210,7 @@
|
|||
echo " <td>".escape($row['transaction_address'])." </td>\n";
|
||||
echo " <td>".escape($row['transaction_type'])." </td>\n";
|
||||
echo " <td>".escape($row['transaction_date'])." </td>\n";
|
||||
if (permission_exists('database_transaction_edit') && !empty($list_row_edit_button) && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('database_transaction_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'>\n";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-view'],'icon'=>$_SESSION['theme']['button_icon_view'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
@ -225,3 +229,4 @@
|
|||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -167,6 +167,10 @@
|
|||
$y++;
|
||||
$apps[$x]['permissions'][$y]['name'] = "destination_local";
|
||||
$y++;
|
||||
$apps[$x]['permissions'][$y]['name'] = "destination_email";
|
||||
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
|
||||
$apps[$x]['permissions'][$y]['groups'][] = "admin";
|
||||
$y++;
|
||||
|
||||
//default settings
|
||||
$y = 0;
|
||||
|
|
@ -397,6 +401,10 @@
|
|||
$apps[$x]['db'][$y]['fields'][$z]['search'] = 'true';
|
||||
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Enter the description.";
|
||||
$z++;
|
||||
$apps[$x]['db'][$y]['fields'][$z]['name'] = "destination_email";
|
||||
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
|
||||
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Select whether to send email notifications of incoming SMS/MMS messages";
|
||||
$z++;
|
||||
$apps[$x]['db'][$y]['fields'][$z]['name'] = "insert_date";
|
||||
$apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = 'timestamptz';
|
||||
$apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = 'date';
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ if ($domains_processed == 1) {
|
|||
//save to the data
|
||||
if (!empty($array)) {
|
||||
//add temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('destination_edit', 'temp');
|
||||
|
||||
//create the database object and save the data
|
||||
|
|
@ -109,7 +109,7 @@ if ($domains_processed == 1) {
|
|||
|
||||
if (!empty($array)) {
|
||||
//add temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('destination_edit', 'temp');
|
||||
|
||||
//create the database object and save the data
|
||||
|
|
|
|||
|
|
@ -1162,6 +1162,33 @@ $text['label-destination_conditions']['zh-cn'] = "状况";
|
|||
$text['label-destination_conditions']['ja-jp'] = "条件";
|
||||
$text['label-destination_conditions']['ko-kr'] = "정황";
|
||||
|
||||
$text['label-destination_email']['en-us'] = "Email Notifications";
|
||||
$text['label-destination_email']['en-gb'] = "Email Notifications";
|
||||
$text['label-destination_email']['ar-eg'] = "إشعارات البريد الإلكتروني";
|
||||
$text['label-destination_email']['de-at'] = "E-Mail-Benachrichtigungen";
|
||||
$text['label-destination_email']['de-ch'] = "E-Mail-Benachrichtigungen";
|
||||
$text['label-destination_email']['de-de'] = "E-Mail-Benachrichtigungen";
|
||||
$text['label-destination_email']['el-gr'] = "Ειδοποιήσεις μέσω ηλεκτρονικού ταχυδρομείου";
|
||||
$text['label-destination_email']['es-cl'] = "Notificaciones por correo electrónico";
|
||||
$text['label-destination_email']['es-mx'] = "Notificaciones por correo electrónico";
|
||||
$text['label-destination_email']['fr-ca'] = "Notifications par courriel";
|
||||
$text['label-destination_email']['fr-fr'] = "Notifications par e-mail";
|
||||
$text['label-destination_email']['he-il'] = "התראות דוא\"ל";
|
||||
$text['label-destination_email']['it-it'] = "Notifiche via email";
|
||||
$text['label-destination_email']['ka-ge'] = "ელ.ფოსტით შეტყობინებები";
|
||||
$text['label-destination_email']['nl-nl'] = "E-mailmeldingen";
|
||||
$text['label-destination_email']['pl-pl'] = "Powiadomienia e-mail";
|
||||
$text['label-destination_email']['pt-br'] = "Notificações por e-mail";
|
||||
$text['label-destination_email']['pt-pt'] = "Notificações por e-mail";
|
||||
$text['label-destination_email']['ro-ro'] = "Notificări prin e-mail";
|
||||
$text['label-destination_email']['ru-ru'] = "Уведомления по электронной почте";
|
||||
$text['label-destination_email']['sv-se'] = "E-postmeddelanden";
|
||||
$text['label-destination_email']['uk-ua'] = "Повідомлення електронною поштою";
|
||||
$text['label-destination_email']['tr-tr'] = "E-posta Bildirimleri";
|
||||
$text['label-destination_email']['zh-cn'] = "邮件通知";
|
||||
$text['label-destination_email']['ja-jp'] = "メール通知";
|
||||
$text['label-destination_email']['ko-kr'] = "이메일 알림";
|
||||
|
||||
$text['option-caller_id_number']['en-us'] = "Caller ID Number";
|
||||
$text['option-caller_id_number']['en-gb'] = "Caller ID Number";
|
||||
$text['option-caller_id_number']['ar-eg'] = "رقم المتصل";
|
||||
|
|
@ -2352,6 +2379,33 @@ $text['description-usage']['zh-cn'] = "设置目的地的使用方式。";
|
|||
$text['description-usage']['ja-jp'] = "宛先の使用方法を設定します。";
|
||||
$text['description-usage']['ko-kr'] = "대상이 사용되는 방식을 설정합니다.";
|
||||
|
||||
$text['description-destination_email']['en-us'] = "Choose whether to send SMS and MMS messages to User's email";
|
||||
$text['description-destination_email']['en-gb'] = "Choose whether to send SMS and MMS messages to User's email";
|
||||
$text['description-destination_email']['ar-eg'] = "اختر ما إذا كنت ترغب في إرسال رسائل SMS و MMS إلى بريد المستخدم الإلكتروني";
|
||||
$text['description-destination_email']['de-at'] = "Wählen Sie, ob SMS- und MMS-Nachrichten an die E-Mail des Benutzers gesendet werden sollen";
|
||||
$text['description-destination_email']['de-ch'] = "Wählen Sie, ob SMS- und MMS-Nachrichten an die E-Mail des Benutzers gesendet werden sollen";
|
||||
$text['description-destination_email']['de-de'] = "Wählen Sie, ob SMS- und MMS-Nachrichten an die E-Mail des Benutzers gesendet werden sollen";
|
||||
$text['description-destination_email']['el-gr'] = "Επιλέξτε αν θέλετε να στείλετε μηνύματα SMS και MMS στο email του χρήστη";
|
||||
$text['description-destination_email']['es-cl'] = "Elija si desea enviar mensajes SMS y MMS al correo electrónico del usuario";
|
||||
$text['description-destination_email']['es-mx'] = "Elija si desea enviar mensajes SMS y MMS al correo electrónico del usuario";
|
||||
$text['description-destination_email']['fr-ca'] = "Choisissez si vous souhaitez envoyer des messages SMS et MMS à l'email de l'utilisateur";
|
||||
$text['description-destination_email']['fr-fr'] = "Choisissez si vous souhaitez envoyer des messages SMS et MMS à l'email de l'utilisateur";
|
||||
$text['description-destination_email']['he-il'] = "בחר אם לשלוח הודעות SMS ו-MMS לדוא\"ל של המשתמש";
|
||||
$text['description-destination_email']['it-it'] = "Scegli se inviare messaggi SMS e MMS all'email dell'utente";
|
||||
$text['description-destination_email']['ka-ge'] = "აირჩიეთ, გსურთ თუ არა SMS და MMS შეტყობინებების გაგზავნა მომხმარებლის ელ.ფოსტაზე";
|
||||
$text['description-destination_email']['nl-nl'] = "Kies of je SMS- en MMS-berichten naar de e-mail van de gebruiker wilt sturen";
|
||||
$text['description-destination_email']['pl-pl'] = "Wybierz, czy chcesz wysłać wiadomości SMS i MMS na adres e-mail użytkownika";
|
||||
$text['description-destination_email']['pt-br'] = "Escolha se deseja enviar mensagens SMS e MMS para o e-mail do usuário";
|
||||
$text['description-destination_email']['pt-pt'] = "Escolha se deseja enviar mensagens SMS e MMS para o e-mail do usuário";
|
||||
$text['description-destination_email']['ro-ro'] = "Alegeți dacă doriți să trimiteți mesaje SMS și MMS la adresa de e-mail a utilizatorului";
|
||||
$text['description-destination_email']['ru-ru'] = "Выберите, хотите ли вы отправлять SMS и MMS сообщения на электронную почту пользователя";
|
||||
$text['description-destination_email']['sv-se'] = "Välj om du vill skicka SMS- och MMS-meddelanden till användarens e-post";
|
||||
$text['description-destination_email']['uk-ua'] = "Виберіть, чи хочете ви надсилати SMS і MMS повідомлення на електронну пошту користувача";
|
||||
$text['description-destination_email']['tr-tr'] = "Kullanıcının e-posta adresine SMS ve MMS mesajları gönderilip gönderilmeyeceğini seçin";
|
||||
$text['description-destination_email']['zh-cn'] = "选择是否将SMS和MMS消息发送到用户的电子邮件";
|
||||
$text['description-destination_email']['ja-jp'] = "ユーザーのメールにSMSおよびMMSメッセージを送信するかどうかを選択してください";
|
||||
$text['description-destination_email']['ko-kr'] = "사용자 이메일로 SMS 및 MMS 메시지를 보낼지 선택하세요";
|
||||
|
||||
$text['billing-warning']['en-us'] = "If you are using fusionpbx billing application, make sure to add accountcode and carrier variables.";
|
||||
$text['billing-warning']['en-gb'] = "If you are using fusionpbx billing application, make sure to add accountcode and carrier variables.";
|
||||
$text['billing-warning']['ar-eg'] = "إذا كنت تستخدم تطبيق فواتير الدمج، تأكد من إضافة رمز الحساب والمتغيرات الناقلة.";
|
||||
|
|
|
|||
|
|
@ -73,4 +73,3 @@
|
|||
$y++;
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
The Initial Developer of the Original Code is
|
||||
Mark J Crane <markjcrane@fusionpbx.com>
|
||||
Portions created by the Initial Developer are Copyright (C) 2008-2024
|
||||
Portions created by the Initial Developer are Copyright (C) 2008-2025
|
||||
the Initial Developer. All Rights Reserved.
|
||||
|
||||
Contributor(s):
|
||||
|
|
@ -41,10 +41,13 @@
|
|||
$language = new text;
|
||||
$text = $language->get();
|
||||
|
||||
//initialize the database
|
||||
$database = new database;
|
||||
//initialize the database object
|
||||
$database = database::new();
|
||||
|
||||
//initialize the destinations object
|
||||
//initialize the settings object
|
||||
$settings = new settings(['database' => $database, 'domain_uuid' => $domain_uuid]);
|
||||
|
||||
//initialize the destination object
|
||||
$destination = new destinations;
|
||||
|
||||
//initialize the ringbacks object
|
||||
|
|
@ -68,17 +71,20 @@
|
|||
default: $destination_type = 'inbound';
|
||||
}
|
||||
|
||||
//get the call recording extension
|
||||
$record_extension = $settings->get('call_recordings', 'record_extension', 'mp3');
|
||||
|
||||
//get total destination count from the database, check limit, if defined
|
||||
if (!permission_exists('destination_domain')) {
|
||||
if ($action == 'add') {
|
||||
if (!empty($_SESSION['limit']['destinations']['numeric'])) {
|
||||
if (!empty($settings->get('limit', 'destinations', ''))) {
|
||||
$sql = "select count(*) from v_destinations where domain_uuid = :domain_uuid ";
|
||||
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
|
||||
$total_destinations = $database->select($sql, $parameters, 'column');
|
||||
unset($sql, $parameters);
|
||||
|
||||
if ($total_destinations >= $_SESSION['limit']['destinations']['numeric']) {
|
||||
message::add($text['message-maximum_destinations'].' '.$_SESSION['limit']['destinations']['numeric'], 'negative');
|
||||
if ($total_destinations >= $settings->get('limit', 'destinations', '')) {
|
||||
message::add($text['message-maximum_destinations'].' '.$settings->get('limit', 'destinations', ''), 'negative');
|
||||
header('Location: destinations.php');
|
||||
exit;
|
||||
}
|
||||
|
|
@ -130,6 +136,7 @@
|
|||
$destination_type_text = $_POST["destination_type_text"] ?? null;
|
||||
$destination_type_emergency = $_POST["destination_type_emergency"] ?? null;
|
||||
$destination_carrier = $_POST["destination_carrier"] ?? null;
|
||||
$destination_email = $_POST["destination_email"];
|
||||
|
||||
//sanitize the destination conditions
|
||||
if (!empty($destination_conditions)) {
|
||||
|
|
@ -175,8 +182,13 @@
|
|||
exit;
|
||||
}
|
||||
|
||||
//set destination_prefix to an empty string if its empty
|
||||
if (empty($destination_prefix)) {
|
||||
$destination_prefix = '';
|
||||
}
|
||||
|
||||
//prevent spaces from being considered as a valid destination_number
|
||||
if (isset($destination_number)) {
|
||||
if (!empty($destination_number)) {
|
||||
$destination_number = trim($destination_number);
|
||||
}
|
||||
|
||||
|
|
@ -198,11 +210,11 @@
|
|||
if (empty($destination_enabled)) { $msg .= $text['message-required']." ".$text['label-destination_enabled']."<br>\n"; }
|
||||
|
||||
//check for duplicates
|
||||
if ($destination_type == 'inbound' && $destination_number != $db_destination_number && $_SESSION['destinations']['unique']['boolean'] == 'true') {
|
||||
if ($destination_type == 'inbound' && $destination_number != $db_destination_number && $settings->get('destinations', 'unique', false)) {
|
||||
$sql = "select count(*) from v_destinations ";
|
||||
$sql .= "where (destination_number = :destination_number or destination_prefix || destination_number = :destination_number) ";
|
||||
$sql .= "and destination_type = 'inbound' ";
|
||||
$parameters['destination_number'] = $destination_number;
|
||||
$parameters['destination_number'] = $destination_prefix.$destination_number;
|
||||
$num_rows = $database->select($sql, $parameters, 'column');
|
||||
if ($num_rows > 0) {
|
||||
$msg .= $text['message-duplicate']."<br>\n";
|
||||
|
|
@ -314,6 +326,9 @@
|
|||
if (!permission_exists('destination_domain')) {
|
||||
$domain_uuid = $row["domain_uuid"] ?? null;
|
||||
}
|
||||
if (!permission_exists('destination_email')) {
|
||||
$destination_email = $row["destination_email"] ?? null;
|
||||
}
|
||||
}
|
||||
unset($row);
|
||||
|
||||
|
|
@ -444,15 +459,14 @@
|
|||
if (!empty($destination_condition_field)) {
|
||||
$dialplan_detail_type = $destination_condition_field;
|
||||
}
|
||||
elseif (!empty($_SESSION['dialplan']['destination']['text'])) {
|
||||
$dialplan_detail_type = $_SESSION['dialplan']['destination']['text'];
|
||||
elseif (!empty($settings->get('dialplan', 'destination', ''))) {
|
||||
$dialplan_detail_type = $settings->get('dialplan', 'destination', '');
|
||||
}
|
||||
else {
|
||||
$dialplan_detail_type = "destination_number";
|
||||
}
|
||||
|
||||
//authorized specific dialplan_detail_type that are safe, sanitize all other values
|
||||
$dialplan_detail_type = $_SESSION['dialplan']['destination']['text'];
|
||||
switch ($dialplan_detail_type) {
|
||||
case 'destination_number':
|
||||
break;
|
||||
|
|
@ -530,10 +544,11 @@
|
|||
}
|
||||
if (!empty($destination_record) && $destination_record == 'true') {
|
||||
$dialplan["dialplan_xml"] .= " <action application=\"set\" data=\"record_path=\${recordings_dir}/\${domain_name}/archive/\${strftime(%Y)}/\${strftime(%b)}/\${strftime(%d)}\" inline=\"true\"/>\n";
|
||||
$dialplan["dialplan_xml"] .= " <action application=\"set\" data=\"record_name=\${uuid}.\${record_ext}\" inline=\"true\"/>\n";
|
||||
$dialplan["dialplan_xml"] .= " <action application=\"set\" data=\"record_name=\${uuid}.".$record_extension."\" inline=\"true\"/>\n";
|
||||
$dialplan["dialplan_xml"] .= " <action application=\"set\" data=\"record_append=true\" inline=\"true\"/>\n";
|
||||
$dialplan["dialplan_xml"] .= " <action application=\"set\" data=\"record_in_progress=true\" inline=\"true\"/>\n";
|
||||
$dialplan["dialplan_xml"] .= " <action application=\"set\" data=\"recording_follow_transfer=true\" inline=\"true\"/>\n";
|
||||
$dialplan["dialplan_xml"] .= " <action application=\"set\" data=\"record_stereo_swap=true\" inline=\"true\"/>\n";
|
||||
$dialplan["dialplan_xml"] .= " <action application=\"record_session\" data=\"\${record_path}/\${record_name}\" inline=\"false\"/>\n";
|
||||
}
|
||||
if (!empty($destination_hold_music)) {
|
||||
|
|
@ -592,7 +607,7 @@
|
|||
$dialplan["dialplan_xml"] .= "</extension>\n";
|
||||
|
||||
//dialplan details
|
||||
if ($_SESSION['destinations']['dialplan_details']['boolean'] == "true") {
|
||||
if ($settings->get('destinations', 'dialplan_details', '')) {
|
||||
|
||||
//set initial value of the row id
|
||||
$y=0;
|
||||
|
|
@ -633,8 +648,8 @@
|
|||
if (!empty($destination_condition_field)) {
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $destination_condition_field;
|
||||
}
|
||||
elseif (!empty($_SESSION['dialplan']['destination']['text'])) {
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $_SESSION['dialplan']['destination']['text'];
|
||||
elseif (!empty($settings->get('dialplan', 'destination', ''))) {
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $settings->get('dialplan', 'destination', '');
|
||||
}
|
||||
else {
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "regex";
|
||||
|
|
@ -693,8 +708,8 @@
|
|||
if (!empty($destination_condition_field)) {
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $destination_condition_field;
|
||||
}
|
||||
elseif (!empty($_SESSION['dialplan']['destination']['text'])) {
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $_SESSION['dialplan']['destination']['text'];
|
||||
elseif (!empty($settings->get('dialplan', 'destination', ''))) {
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $settings->get('dialplan', 'destination', '');
|
||||
}
|
||||
else {
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "destination_number";
|
||||
|
|
@ -942,7 +957,7 @@
|
|||
$dialplan["dialplan_details"][$y]["dialplan_uuid"] = $dialplan_uuid;
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action";
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set";
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "record_name=\${uuid}.\${record_ext}";
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "record_name=\${uuid}.".$record_extension;
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_inline"] = "true";
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = $dialplan_detail_group;
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order;
|
||||
|
|
@ -979,6 +994,20 @@
|
|||
//increment the dialplan detail order
|
||||
$dialplan_detail_order = $dialplan_detail_order + 10;
|
||||
|
||||
//add a variable
|
||||
$dialplan["dialplan_details"][$y]["domain_uuid"] = $domain_uuid;
|
||||
$dialplan["dialplan_details"][$y]["dialplan_uuid"] = $dialplan_uuid;
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action";
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set";
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "record_stereo_swap=true";
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_inline"] = "true";
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_group"] = $dialplan_detail_group;
|
||||
$dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order;
|
||||
$y++;
|
||||
|
||||
//increment the dialplan detail order
|
||||
$dialplan_detail_order = $dialplan_detail_order + 10;
|
||||
|
||||
//add a variable
|
||||
$dialplan["dialplan_details"][$y]["domain_uuid"] = $domain_uuid;
|
||||
$dialplan["dialplan_details"][$y]["dialplan_uuid"] = $dialplan_uuid;
|
||||
|
|
@ -1090,6 +1119,7 @@
|
|||
$array['destinations'][$x]["destination_distinctive_ring"] = $destination_distinctive_ring;
|
||||
}
|
||||
$array['destinations'][$x]["destination_record"] = $destination_record;
|
||||
$array['destinations'][$x]["destination_email"] = $destination_email;
|
||||
if (!empty($destination_ringback) && $ringbacks->valid($destination_ringback)) {
|
||||
$array['destinations'][$x]["destination_ringback"] = $destination_ringback;
|
||||
}
|
||||
|
|
@ -1139,7 +1169,7 @@
|
|||
}
|
||||
|
||||
//add the dialplan permission
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add("dialplan_add", 'temp');
|
||||
$p->add("dialplan_detail_add", 'temp');
|
||||
$p->add("dialplan_edit", 'temp');
|
||||
|
|
@ -1159,10 +1189,10 @@
|
|||
|
||||
//clear the cache
|
||||
$cache = new cache;
|
||||
if ($_SESSION['destinations']['dialplan_mode']['text'] == 'multiple') {
|
||||
if ($settings->get('destinations', 'dialplan_mode', '') == 'multiple') {
|
||||
$cache->delete("dialplan:".$destination_context);
|
||||
}
|
||||
if ($_SESSION['destinations']['dialplan_mode']['text'] == 'single') {
|
||||
if ($settings->get('destinations', 'dialplan_mode', '') == 'single') {
|
||||
if (isset($destination_prefix) && is_numeric($destination_prefix) && isset($destination_number) && is_numeric($destination_number)) {
|
||||
$cache->delete("dialplan:".$destination_context.":".$destination_prefix.$destination_number);
|
||||
$cache->delete("dialplan:".$destination_context.":+".$destination_prefix.$destination_number);
|
||||
|
|
@ -1270,6 +1300,7 @@
|
|||
$destination_order = $destination_order ?? '';
|
||||
$destination_enabled = $destination_enabled ?? '';
|
||||
$destination_description = $destination_description ?? '';
|
||||
$destination_email = $destination_email ?? '';
|
||||
$select_style = $select_style ?? '';
|
||||
|
||||
//pre-populate the form
|
||||
|
|
@ -1316,6 +1347,7 @@
|
|||
$destination_order = $row["destination_order"];
|
||||
$destination_enabled = $row["destination_enabled"];
|
||||
$destination_description = $row["destination_description"];
|
||||
$destination_email = $row["destination_email"];
|
||||
}
|
||||
unset($sql, $parameters, $row);
|
||||
}
|
||||
|
|
@ -1815,6 +1847,34 @@
|
|||
echo "</tr>\n";
|
||||
}
|
||||
|
||||
//destination email
|
||||
if (permission_exists('destination_email') && permission_exists('message_view')) {
|
||||
echo "<tr>\n";
|
||||
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
|
||||
echo " ".$text['label-destination_email']."\n";
|
||||
echo "</td>\n";
|
||||
echo "<td class='vtable' align='left'>\n";
|
||||
echo " <select class='formfld' name='destination_email'>\n";
|
||||
echo " <option value=''></option>\n";
|
||||
if (!empty($destination_email) && $destination_email == "true") {
|
||||
echo " <option value='true' selected='selected'>".$text['option-true']."</option>\n";
|
||||
}
|
||||
else {
|
||||
echo " <option value='true'>".$text['option-true']."</option>\n";
|
||||
}
|
||||
if (!empty($destination_email) && $destination_email == "false") {
|
||||
echo " <option value='false' selected='selected'>".$text['option-false']."</option>\n";
|
||||
}
|
||||
else {
|
||||
echo " <option value='false'>".$text['option-false']."</option>\n";
|
||||
}
|
||||
echo " </select>\n";
|
||||
echo "<br />\n";
|
||||
echo $text['description-destination_email']."\n";
|
||||
echo "</td>\n";
|
||||
echo "</tr>\n";
|
||||
}
|
||||
|
||||
//users
|
||||
if (permission_exists('user_edit')) {
|
||||
echo "<tr id='tr_user'>\n";
|
||||
|
|
@ -1909,7 +1969,6 @@
|
|||
echo " ".$text['label-destination_hold_music']."\n";
|
||||
echo "</td>\n";
|
||||
echo "<td width=\"70%\" class='vtable' align='left'>\n";
|
||||
require_once "app/music_on_hold/resources/classes/switch_music_on_hold.php";
|
||||
$music_on_hold = new switch_music_on_hold;
|
||||
echo $music_on_hold->select('destination_hold_music', $destination_hold_music, null);
|
||||
echo " <br />\n";
|
||||
|
|
@ -2042,11 +2101,11 @@
|
|||
|
||||
//enabled
|
||||
echo "<tr>\n";
|
||||
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
|
||||
echo "<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>\n";
|
||||
echo " ".$text['label-destination_enabled']."\n";
|
||||
echo "</td>\n";
|
||||
echo "<td class='vtable' align='left'>\n";
|
||||
if (substr($_SESSION['theme']['input_toggle_style']['text'], 0, 6) == 'switch') {
|
||||
if (substr($settings->get('theme', 'input_toggle_style', ''), 0, 6) == 'switch') {
|
||||
echo " <label class='switch'>\n";
|
||||
echo " <input type='checkbox' id='destination_enabled' name='destination_enabled' value='true' ".($destination_enabled == 'true' ? "checked='checked'" : null).">\n";
|
||||
echo " <span class='slider'></span>\n";
|
||||
|
|
|
|||
|
|
@ -334,7 +334,7 @@
|
|||
$array["dialplans"][$row_id]["dialplan_xml"] .= "</extension>\n";
|
||||
|
||||
//dialplan details
|
||||
if ($_SESSION['destinations']['dialplan_details']['boolean'] == "true") {
|
||||
if (filter_var($_SESSION['destinations']['dialplan_details']['boolean'] ?? false, FILTER_VALIDATE_BOOL)) {
|
||||
|
||||
//check the destination number
|
||||
$array["dialplans"][$row_id]["dialplan_details"][$y]["domain_uuid"] = $domain_uuid;
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@
|
|||
$order = $_GET["order"] ?? '';
|
||||
|
||||
//set from session variables
|
||||
$list_row_edit_button = !empty($_SESSION['theme']['list_row_edit_button']['boolean']) ? $_SESSION['theme']['list_row_edit_button']['boolean'] : 'false';
|
||||
$list_row_edit_button = filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL);
|
||||
|
||||
//prepare to page the results
|
||||
$sql = "select count(*) from v_destinations ";
|
||||
|
|
@ -157,6 +157,7 @@
|
|||
$sql .= "and (";
|
||||
$sql .= "lower(destination_type) like :search ";
|
||||
$sql .= "or lower(destination_number) like :search ";
|
||||
$sql .= "or lower(destination_cid_name_prefix) like :search ";
|
||||
$sql .= "or lower(destination_context) like :search ";
|
||||
$sql .= "or lower(destination_accountcode) like :search ";
|
||||
if (permission_exists('outbound_caller_id_select')) {
|
||||
|
|
@ -201,6 +202,7 @@
|
|||
$sql .= " d.destination_area_code, ";
|
||||
$sql .= " d.destination_number, ";
|
||||
$sql .= " d.destination_actions, ";
|
||||
$sql .= " d.destination_cid_name_prefix, ";
|
||||
$sql .= " d.destination_context, ";
|
||||
$sql .= " d.destination_caller_id_name, ";
|
||||
$sql .= " d.destination_caller_id_number, ";
|
||||
|
|
@ -221,6 +223,7 @@
|
|||
$sql .= "and (";
|
||||
$sql .= " lower(destination_type) like :search ";
|
||||
$sql .= " or lower(destination_number) like :search ";
|
||||
$sql .= " or lower(destination_cid_name_prefix) like :search ";
|
||||
$sql .= " or lower(destination_context) like :search ";
|
||||
$sql .= " or lower(destination_accountcode) like :search ";
|
||||
if (permission_exists('outbound_caller_id_select')) {
|
||||
|
|
@ -350,6 +353,9 @@
|
|||
if (!$show == "all") {
|
||||
echo "<th>". $text['label-destination_actions']."</th>";
|
||||
}
|
||||
if (permission_exists('destination_cid_name_prefix')) {
|
||||
echo th_order_by('destination_cid_name_prefix', $text['label-destination_cid_name_prefix'], $order_by, $order, $param);
|
||||
}
|
||||
if (permission_exists("destination_context")) {
|
||||
echo th_order_by('destination_context', $text['label-destination_context'], $order_by, $order, $param);
|
||||
}
|
||||
|
|
@ -359,7 +365,7 @@
|
|||
}
|
||||
echo th_order_by('destination_enabled', $text['label-destination_enabled'], $order_by, $order, $param);
|
||||
echo th_order_by('destination_description', $text['label-destination_description'], $order_by, $order, $param, "class='hide-sm-dn'");
|
||||
if (permission_exists('destination_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('destination_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -369,8 +375,12 @@
|
|||
foreach ($destinations as $row) {
|
||||
|
||||
//create the row link
|
||||
$list_row_url = '';
|
||||
if (permission_exists('destination_edit')) {
|
||||
$list_row_url = "destination_edit.php?id=".urlencode($row['destination_uuid']);
|
||||
if ($row['domain_uuid'] != $_SESSION['domain_uuid'] && permission_exists('domain_select')) {
|
||||
$list_row_url .= '&domain_uuid='.urlencode($row['domain_uuid']).'&domain_change=true';
|
||||
}
|
||||
}
|
||||
|
||||
//show the data
|
||||
|
|
@ -412,6 +422,9 @@
|
|||
if (!$show == "all") {
|
||||
echo " <td class='overflow' style='min-width: 125px;'>".$row['actions']." </td>\n";
|
||||
}
|
||||
if (permission_exists("destination_cid_name_prefix")) {
|
||||
echo " <td>".escape($row['destination_cid_name_prefix'])." </td>\n";
|
||||
}
|
||||
if (permission_exists("destination_context")) {
|
||||
echo " <td>".escape($row['destination_context'])." </td>\n";
|
||||
}
|
||||
|
|
@ -421,9 +434,9 @@
|
|||
}
|
||||
echo " <td>".escape($text['label-'.$row['destination_enabled']])." </td>\n";
|
||||
echo " <td class='description overflow hide-sm-dn'>".escape($row['destination_description'])." </td>\n";
|
||||
if (permission_exists('destination_edit') && $list_row_edit_button == 'true') {
|
||||
if (permission_exists('destination_edit') && $list_row_edit_button) {
|
||||
echo " <td class='action-button'>";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$list_row_edit_button,'link'=>$list_row_url]);
|
||||
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -450,3 +463,4 @@
|
|||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
The Initial Developer of the Original Code is
|
||||
Mark J Crane <markjcrane@fusionpbx.com>
|
||||
Portions created by the Initial Developer are Copyright (C) 2017 - 2023
|
||||
Portions created by the Initial Developer are Copyright (C) 2017 - 2025
|
||||
the Initial Developer. All Rights Reserved.
|
||||
|
||||
Contributor(s):
|
||||
|
|
@ -26,18 +26,15 @@
|
|||
|
||||
/**
|
||||
* destinations
|
||||
*
|
||||
* @method get_array get the destinations
|
||||
* @method select build the html select
|
||||
*/
|
||||
if (!class_exists('destinations')) {
|
||||
class destinations {
|
||||
|
||||
/**
|
||||
* declare public variables
|
||||
*/
|
||||
* declare public variables
|
||||
*/
|
||||
public $destinations;
|
||||
public $domain_uuid;
|
||||
public $domain_name;
|
||||
public $start_stamp_begin;
|
||||
public $start_stamp_end;
|
||||
public $quick_select;
|
||||
|
|
@ -45,27 +42,36 @@ if (!class_exists('destinations')) {
|
|||
/**
|
||||
* declare private variables
|
||||
*/
|
||||
private $domain_name;
|
||||
private $app_name;
|
||||
private $app_uuid;
|
||||
private $permission_prefix;
|
||||
private $list_page;
|
||||
private $table;
|
||||
private $uuid_prefix;
|
||||
private $database;
|
||||
private $settings;
|
||||
|
||||
/**
|
||||
* Called when the object is created
|
||||
*/
|
||||
public function __construct($settings = null) {
|
||||
//set the domain details
|
||||
if (is_null($this->domain_uuid)) {
|
||||
$this->domain_uuid = $_SESSION['domain_uuid'];
|
||||
public function __construct($setting_array = []) {
|
||||
|
||||
//open a database connection
|
||||
if (empty($setting_array['database'])) {
|
||||
$this->database = database::new();
|
||||
} else {
|
||||
$this->database = $setting_array['database'];
|
||||
}
|
||||
|
||||
//get the email queue settings
|
||||
if (!isset($settings)) {
|
||||
$this->settings = new settings();
|
||||
//set the domain details
|
||||
$this->domain_uuid = $_SESSION['domain_uuid'] ?? '';
|
||||
$this->user_uuid = $_SESSION['user_uuid'] ?? '';
|
||||
|
||||
//get the settings object
|
||||
if (empty($setting_array['settings'])) {
|
||||
$this->settings = new settings(['database' => $this->database, 'domain_uuid' => $this->domain_uuid, 'user_uuid' => $this->user_uuid]);
|
||||
} else {
|
||||
$this->settings = $setting_array['settings'];
|
||||
}
|
||||
|
||||
//assign private variables
|
||||
|
|
@ -160,7 +166,6 @@ if (!class_exists('destinations')) {
|
|||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Build the destination select list
|
||||
* @var string $destination_type can be ivr, dialplan, call_center_contact or bridge
|
||||
|
|
@ -180,14 +185,13 @@ if (!class_exists('destinations')) {
|
|||
$sql = "select domain_name from v_domains ";
|
||||
$sql .= "where domain_uuid = :domain_uuid ";
|
||||
$parameters['domain_uuid'] = $this->domain_uuid;
|
||||
$database = new database;
|
||||
$this->domain_name = $database->select($sql, $parameters, 'column');
|
||||
$this->domain_name = $this->database->select($sql, $parameters, 'column');
|
||||
|
||||
//initialize variable
|
||||
$response = '';
|
||||
|
||||
//create a single destination select list
|
||||
if (!empty($_SESSION['destinations']['select_mode']['text']) && $_SESSION['destinations']['select_mode']['text'] == 'default') {
|
||||
if (!empty($this->settings->get('destinations', 'select_mode')) && $this->settings->get('destinations', 'select_mode') == 'default') {
|
||||
//get the destinations
|
||||
if (!is_array($this->destinations)) {
|
||||
|
||||
|
|
@ -252,8 +256,7 @@ if (!class_exists('destinations')) {
|
|||
}
|
||||
$sql .= "order by ".trim($row['order_by']);
|
||||
$sql = str_replace("\${domain_uuid}", $this->domain_uuid, $sql);
|
||||
$database = new database;
|
||||
$result = $database->select($sql, null, 'all');
|
||||
$result = $this->database->select($sql, null, 'all');
|
||||
|
||||
$this->destinations[$x]['result']['sql'] = $sql;
|
||||
$this->destinations[$x]['result']['data'] = $result;
|
||||
|
|
@ -358,7 +361,7 @@ if (!class_exists('destinations')) {
|
|||
//add multi-lingual support
|
||||
if (file_exists($_SERVER["PROJECT_ROOT"]."/app/".$name."/app_languages.php")) {
|
||||
$language2 = new text;
|
||||
$text2 = $language2->get($_SESSION['domain']['language']['code'], 'app/'.$name);
|
||||
$text2 = $language2->get($this->settings->get('domain', 'language'), 'app/'.$name);
|
||||
}
|
||||
|
||||
if (!empty($row['result']['data']) && !empty($row['select_value'][$destination_type])) {
|
||||
|
|
@ -402,7 +405,7 @@ if (!class_exists('destinations')) {
|
|||
}
|
||||
}
|
||||
//application: hangup
|
||||
if (!empty($data['application'])) {
|
||||
if (!empty($data['application']) && $data['application'] === 'hangup') {
|
||||
$select_value = str_replace("transfer", $data['application'], $select_value);
|
||||
}
|
||||
}
|
||||
|
|
@ -439,33 +442,31 @@ if (!class_exists('destinations')) {
|
|||
}
|
||||
|
||||
//create a dynamic destination select list
|
||||
if ($_SESSION['destinations']['select_mode']['text'] == 'dynamic') {
|
||||
if ($this->settings->get('destinations', 'select_mode') == 'dynamic') {
|
||||
|
||||
//remove special characters from the name
|
||||
$destination_id = str_replace("]", "", $destination_name);
|
||||
$destination_id = str_replace("[", "_", $destination_id);
|
||||
//$destination_id = preg_replace('/[^a-zA-Z_,.]/', '', $destination_name);
|
||||
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
function get_destinations(id, destination_type, action, search) {
|
||||
//alert(action);
|
||||
var xhttp = new XMLHttpRequest();
|
||||
xhttp.onreadystatechange = function() {
|
||||
if (this.readyState == 4 && this.status == 200) {
|
||||
document.getElementById(id).innerHTML = this.responseText;
|
||||
}
|
||||
};
|
||||
if (action) {
|
||||
xhttp.open("GET", "/app/destinations/resources/destinations.php?destination_type="+destination_type+"&action="+action, true);
|
||||
}
|
||||
else {
|
||||
xhttp.open("GET", "/app/destinations/resources/destinations.php?destination_type="+destination_type, true);
|
||||
}
|
||||
xhttp.send();
|
||||
}
|
||||
</script>
|
||||
<?php
|
||||
//send request for destinations
|
||||
echo "<script type=\"text/javascript\">\n";
|
||||
echo " function get_destinations(id, destination_type, action, search) {\n";
|
||||
echo " var xhttp = new XMLHttpRequest();\n";
|
||||
echo " xhttp.onreadystatechange = function() {\n";
|
||||
echo " if (this.readyState == 4 && this.status == 200) {\n";
|
||||
echo " document.getElementById(id).innerHTML = this.responseText;\n";
|
||||
echo " }\n";
|
||||
echo " };\n";
|
||||
echo " if (action) {\n";
|
||||
echo " xhttp.open(\"GET\", \"/app/destinations/resources/destinations.php?destination_type=\"+destination_type+\"&action=\"+action, true);\n";
|
||||
echo " }\n";
|
||||
echo " else {\n";
|
||||
echo " xhttp.open(\"GET\", \"/app/destinations/resources/destinations.php?destination_type=\"+destination_type, true);\n";
|
||||
echo " }\n";
|
||||
echo " xhttp.send();\n";
|
||||
echo " }\n";
|
||||
echo "</script>\n";
|
||||
|
||||
//get the destinations
|
||||
$destinations = $this->get($destination_type);
|
||||
|
|
@ -496,11 +497,11 @@ if (!class_exists('destinations')) {
|
|||
//add multi-lingual support
|
||||
if (file_exists($_SERVER["PROJECT_ROOT"]."/app/".$key."/app_languages.php")) {
|
||||
$language2 = new text;
|
||||
$text2 = $language2->get($_SESSION['domain']['language']['code'], 'app/'.$key);
|
||||
$text2 = $language2->get($this->settings->get('domain', 'language'), 'app/'.$key);
|
||||
$found = 'true';
|
||||
}
|
||||
if ($key == 'other') {
|
||||
$text2 = $language2->get($_SESSION['domain']['language']['code'], 'app/dialplans');
|
||||
$text2 = $language2->get($this->settings->get('domain', 'language'), 'app/dialplans');
|
||||
}
|
||||
//add the application to the select list
|
||||
$response .= " <option id='{$singular}' class='{$key}' value='".$key."' $selected>".$text2['title-'.$key]."</option>\n";
|
||||
|
|
@ -550,9 +551,6 @@ if (!class_exists('destinations')) {
|
|||
//set the global variables
|
||||
global $db_type;
|
||||
|
||||
//connect to the database
|
||||
$database = new database;
|
||||
|
||||
//set default values
|
||||
$destination_name = '';
|
||||
$destination_id = '';
|
||||
|
|
@ -561,7 +559,7 @@ if (!class_exists('destinations')) {
|
|||
$sql = "select domain_name from v_domains ";
|
||||
$sql .= "where domain_uuid = :domain_uuid ";
|
||||
$parameters['domain_uuid'] = $this->domain_uuid;
|
||||
$this->domain_name = $database->select($sql, $parameters, 'column');
|
||||
$this->domain_name = $this->database->select($sql, $parameters, 'column');
|
||||
|
||||
//get the destinations
|
||||
if (!is_array($this->destinations)) {
|
||||
|
|
@ -625,7 +623,7 @@ if (!class_exists('destinations')) {
|
|||
}
|
||||
$sql .= "order by ".trim($row['order_by']);
|
||||
$sql = str_replace("\${domain_uuid}", $this->domain_uuid, $sql);
|
||||
$result = $database->select($sql, null, 'all');
|
||||
$result = $this->database->select($sql, null, 'all');
|
||||
|
||||
$this->destinations[$x]['result']['sql'] = $sql;
|
||||
$this->destinations[$x]['result']['data'] = $result;
|
||||
|
|
@ -676,7 +674,7 @@ if (!class_exists('destinations')) {
|
|||
//add multi-lingual support
|
||||
if (file_exists($_SERVER["PROJECT_ROOT"]."/app/".$name."/app_languages.php")) {
|
||||
$language2 = new text;
|
||||
$text2 = $language2->get($_SESSION['domain']['language']['code'], 'app/'.$name);
|
||||
$text2 = $language2->get($this->settings->get('domain', 'language'), 'app/'.$name);
|
||||
}
|
||||
|
||||
if (!empty($row['result']['data']) && !empty($row['select_value'][$destination_type])) {
|
||||
|
|
@ -764,14 +762,11 @@ if (!class_exists('destinations')) {
|
|||
//set the global variables
|
||||
global $db_type;
|
||||
|
||||
//connect to the database
|
||||
$database = new database;
|
||||
|
||||
//get the domain_name
|
||||
$sql = "select domain_name from v_domains ";
|
||||
$sql .= "where domain_uuid = :domain_uuid ";
|
||||
$parameters['domain_uuid'] = $this->domain_uuid;
|
||||
$this->domain_name = $database->select($sql, $parameters, 'column');
|
||||
$this->domain_name = $this->database->select($sql, $parameters, 'column');
|
||||
|
||||
//get the destinations
|
||||
if (!is_array($this->destinations)) {
|
||||
|
|
@ -836,7 +831,7 @@ if (!class_exists('destinations')) {
|
|||
}
|
||||
$sql .= "order by ".trim($row['order_by']);
|
||||
$sql = str_replace("\${domain_uuid}", $this->domain_uuid, $sql);
|
||||
$result = $database->select($sql, null, 'all');
|
||||
$result = $this->database->select($sql, null, 'all');
|
||||
|
||||
$this->destinations[$x]['result']['sql'] = $sql;
|
||||
$this->destinations[$x]['result']['data'] = $result;
|
||||
|
|
@ -894,7 +889,7 @@ if (!class_exists('destinations')) {
|
|||
//add multi-lingual support
|
||||
if (file_exists($_SERVER["PROJECT_ROOT"]."/app/".$name."/app_languages.php")) {
|
||||
$language2 = new text;
|
||||
$text2 = $language2->get($_SESSION['domain']['language']['code'], 'app/'.$name);
|
||||
$text2 = $language2->get($this->settings->get('domain', 'language'), 'app/'.$name);
|
||||
}
|
||||
|
||||
if (isset($row['result']) && isset($row['result']['data'][0]) && !empty($row['select_value'][$destination_type])) {
|
||||
|
|
@ -1063,8 +1058,7 @@ if (!class_exists('destinations')) {
|
|||
$sql = "select dialplan_uuid, destination_context from v_destinations ";
|
||||
$sql .= "where destination_uuid = :destination_uuid ";
|
||||
$parameters['destination_uuid'] = $record['uuid'];
|
||||
$database = new database;
|
||||
$row = $database->select($sql, $parameters, 'row');
|
||||
$row = $this->database->select($sql, $parameters, 'row');
|
||||
unset($sql, $parameters);
|
||||
|
||||
//include dialplan in array
|
||||
|
|
@ -1081,15 +1075,14 @@ if (!class_exists('destinations')) {
|
|||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('dialplan_delete', 'temp');
|
||||
$p->add('dialplan_detail_delete', 'temp');
|
||||
|
||||
//execute delete
|
||||
$database = new database;
|
||||
$database->app_name = $this->app_name;
|
||||
$database->app_uuid = $this->app_uuid;
|
||||
$database->delete($array);
|
||||
$this->database->app_name = $this->app_name;
|
||||
$this->database->app_uuid = $this->app_uuid;
|
||||
$this->database->delete($array);
|
||||
unset($array);
|
||||
|
||||
//revoke temporary permissions
|
||||
|
|
@ -1114,13 +1107,11 @@ if (!class_exists('destinations')) {
|
|||
message::add($text['message-delete']);
|
||||
|
||||
}
|
||||
unset($records);
|
||||
|
||||
}
|
||||
}
|
||||
} //method
|
||||
|
||||
|
||||
/**
|
||||
* destination summary returns an array
|
||||
*/
|
||||
|
|
@ -1134,6 +1125,9 @@ if (!class_exists('destinations')) {
|
|||
$time_zone = date_default_timezone_get();
|
||||
}
|
||||
|
||||
//set the time zone for php
|
||||
date_default_timezone_set($time_zone);
|
||||
|
||||
//build the date range
|
||||
if (!empty($this->start_stamp_begin) || !empty($this->start_stamp_end)) {
|
||||
unset($this->quick_select);
|
||||
|
|
@ -1236,6 +1230,7 @@ if (!class_exists('destinations')) {
|
|||
}
|
||||
$sql .= " and direction = 'inbound' \n";
|
||||
$sql .= " and caller_destination is not null \n";
|
||||
$sql .= " and leg = 'a' \n";
|
||||
$sql .= $sql_date_range ?? '';
|
||||
$sql .= ") as c \n";
|
||||
|
||||
|
|
@ -1251,8 +1246,7 @@ if (!class_exists('destinations')) {
|
|||
if (!(!empty($_GET['show']) && $_GET['show'] === 'all' && permission_exists('destination_summary_all'))) {
|
||||
$parameters['domain_uuid'] = $this->domain_uuid;
|
||||
}
|
||||
$database = new database;
|
||||
$summary = $database->select($sql, $parameters, 'all');
|
||||
$summary = $this->database->select($sql, $parameters, 'all');
|
||||
unset($parameters);
|
||||
|
||||
//if (!empty($this->start_stamp_begin) && !empty($this->start_stamp_end)) {
|
||||
|
|
@ -1263,7 +1257,6 @@ if (!class_exists('destinations')) {
|
|||
return $summary;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* define singular function to convert a word in english to singular
|
||||
*/
|
||||
|
|
@ -1304,7 +1297,7 @@ if (!class_exists('destinations')) {
|
|||
} //method
|
||||
|
||||
} //class
|
||||
}
|
||||
|
||||
/*
|
||||
$obj = new destinations;
|
||||
//$destinations = $obj->destinations;
|
||||
|
|
@ -1315,5 +1308,3 @@ echo $obj->select('ivr', 'example4', '');
|
|||
echo $obj->select('ivr', 'example5', '');
|
||||
echo $obj->select('ivr', 'example6', '');
|
||||
*/
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ $array['dashboard'][$x]['dashboard_uuid'] = 'a294b771-a125-4d36-b51a-973540346fa
|
|||
$array['dashboard'][$x]['dashboard_name'] = 'Destinations';
|
||||
$array['dashboard'][$x]['dashboard_path'] = 'dashboard/icon';
|
||||
$array['dashboard'][$x]['dashboard_icon'] = 'fa-solid fa-right-to-bracket';
|
||||
$array['dashboard'][$x]['dashboard_icon_color'] = '#0292ff';
|
||||
$array['dashboard'][$x]['dashboard_url'] = '/app/destinations/destinations.php';
|
||||
$array['dashboard'][$x]['dashboard_target'] = 'self';
|
||||
$array['dashboard'][$x]['dashboard_width'] = '';
|
||||
|
|
@ -14,14 +15,14 @@ $array['dashboard'][$x]['dashboard_content_text_align'] = '';
|
|||
$array['dashboard'][$x]['dashboard_content_details'] = '';
|
||||
$array['dashboard'][$x]['dashboard_chart_type'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_enabled'] = 'true';
|
||||
$array['dashboard'][$x]['dashboard_label_text_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_text_color'] = '#444444';
|
||||
$array['dashboard'][$x]['dashboard_label_text_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_background_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color'] = '#0292ff';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_background_color'] ='';
|
||||
$array['dashboard'][$x]['dashboard_number_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_background_color'] = '#ffffff';
|
||||
$array['dashboard'][$x]['dashboard_background_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_detail_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_column_span'] = '1';
|
||||
|
|
|
|||
|
|
@ -224,6 +224,9 @@
|
|||
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
|
||||
$apps[$x]['permissions'][$y]['groups'][] = "admin";
|
||||
$y++;
|
||||
$apps[$x]['permissions'][$y]['name'] = "device_serial_number";
|
||||
$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
|
||||
$y++;
|
||||
$apps[$x]['permissions'][$y]['name'] = "device_model";
|
||||
//$apps[$x]['permissions'][$y]['groups'][] = "superadmin";
|
||||
$y++;
|
||||
|
|
@ -462,6 +465,11 @@
|
|||
$apps[$x]['db'][$y]['fields'][$z]['search'] = 'true';
|
||||
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
|
||||
$z++;
|
||||
$apps[$x]['db'][$y]['fields'][$z]['name'] = "device_serial_number";
|
||||
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
|
||||
$apps[$x]['db'][$y]['fields'][$z]['search'] = 'true';
|
||||
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
|
||||
$z++;
|
||||
$apps[$x]['db'][$y]['fields'][$z]['name']['text'] = "device_model";
|
||||
$apps[$x]['db'][$y]['fields'][$z]['name']['deprecated'] = "phone_model";
|
||||
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
|
||||
|
|
@ -4302,6 +4310,12 @@
|
|||
$vendors[$y]['functions'][$z]['groups'][] = "superadmin";
|
||||
$vendors[$y]['functions'][$z]['groups'][] = "admin";
|
||||
|
||||
//bittel details
|
||||
$y++;
|
||||
$vendors[$y]['uuid'] = "a2eeb8e0-c30d-4f21-b3eb-7b2ac3b3e84d";
|
||||
$vendors[$y]['name'] = "bittel";
|
||||
$z=0;
|
||||
|
||||
//linphone details
|
||||
$y++;
|
||||
$vendors[$y]['uuid'] = "782bc1cc-149f-406f-b8e2-24a2bc484fad";
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ if ($domains_processed == 1) {
|
|||
$array['device_keys'][$index]['device_key_vendor'] = $row["device_vendor"];
|
||||
}
|
||||
if (is_array($array) && @sizeof($array)) {
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('device_key_edit', 'temp');
|
||||
|
||||
$database->app_name = 'devices';
|
||||
|
|
@ -77,86 +77,90 @@ if ($domains_processed == 1) {
|
|||
unset($sql, $device_keys);
|
||||
|
||||
//set the device profile keys
|
||||
$sql = "select count(*) from v_device_profile_keys ";
|
||||
$num_rows = $database->select($sql, null, 'column');
|
||||
if ($num_rows == 0) {
|
||||
//get the device profile keys from device_keys table
|
||||
$sql = "select * from v_device_keys ";
|
||||
$sql .= "where device_profile_uuid is not null ";
|
||||
$device_profile_keys = $database->select($sql, null, 'all');
|
||||
if ($database->column_exists('v_device_keys', 'device_profile_uuid')) {
|
||||
$sql = "select count(*) from v_device_profile_keys ";
|
||||
$num_rows = $database->select($sql, null, 'column');
|
||||
if ($num_rows == 0) {
|
||||
//get the device profile keys from device_keys table
|
||||
$sql = "select * from v_device_keys ";
|
||||
$sql .= "where device_profile_uuid is not null ";
|
||||
$device_profile_keys = $database->select($sql, null, 'all');
|
||||
|
||||
//loop through the device_keys to build the data array
|
||||
if (!empty($device_profile_keys)) {
|
||||
foreach ($device_profile_keys as $index => $row) {
|
||||
$array['device_profile_keys'][$index]['device_profile_key_uuid'] = $row["device_key_uuid"];
|
||||
$array['device_profile_keys'][$index]['domain_uuid'] = $row["domain_uuid"];
|
||||
$array['device_profile_keys'][$index]['device_profile_uuid'] = $row["device_profile_uuid"];
|
||||
$array['device_profile_keys'][$index]['profile_key_id'] = $row["device_key_id"];
|
||||
$array['device_profile_keys'][$index]['profile_key_category'] = $row["device_key_category"];
|
||||
$array['device_profile_keys'][$index]['profile_key_vendor'] = $row["device_key_vendor"];
|
||||
$array['device_profile_keys'][$index]['profile_key_type'] = $row["device_key_type"];
|
||||
$array['device_profile_keys'][$index]['profile_key_line'] = $row["device_key_line"];
|
||||
$array['device_profile_keys'][$index]['profile_key_value'] = $row["device_key_value"];
|
||||
$array['device_profile_keys'][$index]['profile_key_extension'] = $row["device_key_extension"];
|
||||
$array['device_profile_keys'][$index]['profile_key_protected'] = $row["device_key_protected"];
|
||||
$array['device_profile_keys'][$index]['profile_key_label'] = $row["device_key_label"];
|
||||
$array['device_profile_keys'][$index]['profile_key_icon'] = $row["device_key_icon"];
|
||||
//loop through the device_keys to build the data array
|
||||
if (!empty($device_profile_keys)) {
|
||||
foreach ($device_profile_keys as $index => $row) {
|
||||
$array['device_profile_keys'][$index]['device_profile_key_uuid'] = $row["device_key_uuid"];
|
||||
$array['device_profile_keys'][$index]['domain_uuid'] = $row["domain_uuid"];
|
||||
$array['device_profile_keys'][$index]['device_profile_uuid'] = $row["device_profile_uuid"];
|
||||
$array['device_profile_keys'][$index]['profile_key_id'] = $row["device_key_id"];
|
||||
$array['device_profile_keys'][$index]['profile_key_category'] = $row["device_key_category"];
|
||||
$array['device_profile_keys'][$index]['profile_key_vendor'] = $row["device_key_vendor"];
|
||||
$array['device_profile_keys'][$index]['profile_key_type'] = $row["device_key_type"];
|
||||
$array['device_profile_keys'][$index]['profile_key_line'] = $row["device_key_line"];
|
||||
$array['device_profile_keys'][$index]['profile_key_value'] = $row["device_key_value"];
|
||||
$array['device_profile_keys'][$index]['profile_key_extension'] = $row["device_key_extension"];
|
||||
$array['device_profile_keys'][$index]['profile_key_protected'] = $row["device_key_protected"];
|
||||
$array['device_profile_keys'][$index]['profile_key_label'] = $row["device_key_label"];
|
||||
$array['device_profile_keys'][$index]['profile_key_icon'] = $row["device_key_icon"];
|
||||
}
|
||||
}
|
||||
|
||||
//save the array
|
||||
if (!empty($array)) {
|
||||
$p = permissions::new();
|
||||
$p->add('device_profile_key_add', 'temp');
|
||||
|
||||
$database->app_name = 'devices';
|
||||
$database->app_uuid = '4efa1a1a-32e7-bf83-534b-6c8299958a8e';
|
||||
$database->save($array);
|
||||
$response = $database->message;
|
||||
unset($array);
|
||||
|
||||
$p->delete('device_profile_key_add', 'temp');
|
||||
}
|
||||
}
|
||||
|
||||
//save the array
|
||||
if (!empty($array)) {
|
||||
$p = new permissions;
|
||||
$p->add('device_profile_key_add', 'temp');
|
||||
|
||||
$database->app_name = 'devices';
|
||||
$database->app_uuid = '4efa1a1a-32e7-bf83-534b-6c8299958a8e';
|
||||
$database->save($array);
|
||||
$response = $database->message;
|
||||
unset($array);
|
||||
|
||||
$p->delete('device_profile_key_add', 'temp');
|
||||
}
|
||||
unset($sql, $device_profile_keys);
|
||||
}
|
||||
unset($sql, $device_profile_keys);
|
||||
|
||||
//set the device profile settings
|
||||
$sql = "select count(*) from v_device_profile_settings ";
|
||||
$num_rows = $database->select($sql, null, 'column');
|
||||
if ($num_rows == 0) {
|
||||
//get the device profile keys from device_keys table
|
||||
$sql = "select * from v_device_settings ";
|
||||
$sql .= "where device_profile_uuid is not null ";
|
||||
$device_profile_keys = $database->select($sql, null, 'all');
|
||||
if ($database->column_exists('v_device_settings', 'device_profile_uuid')) {
|
||||
$sql = "select count(*) from v_device_profile_settings ";
|
||||
$num_rows = $database->select($sql, null, 'column');
|
||||
if ($num_rows == 0) {
|
||||
//get the device profile keys from device_keys table
|
||||
$sql = "select * from v_device_settings ";
|
||||
$sql .= "where device_profile_uuid is not null ";
|
||||
$device_profile_keys = $database->select($sql, null, 'all');
|
||||
|
||||
//loop through the device_keys to build the data array
|
||||
if (!empty($device_profile_keys)) {
|
||||
foreach ($device_profile_keys as $index => $row) {
|
||||
$array['device_profile_settings'][$index]['device_profile_setting_uuid'] = $row["device_setting_uuid"];
|
||||
$array['device_profile_settings'][$index]['domain_uuid'] = $row["domain_uuid"];
|
||||
$array['device_profile_settings'][$index]['device_profile_uuid'] = $row["device_profile_uuid"];
|
||||
$array['device_profile_settings'][$index]['profile_setting_name'] = $row["device_setting_subcategory"];
|
||||
$array['device_profile_settings'][$index]['profile_setting_value'] = $row["device_setting_value"];
|
||||
$array['device_profile_settings'][$index]['profile_setting_enabled'] = $row["device_setting_enabled"];
|
||||
$array['device_profile_settings'][$index]['profile_setting_description'] = $row["device_setting_description"];
|
||||
//loop through the device_keys to build the data array
|
||||
if (!empty($device_profile_keys)) {
|
||||
foreach ($device_profile_keys as $index => $row) {
|
||||
$array['device_profile_settings'][$index]['device_profile_setting_uuid'] = $row["device_setting_uuid"];
|
||||
$array['device_profile_settings'][$index]['domain_uuid'] = $row["domain_uuid"];
|
||||
$array['device_profile_settings'][$index]['device_profile_uuid'] = $row["device_profile_uuid"];
|
||||
$array['device_profile_settings'][$index]['profile_setting_name'] = $row["device_setting_subcategory"];
|
||||
$array['device_profile_settings'][$index]['profile_setting_value'] = $row["device_setting_value"];
|
||||
$array['device_profile_settings'][$index]['profile_setting_enabled'] = $row["device_setting_enabled"];
|
||||
$array['device_profile_settings'][$index]['profile_setting_description'] = $row["device_setting_description"];
|
||||
}
|
||||
}
|
||||
|
||||
//save the array
|
||||
if (!empty($array)) {
|
||||
$p = permissions::new();
|
||||
$p->add('device_profile_setting_add', 'temp');
|
||||
|
||||
$database->app_name = 'devices';
|
||||
$database->app_uuid = '4efa1a1a-32e7-bf83-534b-6c8299958a8e';
|
||||
$database->save($array);
|
||||
$response = $database->message;
|
||||
unset($array);
|
||||
|
||||
$p->delete('device_profile_setting_add', 'temp');
|
||||
}
|
||||
}
|
||||
|
||||
//save the array
|
||||
if (!empty($array)) {
|
||||
$p = new permissions;
|
||||
$p->add('device_profile_setting_add', 'temp');
|
||||
|
||||
$database->app_name = 'devices';
|
||||
$database->app_uuid = '4efa1a1a-32e7-bf83-534b-6c8299958a8e';
|
||||
$database->save($array);
|
||||
$response = $database->message;
|
||||
unset($array);
|
||||
|
||||
$p->delete('device_profile_setting_add', 'temp');
|
||||
}
|
||||
unset($sql, $device_profile_keys);
|
||||
}
|
||||
unset($sql, $device_profile_keys);
|
||||
|
||||
//add device vendor functions to the database
|
||||
$sql = "select count(*) from v_device_vendors; ";
|
||||
|
|
@ -225,7 +229,7 @@ if ($domains_processed == 1) {
|
|||
|
||||
//execute
|
||||
if (!empty($array)) {
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('device_vendor_add', 'temp');
|
||||
$p->add('device_vendor_function_add', 'temp');
|
||||
$p->add('device_vendor_function_group_add', 'temp');
|
||||
|
|
@ -247,6 +251,7 @@ if ($domains_processed == 1) {
|
|||
$sql = "update v_device_lines set label = display_name where label is null;\n";
|
||||
$database->execute($sql);
|
||||
unset($sql);
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -3198,6 +3198,32 @@ $text['label-device_location']['zh-cn'] = "地点";
|
|||
$text['label-device_location']['ja-jp'] = "位置";
|
||||
$text['label-device_location']['ko-kr'] = "위치";
|
||||
|
||||
$text['label-device_serial_number']['en-us'] = "Serial Number";
|
||||
$text['label-device_serial_number']['en-gb'] = "Serial Number";
|
||||
$text['label-device_serial_number']['ar-eg'] = "";
|
||||
$text['label-device_serial_number']['de-at'] = "";
|
||||
$text['label-device_serial_number']['de-ch'] = "";
|
||||
$text['label-device_serial_number']['de-de'] = "";
|
||||
$text['label-device_serial_number']['el-gr'] = "";
|
||||
$text['label-device_serial_number']['es-cl'] = "";
|
||||
$text['label-device_serial_number']['es-mx'] = "";
|
||||
$text['label-device_serial_number']['fr-ca'] = "";
|
||||
$text['label-device_serial_number']['fr-fr'] = "";
|
||||
$text['label-device_serial_number']['he-il'] = "";
|
||||
$text['label-device_serial_number']['it-it'] = "";
|
||||
$text['label-device_serial_number']['ka-ge'] = "";
|
||||
$text['label-device_serial_number']['nl-nl'] = "";
|
||||
$text['label-device_serial_number']['pl-pl'] = "";
|
||||
$text['label-device_serial_number']['pt-br'] = "";
|
||||
$text['label-device_serial_number']['pt-pt'] = "";
|
||||
$text['label-device_serial_number']['ro-ro'] = "";
|
||||
$text['label-device_serial_number']['ru-ru'] = "";
|
||||
$text['label-device_serial_number']['sv-se'] = "";
|
||||
$text['label-device_serial_number']['uk-ua'] = "";
|
||||
$text['label-device_serial_number']['zh-cn'] = "";
|
||||
$text['label-device_serial_number']['ja-jp'] = "";
|
||||
$text['label-device_serial_number']['ko-kr'] = "";
|
||||
|
||||
$text['label-device_key_vendor']['en-us'] = "Vendor";
|
||||
$text['label-device_key_vendor']['en-gb'] = "Vendor";
|
||||
$text['label-device_key_vendor']['ar-eg'] = "البائع";
|
||||
|
|
@ -6634,6 +6660,32 @@ $text['description-device_location']['zh-cn'] = "输入设备位置。";
|
|||
$text['description-device_location']['ja-jp'] = "デバイスの場所を入力します。";
|
||||
$text['description-device_location']['ko-kr'] = "장치 위치를 입력합니다.";
|
||||
|
||||
$text['description-device_serial_number']['en-us'] = "Enter the device serial number.";
|
||||
$text['description-device_serial_number']['en-gb'] = "Enter the device serial number.";
|
||||
$text['description-device_serial_number']['ar-eg'] = "";
|
||||
$text['description-device_serial_number']['de-at'] = "";
|
||||
$text['description-device_serial_number']['de-ch'] = "";
|
||||
$text['description-device_serial_number']['de-de'] = "";
|
||||
$text['description-device_serial_number']['el-gr'] = "";
|
||||
$text['description-device_serial_number']['es-cl'] = "";
|
||||
$text['description-device_serial_number']['es-mx'] = "";
|
||||
$text['description-device_serial_number']['fr-ca'] = "";
|
||||
$text['description-device_serial_number']['fr-fr'] = "";
|
||||
$text['description-device_serial_number']['he-il'] = "";
|
||||
$text['description-device_serial_number']['it-it'] = "";
|
||||
$text['description-device_serial_number']['ka-ge'] = "";
|
||||
$text['description-device_serial_number']['nl-nl'] = "";
|
||||
$text['description-device_serial_number']['pl-pl'] = "";
|
||||
$text['description-device_serial_number']['pt-br'] = "";
|
||||
$text['description-device_serial_number']['pt-pt'] = "";
|
||||
$text['description-device_serial_number']['ro-ro'] = "";
|
||||
$text['description-device_serial_number']['ru-ru'] = "";
|
||||
$text['description-device_serial_number']['sv-se'] = "";
|
||||
$text['description-device_serial_number']['uk-ua'] = "";
|
||||
$text['description-device_serial_number']['zh-cn'] = "";
|
||||
$text['description-device_serial_number']['ja-jp'] = "";
|
||||
$text['description-device_serial_number']['ko-kr'] = "";
|
||||
|
||||
$text['description-device_time_zone']['en-us'] = "Enter the time zone.";
|
||||
$text['description-device_time_zone']['en-gb'] = "Enter the time zone.";
|
||||
$text['description-device_time_zone']['ar-eg'] = "أدخل المنطقة الزمنية";
|
||||
|
|
@ -7364,4 +7416,3 @@ $text['label-required']['ja-jp'] = "必要";
|
|||
$text['label-required']['ko-kr'] = "필수의";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
The Initial Developer of the Original Code is
|
||||
Mark J Crane <markjcrane@fusionpbx.com>
|
||||
Portions created by the Initial Developer are Copyright (C) 2008-2023
|
||||
Portions created by the Initial Developer are Copyright (C) 2008-2025
|
||||
the Initial Developer. All Rights Reserved.
|
||||
|
||||
Contributor(s):
|
||||
|
|
@ -252,6 +252,7 @@
|
|||
$x = 0;
|
||||
foreach ($available_columns as $table_name => $columns) {
|
||||
$table_name_label = ucwords(str_replace(['-','_',],' ', $table_name));
|
||||
echo "<div class='card'>\n";
|
||||
echo "<div class='category'>\n";
|
||||
echo "<b>".$table_name_label."</b>\n";
|
||||
echo "<br>\n";
|
||||
|
|
@ -284,6 +285,7 @@
|
|||
echo "</table>\n";
|
||||
echo "<br>\n";
|
||||
echo "</div>\n";
|
||||
echo "</div>\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
The Initial Developer of the Original Code is
|
||||
Mark J Crane <markjcrane@fusionpbx.com>
|
||||
Portions created by the Initial Developer are Copyright (C) 2008-2024
|
||||
Portions created by the Initial Developer are Copyright (C) 2008-2025
|
||||
the Initial Developer. All Rights Reserved.
|
||||
|
||||
*/
|
||||
|
|
@ -44,8 +44,9 @@
|
|||
$device_firmware_version = '';
|
||||
$device_template ='';
|
||||
|
||||
//get the domain uuid
|
||||
//get the domain values
|
||||
$domain_uuid = $_SESSION['domain_uuid'] ?? '';
|
||||
$domain_name = $_SESSION['domain_name'] ?? '';
|
||||
|
||||
//initialize the database object
|
||||
$database = database::new();
|
||||
|
|
@ -64,12 +65,12 @@
|
|||
|
||||
//get the total device count from the database, check the limit, if defined
|
||||
if ($action == 'add') {
|
||||
if (!empty($_SESSION['limit']['devices']['numeric']) && $_SESSION['limit']['devices']['numeric']) {
|
||||
if (!empty($settings->get('limit', 'devices', ''))) {
|
||||
$sql = "select count(*) from v_devices where domain_uuid = :domain_uuid ";
|
||||
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
|
||||
$parameters['domain_uuid'] = $domain_uuid;
|
||||
$total_devices = $database->select($sql, $parameters, 'column');
|
||||
if ($total_devices >= $_SESSION['limit']['devices']['numeric']) {
|
||||
message::add($text['message-maximum_devices'].' '.$_SESSION['limit']['devices']['numeric'], 'negative');
|
||||
if ($total_devices >= $settings->get('limit', 'devices', '')) {
|
||||
message::add($text['message-maximum_devices'].' '.$settings->get('limit', 'devices', ''), 'negative');
|
||||
header('Location: devices.php');
|
||||
exit;
|
||||
}
|
||||
|
|
@ -118,12 +119,12 @@
|
|||
//$device_provisioned_ip = $_POST["device_provisioned_ip"];
|
||||
$domain_uuid = $_POST["domain_uuid"];
|
||||
$device_label = $_POST["device_label"];
|
||||
$device_label = $_POST["device_label"];
|
||||
$device_user_uuid = $_POST["device_user_uuid"];
|
||||
$device_username = $_POST["device_username"];
|
||||
$device_password = $_POST["device_password"];
|
||||
$device_vendor = $_POST["device_vendor"];
|
||||
$device_location = $_POST["device_location"];
|
||||
$device_serial_number = $_POST["device_serial_number"];
|
||||
$device_uuid_alternate = $_POST["device_uuid_alternate"] ?? null;
|
||||
$device_model = $_POST["device_model"] ?? null;
|
||||
$device_firmware_version = $_POST["device_firmware_version"] ?? null;
|
||||
|
|
@ -228,14 +229,14 @@
|
|||
$sql .= " and d1.device_uuid <> :device_uuid ";
|
||||
}
|
||||
$parameters['device_address'] = $device_address;
|
||||
$domain_name = $database->select($sql, $parameters, 'column');
|
||||
if ($domain_name != '') {
|
||||
$message = $text['message-duplicate'].(if_group("superadmin") && $_SESSION["domain_name"] != $domain_name ? ": ".$domain_name : null);
|
||||
$device_domain_name = $database->select($sql, $parameters, 'column');
|
||||
if ($device_domain_name != '') {
|
||||
$message = $text['message-duplicate'].($device_domain_name != $domain_name ? ": ".$device_domain_name : null);
|
||||
message::add($message,'negative');
|
||||
header('Location: devices.php');
|
||||
exit;
|
||||
}
|
||||
unset($sql, $parameters, $domain_name);
|
||||
unset($sql, $parameters, $device_domain_name);
|
||||
}
|
||||
|
||||
//add or update the database
|
||||
|
|
@ -269,6 +270,9 @@
|
|||
if (permission_exists('device_location')) {
|
||||
$array['devices'][0]['device_location'] = $device_location;
|
||||
}
|
||||
if (permission_exists('device_serial_number')) {
|
||||
$array['devices'][0]['device_serial_number'] = $device_serial_number;
|
||||
}
|
||||
if (permission_exists('device_alternate')) {
|
||||
$array['devices'][0]['device_uuid_alternate'] = is_uuid($device_uuid_alternate) ? $device_uuid_alternate : null;
|
||||
}
|
||||
|
|
@ -304,6 +308,7 @@
|
|||
$device_line_uuid = uuid();
|
||||
$new_line = true;
|
||||
}
|
||||
|
||||
$array['devices'][0]['device_lines'][$y]['domain_uuid'] = $domain_uuid;
|
||||
$array['devices'][0]['device_lines'][$y]['device_uuid'] = $device_uuid;
|
||||
$array['devices'][0]['device_lines'][$y]['device_line_uuid'] = $device_line_uuid;
|
||||
|
|
@ -311,23 +316,23 @@
|
|||
$array['devices'][0]['device_lines'][$y]['server_address'] = $row["server_address"];
|
||||
if (permission_exists('device_line_outbound_proxy_primary')) {
|
||||
$array['devices'][0]['device_lines'][$y]['outbound_proxy_primary'] = $row["outbound_proxy_primary"];
|
||||
} else if ($new_line && isset($_SESSION['provision']['outbound_proxy_primary'])) {
|
||||
$array['devices'][0]['device_lines'][$y]['outbound_proxy_primary'] = $_SESSION['provision']['outbound_proxy_primary']['text'];
|
||||
} else if ($new_line && !empty($settings->get('provision', 'outbound_proxy_primary'))) {
|
||||
$array['devices'][0]['device_lines'][$y]['outbound_proxy_primary'] = $settings->get('provision', 'outbound_proxy_primary', '');
|
||||
}
|
||||
if (permission_exists('device_line_outbound_proxy_secondary')) {
|
||||
$array['devices'][0]['device_lines'][$y]['outbound_proxy_secondary'] = $row["outbound_proxy_secondary"];
|
||||
} else if ($new_line && isset($_SESSION['provision']['outbound_proxy_secondary'])) {
|
||||
$array['devices'][0]['device_lines'][$y]['outbound_proxy_secondary'] = $_SESSION['provision']['outbound_proxy_secondary']['text'];
|
||||
} else if ($new_line && !empty($settings->get('provision', 'outbound_proxy_secondary'))) {
|
||||
$array['devices'][0]['device_lines'][$y]['outbound_proxy_secondary'] = $settings->get('provision', 'outbound_proxy_secondary', '');
|
||||
}
|
||||
if (permission_exists('device_line_server_address_primary')) {
|
||||
$array['devices'][0]['device_lines'][$y]['server_address_primary'] = $row["server_address_primary"];
|
||||
} else if ($new_line && isset($_SESSION['provision']['server_address_primary'])) {
|
||||
$array['devices'][0]['device_lines'][$y]['server_address_primary'] = $_SESSION['provision']['server_address_primary']['text'];
|
||||
} else if ($new_line && !empty($settings->get('provision', 'server_address_primary'))) {
|
||||
$array['devices'][0]['device_lines'][$y]['server_address_primary'] = $settings->get('provision', 'server_address_primary', '');
|
||||
}
|
||||
if (permission_exists('device_line_server_address_secondary')) {
|
||||
$array['devices'][0]['device_lines'][$y]['server_address_secondary'] = $row["server_address_secondary"];
|
||||
} else if ($new_line && isset($_SESSION['provision']['server_address_secondary'])) {
|
||||
$array['devices'][0]['device_lines'][$y]['server_address_secondary'] = $_SESSION['provision']['server_address_secondary']['text'];
|
||||
} else if ($new_line && !empty($settings->get('provision', 'server_address_secondary'))) {
|
||||
$array['devices'][0]['device_lines'][$y]['server_address_secondary'] = $settings->get('provision', 'server_address_secondary', '');
|
||||
}
|
||||
if (permission_exists('device_line_label')) {
|
||||
$array['devices'][0]['device_lines'][$y]['label'] = $row["label"];
|
||||
|
|
@ -351,7 +356,7 @@
|
|||
}
|
||||
else {
|
||||
if ($action == "add") {
|
||||
$array['devices'][0]['device_lines'][$y]['sip_port'] = $_SESSION['provision']['line_sip_port']['numeric'];
|
||||
$array['devices'][0]['device_lines'][$y]['sip_port'] = $settings->get('provision', 'line_sip_port', '5060');
|
||||
}
|
||||
}
|
||||
if (permission_exists('device_line_transport')) {
|
||||
|
|
@ -359,7 +364,7 @@
|
|||
}
|
||||
else {
|
||||
if ($action == "add") {
|
||||
$array['devices'][0]['device_lines'][$y]['sip_transport'] = $_SESSION['provision']['line_sip_transport']['text'];
|
||||
$array['devices'][0]['device_lines'][$y]['sip_transport'] = $settings->get('provision', 'line_sip_transport', 'tcp');
|
||||
}
|
||||
}
|
||||
if (permission_exists('device_line_register_expires')) {
|
||||
|
|
@ -367,7 +372,7 @@
|
|||
}
|
||||
else {
|
||||
if ($action == "add") {
|
||||
$array['devices'][0]['device_lines'][$y]['register_expires'] = $_SESSION['provision']['line_register_expires']['numeric'];
|
||||
$array['devices'][0]['device_lines'][$y]['register_expires'] = $settings->get('provision', 'line_register_expires', '120');
|
||||
}
|
||||
}
|
||||
$y++;
|
||||
|
|
@ -480,7 +485,7 @@
|
|||
}
|
||||
|
||||
//write the provision files
|
||||
if (!empty($_SESSION['provision']['path']['text'])) {
|
||||
if (!empty($settings->get('provision', 'path'))) {
|
||||
$prov = new provision(['settings' => $settings]);
|
||||
$prov->domain_uuid = $domain_uuid;
|
||||
$response = $prov->write();
|
||||
|
|
@ -509,19 +514,18 @@
|
|||
$sql = "select * from v_devices ";
|
||||
$sql .= "where device_uuid = :device_uuid ";
|
||||
$parameters['device_uuid'] = $device_uuid;
|
||||
|
||||
$row = $database->select($sql, $parameters, 'row');
|
||||
if (is_array($row) && @sizeof($row) != 0) {
|
||||
$device_address = $row["device_address"];
|
||||
$device_provisioned_ip = $row["device_provisioned_ip"];
|
||||
$domain_uuid = $row["domain_uuid"];
|
||||
$device_label = $row["device_label"];
|
||||
$device_label = $row["device_label"];
|
||||
$device_user_uuid = $row["device_user_uuid"];
|
||||
$device_username = $row["device_username"];
|
||||
$device_password = $row["device_password"];
|
||||
$device_vendor = $row["device_vendor"];
|
||||
$device_location = $row["device_location"];
|
||||
$device_serial_number = $row["device_serial_number"];
|
||||
$device_uuid_alternate = $row["device_uuid_alternate"];
|
||||
$device_model = $row["device_model"];
|
||||
$device_firmware_version = $row["device_firmware_version"];
|
||||
|
|
@ -533,6 +537,13 @@
|
|||
unset($sql, $parameters, $row);
|
||||
}
|
||||
|
||||
//get device lines
|
||||
$sql = "select * ";
|
||||
$sql .= "from v_domains ";
|
||||
$sql .= "order by domain_name asc ";
|
||||
$domains = $database->select($sql, null, 'all');
|
||||
unset($sql, $parameters);
|
||||
|
||||
//set the defaults
|
||||
if (empty($device_enabled)) { $device_enabled = 'true'; }
|
||||
|
||||
|
|
@ -563,20 +574,22 @@
|
|||
}
|
||||
|
||||
//get device lines
|
||||
$sql = "select * from v_device_lines ";
|
||||
$sql = "select l.*, d.domain_name ";
|
||||
$sql .= "from v_device_lines as l, v_domains as d ";
|
||||
$sql .= "where device_uuid = :device_uuid ";
|
||||
$sql .= "and l.domain_uuid = d.domain_uuid ";
|
||||
$sql .= "order by cast(line_number as int) asc ";
|
||||
$parameters['device_uuid'] = $device_uuid ?? null;
|
||||
|
||||
$device_lines = $database->select($sql, $parameters, 'all');
|
||||
unset($sql, $parameters);
|
||||
|
||||
//set the new line defaults
|
||||
$device_lines[$x]['line_number'] = '';
|
||||
$device_lines[$x]['server_address'] = '';
|
||||
$device_lines[$x]['outbound_proxy_primary'] = $_SESSION['provision']['outbound_proxy_primary']['text'] ?? null;
|
||||
$device_lines[$x]['outbound_proxy_secondary'] = $_SESSION['provision']['outbound_proxy_secondary']['text'] ?? null;
|
||||
$device_lines[$x]['server_address_primary'] = $_SESSION['provision']['server_address_primary']['text'] ?? null;
|
||||
$device_lines[$x]['server_address_secondary'] = $_SESSION['provision']['server_address_secondary']['text'] ?? null;
|
||||
$device_lines[$x]['outbound_proxy_primary'] = $settings->get('provision', 'outbound_proxy_primary', null);
|
||||
$device_lines[$x]['outbound_proxy_secondary'] = $settings->get('provision', 'outbound_proxy_secondary', null);
|
||||
$device_lines[$x]['server_address_primary'] = $settings->get('provision', 'server_address_primary', null);
|
||||
$device_lines[$x]['server_address_secondary'] = $settings->get('provision', 'server_address_secondary', null);
|
||||
$device_lines[$x]['label'] = '';
|
||||
$device_lines[$x]['display_name'] = '';
|
||||
$device_lines[$x]['user_id'] = '';
|
||||
|
|
@ -584,9 +597,9 @@
|
|||
$device_lines[$x]['password'] = '';
|
||||
$device_lines[$x]['shared_line'] = '';
|
||||
$device_lines[$x]['enabled'] = '';
|
||||
$device_lines[$x]['sip_port'] = $_SESSION['provision']['line_sip_port']['numeric'];
|
||||
$device_lines[$x]['sip_transport'] = $_SESSION['provision']['line_sip_transport']['text'];
|
||||
$device_lines[$x]['register_expires'] = $_SESSION['provision']['line_register_expires']['numeric'];
|
||||
$device_lines[$x]['sip_port'] = $settings->get('provision', 'line_sip_port', '5060');
|
||||
$device_lines[$x]['sip_transport'] = $settings->get('provision', 'line_sip_transport', 'tcp');
|
||||
$device_lines[$x]['register_expires'] = $settings->get('provision', 'line_register_expires', '120');
|
||||
|
||||
//get device keys
|
||||
$sql = "select * from v_device_keys ";
|
||||
|
|
@ -612,11 +625,11 @@
|
|||
|
||||
//add empty device key row(s)
|
||||
if (!is_uuid($device_uuid)) {
|
||||
$rows = $_SESSION['devices']['key_add_rows']['numeric'] ?? 1;
|
||||
$rows = $settings->get('devices', 'key_add_rows', '10');
|
||||
$id = 0;
|
||||
}
|
||||
else {
|
||||
$rows = $_SESSION['devices']['key_edit_rows']['numeric'] ?? 1;
|
||||
$rows = $settings->get('devices', 'key_edit_rows', '3');
|
||||
$id = count($device_keys) + 1;
|
||||
}
|
||||
for ($x = 0; $x < $rows; $x++) {
|
||||
|
|
@ -638,7 +651,6 @@
|
|||
$sql .= "from v_device_vendors ";
|
||||
$sql .= "where enabled = 'true' ";
|
||||
$sql .= "order by name asc ";
|
||||
|
||||
$device_vendors = $database->select($sql, null, 'all');
|
||||
unset($sql);
|
||||
|
||||
|
|
@ -662,11 +674,11 @@
|
|||
|
||||
//add empty device setting row(s)
|
||||
if (!is_uuid($device_uuid)) {
|
||||
$rows = $_SESSION['devices']['setting_add_rows']['numeric'] ?? 1;
|
||||
$rows = $settings->get('devices', 'key_add_rows', '10');
|
||||
$id = 0;
|
||||
}
|
||||
else {
|
||||
$rows = $_SESSION['devices']['setting_edit_rows']['numeric'] ?? 1;
|
||||
$rows = $settings->get('devices', 'key_edit_rows', '3');
|
||||
$id = count($device_settings) + 1;
|
||||
}
|
||||
for ($x = 0; $x < $rows; $x++) {
|
||||
|
|
@ -694,12 +706,7 @@
|
|||
|
||||
//get the first device line info (found on the local server) for the provision button
|
||||
foreach ($device_lines as $row) {
|
||||
if (
|
||||
array_key_exists($row['domain_uuid'], $_SESSION['domains']) &&
|
||||
$row['server_address'] == $_SESSION['domains'][$row['domain_uuid']]['domain_name'] &&
|
||||
!empty($row['user_id']) &&
|
||||
!empty($row['server_address'])
|
||||
) {
|
||||
if ($row['server_address'] == $row['domain_name'] && !empty($row['user_id']) && !empty($row['server_address'])) {
|
||||
$user_id = $row['user_id'];
|
||||
$server_address = $row['server_address'];
|
||||
break;
|
||||
|
|
@ -731,14 +738,13 @@
|
|||
echo " $('#target_file').fadeOut(fade_speed);\n";
|
||||
echo " document.getElementById('target_file').selectedIndex = 0;\n";
|
||||
echo " }\n";
|
||||
|
||||
echo " function download(d) {\n";
|
||||
echo " if (d == '".$text['label-download']."') return;\n";
|
||||
if ($_SESSION['provision']['http_domain_filter']['boolean'] == "false") {
|
||||
$domain_name = $_SERVER["HTTP_HOST"];
|
||||
if ($settings->get('provision', 'http_domain_filter', true)) {
|
||||
$provision_domain_name = $domain_name;
|
||||
}
|
||||
else {
|
||||
$domain_name = $_SESSION['domain_name'];
|
||||
$provision_domain_name = $_SERVER["HTTP_HOST"];
|
||||
}
|
||||
|
||||
if (!isset($_SERVER['HTTP_PROTOCOL'])) {
|
||||
|
|
@ -747,7 +753,7 @@
|
|||
if ($_SERVER['HTTPS'] == 'on') { $_SERVER['HTTP_PROTOCOL'] = 'https'; }
|
||||
if ($_SERVER['SERVER_PORT'] == '443') { $_SERVER['HTTP_PROTOCOL'] = 'https'; }
|
||||
}
|
||||
echo " window.location = '".$_SERVER['HTTP_PROTOCOL']."://".$domain_name.PROJECT_PATH."/app/provision/index.php?address=".escape($device_address ?? '')."&file=' + d + '&content_type=application/octet-stream';\n";
|
||||
echo " window.location = '".$_SERVER['HTTP_PROTOCOL']."://".$provision_domain_name.PROJECT_PATH."/app/provision/index.php?address=".escape($device_address ?? '')."&file=' + d + '&content_type=application/octet-stream';\n";
|
||||
echo " }\n";
|
||||
|
||||
echo "\n";
|
||||
|
|
@ -793,16 +799,11 @@
|
|||
//add the QR code
|
||||
if (permission_exists("device_line_password") && !empty($device_template) && $qr_code_enabled) {
|
||||
//set the mode
|
||||
if (isset($_SESSION['theme']['qr_image'])) {
|
||||
if (!empty($_SESSION['theme']['qr_image'])) {
|
||||
$mode = '4';
|
||||
}
|
||||
else {
|
||||
$mode = '0';
|
||||
}
|
||||
if (!empty($settings->get('theme', 'qr_image', ''))) {
|
||||
$mode = '4';
|
||||
}
|
||||
else {
|
||||
$mode = '4';
|
||||
$mode = '0';
|
||||
}
|
||||
|
||||
//get the device line settings
|
||||
|
|
@ -922,15 +923,10 @@
|
|||
//build content for linphone
|
||||
if ($device_template == "linphone/default") {
|
||||
$auth_string = '';
|
||||
if (
|
||||
!empty($_SESSION['provision']['http_auth_enabled']['boolean']) &&
|
||||
$_SESSION['provision']['http_auth_enabled']['boolean'] == 'true' &&
|
||||
!empty($_SESSION['provision']['http_auth_username']['text']) &&
|
||||
!empty($_SESSION['provision']['http_auth_password'][0])
|
||||
) {
|
||||
$auth_string = $_SESSION['provision']['http_auth_username']['text'].':'.$_SESSION['provision']['http_auth_password'][0].'@';
|
||||
if ($settings->get('provision', 'http_auth_enabled', true) && !empty($settings->get('provision', 'http_auth_username', '')) && !empty($settings->get('provision', 'http_auth_password', ''))) {
|
||||
$auth_string = $settings->get('provision', 'http_auth_username', '').':'.$settings->get('provision', 'http_auth_password', '').'@';
|
||||
}
|
||||
$content = "https://".$auth_string.$_SESSION['domain_name'].'/app/provision/index.php?address='.$device_address;
|
||||
$content = "https://".$auth_string.$provision_domain_name.'/app/provision/index.php?address='.$device_address;
|
||||
}
|
||||
|
||||
//stream the file
|
||||
|
|
@ -1001,16 +997,16 @@
|
|||
echo " <img id='qr_code' src='data:image/jpeg;base64,".base64_encode($image)."'>\n";
|
||||
echo "</div>\n";
|
||||
}
|
||||
|
||||
/*
|
||||
if (isset($_SESSION['theme']['qr_image'])) {
|
||||
echo "<img id='img-buffer' src='".$_SESSION["theme"]["qr_image"]["text"]."' style='display: none;'>";
|
||||
if (!empty($settings->get('theme', 'qr_image', ''))) {
|
||||
echo "<img id='img-buffer' src='".$settings->get('theme', 'qr_image', '')."' style='display: none;'>";
|
||||
}
|
||||
else {
|
||||
echo "<img id='img-buffer' src='".PROJECT_PATH."/themes/".$_SESSION["domain"]["template"]["name"]."/images/qr_code.png' style='display: none;'>";
|
||||
echo "<img id='img-buffer' src='".PROJECT_PATH."/themes/".$settings->get('domain', 'template', '')."/images/qr_code.png' style='display: none;'>";
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
//show the content
|
||||
|
|
@ -1020,7 +1016,7 @@
|
|||
echo "<div class='action_bar' id='action_bar'>\n";
|
||||
echo " <div class='heading'><b>".$text['header-device']."</b></div>\n";
|
||||
echo " <div class='actions'>\n";
|
||||
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','link'=>'devices.php']);
|
||||
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$settings->get('theme', 'button_icon_back', ''),'id'=>'btn_back','link'=>'devices.php']);
|
||||
if ($action == 'update') {
|
||||
$button_margin = 'margin-left: 15px;';
|
||||
if (permission_exists("device_line_password") && $qr_code_enabled) {
|
||||
|
|
@ -1038,7 +1034,7 @@
|
|||
$template_dir = $prov->template_dir;
|
||||
$files = glob($template_dir.'/'.$device_template.'/*');
|
||||
//add file buttons and the file list
|
||||
echo button::create(['type'=>'button','id'=>'button_files','label'=>$text['button-files'],'icon'=>$_SESSION['theme']['button_icon_download'],'style'=>($button_margin ?? ''),'onclick'=>'show_files()']);
|
||||
echo button::create(['type'=>'button','id'=>'button_files','label'=>$text['button-files'],'icon'=>$settings->get('theme', 'button_icon_download', ''),'style'=>($button_margin ?? ''),'onclick'=>'show_files()']);
|
||||
echo "<select class='formfld' style='display: none; width: auto;' name='target_file' id='target_file' onchange='download(this.value)'>\n";
|
||||
echo " <option value=''>".$text['label-download']."</option>\n";
|
||||
foreach ($files as $file) {
|
||||
|
|
@ -1054,7 +1050,7 @@
|
|||
unset($button_margin);
|
||||
}
|
||||
if (permission_exists('device_add')) {
|
||||
echo button::create(['type'=>'button','label'=>$text['button-copy'],'icon'=>$_SESSION['theme']['button_icon_copy'],'style'=>($button_margin ?? ''),'name'=>'btn_copy','onclick'=>"modal_open('modal-copy','new_address');"]);
|
||||
echo button::create(['type'=>'button','label'=>$text['button-copy'],'icon'=>$settings->get('theme', 'button_icon_copy', ''),'style'=>($button_margin ?? ''),'name'=>'btn_copy','onclick'=>"modal_open('modal-copy','new_address');"]);
|
||||
unset($button_margin);
|
||||
}
|
||||
if (
|
||||
|
|
@ -1063,11 +1059,11 @@
|
|||
permission_exists('device_key_delete') ||
|
||||
permission_exists('device_setting_delete')
|
||||
) {
|
||||
echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$_SESSION['theme']['button_icon_delete'],'style'=>($button_margin ?? ''),'name'=>'btn_delete','onclick'=>"modal_open('modal-delete','btn_delete');"]);
|
||||
echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$settings->get('theme', 'button_icon_delete', ''),'style'=>($button_margin ?? ''),'name'=>'btn_delete','onclick'=>"modal_open('modal-delete','btn_delete');"]);
|
||||
unset($button_margin);
|
||||
}
|
||||
}
|
||||
echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'id'=>'btn_save','style'=>'margin-left: 15px;','onclick'=>'submit_form();']);
|
||||
echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$settings->get('theme', 'button_icon_save', ''),'id'=>'btn_save','style'=>'margin-left: 15px;','onclick'=>'submit_form();']);
|
||||
echo " </div>\n";
|
||||
echo " <div style='clear: both;'></div>\n";
|
||||
echo "</div>\n";
|
||||
|
|
@ -1105,7 +1101,7 @@
|
|||
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
|
||||
|
||||
echo "<tr>\n";
|
||||
echo "<td class='vncell' width='30%' valign='top' align='left' nowrap='nowrap'>\n";
|
||||
echo "<td class='vncellreq' width='30%' valign='top' align='left' nowrap='nowrap'>\n";
|
||||
echo " ".$text['label-device_address']."\n";
|
||||
echo "</td>\n";
|
||||
echo "<td class='vtable' width='70%' align='left'>\n";
|
||||
|
|
@ -1289,11 +1285,11 @@
|
|||
|
||||
//set the defaults
|
||||
if (!permission_exists('device_line_server_address')) {
|
||||
if (empty($row['server_address'])) { $row['server_address'] = $_SESSION['domain_name']; }
|
||||
if (empty($row['server_address'])) { $row['server_address'] = $domain_name; }
|
||||
}
|
||||
if (empty($row['sip_transport'])) { $row['sip_transport'] = $_SESSION['provision']['line_sip_transport']['text']; }
|
||||
if (!isset($row['sip_port'])) { $row['sip_port'] = $_SESSION['provision']['line_sip_port']['numeric']; } //used !isset to support a value of 0 as empty the empty function considers a value of 0 as empty.
|
||||
if (empty($row['register_expires'])) { $row['register_expires'] = $_SESSION['provision']['line_register_expires']['numeric']; }
|
||||
if (empty($row['sip_transport'])) { $row['sip_transport'] = $settings->get('provision', 'line_sip_transport', 'tcp'); }
|
||||
if (!isset($row['sip_port'])) { $row['sip_port'] = $settings->get('provision', 'line_sip_port', '5060'); } //used !isset to support a value of 0 as empty the empty function considers a value of 0 as empty.
|
||||
if (empty($row['register_expires'])) { $row['register_expires'] = $settings->get('provision', 'line_register_expires', '120'); }
|
||||
|
||||
//add the primary key uuid
|
||||
if (!empty($row['device_line_uuid']) && is_uuid($row['device_line_uuid'])) {
|
||||
|
|
@ -1323,10 +1319,11 @@
|
|||
|
||||
if (permission_exists('device_line_server_address_primary')) {
|
||||
echo " <td valign='top' align='left' nowrap='nowrap'>\n";
|
||||
if (isset($_SESSION['provision']['server_address_primary']) && !isset($_SESSION['provision']['server_address_primary']['text'])) {
|
||||
$provision_server_address_primary = $settings->get('provision', 'server_address_primary');
|
||||
if (!empty($provision_server_address_primary) && is_array($provision_server_address_primary)) {
|
||||
echo " <select class='formfld' style='width: 75px;' name='device_lines[".$x."][server_address_primary]'>\n";
|
||||
echo " <option value=''></option>\n";
|
||||
foreach($_SESSION['provision']['server_address_primary'] as $field) {
|
||||
foreach($provision_server_address_primary as $field) {
|
||||
echo " <option value='".$field."' ".(($row['server_address_primary'] == $field) ? "selected" : null).">".$field."</option>\n";
|
||||
}
|
||||
echo " </select>\n";
|
||||
|
|
@ -1339,10 +1336,11 @@
|
|||
|
||||
if (permission_exists('device_line_server_address_secondary')) {
|
||||
echo " <td valign='top' align='left' nowrap='nowrap'>\n";
|
||||
if (isset($_SESSION['provision']['server_address_secondary']) && !isset($_SESSION['provision']['server_address_secondary']['text'])) {
|
||||
$provision_server_address_secondary = $settings->get('provision', 'server_address_secondary');
|
||||
if (!empty($provision_server_address_secondary) && is_array($provision_server_address_secondary)) {
|
||||
echo " <select class='formfld' style='width: 75px;' name='device_lines[".$x."][server_address_secondary]'>\n";
|
||||
echo " <option value=''></option>\n";
|
||||
foreach($_SESSION['provision']['server_address_secondary'] as $field) {
|
||||
foreach($provision_server_address_secondary as $field) {
|
||||
echo " <option value='".$field."' ".(($row['server_address_secondary'] == $field) ? "selected" : null).">".$field."</option>\n";
|
||||
}
|
||||
echo " </select>\n";
|
||||
|
|
@ -1355,10 +1353,11 @@
|
|||
|
||||
if (permission_exists('device_line_outbound_proxy_primary')) {
|
||||
echo " <td align='left'>\n";
|
||||
if (isset($_SESSION['provision']['outbound_proxy_primary']) && !isset($_SESSION['provision']['outbound_proxy_primary']['text'])) {
|
||||
$provision_outbound_proxy_primary = $settings->get('provision', 'outbound_proxy_primary');
|
||||
if (!empty($provision_outbound_proxy_primary) && is_array($provision_outbound_proxy_primary)) {
|
||||
echo " <select class='formfld' style='width: 75px;' name='device_lines[".$x."][outbound_proxy_primary]'>\n";
|
||||
echo " <option value=''></option>\n";
|
||||
foreach($_SESSION['provision']['outbound_proxy_primary'] as $field) {
|
||||
foreach($provision_outbound_proxy_primary as $field) {
|
||||
echo " <option value='".$field."' ".(($row['outbound_proxy_primary'] == $field) ? "selected" : null).">".$field."</option>\n";
|
||||
}
|
||||
echo " </select>\n";
|
||||
|
|
@ -1371,10 +1370,11 @@
|
|||
|
||||
if (permission_exists('device_line_outbound_proxy_secondary')) {
|
||||
echo " <td align='left'>\n";
|
||||
if (isset($_SESSION['provision']['outbound_proxy_secondary']) && !isset($_SESSION['provision']['outbound_proxy_secondary']['text'])) {
|
||||
$provision_outbound_proxy_secondary = $settings->get('provision', 'outbound_proxy_secondary');
|
||||
if (!empty($provision_outbound_proxy_secondary) && is_array($provision_outbound_proxy_secondary)) {
|
||||
echo " <select class='formfld' style='width: 75px;' name='device_lines[".$x."][outbound_proxy_secondary]'>\n";
|
||||
echo " <option value=''></option>\n";
|
||||
foreach($_SESSION['provision']['outbound_proxy_secondary'] as $field) {
|
||||
foreach($provision_outbound_proxy_secondary as $field) {
|
||||
echo " <option value='".$field."' ".(($row['outbound_proxy_secondary'] == $field) ? "selected" : null).">".$field."</option>\n";
|
||||
}
|
||||
echo " </select>\n";
|
||||
|
|
@ -1409,7 +1409,7 @@
|
|||
if (permission_exists('device_line_password')) {
|
||||
echo " <td align='left'>\n";
|
||||
echo " <input type='password' style='display: none;' disabled='disabled'>"; //help defeat browser auto-fill
|
||||
echo " <input class='formfld' style='min-width: 75px; width: 100%;' type='password' name='device_lines[".$x."][password]' onmouseover=\"this.type='text';\" onfocus=\"this.type='text';\" onmouseout=\"if (!$(this).is(':focus')) { this.type='password'; }\" onblur=\"this.type='password';\" autocomplete=\"off\" maxlength='255' value=\"".escape($row['password'])."\"/>\n";
|
||||
echo " <input class='formfld password' style='min-width: 75px; width: 100%;' type='password' name='device_lines[".$x."][password]' onmouseover=\"this.type='text';\" onfocus=\"this.type='text';\" onmouseout=\"if (!$(this).is(':focus')) { this.type='password'; }\" onblur=\"this.type='password';\" autocomplete=\"off\" maxlength='255' value=\"".escape($row['password'])."\"/>\n";
|
||||
echo " </td>\n";
|
||||
}
|
||||
|
||||
|
|
@ -1495,7 +1495,7 @@
|
|||
foreach($device_profiles as $row) {
|
||||
echo " <option value='".escape($row['device_profile_uuid'])."' ".(!empty($device_profile_uuid) && $row['device_profile_uuid'] == $device_profile_uuid ? "selected='selected'" : null).">".escape($row['device_profile_name'])." ".(($row['domain_uuid'] == '') ? " (".$text['select-global'].")" : null)."</option>\n";
|
||||
}
|
||||
echo " </select>\n";
|
||||
echo " </select>\n";
|
||||
}
|
||||
else {
|
||||
foreach($device_profiles as $row) {
|
||||
|
|
@ -1924,6 +1924,19 @@
|
|||
echo "</tr>\n";
|
||||
}
|
||||
|
||||
if (permission_exists('device_serial_number')) {
|
||||
echo "<tr>\n";
|
||||
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
|
||||
echo " ".$text['label-device_serial_number']."\n";
|
||||
echo "</td>\n";
|
||||
echo "<td class='vtable' align='left'>\n";
|
||||
echo " <input class='formfld' type='text' name='device_serial_number' maxlength='255' value=\"".escape($device_serial_number ?? '')."\"/>\n";
|
||||
echo "<br />\n";
|
||||
echo $text['description-device_serial_number']."\n";
|
||||
echo "</td>\n";
|
||||
echo "</tr>\n";
|
||||
}
|
||||
|
||||
if (permission_exists('device_model')) {
|
||||
echo "<tr>\n";
|
||||
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
|
||||
|
|
@ -1963,7 +1976,7 @@
|
|||
else {
|
||||
echo " <option value=''>".$text['select-global']."</option>\n";
|
||||
}
|
||||
foreach ($_SESSION['domains'] as $row) {
|
||||
foreach ($domains as $row) {
|
||||
if ($row['domain_uuid'] == $domain_uuid) {
|
||||
echo " <option value='".escape($row['domain_uuid'])."' selected='selected'>".escape($row['domain_name'])."</option>\n";
|
||||
}
|
||||
|
|
@ -1978,16 +1991,16 @@
|
|||
echo "</tr>\n";
|
||||
}
|
||||
else {
|
||||
echo " <input type='hidden' name='domain_uuid' id='domain_uuid' value=\"".$_SESSION['domain_uuid']."\"/>\n";
|
||||
echo " <input type='hidden' name='domain_uuid' id='domain_uuid' value=\"".$domain_uuid."\"/>\n";
|
||||
}
|
||||
|
||||
if (permission_exists('device_enable')) {
|
||||
echo "<tr>\n";
|
||||
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
|
||||
echo "<td class='vncellreq' valign='top' align='left' nowrap='nowrap'>\n";
|
||||
echo " ".$text['label-device_enabled']."\n";
|
||||
echo "</td>\n";
|
||||
echo "<td class='vtable' align='left'>\n";
|
||||
if (substr($_SESSION['theme']['input_toggle_style']['text'], 0, 6) == 'switch') {
|
||||
if (substr($settings->get('theme', 'input_toggle_style', ''), 0, 6) == 'switch') {
|
||||
echo " <label class='switch'>\n";
|
||||
echo " <input type='checkbox' id='device_enabled' name='device_enabled' value='true' ".($device_enabled == 'true' ? "checked='checked'" : null).">\n";
|
||||
echo " <span class='slider'></span>\n";
|
||||
|
|
@ -2054,4 +2067,3 @@
|
|||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -229,7 +229,7 @@
|
|||
echo th_order_by('device_profile_name', $text['label-device_profile_name'], $order_by, $order);
|
||||
echo th_order_by('device_profile_enabled', $text['label-device_profile_enabled'], $order_by, $order, null, "class='center'");
|
||||
echo th_order_by('device_profile_description', $text['label-device_profile_description'], $order_by, $order, null, "class='hide-xs'");
|
||||
if (permission_exists('device_profile_edit') && !empty($_SESSION['theme']['list_row_edit_button']['boolean']) && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') {
|
||||
if (permission_exists('device_profile_edit') && filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL)) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -237,8 +237,12 @@
|
|||
if (is_array($device_profiles) && @sizeof($device_profiles) != 0) {
|
||||
$x = 0;
|
||||
foreach($device_profiles as $row) {
|
||||
$list_row_url = '';
|
||||
if (permission_exists('device_profile_edit')) {
|
||||
$list_row_url = "device_profile_edit.php?id=".urlencode($row['device_profile_uuid']);
|
||||
if ($row['domain_uuid'] != $_SESSION['domain_uuid'] && permission_exists('domain_select')) {
|
||||
$list_row_url .= '&domain_uuid='.urlencode($row['domain_uuid']).'&domain_change=true';
|
||||
}
|
||||
}
|
||||
echo "<tr class='list-row' href='".$list_row_url."'>\n";
|
||||
if (permission_exists('device_profile_add') || permission_exists('device_profile_edit') || permission_exists('device_profile_delete')) {
|
||||
|
|
@ -274,7 +278,7 @@
|
|||
}
|
||||
echo " </td>\n";
|
||||
echo " <td class='description overflow hide-xs'>".escape($row['device_profile_description'])." </td>\n";
|
||||
if (permission_exists('device_profile_edit') && !empty($_SESSION['theme']['list_row_edit_button']['boolean']) && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') {
|
||||
if (permission_exists('device_profile_edit') && filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL)) {
|
||||
echo " <td class='action-button'>";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
@ -298,3 +302,4 @@
|
|||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -226,4 +226,3 @@
|
|||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
//delete the device vendor function group
|
||||
$array['device_vendor_function_groups'][0]['device_vendor_function_group_uuid'] = $device_vendor_function_group_uuid;
|
||||
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('device_vendor_function_group_delete', 'temp');
|
||||
|
||||
$database = new database;
|
||||
|
|
@ -183,7 +183,7 @@
|
|||
$array['device_vendor_function_groups'][0]['group_name'] = $group_name;
|
||||
$array['device_vendor_function_groups'][0]['group_uuid'] = $group_uuid;
|
||||
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('device_vendor_function_group_add', 'temp');
|
||||
|
||||
$database = new database;
|
||||
|
|
@ -403,4 +403,3 @@
|
|||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -176,7 +176,7 @@
|
|||
echo "<th class='hide-sm-dn'>".$text['label-groups']."</th>\n";
|
||||
echo th_order_by('enabled', $text['label-enabled'], $order_by, $order, null, "class='center'");
|
||||
echo th_order_by('description', $text['label-description'], $order_by, $order, null, "class='hide-sm-dn'");
|
||||
if (permission_exists('device_vendor_function_edit') && !empty($_SESSION['theme']['list_row_edit_button']['boolean']) && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') {
|
||||
if (permission_exists('device_vendor_function_edit') && filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL)) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -211,8 +211,12 @@
|
|||
unset ($vendor_function_groups);
|
||||
|
||||
//show the row of data
|
||||
$list_row_url = '';
|
||||
if (permission_exists('device_vendor_function_edit')) {
|
||||
$list_row_url = "device_vendor_function_edit.php?device_vendor_uuid=".urlencode($row['device_vendor_uuid'])."&id=".urlencode($row['device_vendor_function_uuid']);
|
||||
if ($row['domain_uuid'] != $_SESSION['domain_uuid'] && permission_exists('domain_select')) {
|
||||
$list_row_url .= '&domain_uuid='.urlencode($row['domain_uuid']).'&domain_change=true';
|
||||
}
|
||||
}
|
||||
echo "<tr class='list-row' href='".$list_row_url."'>\n";
|
||||
if (permission_exists('device_vendor_function_add') || permission_exists('device_vendor_function_edit') || permission_exists('device_vendor_function_delete')) {
|
||||
|
|
@ -252,7 +256,7 @@
|
|||
}
|
||||
echo " </td>\n";
|
||||
echo " <td class='description overflow hide-sm-dn'>".escape($row['description'])."</td>\n";
|
||||
if (permission_exists('device_vendor_function_edit') && !empty($_SESSION['theme']['list_row_edit_button']['boolean']) && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') {
|
||||
if (permission_exists('device_vendor_function_edit') && filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL)) {
|
||||
echo " <td class='action-button'>\n";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
@ -289,3 +293,4 @@
|
|||
echo "</script>\n";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -129,7 +129,7 @@
|
|||
}
|
||||
|
||||
//assign temp permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('device_vendor_add', 'temp');
|
||||
$p->add('device_vendor_function_add', 'temp');
|
||||
$p->add('device_vendor_function_group_add', 'temp');
|
||||
|
|
@ -157,4 +157,3 @@
|
|||
exit;
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -170,7 +170,7 @@
|
|||
echo th_order_by('name', $text['label-name'], $order_by, $order);
|
||||
echo th_order_by('enabled', $text['label-enabled'], $order_by, $order, null, "class='center'");
|
||||
echo th_order_by('description', $text['label-description'], $order_by, $order, null, "class='hide-xs'");
|
||||
if (permission_exists('device_vendor_edit') && !empty($_SESSION['theme']['list_row_edit_button']['boolean']) && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') {
|
||||
if (permission_exists('device_vendor_edit') && filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL)) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -178,8 +178,12 @@
|
|||
if (is_array($result) && @sizeof($result) != 0) {
|
||||
$x = 0;
|
||||
foreach($result as $row) {
|
||||
$list_row_url = '';
|
||||
if (permission_exists('device_vendor_edit')) {
|
||||
$list_row_url = "device_vendor_edit.php?id=".urlencode($row['device_vendor_uuid']);
|
||||
if ($row['domain_uuid'] != $_SESSION['domain_uuid'] && permission_exists('domain_select')) {
|
||||
$list_row_url .= '&domain_uuid='.urlencode($row['domain_uuid']).'&domain_change=true';
|
||||
}
|
||||
}
|
||||
echo "<tr class='list-row' href='".$list_row_url."'>\n";
|
||||
if (permission_exists('device_vendor_edit') || permission_exists('device_vendor_delete')) {
|
||||
|
|
@ -198,7 +202,7 @@
|
|||
echo $text['label-'.$row['enabled']];
|
||||
}
|
||||
echo " <td class='description overflow hide-xs'>".escape($row['description'])." </td>\n";
|
||||
if (permission_exists('device_vendor_edit') && !empty($_SESSION['theme']['list_row_edit_button']['boolean']) && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') {
|
||||
if (permission_exists('device_vendor_edit') && filter_var($_SESSION['theme']['list_row_edit_button']['boolean'] ?? false, FILTER_VALIDATE_BOOL)) {
|
||||
echo " <td class='action-button'>";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
@ -222,3 +226,4 @@
|
|||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -48,18 +48,6 @@
|
|||
$database = database::new();
|
||||
$settings = new settings(['database' => $database, 'domain_uuid' => $domain_uuid, 'user_uuid' => $user_uuid]);
|
||||
|
||||
//set all permissions
|
||||
$has_device_import = permission_exists('device_import');
|
||||
$has_device_edit = permission_exists('device_edit');
|
||||
$has_device_all = permission_exists('device_all');
|
||||
$has_device_delete = permission_exists('device_delete');
|
||||
$has_device_domain_all = permission_exists('device_domain_all');
|
||||
$has_device_export = permission_exists('device_export');
|
||||
$has_device_vendor_view = permission_exists('device_vendor_view');
|
||||
$has_device_profile_view = permission_exists('device_profile_view');
|
||||
$has_device_add = permission_exists('device_add');
|
||||
$has_show_all = &$has_device_domain_all;
|
||||
|
||||
//add multi-lingual support
|
||||
$language = new text;
|
||||
$text = $language->get();
|
||||
|
|
@ -78,13 +66,13 @@
|
|||
if (!empty($action) && !empty($devices) && is_array($devices) && @sizeof($devices) != 0) {
|
||||
switch ($action) {
|
||||
case 'toggle':
|
||||
if ($has_device_edit) {
|
||||
if (permission_exists('device_edit')) {
|
||||
$obj = new device;
|
||||
$obj->toggle($devices);
|
||||
}
|
||||
break;
|
||||
case 'delete':
|
||||
if ($has_device_delete) {
|
||||
if (permission_exists('device_delete')) {
|
||||
$obj = new device;
|
||||
$obj->delete($devices);
|
||||
}
|
||||
|
|
@ -105,7 +93,7 @@
|
|||
//get total devices count from the database
|
||||
$sql = "select count(*) from v_devices ";
|
||||
$sql .= "where domain_uuid = :domain_uuid ";
|
||||
if (!$has_device_all && !$has_device_domain_all) {
|
||||
if (!permission_exists('device_all') && !permission_exists('device_domain_all')) {
|
||||
$sql .= "and device_user_uuid = :user_uuid ";
|
||||
$parameters['user_uuid'] = $user_uuid;
|
||||
}
|
||||
|
|
@ -113,23 +101,6 @@
|
|||
$total_devices = $database->select($sql, $parameters, 'column');
|
||||
unset($sql, $parameters);
|
||||
|
||||
//update the has_device_add permission if the total device count is greater then set limit
|
||||
$device_limit = $settings->get('limit', 'devices', null);
|
||||
if ($has_device_add && $device_limit !== null) {
|
||||
$has_device_add = $total_devices > $device_limit;
|
||||
}
|
||||
|
||||
//get the domains if user has permission for show all
|
||||
$domains = [];
|
||||
if ($has_device_domain_all) {
|
||||
$rows = $database->select("select domain_uuid, domain_name from v_domains where domain_enabled = 'true'");
|
||||
if (!empty($rows)) {
|
||||
foreach ($rows as $row) {
|
||||
$domains[$row['domain_uuid']] = $row['domain_name'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//get the devices profiles
|
||||
$sql = "select * from v_device_profiles ";
|
||||
$sql .= "where true ";
|
||||
|
|
@ -142,7 +113,7 @@
|
|||
|
||||
//prepare to page the results
|
||||
$sql = "select count(*) from v_devices as d ";
|
||||
if (isset($_GET['show']) && $_GET['show'] == "all" && $has_device_all) {
|
||||
if (isset($_GET['show']) && $_GET['show'] == "all" && permission_exists('device_all')) {
|
||||
if (!empty($search)) {
|
||||
$sql .= "where ";
|
||||
}
|
||||
|
|
@ -150,7 +121,7 @@
|
|||
else {
|
||||
$sql .= "where (";
|
||||
$sql .= " d.domain_uuid = :domain_uuid ";
|
||||
if ($has_device_all) {
|
||||
if (permission_exists('device_all')) {
|
||||
$sql .= " or d.domain_uuid is null ";
|
||||
}
|
||||
$sql .= ") ";
|
||||
|
|
@ -205,7 +176,7 @@
|
|||
$param = "&search=".$search;
|
||||
$param .= "&fields=".$fields;
|
||||
}
|
||||
if (!empty($_GET['show']) && $_GET['show'] == "all" && $has_device_all) {
|
||||
if (!empty($_GET['show']) && $_GET['show'] == "all" && permission_exists('device_all')) {
|
||||
$param .= "&show=all";
|
||||
}
|
||||
$page = $_GET['page'] ?? 0;
|
||||
|
|
@ -214,11 +185,15 @@
|
|||
$offset = $rows_per_page * $page;
|
||||
|
||||
//get the list
|
||||
$sql = "select d.*, d2.device_label as alternate_label, ";
|
||||
$sql = "select ";
|
||||
if (isset($_GET['show']) && $_GET['show'] == "all" && permission_exists('device_all')) {
|
||||
$sql .= "d3.domain_name, ";
|
||||
}
|
||||
$sql .="d.*, d2.device_label as alternate_label, ";
|
||||
$sql .= "to_char(timezone(:time_zone, d.device_provisioned_date), 'DD Mon YYYY') as provisioned_date_formatted, \n";
|
||||
$sql .= "to_char(timezone(:time_zone, d.device_provisioned_date), 'HH12:MI:SS am') as provisioned_time_formatted \n";
|
||||
$sql .= "from v_devices as d, v_devices as d2 ";
|
||||
if (isset($_GET['show']) && $_GET['show'] == "all" && $has_device_all) {
|
||||
if (isset($_GET['show']) && $_GET['show'] == "all" && permission_exists('device_all')) {
|
||||
$sql .= ", v_domains as d3 ";
|
||||
}
|
||||
$sql .= "where ( ";
|
||||
|
|
@ -228,19 +203,19 @@
|
|||
$sql .= " d.device_uuid = d2.device_uuid ";
|
||||
$sql .= " ) ";
|
||||
$sql .= ") ";
|
||||
if (isset($_GET['show']) && $_GET['show'] == "all" && $has_device_all) {
|
||||
if (isset($_GET['show']) && $_GET['show'] == "all" && permission_exists('device_all')) {
|
||||
$sql .= " and d.domain_uuid = d3.domain_uuid ";
|
||||
}
|
||||
else {
|
||||
$sql .= "and (";
|
||||
$sql .= " d.domain_uuid = :domain_uuid ";
|
||||
if ($has_device_all) {
|
||||
if (permission_exists('device_all')) {
|
||||
$sql .= " or d.domain_uuid is null ";
|
||||
}
|
||||
$sql .= ") ";
|
||||
$parameters['domain_uuid'] = $domain_uuid;
|
||||
}
|
||||
if (!$has_device_all && !$has_device_domain_all) {
|
||||
if (!permission_exists('device_all') && !permission_exists('device_domain_all')) {
|
||||
$sql .= "and d.device_user_uuid = :user_uuid ";
|
||||
$parameters['user_uuid'] = $user_uuid;
|
||||
}
|
||||
|
|
@ -314,33 +289,33 @@
|
|||
echo "<div class='action_bar' id='action_bar'>\n";
|
||||
echo " <div class='heading'><b>".$text['header-devices']."</b><div class='count'>".number_format($num_rows)."</div></div>\n";
|
||||
echo " <div class='actions'>\n";
|
||||
if ($has_device_import) {
|
||||
if (permission_exists('device_import')) {
|
||||
echo button::create(['type'=>'button','label'=>$text['button-import'],'icon'=>$settings->get('theme', 'button_icon_import'),'link'=>'device_imports.php']);
|
||||
}
|
||||
if ($has_device_export) {
|
||||
if (permission_exists('device_export')) {
|
||||
echo button::create(['type'=>'button','label'=>$text['button-export'],'icon'=>$settings->get('theme', 'button_icon_export'),'link'=>'device_download.php']);
|
||||
}
|
||||
if ($has_device_vendor_view) {
|
||||
if (permission_exists('device_vendor_view')) {
|
||||
echo button::create(['type'=>'button','label'=>$text['button-vendors'],'icon'=>'fax','link'=>'device_vendors.php']);
|
||||
}
|
||||
if ($has_device_profile_view) {
|
||||
if (permission_exists('device_profile_view')) {
|
||||
echo button::create(['type'=>'button','label'=>$text['button-profiles'],'icon'=>'clone','link'=>'device_profiles.php']);
|
||||
}
|
||||
$margin_left = $has_device_import || $has_device_export || $has_device_vendor_view || $has_device_profile_view ? "margin-left: 15px;" : null;
|
||||
if ($has_device_add) {
|
||||
$margin_left = permission_exists('device_import') || permission_exists('device_export') || permission_exists('device_vendor_view') || permission_exists('device_profile_view') ? "margin-left: 15px;" : null;
|
||||
if (permission_exists('device_add') && (empty($_SESSION['limit']['devices']['numeric']) || ($total_devices < $_SESSION['limit']['devices']['numeric']))) {
|
||||
echo button::create(['type'=>'button','label'=>$text['button-add'],'icon'=>$settings->get('theme', 'button_icon_add'),'id'=>'btn_add','style'=>$margin_left,'link'=>'device_edit.php']);
|
||||
unset($margin_left);
|
||||
}
|
||||
if ($has_device_edit && $devices) {
|
||||
if (permission_exists('device_edit') && $devices) {
|
||||
echo button::create(['type'=>'button','label'=>$text['button-toggle'],'icon'=>$settings->get('theme', 'button_icon_toggle'),'id'=>'btn_toggle','name'=>'btn_toggle','style'=>'display: none; '.($margin_left ?? null),'onclick'=>"modal_open('modal-toggle','btn_toggle');"]);
|
||||
unset($margin_left);
|
||||
}
|
||||
if ($has_device_delete && $devices) {
|
||||
if (permission_exists('device_delete') && $devices) {
|
||||
echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$settings->get('theme', 'button_icon_delete'),'id'=>'btn_delete','name'=>'btn_delete','style'=>'display: none; '.($margin_left ?? null),'onclick'=>"modal_open('modal-delete','btn_delete');"]);
|
||||
unset($margin_left);
|
||||
}
|
||||
echo "<form id='form_search' class='inline' method='get'>\n";
|
||||
if ($has_device_all) {
|
||||
if (permission_exists('device_all')) {
|
||||
if (!empty($_GET['show']) && $_GET['show'] == 'all') {
|
||||
echo " <input type='hidden' name='show' value='all'>";
|
||||
}
|
||||
|
|
@ -369,10 +344,10 @@
|
|||
echo " <div style='clear: both;'></div>\n";
|
||||
echo "</div>\n";
|
||||
|
||||
if ($has_device_edit && $devices) {
|
||||
if (permission_exists('device_edit') && $devices) {
|
||||
echo modal::create(['id'=>'modal-toggle','type'=>'toggle','actions'=>button::create(['type'=>'button','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_toggle','style'=>'float: right; margin-left: 15px;','collapse'=>'never','onclick'=>"modal_close(); list_action_set('toggle'); list_form_submit('form_list');"])]);
|
||||
}
|
||||
if ($has_device_delete && $devices) {
|
||||
if (permission_exists('device_delete') && $devices) {
|
||||
echo modal::create(['id'=>'modal-delete','type'=>'delete','actions'=>button::create(['type'=>'button','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_delete','style'=>'float: right; margin-left: 15px;','collapse'=>'never','onclick'=>"modal_close(); list_action_set('delete'); list_form_submit('form_list');"])]);
|
||||
}
|
||||
|
||||
|
|
@ -387,12 +362,12 @@
|
|||
echo "<div class='card'>\n";
|
||||
echo "<table class='list'>\n";
|
||||
echo "<tr class='list-header'>\n";
|
||||
if ($has_device_edit || $has_device_delete) {
|
||||
if (permission_exists('device_edit') || permission_exists('device_delete')) {
|
||||
echo " <th class='checkbox'>\n";
|
||||
echo " <input type='checkbox' id='checkbox_all' name='checkbox_all' onclick='list_all_toggle(); checkbox_on_change(this);' ".(empty($devices) ? "style='visibility: hidden;'" : null).">\n";
|
||||
echo " </th>\n";
|
||||
}
|
||||
if (!empty($_GET['show']) && $_GET['show'] == "all" && $has_device_all) {
|
||||
if (!empty($_GET['show']) && $_GET['show'] == "all" && permission_exists('device_all')) {
|
||||
echo th_order_by('domain_name', $text['label-domain'], $order_by, $order, null, null, $param);
|
||||
}
|
||||
echo th_order_by('device_address', $text['label-device_address'], $order_by, $order, null, null, $param ?? null);
|
||||
|
|
@ -406,7 +381,7 @@
|
|||
echo th_order_by('device_enabled', $text['label-device_enabled'], $order_by, $order, null, "class='center'", $param ?? null);
|
||||
echo th_order_by('device_provisioned_date', $text['label-device_status'], $order_by, $order, null, null, $param ?? null);
|
||||
echo th_order_by('device_description', $text['label-device_description'], $order_by, $order, null, "class='hide-sm-dn'", $param ?? null);
|
||||
if ($has_device_edit && $settings->get('theme', 'list_row_edit_button', 'false') === 'true') {
|
||||
if (permission_exists('device_edit') && $settings->get('theme', 'list_row_edit_button', false)) {
|
||||
echo " <td class='action-button'> </td>\n";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
|
|
@ -422,8 +397,12 @@
|
|||
}
|
||||
}
|
||||
|
||||
if ($has_device_edit) {
|
||||
$list_row_url = '';
|
||||
if (permission_exists('device_edit')) {
|
||||
$list_row_url = "device_edit.php?id=".urlencode($row['device_uuid']);
|
||||
if ($row['domain_uuid'] != $_SESSION['domain_uuid'] && permission_exists('domain_select')) {
|
||||
$list_row_url .= '&domain_uuid='.urlencode($row['domain_uuid']).'&domain_change=true';
|
||||
}
|
||||
}
|
||||
|
||||
$device_provisioned_method = '';
|
||||
|
|
@ -437,17 +416,17 @@
|
|||
}
|
||||
|
||||
echo "<tr class='list-row' href='".$list_row_url."'>\n";
|
||||
if ($has_device_edit || $has_device_delete) {
|
||||
if (permission_exists('device_edit') || permission_exists('device_delete')) {
|
||||
echo " <td class='checkbox'>\n";
|
||||
echo " <input type='checkbox' name='devices[$x][checked]' id='checkbox_".$x."' value='true' onclick=\"checkbox_on_change(this); if (!this.checked) { document.getElementById('checkbox_all').checked = false; }\">\n";
|
||||
echo " <input type='hidden' name='devices[$x][uuid]' value='".escape($row['device_uuid'])."' />\n";
|
||||
echo " </td>\n";
|
||||
}
|
||||
if (!empty($_GET['show']) && $_GET['show'] == "all" && $has_device_all) {
|
||||
echo " <td>".escape($domains[$row['domain_uuid']])."</td>\n";
|
||||
if (!empty($_GET['show']) && $_GET['show'] == "all" && permission_exists('device_all')) {
|
||||
echo " <td>".escape($row['domain_name'])."</td>\n";
|
||||
}
|
||||
echo " <td class='no-wrap'>";
|
||||
echo $has_device_edit ? "<a href='".$list_row_url."'>".escape(format_device_address($row['device_address']))."</a>" : escape(format_device_address($row['device_address']));
|
||||
echo permission_exists('device_edit') ? "<a href='".$list_row_url."'>".escape(format_device_address($row['device_address']))."</a>" : escape(format_device_address($row['device_address']));
|
||||
echo " </td>\n";
|
||||
echo " <td>".escape($row['device_label'])." </td>\n";
|
||||
if ($device_alternate) {
|
||||
|
|
@ -463,7 +442,7 @@
|
|||
echo " <td>".escape($row['device_vendor'])." </td>\n";
|
||||
echo " <td>".escape($row['device_template'])." </td>\n";
|
||||
echo " <td>".escape($device_profile_name)." </td>\n";
|
||||
if ($has_device_edit) {
|
||||
if (permission_exists('device_edit')) {
|
||||
echo " <td class='no-link center'>";
|
||||
echo button::create(['type'=>'submit','class'=>'link','label'=>$text['label-'.$row['device_enabled']],'title'=>$text['button-toggle'],'onclick'=>"list_self_check('checkbox_".$x."'); list_action_set('toggle'); list_form_submit('form_list')"]);
|
||||
}
|
||||
|
|
@ -474,7 +453,7 @@
|
|||
echo " </td>\n";
|
||||
echo " <td class='no-link'><a title='".escape($row['device_provisioned_agent'])."' href='javascript:void(0)'>".escape($row['provisioned_date_formatted'])." ".escape($row['provisioned_time_formatted'])."</a> ".escape($device_provisioned_method)." <a href='".escape($device_provisioned_method)."://".escape($row['device_provisioned_ip'])."' target='_blank'>".escape($row['device_provisioned_ip'])."</a> </td>\n";
|
||||
echo " <td class='description overflow hide-sm-dn'>".escape($row['device_description'])." </td>\n";
|
||||
if ($has_device_edit && $settings->get('theme', 'list_row_edit_button', 'false') === 'true') {
|
||||
if (permission_exists('device_edit') && $settings->get('theme', 'list_row_edit_button', false)) {
|
||||
echo " <td class='action-button'>";
|
||||
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$settings->get('theme','button_icon_edit'),'link'=>$list_row_url]);
|
||||
echo " </td>\n";
|
||||
|
|
@ -498,3 +477,4 @@
|
|||
require_once "resources/footer.php";
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -337,6 +337,9 @@
|
|||
case "0021f2":
|
||||
$device_vendor = "flyingvoice";
|
||||
break;
|
||||
case "f00786":
|
||||
$device_vendor = "bittel";
|
||||
break;
|
||||
default:
|
||||
$device_vendor = "";
|
||||
}
|
||||
|
|
@ -402,6 +405,9 @@
|
|||
if (preg_replace('/^.*?(avaya).*$/i', '$1', $agent) == "avaya") {
|
||||
return "avaya";
|
||||
}
|
||||
if (preg_replace('/^.*?(BITTEL).*$/i', '$1', $agent) == "bittel") {
|
||||
return "bittel";
|
||||
}
|
||||
// unknown vendor
|
||||
return "";
|
||||
}
|
||||
|
|
@ -512,7 +518,7 @@
|
|||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('device_setting_delete', 'temp');
|
||||
$p->add('device_line_delete', 'temp');
|
||||
$p->add('device_key_delete', 'temp');
|
||||
|
|
@ -722,7 +728,7 @@
|
|||
if (!empty($array) && is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('device_vendor_function_delete', 'temp');
|
||||
$p->add('device_vendor_function_group_delete', 'temp');
|
||||
|
||||
|
|
@ -784,7 +790,7 @@
|
|||
if (!empty($array) && is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('device_vendor_function_group_delete', 'temp');
|
||||
|
||||
//execute delete
|
||||
|
|
@ -845,7 +851,7 @@
|
|||
if (!empty($array) && is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('device_profile_key_delete', 'temp');
|
||||
$p->add('device_profile_setting_delete', 'temp');
|
||||
|
||||
|
|
@ -1370,13 +1376,13 @@
|
|||
if (!empty($array) && is_array($array) && @sizeof($array) != 0) {
|
||||
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('device_profile_key_add', 'temp');
|
||||
$p->add('device_profile_setting_add', 'temp');
|
||||
|
||||
//save the array
|
||||
$this->database->app_name = $this->app_name;
|
||||
$this->databasee->app_uuid = $this->app_uuid;
|
||||
$this->database->app_uuid = $this->app_uuid;
|
||||
$this->database->save($array);
|
||||
unset($array);
|
||||
|
||||
|
|
|
|||
|
|
@ -14,19 +14,19 @@ $array['dashboard'][$x]['dashboard_content_text_align'] = '';
|
|||
$array['dashboard'][$x]['dashboard_content_details'] = '';
|
||||
$array['dashboard'][$x]['dashboard_chart_type'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_enabled'] = 'true';
|
||||
$array['dashboard'][$x]['dashboard_label_text_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_text_color'] = '#444444';
|
||||
$array['dashboard'][$x]['dashboard_label_text_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_background_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_background_color'] ='';
|
||||
$array['dashboard'][$x]['dashboard_background_color'] = '#ffffff';
|
||||
$array['dashboard'][$x]['dashboard_background_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_detail_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_column_span'] = '1';
|
||||
$array['dashboard'][$x]['dashboard_row_span'] = '2';
|
||||
$array['dashboard'][$x]['dashboard_details_state'] = 'expanded';
|
||||
$array['dashboard'][$x]['dashboard_details_state'] = 'none';
|
||||
$array['dashboard'][$x]['dashboard_order'] = '150';
|
||||
$array['dashboard'][$x]['dashboard_enabled'] = 'false';
|
||||
$array['dashboard'][$x]['dashboard_description'] = 'Used to manage phone provisioned device keys.';
|
||||
|
|
@ -50,14 +50,14 @@ $array['dashboard'][$x]['dashboard_content_text_align'] = '';
|
|||
$array['dashboard'][$x]['dashboard_content_details'] = '';
|
||||
$array['dashboard'][$x]['dashboard_chart_type'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_enabled'] = 'true';
|
||||
$array['dashboard'][$x]['dashboard_label_text_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_text_color'] = '#444444';
|
||||
$array['dashboard'][$x]['dashboard_label_text_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_label_background_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color'] = '#0292ff';
|
||||
$array['dashboard'][$x]['dashboard_number_text_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_background_color'] ='';
|
||||
$array['dashboard'][$x]['dashboard_background_color'] = '#ffffff';
|
||||
$array['dashboard'][$x]['dashboard_background_color_hover'] = '';
|
||||
$array['dashboard'][$x]['dashboard_detail_background_color'] = '';
|
||||
$array['dashboard'][$x]['dashboard_column_span'] = '1';
|
||||
|
|
@ -77,4 +77,3 @@ $array['dashboard'][$x]['dashboard_groups'][$y]['group_name'] = 'admin';
|
|||
$y++;
|
||||
|
||||
?>
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
The Initial Developer of the Original Code is
|
||||
Mark J Crane <markjcrane@fusionpbx.com>
|
||||
Portions created by the Initial Developer are Copyright (C) 2016-2023
|
||||
Portions created by the Initial Developer are Copyright (C) 2016-2025
|
||||
the Initial Developer. All Rights Reserved.
|
||||
|
||||
*/
|
||||
|
|
@ -259,7 +259,7 @@
|
|||
}
|
||||
if ($save) {
|
||||
//add the temporary permissions
|
||||
$p = new permissions;
|
||||
$p = permissions::new();
|
||||
$p->add('device_keys_add', 'temp');
|
||||
$p->add('device_key_edit', 'temp');
|
||||
|
||||
|
|
@ -427,22 +427,25 @@
|
|||
$token = $object->create('/app/devices/resources/dashboard/device_keys.php');
|
||||
|
||||
//show the content
|
||||
echo "<div class='action_bar sub'>\n";
|
||||
echo " <div class='heading'><b>".$text['title-device_keys']."</b></div>\n";
|
||||
echo " <div class='actions'>\n";
|
||||
echo "<div class='hud_box'>";
|
||||
|
||||
echo "<div class='hud_content' style='display: block;'>\n";
|
||||
echo " <div class='action_bar sub'>\n";
|
||||
echo " <div class='heading' style='padding-left: 5px;'><b>".$text['title-device_keys']."</b></div>\n";
|
||||
echo " <div class='actions' style='padding-top: 2px;'>\n";
|
||||
echo button::create(['type'=>'button','label'=>$text['button-apply'],'icon'=>$_SESSION['theme']['button_icon_save'],'collapse'=>false,'onclick'=>"document.location.href='".PROJECT_PATH."/app/devices/cmd.php?cmd=check_sync&profile=".$sip_profile_name."&user=".($user_id ?? '')."@".($server_address ?? '')."&domain=".($server_address ?? '')."&agent=".($device_key_vendor ?? '')."';"]);
|
||||
echo button::create(['type'=>'button','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'collapse'=>false,'onclick'=>"list_form_submit('form_list_device_keys');"]);
|
||||
echo " </div>\n";
|
||||
echo " <div style='clear: both;'></div>\n";
|
||||
echo " </div>\n";
|
||||
echo " <div style='clear: both;'></div>\n";
|
||||
echo "</div>\n";
|
||||
|
||||
if (!empty($is_included) && !$is_included) {
|
||||
echo $text['description-device_keys']."\n";
|
||||
echo "<br /><br />\n";
|
||||
}
|
||||
|
||||
echo "<form method='post' name='frm' id='form_list_device_keys' action=''>\n";
|
||||
echo "<table class='list'>\n";
|
||||
echo " <form method='post' name='frm' id='form_list_device_keys' action=''>\n";
|
||||
echo " <table class='list'>\n";
|
||||
$x = 0;
|
||||
if (is_array($device_keys) && @sizeof($device_keys) != 0) {
|
||||
foreach ($device_keys as $row) {
|
||||
|
|
@ -621,8 +624,11 @@
|
|||
$x++;
|
||||
}
|
||||
}
|
||||
echo "</table>\n";
|
||||
echo "<input type='hidden' name='".$token['name']."' value='".$token['hash']."'>\n";
|
||||
echo "</form>";
|
||||
echo " </table>\n";
|
||||
echo " <input type='hidden' name='".$token['name']."' value='".$token['hash']."'>\n";
|
||||
echo " </form>\n";
|
||||
echo "</div>\n";
|
||||
|
||||
echo "</div>\n";
|
||||
|
||||
?>
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue