-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Expand file tree
/
Copy pathskin.js.php
More file actions
191 lines (175 loc) · 7.79 KB
/
Copy pathskin.js.php
File metadata and controls
191 lines (175 loc) · 7.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
<?php
//
// ZoneMinder base javascript file, $Date: 2008-04-21 14:52:05 +0100 (Mon, 21 Apr 2008) $, $Revision: 2391 $
// Copyright (C) 2001-2008 Philip Coombes
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
//
// This file should only contain JavaScript that needs preprocessing by php.
// Static JavaScript should go in skin.js
//
global $user;
?>
const ZM_WEB_VIEWING_TIMEOUT=<?php echo (ZM_WEB_VIEWING_TIMEOUT==''?'0':ZM_WEB_VIEWING_TIMEOUT)?>;
const AJAX_TIMEOUT = <?php echo ZM_WEB_AJAX_TIMEOUT ?>;
const navBarRefresh = <?php echo 1000*ZM_WEB_REFRESH_NAVBAR ?>;
const currentView = '<?php echo $view ?>';
const homeView = '<?php echo getHomeView() ?>';
const navbar_type = '<?php echo $navbar_type ?>';
const filter_settings_position = '<?php echo defined('ZM_WEB_FILTER_SETTINGS_POSITION') ? ZM_WEB_FILTER_SETTINGS_POSITION : 'sidebar' ?>';
const exportProgressString = '<?php echo addslashes(translate('Exporting')) ?>';
const exportFailedString = '<?php echo translate('ExportFailed') ?>';
const exportSucceededString = '<?php echo translate('ExportSucceeded') ?>';
const cancelString = '<?php echo translate('Cancel') ?>';
const playerDisabledInMonitorSettings = '<?php echo translate('PlayerDisabledInMonitorSettings') ?>';
const deleteString = "<?php echo validJsStr(translate('Delete')) ?>";
const archivedString = "<?php echo validJsStr(translate('Archived')) ?>";
const unarchivedString = "<?php echo validJsStr(translate('Unarchived')) ?>";
const emailedString = "<?php echo validJsStr(translate('Emailed')) ?>";
const yesString = "<?php echo validJsStr(translate('Yes')) ?>";
const noString = "<?php echo validJsStr(translate('No')) ?>";
const confirmDeleteEventsString = "<?php echo validJsStr(translate('ConfirmDeleteEvents')) ?>";
const translate = {};
function zmPrimeTranslations(t) { Object.assign(translate, t); }
zmPrimeTranslations({
"seconds": "<?php echo translate('seconds') ?>",
"Fullscreen": "<?php echo translate('Fullscreen') ?>",
"Exit Fullscreen": "<?php echo translate('Exit Fullscreen') ?>",
"Showing Analysis": "<?php echo translate('Showing Analysis') ?>",
"Show Analysis": "<?php echo translate('Show Analysis') ?>",
"Not Showing Analysis": "<?php echo translate('Not Showing Analysis') ?>",
"Live": "<?php echo translate('Live') ?>",
"Edit": "<?php echo translate('Edit') ?>",
"All Events": "<?php echo translate('All Events') ?>",
"Info": "<?php echo translate('Info') ?>",
"Archived": "<?php echo translate('Archived') ?>",
"Emailed": "<?php echo translate('Emailed') ?>",
"EnableAlarms": "<?php echo translate('EnableAlarms') ?>",
"DisableAlarms": "<?php echo translate('DisableAlarms') ?>",
"ForceAlarm": "<?php echo translate('ForceAlarm') ?>",
"CancelForcedAlarm": "<?php echo translate('CancelForcedAlarm') ?>",
});
<?php
/* We can't trust PHP_SELF on a path like /index.php/"%3E%3Cimg src=x onerror=prompt('1');%3E which
will still load index.php but will include the arbitrary payload after `.php/`. To mitigate this,
try to avoid using PHP_SELF but here I try to replace everything after '.php'. */ ?>
const thisUrl = '<?php echo preg_replace('/\.php.*$/i', '.php', $_SERVER['PHP_SELF']) ?>';
const skinPath = '<?php echo ZM_SKIN_PATH ?>';
const serverId = <?php echo defined('ZM_SERVER_ID') ? ZM_SERVER_ID : '0' ?>;
const Servers = [];
<?php
// Fall back to get Server paths, etc when no using multi-server mode
$Server = new ZM\Server();
echo 'Servers[0] = new Server(' . $Server->to_json(). ");\n";
global $Servers;
foreach ( $Servers as $Server ) {
echo 'Servers[' . $Server->Id() . '] = new Server(' . $Server->to_json(). ");\n";
}
?>
const canView = {};
const canEdit = {};
<?php
$perms = array('Stream', 'Events', 'Control', 'Monitors', 'Groups', 'Snapshots', 'System', 'Devices');
foreach ( $perms as $perm ) {
?>
canView["<?php echo $perm ?>"] = <?php echo canView($perm)?'true':'false' ?>;
canEdit["<?php echo $perm ?>"] = <?php echo canEdit($perm)?'true':'false' ?>;
<?php
}
?>
const ANIMATE_THUMBS = <?php echo ZM_WEB_ANIMATE_THUMBS?'true':'false' ?>;
const SCALE_BASE = <?php echo SCALE_BASE ?>;
var refreshParent = <?php
if ( ! empty($refreshParent) ) {
if ( $refreshParent == true ) {
echo 'true';
} else if ( $refreshParent ) {
# This is to tell the parent to refresh to a specific URL
echo '\''.$refreshParent.'\'';
} else {
echo 'false';
}
} else {
echo 'false';
}
?>;
var closePopup = <?php
if ( ( ! empty($closePopup) ) and ( $closePopup == true ) ) {
echo 'true';
} else {
echo 'false';
}
?>;
var focusWindow = <?php echo !empty($focusWindow)?'true':'false' ?>;
const imagePrefix = '<?php echo '?view=image&eid=' ?>';
var auth_hash = '<?php echo generateAuthHash(ZM_AUTH_HASH_IPS) ?>';
var auth_relay = '<?php echo get_auth_relay() ?>';
var user = <?php echo $user ? json_encode($user->expose(['Password'])) : '{}'; ?>;
var running = <?php echo daemonCheck()?'true':'false' ?>;
const STATE_UNKNOWN = <?php echo STATE_UNKNOWN ?>;
const STATE_IDLE = <?php echo STATE_IDLE ?>;
const STATE_PREALARM = <?php echo STATE_PREALARM ?>;
const STATE_ALARM = <?php echo STATE_ALARM ?>;
const STATE_ALERT = <?php echo STATE_ALERT ?>;
const ANALYSING_NONE = <?php echo ANALYSING_NONE ?>;
const ANALYSING_ALWAYS = <?php echo ANALYSING_ALWAYS ?>;
const CMD_ANALYZE_ON = <?php echo CMD_ANALYZE_ON ?>;
const CMD_ANALYZE_OFF = <?php echo CMD_ANALYZE_OFF ?>;
const CMD_NONE = <?php echo CMD_NONE ?>;
const CMD_PAUSE = <?php echo CMD_PAUSE ?>;
const CMD_PLAY = <?php echo CMD_PLAY ?>;
const CMD_VARPLAY = <?php echo CMD_VARPLAY ?>;
const CMD_STOP = <?php echo CMD_STOP ?>;
const CMD_FASTFWD = <?php echo CMD_FASTFWD ?>;
const CMD_SLOWFWD = <?php echo CMD_SLOWFWD ?>;
const CMD_SLOWREV = <?php echo CMD_SLOWREV ?>;
const CMD_FASTREV = <?php echo CMD_FASTREV ?>;
const CMD_ZOOMIN = <?php echo CMD_ZOOMIN ?>;
const CMD_ZOOMOUT = <?php echo CMD_ZOOMOUT ?>;
const CMD_ZOOMSTOP = <?php echo CMD_ZOOMSTOP ?>;
const CMD_PAN = <?php echo CMD_PAN ?>;
const CMD_SCALE = <?php echo CMD_SCALE ?>;
const CMD_PREV = <?php echo CMD_PREV ?>;
const CMD_NEXT = <?php echo CMD_NEXT ?>;
const CMD_SEEK = <?php echo CMD_SEEK ?>;
const CMD_QUERY = <?php echo CMD_QUERY ?>;
const CMD_QUIT = <?php echo CMD_QUIT ?>;
const CMD_MAXFPS = <?php echo CMD_MAXFPS ?>;
const AUDIO_MOTION_ENABLED = "<?php echo (AUDIO_MOTION_ENABLED) ? 'true' : 'false' ?>";
const stateStrings = new Array();
stateStrings[STATE_UNKNOWN] = "<?php echo translate('Unknown') ?>";
stateStrings[STATE_IDLE] = "<?php echo translate('Idle') ?>";
stateStrings[STATE_PREALARM] = "<?php echo translate('Prealarm') ?>";
stateStrings[STATE_ALARM] = "<?php echo translate('Alarm') ?>";
stateStrings[STATE_ALERT] = "<?php echo translate('Alert') ?>";
<?php
global $user;
if ($user) {
// Only include config if logged in or auth turned off. The login view doesn't require any config.
global $zm_config;
foreach ($zm_config as $name=>$c) {
if (empty($c['Private'])) {
if (empty($c['Value'])) {
echo 'const '. $name . ' = \'\';'.PHP_EOL;
} else if (isset($c['Type']) and $c['Type'] == 'integer' and $c['Value'] != '') {
echo 'const '. $name . ' = '.$c['Value'].';'.PHP_EOL;
} else {
echo 'const '. $name . ' = '.json_encode($c['Value']).';'.PHP_EOL;
}
}
}
}
?>