Merge lp:~alexharrington/xibo/server-150-installer into lp:xibo/1.5
- server-150-installer
- Merge into head-15-fix
Proposed by
Dan Garner
Status: | Merged |
---|---|
Approved by: | Dan Garner |
Approved revision: | 308 |
Merged at revision: | 272 |
Proposed branch: | lp:~alexharrington/xibo/server-150-installer |
Merge into: | lp:xibo/1.5 |
Diff against target: |
11221 lines (+7174/-1085) 143 files modified
server/3rdparty/jQuery/css/jquery-ui.css (+1/-1) server/config/config.class.php (+107/-19) server/install.php (+1/-1) server/install/database/60.sql (+17/-5) server/install/database/61.sql (+86/-0) server/install/database/62.sql (+7/-0) server/install/footer.inc (+1/-1) server/install/header.inc (+1/-1) server/install/header_upgrade.inc (+1/-1) server/install/install.css (+7/-7) server/install/master/data.sql (+149/-132) server/install/master/structure.sql (+21/-6) server/lib/app/app_functions.php (+9/-1) server/lib/app/debug.class.php (+1/-1) server/lib/app/responsemanager.class.php (+9/-6) server/lib/app/session.class.php (+11/-3) server/lib/app/thememanager.class.php (+69/-11) server/lib/data/dataset.data.class.php (+8/-1) server/lib/data/datasetcolumn.data.class.php (+2/-2) server/lib/data/layout.data.class.php (+2/-2) server/lib/data/region.data.class.php (+12/-6) server/lib/data/userdata.data.class.php (+124/-2) server/lib/include.php (+6/-4) server/lib/modules/module.class.php (+5/-5) server/lib/pages/admin.class.php (+3/-3) server/lib/pages/content.class.php (+46/-137) server/lib/pages/dashboard.class.php (+1/-1) server/lib/pages/dataset.class.php (+5/-5) server/lib/pages/group.class.php (+3/-3) server/lib/pages/index.class.php (+4/-6) server/lib/pages/layout.class.php (+41/-14) server/lib/pages/log.class.php (+6/-6) server/lib/pages/mediamanager.class.php (+57/-114) server/lib/pages/module.class.php (+3/-2) server/lib/pages/oauth.class.php (+7/-7) server/lib/pages/schedule.class.php (+61/-83) server/lib/pages/template.class.php (+3/-3) server/lib/pages/timeline.class.php (+53/-73) server/lib/pages/user.class.php (+2/-3) server/lib/service/service.wsdl (+1/-1) server/lib/service/xmdssoap.class.php (+15/-12) server/maintenance.php (+2/-3) server/manual/content/admin/advanced.php (+57/-0) server/manual/content/admin/api.php (+396/-0) server/manual/content/admin/displays.php (+189/-0) server/manual/content/admin/modules.php (+66/-0) server/manual/content/admin/settings.php (+311/-0) server/manual/content/config/client.php (+137/-0) server/manual/content/config/client_feature.php (+194/-0) server/manual/content/config/config.php (+36/-0) server/manual/content/config/settings.php (+41/-0) server/manual/content/config/windows.php (+81/-0) server/manual/content/content/adding.php (+80/-0) server/manual/content/content/licensing.php (+31/-0) server/manual/content/content/overview.php (+44/-0) server/manual/content/content/types.php (+92/-0) server/manual/content/dashboard/dashboard.php (+62/-0) server/manual/content/dashboard/navbar.php (+183/-0) server/manual/content/dashboard/overview.php (+111/-0) server/manual/content/install/install_client.php (+81/-0) server/manual/content/install/install_server.php (+29/-0) server/manual/content/install/prerequisites.php (+62/-0) server/manual/content/install/troubleshooting.php (+27/-0) server/manual/content/layout/addlayout.php (+142/-0) server/manual/content/layout/addregion.php (+50/-0) server/manual/content/layout/assigncontent.php (+106/-0) server/manual/content/layout/campaign_layout.php (+60/-0) server/manual/content/layout/content_counter.php (+67/-0) server/manual/content/layout/content_datasets.php (+185/-0) server/manual/content/layout/content_embedded.php (+71/-0) server/manual/content/layout/content_flash.php (+47/-0) server/manual/content/layout/content_image.php (+46/-0) server/manual/content/layout/content_microblog.php (+63/-0) server/manual/content/layout/content_powerpoint.php (+57/-0) server/manual/content/layout/content_shellcommand.php (+79/-0) server/manual/content/layout/content_text.php (+67/-0) server/manual/content/layout/content_ticker.php (+47/-0) server/manual/content/layout/content_video.php (+52/-0) server/manual/content/layout/content_webpage.php (+53/-0) server/manual/content/layout/layoutdesigner.php (+74/-0) server/manual/content/layout/overview.php (+54/-0) server/manual/content/layout/region_preview_timeline.php (+58/-0) server/manual/content/license/licenses.php (+45/-0) server/manual/content/schedule/changedisplay.php (+27/-0) server/manual/content/schedule/overview.php (+65/-0) server/manual/content/schedule/schedule_calendar.php (+72/-0) server/manual/content/schedule/schedule_event.php (+58/-0) server/manual/content/schedule/schedule_now.php (+41/-0) server/manual/content/templates/choosetemplate.php (+52/-0) server/manual/content/templates/overview.php (+35/-0) server/manual/content/templates/template_resolution.php (+47/-0) server/manual/content/users/groups.php (+96/-0) server/manual/content/users/menu_page_security.php (+79/-0) server/manual/content/users/user_permissions.php (+58/-0) server/manual/content/users/user_types.php (+54/-0) server/manual/content/users/users.php (+91/-0) server/manual/css/doc.css (+110/-0) server/manual/img/jquery.treeview.css (+47/-0) server/manual/index.php (+32/-0) server/manual/intro.php (+34/-0) server/manual/lib/jquery.dimensions.pack.js (+32/-0) server/manual/lib/jquery.ifixpng.js (+136/-0) server/manual/lib/jquery.pack.js (+31/-0) server/manual/lib/jquery.treeview.css (+47/-0) server/manual/lib/jquery.treeview.js (+223/-0) server/manual/template.php (+19/-0) server/manual/template/footer.php (+13/-0) server/manual/toc.php (+167/-0) server/modules/counter.module.php (+4/-4) server/modules/datasetview.module.php (+4/-4) server/modules/embedded.module.php (+4/-4) server/modules/localvideo.module.php (+4/-4) server/modules/microblog.module.php (+4/-4) server/modules/module_user_general.php (+51/-31) server/modules/shellcommand.module.php (+4/-4) server/modules/text.module.php (+4/-4) server/modules/ticker.module.php (+4/-4) server/modules/webpage.module.php (+5/-5) server/template/pages/mediamanager.php (+0/-44) server/template/pages/schedule_view.php (+0/-58) server/theme/default/config.php (+30/-0) server/theme/default/css/images.css (+110/-0) server/theme/default/css/images_override.css (+19/-0) server/theme/default/css/presentation.css (+10/-159) server/theme/default/css/timeline.css (+18/-10) server/theme/default/html/application_verify.php (+1/-1) server/theme/default/html/header.php (+9/-3) server/theme/default/html/help_page.php (+1/-1) server/theme/default/html/homepage_mediamanager.php (+76/-0) server/theme/default/html/homepage_mediamanager_grid.php (+64/-0) server/theme/default/html/layout_form_background.php (+1/-1) server/theme/default/html/library_form_assign.php (+55/-0) server/theme/default/html/library_form_assign_list.php (+45/-0) server/theme/default/html/login_form.php (+1/-1) server/theme/default/html/login_page.php (+6/-4) server/theme/default/html/region_form_options.php (+64/-0) server/theme/default/html/region_form_options_no_transition.php (+52/-0) server/theme/default/html/schedule_page.php (+69/-0) server/theme/default/html/schedule_page_display_list.php (+43/-0) server/theme/default/html/user_form_change_password.php (+0/-1) server/theme/default/js/core.js (+1/-0) server/theme/default/js/layout.js (+41/-36) server/theme/default/js/log.js (+1/-4) |
To merge this branch: | bzr merge lp:~alexharrington/xibo/server-150-installer |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Xibo Maintainters | Pending | ||
Review via email: mp+158428@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'server/3rdparty/jQuery/css/jquery-ui.css' |
2 | --- server/3rdparty/jQuery/css/jquery-ui.css 2012-04-08 10:11:57 +0000 |
3 | +++ server/3rdparty/jQuery/css/jquery-ui.css 2013-04-11 16:56:27 +0000 |
4 | @@ -294,7 +294,7 @@ |
5 | * http://docs.jquery.com/UI/Resizable#theming |
6 | */ |
7 | .ui-resizable { position: relative;} |
8 | -.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; } |
9 | +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 999; display: block; } |
10 | .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } |
11 | .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } |
12 | .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } |
13 | |
14 | === modified file 'server/config/config.class.php' |
15 | --- server/config/config.class.php 2013-03-02 13:15:42 +0000 |
16 | +++ server/config/config.class.php 2013-04-11 16:56:27 +0000 |
17 | @@ -90,7 +90,7 @@ |
18 | { |
19 | if (!$results = $db->query("SELECT app_ver, XlfVersion, XmdsVersion, DBVersion FROM version")) |
20 | { |
21 | - trigger_error("No Version information - please contact Xibo support", E_USER_WARNING); |
22 | + trigger_error("No Version information - please contact technical support", E_USER_WARNING); |
23 | } |
24 | |
25 | $row = $db->get_assoc_row($results); |
26 | @@ -138,11 +138,12 @@ |
27 | } |
28 | else if ($this->CheckPHP() == 2) |
29 | { |
30 | + $this->envWarning = true; |
31 | $output .= $imgWarn.$message.'<br />'; |
32 | $output .= <<<END |
33 | <div class="check_explain"> |
34 | - <p>Xibo requires PHP version 5.2.0 or later. It may run on PHP 5.1.0 and we have provided compatibility functions to enable that.</p> |
35 | - <p>However, we recommend upgrading your version of PHP to 5.2.0 or later.</p> |
36 | + <p>Xibo requires PHP version 5.2.4 or later. It may run on PHP 5.1.0 and we have provided compatibility functions to enable that.</p> |
37 | + <p>However, we recommend upgrading your version of PHP to 5.2.4 or later.</p> |
38 | </div> |
39 | END; |
40 | } |
41 | @@ -151,7 +152,7 @@ |
42 | $this->envFault = true; |
43 | |
44 | $output .= $imgBad.$message.'<br />'; |
45 | - $output .= '<div class="check_explain"> <p>' . __("Xibo requires PHP version 5.2.4 or later.") . '</p></div>'; |
46 | + $output .= '<div class="check_explain"> <p>' . __("PHP version 5.2.4 or later required.") . '</p></div>'; |
47 | } |
48 | |
49 | // Check for file system permissions |
50 | @@ -166,7 +167,7 @@ |
51 | $this->envFault = true; |
52 | |
53 | $output .= $imgBad.$message.'<br />'; |
54 | - $output .= '<div class="check_explain"><p>' . __("Xibo needs to be able to write to the following:"); |
55 | + $output .= '<div class="check_explain"><p>' . __("Write access required for the following:"); |
56 | $output .= <<<END |
57 | <ul> |
58 | <li> settings.php |
59 | @@ -178,7 +179,7 @@ |
60 | } |
61 | |
62 | // Check for MySQL |
63 | - $message = __('Xibo requires a MySQL database. Ensure PHP MySQL client extension is installed'); |
64 | + $message = __('MySQL database required. Ensure PHP MySQL client extension is installed'); |
65 | |
66 | if ($this->CheckMySQL()) |
67 | { |
68 | @@ -208,7 +209,7 @@ |
69 | $this->envFault = true; |
70 | |
71 | $output .= $imgBad.$message.'<br />'; |
72 | - $output .= '<div class="check_explain"><p>' . __('Xibo needs the PHP JSON extension to function.') . '</p></div>'; |
73 | + $output .= '<div class="check_explain"><p>' . __('PHP JSON extension required to function.') . '</p></div>'; |
74 | } |
75 | |
76 | // Check for SOAP |
77 | @@ -223,7 +224,7 @@ |
78 | $this->envFault = true; |
79 | |
80 | $output .= $imgBad.$message.'<br />'; |
81 | - $output .= '<div class="check_explain"><p>' . __('Xibo needs the PHP SOAP extension to function.') . '</p></div>'; |
82 | + $output .= '<div class="check_explain"><p>' . __('PHP SOAP extension required to function.') . '</p></div>'; |
83 | } |
84 | |
85 | // Check for GD (graphics) |
86 | @@ -238,7 +239,7 @@ |
87 | $this->envFault = true; |
88 | |
89 | $output .= $imgBad.$message.'<br />'; |
90 | - $output .= '<div class="check_explain"><p>' . __('Xibo needs the PHP GD extension to function.') . '</p></div>'; |
91 | + $output .= '<div class="check_explain"><p>' . __('PHP GD extension to function.') . '</p></div>'; |
92 | } |
93 | |
94 | // Check for PHP Session |
95 | @@ -253,7 +254,7 @@ |
96 | $this->envFault = true; |
97 | |
98 | $output .= $imgBad.$message.'<br />'; |
99 | - $output .= '<div class="check_explain"><p>' . __('Xibo needs the PHP session support to function.') . '</p></div>'; |
100 | + $output .= '<div class="check_explain"><p>' . __('PHP session support to function.') . '</p></div>'; |
101 | } |
102 | |
103 | // Check for PHP PCRE |
104 | @@ -268,7 +269,7 @@ |
105 | $this->envFault = true; |
106 | |
107 | $output .= $imgBad.$message.'<br />'; |
108 | - $output .= '<div class="check_explain"><p>' . __('Xibo needs PHP PCRE support to function.') . '</p></div>'; |
109 | + $output .= '<div class="check_explain"><p>' . __('PHP PCRE support to function.') . '</p></div>'; |
110 | } |
111 | |
112 | // Check for PHP Gettext |
113 | @@ -286,7 +287,7 @@ |
114 | $this->envFault = true; |
115 | |
116 | $output .= $imgBad.$message.'<br />'; |
117 | - $output .= '<div class="check_explain"><p>' . __('Xibo needs PHP Gettext support to function.') . '</p></div>'; |
118 | + $output .= '<div class="check_explain"><p>' . __('PHP Gettext support to function.') . '</p></div>'; |
119 | } |
120 | |
121 | // Check for Calendar |
122 | @@ -301,7 +302,7 @@ |
123 | $this->envFault = true; |
124 | |
125 | $output .= $imgBad.$message.'<br />'; |
126 | - $output .= '<div class="check_explain"><p>' . __('Xibo needs the PHP Calendar extension to function.') . '</p></div>'; |
127 | + $output .= '<div class="check_explain"><p>' . __('PHP Calendar extension to function.') . '</p></div>'; |
128 | } |
129 | |
130 | // Check for DOM |
131 | @@ -316,7 +317,7 @@ |
132 | $this->envFault = true; |
133 | |
134 | $output .= $imgBad.$message.'<br />'; |
135 | - $output .= '<div class="check_explain"><p>' . __('Xibo needs the PHP DOM core functionality enabled.') . '</p></div>'; |
136 | + $output .= '<div class="check_explain"><p>' . __('PHP DOM core functionality enabled.') . '</p></div>'; |
137 | } |
138 | |
139 | // Check for DOM XML |
140 | @@ -331,11 +332,26 @@ |
141 | $this->envFault = true; |
142 | |
143 | $output .= $imgBad.$message.'<br />'; |
144 | - $output .= '<div class="check_explain"><p>' . __('Xibo needs the PHP DOM XML extension to function.') . '</p></div>'; |
145 | + $output .= '<div class="check_explain"><p>' . __('PHP DOM XML extension to function.') . '</p></div>'; |
146 | + } |
147 | + |
148 | + // Check for Mcrypt |
149 | + $message = __('Mcrypt Extension'); |
150 | + |
151 | + if ($this->CheckMcrypt()) |
152 | + { |
153 | + $output .= $imgGood.$message.'<br />'; |
154 | + } |
155 | + else |
156 | + { |
157 | + $this->envFault = true; |
158 | + |
159 | + $output .= $imgBad.$message.'<br />'; |
160 | + $output .= '<div class="check_explain"><p>' . __('PHP Mcrypt extension to function.') . '</p></div>'; |
161 | } |
162 | |
163 | // Check to see if we are allowed to open remote URLs (homecall will not work otherwise) |
164 | - $message = __("Allow PHP to open external URLs"); |
165 | + $message = __('Allow PHP to open external URLs'); |
166 | |
167 | if (ini_get('allow_url_fopen')) |
168 | { |
169 | @@ -363,6 +379,21 @@ |
170 | |
171 | $output .= $imgWarn.$message.'<br />'; |
172 | } |
173 | + |
174 | + // Check to see if large file uploads enabled |
175 | + $message = 'Large File Uploads'; |
176 | + |
177 | + if ($this->CheckPHPUploads()) |
178 | + { |
179 | + $output .= $imgGood.$message.'<br />'; |
180 | + } |
181 | + else |
182 | + { |
183 | + $this->envWarning = true; |
184 | + $output .= $imgWarn.$message.'<br />'; |
185 | + $output .= '<div class="check_explain"><p>' . __('You probably want to allow larger files to be uploaded than is currently available with your PHP configuration.') . '<br />'; |
186 | + $output .= __('We suggest setting your PHP post_max_size and upload_max_size to at least 128M, and also increasing your max_execution_time to at least 120 seconds.') . '</p></div>'; |
187 | + } |
188 | |
189 | $output .= '</div>'; |
190 | |
191 | @@ -412,7 +443,7 @@ |
192 | */ |
193 | function CheckPHP() |
194 | { |
195 | - if (phpversion() >= '5.2.0') |
196 | + if (phpversion() >= '5.2.4') |
197 | { |
198 | return 1; |
199 | } |
200 | @@ -489,6 +520,15 @@ |
201 | } |
202 | |
203 | /** |
204 | + * Check PHP has the Mcrypt functionality installed |
205 | + * @return |
206 | + */ |
207 | + function CheckMcrypt() |
208 | + { |
209 | + return extension_loaded("mcrypt"); |
210 | + } |
211 | + |
212 | + /** |
213 | * Check PHP has the DOM functionality installed |
214 | * @return |
215 | */ |
216 | @@ -514,6 +554,54 @@ |
217 | { |
218 | return extension_loaded("pcre"); |
219 | } |
220 | + |
221 | + /** |
222 | + * Check PHP is setup for large file uploads |
223 | + * @return |
224 | + */ |
225 | + function CheckPHPUploads() |
226 | + { |
227 | + # Consider 0 - 128M warning / < 120 seconds |
228 | + # Variables to check: |
229 | + # post_max_size |
230 | + # upload_max_filesize |
231 | + # max_execution_time |
232 | + |
233 | + minSize = $this->return_bytes('128M'); |
234 | + |
235 | + if ($this->return_bytes(ini_get('post_max_size') < minSize)) |
236 | + { |
237 | + return false; |
238 | + } |
239 | + |
240 | + if ($this->return_bytes(ini_get('upload_max_filesize') < minSize)) |
241 | + { |
242 | + return false; |
243 | + } |
244 | + |
245 | + if (ini_get('max_execution_time') < 120) |
246 | + { |
247 | + return false; |
248 | + } |
249 | + |
250 | + return true; |
251 | + } |
252 | + |
253 | + /** |
254 | + * Helper function to convert strings like 8M or 3G into bytes |
255 | + * by Stas Trefilov. Assumed Public Domain. |
256 | + * Taken from the PHP Manual (http://www.php.net/manual/en/function.ini-get.php#96996) |
257 | + * @return |
258 | + */ |
259 | + function return_bytes($size_str) |
260 | + { |
261 | + switch (substr ($size_str, -1)) |
262 | + { |
263 | + case 'M': case 'm': return (int)$size_str * 1048576; |
264 | + case 'K': case 'k': return (int)$size_str * 1024; |
265 | + case 'G': case 'g': return (int)$size_str * 1073741824; |
266 | + default: return $size_str; |
267 | + } |
268 | + } |
269 | } |
270 | - |
271 | -?> |
272 | +?> |
273 | \ No newline at end of file |
274 | |
275 | === modified file 'server/install.php' |
276 | --- server/install.php 2013-02-20 20:00:36 +0000 |
277 | +++ server/install.php 2013-04-11 16:56:27 +0000 |
278 | @@ -1,6 +1,6 @@ |
279 | <?php |
280 | /* |
281 | - * Xibo - Digitial Signage - http://www.xibo.org.uk |
282 | + * Xibo - Digital Signage - http://www.xibo.org.uk |
283 | * Copyright (C) 2009-2013 Alex Harrington |
284 | * |
285 | * This file is part of Xibo. |
286 | |
287 | === modified file 'server/install/database/60.sql' |
288 | --- server/install/database/60.sql 2013-03-02 13:15:42 +0000 |
289 | +++ server/install/database/60.sql 2013-04-11 16:56:27 +0000 |
290 | @@ -24,9 +24,9 @@ |
291 | ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; |
292 | |
293 | INSERT INTO `transition` (`TransitionID`, `Transition`, `Code`, `HasDuration`, `HasDirection`, `AvailableAsIn`, `AvailableAsOut`) VALUES |
294 | -(1, 'Fade In', 'fadeIn', 1, 0, 1, 0), |
295 | -(2, 'Fade Out', 'fadeOut', 1, 0, 0, 1), |
296 | -(3, 'Fly', 'fly', 1, 1, 1, 1); |
297 | +(1, 'Fade In', 'fadeIn', 1, 0, 0, 0), |
298 | +(2, 'Fade Out', 'fadeOut', 1, 0, 0, 0), |
299 | +(3, 'Fly', 'fly', 1, 1, 0, 0); |
300 | |
301 | INSERT INTO `setting` (`settingid`, `setting`, `value`, `type`, `helptext`, `options`, `cat`, `userChange`) VALUES (NULL, 'GLOBAL_THEME_NAME', 'default', 'text', 'The Theme to apply to all pages by default', NULL, 'general', '1'); |
302 | |
303 | @@ -36,8 +36,20 @@ |
304 | |
305 | UPDATE `menuitem` SET `Img` = REPLACE(Img, 'img/dashboard/', 'dashboard/') WHERE Img IS NOT NULL; |
306 | |
307 | -ALTER TABLE `resolution` ADD `intended_width` INT NOT NULL , |
308 | -ADD `intended_height` INT NOT NULL; |
309 | +TRUNCATE TABLE `resolution`; |
310 | + |
311 | +ALTER TABLE `resolution` ADD `intended_width` SMALLINT NOT NULL , |
312 | +ADD `intended_height` SMALLINT NOT NULL; |
313 | + |
314 | +INSERT INTO `resolution` (`resolutionID`, `resolution`, `width`, `height`, `intended_width`, `intended_height`) VALUES |
315 | +(1, '4:3 Monitor', 800, 600, 1024, 768), |
316 | +(2, '3:2 Tv', 720, 480, 1440, 960), |
317 | +(3, '16:10 Widescreen Mon', 800, 500, 1680, 1050), |
318 | +(4, '16:9 HD Widescreen', 800, 450, 1920, 1080), |
319 | +(5, '3:4 Monitor', 600, 800, 768, 1024), |
320 | +(6, '2:3 Tv', 480, 720, 960, 1440), |
321 | +(7, '10:16 Widescreen', 500, 800, 1050, 1680), |
322 | +(8, '9:16 HD Widescreen', 450, 800, 1080, 1920); |
323 | |
324 | INSERT INTO `menuitem` (`MenuID`, `PageID`, `Args`, `Text`, `Class`, `Img`, `Sequence`) |
325 | SELECT 9, `PageID`, NULL, 'Help Links', NULL, NULL, 6 |
326 | |
327 | === added file 'server/install/database/61.sql' |
328 | --- server/install/database/61.sql 1970-01-01 00:00:00 +0000 |
329 | +++ server/install/database/61.sql 2013-04-11 16:56:27 +0000 |
330 | @@ -0,0 +1,86 @@ |
331 | +TRUNCATE TABLE `help`; |
332 | + |
333 | +INSERT INTO `help` (`HelpID`, `Topic`, `Category`, `Link`) VALUES |
334 | +(1, 'Layout', 'General', 'manual/content/layout/overview.php'), |
335 | +(2, 'Content', 'General', 'manual/content/content/types.php'), |
336 | +(4, 'Schedule', 'General', 'manual/content/schedule/schedule_calendar.php'), |
337 | +(5, 'Group', 'General', 'manual/content/users/groups.php'), |
338 | +(6, 'Admin', 'General', 'manual/content/admin/settings.php'), |
339 | +(7, 'Report', 'General', 'manual/content/admin/advanced.php'), |
340 | +(8, 'Dashboard', 'General', 'manual/content/dashboard/dashboard.php'), |
341 | +(9, 'User', 'General', 'manual/content/users/users.php'), |
342 | +(10, 'Display', 'General', 'manual/content/admin/displays.php'), |
343 | +(11, 'DisplayGroup', 'General', 'manual/content/admin/displays.php#Display_Group'), |
344 | +(12, 'Layout', 'Add', 'manual/content/layout/addlayout.php'), |
345 | +(13, 'Layout', 'Background', 'manual/content/layout/layoutdesigner.php#Background'), |
346 | +(14, 'Content', 'Assign', 'manual/content/content/types.php'), |
347 | +(15, 'Layout', 'RegionOptions', 'manual/content/layout/addregion.php'), |
348 | +(16, 'Content', 'AddtoLibrary', 'manual/content/content/adding.php'), |
349 | +(17, 'Display', 'Edit', 'manual/content/admin/displays.php#Display_Edit'), |
350 | +(18, 'Display', 'Delete', 'manual/content/admin/displays.php#Display_Delete'), |
351 | +(19, 'Displays', 'Groups', 'manual/content/admin/displays.php#Display_Group'), |
352 | +(20, 'UserGroup', 'Add', 'manual/content/users/groups.php#Adding_Group'), |
353 | +(21, 'User', 'Add', 'manual/content/users/users.php#Adding_User'), |
354 | +(22, 'User', 'Delete', 'manual/content/users/users.php#Delete_User'), |
355 | +(23, 'Content', 'Config', 'manual/content/admin/settings.php#Content'), |
356 | +(24, 'LayoutMedia', 'Permissions', 'manual/content/layout/addlayout.php#Layout_Permission'), |
357 | +(25, 'Region', 'Permissions', 'manual/content/layout/addregion.php#Region_Permissions'), |
358 | +(26, 'Library', 'Assign', 'manual/content/layout/assigncontent.php#Add_From_Library'), |
359 | +(27, 'Media', 'Delete', 'manual/content/content/types.php'), |
360 | +(28, 'DisplayGroup', 'Add', 'manual/content/admin/displays.php#Display_Group'), |
361 | +(29, 'DisplayGroup', 'Edit', 'manual/content/admin/displays.php#Display_Group'), |
362 | +(30, 'DisplayGroup', 'Delete', 'manual/content/admin/displays.php#Display_Group'), |
363 | +(31, 'DisplayGroup', 'Members', 'manual/content/admin/displays.php#Group_Members'), |
364 | +(32, 'DisplayGroup', 'Permissions', 'manual/content/users/user_permissions.php'), |
365 | +(34, 'Schedule', 'ScheduleNow', 'manual/content/schedule/schedule_now.php'), |
366 | +(35, 'Layout', 'Delete', 'manual/content/layout/addlayout.php#Delete_Layout'), |
367 | +(36, 'Layout', 'Copy', 'manual/content/layout/addlayout.php#Copy_Layout'), |
368 | +(37, 'Schedule', 'Edit', 'manual/content/schedule/schedule_calendar.php'), |
369 | +(38, 'Schedule', 'Add', 'manual/content/schedule/schedule_calendar.php'), |
370 | +(39, 'Layout', 'Permissions', 'manual/content/layout/addregion.php#Region_Permissions'), |
371 | +(40, 'Display', 'MediaInventory', 'manual/content/admin/displays.php#Media_Inventory'), |
372 | +(41, 'User', 'ChangePassword', 'manual/content/dashboard/navbar.php#Navigation_Top'), |
373 | +(42, 'Schedule', 'Delete', 'manual/content/schedule/schedule_event.htm'), |
374 | +(43, 'Layout', 'Edit', 'manual/content/layout/addlayout.php#Edit_Layout'), |
375 | +(44, 'Media', 'Permissions', 'manual/content/users/user_permissions.php'), |
376 | +(45, 'Display', 'DefaultLayout', 'manual/content/admin/displays.php'), |
377 | +(46, 'UserGroup', 'Edit', 'manual/content/users/groups.php#Edit_Group'), |
378 | +(47, 'UserGroup', 'Members', 'manual/content/users/groups.php#Group_Member'), |
379 | +(48, 'User', 'PageSecurity', 'manual/content/users/menu_page_security.php#Page_Security'), |
380 | +(49, 'User', 'MenuSecurity', 'manual/content/users/menu_page_security.php#Menu_Security'), |
381 | +(50, 'UserGroup', 'Delete', 'manual/content/users/groups.php#Delete_Group'), |
382 | +(51, 'User', 'Edit', 'manual/content/users/users.php#Edit_User'), |
383 | +(52, 'User', 'Applications', 'manual/content/users/menu_page_security.php'), |
384 | +(53, 'User', 'SetHomepage', 'manual/content/dashboard/dashboard.php#Media_Dashboard'), |
385 | +(54, 'DataSet', 'General', 'manual/content/layout/content_datasets.php'), |
386 | +(55, 'DataSet', 'Add', 'manual/content/layout/content_datasets.php#Create_Dataset'), |
387 | +(56, 'DataSet', 'Edit', 'manual/content/layout/content_datasets.php#Create_Dataset'), |
388 | +(57, 'DataSet', 'Delete', 'manual/content/layout/content_datasets.php#Create_Dataset'), |
389 | +(58, 'DataSet', 'AddColumn', 'manual/content/layout/content_datasets.php#Dataset_Column'), |
390 | +(59, 'DataSet', 'EditColumn', 'manual/content/layout/content_datasets.php#Dataset_Column'), |
391 | +(60, 'DataSet', 'DeleteColumn', 'manual/content/layout/content_datasets.php#Dataset_Column'), |
392 | +(61, 'DataSet', 'Data', 'manual/content/layout/content_datasets.php#Dataset_Row'), |
393 | +(62, 'DataSet', 'Permissions', 'manual/content/users/user_permissions.php'), |
394 | +(63, 'Fault', 'General', 'manual/content/admin/advanced.php'), |
395 | +(64, 'Report', 'General', 'manual/content/admin/advanced.php'), |
396 | +(65, 'Stats', 'General', 'manual/content/admin/displays.php#Display_Statistic'), |
397 | +(66, 'Resolution', 'General', 'manual/content/templates/template_resolution.php'), |
398 | +(67, 'Template', 'General', 'manual/content/templates/overview.php'), |
399 | +(68, 'Services', 'Register', 'manual/content/admin/api.php'), |
400 | +(69, 'OAuth', 'General', 'manual/content/admin/api.php'), |
401 | +(70, 'Services', 'Log', 'manual/content/admin/advanced.php'), |
402 | +(71, 'Module', 'Edit', 'manual/content/admin/modules.php'), |
403 | +(72, 'Module', 'General', 'manual/content/admin/modules.php'), |
404 | +(73, 'Campaign', 'General', 'manual/content/layout/campaign_layout.php'), |
405 | +(74, 'License', 'General', 'manual/content/license/licenses.php'), |
406 | +(75, 'DataSet', 'ViewColumns', 'manual/content/layout/content_datasets.php#Dataset_Column'), |
407 | +(76, 'Campaign', 'Permissions', 'manual/content/layout/addlayout.php#Layout_Permission'), |
408 | +(77, 'Transition', 'Edit', 'manual/content/transitions/transitions.php#Edit'); |
409 | + |
410 | +ALTER TABLE `menuitem` ADD `External` TINYINT NOT NULL DEFAULT '0'; |
411 | + |
412 | +UPDATE `menuitem` SET External = 1 WHERE Class = 'help_button' AND PageID = (SELECT PageID FROM `pages` WHERE name = 'manual'); |
413 | + |
414 | +UPDATE `version` SET `app_ver` = '1.5.0', `XmdsVersion` = 3; |
415 | +UPDATE `setting` SET `value` = 0 WHERE `setting` = 'PHONE_HOME_DATE'; |
416 | +UPDATE `version` SET `DBVersion` = '61'; |
417 | |
418 | === added file 'server/install/database/62.sql' |
419 | --- server/install/database/62.sql 1970-01-01 00:00:00 +0000 |
420 | +++ server/install/database/62.sql 2013-04-11 16:56:27 +0000 |
421 | @@ -0,0 +1,7 @@ |
422 | + |
423 | +ALTER TABLE `user` ADD `CSPRNG` TINYINT NOT NULL DEFAULT 0; |
424 | +ALTER TABLE `user` CHANGE `UserPassword` `UserPassword` VARCHAR( 128 ) NOT NULL; |
425 | + |
426 | +UPDATE `version` SET `app_ver` = '1.5.0', `XmdsVersion` = 3; |
427 | +UPDATE `setting` SET `value` = 0 WHERE `setting` = 'PHONE_HOME_DATE'; |
428 | +UPDATE `version` SET `DBVersion` = '62'; |
429 | |
430 | === modified file 'server/install/footer.inc' |
431 | --- server/install/footer.inc 2009-02-18 10:06:15 +0000 |
432 | +++ server/install/footer.inc 2013-04-11 16:56:27 +0000 |
433 | @@ -1,5 +1,5 @@ |
434 | <br /> |
435 | - <p><a href="http://www.xibo.org.uk"><img src='img/login/complogo.png'></a></p> |
436 | + <p><a href="http://www.xibo.org.uk"><img src='theme/default/img/login/complogo.png'></a></p> |
437 | </div> |
438 | |
439 | |
440 | |
441 | === modified file 'server/install/header.inc' |
442 | --- server/install/header.inc 2009-05-30 15:45:36 +0000 |
443 | +++ server/install/header.inc 2013-04-11 16:56:27 +0000 |
444 | @@ -4,7 +4,7 @@ |
445 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
446 | <link rel="stylesheet" type="text/css" href="install/install.css" /> |
447 | |
448 | - <link rel="shortcut icon" href="img/favicon.ico" /> |
449 | + <link rel="shortcut icon" href="theme/default/img/favicon.ico" /> |
450 | |
451 | <script type="text/javascript"> |
452 | $(document).ready(function(){ |
453 | |
454 | === modified file 'server/install/header_upgrade.inc' |
455 | --- server/install/header_upgrade.inc 2010-09-11 14:04:46 +0000 |
456 | +++ server/install/header_upgrade.inc 2013-04-11 16:56:27 +0000 |
457 | @@ -4,7 +4,7 @@ |
458 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
459 | <link rel="stylesheet" type="text/css" href="install/install.css" /> |
460 | |
461 | - <link rel="shortcut icon" href="img/favicon.ico" /> |
462 | + <link rel="shortcut icon" href="theme/default/img/favicon.ico" /> |
463 | |
464 | <script type="text/javascript"> |
465 | $(document).ready(function(){ |
466 | |
467 | === modified file 'server/install/install.css' |
468 | --- server/install/install.css 2009-12-31 11:38:50 +0000 |
469 | +++ server/install/install.css 2013-04-11 16:56:27 +0000 |
470 | @@ -20,7 +20,7 @@ |
471 | body { |
472 | font-size:76.1%; |
473 | font-family:Verdana, Arial, Helvetica, sans-serif; |
474 | - background: url(../img/headerback.png) repeat-x; |
475 | + background: url(../theme/default/img/headerback.png) repeat-x; |
476 | } |
477 | |
478 | img { |
479 | @@ -48,7 +48,7 @@ |
480 | float:left; |
481 | width: 10px; |
482 | height: 10px; |
483 | - background:url(../img/login/login_topleft.png) no-repeat; |
484 | + background:url(../theme/default/img/login/login_topleft.png) no-repeat; |
485 | |
486 | } |
487 | |
488 | @@ -56,7 +56,7 @@ |
489 | float:right; |
490 | width: 10px; |
491 | height: 10px; |
492 | - background:url(../img/login/login_topright.png) no-repeat; |
493 | + background:url(../theme/default/img/login/login_topright.png) no-repeat; |
494 | |
495 | } |
496 | |
497 | @@ -67,11 +67,11 @@ |
498 | |
499 | |
500 | .install_body { |
501 | - background: url(../img/login/login_body.png) repeat-x #e5f0ff; |
502 | + background: url(../theme/default/img/login/login_body.png) repeat-x #e5f0ff; |
503 | padding: 25px 0 15px 10px; |
504 | } |
505 | .install_foot{ |
506 | - background: url(../img/login/login_foot.png) repeat-x; |
507 | + background: url(../theme/default/img/login/login_foot.png) repeat-x; |
508 | height: 19px; |
509 | width: 500px; |
510 | } |
511 | @@ -80,7 +80,7 @@ |
512 | float:left; |
513 | width: 11px; |
514 | height: 19px; |
515 | - background:url(../img/login/login_bottomleft.png) no-repeat; |
516 | + background:url(../theme/default/img/login/login_bottomleft.png) no-repeat; |
517 | |
518 | } |
519 | |
520 | @@ -88,7 +88,7 @@ |
521 | float:right; |
522 | width: 11px; |
523 | height: 19px; |
524 | - background:url(../img/login/login_bottomright.png) no-repeat; |
525 | + background:url(../theme/default/img/login/login_bottomright.png) no-repeat; |
526 | |
527 | } |
528 | .install_box form { |
529 | |
530 | === modified file 'server/install/master/data.sql' |
531 | --- server/install/master/data.sql 2013-02-02 15:29:45 +0000 |
532 | +++ server/install/master/data.sql 2013-04-11 16:56:27 +0000 |
533 | @@ -1,5 +1,5 @@ |
534 | INSERT INTO `version` (`app_ver`, `XmdsVersion`, `XlfVersion`, `DBVersion`) VALUES |
535 | -('1.4.2', 3, 1, 52); |
536 | +('1.5.0', 3, 1, 62); |
537 | |
538 | INSERT INTO `group` (`groupID`, `group`, `IsUserSpecific`, `IsEveryone`) VALUES |
539 | (1, 'Users', 0, 0), |
540 | @@ -7,76 +7,81 @@ |
541 | (3, 'xibo_admin', 1, 0); |
542 | |
543 | INSERT INTO `help` (`HelpID`, `Topic`, `Category`, `Link`) VALUES |
544 | -(1, 'Layout', 'General', 'http://wiki.xibo.org.uk/wiki/Manual:Layouts'), |
545 | -(2, 'Content', 'General', 'http://wiki.xibo.org.uk/wiki/Manual:Media#The_Library'), |
546 | -(4, 'Schedule', 'General', 'http://wiki.xibo.org.uk/wiki/Manual:Scheduling'), |
547 | -(5, 'Group', 'General', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Users#Groups'), |
548 | -(6, 'Admin', 'General', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Settings'), |
549 | -(7, 'Report', 'General', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Log'), |
550 | -(8, 'Dashboard', 'General', 'http://wiki.xibo.org.uk/wiki/Manual:Overview#Dashboard'), |
551 | -(9, 'User', 'General', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Users'), |
552 | -(10, 'Display', 'General', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Displays'), |
553 | -(11, 'DisplayGroup', 'General', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Displays#Groups'), |
554 | -(12, 'Layout', 'Add', 'http://wiki.xibo.org.uk/wiki/Manual:Layouts:Design#Adding_Layouts'), |
555 | -(13, 'Layout', 'Background', 'http://wiki.xibo.org.uk/wiki/Manual:Layouts:Design#Changing_the_Background'), |
556 | -(14, 'Content', 'Assign', 'http://wiki.xibo.org.uk/wiki/Manual:Layouts:Design#Library'), |
557 | -(15, 'Layout', 'RegionOptions', 'http://wiki.xibo.org.uk/wiki/Manual:Layouts:Design#Assigning_Media'), |
558 | -(16, 'Content', 'AddtoLibrary', 'http://wiki.xibo.org.uk/wiki/Manual:Media#Add_Media'), |
559 | -(17, 'Display', 'Edit', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Displays#Edit'), |
560 | -(18, 'Display', 'Delete', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Displays#Delete'), |
561 | -(19, 'Displays', 'Groups', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Displays#Groups'), |
562 | -(20, 'UserGroup', 'Add', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Users#Add_Group'), |
563 | -(21, 'User', 'Add', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Users#Add'), |
564 | -(22, 'User', 'Delete', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Users#Delete'), |
565 | -(23, 'Content', 'Config', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Settings'), |
566 | -(24, 'LayoutMedia', 'Permissions', 'http://wiki.xibo.org.uk/wiki/Manual:Layouts:Design#Permissions'), |
567 | -(25, 'Region', 'Permissions', 'http://wiki.xibo.org.uk/wiki/Manual:Layouts:Design#Region_Permissions'), |
568 | -(26, 'Library', 'Assign', 'http://wiki.xibo.org.uk/wiki/Manual:Layouts:Design#AssigningFromLibrary'), |
569 | -(27, 'Media', 'Delete', 'http://wiki.xibo.org.uk/wiki/Manual:Media#Retire_Media'), |
570 | -(28, 'DisplayGroup', 'Add', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:DisplayGroups#Add'), |
571 | -(29, 'DisplayGroup', 'Edit', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:DisplayGroups#Edit'), |
572 | -(30, 'DisplayGroup', 'Delete', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:DisplayGroups#Delete'), |
573 | -(31, 'DisplayGroup', 'Members', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:DisplayGroups#Members'), |
574 | -(32, 'DisplayGroup', 'Permissions', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:DisplayGroups#GroupSecurity'), |
575 | -(34, 'Schedule', 'ScheduleNow', 'http://wiki.xibo.org.uk/wiki/Manual:Scheduling#Schedule_Now'), |
576 | -(35, 'Layout', 'Delete', 'http://wiki.xibo.org.uk/wiki/Manual:Layouts:Management#Deleting_or_Retiring_Layouts'), |
577 | -(36, 'Layout', 'Copy', 'http://wiki.xibo.org.uk/wiki/Manual:Layouts:Management#Copying_Layouts'), |
578 | -(37, 'Schedule', 'Edit', 'http://wiki.xibo.org.uk/wiki/Manual:Scheduling#Editing_Schedules'), |
579 | -(38, 'Schedule', 'Add', 'http://wiki.xibo.org.uk/wiki/Manual:Scheduling#Scheduling_Layouts'), |
580 | -(39, 'Layout', 'Permissions', 'http://wiki.xibo.org.uk/wiki/Manual:Layouts:Management#Layout_Permissions'), |
581 | -(40, 'Display', 'MediaInventory', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Displays#Client_Media_Inventory'), |
582 | -(41, 'User', 'ChangePassword', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Users#Changing_Password'), |
583 | -(42, 'Schedule', 'Delete', 'http://wiki.xibo.org.uk/wiki/Manual:Scheduling#Deleting_Events'), |
584 | -(43, 'Layout', 'Edit', 'http://wiki.xibo.org.uk/wiki/Manual:Layouts:Management#Editing_Layouts'), |
585 | -(44, 'Media', 'Permissions', 'http://wiki.xibo.org.uk/wiki/Manual:Media#Permissions'), |
586 | -(45, 'Display', 'DefaultLayout', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Displays#Default_Layout'), |
587 | -(46, 'UserGroup', 'Edit', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Users#Edit_Group'), |
588 | -(47, 'UserGroup', 'Members', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Users#Group_Membership'), |
589 | -(48, 'User', 'PageSecurity', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Users#Page_Security'), |
590 | -(49, 'User', 'MenuSecurity', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Users#Menu_Security'), |
591 | -(50, 'UserGroup', 'Delete', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Users#Group_Delete'), |
592 | -(51, 'User', 'Edit', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Users#Edit'), |
593 | -(52, 'User', 'Applications', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Users#Applications'), |
594 | -(53, 'User', 'SetHomepage', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Users#Set_Homepage'), |
595 | -(54, 'DataSet', 'General', 'http://wiki.xibo.org.uk/wiki/Manual:Media:DataSets'), |
596 | -(55, 'DataSet', 'Add', 'http://wiki.xibo.org.uk/wiki/Manual:Media:DataSets#Adding_DataSets'), |
597 | -(56, 'DataSet', 'Edit', 'http://wiki.xibo.org.uk/wiki/Manual:Media:DataSets#Editing_Datasets'), |
598 | -(57, 'DataSet', 'Delete', 'http://wiki.xibo.org.uk/wiki/Manual:Media:DataSets#Deleting_DataSets'), |
599 | -(58, 'DataSet', 'AddColumn', 'http://wiki.xibo.org.uk/wiki/Manual:Media:DataSets#Adding_Columns'), |
600 | -(59, 'DataSet', 'EditColumn', 'http://wiki.xibo.org.uk/wiki/Manual:Media:DataSets#Editing_Columns'), |
601 | -(60, 'DataSet', 'DeleteColumn', 'http://wiki.xibo.org.uk/wiki/Manual:Media:DataSets#Deleting_Columns'), |
602 | -(61, 'DataSet', 'Data', 'http://wiki.xibo.org.uk/wiki/Manual:Media:DataSets#Adding_Data'), |
603 | -(62, 'DataSet', 'Permissions', 'http://wiki.xibo.org.uk/wiki/Manual:Media:DataSets#Permissions'), |
604 | -(63, 'Fault', 'General', 'http://wiki.xibo.org.uk/wiki/Manual:Debug#ReportFault'), |
605 | -(64, 'Report', 'General', 'http://wiki.xibo.org.uk/wiki/Manual:Debug#ReportFault'), |
606 | -(65, 'Stats', 'General', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Displays#Stats'), |
607 | -(66, 'Resolution', 'General', 'http://wiki.xibo.org.uk/wiki/Manual:Administration:Resolutions'), |
608 | -(67, 'Template', 'General', 'http://wiki.xibo.org.uk/wiki/Manual:Layouts:Templates'), |
609 | -(68, 'Services', 'Register', 'http://wiki.xibo.org.uk/wiki/Manual:Applications#Adding_Applications'), |
610 | -(69, 'OAuth', 'General', 'http://wiki.xibo.org.uk/wiki/Manual:Applications'), |
611 | -(70, 'Services', 'Log', 'http://wiki.xibo.org.uk/wiki/Manual:Applications#View_Log'), |
612 | -(71, 'Module', 'Edit', 'http://wiki.xibo.org.uk/wiki/Manual:Media#Module_Config'), |
613 | -(72, 'Module', 'General', 'http://wiki.xibo.org.uk/wiki/Manual:Media#Editing_Module_Config'); |
614 | +(1, 'Layout', 'General', 'manual/content/layout/overview.php'), |
615 | +(2, 'Content', 'General', 'manual/content/content/types.php'), |
616 | +(4, 'Schedule', 'General', 'manual/content/schedule/schedule_calendar.php'), |
617 | +(5, 'Group', 'General', 'manual/content/users/groups.php'), |
618 | +(6, 'Admin', 'General', 'manual/content/admin/settings.php'), |
619 | +(7, 'Report', 'General', 'manual/content/admin/advanced.php'), |
620 | +(8, 'Dashboard', 'General', 'manual/content/dashboard/dashboard.php'), |
621 | +(9, 'User', 'General', 'manual/content/users/users.php'), |
622 | +(10, 'Display', 'General', 'manual/content/admin/displays.php'), |
623 | +(11, 'DisplayGroup', 'General', 'manual/content/admin/displays.php#Display_Group'), |
624 | +(12, 'Layout', 'Add', 'manual/content/layout/addlayout.php'), |
625 | +(13, 'Layout', 'Background', 'manual/content/layout/layoutdesigner.php#Background'), |
626 | +(14, 'Content', 'Assign', 'manual/content/content/types.php'), |
627 | +(15, 'Layout', 'RegionOptions', 'manual/content/layout/addregion.php'), |
628 | +(16, 'Content', 'AddtoLibrary', 'manual/content/content/adding.php'), |
629 | +(17, 'Display', 'Edit', 'manual/content/admin/displays.php#Display_Edit'), |
630 | +(18, 'Display', 'Delete', 'manual/content/admin/displays.php#Display_Delete'), |
631 | +(19, 'Displays', 'Groups', 'manual/content/admin/displays.php#Display_Group'), |
632 | +(20, 'UserGroup', 'Add', 'manual/content/users/groups.php#Adding_Group'), |
633 | +(21, 'User', 'Add', 'manual/content/users/users.php#Adding_User'), |
634 | +(22, 'User', 'Delete', 'manual/content/users/users.php#Delete_User'), |
635 | +(23, 'Content', 'Config', 'manual/content/admin/settings.php#Content'), |
636 | +(24, 'LayoutMedia', 'Permissions', 'manual/content/layout/addlayout.php#Layout_Permission'), |
637 | +(25, 'Region', 'Permissions', 'manual/content/layout/addregion.php#Region_Permissions'), |
638 | +(26, 'Library', 'Assign', 'manual/content/layout/assigncontent.php#Add_From_Library'), |
639 | +(27, 'Media', 'Delete', 'manual/content/content/types.php'), |
640 | +(28, 'DisplayGroup', 'Add', 'manual/content/admin/displays.php#Display_Group'), |
641 | +(29, 'DisplayGroup', 'Edit', 'manual/content/admin/displays.php#Display_Group'), |
642 | +(30, 'DisplayGroup', 'Delete', 'manual/content/admin/displays.php#Display_Group'), |
643 | +(31, 'DisplayGroup', 'Members', 'manual/content/admin/displays.php#Group_Members'), |
644 | +(32, 'DisplayGroup', 'Permissions', 'manual/content/users/user_permissions.php'), |
645 | +(34, 'Schedule', 'ScheduleNow', 'manual/content/schedule/schedule_now.php'), |
646 | +(35, 'Layout', 'Delete', 'manual/content/layout/addlayout.php#Delete_Layout'), |
647 | +(36, 'Layout', 'Copy', 'manual/content/layout/addlayout.php#Copy_Layout'), |
648 | +(37, 'Schedule', 'Edit', 'manual/content/schedule/schedule_calendar.php'), |
649 | +(38, 'Schedule', 'Add', 'manual/content/schedule/schedule_calendar.php'), |
650 | +(39, 'Layout', 'Permissions', 'manual/content/layout/addregion.php#Region_Permissions'), |
651 | +(40, 'Display', 'MediaInventory', 'manual/content/admin/displays.php#Media_Inventory'), |
652 | +(41, 'User', 'ChangePassword', 'manual/content/dashboard/navbar.php#Navigation_Top'), |
653 | +(42, 'Schedule', 'Delete', 'manual/content/schedule/schedule_event.htm'), |
654 | +(43, 'Layout', 'Edit', 'manual/content/layout/addlayout.php#Edit_Layout'), |
655 | +(44, 'Media', 'Permissions', 'manual/content/users/user_permissions.php'), |
656 | +(45, 'Display', 'DefaultLayout', 'manual/content/admin/displays.php'), |
657 | +(46, 'UserGroup', 'Edit', 'manual/content/users/groups.php#Edit_Group'), |
658 | +(47, 'UserGroup', 'Members', 'manual/content/users/groups.php#Group_Member'), |
659 | +(48, 'User', 'PageSecurity', 'manual/content/users/menu_page_security.php#Page_Security'), |
660 | +(49, 'User', 'MenuSecurity', 'manual/content/users/menu_page_security.php#Menu_Security'), |
661 | +(50, 'UserGroup', 'Delete', 'manual/content/users/groups.php#Delete_Group'), |
662 | +(51, 'User', 'Edit', 'manual/content/users/users.php#Edit_User'), |
663 | +(52, 'User', 'Applications', 'manual/content/users/menu_page_security.php'), |
664 | +(53, 'User', 'SetHomepage', 'manual/content/dashboard/dashboard.php#Media_Dashboard'), |
665 | +(54, 'DataSet', 'General', 'manual/content/layout/content_datasets.php'), |
666 | +(55, 'DataSet', 'Add', 'manual/content/layout/content_datasets.php#Create_Dataset'), |
667 | +(56, 'DataSet', 'Edit', 'manual/content/layout/content_datasets.php#Create_Dataset'), |
668 | +(57, 'DataSet', 'Delete', 'manual/content/layout/content_datasets.php#Create_Dataset'), |
669 | +(58, 'DataSet', 'AddColumn', 'manual/content/layout/content_datasets.php#Dataset_Column'), |
670 | +(59, 'DataSet', 'EditColumn', 'manual/content/layout/content_datasets.php#Dataset_Column'), |
671 | +(60, 'DataSet', 'DeleteColumn', 'manual/content/layout/content_datasets.php#Dataset_Column'), |
672 | +(61, 'DataSet', 'Data', 'manual/content/layout/content_datasets.php#Dataset_Row'), |
673 | +(62, 'DataSet', 'Permissions', 'manual/content/users/user_permissions.php'), |
674 | +(63, 'Fault', 'General', 'manual/content/admin/advanced.php'), |
675 | +(64, 'Report', 'General', 'manual/content/admin/advanced.php'), |
676 | +(65, 'Stats', 'General', 'manual/content/admin/displays.php#Display_Statistic'), |
677 | +(66, 'Resolution', 'General', 'manual/content/templates/template_resolution.php'), |
678 | +(67, 'Template', 'General', 'manual/content/templates/overview.php'), |
679 | +(68, 'Services', 'Register', 'manual/content/admin/api.php'), |
680 | +(69, 'OAuth', 'General', 'manual/content/admin/api.php'), |
681 | +(70, 'Services', 'Log', 'manual/content/admin/advanced.php'), |
682 | +(71, 'Module', 'Edit', 'manual/content/admin/modules.php'), |
683 | +(72, 'Module', 'General', 'manual/content/admin/modules.php'), |
684 | +(73, 'Campaign', 'General', 'manual/content/layout/campaign_layout.php'), |
685 | +(74, 'License', 'General', 'manual/content/license/licenses.php'), |
686 | +(75, 'DataSet', 'ViewColumns', 'manual/content/layout/content_datasets.php#Dataset_Column'), |
687 | +(76, 'Campaign', 'Permissions', 'manual/content/layout/addlayout.php#Layout_Permission'), |
688 | +(77, 'Transition', 'Edit', 'manual/content/transitions/transitions.php#Edit'); |
689 | |
690 | INSERT INTO `menu` (`MenuID`, `Menu`) VALUES |
691 | (8, 'Administration Menu'), |
692 | @@ -88,19 +93,19 @@ |
693 | (1, 'Top Nav'); |
694 | |
695 | INSERT INTO `module` (`ModuleID`, `Module`, `Name`, `Enabled`, `RegionSpecific`, `Description`, `ImageUri`, `SchemaVersion`, `ValidExtensions`, `PreviewEnabled`) VALUES |
696 | -(1, 'Image', 'Image', 1, 0, 'Images. PNG, JPG, BMP, GIF', 'img/forms/image.gif', 1, 'jpg,jpeg,png,bmp,gif', 1), |
697 | -(2, 'Video', 'Video', 1, 0, 'Videos. WMV.', 'img/forms/video.gif', 1, 'wmv,avi,mpg,mpeg', 1), |
698 | -(3, 'Flash', 'Flash', 1, 0, 'Flash', 'img/forms/flash.gif', 1, 'swf', 1), |
699 | -(4, 'PowerPoint', 'PowerPoint', 1, 0, 'Powerpoint. PPT, PPS', 'img/forms/powerpoint.gif', 1, 'ppt,pps,pptx', 1), |
700 | -(5, 'Webpage', 'Webpage', 1, 1, 'Webpages.', 'img/forms/webpage.gif', 1, NULL, 1), |
701 | -(6, 'Ticker', 'Ticker', 1, 1, 'RSS Ticker.', 'img/forms/ticker.gif', 1, NULL, 1), |
702 | -(7, 'Text', 'Text', 1, 1, 'Text. With Directional Controls.', 'img/forms/text.gif', 1, NULL, 1), |
703 | -(8, 'Embedded', 'Embedded', 1, 1, 'Embedded HTML', 'img/forms/webpage.gif', 1, NULL, 1), |
704 | -(9, 'MicroBlog', 'MicroBlog', 1, 1, NULL, 'img/forms/microblog.gif', 1, NULL, 1), |
705 | -(10, 'Counter', 'Counter', 1, 1, 'Customer Counter connected to a Remote Control', 'img/forms/counter.gif', 1, NULL, 1), |
706 | -(11, 'datasetview', 'Data Set', 1, 1, 'A view on a DataSet', 'img/forms/datasetview.gif', 1, NULL, 1), |
707 | -(12, 'shellcommand', 'Shell Command', 1, 1, 'Execute a shell command on the client', 'img/forms/shellcommand.gif', 1, NULL, 1), |
708 | -(13, 'localvideo', 'Local Video', 0, 1, 'Play a video locally stored on the client', 'img/forms/video.gif', 1, NULL, 1); |
709 | +(1, 'Image', 'Image', 1, 0, 'Images. PNG, JPG, BMP, GIF', 'forms/image.gif', 1, 'jpg,jpeg,png,bmp,gif', 1), |
710 | +(2, 'Video', 'Video', 1, 0, 'Videos. WMV.', 'forms/video.gif', 1, 'wmv,avi,mpg,mpeg', 1), |
711 | +(3, 'Flash', 'Flash', 1, 0, 'Flash', 'forms/flash.gif', 1, 'swf', 1), |
712 | +(4, 'PowerPoint', 'PowerPoint', 1, 0, 'Powerpoint. PPT, PPS', 'forms/powerpoint.gif', 1, 'ppt,pps,pptx', 1), |
713 | +(5, 'Webpage', 'Webpage', 1, 1, 'Webpages.', 'forms/webpage.gif', 1, NULL, 1), |
714 | +(6, 'Ticker', 'Ticker', 1, 1, 'RSS Ticker.', 'forms/ticker.gif', 1, NULL, 1), |
715 | +(7, 'Text', 'Text', 1, 1, 'Text. With Directional Controls.', 'forms/text.gif', 1, NULL, 1), |
716 | +(8, 'Embedded', 'Embedded', 1, 1, 'Embedded HTML', 'forms/webpage.gif', 1, NULL, 1), |
717 | +(9, 'MicroBlog', 'MicroBlog', 1, 1, NULL, 'forms/microblog.gif', 1, NULL, 1), |
718 | +(10, 'Counter', 'Counter', 1, 1, 'Customer Counter connected to a Remote Control', 'forms/counter.gif', 1, NULL, 1), |
719 | +(11, 'datasetview', 'Data Set', 1, 1, 'A view on a DataSet', 'forms/datasetview.gif', 1, NULL, 1), |
720 | +(12, 'shellcommand', 'Shell Command', 1, 1, 'Execute a shell command on the client', 'forms/shellcommand.gif', 1, NULL, 1), |
721 | +(13, 'localvideo', 'Local Video', 0, 1, 'Play a video locally stored on the client', 'forms/video.gif', 1, NULL, 1); |
722 | |
723 | INSERT INTO `pagegroup` (`pagegroupID`, `pagegroup`) VALUES |
724 | (1, 'Schedule'), |
725 | @@ -126,7 +131,7 @@ |
726 | (12, 'update', 11), |
727 | (14, 'admin', 10), |
728 | (15, 'group', 8), |
729 | -(16, 'report', 9), |
730 | +(16, 'log', 9), |
731 | (17, 'user', 8), |
732 | (18, 'license', 10), |
733 | (19, 'index', 2), |
734 | @@ -143,51 +148,57 @@ |
735 | (34, 'help', 2), |
736 | (35, 'clock', 2), |
737 | (36, 'dataset', 14), |
738 | -(37, 'campaign', 3); |
739 | - |
740 | -INSERT INTO `menuitem` (`MenuItemID`, `MenuID`, `PageID`, `Args`, `Text`, `Class`, `Img`, `Sequence`) VALUES |
741 | -(1, 1, 2, NULL, 'Schedule', NULL, NULL, 1), |
742 | -(2, 1, 5, NULL, 'Design', NULL, NULL, 2), |
743 | -(3, 1, 7, NULL, 'Library', NULL, NULL, 3), |
744 | -(4, 1, 17, NULL, 'Administration', NULL, NULL, 5), |
745 | -(7, 7, 11, NULL, 'Displays', NULL, NULL, 1), |
746 | -(8, 8, 15, NULL, 'User Groups', NULL, NULL, 2), |
747 | -(9, 8, 17, NULL, 'Users', NULL, NULL, 1), |
748 | -(10, 9, 16, 'sp=log', 'Log', NULL, NULL, 1), |
749 | -(11, 9, 18, NULL, 'License', NULL, NULL, 4), |
750 | -(12, 9, 16, 'sp=sessions', 'Sessions', NULL, NULL, 2), |
751 | -(13, 8, 14, NULL, 'Settings', NULL, NULL, 3), |
752 | -(14, 2, 2, 'sp=month', 'Schedule', 'schedule_button', 'img/dashboard/scheduleview.png', 1), |
753 | -(15, 2, 5, NULL, 'Layouts', 'playlist_button', 'img/dashboard/presentations.png', 2), |
754 | -(16, 2, 7, NULL, 'Library', 'content_button', 'img/dashboard/content.png', 3), |
755 | -(17, 2, 25, NULL, 'Templates', 'layout_button', 'img/dashboard/layouts.png', 4), |
756 | -(18, 2, 17, NULL, 'Users', 'user_button', 'img/dashboard/users.png', 5), |
757 | -(19, 2, 14, NULL, 'Settings', 'settings_button', 'img/dashboard/settings.png', 6), |
758 | -(20, 2, 18, NULL, 'License', 'license_button', 'img/dashboard/license.png', 7), |
759 | -(22, 9, 26, NULL, 'Report Fault', NULL, NULL, 3), |
760 | -(23, 7, 27, NULL, 'Statistics', NULL, NULL, 3), |
761 | -(24, 2, 28, 'http://wiki.xibo.org.uk/wiki/Manual:TOC', 'Manual', 'help_button', 'img/dashboard/help.png', 10), |
762 | -(25, 6, 29, NULL, 'Resolutions', NULL, NULL, 4), |
763 | -(26, 6, 25, NULL, 'Templates', NULL, NULL, 3), |
764 | -(27, 7, 32, NULL, 'Display Groups', NULL, NULL, 2), |
765 | -(28, 8, 33, NULL, 'Applications', NULL, NULL, 4), |
766 | -(29, 5, 36, NULL, 'DataSets', NULL, NULL, 2), |
767 | -(30, 5, 7, NULL, 'Media', NULL, NULL, 1), |
768 | -(33, 6, 5, NULL, 'Layouts', NULL, NULL, 2), |
769 | -(34, 1, 11, NULL, 'Displays', NULL, NULL, 4), |
770 | -(35, 1, 16, 'sp=log', 'Advanced', NULL, NULL, 6), |
771 | -(36, 8, 24, NULL, 'Modules', NULL, NULL, 5), |
772 | -(37, 6, 37, NULL, 'Campaigns', NULL, NULL, 1); |
773 | - |
774 | -INSERT INTO `resolution` (`resolutionID`, `resolution`, `width`, `height`) VALUES |
775 | -(1, '4:3 Monitor', 800, 600), |
776 | -(2, '3:2 Tv', 720, 480), |
777 | -(3, '16:10 Widescreen Mon', 800, 500), |
778 | -(4, '16:9 HD Widescreen', 800, 450), |
779 | -(5, '3:4 Monitor', 600, 800), |
780 | -(6, '2:3 Tv', 480, 720), |
781 | -(7, '10:16 Widescreen', 500, 800), |
782 | -(8, '9:16 HD Widescreen', 450, 800); |
783 | +(37, 'campaign', 3), |
784 | +(38, 'transition', 4), |
785 | +(39, 'timeline', 3), |
786 | +(40, 'sessions', 9); |
787 | + |
788 | +INSERT INTO `menuitem` (`MenuItemID`, `MenuID`, `PageID`, `Args`, `Text`, `Class`, `Img`, `Sequence`, `External`) VALUES |
789 | +(1, 1, 2, NULL, 'Schedule', NULL, NULL, 1, 0), |
790 | +(2, 1, 5, NULL, 'Design', NULL, NULL, 2, 0), |
791 | +(3, 1, 7, NULL, 'Library', NULL, NULL, 3, 0), |
792 | +(4, 1, 17, NULL, 'Administration', NULL, NULL, 5, 0), |
793 | +(7, 7, 11, NULL, 'Displays', NULL, NULL, 1, 0), |
794 | +(8, 8, 15, NULL, 'User Groups', NULL, NULL, 2, 0), |
795 | +(9, 8, 17, NULL, 'Users', NULL, NULL, 1, 0), |
796 | +(10, 9, 16, NULL, 'Log', NULL, NULL, 1, 0), |
797 | +(11, 9, 18, NULL, 'About', NULL, NULL, 4, 0), |
798 | +(12, 9, 40, NULL, 'Sessions', NULL, NULL, 2, 0), |
799 | +(13, 8, 14, NULL, 'Settings', NULL, NULL, 3, 0), |
800 | +(14, 2, 2, 'sp=month', 'Schedule', 'schedule_button', 'dashboard/scheduleview.png', 1, 0), |
801 | +(15, 2, 5, NULL, 'Layouts', 'playlist_button', 'dashboard/presentations.png', 2, 0), |
802 | +(16, 2, 7, NULL, 'Library', 'content_button', 'dashboard/content.png', 3, 0), |
803 | +(17, 2, 25, NULL, 'Templates', 'layout_button', 'dashboard/layouts.png', 4, 0), |
804 | +(18, 2, 17, NULL, 'Users', 'user_button', 'dashboard/users.png', 5, 0), |
805 | +(19, 2, 14, NULL, 'Settings', 'settings_button', 'dashboard/settings.png', 6, 0), |
806 | +(20, 2, 18, NULL, 'About', 'license_button', 'dashboard/license.png', 7, 0), |
807 | +(22, 9, 26, NULL, 'Report Fault', NULL, NULL, 3, 0), |
808 | +(23, 7, 27, NULL, 'Statistics', NULL, NULL, 3, 0), |
809 | +(24, 2, 28, 'manual/index.php', 'Manual', 'help_button', 'dashboard/help.png', 10, 1), |
810 | +(25, 6, 29, NULL, 'Resolutions', NULL, NULL, 4, 0), |
811 | +(26, 6, 25, NULL, 'Templates', NULL, NULL, 3, 0), |
812 | +(27, 7, 32, NULL, 'Display Groups', NULL, NULL, 2, 0), |
813 | +(28, 8, 33, NULL, 'Applications', NULL, NULL, 4, 0), |
814 | +(29, 5, 36, NULL, 'DataSets', NULL, NULL, 2, 0), |
815 | +(30, 5, 7, NULL, 'Media', NULL, NULL, 1, 0), |
816 | +(33, 6, 5, NULL, 'Layouts', NULL, NULL, 2, 0), |
817 | +(34, 1, 11, NULL, 'Displays', NULL, NULL, 4, 0), |
818 | +(35, 1, 16, NULL, 'Advanced', NULL, NULL, 6, 0), |
819 | +(36, 8, 24, NULL, 'Modules', NULL, NULL, 5, 0), |
820 | +(37, 6, 37, NULL, 'Campaigns', NULL, NULL, 1, 0), |
821 | +(38, 8, 38, NULL, 'Transitions', NULL, NULL, 6, 0), |
822 | +(39, 9, 30, NULL, 'Help Links', NULL, NULL, 6, 0); |
823 | + |
824 | + |
825 | +INSERT INTO `resolution` (`resolutionID`, `resolution`, `width`, `height`, `intended_width`, `intended_height`) VALUES |
826 | +(1, '4:3 Monitor', 800, 600, 1024, 768), |
827 | +(2, '3:2 Tv', 720, 480, 1440, 960), |
828 | +(3, '16:10 Widescreen Mon', 800, 500, 1680, 1050), |
829 | +(4, '16:9 HD Widescreen', 800, 450, 1920, 1080), |
830 | +(5, '3:4 Monitor', 600, 800, 768, 1024), |
831 | +(6, '2:3 Tv', 480, 720, 960, 1440), |
832 | +(7, '10:16 Widescreen', 500, 800, 1050, 1680), |
833 | +(8, '9:16 HD Widescreen', 450, 800, 1080, 1920); |
834 | |
835 | INSERT INTO `setting` (`settingid`, `setting`, `value`, `type`, `helptext`, `options`, `cat`, `userChange`) VALUES |
836 | (1, 'MEDIA_DEFAULT', 'private', 'dropdown', 'Media will be created with these settings. If public everyone will be able to view and use this media.', 'private|public', 'default', 1), |
837 | @@ -234,8 +245,9 @@ |
838 | (58, 'MODULE_CONFIG_LOCKED_CHECKB', 'Unchecked', 'dropdown', 'Is the module config locked? Useful for Service providers.', 'Checked|Unchecked', 'general', 0), |
839 | (59, 'LIBRARY_SIZE_LIMIT_KB', '0', 'text', 'The Limit for the Library Size in KB', NULL, 'content', 0), |
840 | (60, 'MONTHLY_XMDS_TRANSFER_LIMIT_KB', '0', 'text', 'XMDS Transfer Limit in KB/month', NULL, 'general', 0), |
841 | -(61, 'DEFAULT_LANGUAGE', 'en_GB', 'text', 'The default language to use', NULL, 'general', 1); |
842 | - |
843 | +(61, 'DEFAULT_LANGUAGE', 'en_GB', 'text', 'The default language to use', NULL, 'general', 1), |
844 | +(62, 'TRANSITION_CONFIG_LOCKED_CHECKB', 'Unchecked', 'dropdown', 'Is the Transition config locked?', 'Checked|Unchecked', 'general', 0), |
845 | +(63, 'GLOBAL_THEME_NAME', 'default', 'text', 'The Theme to apply to all pages by default', NULL, 'general', 1); |
846 | |
847 | INSERT INTO `usertype` (`usertypeid`, `usertype`) VALUES |
848 | (1, 'Super Admin'), |
849 | @@ -299,3 +311,8 @@ |
850 | |
851 | INSERT INTO `lkusergroup` (`LkUserGroupID`, `GroupID`, `UserID`) VALUES |
852 | (10, 3, 1); |
853 | + |
854 | +INSERT INTO `transition` (`TransitionID`, `Transition`, `Code`, `HasDuration`, `HasDirection`, `AvailableAsIn`, `AvailableAsOut`) VALUES |
855 | +(1, 'Fade In', 'fadeIn', 1, 0, 0, 0), |
856 | +(2, 'Fade Out', 'fadeOut', 1, 0, 0, 0), |
857 | +(3, 'Fly', 'fly', 1, 1, 1, 0); |
858 | \ No newline at end of file |
859 | |
860 | === modified file 'server/install/master/structure.sql' |
861 | --- server/install/master/structure.sql 2013-02-02 15:29:45 +0000 |
862 | +++ server/install/master/structure.sql 2013-04-11 16:56:27 +0000 |
863 | @@ -117,7 +117,7 @@ |
864 | `Category` varchar(254) NOT NULL DEFAULT 'General', |
865 | `Link` varchar(254) NOT NULL, |
866 | PRIMARY KEY (`HelpID`) |
867 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=73 ; |
868 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=78 ; |
869 | |
870 | CREATE TABLE IF NOT EXISTS `layout` ( |
871 | `layoutID` int(11) NOT NULL AUTO_INCREMENT, |
872 | @@ -329,10 +329,11 @@ |
873 | `Class` varchar(50) DEFAULT NULL, |
874 | `Img` varchar(254) DEFAULT NULL, |
875 | `Sequence` smallint(6) NOT NULL DEFAULT '1', |
876 | + `External` tinyint(4) NOT NULL DEFAULT '0', |
877 | PRIMARY KEY (`MenuItemID`), |
878 | KEY `PageID` (`PageID`), |
879 | KEY `MenuID` (`MenuID`) |
880 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=38 ; |
881 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=40 ; |
882 | |
883 | CREATE TABLE IF NOT EXISTS `module` ( |
884 | `ModuleID` int(11) NOT NULL AUTO_INCREMENT, |
885 | @@ -434,13 +435,15 @@ |
886 | `pagegroupID` int(11) NOT NULL, |
887 | PRIMARY KEY (`pageID`), |
888 | KEY `pagegroupID` (`pagegroupID`) |
889 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Available Pages' AUTO_INCREMENT=38 ; |
890 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Available Pages' AUTO_INCREMENT=40 ; |
891 | |
892 | CREATE TABLE IF NOT EXISTS `resolution` ( |
893 | `resolutionID` int(11) NOT NULL AUTO_INCREMENT, |
894 | `resolution` varchar(20) NOT NULL, |
895 | `width` smallint(6) NOT NULL, |
896 | `height` smallint(6) NOT NULL, |
897 | + `intended_width` smallint(6) NOT NULL, |
898 | + `intended_height` smallint(6) NOT NULL, |
899 | PRIMARY KEY (`resolutionID`) |
900 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Supported Resolutions' AUTO_INCREMENT=9 ; |
901 | |
902 | @@ -532,16 +535,28 @@ |
903 | KEY `userID` (`userID`) |
904 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Templates for use on Layouts' AUTO_INCREMENT=9 ; |
905 | |
906 | +CREATE TABLE IF NOT EXISTS `transition` ( |
907 | + `TransitionID` int(11) NOT NULL AUTO_INCREMENT, |
908 | + `Transition` varchar(254) NOT NULL, |
909 | + `Code` varchar(50) NOT NULL, |
910 | + `HasDuration` tinyint(4) NOT NULL, |
911 | + `HasDirection` tinyint(4) NOT NULL, |
912 | + `AvailableAsIn` tinyint(4) NOT NULL, |
913 | + `AvailableAsOut` tinyint(4) NOT NULL, |
914 | + PRIMARY KEY (`TransitionID`) |
915 | +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; |
916 | + |
917 | CREATE TABLE IF NOT EXISTS `user` ( |
918 | `UserID` int(11) NOT NULL AUTO_INCREMENT, |
919 | `usertypeid` int(8) NOT NULL, |
920 | - `UserName` varchar(15) CHARACTER SET latin1 NOT NULL, |
921 | - `UserPassword` varchar(32) CHARACTER SET latin1 NOT NULL, |
922 | + `UserName` varchar(15) NOT NULL, |
923 | + `UserPassword` varchar(128) NOT NULL, |
924 | `loggedin` tinyint(1) NOT NULL DEFAULT '0', |
925 | `lastaccessed` datetime DEFAULT NULL, |
926 | - `email` varchar(50) CHARACTER SET latin1 DEFAULT NULL COMMENT 'The users email address', |
927 | + `email` varchar(50) DEFAULT NULL COMMENT 'The users email address', |
928 | `homepage` varchar(254) NOT NULL DEFAULT 'dashboard.php' COMMENT 'The users homepage', |
929 | `Retired` tinyint(4) NOT NULL DEFAULT '0', |
930 | + `CSPRNG` tinyint(4) NOT NULL DEFAULT '0', |
931 | PRIMARY KEY (`UserID`), |
932 | KEY `usertypeid` (`usertypeid`) |
933 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ; |
934 | |
935 | === modified file 'server/lib/app/app_functions.php' |
936 | --- server/lib/app/app_functions.php 2013-03-04 22:01:30 +0000 |
937 | +++ server/lib/app/app_functions.php 2013-04-11 16:56:27 +0000 |
938 | @@ -40,6 +40,14 @@ |
939 | $_SESSION['message'] = $message; |
940 | } |
941 | |
942 | +function getMessage() { |
943 | + $message = Kit::GetParam('message', _SESSION, _STRING, ''); |
944 | + |
945 | + unset($_SESSION['message']); |
946 | + |
947 | + return $message; |
948 | +} |
949 | + |
950 | // Returns a drop down list based on the provided SQL - the ID should be the first field, and the name the second |
951 | function dropdownlist($SQL, $list_name, $selected = "", $callback = "", $flat_list = false, $checkPermissions = false, $userid = "", $permissionLevel = "see", $useQueryId = false) { |
952 | global $db; |
953 | @@ -285,7 +293,7 @@ |
954 | for($k=0; $k<6; $k++) |
955 | { |
956 | $c = $cs[$i] .$cs[$j] .$cs[$k]; |
957 | - $colors[] = array('colorid' => $c, 'color' => '#' . $c); |
958 | + $colors[] = array('colorid' => $c, 'color' => '#' . $c, 'style' => 'background-color:#' . $c . ';color:#' . $c); |
959 | } |
960 | } |
961 | } |
962 | |
963 | === modified file 'server/lib/app/debug.class.php' |
964 | --- server/lib/app/debug.class.php 2010-05-11 19:50:54 +0000 |
965 | +++ server/lib/app/debug.class.php 2013-04-11 16:56:27 +0000 |
966 | @@ -118,7 +118,7 @@ |
967 | $from = Config::GetSetting($db, "mail_from"); |
968 | if ($from == "") return true; |
969 | |
970 | - $subject = "Error message from Xibo"; |
971 | + $subject = "Error message from Digital Signage System"; |
972 | $message = wordwrap("$errmsg\n$err"); |
973 | |
974 | $headers = "From: $from" . "\r\n" . "Reply-To: $from" . "\r\n" . |
975 | |
976 | === modified file 'server/lib/app/responsemanager.class.php' |
977 | --- server/lib/app/responsemanager.class.php 2013-02-24 18:52:30 +0000 |
978 | +++ server/lib/app/responsemanager.class.php 2013-04-11 16:56:27 +0000 |
979 | @@ -1,7 +1,7 @@ |
980 | <?php |
981 | /* |
982 | * Xibo - Digitial Signage - http://www.xibo.org.uk |
983 | - * Copyright (C) 2006-2012 Daniel Garner |
984 | + * Copyright (C) 2006-2013 Daniel Garner |
985 | * |
986 | * This file is part of Xibo. |
987 | * |
988 | @@ -32,9 +32,9 @@ |
989 | |
990 | public $sortable; |
991 | public $sortingDiv; |
992 | - public $paging; |
993 | - public $pageSize; |
994 | - public $pageNumber; |
995 | + public $paging; |
996 | + public $pageSize; |
997 | + public $pageNumber; |
998 | public $initialSortColumn; |
999 | public $initialSortOrder; |
1000 | |
1001 | @@ -50,12 +50,13 @@ |
1002 | public $refresh; |
1003 | public $refreshLocation; |
1004 | public $focusInFirstInput; |
1005 | - public $appendHiddenSubmit; |
1006 | + public $appendHiddenSubmit; |
1007 | + public $modal; |
1008 | |
1009 | public $login; |
1010 | public $clockUpdate; |
1011 | |
1012 | - public $uniqueReference; |
1013 | + public $uniqueReference; |
1014 | |
1015 | public function __construct() |
1016 | { |
1017 | @@ -73,6 +74,7 @@ |
1018 | $this->pageNumber = 0; |
1019 | $this->initialSortColumn = 1; |
1020 | $this->initialSortOrder = 1; |
1021 | + $this->modal = false; |
1022 | |
1023 | return true; |
1024 | } |
1025 | @@ -259,6 +261,7 @@ |
1026 | $response['refresh'] = $this->refresh; |
1027 | $response['refreshLocation']= $this->refreshLocation; |
1028 | $response['focusInFirstInput']= $this->focusInFirstInput; |
1029 | + $response['modal'] = $this->modal; |
1030 | |
1031 | // Login |
1032 | $response['login'] = $this->login; |
1033 | |
1034 | === modified file 'server/lib/app/session.class.php' |
1035 | --- server/lib/app/session.class.php 2012-09-27 14:04:35 +0000 |
1036 | +++ server/lib/app/session.class.php 2013-04-11 16:56:27 +0000 |
1037 | @@ -76,11 +76,10 @@ |
1038 | $this->gc($this->max_lifetime); |
1039 | |
1040 | // Get this session |
1041 | - $SQL = " SELECT session_data, IsExpired, SecurityToken FROM session "; |
1042 | + $SQL = " SELECT session_data, IsExpired, SecurityToken, UserAgent FROM session "; |
1043 | $SQL .= " WHERE session_id = '%s' "; |
1044 | - $SQL .= " AND UserAgent = '%s' "; |
1045 | |
1046 | - $SQL = sprintf($SQL, $db->escape_string($key), $db->escape_string($userAgent)); |
1047 | + $SQL = sprintf($SQL, $db->escape_string($key)); |
1048 | |
1049 | $result = $db->query($SQL); |
1050 | |
1051 | @@ -88,6 +87,15 @@ |
1052 | { |
1053 | // Get the row |
1054 | $row = $db->get_row($result); |
1055 | + |
1056 | + // What happens if the UserAgent has changed? |
1057 | + if ($row[3] != $userAgent) { |
1058 | + // Make sure we are logged out (delete all data) |
1059 | + $db->query(sprintf("DELETE FROM session WHERE session_id = '%s' ", $db->escape_string($key))); |
1060 | + |
1061 | + $empty = ''; |
1062 | + return settype($empty, "string"); |
1063 | + } |
1064 | |
1065 | // We have the Key and the Remote Address. |
1066 | if ($securityToken == null) |
1067 | |
1068 | === modified file 'server/lib/app/thememanager.class.php' |
1069 | --- server/lib/app/thememanager.class.php 2013-03-04 20:20:04 +0000 |
1070 | +++ server/lib/app/thememanager.class.php 2013-04-11 16:56:27 +0000 |
1071 | @@ -31,6 +31,7 @@ |
1072 | private $name = ''; |
1073 | private $pageName = ''; |
1074 | private $vars = null; |
1075 | + private $config = null; |
1076 | |
1077 | public function __construct(database $db, user $user) { |
1078 | |
1079 | @@ -52,17 +53,24 @@ |
1080 | // Store the theme name for later |
1081 | $this->name = $globalTheme; |
1082 | |
1083 | - static::$instance = $this; |
1084 | + // Get config |
1085 | + if (!file_exists('theme/' . $this->name . '/config.php')) |
1086 | + throw new Exception(__('The theme "%s" config file does not exist', $globalTheme)); |
1087 | + |
1088 | + require_once('theme/' . $this->name . '/config.php'); |
1089 | + $this->config = $config; |
1090 | + |
1091 | + self::$instance = $this; |
1092 | } |
1093 | |
1094 | /** |
1095 | * GetInstance of Theme |
1096 | */ |
1097 | private static function GetInstance() { |
1098 | - if (!isset(static::$instance)) |
1099 | + if (!isset(self::$instance)) |
1100 | throw new Exception(__("Theme not initialised")); |
1101 | |
1102 | - return static::$instance; |
1103 | + return self::$instance; |
1104 | } |
1105 | |
1106 | /** |
1107 | @@ -113,11 +121,31 @@ |
1108 | |
1109 | // See if we have the requested file in the theme folder |
1110 | if (file_exists('theme/' . $theme->name . '/img/' . $item)) { |
1111 | - return '<img ' . (($class != '') ? $class : '') . ' src="theme/' . $theme->name . '/img/' . $item . '" />'; |
1112 | - } |
1113 | - // If not, then use the default folder |
1114 | - elseif (file_exists('theme/default/img/' . $item)) { |
1115 | - return '<img ' . (($class != '') ? $class : '') . ' src="theme/default/img/' . $item . '" />'; |
1116 | + return '<img ' . (($class != '') ? 'class="' . $class . '"' : '') . ' src="theme/' . $theme->name . '/img/' . $item . '" />'; |
1117 | + } |
1118 | + // If not, then use the default folder |
1119 | + elseif (file_exists('theme/default/img/' . $item)) { |
1120 | + return '<img ' . (($class != '') ? 'class="' . $class . '"' : '') . ' src="theme/default/img/' . $item . '" />'; |
1121 | + } |
1122 | + else |
1123 | + return ''; |
1124 | + } |
1125 | + |
1126 | + /** |
1127 | + * Get an image URL |
1128 | + * @param [string] $item the image |
1129 | + */ |
1130 | + public static function ImageUrl($item) { |
1131 | + |
1132 | + $theme = Theme::GetInstance(); |
1133 | + |
1134 | + // See if we have the requested file in the theme folder |
1135 | + if (file_exists('theme/' . $theme->name . '/img/' . $item)) { |
1136 | + return 'theme/' . $theme->name . '/img/' . $item; |
1137 | + } |
1138 | + // If not, then use the default folder |
1139 | + elseif (file_exists('theme/default/img/' . $item)) { |
1140 | + return 'theme/default/img/' . $item; |
1141 | } |
1142 | else |
1143 | return ''; |
1144 | @@ -171,6 +199,27 @@ |
1145 | return Theme::GetInstance()->dateManager->GetClock(); |
1146 | } |
1147 | |
1148 | + public static function ApplicationName() { |
1149 | + return Theme::GetInstance()->config['app_name']; |
1150 | + } |
1151 | + |
1152 | + public static function ThemeName() { |
1153 | + return Theme::GetInstance()->config['theme_name']; |
1154 | + } |
1155 | + |
1156 | + public static function ThemeFolder() { |
1157 | + return Theme::GetInstance()->name; |
1158 | + } |
1159 | + |
1160 | + public static function GetConfig($settingName) { |
1161 | + $theme = Theme::GetInstance(); |
1162 | + |
1163 | + if (isset($theme->config[$settingName])) |
1164 | + return $theme->config[$settingName]; |
1165 | + else |
1166 | + return ''; |
1167 | + } |
1168 | + |
1169 | /** |
1170 | * Get Menu |
1171 | * @param string $menu The Name of the Menu |
1172 | @@ -191,9 +240,17 @@ |
1173 | $item['class'] = Kit::ValidateParam($menuItem['Class'], _WORD); |
1174 | $item['title'] = __(Kit::ValidateParam($menuItem['Text'], _STRING)); |
1175 | $item['img'] = Kit::ValidateParam($menuItem['Img'], _STRING); |
1176 | + $item['external'] = Kit::ValidateParam($menuItem['External'], _INT); |
1177 | |
1178 | $item['selected'] = ($item['page'] == $theme->pageName); |
1179 | - $item['link'] = 'index.php?p=' . $item['page'] . '&' . $item['args']; |
1180 | + |
1181 | + if ($item['external'] == 0) { |
1182 | + $item['link'] = 'index.php?p=' . $item['page'] . '&' . $item['args']; |
1183 | + } |
1184 | + else { |
1185 | + $item['link'] = $item['args']; |
1186 | + } |
1187 | + |
1188 | $item['li'] = '<li class="' . $item['class'] . '"><a href="' . $item['link'] . '" class="' . $item['class'] . (($item['selected']) ? ' current' : '') . '">' . $item['title'] . '</a></li>'; |
1189 | |
1190 | $array[] = $item; |
1191 | @@ -213,14 +270,15 @@ |
1192 | * @param string Key for item class |
1193 | * @return string |
1194 | */ |
1195 | - public static function SelectList($listName, $listValues, $idColumn, $nameColumn, $selectedId = '', $callBack = '', $classColumn = '') |
1196 | + public static function SelectList($listName, $listValues, $idColumn, $nameColumn, $selectedId = null, $callBack = '', $classColumn = '', $styleColumn = '') |
1197 | { |
1198 | $list = '<select name="' . $listName . '" id="' . $listName . '"' . $callBack . '>'; |
1199 | |
1200 | foreach ($listValues as $listItem) |
1201 | { |
1202 | $class = ($classColumn == '') ? '' : 'class="' . $listItem[$classColumn] . '"'; |
1203 | - $list .= '<option ' . $class . ' value="' . $listItem[$idColumn] . '" ' . (($listItem[$idColumn] === $selectedId) ? 'selected' : '') . '>' . $listItem[$nameColumn] . '</option>'; |
1204 | + $style = ($styleColumn == '') ? '' : 'style="' . $listItem[$styleColumn] . '"'; |
1205 | + $list .= '<option ' . $style . ' ' . $class . ' value="' . $listItem[$idColumn] . '" ' . (($listItem[$idColumn] == $selectedId) ? 'selected' : '') . '>' . $listItem[$nameColumn] . '</option>'; |
1206 | } |
1207 | |
1208 | $list .= '</select>'; |
1209 | |
1210 | === modified file 'server/lib/data/dataset.data.class.php' |
1211 | --- server/lib/data/dataset.data.class.php 2013-02-02 16:22:59 +0000 |
1212 | +++ server/lib/data/dataset.data.class.php 2013-04-11 16:56:27 +0000 |
1213 | @@ -231,7 +231,14 @@ |
1214 | foreach ($filter as $filterPair) |
1215 | { |
1216 | $filterPair = explode('=', $filterPair); |
1217 | - $where .= sprintf(" AND %s = '%s' ", $filterPair[0], $db->escape_string($filterPair[1])); |
1218 | + |
1219 | + // Validate filter pair 1 doesn't contain any disallowed words |
1220 | + $disallowedKeywords = array('AND', 'OR'); |
1221 | + |
1222 | + if (in_array($filterPair[1], $disallowedKeywords)) |
1223 | + continue; |
1224 | + |
1225 | + $where .= sprintf(" AND %s = %s ", $filterPair[0], $filterPair[1]); |
1226 | } |
1227 | |
1228 | $SQL .= $where . ' '; |
1229 | |
1230 | === modified file 'server/lib/data/datasetcolumn.data.class.php' |
1231 | --- server/lib/data/datasetcolumn.data.class.php 2013-02-02 16:22:59 +0000 |
1232 | +++ server/lib/data/datasetcolumn.data.class.php 2013-04-11 16:56:27 +0000 |
1233 | @@ -22,12 +22,12 @@ |
1234 | |
1235 | class DataSetColumn extends Data |
1236 | { |
1237 | - public function Add($dataSetId, $heading, $dataTypeId, $listContent, $columnOrder = '') |
1238 | + public function Add($dataSetId, $heading, $dataTypeId, $listContent, $columnOrder = 0) |
1239 | { |
1240 | $db =& $this->db; |
1241 | |
1242 | // Is the column order provided? |
1243 | - if ($columnOrder == '') |
1244 | + if ($columnOrder == 0) |
1245 | { |
1246 | $SQL = ""; |
1247 | $SQL .= "SELECT IFNULL(MAX(ColumnOrder), 1) AS ColumnOrder "; |
1248 | |
1249 | === modified file 'server/lib/data/layout.data.class.php' |
1250 | --- server/lib/data/layout.data.class.php 2013-03-04 22:01:30 +0000 |
1251 | +++ server/lib/data/layout.data.class.php 2013-04-11 16:56:27 +0000 |
1252 | @@ -230,7 +230,7 @@ |
1253 | // Notify (dont error) |
1254 | Kit::ClassLoader('display'); |
1255 | $displayObject = new Display($db); |
1256 | - $displayObject->NotifyDisplays($layoutId); |
1257 | + $displayObject->NotifyDisplays($campaignId); |
1258 | |
1259 | return true; |
1260 | } |
1261 | @@ -777,7 +777,7 @@ |
1262 | |
1263 | $region = new region($db); |
1264 | |
1265 | - if (!$region->EditBackground($layoutId, '#' . $color, $bg_image, $width, $height)) |
1266 | + if (!$region->EditBackground($layoutId, '#' . $color, $bg_image, $width, $height, $resolutionId)) |
1267 | { |
1268 | //there was an ERROR |
1269 | $response->SetError($region->errorMsg); |
1270 | |
1271 | === modified file 'server/lib/data/region.data.class.php' |
1272 | --- server/lib/data/region.data.class.php 2013-02-16 15:03:26 +0000 |
1273 | +++ server/lib/data/region.data.class.php 2013-04-11 16:56:27 +0000 |
1274 | @@ -75,11 +75,16 @@ |
1275 | return false; |
1276 | } |
1277 | |
1278 | - // Notify (dont error) |
1279 | - Kit::ClassLoader('display'); |
1280 | - $displayObject = new Display($db); |
1281 | - $displayObject->NotifyDisplays($layoutid); |
1282 | - |
1283 | + // Get the Campaign ID |
1284 | + Kit::ClassLoader('campaign'); |
1285 | + $campaign = new Campaign($db); |
1286 | + $campaignId = $campaign->GetCampaignId($layoutid); |
1287 | + |
1288 | + // Notify (dont error) |
1289 | + Kit::ClassLoader('display'); |
1290 | + $displayObject = new Display($db); |
1291 | + $displayObject->NotifyDisplays($campaignId); |
1292 | + |
1293 | return true; |
1294 | } |
1295 | |
1296 | @@ -470,7 +475,7 @@ |
1297 | return true; |
1298 | } |
1299 | |
1300 | - public function EditBackground($layoutid, $bg_color, $bg_image, $width, $height) |
1301 | + public function EditBackground($layoutid, $bg_color, $bg_image, $width, $height, $resolutionId) |
1302 | { |
1303 | $db =& $this->db; |
1304 | |
1305 | @@ -483,6 +488,7 @@ |
1306 | $xml->documentElement->setAttribute("bgcolor", $bg_color); |
1307 | $xml->documentElement->setAttribute('width', $width); |
1308 | $xml->documentElement->setAttribute('height', $height); |
1309 | + $xml->documentElement->setAttribute('resolutionid', $resolutionId); |
1310 | $xml->documentElement->setAttribute("schemaVersion", Config::Version($db, 'XlfVersion')); |
1311 | |
1312 | //Convert back to XML |
1313 | |
1314 | === modified file 'server/lib/data/userdata.data.class.php' |
1315 | --- server/lib/data/userdata.data.class.php 2012-04-16 12:05:26 +0000 |
1316 | +++ server/lib/data/userdata.data.class.php 2013-04-11 16:56:27 +0000 |
1317 | @@ -20,6 +20,18 @@ |
1318 | */ |
1319 | defined('XIBO') or die(__('Sorry, you are not allowed to directly access this page.<br /> Please press the back button in your browser.')); |
1320 | |
1321 | +// These constants may be changed without breaking existing hashes. |
1322 | +define("PBKDF2_HASH_ALGORITHM", "sha256"); |
1323 | +define("PBKDF2_ITERATIONS", 1000); |
1324 | +define("PBKDF2_SALT_BYTES", 24); |
1325 | +define("PBKDF2_HASH_BYTES", 24); |
1326 | + |
1327 | +define("HASH_SECTIONS", 4); |
1328 | +define("HASH_ALGORITHM_INDEX", 0); |
1329 | +define("HASH_ITERATION_INDEX", 1); |
1330 | +define("HASH_SALT_INDEX", 2); |
1331 | +define("HASH_PBKDF2_INDEX", 3); |
1332 | + |
1333 | class Userdata extends Data |
1334 | { |
1335 | public function __construct(database $db) |
1336 | @@ -37,12 +49,20 @@ |
1337 | */ |
1338 | public function ChangePassword($userId, $oldPassword, $newPassword, $retypedNewPassword, $forceChange = false) |
1339 | { |
1340 | + // Validate |
1341 | + if ($userId == 0) |
1342 | + return $this->SetError(26001, __('User not selected')); |
1343 | + |
1344 | // We can force the users password to change without having to provide the old one. |
1345 | // Is this a potential security hole - we must have validated that we are an admin to get to this point |
1346 | if (!$forceChange) |
1347 | { |
1348 | + // Get the stored hash |
1349 | + if (!$good_hash = $this->db->GetSingleValue(sprintf("SELECT UserPassword FROM `user` WHERE UserID = %d", $userId), 'UserPassword', _STRING)) |
1350 | + return $this->SetError(26000, __('Incorrect Password Provided')); |
1351 | + |
1352 | // Check the Old Password is correct |
1353 | - if ($this->db->GetCountOfRows(sprintf("SELECT UserId FROM `user` WHERE UserID = %d AND UserPassword = '%s'", $userId, md5($oldPassword))) == 0) |
1354 | + if ($this->validate_password($oldPassword, $good_hash) === false) |
1355 | return $this->SetError(26000, __('Incorrect Password Provided')); |
1356 | } |
1357 | |
1358 | @@ -54,8 +74,15 @@ |
1359 | if (!$this->TestPasswordAgainstPolicy($newPassword)) |
1360 | return false; |
1361 | |
1362 | + // Generate a new SALT and Password |
1363 | + $hash = $this->create_hash($newPassword); |
1364 | + |
1365 | + $SQL = sprintf("UPDATE `user` SET UserPassword = '%s', CSPRNG = 1 WHERE UserID = %d", $hash, $userId); |
1366 | + |
1367 | + Debug::LogEntry($this->db, 'audit', $SQL); |
1368 | + |
1369 | // Run the update |
1370 | - if (!$this->db->query(sprintf("UPDATE `user` SET UserPassword = '%s' WHERE UserID = %d", md5($newPassword), $userId))) |
1371 | + if (!$this->db->query($SQL)) |
1372 | { |
1373 | trigger_error($this->db->error()); |
1374 | return $this->SetError(25000, __('Could not edit Password')); |
1375 | @@ -84,5 +111,100 @@ |
1376 | |
1377 | return true; |
1378 | } |
1379 | + |
1380 | + /* |
1381 | + * Password hashing with PBKDF2. |
1382 | + * Author: havoc AT defuse.ca |
1383 | + * www: https://defuse.ca/php-pbkdf2.htm |
1384 | + */ |
1385 | + public function create_hash($password) |
1386 | + { |
1387 | + // format: algorithm:iterations:salt:hash |
1388 | + $salt = base64_encode(mcrypt_create_iv(PBKDF2_SALT_BYTES, MCRYPT_DEV_URANDOM)); |
1389 | + return PBKDF2_HASH_ALGORITHM . ":" . PBKDF2_ITERATIONS . ":" . $salt . ":" . |
1390 | + base64_encode($this->pbkdf2( |
1391 | + PBKDF2_HASH_ALGORITHM, |
1392 | + $password, |
1393 | + $salt, |
1394 | + PBKDF2_ITERATIONS, |
1395 | + PBKDF2_HASH_BYTES, |
1396 | + true |
1397 | + )); |
1398 | + } |
1399 | + |
1400 | + public function validate_password($password, $good_hash) |
1401 | + { |
1402 | + $params = explode(":", $good_hash); |
1403 | + if(count($params) < HASH_SECTIONS) |
1404 | + return false; |
1405 | + $pbkdf2 = base64_decode($params[HASH_PBKDF2_INDEX]); |
1406 | + return $this->slow_equals( |
1407 | + $pbkdf2, |
1408 | + $this->pbkdf2( |
1409 | + $params[HASH_ALGORITHM_INDEX], |
1410 | + $password, |
1411 | + $params[HASH_SALT_INDEX], |
1412 | + (int)$params[HASH_ITERATION_INDEX], |
1413 | + strlen($pbkdf2), |
1414 | + true |
1415 | + ) |
1416 | + ); |
1417 | + } |
1418 | + |
1419 | + // Compares two strings $a and $b in length-constant time. |
1420 | + public function slow_equals($a, $b) |
1421 | + { |
1422 | + $diff = strlen($a) ^ strlen($b); |
1423 | + for($i = 0; $i < strlen($a) && $i < strlen($b); $i++) |
1424 | + { |
1425 | + $diff |= ord($a[$i]) ^ ord($b[$i]); |
1426 | + } |
1427 | + return $diff === 0; |
1428 | + } |
1429 | + |
1430 | + /* |
1431 | + * PBKDF2 key derivation function as defined by RSA's PKCS #5: https://www.ietf.org/rfc/rfc2898.txt |
1432 | + * $algorithm - The hash algorithm to use. Recommended: SHA256 |
1433 | + * $password - The password. |
1434 | + * $salt - A salt that is unique to the password. |
1435 | + * $count - Iteration count. Higher is better, but slower. Recommended: At least 1000. |
1436 | + * $key_length - The length of the derived key in bytes. |
1437 | + * $raw_output - If true, the key is returned in raw binary format. Hex encoded otherwise. |
1438 | + * Returns: A $key_length-byte key derived from the password and salt. |
1439 | + * |
1440 | + * Test vectors can be found here: https://www.ietf.org/rfc/rfc6070.txt |
1441 | + * |
1442 | + * This implementation of PBKDF2 was originally created by https://defuse.ca |
1443 | + * With improvements by http://www.variations-of-shadow.com |
1444 | + */ |
1445 | + public function pbkdf2($algorithm, $password, $salt, $count, $key_length, $raw_output = false) |
1446 | + { |
1447 | + $algorithm = strtolower($algorithm); |
1448 | + if(!in_array($algorithm, hash_algos(), true)) |
1449 | + die('PBKDF2 ERROR: Invalid hash algorithm.'); |
1450 | + if($count <= 0 || $key_length <= 0) |
1451 | + die('PBKDF2 ERROR: Invalid parameters.'); |
1452 | + |
1453 | + $hash_length = strlen(hash($algorithm, "", true)); |
1454 | + $block_count = ceil($key_length / $hash_length); |
1455 | + |
1456 | + $output = ""; |
1457 | + for($i = 1; $i <= $block_count; $i++) { |
1458 | + // $i encoded as 4 bytes, big endian. |
1459 | + $last = $salt . pack("N", $i); |
1460 | + // first iteration |
1461 | + $last = $xorsum = hash_hmac($algorithm, $last, $password, true); |
1462 | + // perform the other $count - 1 iterations |
1463 | + for ($j = 1; $j < $count; $j++) { |
1464 | + $xorsum ^= ($last = hash_hmac($algorithm, $last, $password, true)); |
1465 | + } |
1466 | + $output .= $xorsum; |
1467 | + } |
1468 | + |
1469 | + if($raw_output) |
1470 | + return substr($output, 0, $key_length); |
1471 | + else |
1472 | + return bin2hex(substr($output, 0, $key_length)); |
1473 | + } |
1474 | } |
1475 | ?> |
1476 | |
1477 | === modified file 'server/lib/include.php' |
1478 | --- server/lib/include.php 2013-03-04 22:01:30 +0000 |
1479 | +++ server/lib/include.php 2013-04-11 16:56:27 +0000 |
1480 | @@ -20,6 +20,8 @@ |
1481 | */ |
1482 | defined('XIBO') or die("Sorry, you are not allowed to directly access this page.<br /> Please press the back button in your browser."); |
1483 | |
1484 | +define('WEBSITE_VERSION', 62); |
1485 | + |
1486 | // No errors reported until we read the settings from the DB |
1487 | error_reporting(E_ALL); |
1488 | ini_set('display_errors', 1); |
1489 | @@ -92,12 +94,12 @@ |
1490 | |
1491 | if (!$db->connect_db($dbhost, $dbuser, $dbpass)) |
1492 | { |
1493 | - die('Xibo has a database connection problem.'); |
1494 | + die('Database connection problem.'); |
1495 | } |
1496 | |
1497 | if (!$db->select_db($dbname)) |
1498 | { |
1499 | - die('Xibo has a database connection problem.'); |
1500 | + die('Database connection problem.'); |
1501 | } |
1502 | |
1503 | date_default_timezone_set(Config::GetSetting($db, "defaultTimezone")); |
1504 | @@ -109,8 +111,8 @@ |
1505 | Config::Version($db); |
1506 | |
1507 | // Does the version in the DB match the version of the code? |
1508 | -if (DBVERSION != '60') |
1509 | - die(sprintf('Incompatible database version detected. Please ensure your database and website versions match. You have %d and the website for %d', DBVERSION, 60)); |
1510 | +if (DBVERSION != WEBSITE_VERSION) |
1511 | + die(sprintf('Incompatible database version detected. Please ensure your database and website versions match. You have database %d and website %d', DBVERSION, WEBSITE_VERSION)); |
1512 | |
1513 | // What is the production mode of the server? |
1514 | if(Config::GetSetting($db, 'SERVER_MODE') == 'Test') ini_set('display_errors', 1); |
1515 | |
1516 | === modified file 'server/lib/modules/module.class.php' |
1517 | --- server/lib/modules/module.class.php 2013-03-04 22:01:30 +0000 |
1518 | +++ server/lib/modules/module.class.php 2013-04-11 16:56:27 +0000 |
1519 | @@ -487,7 +487,7 @@ |
1520 | |
1521 | // Messages |
1522 | $msgTitle = __('Return to the Region Options'); |
1523 | - $msgWarn = __('Are you sure you want to remove this item from Xibo?'); |
1524 | + $msgWarn = __('Are you sure you want to remove this item?'); |
1525 | $msgWarnLost = __('It will be lost'); |
1526 | $msgYes = __('Yes'); |
1527 | $msgNo = __('No'); |
1528 | @@ -502,7 +502,7 @@ |
1529 | <p>$msgWarn <span class="required">$msgWarnLost</span>.</p> |
1530 | </form> |
1531 | END; |
1532 | - $this->response->AddButton(__('No'), 'XiboFormRender("index.php?p=layout&layoutid=' . $layoutid . '®ionid=' . $regionid . '&q=RegionOptions")'); |
1533 | + $this->response->AddButton(__('No'), 'XiboFormRender("index.php?p=timeline&layoutid=' . $layoutid . '®ionid=' . $regionid . '&q=RegionOptions")'); |
1534 | $this->response->AddButton(__('Yes'), '$("#MediaDeleteForm").submit()'); |
1535 | } |
1536 | else |
1537 | @@ -1689,7 +1689,7 @@ |
1538 | $response->AddButton(__('Help'), 'XiboHelpRender("' . (($this->layoutid != 0) ? $helpManager->Link('LayoutMedia', 'Permissions') : $helpManager->Link('Media', 'Permissions')) . '")'); |
1539 | |
1540 | if ($this->assignedMedia) { |
1541 | - $response->AddButton(__('Cancel'), 'XiboSwapDialog("index.php?p=layout&layoutid=' . $this->layoutid . '®ionid=' . $this->regionid . '&q=RegionOptions")'); |
1542 | + $response->AddButton(__('Cancel'), 'XiboSwapDialog("index.php?p=timeline&layoutid=' . $this->layoutid . '®ionid=' . $this->regionid . '&q=RegionOptions")'); |
1543 | } |
1544 | else { |
1545 | $response->AddButton(__('Cancel'), 'XiboDialogClose()'); |
1546 | @@ -1938,7 +1938,7 @@ |
1547 | |
1548 | // Decide where the cancel button will take us |
1549 | if ($this->showRegionOptions) |
1550 | - $this->response->AddButton(__('Cancel'), 'XiboSwapDialog("index.php?p=layout&layoutid=' . $this->layoutid . '®ionid=' . $this->regionid . '&q=RegionOptions")'); |
1551 | + $this->response->AddButton(__('Cancel'), 'XiboSwapDialog("index.php?p=timeline&layoutid=' . $this->layoutid . '®ionid=' . $this->regionid . '&q=RegionOptions")'); |
1552 | else |
1553 | $this->response->AddButton(__('Cancel'), 'XiboDialogClose()'); |
1554 | |
1555 | @@ -2001,7 +2001,7 @@ |
1556 | { |
1557 | // We want to load a new form |
1558 | $this->response->loadForm = true; |
1559 | - $this->response->loadFormUri = 'index.php?p=layout&layoutid=' . $this->layoutid . '®ionid=' . $this->regionid . '&q=RegionOptions'; |
1560 | + $this->response->loadFormUri = 'index.php?p=timeline&layoutid=' . $this->layoutid . '®ionid=' . $this->regionid . '&q=RegionOptions'; |
1561 | } |
1562 | |
1563 | return $this->response; |
1564 | |
1565 | === modified file 'server/lib/pages/admin.class.php' |
1566 | --- server/lib/pages/admin.class.php 2013-03-04 22:01:30 +0000 |
1567 | +++ server/lib/pages/admin.class.php 2013-04-11 16:56:27 +0000 |
1568 | @@ -101,7 +101,7 @@ |
1569 | |
1570 | if (!is_writable($value . 'temp')) |
1571 | { |
1572 | - trigger_error(__('The Library Location you have picked is not writable to the Xibo Server.'), E_USER_ERROR); |
1573 | + trigger_error(__('The Library Location you have picked is not writable'), E_USER_ERROR); |
1574 | } |
1575 | } |
1576 | |
1577 | @@ -560,7 +560,7 @@ |
1578 | $mail_to = Kit::ValidateParam(Config::GetSetting($db, "mail_to"),_PASSWORD); |
1579 | $mail_from = Kit::ValidateParam(Config::GetSetting($db, "mail_from"),_PASSWORD); |
1580 | $subject = __('Email Test'); |
1581 | - $body = __('Test email sent from Xibo'); |
1582 | + $body = __('Test email sent'); |
1583 | $headers = sprintf("From: %s",$mail_from); |
1584 | |
1585 | $output = sprintf(__('Sending test email to %s.'),$mail_to); |
1586 | @@ -593,7 +593,7 @@ |
1587 | |
1588 | $form = ''; |
1589 | $form .= '<p>' . __('This will create a dump file of your database that you can restore later using the import functionality.') . '</p>'; |
1590 | - $form .= '<p>' . __('You should also manually take a backup of your Xibo library.') . '</p>'; |
1591 | + $form .= '<p>' . __('You should also manually take a backup of your library.') . '</p>'; |
1592 | $form .= '<p>' . __('Please note: The folder location for mysqldump must be available in your path environment variable for this to work and the php "exec" command must be enabled.') . '</p>'; |
1593 | $form .= '<a href="index.php?p=admin&q=BackupDatabase" title="' . __('Export Database. Right click to save as.') . '">' . __('Click here to Export') . '</a>'; |
1594 | |
1595 | |
1596 | === modified file 'server/lib/pages/content.class.php' |
1597 | --- server/lib/pages/content.class.php 2013-03-04 20:20:04 +0000 |
1598 | +++ server/lib/pages/content.class.php 2013-04-11 16:56:27 +0000 |
1599 | @@ -206,82 +206,37 @@ |
1600 | */ |
1601 | function LibraryAssignForm() |
1602 | { |
1603 | - $db =& $this->db; |
1604 | - $user =& $this->user; |
1605 | - $response = new ResponseManager(); |
1606 | - $formMgr = new FormManager($db, $user); |
1607 | - $helpManager = new HelpManager($db, $user); |
1608 | - |
1609 | - $mediatype = ''; |
1610 | - $name = ''; |
1611 | - |
1612 | - if (isset($_SESSION['content']['mediatype'])) $mediatype = $_SESSION['content']['mediatype']; |
1613 | - |
1614 | - //Media Type drop down list |
1615 | - $sql = "SELECT 'all', 'all' "; |
1616 | - $sql .= "UNION "; |
1617 | - $sql .= "SELECT type, type "; |
1618 | - $sql .= "FROM media WHERE 1=1 "; |
1619 | - $sql .= " GROUP BY type "; |
1620 | - |
1621 | - $type_list = $formMgr->DropDown($sql, 'type', $mediatype); |
1622 | - |
1623 | - //Input vars |
1624 | + $db =& $this->db; |
1625 | + $user =& $this->user; |
1626 | + $response = new ResponseManager(); |
1627 | + |
1628 | + $id = uniqid(); |
1629 | + Theme::Set('id', $id); |
1630 | + Theme::Set('form_meta', '<input type="hidden" name="p" value="content"><input type="hidden" name="q" value="LibraryAssignView">'); |
1631 | + Theme::Set('pager', ResponseManager::Pager($id)); |
1632 | + |
1633 | + // Module types filter |
1634 | + $types = $db->GetArray("SELECT Module AS moduleid, Name AS module FROM `module` WHERE RegionSpecific = 0 AND Enabled = 1 ORDER BY 2"); |
1635 | + array_unshift($types, array('moduleid' => '', 'module' => 'All')); |
1636 | + Theme::Set('module_field_list', $types); |
1637 | + |
1638 | + // Call to render the template |
1639 | + $output = Theme::RenderReturn('library_form_assign'); |
1640 | + |
1641 | + // Input vars |
1642 | $layoutId = Kit::GetParam('layoutid', _REQUEST, _INT); |
1643 | $regionId = Kit::GetParam('regionid', _REQUEST, _STRING); |
1644 | |
1645 | - // Messages |
1646 | - $msgName = __('Name'); |
1647 | - $msgType = __('Type'); |
1648 | - |
1649 | - $form = <<<HTML |
1650 | - <form> |
1651 | - <input type="hidden" name="p" value="content"> |
1652 | - <input type="hidden" name="q" value="LibraryAssignView"> |
1653 | - <table> |
1654 | - <tr> |
1655 | - <td>$msgName</td> |
1656 | - <td><input type="text" name="name" id="name" value="$name"></td> |
1657 | - <td>$msgType</td> |
1658 | - <td>$type_list</td> |
1659 | - </tr> |
1660 | - </table> |
1661 | - </form> |
1662 | -HTML; |
1663 | - |
1664 | - $id = uniqid(); |
1665 | - |
1666 | - $msgAssignBox = __('Media to Assign'); |
1667 | - $msgInfoMessage = __('Drag or double click to move items between lists'); |
1668 | - |
1669 | - $xiboGrid = <<<HTML |
1670 | - <div class="XiboGrid LibraryAssign" id="$id"> |
1671 | - <div class="XiboFilter"> |
1672 | - $form |
1673 | - </div> |
1674 | - <center>$msgInfoMessage</center> |
1675 | - <div class="XiboData LibraryAssignLeftSortableList connectedlist"> |
1676 | - |
1677 | - </div> |
1678 | - <div class="LibraryAssignRightSortableList connectedlist"> |
1679 | - <h3>$msgAssignBox</h3> |
1680 | - <ul id="LibraryAssignSortable" class="connectedSortable"> |
1681 | - |
1682 | - </ul> |
1683 | - </div> |
1684 | - </div> |
1685 | -HTML; |
1686 | - |
1687 | // Construct the Response |
1688 | - $response->html = $xiboGrid; |
1689 | - $response->success = true; |
1690 | - $response->dialogSize = true; |
1691 | - $response->dialogWidth = '780px'; |
1692 | + $response->html = $output; |
1693 | + $response->success = true; |
1694 | + $response->dialogSize = true; |
1695 | + $response->dialogWidth = '780px'; |
1696 | $response->dialogHeight = '580px'; |
1697 | - $response->dialogTitle = __('Assign an item from the Library'); |
1698 | + $response->dialogTitle = __('Assign an item from the Library'); |
1699 | |
1700 | - $response->AddButton(__('Help'), 'XiboHelpRender("' . $helpManager->Link('Library', 'Assign') . '")'); |
1701 | - $response->AddButton(__('Cancel'), 'XiboSwapDialog("index.php?p=layout&layoutid=' . $layoutId . '®ionid=' . $regionId . '&q=RegionOptions")'); |
1702 | + $response->AddButton(__('Help'), 'XiboHelpRender("' . HelpManager::Link('Library', 'Assign') . '")'); |
1703 | + $response->AddButton(__('Cancel'), 'XiboSwapDialog("index.php?p=timeline&layoutid=' . $layoutId . '®ionid=' . $regionId . '&q=RegionOptions")'); |
1704 | $response->AddButton(__('Assign'), 'LibraryAssignSubmit("' . $layoutId . '","' . $regionId . '")'); |
1705 | |
1706 | $response->Respond(); |
1707 | @@ -298,73 +253,27 @@ |
1708 | $response = new ResponseManager(); |
1709 | |
1710 | //Input vars |
1711 | - $mediatype = Kit::GetParam('type', _POST, _STRING, 'all'); |
1712 | - $name = Kit::GetParam('name', _POST, _STRING, 'all'); |
1713 | - |
1714 | - setSession('content', 'mediatype', $mediatype); |
1715 | - setSession('content', 'name', $name); |
1716 | - |
1717 | - // query to get all media that is in the database ready to display |
1718 | - $SQL = ""; |
1719 | - $SQL .= "SELECT media.mediaID, "; |
1720 | - $SQL .= " media.name, "; |
1721 | - $SQL .= " media.type, "; |
1722 | - $SQL .= " media.duration "; |
1723 | - $SQL .= " FROM media "; |
1724 | - $SQL .= " WHERE retired = 0 AND isEdited = 0 "; |
1725 | - |
1726 | - // Filter on media type |
1727 | - if($mediatype != 'all') |
1728 | - $SQL.= sprintf(" AND media.type = '%s'", $mediatype); |
1729 | - |
1730 | - // Filter on name |
1731 | - if ($name != 'all') |
1732 | - { |
1733 | - // convert into a space delimited array |
1734 | - $names = explode(' ', $name); |
1735 | - |
1736 | - foreach($names as $searchName) |
1737 | - { |
1738 | - // Not like, or like? |
1739 | - if (substr($searchName, 0, 1) == '-') |
1740 | - $SQL.= " AND (media.name NOT LIKE '%" . sprintf('%s', ltrim($db->escape_string($searchName), '-')) . "%') "; |
1741 | - else |
1742 | - $SQL.= " AND (media.name LIKE '%" . sprintf('%s', $db->escape_string($searchName)) . "%') "; |
1743 | - } |
1744 | - } |
1745 | - |
1746 | - $SQL .= " ORDER BY media.name "; |
1747 | - |
1748 | - if(!$results = $db->query($SQL)) |
1749 | - { |
1750 | - trigger_error($db->error()); |
1751 | - trigger_error(__('Cannot get list of media in the library'), E_USER_ERROR); |
1752 | - } |
1753 | - |
1754 | - $response->html = '<h3>' . __('Library') . '</h3>'; |
1755 | - $response->html .= '<ul id="LibraryAvailableSortable" class="connectedSortable">'; |
1756 | - |
1757 | - // while loop |
1758 | - while ($row = $db->get_row($results)) |
1759 | - { |
1760 | - $mediaId = Kit::ValidateParam($row[0], _INT); |
1761 | - $media = Kit::ValidateParam($row[1], _STRING); |
1762 | - $mediatype = Kit::ValidateParam($row[2], _WORD); |
1763 | - $length = sec2hms(Kit::ValidateParam($row[3], _DOUBLE)); |
1764 | - |
1765 | - // Permissions |
1766 | - $auth = $this->user->MediaAuth($mediaId, true); |
1767 | - |
1768 | - // Is this user allowed to see this |
1769 | - if ($auth->view) |
1770 | - $response->html .= '<li class="li-sortable" id="MediaID_' . $mediaId . '">' . $media . ' (' . $mediatype . ') - Duration (sec): ' . $length . '</li>'; |
1771 | - } |
1772 | - |
1773 | - //table ending |
1774 | - $response->html .= '</ul>'; |
1775 | - |
1776 | - // Construct the Response |
1777 | - $response->success = true; |
1778 | + $mediatype = Kit::GetParam('filter_type', _POST, _STRING); |
1779 | + $name = Kit::GetParam('filter_name', _POST, _STRING); |
1780 | + |
1781 | + // Get a list of media |
1782 | + $mediaList = $user->MediaList($mediatype, $name); |
1783 | + |
1784 | + $rows = array(); |
1785 | + |
1786 | + // Add some extra information |
1787 | + foreach ($mediaList as $row) { |
1788 | + |
1789 | + $row['duration_text'] = sec2hms($row['duration']); |
1790 | + $row['list_id'] = 'MediaID_' . $row['mediaid']; |
1791 | + |
1792 | + $rows[] = $row; |
1793 | + } |
1794 | + |
1795 | + Theme::Set('table_rows', $rows); |
1796 | + |
1797 | + // Render the Theme |
1798 | + $response->SetGridResponse(Theme::RenderReturn('library_form_assign_list')); |
1799 | $response->callBack = 'LibraryAssignCallback'; |
1800 | $response->Respond(); |
1801 | } |
1802 | |
1803 | === modified file 'server/lib/pages/dashboard.class.php' |
1804 | --- server/lib/pages/dashboard.class.php 2013-02-20 21:02:28 +0000 |
1805 | +++ server/lib/pages/dashboard.class.php 2013-04-11 16:56:27 +0000 |
1806 | @@ -34,7 +34,7 @@ |
1807 | function displayPage() |
1808 | { |
1809 | // Render the Theme and output |
1810 | - Theme::Render('dashboard_page'); |
1811 | + Theme::Render('homepage_dashboard'); |
1812 | } |
1813 | } |
1814 | ?> |
1815 | \ No newline at end of file |
1816 | |
1817 | === modified file 'server/lib/pages/dataset.class.php' |
1818 | --- server/lib/pages/dataset.class.php 2013-03-03 21:53:46 +0000 |
1819 | +++ server/lib/pages/dataset.class.php 2013-04-11 16:56:27 +0000 |
1820 | @@ -374,15 +374,15 @@ |
1821 | if (!$auth->edit) |
1822 | trigger_error(__('Access Denied')); |
1823 | |
1824 | - $heading = Kit::GetParam('heading', _POST, _WORD); |
1825 | + $heading = Kit::GetParam('heading', _POST, _STRING); |
1826 | $listContent = Kit::GetParam('listcontent', _POST, _STRING); |
1827 | $columnOrder = Kit::GetParam('columnorder', _POST, _INT); |
1828 | |
1829 | $dataSetObject = new DataSetColumn($db); |
1830 | - if (!$dataSetObject->Add($dataSetId, $heading, 1, $listContent)) |
1831 | + if (!$dataSetObject->Add($dataSetId, $heading, 1, $listContent, $columnOrder)) |
1832 | trigger_error($dataSetObject->GetErrorMessage(), E_USER_ERROR); |
1833 | |
1834 | - $response->SetFormSubmitResponse(__('Column Edited')); |
1835 | + $response->SetFormSubmitResponse(__('Column Added')); |
1836 | $response->hideMessage = true; |
1837 | $response->loadForm = true; |
1838 | $response->loadFormUri = 'index.php?p=dataset&q=DataSetColumnsForm&datasetid=' . $dataSetId . '&dataset=' . $dataSet; |
1839 | @@ -414,7 +414,7 @@ |
1840 | if (!$row = $db->GetSingleRow($SQL)) |
1841 | trigger_error(__('Unabled to get Data Column information'), E_USER_ERROR); |
1842 | |
1843 | - Theme::Set('heading', Kit::ValidateParam($row['Heading'], _WORD)); |
1844 | + Theme::Set('heading', Kit::ValidateParam($row['Heading'], _STRING)); |
1845 | Theme::Set('listcontent', Kit::ValidateParam($row['ListContent'], _STRING)); |
1846 | Theme::Set('columnorder', Kit::ValidateParam($row['ColumnOrder'], _INT)); |
1847 | |
1848 | @@ -441,7 +441,7 @@ |
1849 | trigger_error(__('Access Denied')); |
1850 | |
1851 | $dataSetColumnId = Kit::GetParam('datasetcolumnid', _POST, _INT); |
1852 | - $heading = Kit::GetParam('heading', _POST, _WORD); |
1853 | + $heading = Kit::GetParam('heading', _POST, _STRING); |
1854 | $listContent = Kit::GetParam('listcontent', _POST, _STRING); |
1855 | $columnOrder = Kit::GetParam('columnorder', _POST, _INT); |
1856 | |
1857 | |
1858 | === modified file 'server/lib/pages/group.class.php' |
1859 | --- server/lib/pages/group.class.php 2013-02-24 18:52:30 +0000 |
1860 | +++ server/lib/pages/group.class.php 2013-04-11 16:56:27 +0000 |
1861 | @@ -291,7 +291,7 @@ |
1862 | |
1863 | if ($db->num_rows($results) == 0) |
1864 | { |
1865 | - echo ""; |
1866 | + echo ''; |
1867 | exit; |
1868 | } |
1869 | |
1870 | @@ -305,7 +305,7 @@ |
1871 | $row['assigned'] = (($row['AssignedID'] == 1) ? Theme::Image('act.gif') : Theme::Image('disact.gif')); |
1872 | $row['assignedid'] = $row['AssignedID']; |
1873 | $row['checkbox_value'] = $row['AssignedID'] . ',' . $row['pagegroupID']; |
1874 | - $row['checkbox_ticked'] = (($row['AssignedID'] == 1) ? ' checked' : ''); |
1875 | + $row['checkbox_ticked'] = ''; |
1876 | |
1877 | $rows[] = $row; |
1878 | } |
1879 | @@ -552,7 +552,7 @@ |
1880 | $row['assigned'] = (($row['AssignedID'] == 1) ? Theme::Image('act.gif') : Theme::Image('disact.gif')); |
1881 | $row['assignedid'] = $row['AssignedID']; |
1882 | $row['checkbox_value'] = $row['AssignedID'] . ',' . $row['MenuItemID']; |
1883 | - $row['checkbox_ticked'] = (($row['AssignedID'] == 1) ? ' checked' : ''); |
1884 | + $row['checkbox_ticked'] = ''; |
1885 | |
1886 | $rows[] = $row; |
1887 | } |
1888 | |
1889 | === modified file 'server/lib/pages/index.class.php' |
1890 | --- server/lib/pages/index.class.php 2013-03-02 13:15:42 +0000 |
1891 | +++ server/lib/pages/index.class.php 2013-04-11 16:56:27 +0000 |
1892 | @@ -38,11 +38,10 @@ |
1893 | global $session; |
1894 | |
1895 | //this page must be called from a form therefore we expect POST variables |
1896 | - $username = Kit::GetParam('username', _POST, _USERNAME); |
1897 | - $password = Kit::GetParam('password', _POST, _PASSWORD); |
1898 | - $password = md5($password); |
1899 | + $username = Kit::GetParam('username', _POST, _USERNAME); |
1900 | + $password = Kit::GetParam('password', _POST, _PASSWORD); |
1901 | |
1902 | - $referingpage = Kit::GetParam('referingPage', _GET, _WORD); |
1903 | + $referingpage = Kit::GetParam('referingPage', _GET, _WORD); |
1904 | |
1905 | if (isset($_REQUEST['ajax'])) |
1906 | { |
1907 | @@ -88,7 +87,6 @@ |
1908 | |
1909 | setMessage($username . ' logged in'); |
1910 | $session->set_user(session_id(), $userid, 'user'); |
1911 | - |
1912 | } |
1913 | |
1914 | Debug::LogEntry($db, 'audit', 'Login with refering page: ' . $referingpage); |
1915 | @@ -261,7 +259,7 @@ |
1916 | // Render the Theme and output |
1917 | $output = Theme::RenderReturn('about_text'); |
1918 | |
1919 | - $response->SetFormRequestResponse($output, __('About Xibo'), '500', '500'); |
1920 | + $response->SetFormRequestResponse($output, __('About'), '500', '500'); |
1921 | $response->AddButton(__('Close'), 'XiboDialogClose()'); |
1922 | $response->Respond(); |
1923 | } |
1924 | |
1925 | === modified file 'server/lib/pages/layout.class.php' |
1926 | --- server/lib/pages/layout.class.php 2013-03-04 20:20:04 +0000 |
1927 | +++ server/lib/pages/layout.class.php 2013-04-11 16:56:27 +0000 |
1928 | @@ -104,7 +104,7 @@ |
1929 | if (Kit::IsFilterPinned('layout', 'LayoutFilter')) { |
1930 | Theme::Set('filter_pinned', 'checked'); |
1931 | Theme::Set('layout', Session::Get('layout', 'filter_layout')); |
1932 | - Theme::Set('retired', Session::Get('layout', 'retired')); |
1933 | + Theme::Set('retired', Session::Get('layout', 'filter_retired')); |
1934 | Theme::Set('filter_userid', Session::Get('layout', 'filter_userid')); |
1935 | Theme::Set('filter_tags', Session::Get('layout', 'filter_tags')); |
1936 | } |
1937 | @@ -487,6 +487,7 @@ |
1938 | $backgroundColor = (string) $xml['bgcolor']; |
1939 | $width = (string) $xml['width']; |
1940 | $height = (string) $xml['height']; |
1941 | + $resolutionid = (int)$xml['resolutionid']; |
1942 | $bgImageId = 0; |
1943 | |
1944 | // Do we need to override the background with one passed in? |
1945 | @@ -528,14 +529,16 @@ |
1946 | Theme::Set('background_color_list', gwsc()); |
1947 | |
1948 | // Get the ID of the current resolution |
1949 | - $SQL = sprintf("SELECT resolutionID FROM resolution WHERE width = %d AND height = %d", $width, $height); |
1950 | + if ($resolutionid == 0) { |
1951 | + $SQL = sprintf("SELECT resolutionID FROM resolution WHERE width = %d AND height = %d", $width, $height); |
1952 | + |
1953 | + if (!$resolutionid = $db->GetSingleValue($SQL, 'resolutionID', _INT)) |
1954 | + { |
1955 | + trigger_error($db->error()); |
1956 | + trigger_error(__("Unable to get the Resolution information"), E_USER_ERROR); |
1957 | + } |
1958 | + } |
1959 | |
1960 | - if (!$resolutionid = $db->GetSingleValue($SQL, 'resolutionID', _INT)) |
1961 | - { |
1962 | - trigger_error($db->error()); |
1963 | - trigger_error(__("Unable to get the Resolution information"), E_USER_ERROR); |
1964 | - } |
1965 | - |
1966 | Theme::Set('resolutionid', $resolutionid); |
1967 | Theme::Set('resolution_field_list', $db->GetArray('SELECT resolutionid, resolution FROM resolution ORDER BY resolution')); |
1968 | |
1969 | @@ -591,8 +594,32 @@ |
1970 | $xml->loadXML($this->xml); |
1971 | |
1972 | // get the width and the height |
1973 | + $resolutionid = (int)$xml->documentElement->getAttribute('resolutionid'); |
1974 | $width = $xml->documentElement->getAttribute('width'); |
1975 | $height = $xml->documentElement->getAttribute('height'); |
1976 | + |
1977 | + // Get the display width / height |
1978 | + if ($resolutionid != 0) { |
1979 | + $SQL = sprintf("SELECT intended_width, intended_height FROM `resolution` WHERE resolutionid = %d", $resolutionid); |
1980 | + } |
1981 | + else { |
1982 | + $SQL = sprintf("SELECT intended_width, intended_height FROM `resolution` WHERE width = %d AND height = %d", $width, $height); |
1983 | + } |
1984 | + |
1985 | + if (!$resolution = $db->GetSingleRow($SQL)) { |
1986 | + trigger_error(__('Unable to determine display resolution')); |
1987 | + |
1988 | + $intended_width = $width; |
1989 | + $intended_height = $height; |
1990 | + } |
1991 | + else { |
1992 | + $intended_width = $resolution['intended_width']; |
1993 | + $intended_height = $resolution['intended_height']; |
1994 | + } |
1995 | + |
1996 | + // Work out the scaling factor for the tip |
1997 | + // _scaleFactor = Math.Min(_clientSize.Width / _layoutWidth, _clientSize.Height / _layoutHeight); |
1998 | + $scaleFactor = min($intended_width / $width, $intended_height / $height); |
1999 | |
2000 | // do we have a background? Or a background color (or both) |
2001 | $bgImage = $xml->documentElement->getAttribute('background'); |
2002 | @@ -626,10 +653,10 @@ |
2003 | foreach ($regionNodeList as $region) |
2004 | { |
2005 | // get dimensions |
2006 | - $tipWidth = $region->getAttribute('width'); |
2007 | - $tipHeight = $region->getAttribute('height'); |
2008 | - $tipTop = $region->getAttribute('top'); |
2009 | - $tipLeft = $region->getAttribute('left'); |
2010 | + $tipWidth = round($region->getAttribute('width') * $scaleFactor, 0); |
2011 | + $tipHeight = round($region->getAttribute('height') * $scaleFactor, 0); |
2012 | + $tipTop = round($region->getAttribute('top') * $scaleFactor, 0); |
2013 | + $tipLeft = round($region->getAttribute('left') * $scaleFactor, 0); |
2014 | |
2015 | $regionWidth = $region->getAttribute('width') . "px"; |
2016 | $regionHeight = $region->getAttribute('height') . "px"; |
2017 | @@ -650,7 +677,7 @@ |
2018 | $regionTransparency = '<div class="regionTransparency ' . $regionAuthTransparency . '" style="width:100%; height:100%;"></div>'; |
2019 | $doubleClickLink = ($regionAuth->edit) ? "XiboFormRender($(this).attr('href'))" : ''; |
2020 | |
2021 | - $regionHtml .= "<div id='region_$regionid' regionEnabled='$regionAuth->edit' regionid='$regionid' layoutid='$this->layoutid' href='index.php?p=timeline&layoutid=$this->layoutid®ionid=$regionid&q=Timeline' ondblclick=\"$doubleClickLink\"' class='$regionDisabledClass $regionPreviewClass' style=\"position:absolute; width:$regionWidth; height:$regionHeight; top: $regionTop; left: $regionLeft;\"> |
2022 | + $regionHtml .= "<div id='region_$regionid' regionEnabled='$regionAuth->edit' regionid='$regionid' layoutid='$this->layoutid' scale='$scaleFactor' width='$regionWidth' height='$regionHeight' href='index.php?p=timeline&layoutid=$this->layoutid®ionid=$regionid&q=Timeline' ondblclick=\"$doubleClickLink\"' class='$regionDisabledClass $regionPreviewClass' style=\"position:absolute; width:$regionWidth; height:$regionHeight; top: $regionTop; left: $regionLeft;\"> |
2023 | $regionTransparency"; |
2024 | |
2025 | if ($regionAuth->view) |
2026 | @@ -731,7 +758,7 @@ |
2027 | $copyMediaChecked = (Config::GetSetting($db, 'LAYOUT_COPY_MEDIA_CHECKB') == 'Checked') ? 'checked' : ''; |
2028 | |
2029 | Theme::Set('form_id', 'LayoutCopyForm'); |
2030 | - Theme::Set('form_url', 'index.php?p=layout&q=Copy'); |
2031 | + Theme::Set('form_action', 'index.php?p=layout&q=Copy'); |
2032 | Theme::Set('form_meta', '<input type="hidden" name="layoutid" value="' . $layoutid . '">'); |
2033 | Theme::Set('copy_media_checked', $copyMediaChecked); |
2034 | Theme::Set('new_layout_default', $oldLayout . ' 2'); |
2035 | |
2036 | === modified file 'server/lib/pages/log.class.php' |
2037 | --- server/lib/pages/log.class.php 2013-03-04 20:20:04 +0000 |
2038 | +++ server/lib/pages/log.class.php 2013-04-11 16:56:27 +0000 |
2039 | @@ -54,23 +54,23 @@ |
2040 | Theme::Set('filter_seconds', Session::Get('user', 'filter_seconds')); |
2041 | } |
2042 | else { |
2043 | - Theme::Set('filter_type', 0); |
2044 | + Theme::Set('filter_type', '0'); |
2045 | Theme::Set('filter_seconds', 120); |
2046 | - Theme::Set('filter_page', 0); |
2047 | - Theme::Set('filter_function', 0); |
2048 | + Theme::Set('filter_page', '0'); |
2049 | + Theme::Set('filter_function', '0'); |
2050 | Theme::Set('filter_display', 0); |
2051 | } |
2052 | |
2053 | // Lists |
2054 | - $types = array(array('typeid' => 0, 'type' => 'All'), array('typeid' => 'audit', 'type' => 'Audit'), array('typeid' => 'error', 'type' => 'Error')); |
2055 | + $types = array(array('typeid' => '0', 'type' => 'All'), array('typeid' => 'audit', 'type' => 'Audit'), array('typeid' => 'error', 'type' => 'Error')); |
2056 | Theme::Set('type_field_list', $types); |
2057 | |
2058 | $pages = $db->GetArray("SELECT DISTINCT IFNULL(page, '-1') AS pageid, page FROM log ORDER BY 2"); |
2059 | - array_unshift($pages, array('pageid' => 0, 'page' => 'All')); |
2060 | + array_unshift($pages, array('pageid' => '0', 'page' => 'All')); |
2061 | Theme::Set('page_field_list', $pages); |
2062 | |
2063 | $functions = $db->GetArray("SELECT DISTINCT IFNULL(function, '-1') AS functionid, function FROM log ORDER BY 2"); |
2064 | - array_unshift($functions, array('functionid' => 0, 'function' => 'All')); |
2065 | + array_unshift($functions, array('functionid' => '0', 'function' => 'All')); |
2066 | Theme::Set('function_field_list', $functions); |
2067 | |
2068 | $displays = $db->GetArray('SELECT displayid, display FROM display WHERE licensed = 1 ORDER BY 2'); |
2069 | |
2070 | === modified file 'server/lib/pages/mediamanager.class.php' |
2071 | --- server/lib/pages/mediamanager.class.php 2011-10-05 20:05:31 +0000 |
2072 | +++ server/lib/pages/mediamanager.class.php 2013-04-11 16:56:27 +0000 |
2073 | @@ -1,7 +1,7 @@ |
2074 | <?php |
2075 | /* |
2076 | * Xibo - Digitial Signage - http://www.xibo.org.uk |
2077 | - * Copyright (C) 2011 Daniel Garner |
2078 | + * Copyright (C) 2011-2013 Daniel Garner |
2079 | * |
2080 | * This file is part of Xibo. |
2081 | * |
2082 | @@ -31,72 +31,32 @@ |
2083 | $this->user =& $user; |
2084 | } |
2085 | |
2086 | - function on_page_load() |
2087 | - { |
2088 | - return ""; |
2089 | - } |
2090 | - |
2091 | - function echo_page_heading() |
2092 | - { |
2093 | - global $user; |
2094 | - |
2095 | - $userid = Kit::GetParam('userid', _SESSION, _INT); |
2096 | - $uid = $user->getNameFromID($userid); |
2097 | - |
2098 | - echo "$uid's " . __('Dashboard'); |
2099 | - return true; |
2100 | - } |
2101 | - |
2102 | - function displayPage() |
2103 | + public function displayPage() |
2104 | { |
2105 | $db =& $this->db; |
2106 | - $user =& $this->user; |
2107 | - |
2108 | - include_once("template/pages/mediamanager.php"); |
2109 | - } |
2110 | - |
2111 | - public function MediaManagerFilter() |
2112 | - { |
2113 | - $msgLayout = __('Layout'); |
2114 | - $msgRegion = __('Region'); |
2115 | - $msgMedia = __('Media'); |
2116 | - $msgMediaType = __('Type'); |
2117 | - |
2118 | - $modules = $this->db->GetArray("SELECT Module, Name FROM module WHERE Enabled = 1 ORDER BY 2", true); |
2119 | - $modules[] = array('Module' => 'all', 'Name' => 'All'); |
2120 | - |
2121 | - $mediaTypeList = Kit::SelectList('filterMediaType', $modules, 'Module', 'Name', 'all'); |
2122 | - |
2123 | + |
2124 | + // Default options |
2125 | + if (Kit::IsFilterPinned('mediamanager', 'Filter')) { |
2126 | + Theme::Set('filter_pinned', 'checked'); |
2127 | + Theme::Set('filter_layout_name', Session::Get('mediamanager', 'filter_layout_name')); |
2128 | + Theme::Set('filter_region_name', Session::Get('mediamanager', 'filter_region_name')); |
2129 | + Theme::Set('filter_media_name', Session::Get('mediamanager', 'filter_media_name')); |
2130 | + Theme::Set('filter_type', Session::Get('mediamanager', 'filter_type')); |
2131 | + } |
2132 | + |
2133 | $id = uniqid(); |
2134 | - |
2135 | - $xiboGrid = <<<HTML |
2136 | - <div class="XiboGrid" id="$id"> |
2137 | - <div class="XiboFilter"> |
2138 | - <form onsubmit="return false"> |
2139 | - <input type="hidden" name="p" value="mediamanager"> |
2140 | - <input type="hidden" name="q" value="MediaManagerGrid"> |
2141 | - <table class="mediamanager_filterform"> |
2142 | - <tr> |
2143 | - <td>$msgLayout</td> |
2144 | - <td><input type="text" name="filterLayout"></td> |
2145 | - <td>$msgMedia</td> |
2146 | - <td><input type="text" name="filterMediaName"></td> |
2147 | - </tr> |
2148 | - <tr> |
2149 | - <td>$msgRegion</td> |
2150 | - <td><input type="text" name="filterRegion"></td> |
2151 | - <td>$msgMediaType</td> |
2152 | - <td>$mediaTypeList</td> |
2153 | - </tr> |
2154 | - </table> |
2155 | - </form> |
2156 | - </div> |
2157 | - <div class="XiboData"> |
2158 | - |
2159 | - </div> |
2160 | - </div> |
2161 | -HTML; |
2162 | - echo $xiboGrid; |
2163 | + Theme::Set('id', $id); |
2164 | + Theme::Set('filter_id', 'XiboFilterPinned' . uniqid('filter')); |
2165 | + Theme::Set('pager', ResponseManager::Pager($id)); |
2166 | + Theme::Set('form_meta', '<input type="hidden" name="p" value="mediamanager"><input type="hidden" name="q" value="MediaManagerGrid">'); |
2167 | + |
2168 | + // Module types filter |
2169 | + $types = $db->GetArray("SELECT Module AS moduleid, Name AS module FROM `module` WHERE Enabled = 1 ORDER BY 2"); |
2170 | + array_unshift($types, array('moduleid' => '', 'module' => 'All')); |
2171 | + Theme::Set('module_field_list', $types); |
2172 | + |
2173 | + // Call to render the template |
2174 | + Theme::Render('homepage_mediamanager'); |
2175 | } |
2176 | |
2177 | public function MediaManagerGrid() |
2178 | @@ -105,40 +65,22 @@ |
2179 | $user =& $this->user; |
2180 | $response = new ResponseManager(); |
2181 | |
2182 | - $filterLayout = Kit::GetParam('filterLayout', _POST, _STRING); |
2183 | - $filterRegion = Kit::GetParam('filterRegion', _POST, _STRING); |
2184 | - $filterMediaName = Kit::GetParam('filterMediaName', _POST, _STRING); |
2185 | - $filterMediaType = Kit::GetParam('filterMediaType', _POST, _STRING); |
2186 | + $filterLayout = Kit::GetParam('filter_layout_name', _POST, _STRING); |
2187 | + $filterRegion = Kit::GetParam('filter_region_name', _POST, _STRING); |
2188 | + $filterMediaName = Kit::GetParam('filter_media_name', _POST, _STRING); |
2189 | + $filterMediaType = Kit::GetParam('filter_type', _POST, _STRING); |
2190 | + |
2191 | + setSession('mediamanager', 'filter_layout_name', $filterLayout); |
2192 | + setSession('mediamanager', 'filter_region_name', $filterRegion); |
2193 | + setSession('mediamanager', 'filter_media_name', $filterMediaName); |
2194 | + setSession('mediamanager', 'filter_type', $filterMediaType); |
2195 | + setSession('mediamanager', 'Filter', Kit::GetParam('XiboFilterPinned', _REQUEST, _CHECKBOX, 'off')); |
2196 | |
2197 | // We would like a list of all layouts, media and media assignments that this user |
2198 | // has access to. |
2199 | $layouts = $user->LayoutList($filterLayout); |
2200 | |
2201 | - $msgLayout = __('Layout'); |
2202 | - $msgRegion = __('Region'); |
2203 | - $msgMedia = __('Media'); |
2204 | - $msgMediaType = __('Type'); |
2205 | - $msgSeq = __('Sequence'); |
2206 | - |
2207 | - $msgAction = __('Action'); |
2208 | - $msgEdit = __('Edit'); |
2209 | - $msgDelete = __('Delete'); |
2210 | - |
2211 | - $output = <<<END |
2212 | - <div class="info_table"> |
2213 | - <table style="width:100%"> |
2214 | - <thead> |
2215 | - <tr> |
2216 | - <th>$msgLayout</th> |
2217 | - <th>$msgRegion</th> |
2218 | - <th>$msgMedia</th> |
2219 | - <th>$msgMediaType</th> |
2220 | - <th>$msgSeq</th> |
2221 | - <th>$msgAction</th> |
2222 | - </tr> |
2223 | - </thead> |
2224 | - <tbody> |
2225 | -END; |
2226 | + $rows = array(); |
2227 | |
2228 | foreach ($layouts as $layout) |
2229 | { |
2230 | @@ -146,8 +88,6 @@ |
2231 | if (!$layout['edit']) |
2232 | continue; |
2233 | |
2234 | - Debug::LogEntry($db, 'audit', 'Permission to edit layout ' . $layout['layout'], 'mediamanager', 'MediaManagerGrid'); |
2235 | - |
2236 | // Every layout this user has access to.. get the regions |
2237 | $layoutXml = new DOMDocument(); |
2238 | $layoutXml->loadXML($layout['xml']); |
2239 | @@ -174,15 +114,13 @@ |
2240 | if ($filterRegion != '' && !stristr($regionName, $filterRegion)) |
2241 | continue; |
2242 | |
2243 | - Debug::LogEntry($db, 'audit', 'Permissions granted for ' . $regionId . ' owned by ' . $ownerId, 'mediamanager', 'MediaManagerGrid'); |
2244 | - |
2245 | // Media |
2246 | $xpath = new DOMXPath($layoutXml); |
2247 | - $mediaNodes = $xpath->query("//region[@id='$regionId']/media"); |
2248 | + $mediaNodes = $xpath->query("//region[@id='$regionId']/media"); |
2249 | $mediaNodeSequence = 0; |
2250 | |
2251 | - foreach ($mediaNodes as $mediaNode) |
2252 | - { |
2253 | + foreach ($mediaNodes as $mediaNode) |
2254 | + { |
2255 | $mediaId = $mediaNode->getAttribute('id'); |
2256 | $lkId = $mediaNode->getAttribute('lkid'); |
2257 | $mediaOwnerId = ($mediaNode->getAttribute('userId') == '') ? $layout['ownerid'] : $mediaNode->getAttribute('userId'); |
2258 | @@ -202,30 +140,35 @@ |
2259 | if ($filterMediaName != '' && !stristr($mediaName, $filterMediaName)) |
2260 | continue; |
2261 | |
2262 | - Debug::LogEntry($db, 'audit', $filterMediaType . ' ' . $mediaType); |
2263 | - |
2264 | - if ($filterMediaType != 'all' && $mediaType != strtolower($filterMediaType)) |
2265 | + if ($filterMediaType != '' && $mediaType != strtolower($filterMediaType)) |
2266 | continue; |
2267 | |
2268 | - $editLink = '<button class="XiboFormButton" href="index.php?p=module&mod=' . $mediaType . '&q=Exec&method=EditForm&showRegionOptions=0&layoutid=' . $layout['layoutid'] . '®ionid=' . $regionId . '&mediaid=' . $mediaId . '&lkid=' . $lkId . '">' . $msgEdit . '</button>'; |
2269 | $mediaNodeSequence++; |
2270 | |
2271 | - $output .= '<tr>'; |
2272 | - $output .= ' <td>' . $layout['layout'] . '</td>'; |
2273 | - $output .= ' <td>' . $regionName . '</td>'; |
2274 | - $output .= ' <td>' . $mediaName . '</td>'; |
2275 | - $output .= ' <td>' . $mediaType . '</td>'; |
2276 | - $output .= ' <td>' . $mediaNodeSequence . '</td>'; |
2277 | - $output .= ' <td>' . $editLink . '</td>'; |
2278 | - $output .= '</tr>'; |
2279 | + $layout['region'] = $regionName; |
2280 | + $layout['media'] = $mediaName; |
2281 | + $layout['mediatype'] = $mediaType; |
2282 | + $layout['seq'] = $mediaNodeSequence; |
2283 | + $layout['buttons'] = array(); |
2284 | + |
2285 | + // Edit |
2286 | + $layout['buttons'][] = array( |
2287 | + 'id' => 'homepage_mediamanager_edit_button', |
2288 | + 'url' => 'index.php?p=module&mod=' . $mediaType . '&q=Exec&method=EditForm&showRegionOptions=0&layoutid=' . $layout['layoutid'] . '®ionid=' . $regionId . '&mediaid=' . $mediaId . '&lkid=' . $lkId, |
2289 | + 'text' => __('Edit') |
2290 | + ); |
2291 | + |
2292 | + $rows[] = $layout; |
2293 | } |
2294 | } |
2295 | } |
2296 | |
2297 | - $output .= '</tbody></table></div>'; |
2298 | + Theme::Set('table_rows', $rows); |
2299 | + |
2300 | + $output = Theme::RenderReturn('homepage_mediamanager_grid'); |
2301 | |
2302 | $response->SetGridResponse($output); |
2303 | $response->Respond(); |
2304 | } |
2305 | } |
2306 | -?> |
2307 | \ No newline at end of file |
2308 | +?> |
2309 | |
2310 | === modified file 'server/lib/pages/module.class.php' |
2311 | --- server/lib/pages/module.class.php 2013-03-04 22:01:30 +0000 |
2312 | +++ server/lib/pages/module.class.php 2013-04-11 16:56:27 +0000 |
2313 | @@ -213,6 +213,7 @@ |
2314 | $validExtensions = Kit::GetParam('ValidExtensions', _POST, _STRING, ''); |
2315 | $imageUri = Kit::GetParam('ImageUri', _POST, _STRING); |
2316 | $enabled = Kit::GetParam('Enabled', _POST, _CHECKBOX); |
2317 | + $previewEnabled = Kit::GetParam('PreviewEnabled', _POST, _CHECKBOX); |
2318 | |
2319 | // Validation |
2320 | if ($moduleId == 0 || $moduleId == '') |
2321 | @@ -222,8 +223,8 @@ |
2322 | trigger_error(__('Image Uri is a required field.'), E_USER_ERROR); |
2323 | |
2324 | // Deal with the Edit |
2325 | - $SQL = "UPDATE `module` SET ImageUri = '%s', ValidExtensions = '%s', Enabled = %d WHERE ModuleID = %d"; |
2326 | - $SQL = sprintf($SQL, $db->escape_string($imageUri), $db->escape_string($validExtensions), $enabled, $moduleId); |
2327 | + $SQL = "UPDATE `module` SET ImageUri = '%s', ValidExtensions = '%s', Enabled = %d, PreviewEnabled = %d WHERE ModuleID = %d"; |
2328 | + $SQL = sprintf($SQL, $db->escape_string($imageUri), $db->escape_string($validExtensions), $enabled, $previewEnabled, $moduleId); |
2329 | |
2330 | if (!$db->query($SQL)) |
2331 | { |
2332 | |
2333 | === modified file 'server/lib/pages/oauth.class.php' |
2334 | --- server/lib/pages/oauth.class.php 2013-03-02 10:30:43 +0000 |
2335 | +++ server/lib/pages/oauth.class.php 2013-04-11 16:56:27 +0000 |
2336 | @@ -115,9 +115,9 @@ |
2337 | |
2338 | foreach($list as $row) |
2339 | { |
2340 | - $row['received'] = Kit::ValidateParam($logEntry['received'], _STRING); |
2341 | - $row['notes'] = Kit::ValidateParam($logEntry['notes'], _STRING); |
2342 | - $row['timestamp'] = Kit::ValidateParam($logEntry['timestamp'], _STRING); |
2343 | + $row['received'] = Kit::ValidateParam($row['received'], _STRING); |
2344 | + $row['notes'] = Kit::ValidateParam($row['notes'], _STRING); |
2345 | + $row['timestamp'] = Kit::ValidateParam($row['timestamp'], _STRING); |
2346 | |
2347 | $rows[] = $row; |
2348 | } |
2349 | @@ -263,16 +263,16 @@ |
2350 | |
2351 | foreach ($list as $app) |
2352 | { |
2353 | - $row['application_title'] = Kit::ValidateParam($app['application_title'], _STRING); |
2354 | - $row['enabled'] = Kit::ValidateParam($app['enabled'], _STRING); |
2355 | - $row['status'] = Kit::ValidateParam($app['status'], _STRING); |
2356 | + $app['application_title'] = Kit::ValidateParam($app['application_title'], _STRING); |
2357 | + $app['enabled'] = Kit::ValidateParam($app['enabled'], _STRING); |
2358 | + $app['status'] = Kit::ValidateParam($app['status'], _STRING); |
2359 | |
2360 | $rows[] = $app; |
2361 | } |
2362 | |
2363 | Theme::Set('table_rows', $rows); |
2364 | |
2365 | - $output = Theme::RenderReturn('applications_form_view_log'); |
2366 | + $output = Theme::RenderReturn('application_form_user_applications'); |
2367 | |
2368 | $response->SetFormRequestResponse($output, __('Authorized applications for user'), '650', '450'); |
2369 | $response->AddButton(__('Help'), "XiboHelpRender('index.php?p=help&q=Display&Topic=Schedule&Category=General')"); |
2370 | |
2371 | === modified file 'server/lib/pages/schedule.class.php' |
2372 | --- server/lib/pages/schedule.class.php 2013-03-04 22:01:30 +0000 |
2373 | +++ server/lib/pages/schedule.class.php 2013-04-11 16:56:27 +0000 |
2374 | @@ -1,7 +1,7 @@ |
2375 | <?php |
2376 | /* |
2377 | * Xibo - Digitial Signage - http://www.xibo.org.uk |
2378 | - * Copyright (C) 2006-2012 Daniel Garner |
2379 | + * Copyright (C) 2006-2013 Daniel Garner |
2380 | * |
2381 | * This file is part of Xibo. |
2382 | * |
2383 | @@ -26,42 +26,71 @@ |
2384 | private $user; |
2385 | |
2386 | private $lastEventID; |
2387 | - private $eventsList; |
2388 | + private $eventsList; |
2389 | |
2390 | /** |
2391 | * Constructor |
2392 | - * @return |
2393 | - * @param $db Object |
2394 | */ |
2395 | function __construct(database $db, user $user) |
2396 | { |
2397 | - $this->db =& $db; |
2398 | - $this->user =& $user; |
2399 | + $this->db =& $db; |
2400 | + $this->user =& $user; |
2401 | |
2402 | require_once('lib/data/schedule.data.class.php'); |
2403 | |
2404 | return true; |
2405 | } |
2406 | - |
2407 | - function on_page_load() |
2408 | - { |
2409 | - return ''; |
2410 | - } |
2411 | - |
2412 | - function echo_page_heading() |
2413 | - { |
2414 | - echo 'Schedule'; |
2415 | - return true; |
2416 | - } |
2417 | - |
2418 | + |
2419 | function displayPage() |
2420 | { |
2421 | $db =& $this->db; |
2422 | - $user =& $this->user; |
2423 | - |
2424 | - include_once("template/pages/schedule_view.php"); |
2425 | - |
2426 | - return false; |
2427 | + |
2428 | + // Configure the theme |
2429 | + $id = uniqid(); |
2430 | + Theme::Set('id', $id); |
2431 | + Theme::Set('form_meta', '<input type="hidden" name="p" value="schedule"><input type="hidden" name="q" value="DisplayList">'); |
2432 | + Theme::Set('filter_id', 'XiboFilterPinned' . uniqid('filter')); |
2433 | + Theme::Set('pager', ResponseManager::Pager($id)); |
2434 | + |
2435 | + // Render the Theme and output |
2436 | + Theme::Render('schedule_page'); |
2437 | + } |
2438 | + |
2439 | + /** |
2440 | + * Shows a list of displays |
2441 | + */ |
2442 | + public function DisplayList() |
2443 | + { |
2444 | + $user =& $this->user; |
2445 | + |
2446 | + $response = new ResponseManager(); |
2447 | + $displayGroupIDs = Kit::GetParam('DisplayGroupIDs', _SESSION, _ARRAY); |
2448 | + |
2449 | + // Build 2 lists |
2450 | + $groups = array(); |
2451 | + $displays = array(); |
2452 | + |
2453 | + foreach ($user->DisplayGroupList() as $display) { |
2454 | + |
2455 | + $display['checked_text'] = (in_array($display['displaygroupid'], $displayGroupIDs)) ? 'checked' : ''; |
2456 | + |
2457 | + if ($display['isdisplayspecific'] == 1) { |
2458 | + $displays[] = $display; |
2459 | + } |
2460 | + else { |
2461 | + $groups[] = $display; |
2462 | + } |
2463 | + } |
2464 | + |
2465 | + Theme::Set('id', 'DisplayList'); |
2466 | + Theme::Set('group_list_items', $groups); |
2467 | + Theme::Set('display_list_items', $displays); |
2468 | + |
2469 | + $output = Theme::RenderReturn('schedule_page_display_list'); |
2470 | + |
2471 | + $response->SetGridResponse($output); |
2472 | + $response->callBack = 'DisplayListRender'; |
2473 | + $response->Respond(); |
2474 | } |
2475 | |
2476 | /** |
2477 | @@ -74,7 +103,7 @@ |
2478 | $displayGroupIDs = Kit::GetParam('DisplayGroupIDs', _GET, _ARRAY); |
2479 | |
2480 | // if we have some displaygroupids then add them to the session info so we can default everything else. |
2481 | - Session::Set('DisplayGroupIDs', $displayGroupIDs); |
2482 | + Session::Set('DisplayGroupIDs', $displayGroupIDs); |
2483 | |
2484 | if ($view == 'month') |
2485 | { |
2486 | @@ -1015,56 +1044,7 @@ |
2487 | return $events; |
2488 | } |
2489 | |
2490 | - /** |
2491 | - * Shows a list of display groups and displays |
2492 | - * @return |
2493 | - */ |
2494 | - public function DisplayFilter() |
2495 | - { |
2496 | - $db =& $this->db; |
2497 | - $user =& $this->user; |
2498 | - |
2499 | - $filterForm = <<<END |
2500 | - <div id="DisplayListFilter"> |
2501 | - <form onsubmit="return false"> |
2502 | - <input type="hidden" name="p" value="schedule"> |
2503 | - <input type="hidden" name="q" value="DisplayList"> |
2504 | - <input class="DisplayListInput" type="text" name="name" /> |
2505 | - </form> |
2506 | - </div> |
2507 | -END; |
2508 | - |
2509 | - $id = uniqid(); |
2510 | - |
2511 | - $xiboGrid = <<<HTML |
2512 | - <div class="XiboGrid" id="$id"> |
2513 | - <div class="XiboFilter"> |
2514 | - $filterForm |
2515 | - </div> |
2516 | - <div class="XiboData"> |
2517 | - |
2518 | - </div> |
2519 | - </div> |
2520 | -HTML; |
2521 | - echo $xiboGrid; |
2522 | - } |
2523 | |
2524 | - /** |
2525 | - * Shows a list of displays |
2526 | - * @return |
2527 | - */ |
2528 | - public function DisplayList() |
2529 | - { |
2530 | - $response = new ResponseManager(); |
2531 | - $displayGroupIDs = Kit::GetParam('DisplayGroupIDs', _SESSION, _ARRAY); |
2532 | - $output = ''; |
2533 | - $output .= '<div id="checkAllForDisplayList" class="scheduleFormCheckAll"><label for="checkAll">' . __('Check All') . '</label><input type="checkbox" name="checkAll"></div>'; |
2534 | - $output .= $this->UnorderedListofDisplays(true, $displayGroupIDs); |
2535 | - |
2536 | - $response->SetGridResponse($output); |
2537 | - $response->callBack = 'DisplayListRender'; |
2538 | - $response->Respond(); |
2539 | - } |
2540 | |
2541 | /** |
2542 | * Outputs an unordered list of displays optionally with a form |
2543 | @@ -1431,7 +1411,7 @@ |
2544 | <tr> |
2545 | <td><label for="rec_range" title="When should this event stop repeating?">Until</label></td> |
2546 | <td>$rec_range |
2547 | - <input id="repeatTime" type="text" size="12" name="repeatTime" value="00:00" /> |
2548 | + <input id="repeatTime" class="time-pick" type="text" size="12" name="repeatTime" value="00:00" /> |
2549 | </td> |
2550 | </tr> |
2551 | END; |
2552 | @@ -1578,7 +1558,7 @@ |
2553 | <tr> |
2554 | <td><label for="rec_range" title="When should this event stop repeating?">Until</label></td> |
2555 | <td>$rec_range |
2556 | - <input id="repeatTime" type="text" size="12" name="repeatTime" value="$recToDtText" /> |
2557 | + <input id="repeatTime" class="time-pick" type="text" size="12" name="repeatTime" value="$recToTimeText" /> |
2558 | </td> |
2559 | </tr> |
2560 | END; |
2561 | @@ -1630,16 +1610,15 @@ |
2562 | Debug::LogEntry($db, 'audit', 'To DT: ' . $toDT); |
2563 | |
2564 | // Validate the times |
2565 | - if (!strstr($fromTime, ':') || !strstr($toTime, ':')) |
2566 | - { |
2567 | + $regEx = '/([01]?[0-9]|2[0-3]):([0-5][0-9])/'; |
2568 | + if (!preg_match($regEx, $fromTime) || !preg_match($regEx, $toTime) || ($repeatTime != '' && !preg_match($regEx, $repeatTime))) |
2569 | trigger_error(__('Times must be in the format 00:00'), E_USER_ERROR); |
2570 | - } |
2571 | |
2572 | $fromDT = $datemanager->GetDateFromUS($fromDT, $fromTime); |
2573 | $toDT = $datemanager->GetDateFromUS($toDT, $toTime); |
2574 | |
2575 | - if ($recToDT != '') |
2576 | - $recToDT = $datemanager->GetDateFromUS($recToDT, $repeatTime); |
2577 | + if ($recToDT != '') |
2578 | + $recToDT = $datemanager->GetDateFromUS($recToDT, $repeatTime); |
2579 | |
2580 | // Validate layout |
2581 | if ($campaignId == 0) |
2582 | @@ -1719,10 +1698,9 @@ |
2583 | Debug::LogEntry($db, 'audit', 'To DT: ' . $toDT); |
2584 | |
2585 | // Validate the times |
2586 | - if (!strstr($fromTime, ':') || !strstr($toTime, ':')) |
2587 | - { |
2588 | + $regEx = '/([01]?[0-9]|2[0-3]):([0-5][0-9])/'; |
2589 | + if (!preg_match($regEx, $fromTime) || !preg_match($regEx, $toTime) || ($repeatTime != '' && !preg_match($regEx, $repeatTime))) |
2590 | trigger_error(__('Times must be in the format 00:00'), E_USER_ERROR); |
2591 | - } |
2592 | |
2593 | $fromDT = $datemanager->GetDateFromUS($fromDT, $fromTime); |
2594 | $toDT = $datemanager->GetDateFromUS($toDT, $toTime); |
2595 | |
2596 | === modified file 'server/lib/pages/template.class.php' |
2597 | --- server/lib/pages/template.class.php 2013-03-04 22:01:30 +0000 |
2598 | +++ server/lib/pages/template.class.php 2013-04-11 16:56:27 +0000 |
2599 | @@ -61,9 +61,9 @@ |
2600 | |
2601 | // Field list for a "retired" dropdown list |
2602 | Theme::Set('is_system_field_list', array( |
2603 | - array('is_systemid' => '-1', 'is_system' => 'All'), |
2604 | - array('is_systemid' => '1', 'is_system' => 'Yes'), |
2605 | - array('is_systemid' => '0', 'is_system' => 'No') |
2606 | + array('is_systemid' => -1, 'is_system' => 'All'), |
2607 | + array('is_systemid' => 1, 'is_system' => 'Yes'), |
2608 | + array('is_systemid' => 0, 'is_system' => 'No') |
2609 | ) |
2610 | ); |
2611 | |
2612 | |
2613 | === modified file 'server/lib/pages/timeline.class.php' |
2614 | --- server/lib/pages/timeline.class.php 2013-02-16 15:03:26 +0000 |
2615 | +++ server/lib/pages/timeline.class.php 2013-04-11 16:56:27 +0000 |
2616 | @@ -122,12 +122,13 @@ |
2617 | |
2618 | $regionid = Kit::GetParam('regionid', _GET, _STRING); |
2619 | $layoutid = Kit::GetParam('layoutid', _GET, _INT); |
2620 | - $top = Kit::GetParam('top', _GET, _INT); |
2621 | - $left = Kit::GetParam('left', _GET, _INT); |
2622 | - $width = Kit::GetParam('width', _GET, _INT); |
2623 | - $height = Kit::GetParam('height', _GET, _INT); |
2624 | + $top = Kit::GetParam('top', _GET, _DOUBLE); |
2625 | + $left = Kit::GetParam('left', _GET, _DOUBLE); |
2626 | + $width = Kit::GetParam('width', _GET, _DOUBLE); |
2627 | + $height = Kit::GetParam('height', _GET, _DOUBLE); |
2628 | $layoutWidth = Kit::GetParam('layoutWidth', _GET, _INT); |
2629 | $layoutHeight = Kit::GetParam('layoutHeight', _GET, _INT); |
2630 | + $scale = Kit::GetParam('scale', _GET, _DOUBLE); |
2631 | |
2632 | Kit::ClassLoader('region'); |
2633 | $region = new region($db); |
2634 | @@ -137,18 +138,30 @@ |
2635 | $regionAuth = $this->user->RegionAssignmentAuth($ownerId, $layoutid, $regionid, true); |
2636 | if (!$regionAuth->edit) |
2637 | trigger_error(__('You do not have permissions to edit this region'), E_USER_ERROR); |
2638 | + |
2639 | + // Scale the layout width/height |
2640 | + $layoutWidth = round($layoutWidth * $scale, 0); |
2641 | + $layoutHeight = round($layoutHeight * $scale, 0); |
2642 | + |
2643 | + // Set some information about the form |
2644 | + Theme::Set('form_id', 'RegionProperties'); |
2645 | + Theme::Set('form_action', 'index.php?p=timeline&q=ManualRegionPosition'); |
2646 | + Theme::Set('form_meta', '<input type="hidden" name="layoutid" value="' . $layoutid .'"><input type="hidden" name="regionid" value="' . $regionid . '"><input id="layoutWidth" type="hidden" name="layoutWidth" value="' . $layoutWidth . '"><input id="layoutHeight" type="hidden" name="layoutHeight" value="' . $layoutHeight . '"><input type="hidden" name="scale" value="' . $scale .'">'); |
2647 | |
2648 | - // Include some logic for the region exit transition? |
2649 | - $transition = $region->GetOption($layoutid, $regionid, 'transOut', ''); |
2650 | - $duration = $region->GetOption($layoutid, $regionid, 'transOutDuration', 0); |
2651 | - $direction = $region->GetOption($layoutid, $regionid, 'transOutDirection', ''); |
2652 | + // Theme Variables |
2653 | + Theme::Set('width', round($width * $scale, 0)); |
2654 | + Theme::Set('height', round($height * $scale, 0)); |
2655 | + Theme::Set('top', round($top * $scale, 0)); |
2656 | + Theme::Set('left', round($left * $scale, 0)); |
2657 | + Theme::Set('transition', $region->GetOption($layoutid, $regionid, 'transOut', '')); |
2658 | + Theme::Set('duration', $region->GetOption($layoutid, $regionid, 'transOutDuration', 0)); |
2659 | + Theme::Set('direction', $region->GetOption($layoutid, $regionid, 'transOutDirection', '')); |
2660 | |
2661 | // Add none to the list |
2662 | $transitions = $this->user->TransitionAuth('out'); |
2663 | $transitions[] = array('code' => '', 'transition' => 'None', 'class' => ''); |
2664 | - |
2665 | - // Prepare a list of options |
2666 | - $transitionDropdown = Kit::SelectList('transitionType', $transitions, 'code', 'transition', $transition, '', 'class'); |
2667 | + |
2668 | + Theme::Set('transition_field_list', $transitions); |
2669 | |
2670 | // Compass points for direction |
2671 | $compassPoints = array( |
2672 | @@ -161,60 +174,18 @@ |
2673 | array('id' => 'W', 'name' => __('West')), |
2674 | array('id' => 'NW', 'name' => __('North West')) |
2675 | ); |
2676 | - |
2677 | - // Prepare a list of compass points |
2678 | - $directionDropdown = Kit::SelectList('transitionDirection', $compassPoints, 'id', 'name', $direction); |
2679 | - |
2680 | - // Some messages for the form |
2681 | - $msgTransition = __('What transition should be applied when this region is finished?'); |
2682 | - $msgDuration = __('The duration for this transition, in milliseconds.'); |
2683 | - $msgDirection = __('The direction for this transtion.'); |
2684 | - |
2685 | - // Construct the form |
2686 | - $form = <<<END |
2687 | - <form id="RegionProperties" class="XiboForm" method="post" action="index.php?p=layout&q=ManualRegionPosition"> |
2688 | - <input type="hidden" name="layoutid" value="$layoutid"> |
2689 | - <input type="hidden" name="regionid" value="$regionid"> |
2690 | - <input id="layoutWidth" type="hidden" name="layoutWidth" value="$layoutWidth"> |
2691 | - <input id="layoutHeight" type="hidden" name="layoutHeight" value="$layoutHeight"> |
2692 | - <table> |
2693 | - <tr> |
2694 | - <td><label for="name" title="Name of the Region">Name</label></td> |
2695 | - <td><input name="name" type="text" id="name" value="$regionName" tabindex="1" /></td> |
2696 | - </tr> |
2697 | - <tr> |
2698 | - <td><label for="top" title="Offset from the Top Corner">Top Offset</label></td> |
2699 | - <td><input name="top" type="text" id="top" value="$top" tabindex="2" /></td> |
2700 | - </tr> |
2701 | - <tr> |
2702 | - <td><label for="left" title="Offset from the Left Corner">Left Offset</label></td> |
2703 | - <td><input name="left" type="text" id="left" value="$left" tabindex="3" /></td> |
2704 | - </tr> |
2705 | - <tr> |
2706 | - <td><label for="width" title="Width of the Region">Width</label></td> |
2707 | - <td><input name="width" type="text" id="width" value="$width" tabindex="4" /></td> |
2708 | - </tr> |
2709 | - <tr> |
2710 | - <td><label for="height" title="Height of the Region">Height</label></td> |
2711 | - <td><input name="height" type="text" id="height" value="$height" tabindex="5" /></td> |
2712 | - </tr> |
2713 | - <tr> |
2714 | - <td><label for="tranisitionType" title="$msgTransition">$msgTransition</label></td> |
2715 | - <td>$transitionDropdown</td> |
2716 | - </tr> |
2717 | - <tr class="transitionDuration"> |
2718 | - <td><label for="transitionDuration">$msgDuration</label></td> |
2719 | - <td><input type="text" class="numeric" name="transitionDuration" id="transitionDuration" value="$duration" /></td> |
2720 | - </tr> |
2721 | - <tr class="transitionDirection"> |
2722 | - <td><label for="transitionDirection">$msgDirection</label></td> |
2723 | - <td>$directionDropdown</td> |
2724 | - </tr> |
2725 | - </table> |
2726 | - </form> |
2727 | -END; |
2728 | - |
2729 | - $response->SetFormRequestResponse($form, __('Manual Region Positioning'), '350px', '275px', 'transitionFormLoad'); |
2730 | + |
2731 | + Theme::Set('direction_field_list', $compassPoints); |
2732 | + |
2733 | + if (count($this->user->TransitionAuth('out')) > 0) { |
2734 | + $form = Theme::RenderReturn('region_form_options'); |
2735 | + } |
2736 | + else { |
2737 | + $form = Theme::RenderReturn('region_form_options_no_transition'); |
2738 | + } |
2739 | + |
2740 | + |
2741 | + $response->SetFormRequestResponse($form, __('Region Options'), '350px', '275px', 'transitionFormLoad'); |
2742 | $response->AddButton(__('Cancel'), 'XiboDialogClose()'); |
2743 | $response->AddButton(__('Save'), '$("#RegionProperties").submit()'); |
2744 | $response->AddButton(__('Set Full Screen'), 'setFullScreenLayout()'); |
2745 | @@ -234,6 +205,13 @@ |
2746 | $left = Kit::GetParam('left', _POST, _INT); |
2747 | $width = Kit::GetParam('width', _POST, _INT); |
2748 | $height = Kit::GetParam('height', _POST, _INT); |
2749 | + $scale = Kit::GetParam('scale', _POST, _DOUBLE); |
2750 | + |
2751 | + // Adjust the dimensions |
2752 | + $top = $top / $scale; |
2753 | + $left = $left / $scale; |
2754 | + $width = $width / $scale; |
2755 | + $height = $height / $scale; |
2756 | |
2757 | // Transitions? |
2758 | $transitionType = Kit::GetParam('transitionType', _POST, _WORD); |
2759 | @@ -344,7 +322,7 @@ |
2760 | |
2761 | //we can delete |
2762 | $form = <<<END |
2763 | - <form id="RegionDeleteForm" class="XiboForm" method="post" action="index.php?p=layout&q=DeleteRegion"> |
2764 | + <form id="RegionDeleteForm" class="XiboForm" method="post" action="index.php?p=timeline&q=DeleteRegion"> |
2765 | <input type="hidden" name="layoutid" value="$layoutid"> |
2766 | <input type="hidden" name="regionid" value="$regionid"> |
2767 | <p>$msgDelete $msgDelete2</p> |
2768 | @@ -445,7 +423,7 @@ |
2769 | // We want to load a new form |
2770 | $response->SetFormSubmitResponse(sprintf(__('%d Media Items Assigned'), count($mediaList))); |
2771 | $response->loadForm = true; |
2772 | - $response->loadFormUri = "index.php?p=layout&layoutid=$layoutId®ionid=$regionId&q=RegionOptions"; |
2773 | + $response->loadFormUri = "index.php?p=timeline&layoutid=$layoutId®ionid=$regionId&q=Timeline"; |
2774 | $response->Respond(); |
2775 | } |
2776 | |
2777 | @@ -554,7 +532,7 @@ |
2778 | trigger_error(__("You do not have permissions to edit this regions permissions"), E_USER_ERROR); |
2779 | |
2780 | // Form content |
2781 | - $form = '<form id="RegionPermissionsForm" class="XiboForm" method="post" action="index.php?p=layout&q=RegionPermissions">'; |
2782 | + $form = '<form id="RegionPermissionsForm" class="XiboForm" method="post" action="index.php?p=timeline&q=RegionPermissions">'; |
2783 | $form .= '<input type="hidden" name="layoutid" value="' . $layoutid . '" />'; |
2784 | $form .= '<input type="hidden" name="regionid" value="' . $regionid . '" />'; |
2785 | $form .= '<div class="dialog_table">'; |
2786 | @@ -624,7 +602,7 @@ |
2787 | $region = new region($db); |
2788 | $ownerId = $region->GetOwnerId($layoutId, $regionId); |
2789 | |
2790 | - $regionAuth = $this->user->RegionAssignmentAuth($ownerId, $layoutid, $regionId, true); |
2791 | + $regionAuth = $this->user->RegionAssignmentAuth($ownerId, $layoutId, $regionId, true); |
2792 | if (!$regionAuth->modifyPermissions) |
2793 | trigger_error(__('You do not have permissions to edit this regions permissions'), E_USER_ERROR); |
2794 | |
2795 | @@ -748,7 +726,7 @@ |
2796 | |
2797 | $response->html .= '<li class="timelineModuleListItem">'; |
2798 | $response->html .= ' <a class="XiboFormButton timelineModuleButtonAnchor" title="' . $title . '" href="' . $uri . '">'; |
2799 | - $response->html .= ' <img class="timelineModuleButtonImage" src="' . $img . '" alt="' . __('Module Image') . '" />'; |
2800 | + $response->html .= Theme::Image($img, 'timelineModuleButtonImage'); |
2801 | $response->html .= ' <span class="timelineModuleButtonText">' . $caption . '</span>'; |
2802 | $response->html .= ' </a>'; |
2803 | $response->html .= '</li>'; |
2804 | @@ -829,9 +807,11 @@ |
2805 | if ($auth->modifyPermissions) |
2806 | $response->html .= '<li><a class="XiboFormButton timelineMediaBarLink" href="index.php?p=module&mod=' . $mediaType . '&q=Exec&method=PermissionsForm&layoutid=' . $layoutId . '®ionid=' . $regionId . '&mediaid=' . $mediaId . '&lkid=' . $lkId . '" title="Click to change permissions for this media">' . __('Permissions') . '</a></li>'; |
2807 | |
2808 | - $response->html .= '<li><a class="XiboFormButton timelineMediaBarLink" href="index.php?p=module&mod=' . $mediaType . '&q=Exec&method=TransitionEditForm&type=in&layoutid=' . $layoutId . '®ionid=' . $regionId . '&mediaid=' . $mediaId . '&lkid=' . $lkId . '" title="' . __('Click to edit this transition') . '">' . __('In Transition') . '</a></li>'; |
2809 | - $response->html .= '<li><a class="XiboFormButton timelineMediaBarLink" href="index.php?p=module&mod=' . $mediaType . '&q=Exec&method=TransitionEditForm&type=out&layoutid=' . $layoutId . '®ionid=' . $regionId . '&mediaid=' . $mediaId . '&lkid=' . $lkId . '" title="' . __('Click to edit this transition') . '">' . __('Out Transition') . '</a></li>'; |
2810 | - |
2811 | + if (count($this->user->TransitionAuth('in')) > 0) |
2812 | + $response->html .= '<li><a class="XiboFormButton timelineMediaBarLink" href="index.php?p=module&mod=' . $mediaType . '&q=Exec&method=TransitionEditForm&type=in&layoutid=' . $layoutId . '®ionid=' . $regionId . '&mediaid=' . $mediaId . '&lkid=' . $lkId . '" title="' . __('Click to edit this transition') . '">' . __('In Transition') . '</a></li>'; |
2813 | + |
2814 | + if (count($this->user->TransitionAuth('out')) > 0) |
2815 | + $response->html .= '<li><a class="XiboFormButton timelineMediaBarLink" href="index.php?p=module&mod=' . $mediaType . '&q=Exec&method=TransitionEditForm&type=out&layoutid=' . $layoutId . '®ionid=' . $regionId . '&mediaid=' . $mediaId . '&lkid=' . $lkId . '" title="' . __('Click to edit this transition') . '">' . __('Out Transition') . '</a></li>'; |
2816 | |
2817 | $response->html .= ' </ul>'; |
2818 | |
2819 | |
2820 | === modified file 'server/lib/pages/user.class.php' |
2821 | --- server/lib/pages/user.class.php 2013-03-02 12:38:40 +0000 |
2822 | +++ server/lib/pages/user.class.php 2013-04-11 16:56:27 +0000 |
2823 | @@ -666,7 +666,6 @@ |
2824 | // Set some information about the form |
2825 | Theme::Set('form_id', 'ChangePasswordForm'); |
2826 | Theme::Set('form_action', 'index.php?p=user&q=ChangePassword'); |
2827 | - Theme::Set('form_meta', '<input type="hidden" name="UserId" value="' . $userId . '" />'); |
2828 | |
2829 | $form = Theme::RenderReturn('user_form_change_password'); |
2830 | |
2831 | @@ -717,7 +716,7 @@ |
2832 | |
2833 | $form = Theme::RenderReturn('user_form_set_password'); |
2834 | |
2835 | - $response->SetFormRequestResponse($form, __('Change Password'), '450', '300'); |
2836 | + $response->SetFormRequestResponse($form, __('Set Password'), '450', '300'); |
2837 | $response->AddButton(__('Help'), 'XiboHelpRender("' . HelpManager::Link('User', 'SetPassword') . '")'); |
2838 | $response->AddButton(__('Close'), 'XiboDialogClose()'); |
2839 | $response->AddButton(__('Save'), '$("#SetPasswordForm").submit()'); |
2840 | @@ -735,7 +734,7 @@ |
2841 | $newPassword = Kit::GetParam('newPassword', _POST, _STRING); |
2842 | $retypeNewPassword = Kit::GetParam('retypeNewPassword', _POST, _STRING); |
2843 | |
2844 | - $userId = Kit::GetParam('userId', _GET, _INT); |
2845 | + $userId = Kit::GetParam('UserId', _POST, _INT); |
2846 | |
2847 | // Check we are an admin |
2848 | if ($this->user->usertypeid != 1) |
2849 | |
2850 | === modified file 'server/lib/service/service.wsdl' |
2851 | --- server/lib/service/service.wsdl 2011-09-01 20:42:49 +0000 |
2852 | +++ server/lib/service/service.wsdl 2013-04-11 16:56:27 +0000 |
2853 | @@ -102,7 +102,7 @@ |
2854 | </message> |
2855 | <portType name="xmdsPortType"> |
2856 | <operation name="RegisterDisplay"> |
2857 | - <documentation>Registered the Display on the Xibo Network</documentation> |
2858 | + <documentation>Register the Display with the CMS</documentation> |
2859 | <input message="tns:RegisterDisplayRequest"/> |
2860 | <output message="tns:RegisterDisplayResponse"/> |
2861 | </operation> |
2862 | |
2863 | === modified file 'server/lib/service/xmdssoap.class.php' |
2864 | --- server/lib/service/xmdssoap.class.php 2013-03-04 22:01:30 +0000 |
2865 | +++ server/lib/service/xmdssoap.class.php 2013-04-11 16:56:27 +0000 |
2866 | @@ -59,7 +59,7 @@ |
2867 | |
2868 | // Make sure we are talking the same language |
2869 | if (!$this->CheckVersion($version)) |
2870 | - throw new SoapFault('Sender', 'Your client is not of the correct version for communication with this server. You can get the latest from http://www.xibo.org.uk'); |
2871 | + throw new SoapFault('Sender', 'Your client is not of the correct version for communication with this server.'); |
2872 | |
2873 | Debug::LogEntry($db, "audit", "[IN]", "xmds", "RegisterDisplay"); |
2874 | Debug::LogEntry($db, "audit", "serverKey [$serverKey], hardwareKey [$hardwareKey], displayName [$displayName]", "xmds", "RegisterDisplay"); |
2875 | @@ -144,7 +144,7 @@ |
2876 | |
2877 | // Make sure we are talking the same language |
2878 | if (!$this->CheckVersion($version)) |
2879 | - throw new SoapFault('Sender', 'Your client is not of the correct version for communication with this server. You can get the latest from http://www.xibo.org.uk'); |
2880 | + throw new SoapFault('Sender', 'Your client is not of the correct version for communication with this server.'); |
2881 | |
2882 | // Make sure we are sticking to our bandwidth limit |
2883 | if (!$this->CheckBandwidth()) |
2884 | @@ -403,7 +403,7 @@ |
2885 | // Make sure we are talking the same language |
2886 | if (!$this->CheckVersion($version)) |
2887 | { |
2888 | - throw new SoapFault('Receiver', "Your client is not of the correct version for communication with this server. You can get the latest from http://www.xibo.org.uk"); |
2889 | + throw new SoapFault('Receiver', "Your client is not of the correct version for communication with this server."); |
2890 | } |
2891 | |
2892 | // Make sure we are sticking to our bandwidth limit |
2893 | @@ -485,7 +485,7 @@ |
2894 | |
2895 | // Make sure we are talking the same language |
2896 | if (!$this->CheckVersion($version)) |
2897 | - throw new SoapFault('Sender', "Your client is not of the correct version for communication with this server. You can get the latest from http://www.xibo.org.uk"); |
2898 | + throw new SoapFault('Sender', "Your client is not of the correct version for communication with this server."); |
2899 | |
2900 | // Make sure we are sticking to our bandwidth limit |
2901 | if (!$this->CheckBandwidth()) |
2902 | @@ -615,7 +615,7 @@ |
2903 | // Make sure we are talking the same language |
2904 | if (!$this->CheckVersion($version)) |
2905 | { |
2906 | - throw new SoapFault('Receiver', "Your client is not of the correct version for communication with this server. You can get the latest from http://www.xibo.org.uk", $serverKey); |
2907 | + throw new SoapFault('Receiver', "Your client is not of the correct version for communication with this server.", $serverKey); |
2908 | } |
2909 | |
2910 | // Make sure we are sticking to our bandwidth limit |
2911 | @@ -699,7 +699,7 @@ |
2912 | // Make sure we are talking the same language |
2913 | if (!$this->CheckVersion($version)) |
2914 | { |
2915 | - throw new SoapFault('Sender', "Your client is not of the correct version for communication with this server. You can get the latest from http://www.xibo.org.uk"); |
2916 | + throw new SoapFault('Sender', "Your client is not of the correct version for communication with this server."); |
2917 | } |
2918 | |
2919 | // Make sure we are sticking to our bandwidth limit |
2920 | @@ -815,7 +815,7 @@ |
2921 | // Make sure we are talking the same language |
2922 | if (!$this->CheckVersion($version)) |
2923 | { |
2924 | - throw new SoapFault('Receiver', "Your client is not of the correct version for communication with this server. You can get the latest from http://www.xibo.org.uk"); |
2925 | + throw new SoapFault('Receiver', "Your client is not of the correct version for communication with this server."); |
2926 | } |
2927 | |
2928 | // Make sure we are sticking to our bandwidth limit |
2929 | @@ -909,7 +909,7 @@ |
2930 | |
2931 | // Make sure we are talking the same language |
2932 | if (!$this->CheckVersion($version)) |
2933 | - throw new SoapFault('Receiver', "Your client is not of the correct version for communication with this server. You can get the latest from http://www.xibo.org.uk"); |
2934 | + throw new SoapFault('Receiver', "Your client is not of the correct version for communication with this server."); |
2935 | |
2936 | // Make sure we are sticking to our bandwidth limit |
2937 | if (!$this->CheckBandwidth()) |
2938 | @@ -981,7 +981,7 @@ |
2939 | |
2940 | // Make sure we are talking the same language |
2941 | if (!$this->CheckVersion($version)) |
2942 | - throw new SoapFault('Receiver', "Your client is not of the correct version for communication with this server. You can get the latest from http://www.xibo.org.uk"); |
2943 | + throw new SoapFault('Receiver', "Your client is not of the correct version for communication with this server."); |
2944 | |
2945 | // Make sure we are sticking to our bandwidth limit |
2946 | if (!$this->CheckBandwidth()) |
2947 | @@ -989,9 +989,7 @@ |
2948 | |
2949 | // Auth this request... |
2950 | if (!$this->AuthDisplay($hardwareKey)) |
2951 | - { |
2952 | throw new SoapFault('Receiver', "This display client is not licensed"); |
2953 | - } |
2954 | |
2955 | // What type of module is this? |
2956 | Kit::ClassLoader('region'); |
2957 | @@ -1001,6 +999,11 @@ |
2958 | if ($type == '') |
2959 | throw new SoapFault('Receiver', 'Unable to get the media node type'); |
2960 | |
2961 | + // Dummy User Object |
2962 | + $user = new User($db); |
2963 | + $user->userid = 0; |
2964 | + $user->usertypeid = 1; |
2965 | + |
2966 | // Get the resource from the module |
2967 | require_once('modules/' . $type . '.module.php'); |
2968 | $module = new $type($db, $user, $mediaId, $layoutId, $regionId); |
2969 | @@ -1053,7 +1056,7 @@ |
2970 | $msgTo = Kit::ValidateParam(Config::GetSetting($db, "mail_to"),_PASSWORD); |
2971 | $msgFrom = Kit::ValidateParam(Config::GetSetting($db, "mail_from"),_PASSWORD); |
2972 | |
2973 | - $subject = sprintf(__("Xibo Recovery for Display %s"),$row[7]); |
2974 | + $subject = sprintf(__("Recovery for Display %s"),$row[7]); |
2975 | $body = sprintf(__("Display %s with ID %d is now back online."), $row[7], $row[3]); |
2976 | |
2977 | Kit::SendEmail($msgTo, $msgFrom, $subject, $body); |
2978 | |
2979 | === modified file 'server/maintenance.php' |
2980 | --- server/maintenance.php 2012-04-12 06:41:56 +0000 |
2981 | +++ server/maintenance.php 2013-04-11 16:56:27 +0000 |
2982 | @@ -93,10 +93,9 @@ |
2983 | print '<html>'; |
2984 | print ' <head>'; |
2985 | print ' <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'; |
2986 | -print ' <title>Xibo Open Source Digital Signage - Maintenance</title>'; |
2987 | +print ' <title>Open Source Digital Signage - Maintenance</title>'; |
2988 | print ' </head>'; |
2989 | print '<body>'; |
2990 | -print ' <!-- Copyright 2010 - Alex Harrington, part of Xibo Open Source Digital Signage -->'; |
2991 | |
2992 | // Should the Scheduled Task script be running at all? |
2993 | if(Config::GetSetting($db, "MAINTENANCE_ENABLED")=="Off") |
2994 | @@ -195,7 +194,7 @@ |
2995 | { |
2996 | if ((($email_alert == 1) && $alwaysAlert) || (($loggedin == 1) && ($email_alert == 1))) |
2997 | { |
2998 | - $subject = sprintf(__("Xibo Email Alert for Display %s"),$display_name); |
2999 | + $subject = sprintf(__("Email Alert for Display %s"),$display_name); |
3000 | $body = sprintf(__("Display %s with ID %d was last seen at %s."),$display_name,$displayid,$last_seen); |
3001 | |
3002 | if (Kit::SendEmail($msgTo, $msgFrom, $subject, $body)) |
3003 | |
3004 | === added directory 'server/manual' |
3005 | === added directory 'server/manual/content' |
3006 | === added directory 'server/manual/content/admin' |
3007 | === added file 'server/manual/content/admin/advanced.php' |
3008 | --- server/manual/content/admin/advanced.php 1970-01-01 00:00:00 +0000 |
3009 | +++ server/manual/content/admin/advanced.php 2013-04-11 16:56:27 +0000 |
3010 | @@ -0,0 +1,57 @@ |
3011 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
3012 | +<?php include('../../template.php'); ?> |
3013 | +<html> |
3014 | + <head> |
3015 | + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> |
3016 | + <title><?php echo PRODUCT_NAME; ?> Documentation</title> |
3017 | + <link rel=stylesheet type="text/css" href="../../css/doc.css"> |
3018 | + <meta http-equiv="Content-Type" content="text/html" /> |
3019 | + <meta name="keywords" content="digital signage, signage, narrow-casting, <?php echo PRODUCT_NAME; ?>, open source, agpl" /> |
3020 | + <meta name="description" content="<?php echo PRODUCT_NAME; ?> is an open source digital signage solution. It supports all main media types and can be interfaced to other sources of data using CSV, Databases or RSS." /> |
3021 | + |
3022 | + <link href="img/favicon.ico" rel="shortcut icon"/> |
3023 | + <!-- Javascript Libraries --> |
3024 | + <script type="text/javascript" src="lib/jquery.pack.js"></script> |
3025 | + <script type="text/javascript" src="lib/jquery.dimensions.pack.js"></script> |
3026 | + <script type="text/javascript" src="lib/jquery.ifixpng.js"></script> |
3027 | + </head> |
3028 | + <body> |
3029 | + |
3030 | + <h1>Advanced</h1> |
3031 | + <p>The Advanced page is mainly used by system administrator to help troubleshooting system problem or reporting fault |
3032 | + to the <?php echo PRODUCT_NAME; ?> xstreamedia team for assistance</p> |
3033 | + <p>Click Advanced from the Navigation Bar. System loads the Log page by default.</p> |
3034 | + |
3035 | + <blockquote> |
3036 | + <a name="Error_Log_Help" id="Error_Log_Help"></a><h3>System Log</h3> |
3037 | + |
3038 | + <p><img alt="SA Advanced" src="sa_advanced.png" |
3039 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3040 | + width="803" height="161"></p> |
3041 | + |
3042 | + <p>The system log is used to help troubleshoot problems with <?php echo PRODUCT_NAME; ?>. When you encounter an error it will be logged |
3043 | + and listed in the system here. These error messages can help the xstreamedia team solve your problem.</p> |
3044 | + <p>Truncating the log helps you to troubleshoot a problem by clearing the current error messages</p> |
3045 | + <p>The page and sub page items helps locate where the error has been generated from.</p> |
3046 | + <ul> |
3047 | + <li><strong>Log Date</strong><p> states the date and time the error message was logged.</p></li> |
3048 | + <li><strong>Page</strong><p> states the page that the error has been generated from.</p></li> |
3049 | + <li><strong>Function</strong><p>state function that the error message has been generated from.</p></li> |
3050 | + <li><strong>Message</strong><p> gives details of what error has occurred in the system.</p></li> |
3051 | + </ul> |
3052 | + <a name="Session" id="Session"></a><h3>Sessions</h3> |
3053 | + <p>Sessions provide details of the current user activity on the network</p> |
3054 | + <p><img alt="SA Advanced Session" src="sa_advanced_sessions.png" |
3055 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3056 | + width="805" height="208"></p> |
3057 | + |
3058 | + <a name="Report_Fault" id="Report_Fault"></a><h3>Report Fault</h3> |
3059 | + <p>Simple instruaction on the collection of system error and report fault to <?php echo PRODUCT_NAME; ?> xsteamedia team.</p> |
3060 | + |
3061 | + <a name="License" id="License"></a><h3>License Information</h3> |
3062 | + <p>The license page provides details of all the relevant licenses for the system.</p> |
3063 | + </blockquote> |
3064 | + |
3065 | + <?php include('../../template/footer.php'); ?> |
3066 | + </body> |
3067 | +</html> |
3068 | |
3069 | === added file 'server/manual/content/admin/api.php' |
3070 | --- server/manual/content/admin/api.php 1970-01-01 00:00:00 +0000 |
3071 | +++ server/manual/content/admin/api.php 2013-04-11 16:56:27 +0000 |
3072 | @@ -0,0 +1,396 @@ |
3073 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
3074 | +<?php include('../../template.php'); ?> |
3075 | +<html> |
3076 | + <head> |
3077 | + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> |
3078 | + <title><?php echo PRODUCT_NAME; ?> Documentation</title> |
3079 | + <link rel=stylesheet type="text/css" href="../../css/doc.css"> |
3080 | + <meta http-equiv="Content-Type" content="text/html" /> |
3081 | + <meta name="keywords" content="digital signage, signage, narrow-casting, <?php echo PRODUCT_NAME; ?>, open source, agpl" /> |
3082 | + <meta name="description" content="<?php echo PRODUCT_NAME; ?> is an open source digital signage solution. It supports all main media types and can be interfaced to other sources of data using CSV, Databases or RSS." /> |
3083 | + |
3084 | + <link href="img/favicon.ico" rel="shortcut icon"/> |
3085 | + <!-- Javascript Libraries --> |
3086 | + <script type="text/javascript" src="lib/jquery.pack.js"></script> |
3087 | + <script type="text/javascript" src="lib/jquery.dimensions.pack.js"></script> |
3088 | + <script type="text/javascript" src="lib/jquery.ifixpng.js"></script> |
3089 | + </head> |
3090 | + <body> |
3091 | + <h1><?php echo PRODUCT_NAME; ?> API</h1> |
3092 | + |
3093 | + <p><img alt="SA <?php echo PRODUCT_NAME; ?> API" src="sa_api.png" |
3094 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3095 | + width="805" height="149"></p> |
3096 | + |
3097 | + <a name="Authorization" id="Authorization"></a><h2>Authorization</h2> |
3098 | + <p>OAuth will be used to provide authorization for access to the <?php echo PRODUCT_NAME; ?> API.</p> |
3099 | + |
3100 | +<blockquote> |
3101 | + <a name="OAuth_Information" id="OAuth_Information"></a><h3>OAuth Information</h3> |
3102 | + <p>Service location: services.php</p> |
3103 | + <p>OAuth methods:</p> |
3104 | + |
3105 | + <ul> |
3106 | + <li> XRDS: services.php?xrds</li> |
3107 | + <li> Request Token: services.php?service=oauth&method=request_token</li> |
3108 | + <li> Authorize Token: index.php?p=oauth&q=authorize</li> |
3109 | + <li> Access Token: services.php?service=oauth&method=access_token</li> |
3110 | + </ul> |
3111 | + |
3112 | + <a name="XRDS" id="XRDS"></a><h3>XRDS</h3> |
3113 | + <pre><?xml version="1.0" encoding="UTF-8"?> |
3114 | + <XRDS xmlns="xri://$xrds"> |
3115 | + <XRD xmlns:simple="<a href="http://xrds-simple.net/core/1.0" class="external free" title="http://xrds-simple.net/core/1.0" |
3116 | + rel="nofollow">http://xrds-simple.net/core/1.0</a>" |
3117 | + xmlns="xri://$XRD*($v*2.0)" xmlns:openid="<a href="http://openid.net/xmlns/1.0" class="external free" title="http://openid.net/xmlns/1.0" rel="nofollow">http://openid.net/xmlns/1.0</a>" version="2.0" xml:id="main"> |
3118 | + <Type>xri://$xrds*simple</Type> |
3119 | + <Service> |
3120 | + <Type><a href="http://oauth.net/discovery/1.0" class="external free" title="http://oauth.net/discovery/1.0" rel="nofollow">http://oauth.net/discovery/1.0</a></Type> |
3121 | + <URI>#main</URI> |
3122 | + </Service> |
3123 | + <Service> |
3124 | + <Type><a href="http://oauth.net/core/1.0/endpoint/request" class="external free" title="http://oauth.net/core/1.0/endpoint/request" rel="nofollow">http://oauth.net/core/1.0/endpoint/request</a></Type> |
3125 | + <Type><a href="http://oauth.net/core/1.0/parameters/auth-header" class="external free" title="http://oauth.net/core/1.0/parameters/auth-header" rel="nofollow">http://oauth.net/core/1.0/parameters/auth-header</a></Type> |
3126 | + <Type><a href="http://oauth.net/core/1.0/parameters/uri-query" class="external free" title="http://oauth.net/core/1.0/parameters/uri-query" rel="nofollow">http://oauth.net/core/1.0/parameters/uri-query</a></Type> |
3127 | + <Type><a href="http://oauth.net/core/1.0/signature/HMAC-SHA1" class="external free" title="http://oauth.net/core/1.0/signature/HMAC-SHA1" rel="nofollow">http://oauth.net/core/1.0/signature/HMAC-SHA1</a></Type> |
3128 | + <Type><a href="http://oauth.net/core/1.0/signature/PLAINTEXT" class="external free" title="http://oauth.net/core/1.0/signature/PLAINTEXT" rel="nofollow">http://oauth.net/core/1.0/signature/PLAINTEXT</a></Type> |
3129 | + <URI>http://<a href="/index.php?title=Template:XRDS_LOCATION&action=edit&redlink=1" class="new" title="Template:XRDS LOCATION (page does not exist)">Template:XRDS LOCATION</a>/services.php?service=oauth&method=request_token</URI> |
3130 | + </Service> |
3131 | + <Service> |
3132 | + <Type><a href="http://oauth.net/core/1.0/endpoint/authorize" class="external free" title="http://oauth.net/core/1.0/endpoint/authorize" rel="nofollow">http://oauth.net/core/1.0/endpoint/authorize</a></Type> |
3133 | + <Type><a href="http://oauth.net/core/1.0/parameters/uri-query" class="external free" title="http://oauth.net/core/1.0/parameters/uri-query" rel="nofollow">http://oauth.net/core/1.0/parameters/uri-query</a></Type> |
3134 | + <URI>http://<a href="/index.php?title=Template:XRDS_LOCATION&action=edit&redlink=1" class="new" title="Template:XRDS LOCATION (page does not exist)">Template:XRDS LOCATION</a>/index.php?p=oauth&q=authorize</URI> |
3135 | + </Service> |
3136 | + <Service> |
3137 | + <Type><a href="http://oauth.net/core/1.0/endpoint/access" class="external free" title="http://oauth.net/core/1.0/endpoint/access" rel="nofollow">http://oauth.net/core/1.0/endpoint/access</a></Type> |
3138 | + <Type><a href="http://oauth.net/core/1.0/parameters/auth-header" class="external free" title="http://oauth.net/core/1.0/parameters/auth-header" rel="nofollow">http://oauth.net/core/1.0/parameters/auth-header</a></Type> |
3139 | + <Type><a href="http://oauth.net/core/1.0/parameters/uri-query" class="external free" title="http://oauth.net/core/1.0/parameters/uri-query" rel="nofollow">http://oauth.net/core/1.0/parameters/uri-query</a></Type> |
3140 | + <Type><a href="http://oauth.net/core/1.0/signature/HMAC-SHA1" class="external free" title="http://oauth.net/core/1.0/signature/HMAC-SHA1" rel="nofollow">http://oauth.net/core/1.0/signature/HMAC-SHA1</a></Type> |
3141 | + <Type><a href="http://oauth.net/core/1.0/signature/PLAINTEXT" class="external free" title="http://oauth.net/core/1.0/signature/PLAINTEXT" rel="nofollow">http://oauth.net/core/1.0/signature/PLAINTEXT</a></Type> |
3142 | + <URI>http://<a href="/index.php?title=Template:XRDS_LOCATION&action=edit&redlink=1" class="new" title="Template:XRDS LOCATION (page does not exist)">Template:XRDS LOCATION</a>/services.php?service=oauth&method=access_token</URI> |
3143 | + </Service> |
3144 | + </XRD> |
3145 | + </XRDS> |
3146 | + </pre> |
3147 | + |
3148 | + <a name="Registered_Applications" id="Registered_Applications"></a><h3>Registered Applications</h3> |
3149 | + <p>You must obtain a consumer_key and consumer_secret for your application. Keys for "Supported" applications |
3150 | + will be shipped with <?php echo PRODUCT_NAME; ?> meaning no extra steps are required. If you have made your own application you will need |
3151 | + to register it with your <?php echo PRODUCT_NAME; ?> Server using the following address:</p> |
3152 | + <p>Register Service: index.php?p=oauth</p> |
3153 | + <p>You will be asked for:</p> |
3154 | + <ul> |
3155 | + <li>Your Name</li> |
3156 | + <li> Your email address</li> |
3157 | + <li> A URL for your Application</li> |
3158 | + <li> A Callback URL</li> |
3159 | + </ul> |
3160 | + <p><?php echo PRODUCT_NAME; ?> will (at a later date) have a UI for displaying all registered applications.</p> |
3161 | + |
3162 | + <a name="Callback_URL" id="Callback_URL"></a><h3>Callback URL</h3> |
3163 | + <p>The Callback URL will be automatically called by <?php echo PRODUCT_NAME; ?> on a completely Authorize request. It will be called regardless |
3164 | + of whether the authorization was successful and will contain an OAuth message indicating the authorize success.</p> |
3165 | + <p>If you do not specify a Callback URL <?php echo PRODUCT_NAME; ?> will show a message requesting the user return to the application once authorized.</p> |
3166 | +</blockquote> |
3167 | + |
3168 | + <a name="Request_Formats" id="Request_Formats"></a><h2>Request Formats</h2> |
3169 | + <p><?php echo PRODUCT_NAME; ?> supports the following request formats</p> |
3170 | + |
3171 | + <ul><li>REST</li></ul> |
3172 | + |
3173 | +<blockquote> |
3174 | + <a name="REST" id="REST"></a><h3>REST</h3> |
3175 | + <p>A simple POST or GET.</p> |
3176 | + <p>To request the <?php echo PRODUCT_NAME; ?> Version method:</p> |
3177 | + <pre>services.php?service=rest&method=version</pre> |
3178 | + <p>By default the response type is xml. To get a different response type send "&response="</p> |
3179 | +</blockquote> |
3180 | + |
3181 | + <a name="Response_Types" id="Response_Types"></a><h2>Response Types</h2> |
3182 | + <p><?php echo PRODUCT_NAME; ?> supports the following response types</p> |
3183 | + |
3184 | + <blockquote> |
3185 | + <ul><li>JSON</li> |
3186 | + <li> XML</li></ul> |
3187 | + |
3188 | + <a name="JSON" id="JSON"></a><h3>JSON</h3> |
3189 | + <p>To return a JSON object specify the response to be JSON (response="json")</p> |
3190 | + <p>A method call returns:</p> |
3191 | + <pre><?php echo PRODUCT_NAME; ?>Api({ |
3192 | + "stat":"ok", |
3193 | + "response": {...} |
3194 | + }) |
3195 | + </pre> |
3196 | + |
3197 | + <p>A failure call returns:</p> |
3198 | + <pre><?php echo PRODUCT_NAME; ?>Api({ |
3199 | + "stat":"error", |
3200 | + "error": { |
3201 | + "code": "[error-code]", |
3202 | + "message": "[error-message]" |
3203 | + } |
3204 | + }) |
3205 | + </pre> |
3206 | + |
3207 | + <a name="XML" id="XML"></a><h3>XML</h3> |
3208 | + <p>A successful call returns this:</p> |
3209 | + <pre><?xml version="1.0" encoding="utf-8" ?> |
3210 | + <rsp status="ok"> |
3211 | + [xml-payload-here] |
3212 | + </rsp> |
3213 | + </pre> |
3214 | + <p>A failure call returns this:</p> |
3215 | + <pre><?xml version="1.0" encoding="utf-8" ?> |
3216 | + <rsp status="error"> |
3217 | + <error code="[error-code]" message="[error-message]" |
3218 | + </rsp> |
3219 | + </pre> |
3220 | +</blockquote> |
3221 | + |
3222 | + <a name="Error_Codes" id="Error_Codes"></a><h2>Error Codes</h2> |
3223 | + <p>A complete list of error codes can be found here: <a href="http://wiki.<?php echo PRODUCT_NAME; ?>.org.uk/wiki/Error_codes" |
3224 | + class="external free" title="http://wiki.<?php echo PRODUCT_NAME; ?>.org.uk/wiki/Error_codes" rel="nofollow">http://wiki.<?php echo PRODUCT_NAME; ?>.org.uk/wiki/Error_codes</a></p> |
3225 | + <p>A list of the potential error codes from each method call can be found with the documentation of that call.</p> |
3226 | + |
3227 | + <a name="Methods" id="Methods"></a><h2>Methods</h2> |
3228 | + <p>Transactions supported by <?php echo PRODUCT_NAME; ?></p> |
3229 | + |
3230 | + <blockquote> |
3231 | + <a name="Displays" id="Displays"></a><h3>Displays</h3> |
3232 | + <ul><li>DisplayList</li> |
3233 | + <li>DisplayEdit</li> |
3234 | + <li>DisplayRetire</li> |
3235 | + <li>DisplayDelete</li> |
3236 | + <li>DisplayUserGroupSecurity</li> |
3237 | + <li>DisplayUserGroupEdit</li> |
3238 | + </ul> |
3239 | + |
3240 | + <a name="DisplayGroups" id="DisplayGroups"></a><h3>DisplayGroups</h3> |
3241 | + <ul><li> DisplayGroupList</li> |
3242 | + <li> DisplayGroupAdd</li> |
3243 | + <li> DisplayGroupEdit</li> |
3244 | + <li> DisplayGroupDelete</li> |
3245 | + <li> DisplayGroupMembersList</li> |
3246 | + <li> DisplayGroupMembersEdit</li> |
3247 | + <li> DisplayGroupUserGroupList</li> |
3248 | + <li> DisplayGroupUserGroupEdit</li></ul> |
3249 | + |
3250 | + <a name="Layout" id="Layout"></a><h3>Layout</h3> |
3251 | + <ul><li> LayoutList</li> |
3252 | + <li> LayoutAdd</li> |
3253 | + <li> LayoutEdit</li> |
3254 | + <li> LayoutCopy</li> |
3255 | + <li> LayoutDelete</li> |
3256 | + <li> LayoutRetire</li> |
3257 | + <li> LayoutBackgroundList</li> |
3258 | + <li> LayoutBackgroundEdit</li> |
3259 | + <li> LayoutGetXlf</li> |
3260 | + <li> LayoutRegionList</li> |
3261 | + <li> LayoutRegionAdd</li><li> LayoutRegionEdit</li> |
3262 | + <li> LayoutRegionPosition</li><li> LayoutRegionTimelineList</li> |
3263 | + <li> LayoutRegionMediaAdd</li> |
3264 | + <li> LayoutRegionMediaReorder</li> |
3265 | + <li> LayoutRegionMediaDelete</li> |
3266 | + <li> LayoutRegionLibraryAdd</li> |
3267 | + <li> LayoutRegionMediaEdit</li> |
3268 | + <li> LayoutRegionMediaDetails</li></ul> |
3269 | + |
3270 | + <a name="Library" id="Library"></a><h3>Library</h3> |
3271 | + <ul><li> LibraryMediaFileUpload</li> |
3272 | + <li> LibraryMediaFileRevise</li> |
3273 | + <li> LibraryMediaAdd</li> |
3274 | + <li> LibraryMediaEdit</li> |
3275 | + <li> LibraryMediaRetire</li> |
3276 | + <li> LibraryMediaDownload</li> |
3277 | + <li> LibraryMediaList</li></ul> |
3278 | + |
3279 | + <a name="Schedule" id="Schedule"></a><h3>Schedule</h3> |
3280 | + <ul><li> ScheduleList</li> |
3281 | + <li> ScheduleAdd</li> |
3282 | + <li> ScheduleEdit</li> |
3283 | + <li> ScheduleDelete</li></ul> |
3284 | + |
3285 | + <a name="Template" id="Template"></a><h3>Template</h3> |
3286 | + <ul><li> TemplateList</li> |
3287 | + <li> TemplateDelete</li></ul> |
3288 | + |
3289 | + <a name="Resolution" id="Resolution"></a><h3>Resolution</h3> |
3290 | + <ul><li> ResolutionList</li></ul> |
3291 | + |
3292 | + <a name="Modules" id="Modules"></a><h3>Modules</h3> |
3293 | + <ul><li> ModuleList</li></ul> |
3294 | + |
3295 | + <a name="Other" id="Other"></a><h3>Other</h3> |
3296 | + <ul><li> Version</li> |
3297 | + <li> ServerStatus</li></ul> |
3298 | + </blockquote> |
3299 | + |
3300 | + <a name="Method_Calls" id="Method_Calls"></a><h2>Method Calls</h2> |
3301 | + |
3302 | + <blockquote> |
3303 | + <a name="LayoutAdd" id="LayoutAdd"></a><h3>LayoutAdd</h3> |
3304 | + <p>Parameters</p> |
3305 | + <ul><li> layout - The Name of the Layout</li> |
3306 | + <li> description - The Description of the Layout</li> |
3307 | + <li> permissionid - PermissionID for the layout</li> |
3308 | + <li> tags - Tags for the Layout</li> |
3309 | + <li> templateid - Template for the Layout</li> |
3310 | + </ul> |
3311 | + |
3312 | + <p>Response</p> |
3313 | + <ul><li> layout - The ID of the layout</li></ul> |
3314 | + |
3315 | + <p>Errors</p> |
3316 | + <ul><li> Code 1 - Access Denied</li> |
3317 | + <li> Code 25001 - Layout Name must be between 1 and 50 characters</li> |
3318 | + <li> Code 25002 - Description must be less than 254 characters</li> |
3319 | + <li> Code 25003 - All tags combined must be less that 254 characters</li> |
3320 | + <li> Code 25004 - User already has a layout with this name</li> |
3321 | + <li> Code 25005 - Database error adding layout</li> |
3322 | + <li> Code 25006 - Failed to Parse Tags</li> |
3323 | + <li> Code 25007 - Unable to update layout xml</li> |
3324 | + <li> Code 25008 - Unable to Delete layout on failure</li> |
3325 | + </ul> |
3326 | + |
3327 | + <a name="LayoutEdit" id="LayoutEdit"></a><h3> <span class="mw-headline"> LayoutEdit </span></h3> |
3328 | + <p>Not implemented</p> |
3329 | + |
3330 | + <a name="LayoutUpdateXlf" id="LayoutUpdateXlf"></a><h3> <span class="mw-headline"> LayoutUpdateXlf </span></h3> |
3331 | + <p>Not Implemented</p> |
3332 | + |
3333 | + <a name="LayoutBackground" id="LayoutBackground"></a><h3> <span class="mw-headline"> LayoutBackground </span></h3> |
3334 | + <p>Not Implemented</p> |
3335 | + |
3336 | + <a name="LayoutDelete" id="LayoutDelete"></a><h3> <span class="mw-headline"> LayoutDelete </span></h3> |
3337 | + <p>Parameters</p> |
3338 | + <ul><li> layoutId - The ID of the layout to delete</li></ul> |
3339 | + <p>Response</p> |
3340 | + <ul><li> success = true</li></ul> |
3341 | + <p>Errors</p> |
3342 | + <ul><li> Code 1 - Access Denied</li><li> Code 25008 - Unable to delete layout</li></ul> |
3343 | + |
3344 | + <a name="TemplateDelete" id="TemplateDelete"></a><h3> <span class="mw-headline"> TemplateDelete </span></h3> |
3345 | + <p>Parameters</p> |
3346 | + <ul><li> templateId - The ID of the template to delete</li></ul> |
3347 | + <p>Response</p> |
3348 | + <ul><li> success = true</li></ul> |
3349 | + <p>Errors</p> |
3350 | + <ul><li> Code 1 - Access Denied</li><li> Code 25105 - Unable to delete template</li></ul> |
3351 | + |
3352 | + <a name="LibraryMediaFileUpload" id="LibraryMediaFileUpload"></a><h3> <span class="mw-headline"> LibraryMediaFileUpload </span></h3> |
3353 | + <p>Parameters</p> |
3354 | + <ul> |
3355 | + <li> FileID - Null for 1st call</li><li> Chunk Offset</li> |
3356 | + <li> Check Sum (MD5)</li></ul> |
3357 | + <p>Response</p> |
3358 | + <ul><li> FileID</li> |
3359 | + <li> Offset (file length)</li></ul> |
3360 | + <p>Errors</p> |
3361 | + <ul><li> 1 - Access Denied</li> |
3362 | + <li> 2 - Payload Checksum doesn't match provided checksum</li> |
3363 | + <li> 3 - Unable to add File record to the Database</li> |
3364 | + <li> 4 - Library location does not exist</li> |
3365 | + <li> 5 - Unable to create file in the library location</li> |
3366 | + <li> 6 - Unable to write to file in the library location</li> |
3367 | + <li> 7 - File does not exist</li></ul> |
3368 | + |
3369 | + <a name="LibraryMediaAdd" id="LibraryMediaAdd"></a><h3> <span class="mw-headline"> LibraryMediaAdd </span></h3> |
3370 | + <p>Parameters </p> |
3371 | + <ul><li> fileId</li> |
3372 | + <li>type (image|video|flash|ppt)</li> |
3373 | + <li> name</li> |
3374 | + <li>duration</li> |
3375 | + <li> permissionId (1|2|3)</li> |
3376 | + <li> fileName (including extension)</li></ul> |
3377 | + <p>Response</p> |
3378 | + <ul><li> MediaID</li></ul> |
3379 | + <p>Errors</p> |
3380 | + <ul><li> Code 1 - Access Denied</li> |
3381 | + <li> Code 10 - The Name cannot be longer than 100 characters</li> |
3382 | + <li> Code 11 - You must enter a duration</li> |
3383 | + <li> Code 12 - This user already owns media with this name</li> |
3384 | + <li> Code 13 - Error inserting media into the database</li> |
3385 | + <li> Code 14 - Cannot clean up after failure</li> |
3386 | + <li> Code 15 - Cannot store file</li> |
3387 | + <li> Code 16 - Cannot update stored file location</li> |
3388 | + <li> Code 18 - Invalid File Extension</li></ul> |
3389 | + |
3390 | + <a name="LibraryMediaEdit" id="LibraryMediaEdit"></a><h3> <span class="mw-headline"> LibraryMediaEdit </span></h3> |
3391 | + <p>Parameters</p> |
3392 | + <ul><li> mediaId</li> |
3393 | + <li> name</li> |
3394 | + <li>duration</li> |
3395 | + <li> permissionId (1|2|3)</li> |
3396 | + </ul> |
3397 | + <p>Response</p> |
3398 | + <ul><li> success</li></ul> |
3399 | + <p>Errors</p> |
3400 | + <ul><li> 1 - Access Denied</li> |
3401 | + <li> 10 - The Name cannot be longer than 100 characters</li> |
3402 | + <li> 11 - You must enter a duration</li> |
3403 | + <li> 12 - This user already owns media with this name</li> |
3404 | + <li> 30 - Database failure updating media</li> |
3405 | + </ul> |
3406 | + |
3407 | + <a name="LibraryMediaFileRevise" id="LibraryMediaFileRevise"></a><h3> <span class="mw-headline"> LibraryMediaFileRevise </span></h3> |
3408 | + <p>Parameters</p> |
3409 | + <ul><li> mediaId</li> |
3410 | + <li> fileId</li> |
3411 | + <li> fileName (including extension)</li></ul> |
3412 | + <p>Response</p> |
3413 | + <ul><li> mediaId</li></ul> |
3414 | + <p>Errors</p> |
3415 | + <ul><li> 1 - Access Denied</li> |
3416 | + <li> 13 - Error inserting media into the database</li> |
3417 | + <li> 14 - Cannot clean up after failure</li> |
3418 | + <li> 15 - Cannot store file</li> |
3419 | + <li> 16 - Cannot update stored file location</li> |
3420 | + <li> 18 - Invalid File Extension</li> |
3421 | + <li> 31 - Unable to get information about existing media record</li> |
3422 | + <li> 32 - Unable to update existing media record</li> |
3423 | + </ul> |
3424 | + |
3425 | + <a name="LibraryMediaRetire" id="LibraryMediaRetire"></a><h3> <span class="mw-headline"> LibraryMediaRetire </span></h3> |
3426 | + <p>Parameters</p> |
3427 | + <ul><li> mediaId</li></ul> |
3428 | + <p>Response</p> |
3429 | + <ul><li> success</li></ul> |
3430 | + <p>Error Codes</p> |
3431 | + <ul><li> 1 - Access Denied</li> |
3432 | + <li> 19 - Error retiring media</li></ul> |
3433 | + |
3434 | + <a name="LibraryMediaDelete" id="LibraryMediaDelete"></a><h3> <span class="mw-headline"> LibraryMediaDelete </span></h3> |
3435 | + <p>Parameters</p> |
3436 | + <ul><li> mediaId</li></ul> |
3437 | + <p>Response</p> |
3438 | + <ul><li> Success = True</li></ul> |
3439 | + <p>Error Codes</p> |
3440 | + <ul><li> 1 - Access Denied</li> |
3441 | + <li> 20 - Cannot check if media is assigned to layouts</li> |
3442 | + <li> 21 - Media is in use</li> |
3443 | + <li> 22 - Cannot locate stored files, unable to delete</li> |
3444 | + <li> 23 - Database error deleting media</li> |
3445 | + </ul> |
3446 | + |
3447 | + <a name="ModuleList" id="ModuleList"></a><h3> <span class="mw-headline"> ModuleList </span></h3> |
3448 | + <p>Response A list of modules with the following attributes:</p> |
3449 | + <ul><li> module - The Module Name</li> |
3450 | + <li> layoutOnly- Whether the module is a library based module or only available for layouts</li> |
3451 | + <li> description - A description of the module</li> |
3452 | + <li> extensions - Extensions allowed by this module</li> |
3453 | + </ul> |
3454 | + <p>Error Codes</p> |
3455 | + <ul><li> 40 - Unable to query for modules</li></ul> |
3456 | + |
3457 | + <a name="Version" id="Version"></a><h3> <span class="mw-headline"> Version </span></h3> |
3458 | + <p>Response</p> |
3459 | + <pre><?xml version="1.0"?> |
3460 | + <rsp status="ok"> |
3461 | + <version app_ver="1.1.1" XlfVersion="1" XmdsVersion="2" DBVersion="22"/> |
3462 | + </rsp> |
3463 | + </pre> |
3464 | + </blockquote> |
3465 | + |
3466 | + <?php include('../../template/footer.php'); ?> |
3467 | + </body> |
3468 | +</html> |
3469 | |
3470 | === added file 'server/manual/content/admin/displays.php' |
3471 | --- server/manual/content/admin/displays.php 1970-01-01 00:00:00 +0000 |
3472 | +++ server/manual/content/admin/displays.php 2013-04-11 16:56:27 +0000 |
3473 | @@ -0,0 +1,189 @@ |
3474 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
3475 | +<?php include('../../template.php'); ?> |
3476 | +<html> |
3477 | + <head> |
3478 | + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> |
3479 | + <title><?php echo PRODUCT_NAME; ?> Documentation</title> |
3480 | + <link rel=stylesheet type="text/css" href="../../css/doc.css"> |
3481 | + <meta http-equiv="Content-Type" content="text/html" /> |
3482 | + <meta name="keywords" content="digital signage, signage, narrow-casting, <?php echo PRODUCT_NAME; ?>, open source, agpl" /> |
3483 | + <meta name="description" content="<?php echo PRODUCT_NAME; ?> is an open source digital signage solution. It supports all main media types and can be interfaced to other sources of data using CSV, Databases or RSS." /> |
3484 | + |
3485 | + <link href="img/favicon.ico" rel="shortcut icon"/> |
3486 | + <!-- Javascript Libraries --> |
3487 | + <script type="text/javascript" src="lib/jquery.pack.js"></script> |
3488 | + <script type="text/javascript" src="lib/jquery.dimensions.pack.js"></script> |
3489 | + <script type="text/javascript" src="lib/jquery.ifixpng.js"></script> |
3490 | + </head> |
3491 | + <body> |
3492 | + <a name="Displays" id="Displays"></a><h1>Displays</h1> |
3493 | + |
3494 | + <p>Displays are how you output your layouts with <?php echo PRODUCT_NAME; ?>.</p> |
3495 | + <p>Each client application registered with the server creates a new display record in <?php echo PRODUCT_NAME; ?> server. You can then choose a |
3496 | + default layout for that display, schedule further layouts on the display and control who has access to the display, |
3497 | + as well as monitor its status from the Display Management page.</p> |
3498 | + |
3499 | + <p>The Display Manamagement page is accessed from the Nagivation Bar by clicking on "Displays > Displays"</p> |
3500 | + |
3501 | + <p><img alt="SA Displays" src="sa_displays.png" |
3502 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3503 | + width="820" height="262"></p> |
3504 | + <blockquote> |
3505 | + <a name="Display_Edit" id="Display_Edit"></a><h3>Display Edit</h3> |
3506 | + <p>After a new display client is registered with <?php echo PRODUCT_NAME; ?> server, you need to perform Edit granting license to the client |
3507 | + to work.</p> |
3508 | + <p> Click on the 'Edit" button of the Display loads its editing window. You can then proceed to change the settings for |
3509 | + the chosen Display. </p> |
3510 | + |
3511 | + <p><img alt="Display Edit" src="sa_display_edit.png" |
3512 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3513 | + width="493" height="231"></p> |
3514 | + |
3515 | + <a name="Display_Delete" id="Display_Delete"></a><h3>Display Delete</h3> |
3516 | + <p>After a display client is registered and licensed with <?php echo PRODUCT_NAME; ?> server, you can "unlicense" a client which will prevent it from connecting |
3517 | + to the server.</p> |
3518 | + <p> Click on the 'Delete" button of the Display you want to unlicense; and the below form is loaded. </p> |
3519 | + |
3520 | + <p><img alt="Display Delete" src="sa_display_delete.png" |
3521 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3522 | + width="357" height="217"></p> |
3523 | + |
3524 | + <p>Note: Delete a display cannot be undone. The client needs to re-regisiter and liscense before it is allowed to connect to the server again.</p> |
3525 | + |
3526 | + <a name="Media_Inventory" id="Media_Inventory"></a><h3>Media Inventory</h3> |
3527 | + <p>When you schedule new content, or change existing content, it is helpful to know that the displays have updated with the new |
3528 | + information. In a <?php echo PRODUCT_NAME; ?> server and client system, the client applications will connect in to the server periodically |
3529 | + and update itself on the media items that they have stored locally. Media Inventory allows you to look at a glance to check if |
3530 | + your updates were pulled by the clients yet.</p> |
3531 | + <p>On the display management page, you'll see a column "Status". The status light can be one of either green, amber or red.</p> |
3532 | + <p>When you make a change that affects the output of the server to a given client (for example if you modify a layout scheduled |
3533 | + on that client, schedule a new layout or change the default layout), the status light will immediately goes red. That signifies |
3534 | + that as far as the server is aware there are updates pending for that client and it has not received them yet.</p> |
3535 | + <p>The client will then connect up to the server on a schedule and will read the new information that is available. If there |
3536 | + are new files to download (for example if you modified a layout or scheduled something completely new), the status light will |
3537 | + turn amber while the files are being downloaded.</p> |
3538 | + <p>Once the client is satisfied that all files have been downloaded, it will send an inventory of all the files it has active |
3539 | + in it is cache back to the server, and the server will change the status light to green.</p> |
3540 | + <p>If you are curious to see what files the client is actively monitoring, you can click the "Media Inventory" button and a popup |
3541 | + will appear showing the status of each file, along with the last time the client checked it was still stored correctly on disk. |
3542 | + You will also see any files that the client is in the process of downloading. (Note here that what you will not see is files |
3543 | + that the client needs to download, but that it is unaware of at the present time. For example. If you schedule a new layout |
3544 | + and immediately go to the Media Inventory before the client has connected up to the server, you'll see the status light is red, |
3545 | + but the content of the media inventory will not show the new files that are required. Once the client connects, those new files |
3546 | + will be included in the inventory automatically.)</p> |
3547 | + |
3548 | + <p><img alt="Display Media Inventory" src="sa_display_media_inventory.png" |
3549 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3550 | + width="418" height="268"></p> |
3551 | + |
3552 | + <a name="Display_Group_Member" id="Display_Group_Member"></a><h3>Group Members</h3> |
3553 | + <p>To find the Group that the Display is belonged to, click on the "Group Members" on the corresponding row.</p> |
3554 | + |
3555 | + <p><img alt="SA Display Group Edit" src="sa_display_groups_edit.png" |
3556 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3557 | + width="408" height="218"></p> |
3558 | + </blockquote> |
3559 | + |
3560 | + <h2>Wake On LAN (WOL)</h2> |
3561 | + <blockquote> |
3562 | + <h3>Introducing Wake On Lan for Display Clients</h3> |
3563 | + <p>This section will look at the Wake On Lan (WOL) feature of <?php echo PRODUCT_NAME; ?>.</p> |
3564 | + |
3565 | + <p>There has been a lot of interest over the years <?php echo PRODUCT_NAME; ?> has been running for a solution to be "green", "save power" and |
3566 | + generally not have the <?php echo PRODUCT_NAME; ?> display screen solution on unnecessarily.</p> |
3567 | + |
3568 | + <p>The WOL function is intended to be used for display clients that are addressable by the server, by this we mean that there |
3569 | + has to be a clear addressable network route between the server and the client that needs to wake up. It is also required that |
3570 | + WOL is turned on in any necessary settings on the client PC.</p> |
3571 | + |
3572 | + <p>The WOL configuration happens on a display by display basis from the Edit Display form. Each display has new settings for:</p> |
3573 | + <ul> |
3574 | + <li><strong>Enable Wake On LAN</strong> - (Turn WOL on/off for the display)</li> |
3575 | + <li><strong>Wake On LAN Time</strong> - (Specify a time for this display to wake, using the 24 hr clock)</li> |
3576 | + <li><strong>BroadCast Address</strong> - (The BroadCast address of the client, if unknown use the IP address and fill in the CIDR field)</li> |
3577 | + <li><strong>Wake On LAN Secure On</strong> - (The SecureOn password for the client, if supported)</li> |
3578 | + <li><strong>Wake On LAN CIDR</strong> - (The CIDR subnet mask, if the BroadCast Address is unknown)</li> |
3579 | + </ul> |
3580 | + |
3581 | + <p>Once the display has these settings it can be woken up in 2 ways:</p> |
3582 | + <h3>Wake On LAN Now</h3> |
3583 | + |
3584 | + <p><img alt="SA Display WOL" src="sa_display_wol.png" |
3585 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3586 | + width="308" height="158"></p> |
3587 | + |
3588 | + <p>Each display has the "Wake On LAN" button which can be used to send a wake on LAN command on demand. Clicking the button displays |
3589 | + a form for confirmation, once this is pressed the command is send immediately to the client.</p> |
3590 | + |
3591 | + <h3>Wake On LAN Time - Maintenance Script</h3> |
3592 | + <p>In addition to the WOL now function, the <?php echo PRODUCT_NAME; ?> maintenance module has been altered to send a WOL packet to any display which has |
3593 | + a "Wake On LAN Time" specified. It will only send the command once, as the time window is passed.</p> |
3594 | + |
3595 | + <p>The maintenance script has to be running for this to work correctly. Maintenance instructions can be found on the |
3596 | + <a title="Maintenance Instructions" href="settings.php">Settings -> Maintenance</a>.</p> |
3597 | + |
3598 | + <h3>Putting the client to sleep</h3> |
3599 | + <p>There are a few different options for putting the client to sleep - such as a scheduled task. However, the next article in this series |
3600 | + will look at an option built into <?php echo PRODUCT_NAME; ?>. The "Shell Command" module.</p> |
3601 | + |
3602 | + <p>Note: WOL is not routable. The <?php echo PRODUCT_NAME; ?> server is unable to see clients over the internet that are behind NAT, |
3603 | + or on a different subnet.</p> |
3604 | + </blockquote> |
3605 | + |
3606 | + <a name="Display_Group" id="Display_Group"></a><h1>Display Groups</h1> |
3607 | + <p>A group should be added when there is a new set of components required for a particular group of users. |
3608 | + It could be that you want certain users to only have access to certain components or that certain users |
3609 | + should not be able to share their content, playlists and schedules with each other.</p> |
3610 | + |
3611 | + <p><strong>Components</strong> refer to parts of <?php echo PRODUCT_NAME; ?>, e.g. Content, or Playlists.</p> |
3612 | + |
3613 | + <blockquote> |
3614 | + <a name="Adding_a_Group" id="Adding_a_Group"></a><h3>Adding a Group</h3> |
3615 | + <p>Click the navigation menu "Displays > Display Groups" to go to Display Groups page. To add a group click on |
3616 | + the "Add Group" button found at the top of the Displays list.</p> |
3617 | + |
3618 | + <a name="Edit_Group" id="Edit_Group"></a><h3>Edit a Group</h3> |
3619 | + <p>To edit a group click on the edit button on the row belonging to the group you wish to edit.</p> |
3620 | + |
3621 | + <p><img alt="SA Display Group" src="sa_display_groups.png" |
3622 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3623 | + width="621" height="226"></p> |
3624 | + |
3625 | + <p><strong>Name</strong> is a unique identifier for a group.</p> |
3626 | + |
3627 | + <a name="Delete_Group" id="Delete_Group"></a><h3>Delete a Group</h3> |
3628 | + <p>To delete a group click on the delete button on the row belonging to the group you wish to delete.</p> |
3629 | + |
3630 | + <a name="Group_Component_Security" id="Group_Component_Security"></a><h3>Group / Component Security</h3> |
3631 | + <p>When editing a group the components that are assigned / unassigned to that group are show. These |
3632 | + determine the permissions of the users belonging to that group.</p> |
3633 | + <p>You should always have at least one group.</p> |
3634 | + |
3635 | + <a name="Group_Members" id="Group_Members"></a><h3>Group Members</h3> |
3636 | + |
3637 | + <p>Click on "Group Members" load the "Manage Membership" form for editing. All the Displays on the system will be shown. |
3638 | + You can assign or remove group members.</p> |
3639 | + |
3640 | + <p><img alt="SA Display Group Members" src="sa_display_group_members.png" |
3641 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3642 | + width="408" height="270"></p> |
3643 | + |
3644 | + </blockquote> |
3645 | + |
3646 | + <a name="Display_Statistic" id="Display_Statistic"></a><h1>Display Statistic</h1> |
3647 | + <p>Click on "Statistic" shows a page giving statistic detail of all the system Displys on the followings. You can define |
3648 | + the filters i.e. Date, Display & Media, for the required statistical data display.</p> |
3649 | + |
3650 | + <ul> |
3651 | + <li><h3>Layout ran</h3>Statistical data on layouts run for each Display.</li> |
3652 | + <li><h3>Library Media ran</h3>Statistical data on Media played for each Display.</li> |
3653 | + <li><h3>Media on Layouts ran</h3>Statistical data on Media played on all layouts run for each Display.</li> |
3654 | + </ul> |
3655 | + |
3656 | + <p><img alt="SA Display Statistic" src="sa_display_statistic.png" |
3657 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3658 | + width="648" height="650"></p> |
3659 | + |
3660 | + <?php include('../../template/footer.php'); ?> |
3661 | + </body> |
3662 | +</html> |
3663 | |
3664 | === added file 'server/manual/content/admin/modules.php' |
3665 | --- server/manual/content/admin/modules.php 1970-01-01 00:00:00 +0000 |
3666 | +++ server/manual/content/admin/modules.php 2013-04-11 16:56:27 +0000 |
3667 | @@ -0,0 +1,66 @@ |
3668 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
3669 | +<?php include('../../template.php'); ?> |
3670 | +<html> |
3671 | + <head> |
3672 | + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> |
3673 | + <title><?php echo PRODUCT_NAME; ?> Documentation</title> |
3674 | + <link rel=stylesheet type="text/css" href="../../css/doc.css"> |
3675 | + <meta http-equiv="Content-Type" content="text/html" /> |
3676 | + <meta name="keywords" content="digital signage, signage, narrow-casting, <?php echo PRODUCT_NAME; ?>, open source, agpl" /> |
3677 | + <meta name="description" content="<?php echo PRODUCT_NAME; ?> is an open source digital signage solution. It supports all main media types and can be interfaced to other sources of data using CSV, Databases or RSS." /> |
3678 | + |
3679 | + <link href="img/favicon.ico" rel="shortcut icon"/> |
3680 | + <!-- Javascript Libraries --> |
3681 | + <script type="text/javascript" src="lib/jquery.pack.js"></script> |
3682 | + <script type="text/javascript" src="lib/jquery.dimensions.pack.js"></script> |
3683 | + <script type="text/javascript" src="lib/jquery.ifixpng.js"></script> |
3684 | + </head> |
3685 | + <body> |
3686 | + |
3687 | + <h1>Modules</h1> |
3688 | + <p><?php echo PRODUCT_NAME; ?> server content handling is done by Modules.</p> |
3689 | + <p>Click "Administration -> Modules" load the modules parameters for edit.</p> |
3690 | + |
3691 | + <p><img alt="SA_Modules" src="sa_modules.png" |
3692 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3693 | + width="644" height="418"></p> |
3694 | + |
3695 | + <p><?php echo PRODUCT_NAME; ?> server modules table contains parameters for user edit.</p> |
3696 | + <ul> |
3697 | + <li><strong>Name:</strong> |
3698 | + <p>System given Name for the specific module.</p</li> |
3699 | + <li><strong>Description:</strong> |
3700 | + <p>A breif description of the modules.</p</li> |
3701 | + <li><strong>Library Media:</strong> |
3702 | + <p>Indicated if the content is saved in the <?php echo PRODUCT_NAME; ?> Library. Unchecked indicate the specific content is only save |
3703 | + with the Layout-Regions.</p</li> |
3704 | + <li><strong>Valid Extensions:</strong> |
3705 | + <p>Valid file extensions that are supported by the specific module.</p</li> |
3706 | + <li><strong>Image Uri:</strong> |
3707 | + <p>Link to the module icon for UI display, usually leave as it.</p></li> |
3708 | + <li><strong>Enabled:</strong> |
3709 | + <p>System administrator may enable/disable the specific content for <?php echo PRODUCT_NAME; ?> user access.</p</li> |
3710 | + </ul> |
3711 | + |
3712 | + <h2>Edit</h2> |
3713 | + <p>Click Edit button for the specific content type load the following form for user changes.</p> |
3714 | + |
3715 | + <ul> |
3716 | + <li><h3>Content Without Extension:</h3> |
3717 | + <p>Admininstrator may enable or disable the content for user access.</p> |
3718 | + |
3719 | + <p><img alt="SA_Modules" src="sa_modules_text.png" |
3720 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3721 | + width="358" height="179"></p></li> |
3722 | + |
3723 | + <li><h3>Content With Extension:</h3> |
3724 | + <p>Administrator may add other valid files extensions that are supported by the <?php echo PRODUCT_NAME; ?> Client Display e.g. mp4.</p> |
3725 | + |
3726 | + <p><img alt="SA_Modules" src="sa_modules_video.png" |
3727 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3728 | + width="358" height="211"></p></li> |
3729 | + </ul> |
3730 | + |
3731 | + <?php include('../../template/footer.php'); ?> |
3732 | + </body> |
3733 | +</html> |
3734 | |
3735 | === added file 'server/manual/content/admin/overview.php' |
3736 | Binary files server/manual/content/admin/overview.php 1970-01-01 00:00:00 +0000 and server/manual/content/admin/overview.php 2013-04-11 16:56:27 +0000 differ |
3737 | === added file 'server/manual/content/admin/sa_advanced.png' |
3738 | Binary files server/manual/content/admin/sa_advanced.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_advanced.png 2013-04-11 16:56:27 +0000 differ |
3739 | === added file 'server/manual/content/admin/sa_advanced_sessions.png' |
3740 | Binary files server/manual/content/admin/sa_advanced_sessions.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_advanced_sessions.png 2013-04-11 16:56:27 +0000 differ |
3741 | === added file 'server/manual/content/admin/sa_api.png' |
3742 | Binary files server/manual/content/admin/sa_api.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_api.png 2013-04-11 16:56:27 +0000 differ |
3743 | === added file 'server/manual/content/admin/sa_display_delete.png' |
3744 | Binary files server/manual/content/admin/sa_display_delete.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_display_delete.png 2013-04-11 16:56:27 +0000 differ |
3745 | === added file 'server/manual/content/admin/sa_display_edit.png' |
3746 | Binary files server/manual/content/admin/sa_display_edit.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_display_edit.png 2013-04-11 16:56:27 +0000 differ |
3747 | === added file 'server/manual/content/admin/sa_display_group_members.png' |
3748 | Binary files server/manual/content/admin/sa_display_group_members.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_display_group_members.png 2013-04-11 16:56:27 +0000 differ |
3749 | === added file 'server/manual/content/admin/sa_display_groups.png' |
3750 | Binary files server/manual/content/admin/sa_display_groups.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_display_groups.png 2013-04-11 16:56:27 +0000 differ |
3751 | === added file 'server/manual/content/admin/sa_display_groups_edit.png' |
3752 | Binary files server/manual/content/admin/sa_display_groups_edit.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_display_groups_edit.png 2013-04-11 16:56:27 +0000 differ |
3753 | === added file 'server/manual/content/admin/sa_display_media_inventory.png' |
3754 | Binary files server/manual/content/admin/sa_display_media_inventory.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_display_media_inventory.png 2013-04-11 16:56:27 +0000 differ |
3755 | === added file 'server/manual/content/admin/sa_display_statistic.png' |
3756 | Binary files server/manual/content/admin/sa_display_statistic.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_display_statistic.png 2013-04-11 16:56:27 +0000 differ |
3757 | === added file 'server/manual/content/admin/sa_display_wol.png' |
3758 | Binary files server/manual/content/admin/sa_display_wol.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_display_wol.png 2013-04-11 16:56:27 +0000 differ |
3759 | === added file 'server/manual/content/admin/sa_displays.png' |
3760 | Binary files server/manual/content/admin/sa_displays.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_displays.png 2013-04-11 16:56:27 +0000 differ |
3761 | === added file 'server/manual/content/admin/sa_modules.png' |
3762 | Binary files server/manual/content/admin/sa_modules.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_modules.png 2013-04-11 16:56:27 +0000 differ |
3763 | === added file 'server/manual/content/admin/sa_modules_text.png' |
3764 | Binary files server/manual/content/admin/sa_modules_text.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_modules_text.png 2013-04-11 16:56:27 +0000 differ |
3765 | === added file 'server/manual/content/admin/sa_modules_video.png' |
3766 | Binary files server/manual/content/admin/sa_modules_video.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_modules_video.png 2013-04-11 16:56:27 +0000 differ |
3767 | === added file 'server/manual/content/admin/sa_setting_content.png' |
3768 | Binary files server/manual/content/admin/sa_setting_content.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_setting_content.png 2013-04-11 16:56:27 +0000 differ |
3769 | === added file 'server/manual/content/admin/sa_setting_default.png' |
3770 | Binary files server/manual/content/admin/sa_setting_default.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_setting_default.png 2013-04-11 16:56:27 +0000 differ |
3771 | === added file 'server/manual/content/admin/sa_setting_error.png' |
3772 | Binary files server/manual/content/admin/sa_setting_error.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_setting_error.png 2013-04-11 16:56:27 +0000 differ |
3773 | === added file 'server/manual/content/admin/sa_setting_general.png' |
3774 | Binary files server/manual/content/admin/sa_setting_general.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_setting_general.png 2013-04-11 16:56:27 +0000 differ |
3775 | === added file 'server/manual/content/admin/sa_setting_maintenance.png' |
3776 | Binary files server/manual/content/admin/sa_setting_maintenance.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_setting_maintenance.png 2013-04-11 16:56:27 +0000 differ |
3777 | === added file 'server/manual/content/admin/sa_setting_path.png' |
3778 | Binary files server/manual/content/admin/sa_setting_path.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_setting_path.png 2013-04-11 16:56:27 +0000 differ |
3779 | === added file 'server/manual/content/admin/sa_setting_permissions.png' |
3780 | Binary files server/manual/content/admin/sa_setting_permissions.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_setting_permissions.png 2013-04-11 16:56:27 +0000 differ |
3781 | === added file 'server/manual/content/admin/sa_setting_pwd.png' |
3782 | Binary files server/manual/content/admin/sa_setting_pwd.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/sa_setting_pwd.png 2013-04-11 16:56:27 +0000 differ |
3783 | === added file 'server/manual/content/admin/settings.php' |
3784 | --- server/manual/content/admin/settings.php 1970-01-01 00:00:00 +0000 |
3785 | +++ server/manual/content/admin/settings.php 2013-04-11 16:56:27 +0000 |
3786 | @@ -0,0 +1,311 @@ |
3787 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
3788 | +<html> |
3789 | + <head> |
3790 | + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> |
3791 | + <title>Xibo Documentation</title> |
3792 | + <link rel=stylesheet type="text/css" href="../../css/doc.css"> |
3793 | + <meta http-equiv="Content-Type" content="text/html" /> |
3794 | + <meta name="keywords" content="digital signage, signage, narrow-casting, xibo, open source, agpl" /> |
3795 | + <meta name="description" content="Xibo is an open source digital signage solution. It supports all main media types and can be interfaced to other sources of data using CSV, Databases or RSS." /> |
3796 | + |
3797 | + <link href="img/favicon.ico" rel="shortcut icon"/> |
3798 | + <!-- Javascript Libraries --> |
3799 | + <script type="text/javascript" src="lib/jquery.pack.js"></script> |
3800 | + <script type="text/javascript" src="lib/jquery.dimensions.pack.js"></script> |
3801 | + <script type="text/javascript" src="lib/jquery.ifixpng.js"></script> |
3802 | + </head> |
3803 | +<body> |
3804 | + <a name="Settings" id="Settings"></a><h1>Settings</h1> |
3805 | + <p>This page provides you with all the settings options to configure Xibo to your environment. Each tab provides a set of forms |
3806 | + where you can alter default settings and paths.</p> |
3807 | + <p>The items in the boxes provide you with details of your PHP settings on the server with Xibo installed.</p> |
3808 | + <p>Settings should only be modified by the administrator of the system, as incorrect settings could cause system |
3809 | + stablility issues.</p> |
3810 | + |
3811 | + <a name="Content" id="Content"></a><h2>Content</h2> |
3812 | + <blockquote> |
3813 | + <p>This tab allows you to set default content item settings - default length. This helps Xibo if the |
3814 | + file does not contain duration information.</p> |
3815 | + |
3816 | + <p><img alt="Setting_Content" src="sa_setting_content.png" |
3817 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3818 | + width="536" height="298"></p> |
3819 | + |
3820 | + <h3>Library Size & Bandwidth</h3> |
3821 | + <p>To manage limits on the library file size and monthly bandwidth usage. This is done by virtue of two settings in the database |
3822 | + table (LIBRARY_SIZE_LIMIT_KB & MONTHLY_XMDS_TRANSFER_LIMIT_KB).</p> |
3823 | + |
3824 | + <p>If no limits are entered in database, everything continues to work without restriction; however once a limit is entered Xibo will start |
3825 | + validating against these limits, and when they are exceeded will prevent the upload of new media / updates to clients.</p> |
3826 | + |
3827 | + <p>However these two settings are currently not available through the user interface; Only the statistical data is shown in Content page</p> |
3828 | + </blockquote> |
3829 | + |
3830 | + <a name="Default_Settings" id="Default_Settings"></a><h2>Default Settings</h2> |
3831 | + <blockquote> |
3832 | + <p>Default Settings set the default options on some forms to always appear and be applied unless altered. You can also change |
3833 | + your time zone in this section.</p> |
3834 | + |
3835 | + <p><img alt="Setting_Default" src="sa_setting_default.png" |
3836 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3837 | + width="536" height="298"></p> |
3838 | + </blockquote> |
3839 | + |
3840 | + <a name="Error" id="Error"></a><h2>Error</h2> |
3841 | + <blockquote> |
3842 | + <p>Tab allows you to alter how Xibo handles errors. You can turn the error and audit logs on and off. As logs records |
3843 | + size growth rapidly, you should take care to enable it only when necessary e.g. during system debug.</p> |
3844 | + |
3845 | + <p><img alt="Setting_Error" src="sa_setting_error.png" |
3846 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3847 | + width="538" height="274"></p> |
3848 | + </blockquote> |
3849 | + |
3850 | + <a name="General_Setting" id="General_Setting"></a><h2>General Settings</h2> |
3851 | + <blockquote> |
3852 | + <p>General setting provide details of your current settings in your PHP.ini file on your server. It also allows you to setup |
3853 | + whether you are collecting statics off your Xibo displays.</p> |
3854 | + |
3855 | + <p><img alt="Setting_General" src="sa_setting_general.png" |
3856 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3857 | + width="539" height="451"></p> |
3858 | + |
3859 | + <a name="Server_Key" id="Server_Key"></a><h3>Server Key (SERVER_KEY)</h3> |
3860 | + <p>The Server Key must be provided and required by the Client during the initial Client Display setup.</p> |
3861 | + |
3862 | + <a name="Required_Files_LookAhead" id="Required_Files_LookAhead"></a><h3>Required Files Look Ahead (REQUIRED_FILES_LOOKAHEAD)</h3> |
3863 | + <p>The local client library may get larger and larger if its obsoleted contents are not deleted as time goes by.</p> |
3864 | + <p><strong>Clearing up old and unused files:</strong><br /> |
3865 | + The client manages its content library automatically, clearing up files that are no longer needed (including temporary files).</p> |
3866 | + <p>This is managed by using the "Required Files Look Ahead" setting in the server; increasing this value causes the client |
3867 | + to consider media to be required for longer period of time.</p> |
3868 | + |
3869 | + </blockquote> |
3870 | + |
3871 | + <a name="Maintenance" id="Maintenance"></a><h2>Maintenance</h2> |
3872 | + <blockquote> |
3873 | + <p>Tab allows you configure Xibo maintenance.</p> |
3874 | + |
3875 | + <a name="Introduction" id="Introduction"></a><h3>Introduction</h3> |
3876 | + <p>When Xibo is running, logs and statistics slowly accumulate on the server and consume disk space. In extreme cases the sheer |
3877 | + volume of those records can cause the server interface to slow and become unresponsive.</p> |
3878 | + |
3879 | + <p>It is also reassuring to know that if there is a problem with a display and it stops checking in with the Xibo server, you will |
3880 | + be notified by email so you can take action to resolve the problem.</p> |
3881 | + |
3882 | + <p>The maintenance script can be scheduled to run periodically and perform background cleanup tasks such as deleting old logs and |
3883 | + statistics, and checking the status of the displays.</p> |
3884 | + |
3885 | + <a name="Prerequisites" id="Prerequisites"></a><h3>Prerequisites</h3> |
3886 | + <p>In order to send email notifications, your PHP must have a working mail() command.</p> |
3887 | + <p>You need to ensure your PHP installation is configured to send mail via a |
3888 | + <a href="http://email.about.com/od/emailprogrammingtips/qt/Configure_PHP_to_Use_a_Local_Mail_Server_for_Sending_Mail.htm" class="external text" |
3889 | + title="http://email.about.com/od/emailprogrammingtips/qt/Configure_PHP_to_Use_a_Local_Mail_Server_for_Sending_Mail.htm" rel="nofollow">local</a> |
3890 | + or <a href="http://email.about.com/od/emailprogrammingtips/qt/Configure_PHP_to_Use_a_Remote_SMTP_Server_for_Sending_Mail.htm" class="external text" |
3891 | + title="http://email.about.com/od/emailprogrammingtips/qt/Configure_PHP_to_Use_a_Remote_SMTP_Server_for_Sending_Mail.htm" rel="nofollow">remote</a> |
3892 | + SMTP server.</p> |
3893 | + |
3894 | + <p>Once you have verified that your PHP installation has a working mail() command, you can proceed to the next step.</p> |
3895 | + |
3896 | + <a name="Setup_for_New_Xibo_Installations" id="Setup_for_New_Xibo_Installations"></a><h3>Setup for New Xibo Installations</h3> |
3897 | + <p>Xibo server 1.2.0 and later have the maintenance functionality.</p> |
3898 | + <p>New Xibo installations come pre-populated with some default values for the maintenance script, but with the entire system |
3899 | + disabled. You can proceed to the configuration section.</p> |
3900 | + |
3901 | + <a name="Setup_for_Xibo_Installations_.3C_1.2.0" id="Setup_for_Xibo_Installations_.3C_1.2.0"></a><h3>Setup for Xibo Installations < 1.2.0</h3> |
3902 | + <p>Only Xibo server versions 1.2.0 and later have this functionality. If you're upgrading your older Xibo server installations to 1.2.0 |
3903 | + then you will be prompted to modify the default settings as part of the upgrade process.</p> |
3904 | + <p>If you decide to enable the maintenance script as part of your upgrade, it will automatically be configured to use "protected" |
3905 | + mode as this is the most secure option. The other options are discussed in detail below. You should change your Maintenance Key immediately |
3906 | + in protected mode as the default key is publicly available and offers no protection.</p> |
3907 | + |
3908 | + <a name="Configuration" id="Configuration"></a><h3>Configuration</h3> |
3909 | + <p>Configuration for the maintenance script can be found in Xibo server at "Administration -> Settings -> Maintenance" tab.</p> |
3910 | + |
3911 | + <p><img alt="Setting_Maintenance" src="sa_setting_maintenance.png" |
3912 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
3913 | + width="529" height="577"></p> |
3914 | + |
3915 | + <p>There are several options associated with the maintenance script:</p> |
3916 | + |
3917 | + <ul> |
3918 | + <li>Maintenance Enabled (MAINTENANCE_ENABLED): |
3919 | + <ul> |
3920 | + <li><b>Off</b> - All maintenance functionality is disabled.</li> |
3921 | + <li><b>On</b> - All maintenance functionality is enabled. You can use any of the methods below to call the maintenance script |
3922 | + on a schedule without specifying a key.</li> |
3923 | + <li> <b>Protected</b> - All maintenance functionality is enabled. You must specify the correct key when calling the maintenance |
3924 | + script. This is to prevent unauthorised persons from repeatedly calling the script and generating large amounts of alert email.</li> |
3925 | + </ul></li> |
3926 | + |
3927 | + <li>Maintenance Key (MAINTENANCE_KEY)<br /> |
3928 | + The secret key required to allow the maintenance script to run when "Maintenance Enabled" is set to "Protected" mode.</li> |
3929 | + |
3930 | + <li>Email Alerts (MAINTENANCE_EMAIL_ALERTS)<br /> |
3931 | + Globally enable or disable the sending of email alerts. You can enable/disable alerts for individual displays in Display Management.</li> |
3932 | + |
3933 | + <li>Alert Timeout (MAINTENANCE_ALERT_TOUT)<br /> |
3934 | + Globally configure how many minutes after a display lasts connects to the server we should consider it to have a problem and cause an |
3935 | + alert to be sent. You can override this default for individual displays in Display Management. You should make sure this time is longer |
3936 | + than the collection interval you have configured on your clients to avoid false positive alerts.</li> |
3937 | + |
3938 | + <li>Email To (mail_to)<br /> |
3939 | + Who should the alert emails be sent to?</li> |
3940 | + |
3941 | + <li>Email From (mail_from)<br /> |
3942 | + Who should the alert emails appear to be from?</li> |
3943 | + |
3944 | + <li>Log Maximum Age (MAINTENANCE_LOG_MAXAGE)<br /> |
3945 | + How many days worth of log messages to keep. Logs older than this will be deleted. Set to 0 to keep all logs indefinitely.</li> |
3946 | + |
3947 | + <li>Statistics Maximum Age (MAINTENANCE_STAT_MAXAGE)<br /> |
3948 | + How many days worth of statistics to keep. Statistics older than this will be deleted. Set to 0 to keep all statistics indefinitely.</li> |
3949 | + </ul> |
3950 | + <p>Once you have decided which of the options you want to enable and the parameters required, you need to setup some mechanism for calling |
3951 | + the <b>maintenance.php</b> script on a schedule. Skip to the appropriate section for your server below.</p> |
3952 | + <p>If you do not have permission to setup scheduled tasks on your server, you could arrange for a remote computer to call the maintenance.php script.</p> |
3953 | + |
3954 | + <a name="Windows_Scheduled_Task" id="Windows_Scheduled_Task"></a><h2>Windows Scheduled Task</h2> |
3955 | + <p>This section is broadly based upon the Moodle Cron documentation available <a href="http://docs.moodle.org/en/Cron#Managing_Cron_on_Windows_systems" |
3956 | + class="external text" title="http://docs.moodle.org/en/Cron#Managing_Cron_on_Windows_systems" rel="nofollow">here</a>.</p> |
3957 | + |
3958 | + <ul> |
3959 | + <li>Find the php.exe or php-win.exe program on your server. It will be in your PHP installation directory.</li> |
3960 | + <li>Setup a <b>Scheduled Task</b></li> |
3961 | + <ul> |
3962 | + <li>Go to Start -> Control Panel -> Scheduled Tasks -> Add Scheduled Task.</li> |
3963 | + <li>Click "Next" to start the wizard:</li> |
3964 | + <li>Click the "Browse..." button and browse to your php.exe or php-win.exe and click "Open"</li> |
3965 | + <li>Type "Xibo Maintenance" as the name of the task and select "Daily" as the schedule. Click "Next".</li> |
3966 | + <li>Select "12:00 AM" as the start time, perform the task "Every Day" and choose today's date as the starting date. Click "Next".</li> |
3967 | + <li>Enter the username and password of the user the task will run under (it does not have to be a privileged account at all). |
3968 | + Make sure you type the password correctly. Click "Next".</li> |
3969 | + <li>Mark the checkbox titled "Open advanced properties for this task when I click Finish" and click "Finish".</li> |
3970 | + <li>In the new dialog box, type the following in the "Run:" text box: |
3971 | + <pre>c:\php\php-win.exe -f c:\path\to\xibo\maintenance.php secret</pre> |
3972 | + Replace secret with your Maintenance Key if you are running in Protected Mode.</li> |
3973 | + <li>Click on the "Schedule" tab and there in the "Advanced..." button.</li> |
3974 | + <li>Mark the "Repeat task" checkbox and set "Every:" to 5 minutes, and set "Until:" to "Duration" and type "23" hours and "59" minutes. |
3975 | + If you are Alert Timeouts are less than 5 minutes, you may want to run the maintenance script more often.</li> |
3976 | + <li>Click "OK".</li> |
3977 | + </ul> |
3978 | + <li><b>Test your scheduled task</b>. |
3979 | + <p>You can test that your scheduled task can run successfully by clicking it with the right button |
3980 | + and chosing "Run". If everything is correctly setup, you will briefly see a DOS command window while php executes and fetches the cron |
3981 | + page and then it disappears. If you refresh the scheduled tasks folder, you will see the <i>Last Run Time column</i> |
3982 | + in detailed folder view) reflects the current time, and that the Last Result column displays "0x0" (everything went OK). |
3983 | + If either of these is different, then you should recheck your setup.</p></li></ul> |
3984 | + |
3985 | + <a name="Maintenance_on_Unix_Servers" id="Maintenance_on_Unix_Servers"></a><h2>Maintenance on Unix Servers</h2> |
3986 | + <p>This section is broadly based upon the Moodle Cron documentation available <a href="http://docs.moodle.org/en/Cron#Using_a_cron_command_line_in_Unix" |
3987 | + class="external text" title="http://docs.moodle.org/en/Cron#Using_a_cron_command_line_in_Unix" rel="nofollow">here</a>. |
3988 | + There are different command line programs you can use to call the maintenance page from the command line. Not all of them may be available |
3989 | + on a given server.</p> |
3990 | + |
3991 | + <p>For example, you can use a Unix utility like 'wget': </p> |
3992 | + <pre>wget -q -O /dev/null http://example.com/xibo/maintenance.php?key=changeme</pre> |
3993 | + |
3994 | + <p>Note in this example that the output is thrown away (to /dev/null).</p> |
3995 | + <p>The same thing using lynx:</p> |
3996 | + <pre>lynx -dump http://example.com/xibo/maintenance.php changeme > /dev/null</pre> |
3997 | + |
3998 | + <p>Note in this example that the output is thrown away (to /dev/null).</p> |
3999 | + <p>Alternatively, you can use a standalone version of PHP, compiled to be run on the command line. The disadvantage is that you need to |
4000 | + have access to a command-line version of php. The advantage is that your web server logs are not filled with constant requests to |
4001 | + maintenance.php and you can run at a lower I/O and CPU priority.</p> |
4002 | + <pre> php /var/www/xibo/maintenance.php changeme</pre> |
4003 | + |
4004 | + <p>Example command to run at lower priority:</p> |
4005 | + <pre> ionice -c3 -p$$;nice -n 10 /usr/bin/php /var/www/xibo/maintenance.php changeme > /dev/null</pre> |
4006 | + |
4007 | + <a name="Running_maintenance_with_crontab" id="Running_maintenance_with_crontab"></a><h3>Running maintenance with crontab</h3> |
4008 | + <p>This section is broadly based upon the Moodle Cron documentation available <a href="http://docs.moodle.org/en/Cron#Using_the_crontab_program_on_Unix" |
4009 | + class="external text" title="http://docs.moodle.org/en/Cron#Using_the_crontab_program_on_Unix" rel="nofollow">here</a>. |
4010 | + Most unix-based servers run a version of cron. Cron executes commands on a schedule.</p> |
4011 | + <p>Modern Linux distributions use a version of cron that reads its configuration from /etc/crontab. If you have an /etc/crontab, |
4012 | + edit it with your favourite editor, otherwise run the following to edit the crontab:</p> |
4013 | + <pre>crontab -e</pre> |
4014 | + |
4015 | + <p>and then adding one of the above commands like:</p> |
4016 | + <pre>*/5 * * * * wget -q -O /dev/null http://example.com/xibo/maintenance.php?key=changeme</pre> |
4017 | + |
4018 | + <p>The first five entries are the times to run values, followed by the command to run. The asterisk is a wildcard, indicating any time. |
4019 | + The above example means run the command <i>wget -q -O /dev/null...</i> every 5 minutes (*/5), every hour (*), every day of the month (*), |
4020 | + every month (*), every day of the week (*).</p> |
4021 | + <p>The "O" of "-O" is the capital letter not zero, and refers the output file destination, in this case "/dev/null" which is a black |
4022 | + hole and discards the output. If you want to see the output of your cron.php then enter its url in your browser.</p> |
4023 | + |
4024 | + <ul> |
4025 | + <li> <a href="http://linuxweblog.com/node/24" class="external text" title="http://linuxweblog.com/node/24" rel="nofollow">A basic crontab tutorial</a></li> |
4026 | + <li> <a href="http://www.freebsd.org/cgi/man.cgi?query=crontab&apropos=0&sektion=5&manpath=FreeBSD+6.0-RELEASE+and+Ports&format=html" |
4027 | + class="external text" title="http://www.freebsd.org/cgi/man.cgi?query=crontab&apropos=0&sektion=5&manpath=FreeBSD+6.0-RELEASE+and+Ports&format=html" |
4028 | + rel="nofollow">Online version of the man page</a></li> |
4029 | + </ul> |
4030 | + |
4031 | + <p>For <b>beginners</b>, "EDITOR=nano crontab -e" will allow you to edit the crontab using the <a href="http://www.nano-editor.org/dist/v1.2/faq.html" |
4032 | + class="external text" title="http://www.nano-editor.org/dist/v1.2/faq.html" rel="nofollow">nano</a> editor. Ubuntu defaults to using the nano editor.</p> |
4033 | + <p>Usually, the "crontab -e" command will put you into the 'vi' editor. You enter "insert mode" by pressing "i", then type in the line as above, then exit |
4034 | + insert mode by pressing ESC. You save and exit by typing ":wq", or quit without saving using ":q!" (without the quotes). Here is an |
4035 | + <a href="http://www.unix-manuals.com/tutorials/vi/vi-in-10-1.html" class="external text" title="http://www.unix-manuals.com/tutorials/vi/vi-in-10-1.html" |
4036 | + rel="nofollow">intro</a> to the 'vi' editor.</p> |
4037 | + </blockquote> |
4038 | + |
4039 | + <a name="Path" id="Path"></a><h2>Path</h2> |
4040 | + <blockquote> |
4041 | + <p>Settings allows you to specify particular directory locations for where Xibo will store and look for items.</p> |
4042 | + |
4043 | + <p><img alt="Setting_Path" src="sa_setting_path.png" |
4044 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
4045 | + width="538" height="140"></p> |
4046 | + </blockquote> |
4047 | + |
4048 | + <a name="Permissiions" id="Permissiions"></a><h2>Permissions</h2> |
4049 | + |
4050 | + <blockquote> |
4051 | + <p>Settings allows you to define password policy and login error message.</p> |
4052 | + |
4053 | + <h3>User Password Management</h3> |
4054 | + <p>This section will take a look at the User Password Management with three features/improvements:</p> |
4055 | + <ul> |
4056 | + <li>Users can change their passwords without having access to the user administration page</li> |
4057 | + <li>Administrators can set a regular expression to test password complexity</li> |
4058 | + <li>Administrators can override users passwords in a more�intuitive�way</li> |
4059 | + </ul> |
4060 | + |
4061 | + <p><img alt="Setting_Permissions" src="sa_setting_permissions.png" |
4062 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
4063 | + width="806" height="365"></p> |
4064 | + |
4065 | + |
4066 | + <h3>User Passwordd Policy</h3> |
4067 | + <p>This feature has the utmost flexibility given to the administrator to test passwords in which ever way they chose. |
4068 | + This is done with a setting in the “Permissions” tab called USER_PASSWORD_POLICY.</p> |
4069 | + |
4070 | + <p>An administrator can put any valid regular expression in this box, which will cause all users password change requests (and new users) |
4071 | + to be tested against this expression.</p> |
4072 | + <p>It is also important for the user to know what the policy actually is; the setting USER_PASSWORD_ERROR which will be presented |
4073 | + to the user when they enter a password that does not validate against the regular expression.</p> |
4074 | + |
4075 | + <h3>Changing Password</h3> |
4076 | + |
4077 | + <p><img alt="Setting User Password" src="sa_setting_pwd.png" |
4078 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
4079 | + width="458" height="234"></p> |
4080 | + |
4081 | + <p>A user can now change their password by clicking on their user name in the top right corner of the admin interface. |
4082 | + They will be presented with a form requiring them to enter their existing password, a new password and a retyped new password – |
4083 | + all fields are required.</p> |
4084 | + |
4085 | + <h3>Override User Password</h3> |
4086 | + |
4087 | + <p><img alt="User Password Override" src="user_pwd_override.png" |
4088 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
4089 | + width="559" height="328"></p> |
4090 | + |
4091 | + <p>An administrator can now easily override / reset a users existing password by editing the the from the user admin screen and |
4092 | + ticking the box to “override”.</p> |
4093 | + </blockquote> |
4094 | + |
4095 | + <iframe src="../../template/footer.html" width="100%" frameborder="0">Your browser cannot support iframe</iframe> |
4096 | + </body> |
4097 | +</html> |
4098 | |
4099 | === added file 'server/manual/content/admin/user_pwd_override.png' |
4100 | Binary files server/manual/content/admin/user_pwd_override.png 1970-01-01 00:00:00 +0000 and server/manual/content/admin/user_pwd_override.png 2013-04-11 16:56:27 +0000 differ |
4101 | === added directory 'server/manual/content/config' |
4102 | === added file 'server/manual/content/config/DWNeverUpload.reg' |
4103 | Binary files server/manual/content/config/DWNeverUpload.reg 1970-01-01 00:00:00 +0000 and server/manual/content/config/DWNeverUpload.reg 2013-04-11 16:56:27 +0000 differ |
4104 | === added file 'server/manual/content/config/Powerpoint-fix.reg' |
4105 | Binary files server/manual/content/config/Powerpoint-fix.reg 1970-01-01 00:00:00 +0000 and server/manual/content/config/Powerpoint-fix.reg 2013-04-11 16:56:27 +0000 differ |
4106 | === added file 'server/manual/content/config/client.php' |
4107 | --- server/manual/content/config/client.php 1970-01-01 00:00:00 +0000 |
4108 | +++ server/manual/content/config/client.php 2013-04-11 16:56:27 +0000 |
4109 | @@ -0,0 +1,137 @@ |
4110 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
4111 | +<?php include('../../template.php'); ?> |
4112 | +<html> |
4113 | +<head> |
4114 | + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
4115 | + <title><?php echo PRODUCT_NAME; ?> Documentation</title> |
4116 | + <link rel="stylesheet" type="text/css" href="../../css/doc.css"> |
4117 | + <meta name="keywords" content="digital signage, signage, narrow-casting, <?php echo PRODUCT_NAME; ?>, open source, agpl" /> |
4118 | + <meta name="description" content="<?php echo PRODUCT_NAME; ?> is an open source digital signage solution. It supports all main media types and can be interfaced to other sources of data using CSV, Databases or RSS." /> <link href="img/favicon.ico" rel="shortcut icon"> |
4119 | + <!-- Javascript Libraries --> |
4120 | + <script type="text/javascript" src="lib/jquery.pack.js"></script> |
4121 | + <script type="text/javascript" src="lib/jquery.dimensions.pack.js"></script> |
4122 | + <script type="text/javascript" src="lib/jquery.ifixpng.js"></script> |
4123 | +</head> |
4124 | + |
4125 | +<body> |
4126 | + <h1>Client Options</h1> |
4127 | + |
4128 | + <p>All newly installed client must be configured and registered with the <?php echo PRODUCT_NAME; ?> Server before it can be used. The <?php echo PRODUCT_NAME; ?> Configuration |
4129 | + Options are accessible on each client installation from the Start Menu -> All programs</p> |
4130 | + |
4131 | + <p><img alt="Program Menu" src="pm.png" |
4132 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
4133 | + width="230" height="62" border="1px"></p> |
4134 | + |
4135 | + <p>Select "<?php echo PRODUCT_NAME; ?> Client Options" to register this display on the <?php echo PRODUCT_NAME; ?> Network; or to |
4136 | + make changes to this display configuration.</p> |
4137 | + |
4138 | + <h2>Client Options Form</h2> |
4139 | + |
4140 | + <p>The default - after install - options form is shown below.</p> |
4141 | + |
4142 | + <blockquote> |
4143 | + <h3>Options - General</h3> |
4144 | + |
4145 | + <p><img alt="<?php echo PRODUCT_NAME; ?> General Settings" src="settings_gen.png" |
4146 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
4147 | + width="485" height="393"></p> |
4148 | + |
4149 | + <br /> |
4150 | + <ul> |
4151 | + <li>Server Address: Fill in the address of your <?php echo PRODUCT_NAME; ?> server address. If your <?php echo PRODUCT_NAME; ?> server is on the same machine as the client, |
4152 | + enter "http://localhost/<?php echo PRODUCT_NAME; ?>". If <?php echo PRODUCT_NAME; ?> server is installed on a different computer, enter the IP address or hostname of the |
4153 | + machine the <?php echo PRODUCT_NAME; ?> server is installed on - for example "http://192.168.0.4/<?php echo PRODUCT_NAME; ?>" or "http://www.my-server.com/<?php echo PRODUCT_NAME; ?>" or similar.<br /><br /></li> |
4154 | + |
4155 | + <li>Server Key: Enter your server key in the "Server Key" box. If you cannot remember the key you can find it in the |
4156 | + Settings dialogue on the <a href="../admin/settings.php#server_key">Administration->Settings</a> menu in the |
4157 | + web interface on the server.<br /><br /></li> |
4158 | + |
4159 | + <li>Local Library Location: defaults to a folder called "<?php echo PRODUCT_NAME; ?> Library" It is used to cache content from the <?php echo PRODUCT_NAME; ?> server so that |
4160 | + the client can continue to play if the connection to the <?php echo PRODUCT_NAME; ?> server is lost. If you want to change to a different folder, use |
4161 | + the "Browse" button to choose an alternative folder. The library folder must be given write access right to the <?php echo PRODUCT_NAME; ?> client. |
4162 | + <br /> |
4163 | + Note that you must NOT use the server's library location (if it is on the same PC as the client or via a file share)<br /><br /></li> |
4164 | + |
4165 | + <li>The collection interval for content: is the interval in seconds that the client will poll the server for new content. The more |
4166 | + frequent the collections, the quicker the client will update when changes are made on the server - but at the expense of bandwidth |
4167 | + and possibly minor freezes in things like scrolling text when the collection happens. We don't recommend values lower than 60 seconds.<br /><br /></li> |
4168 | + |
4169 | + <li>The unique key for this client: is a unique identifier for this client machine. It is generated from a mix of Windows system identifiers and |
4170 | + your hardware. If you are installing for the first time, there is no need to amend this value. If you are changing hardware or want to have |
4171 | + two clients using the same server account then you can edit the key as required.<br /><br /></li> |
4172 | + |
4173 | + <li>Scroll Step Amount (px): is the number of pixels scrolling text will advance each time scrolling text items are told to move. You should |
4174 | + leave this set to 1px for smooth viewing.<br /><br /></li> |
4175 | + |
4176 | + <li>Enable Powerpoint: Tick the box if you have the full version of PowerPoint 2003 or later installed and want to use PowerPoint media items. |
4177 | + Be sure to read the notes on Powerpoint setup here: <a href="windows.php"> Windows Modifications.</a><br /><br /></li> |
4178 | + |
4179 | + <li>Enable Statistics: Tick the box if you want the client to send statistics back to the <?php echo PRODUCT_NAME; ?> server. This will generate alot of data that will be |
4180 | + stored in the <?php echo PRODUCT_NAME; ?> database. If you don't have any specific use for statistics, we recommend you turn this option off. |
4181 | + |
4182 | + <p>Click the "Save" button.</p></li> |
4183 | + </ul> |
4184 | + |
4185 | + <h3>Options - Proxy</h3> |
4186 | + |
4187 | + <p>If you use a proxy server to access your <?php echo PRODUCT_NAME; ?> server, go to the "Proxy" server tab and fill in the details for your network, |
4188 | + then click "Save". Make sure to set your proxy information in Internet Explorer too.</p> |
4189 | + |
4190 | + <p><img alt="<?php echo PRODUCT_NAME; ?> General Settings" src="settings_proxy.png" |
4191 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
4192 | + width="485" height="393"></p> |
4193 | + |
4194 | + <h3>Options - Apperance</h3> |
4195 | + |
4196 | + <p>Click "Apperance" tab to set the client display window size, and the offsets from the screen origin if so required.</p> |
4197 | + <p>When the specified client display window size i.e. width & height is different from the original layout intended size, some |
4198 | + of the content will be cropped. e.g. embbedded html, linked html, dataset table etc.</p> |
4199 | + <p>You may use the "Offset X' i.e. set equal to the primary display width, to place the client diplay window on an extended display monitor.</p> |
4200 | + |
4201 | + <p><img alt="<?php echo PRODUCT_NAME; ?> General Settings" src="settings_app.png" |
4202 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
4203 | + width="485" height="393"></p> |
4204 | + |
4205 | + <p>The default <?php echo PRODUCT_NAME; ?> Splash screen is display when the client is first launch. You may specify your own Splash Image by entering |
4206 | + the image filename in the "Override Splash Screen" box.</p> |
4207 | + |
4208 | + <h3>Options - Advanced</h3> |
4209 | + |
4210 | + <p><img alt="<?php echo PRODUCT_NAME; ?> General Settings" src="settings_adv.png" |
4211 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
4212 | + width="485" height="393"></p> |
4213 | + |
4214 | + <h3>Options - Register</h3> |
4215 | + |
4216 | + <p>Finally go to the "Register" display tab.</p> |
4217 | + |
4218 | + <p><img alt="<?php echo PRODUCT_NAME; ?> General Settings" src="settings_reg.png" |
4219 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
4220 | + width="485" height="393"></p> |
4221 | + |
4222 | + <br /> |
4223 | + <p>Optionally rename the client by entering a name in the "Display Name" box. It defaults to the hostname of the PC. |
4224 | + Click the "Register" button.</p> |
4225 | + |
4226 | + <p>You should see a message "Display registered and awaiting licensing". If you don't get that message, ensure you entered |
4227 | + the correct URL for the <?php echo PRODUCT_NAME; ?> server, and that your server key is entered correctly.</p> |
4228 | + </blockquote> |
4229 | + |
4230 | + <h2>Client License Enable</h2> |
4231 | + |
4232 | + <p>Now log in to the server web interface, go to the <a href="../admin/displays.php">"Display->Displays"</a> page. |
4233 | + You should see your newly registered client in the list. Click the "Edit" button next to the display. The "License Display" |
4234 | + option will automatically change to "Yes". Optionally select a different default layout (the layout the client will play |
4235 | + if nothing is scheduled).</p> |
4236 | + |
4237 | + <p>Click "Save" </p> |
4238 | + |
4239 | + <h2>Start Client Player</h2> |
4240 | + |
4241 | + <p>You can now start the <?php echo PRODUCT_NAME; ?> Client Player. It should show you the <?php echo PRODUCT_NAME; ?> splash screen while the default layout and its media contents |
4242 | + (and anything else you have scheduled) are downloaded and then begin playing layouts'contents. |
4243 | + |
4244 | + <?php include('../../template/footer.php'); ?> |
4245 | +</body> |
4246 | +</html> |
4247 | |
4248 | === added file 'server/manual/content/config/client_feature.php' |
4249 | --- server/manual/content/config/client_feature.php 1970-01-01 00:00:00 +0000 |
4250 | +++ server/manual/content/config/client_feature.php 2013-04-11 16:56:27 +0000 |
4251 | @@ -0,0 +1,194 @@ |
4252 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
4253 | +<?php include('../../template.php'); ?> |
4254 | +<html> |
4255 | +<head> |
4256 | + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
4257 | + <title><?php echo PRODUCT_NAME; ?> Documentation</title> |
4258 | + <link rel="stylesheet" type="text/css" href="../../css/doc.css"> |
4259 | + <meta name="keywords" content="digital signage, signage, narrow-casting, <?php echo PRODUCT_NAME; ?>, open source, agpl" /> |
4260 | + <meta name="description" content="<?php echo PRODUCT_NAME; ?> is an open source digital signage solution. It supports all main media types and can be interfaced to other sources of data using CSV, Databases or RSS." /> <link href="img/favicon.ico" rel="shortcut icon"> |
4261 | + <!-- Javascript Libraries --> |
4262 | + <script type="text/javascript" src="lib/jquery.pack.js"></script> |
4263 | + <script type="text/javascript" src="lib/jquery.dimensions.pack.js"></script> |
4264 | + <script type="text/javascript" src="lib/jquery.ifixpng.js"></script> |
4265 | +</head> |
4266 | + |
4267 | +<body> |
4268 | + <h1><?php echo PRODUCT_NAME; ?> Client Features</h1> |
4269 | + |
4270 | + <p>The <?php echo PRODUCT_NAME; ?> client comes in three flavours – the .NET Windows Client, the Python Linux Client and an Android Client. The windows client was born first and is therefore the client of choice for a stable installation. The Python client has greater potential in the future and will eventually become the only client for Windows and Linux.</p> |
4271 | + |
4272 | + <table> |
4273 | + <col width=40%><col width=30%><col width=30%> |
4274 | + <thead> |
4275 | + <tr> |
4276 | + <th>Feature</th> |
4277 | + <th>.Net Client</th> |
4278 | + <th>Python</th> |
4279 | + <th>Android</th> |
4280 | + </tr> |
4281 | + </thead> |
4282 | + |
4283 | + <tbody> |
4284 | + <tr> |
4285 | + <td>Schedule Layouts</td> |
4286 | + <td class="y">Yes</td> |
4287 | + <td class="y">Yes</td> |
4288 | + <td class="y">Yes</td> |
4289 | + </tr> |
4290 | + <tr> |
4291 | + <td>Priority Schedules</td> |
4292 | + <td class="y">Yes</td> |
4293 | + <td class="y">Yes</td> |
4294 | + <td class="y">Yes</td> |
4295 | + </tr> |
4296 | + <tr> |
4297 | + <td>Video</td> |
4298 | + <td class="y">Yes</td> |
4299 | + <td class="y">Yes</td> |
4300 | + <td class="y">Yes</td> |
4301 | + </tr> |
4302 | + <tr> |
4303 | + <td>Flash</td> |
4304 | + <td class="y">Yes</td> |
4305 | + <td class="partial-support">Some Support</td> |
4306 | + <td class="n">No</td> |
4307 | + </tr> |
4308 | + <tr> |
4309 | + <td>Images</td> |
4310 | + <td class="y">Yes</td> |
4311 | + <td class="y">Yes</td> |
4312 | + <td class="y">Yes</td> |
4313 | + </tr> |
4314 | + <tr> |
4315 | + <td>PowerPoint</td> |
4316 | + <td class="y">Yes</td> |
4317 | + <td class="n">No</td> |
4318 | + <td class="n">No</td> |
4319 | + </tr> |
4320 | + <tr> |
4321 | + <td>Text</td> |
4322 | + <td class="y">Yes</td> |
4323 | + <td class="y">Yes</td> |
4324 | + <td class="y">Yes</td> |
4325 | + </tr> |
4326 | + <tr> |
4327 | + <td>RSS</td> |
4328 | + <td class="y">Yes</td> |
4329 | + <td class="y">Yes</td> |
4330 | + <td class="y">Yes</td> |
4331 | + </tr> |
4332 | + <tr> |
4333 | + <td>Web Page</td> |
4334 | + <td class="y">Yes</td> |
4335 | + <td class="y">Yes</td> |
4336 | + <td class="y">Yes</td> |
4337 | + </tr> |
4338 | + <tr> |
4339 | + <td>Embedded HTML</td> |
4340 | + <td class="y">Yes</td> |
4341 | + <td class="y">Yes</td> |
4342 | + <td class="y">Yes</td> |
4343 | + </tr> |
4344 | + <tr> |
4345 | + <td>Microblog</td> |
4346 | + <td class="n">No</td> |
4347 | + <td class="y">Yes</td> |
4348 | + <td class="n">No</td> |
4349 | + </tr> |
4350 | + <tr> |
4351 | + <td>DataSets</td> |
4352 | + <td class="y">Yes</td> |
4353 | + <td class="y">Yes</td> |
4354 | + <td class="n">No</td> |
4355 | + </tr> |
4356 | + <tr> |
4357 | + <td>Background Image</td> |
4358 | + <td class="y">Yes (jpg only)</td> |
4359 | + <td class="y">Yes</td> |
4360 | + <td class="y">Yes</td> |
4361 | + </tr> |
4362 | + <tr> |
4363 | + <td>Media Stats</td> |
4364 | + <td class="y">Yes</td> |
4365 | + <td class="y">Yes</td> |
4366 | + <td class="n">No</td> |
4367 | + </tr> |
4368 | + <tr> |
4369 | + <td>Layout Stats</td> |
4370 | + <td class="y">Yes</td> |
4371 | + <td class="n">No</td> |
4372 | + <td class="n">No</td> |
4373 | + </tr> |
4374 | + <tr> |
4375 | + <td>Report Inventory</td> |
4376 | + <td class="y">Yes</td> |
4377 | + <td class="y">Yes</td> |
4378 | + <td class="y">Yes</td> |
4379 | + </tr> |
4380 | + <tr> |
4381 | + <td>File Resume</td> |
4382 | + <td class="y">Yes</td> |
4383 | + <td class="y">Yes</td> |
4384 | + <td class="y">Yes</td> |
4385 | + </tr> |
4386 | + <tr> |
4387 | + <td>Counter Media</td> |
4388 | + <td class="n">No</td> |
4389 | + <td class="y">Yes</td> |
4390 | + <td class="n">No</td> |
4391 | + </tr> |
4392 | + <tr> |
4393 | + <td>Socket Listener</td> |
4394 | + <td class="n">No</td> |
4395 | + <td class="y">Yes</td> |
4396 | + <td class="n">No</td> |
4397 | + </tr> |
4398 | + <tr> |
4399 | + <td>Lift/Serial Interface Support</td> |
4400 | + <td class="n">No</td> |
4401 | + <td class="y">Yes (16 inputs / 4 per serial port)</td> |
4402 | + <td class="n">No</td> |
4403 | + </tr> |
4404 | + <tr> |
4405 | + <td>Client Runtime Information Screen</td> |
4406 | + <td class="y">Yes</td> |
4407 | + <td class="y">Yes</td> |
4408 | + <td class="y">Yes</td> |
4409 | + </tr> |
4410 | + <tr> |
4411 | + <td>Offline Update via USB Drive</td> |
4412 | + <td class="n">No</td> |
4413 | + <td class="y">Yes</td> |
4414 | + <td class="n">No</td> |
4415 | + </tr> |
4416 | + <tr> |
4417 | + <td>Full Compositing (overlapping regions)</td> |
4418 | + <td class="n">No</td> |
4419 | + <td class="y">Yes</td> |
4420 | + <td class="n">No</td> |
4421 | + </tr> |
4422 | + <tr> |
4423 | + <td>Webpage Transparency</td> |
4424 | + <td class="n">No</td> |
4425 | + <td class="y">Yes</td> |
4426 | + <td class="n">No</td> |
4427 | + </tr> |
4428 | + <tr> |
4429 | + <td>Video Transparency</td> |
4430 | + <td class="n">No</td> |
4431 | + <td class="y">Yes</td> |
4432 | + <td class="n">No</td> |
4433 | + </tr> |
4434 | + <tr> |
4435 | + <td>Image Transparency</td> |
4436 | + <td class="n">No</td> |
4437 | + <td class="y">Yes</td> |
4438 | + <td class="n">No</td> |
4439 | + </tr> |
4440 | + </tbody> |
4441 | + </table> |
4442 | + |
4443 | + <?php include('../../template/footer.php'); ?> |
4444 | +</body> |
4445 | +</html> |
4446 | |
4447 | === added file 'server/manual/content/config/config.php' |
4448 | --- server/manual/content/config/config.php 1970-01-01 00:00:00 +0000 |
4449 | +++ server/manual/content/config/config.php 2013-04-11 16:56:27 +0000 |
4450 | @@ -0,0 +1,36 @@ |
4451 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
4452 | +<?php include('../../template.php'); ?> |
4453 | +<html> |
4454 | +<head> |
4455 | + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
4456 | + <title><?php echo PRODUCT_NAME; ?> Documentation</title> |
4457 | + <link rel="stylesheet" type="text/css" href="../../css/doc.css"> |
4458 | + <meta name="keywords" content="digital signage, signage, narrow-casting, <?php echo PRODUCT_NAME; ?>, open source, agpl" /> |
4459 | + <meta name="description" content="<?php echo PRODUCT_NAME; ?> is an open source digital signage solution. It supports all main media types and can be interfaced to other sources of data using CSV, Databases or RSS." /> <link href="img/favicon.ico" rel="shortcut icon"> |
4460 | + <!-- Javascript Libraries --> |
4461 | + <script type="text/javascript" src="lib/jquery.pack.js"></script> |
4462 | + <script type="text/javascript" src="lib/jquery.dimensions.pack.js"></script> |
4463 | + <script type="text/javascript" src="lib/jquery.ifixpng.js"></script> |
4464 | +</head> |
4465 | + |
4466 | +<body> |
4467 | + <h1 lang="en-GB" class="western">Configuring <?php echo PRODUCT_NAME; ?></h1> |
4468 | + |
4469 | + <p>After the Installtion process the <?php echo PRODUCT_NAME; ?> Client must be registered with the |
4470 | + <?php echo PRODUCT_NAME; ?> Admin Panel. This is done using the <?php echo PRODUCT_NAME; ?> Options application.</p> |
4471 | + |
4472 | + <p><a href="client.php">Please click here for information regarding the <?php echo PRODUCT_NAME; ?> |
4473 | + Options and configuring the <?php echo PRODUCT_NAME; ?> client application.</a></p> |
4474 | + |
4475 | + <h2>Admin Panel Settings</h2> |
4476 | + |
4477 | + <p>The <?php echo PRODUCT_NAME; ?> admin panel can be customised in a number of ways using the |
4478 | + settings pages. These settings pages are available only to users with |
4479 | + administrator privilages.</p> |
4480 | + |
4481 | + <p><a href="settings.php">Please click here for information regarding the |
4482 | + <?php echo PRODUCT_NAME; ?> Admin Panel Settings.</a></p> |
4483 | + |
4484 | + <?php include('../../template/footer.php'); ?> |
4485 | +</body> |
4486 | +</html> |
4487 | |
4488 | === added file 'server/manual/content/config/pm.png' |
4489 | Binary files server/manual/content/config/pm.png 1970-01-01 00:00:00 +0000 and server/manual/content/config/pm.png 2013-04-11 16:56:27 +0000 differ |
4490 | === added file 'server/manual/content/config/settings.php' |
4491 | --- server/manual/content/config/settings.php 1970-01-01 00:00:00 +0000 |
4492 | +++ server/manual/content/config/settings.php 2013-04-11 16:56:27 +0000 |
4493 | @@ -0,0 +1,41 @@ |
4494 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
4495 | +<?php include('../../template.php'); ?> |
4496 | +<html> |
4497 | +<head> |
4498 | + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
4499 | + <title><?php echo PRODUCT_NAME; ?> Documentation</title> |
4500 | + <link rel="stylesheet" type="text/css" href="../../css/doc.css"> |
4501 | + <meta name="keywords" content="digital signage, signage, narrow-casting, <?php echo PRODUCT_NAME; ?>, open source, agpl" /> |
4502 | + <meta name="description" content="<?php echo PRODUCT_NAME; ?> is an open source digital signage solution. It supports all main media types and can be interfaced to other sources of data using CSV, Databases or RSS." /> <link href="img/favicon.ico" rel="shortcut icon"> |
4503 | + <!-- Javascript Libraries --> |
4504 | + <script type="text/javascript" src="lib/jquery.pack.js"></script> |
4505 | + <script type="text/javascript" src="lib/jquery.dimensions.pack.js"></script> |
4506 | + <script type="text/javascript" src="lib/jquery.ifixpng.js"></script> |
4507 | +</head> |
4508 | + |
4509 | +<body> |
4510 | + <h1>Settings Page</h1> |
4511 | + |
4512 | + <p>The Settings Page is the primary location for configuring <?php echo PRODUCT_NAME; ?>. </p> |
4513 | + |
4514 | + <p>It is constructed from a number of different categories. Each setting |
4515 | + within these categories has an explanation above it. The settings page is |
4516 | + accessible from the Dashboard or Navigation bar.</p> |
4517 | + |
4518 | + <h2>Catagories</h2> |
4519 | + |
4520 | + <h3 lang="en-GB" class="western"><strong>Content</strong></h3> |
4521 | + |
4522 | + <p lang="en-GB" class="western">This tab allows you to set default content |
4523 | + item settings, such as a default length and ratio. This helps <?php echo PRODUCT_NAME; ?> if the |
4524 | + file does not contain duration information.</p> |
4525 | + |
4526 | + <h3 lang="en-GB" class="western"><strong>Default</strong></h3> |
4527 | + |
4528 | + <p lang="en-GB" class="western">Sets the default options on some forms to |
4529 | + always appear and be applied unless altered. You can also change your time |
4530 | + zone in this section.</p> |
4531 | + |
4532 | + <?php include('../../template/footer.php'); ?> |
4533 | +</body> |
4534 | +</html> |
4535 | |
4536 | === added file 'server/manual/content/config/settings_adv.png' |
4537 | Binary files server/manual/content/config/settings_adv.png 1970-01-01 00:00:00 +0000 and server/manual/content/config/settings_adv.png 2013-04-11 16:56:27 +0000 differ |
4538 | === added file 'server/manual/content/config/settings_app.png' |
4539 | Binary files server/manual/content/config/settings_app.png 1970-01-01 00:00:00 +0000 and server/manual/content/config/settings_app.png 2013-04-11 16:56:27 +0000 differ |
4540 | === added file 'server/manual/content/config/settings_gen.png' |
4541 | Binary files server/manual/content/config/settings_gen.png 1970-01-01 00:00:00 +0000 and server/manual/content/config/settings_gen.png 2013-04-11 16:56:27 +0000 differ |
4542 | === added file 'server/manual/content/config/settings_proxy.png' |
4543 | Binary files server/manual/content/config/settings_proxy.png 1970-01-01 00:00:00 +0000 and server/manual/content/config/settings_proxy.png 2013-04-11 16:56:27 +0000 differ |
4544 | === added file 'server/manual/content/config/settings_reg.png' |
4545 | Binary files server/manual/content/config/settings_reg.png 1970-01-01 00:00:00 +0000 and server/manual/content/config/settings_reg.png 2013-04-11 16:56:27 +0000 differ |
4546 | === added file 'server/manual/content/config/windows.php' |
4547 | --- server/manual/content/config/windows.php 1970-01-01 00:00:00 +0000 |
4548 | +++ server/manual/content/config/windows.php 2013-04-11 16:56:27 +0000 |
4549 | @@ -0,0 +1,81 @@ |
4550 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
4551 | +<?php include('../../template.php'); ?> |
4552 | +<html> |
4553 | +<head> |
4554 | + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
4555 | + <title><?php echo PRODUCT_NAME; ?> Documentation</title> |
4556 | + <link rel="stylesheet" type="text/css" href="../../css/doc.css"> |
4557 | + <meta name="keywords" content="digital signage, signage, narrow-casting, <?php echo PRODUCT_NAME; ?>, open source, agpl" /> |
4558 | + <meta name="description" content="<?php echo PRODUCT_NAME; ?> is an open source digital signage solution. It supports all main media types and can be interfaced to other sources of data using CSV, Databases or RSS." /> <link href="img/favicon.ico" rel="shortcut icon"> |
4559 | + <!-- Javascript Libraries --> |
4560 | + <script type="text/javascript" src="lib/jquery.pack.js"></script> |
4561 | + <script type="text/javascript" src="lib/jquery.dimensions.pack.js"></script> |
4562 | + <script type="text/javascript" src="lib/jquery.ifixpng.js"></script> |
4563 | +</head> |
4564 | + |
4565 | +<body> |
4566 | + <h1 lang="en-GB" class="western">Windows Modifications</h1> |
4567 | + <p>Here are some suggested settings for Windows / PowerPoint for a Display Client:</p> |
4568 | + <ul> |
4569 | + <li>Turn off all <a href="http://www.microsoft.com/windowsxp/using/setup/personalize/screensaver.mspx" |
4570 | + title="http://www.microsoft.com/windowsxp/using/setup/personalize/screensaver.mspx" rel="nofollow">screensavers</a></li> |
4571 | + |
4572 | + <li>Turn off screen <a href="http://www.microsoft.com/windowsxp/using/setup/tips/sleep.mspx" |
4573 | + title="http://www.microsoft.com/windowsxp/using/setup/tips/sleep.mspx" rel="nofollow">power saving</a></li> |
4574 | + |
4575 | + <li>Load the "No Sounds" <a href="http://www.microsoft.com/windowsxp/using/accessibility/soundscheme.mspx" |
4576 | + title="http://www.microsoft.com/windowsxp/using/accessibility/soundscheme.mspx" rel="nofollow">Sound Scheme</a> |
4577 | + (Control Panel -> Sounds and Audio Devices Properties)</li> |
4578 | + |
4579 | + <li>Set a plain wallpaper (Hopefully nobody will see it, but you might need to reboot the client, or restart <?php echo PRODUCT_NAME; ?> and a sane wallpaper is a help)</li> |
4580 | + |
4581 | + <li>If the client is accessible from where you manage your displays from, you might want to install <a href="http://www.uvnc.com/" |
4582 | + title="http://www.uvnc.com/" rel="nofollow">UltraVNC</a> server so you can connect in and check on the client from time to time. |
4583 | + Use the "View only" option in the VNC client to avoid disturbing the display.</li> |
4584 | + |
4585 | + <li>Set Windows to <a href="http://www.mvps.org/marksxp/WindowsXP/welskip.php" title="http://www.mvps.org/marksxp/WindowsXP/welskip.php" |
4586 | + rel="nofollow">log on as your display client user automatically</a></li> |
4587 | + |
4588 | + <li>Disable <a href="http://support.microsoft.com/kb/307729" title="http://support.microsoft.com/kb/307729" rel="nofollow"> |
4589 | + balloon tips in the notification area</a></li> |
4590 | + |
4591 | + <li>Disable Windows Error Reporting. Occasionally PowerPoint seems to "crash" when <?php echo PRODUCT_NAME; ?> closes it. Unfortunately this leaves an unsightly |
4592 | + "PowerPoint has encountered a problem and needs to close" message on the display. Follow the steps |
4593 | + <a href="http://www.windowsnetworking.com/articles_tutorials/Disable-Error-Reporting-Windows-XP-Server-2003.html" |
4594 | + title="http://www.windowsnetworking.com/articles_tutorials/Disable-Error-Reporting-Windows-XP-Server-2003.html" rel="nofollow">here</a> |
4595 | + to disable Windows Error Reporting completely - including notifications.</li> |
4596 | + |
4597 | + <li>Also disable Office Application Error reporting. Follow instructions at <a href="http://support.microsoft.com/kb/325075" |
4598 | + title="http://support.microsoft.com/kb/325075" rel="nofollow">KB325075</a> or merge <a href="DWNeverUpload.reg" |
4599 | + title="DWNeverUpload.reg"> this registry patch</a>.</li> |
4600 | + </ul> |
4601 | + |
4602 | + <p>If you're using PowerPoint, then there are a couple of extra steps:</p> |
4603 | + <p>First consider if you would be better converting your PowerPoint content to video files. PowerPoint 2010 and later can "Save As" a WMV file |
4604 | + which can be loaded straight in to Xibo and is far more reliable. If however you still need to play PowerPoint files, please ensure you action |
4605 | + the following:</p> |
4606 | + |
4607 | + <ul> |
4608 | + <li>The first time you run <?php echo PRODUCT_NAME; ?> with a PowerPoint, you might get a popup appear that asks what <?php echo PRODUCT_NAME; ?> should do with the PowerPoint file. |
4609 | + The popup actually originates from Internet Explorer. Choose to "Open" the file, and untick the box so you won't be prompted again.</li> |
4610 | + |
4611 | + <li>In some circumstances, you may find that PowerPoint, the application, loads instead of the file opening within <?php echo PRODUCT_NAME; ?> itself. If that happens, |
4612 | + try merging <a href="Powerpoint-fix.reg" title="Powerpoint-fix.reg"> this registry patch</a>. (Taken from |
4613 | + <a href="http://www.pptfaq.com/FAQ00189.htm" title="http://www.pptfaq.com/FAQ00189.htm" rel="nofollow">pptfaq.com</a>). |
4614 | + Users of Powerpoint 2007 should go to Microsoft <a href="http://support.microsoft.com/kb/927009" |
4615 | + title="http://support.microsoft.com/kb/927009" rel="nofollow">KB927009</a> and run the FixIT application instead. Users of PowerPoint 2010 |
4616 | + should go here instead <a href="http://support.microsoft.com/kb/982995/en-us" title="http://support.microsoft.com/kb/982995/en-us" |
4617 | + rel="nofollow">KB982995</a></li> |
4618 | + |
4619 | + <li>Note also that PowerPoint will put scroll bars up the side of your presentation, unless you do the following for each PowerPoint file BEFORE you upload it:</li> |
4620 | + </ul> |
4621 | + |
4622 | + <ul> |
4623 | + o Open your PowerPoint Document<br /> |
4624 | + o Slide Show -> Setup Show<br /> |
4625 | + o Under "Show Type", choose "Browsed by an individual (window)" and then untick "Show scrollbar" |
4626 | + </ul> |
4627 | + |
4628 | + <?php include('../../template/footer.php'); ?> |
4629 | +</body> |
4630 | +</html> |
4631 | |
4632 | === added directory 'server/manual/content/content' |
4633 | === added file 'server/manual/content/content/adding.php' |
4634 | --- server/manual/content/content/adding.php 1970-01-01 00:00:00 +0000 |
4635 | +++ server/manual/content/content/adding.php 2013-04-11 16:56:27 +0000 |
4636 | @@ -0,0 +1,80 @@ |
4637 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
4638 | +<?php include('../../template.php'); ?> |
4639 | +<html> |
4640 | + <head> |
4641 | + <meta name="generator" content="HTML Tidy, see www.w3.org"> |
4642 | + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
4643 | + |
4644 | + <title><?php echo PRODUCT_NAME; ?> Documentation</title> |
4645 | + <link rel="stylesheet" type="text/css" href="../../css/doc.css"> |
4646 | + <meta http-equiv="Content-Type" content="text/html"> |
4647 | + <meta name="keywords" content="digital signage, signage, narrow-casting, <?php echo PRODUCT_NAME; ?>, open source, agpl" /> |
4648 | + <meta name="description" content="<?php echo PRODUCT_NAME; ?> is an open source digital signage solution. It supports all main media types and can be interfaced to other sources of data using CSV, Databases or RSS." /> |
4649 | + <link href="img/favicon.ico" rel="shortcut icon"> |
4650 | + <!-- Javascript Libraries --> |
4651 | + <script type="text/javascript" src="lib/jquery.pack.js"></script> |
4652 | + <script type="text/javascript" src="lib/jquery.dimensions.pack.js"></script> |
4653 | + <script type="text/javascript" src="lib/jquery.ifixpng.js"></script> |
4654 | + </head> |
4655 | + |
4656 | + <body> |
4657 | + <h1>Adding Content</h1> |
4658 | + |
4659 | + <p>In order to display content on <?php echo PRODUCT_NAME; ?> it first needs to be added to the system. The |
4660 | + following instructions deal with adding content. This section deals only with media |
4661 | + content that are stored in the Media Library.</p> |
4662 | + |
4663 | + <p><img alt="Library Add Media" src="library_media_add.png" |
4664 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
4665 | + width="425" height="225"></p> |
4666 | + |
4667 | + <p>In order to add content you must be at the "Media" page by click "Library -> Media". When at the Media |
4668 | + page click the "Add Media" button at top. This will take you to the following screen:</p> |
4669 | + |
4670 | + <p>Note: The media can also be added when creating layouts using the layout designer.</p> |
4671 | + |
4672 | + <p>You can add different types of content by clicking on the media icon in the form. Doing this will |
4673 | + show you the correct form for the content you have selected and allow <?php echo PRODUCT_NAME; ?> to collect the appropriate information.</p> |
4674 | + |
4675 | + <blockquote> |
4676 | + <h3>Add Image</h3> |
4677 | + <p>Following form show the required information when adding new image</p> |
4678 | + |
4679 | + <p><img alt="Library Add Image" src="library_add_image.png" |
4680 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
4681 | + width="458" height="226"></p> |
4682 | + |
4683 | + <h3>Add DataSet</h3> |
4684 | + <p>Following form show the required information when adding DataSet</p> |
4685 | + |
4686 | + <p><img alt="Library Add Image" src="library_add_dataset.png" |
4687 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
4688 | + width="358" height="179"></p> |
4689 | + |
4690 | + <p>Refef to <a href="../layout/assigncontent.php#datasets">Assigning Content - DataSets</a> in Layouts section for further information on |
4691 | + defining DataSets.</p> |
4692 | + |
4693 | + <a name="To_edit_content" id="To_edit_content"></a><h3>Edit Content</h3> |
4694 | + <p>Click on the "Edit" button in the action column.<br /> |
4695 | + <strong>Note:</strong> If there is no edit button then you do not have permission to edit that content.</p> |
4696 | + |
4697 | + <p>Once you have entered the information <?php echo PRODUCT_NAME; ?> requires, click on the "Save" button and your |
4698 | + content will be added to <?php echo PRODUCT_NAME; ?>.</p> |
4699 | + </blockquote> |
4700 | + |
4701 | + <h2>Non-Media Content</h2> |
4702 | + <p>Following contents are not saved in the <?php echo PRODUCT_NAME; ?> media library. Instead they are embbedded within the Regions in which they are |
4703 | + assigned. Refef to <a href="../layout/assigncontent.php#text">Assigning Content - Text...</a> sections in Layout on adding |
4704 | + these items to regions</p> |
4705 | + |
4706 | + <ul> |
4707 | + <li>Text</li> |
4708 | + <li>Ticker</li> |
4709 | + <li>MicroBlog</li> |
4710 | + <li>Counter</li> |
4711 | + </ul> |
4712 | + |
4713 | + <?php include('../../template/footer.php'); ?> |
4714 | + </body> |
4715 | +</html> |
4716 | + |
4717 | |
4718 | === added file 'server/manual/content/content/library_add_dataset.png' |
4719 | Binary files server/manual/content/content/library_add_dataset.png 1970-01-01 00:00:00 +0000 and server/manual/content/content/library_add_dataset.png 2013-04-11 16:56:27 +0000 differ |
4720 | === added file 'server/manual/content/content/library_add_image.png' |
4721 | Binary files server/manual/content/content/library_add_image.png 1970-01-01 00:00:00 +0000 and server/manual/content/content/library_add_image.png 2013-04-11 16:56:27 +0000 differ |
4722 | === added file 'server/manual/content/content/library_media.png' |
4723 | Binary files server/manual/content/content/library_media.png 1970-01-01 00:00:00 +0000 and server/manual/content/content/library_media.png 2013-04-11 16:56:27 +0000 differ |
4724 | === added file 'server/manual/content/content/library_media_add.png' |
4725 | Binary files server/manual/content/content/library_media_add.png 1970-01-01 00:00:00 +0000 and server/manual/content/content/library_media_add.png 2013-04-11 16:56:27 +0000 differ |
4726 | === added file 'server/manual/content/content/licensing.php' |
4727 | --- server/manual/content/content/licensing.php 1970-01-01 00:00:00 +0000 |
4728 | +++ server/manual/content/content/licensing.php 2013-04-11 16:56:27 +0000 |
4729 | @@ -0,0 +1,31 @@ |
4730 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
4731 | +<?php include('../../template.php'); ?> |
4732 | +<html> |
4733 | + <head> |
4734 | + <meta name="generator" content="HTML Tidy, see www.w3.org"> |
4735 | + <meta http-equiv="Content-Type" content= |
4736 | + "text/html; charset=iso-8859-1"> |
4737 | + |
4738 | + <title><?php echo PRODUCT_NAME; ?> Documentation</title> |
4739 | + <link rel="stylesheet" type="text/css" href= |
4740 | + "../../css/doc.css"> |
4741 | + <meta http-equiv="Content-Type" content="text/html"> |
4742 | + <meta name="keywords" content="digital signage, signage, narrow-casting, <?php echo PRODUCT_NAME; ?>, open source, agpl" /> |
4743 | + <meta name="description" content="<?php echo PRODUCT_NAME; ?> is an open source digital signage solution. It supports all main media types and can be interfaced to other sources of data using CSV, Databases or RSS." /> |
4744 | + <link href="img/favicon.ico" rel="shortcut icon"> |
4745 | + <!-- Javascript Libraries --> |
4746 | + <script type="text/javascript" src="lib/jquery.pack.js"></script> |
4747 | + <script type="text/javascript" src="lib/jquery.dimensions.pack.js"></script> |
4748 | + <script type="text/javascript" src="lib/jquery.ifixpng.js"></script> |
4749 | + </head> |
4750 | + |
4751 | + <body> |
4752 | + <h2 lang="en-GB" class="western">Licensing</h2> |
4753 | + |
4754 | + <p>Please be aware that <?php echo PRODUCT_NAME; ?> takes no measures to control what is put on your displays. |
4755 | + Please make sure that any content is either appropriately attributed or you own the rights to it.</p> |
4756 | + |
4757 | + <?php include('../../template/footer.php'); ?> |
4758 | + </body> |
4759 | +</html> |
4760 | + |
4761 | |
4762 | === added file 'server/manual/content/content/overview.php' |
4763 | --- server/manual/content/content/overview.php 1970-01-01 00:00:00 +0000 |
4764 | +++ server/manual/content/content/overview.php 2013-04-11 16:56:27 +0000 |
4765 | @@ -0,0 +1,44 @@ |
4766 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
4767 | +<?php include('../../template.php'); ?> |
4768 | +<html> |
4769 | + <head> |
4770 | + <meta name="generator" content="HTML Tidy, see www.w3.org"> |
4771 | + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
4772 | + |
4773 | + <title><?php echo PRODUCT_NAME; ?> Documentation</title> |
4774 | + <link rel="stylesheet" type="text/css" href="../../css/doc.css"> |
4775 | + <meta http-equiv="Content-Type" content="text/html"> |
4776 | + <meta name="keywords" content="digital signage, signage, narrow-casting, <?php echo PRODUCT_NAME; ?>, open source, agpl" /> |
4777 | + <meta name="description" content="<?php echo PRODUCT_NAME; ?> is an open source digital signage solution. It supports all main media types and can be interfaced to other sources of data using CSV, Databases or RSS." /> |
4778 | + <link href="img/favicon.ico" rel="shortcut icon"> |
4779 | + <!-- Javascript Libraries --> |
4780 | + <script type="text/javascript" src="lib/jquery.pack.js"></script> |
4781 | + <script type="text/javascript" src="lib/jquery.dimensions.pack.js"></script> |
4782 | + <script type="text/javascript" src="lib/jquery.ifixpng.js"></script> |
4783 | + </head> |
4784 | + |
4785 | + <body> |
4786 | + <h1>Content</h1> |
4787 | + <h2>Overview</h2> |
4788 | + |
4789 | + <p><?php echo PRODUCT_NAME; ?> uses content to on layouts. The content library is a store of all the content that |
4790 | + has been used on layouts in the past, and content to be used on new layouts.</p> |
4791 | + |
4792 | + <p>In <?php echo PRODUCT_NAME; ?> content refers to individual “items” that you want to be |
4793 | + available for displaying.</p> |
4794 | + |
4795 | + <p">For example a picture is considered as a piece of content and so is a piece of text. |
4796 | + Each piece of content has information relating to it that <?php echo PRODUCT_NAME; ?> uses to display it in the best way. You will be |
4797 | + prompted to enter all the required information when you come to add pieces of content.</p> |
4798 | + |
4799 | + <p>Adding content on its own is not enough to actually display it on the screen, there |
4800 | + are further steps required before this can happen (i.e. Layouts).</p> |
4801 | + |
4802 | + <a name="When_should_content_be_added" id="When_should_content_be_added"></a><h2>When should content be added?</h2> |
4803 | + <p>From this content library page, content should be added before it is needed. However |
4804 | + content can also be added when creating layouts using the layout designer.</p> |
4805 | + |
4806 | + <?php include('../../template/footer.php'); ?> |
4807 | + </body> |
4808 | +</html> |
4809 | + |
4810 | |
4811 | === added file 'server/manual/content/content/types.php' |
4812 | --- server/manual/content/content/types.php 1970-01-01 00:00:00 +0000 |
4813 | +++ server/manual/content/content/types.php 2013-04-11 16:56:27 +0000 |
4814 | @@ -0,0 +1,92 @@ |
4815 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
4816 | +<?php include('../../template.php'); ?> |
4817 | +<html> |
4818 | + <head> |
4819 | + <meta name="generator" content="HTML Tidy, see www.w3.org"> |
4820 | + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
4821 | + |
4822 | + <title><?php echo PRODUCT_NAME; ?> Documentation</title> |
4823 | + <link rel="stylesheet" type="text/css" href="../../css/doc.css"> |
4824 | + <meta http-equiv="Content-Type" content="text/html"> |
4825 | + <meta name="keywords" content="digital signage, signage, narrow-casting, <?php echo PRODUCT_NAME; ?>, open source, agpl" /> |
4826 | + <meta name="description" content="<?php echo PRODUCT_NAME; ?> is an open source digital signage solution. It supports all main media types and can be interfaced to other sources of data using CSV, Databases or RSS." /> |
4827 | + <link href="img/favicon.ico" rel="shortcut icon"> |
4828 | + <!-- Javascript Libraries --> |
4829 | + <script type="text/javascript" src="lib/jquery.pack.js"></script> |
4830 | + <script type="text/javascript" src="lib/jquery.dimensions.pack.js"></script> |
4831 | + <script type="text/javascript" src="lib/jquery.ifixpng.js"></script> |
4832 | + </head> |
4833 | + |
4834 | + <body> |
4835 | + <h2>Types of Content</h2> |
4836 | + |
4837 | + <p>A content item is piece of media that you wish to display. This can be different types of media, such as |
4838 | + Videos, Flash animations, RSS feeds, Pictures and more.</p> |
4839 | + <p>The library table comprises of all the content items that you have uploaded or created. You can also see any other |
4840 | + content items that a user has shared within this table</p> |
4841 | + |
4842 | + <blockquote> |
4843 | + <h3>Filter</h3> |
4844 | + <p>You can use the filter to search for the content item that you would like to modify.</p> |
4845 | + <ul> |
4846 | + <p><strong>Name: </strong>Partial Name matching with the media items for display.</p> |
4847 | + <p><strong>Type: </strong>List specific media type i.e. all, image or video</p> |
4848 | + <p><strong>Retired: </strong>List inactive media items in the library.</p> |
4849 | + <p><strong>Owner: </strong>List media items with the specified owner</p> |
4850 | + <p><strong>Original Filename: </strong>Display extra colume that shows the original file name for each media item.</p> |
4851 | + </ul> |
4852 | + |
4853 | + <p><img alt="Library Media" src="library_media.png" |
4854 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
4855 | + width="650" height="463"></p> |
4856 | + |
4857 | + <h3>Files</h3> |
4858 | + <p><strong>Files</strong> consist of media files such as JPEG, WMV, AVI, SWF, PPT files that are stored on the server.</p> |
4859 | + |
4860 | + <ul> |
4861 | + <p><strong>JPG</strong> is the common type of file used for still photos</p> |
4862 | + <p><strong>WMV</strong> stands for Windows Media Video files. These files allow full motion video to be shown on your display</p> |
4863 | + <p><strong>SWF</strong> these are flash animation files.</p> |
4864 | + <p><strong>PPT</strong> PowerPoint files can also be media types. If you wish to set an automated PowerPoint presentation to display all your slides you must configure this prior to upload. PowerPoint |
4865 | + support is only available under Internet Explorer and with client machines that have Microsoft Office installed.</p> |
4866 | + </ul> |
4867 | + |
4868 | + <h3>RSS</h3> |
4869 | + |
4870 | + <p><strong>RSS</strong> is used to retrieve information from the web that is syndicated in RSS. |
4871 | + News feeds are commonly distributed this way. RSS is the best way to get up to date information |
4872 | + to your displays with less interaction on your behalf.</p> |
4873 | + |
4874 | + <p>The RSS Style provides information for the automation of the feed. If you would like to display |
4875 | + each story/item one at a time or if you would like a scroll effect. New custom effects can be built in |
4876 | + the RSS Styles page and will appear in the drop down list when adding a RSS item.</p> |
4877 | + |
4878 | + <p><?php echo PRODUCT_NAME; ?> has default RSS Styles which are available for selection when adding RSS content |
4879 | + items. The RSS styles control how the RSS Feed is displayed. If the default RSS Styles do not achieve |
4880 | + the desired effect for a particular RSS feed additional RSS Styles can be added by an <?php echo PRODUCT_NAME; ?> admin.</p> |
4881 | + |
4882 | + <p>Note: This involves a knowledge of the way RSS, XSL and CSS are constructed.</p> |
4883 | + |
4884 | + <h3>Text</h3> |
4885 | + |
4886 | + <p><strong>Text</strong> provides the ability to create information directly into the system. |
4887 | + Reports or messages can be created that can then be displayed on any layouts. Text input supports the |
4888 | + selections of fonts, colours and sizes.</p> |
4889 | + |
4890 | + <h3>Website</h3> |
4891 | + |
4892 | + <p><?php echo PRODUCT_NAME; ?> allows an entire web page to be added to a slide. Possible uses for this would |
4893 | + be a news article on a intranet news site.</p> |
4894 | + |
4895 | + <p>Please note that <?php echo PRODUCT_NAME; ?> can not guarantee that the website will fit on the displays |
4896 | + that it gets scheduled on. The area that the website takes up on the slide will resize to fit, |
4897 | + but due to its design the containing website may not.</p> |
4898 | + |
4899 | + <h3>Datasets</h3> |
4900 | + <p>DataSets are a new <?php echo PRODUCT_NAME; ?> feature to design and display tabular data, formatted nicely, in a region on a layout.</p> |
4901 | + </blockquote> |
4902 | + |
4903 | + <?php include('../../template/footer.php'); ?> |
4904 | + </body> |
4905 | +</html> |
4906 | + |
4907 | |
4908 | === added directory 'server/manual/content/dashboard' |
4909 | === added file 'server/manual/content/dashboard/dashboard.php' |
4910 | --- server/manual/content/dashboard/dashboard.php 1970-01-01 00:00:00 +0000 |
4911 | +++ server/manual/content/dashboard/dashboard.php 2013-04-11 16:56:27 +0000 |
4912 | @@ -0,0 +1,62 @@ |
4913 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
4914 | +<?php include('../../template.php'); ?> |
4915 | +<html> |
4916 | +<head> |
4917 | + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
4918 | + <title><?php echo PRODUCT_NAME; ?> Documentation</title> |
4919 | + <link rel="stylesheet" type="text/css" href="../../css/doc.css"> |
4920 | + <meta name="keywords" content="digital signage, signage, narrow-casting, <?php echo PRODUCT_NAME; ?>, open source, agpl" /> |
4921 | + <meta name="description" content="<?php echo PRODUCT_NAME; ?> is an open source digital signage solution. It supports all main media types and can be interfaced to other sources of data using CSV, Databases or RSS." /> <link href="img/favicon.ico" rel="shortcut icon"> |
4922 | + <!-- Javascript Libraries --> |
4923 | + <script type="text/javascript" src="lib/jquery.pack.js"></script> |
4924 | + <script type="text/javascript" src="lib/jquery.dimensions.pack.js"></script> |
4925 | + <script type="text/javascript" src="lib/jquery.ifixpng.js"></script> |
4926 | +</head> |
4927 | + |
4928 | +<body> |
4929 | + <h1 lang="en-GB" class="western">Dashboard</h1> |
4930 | + |
4931 | + <p>There are two types of dashboard which can be presented to a user on log in.</p> |
4932 | + |
4933 | + <h2>Default Dashboard</h2> |
4934 | + |
4935 | + <p>When a user first logs in they are presented with the <?php echo PRODUCT_NAME; ?> Dashboard. This |
4936 | + page presents all the options available to maintain your <?php echo PRODUCT_NAME; ?> Network. </p> |
4937 | + |
4938 | + <p><img alt="Default Dashboard" src="dashboard_admin.png" |
4939 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
4940 | + width="545" height="318"></p> |
4941 | + |
4942 | + <a name="Dashboard" id="Dashboard"></a><h2>Dashboard Icons</h2> |
4943 | + |
4944 | + <p>The dashboard icons allow the user to navigate to specific sections of the |
4945 | + <?php echo PRODUCT_NAME; ?> Interface, below is a discription of each icon.</p> |
4946 | + <ul> |
4947 | + <li>Schedule - Access the schedule for each display, and schedule new or existing layouts to displays.</li> |
4948 | + <li>Layouts - Links to manage all the user's defined layouts i.e. create, edit or delete layouts.</li> |
4949 | + <li>Library - Links to server library to manage its media contentes i.e. create, replace or delete media items.</li> |
4950 | + <li>Templates - View the templates that are offered to users when they create new layouts.</li> |
4951 | + <li>Users - Allows administration of users on the system (Admins Only).</li> |
4952 | + <li>Settings - <?php echo PRODUCT_NAME; ?> server configuration settings (Admins Only)</li> |
4953 | + <li>License - Information about the licenses <?php echo PRODUCT_NAME; ?> is released under.</li> |
4954 | + <li>Manual - Access <?php echo PRODUCT_NAME; ?> online manual</li> |
4955 | + </ul> |
4956 | + |
4957 | + <a name="Media_Dashboard" id="Media_Dashboard"></a><h2>Media Manager Dashboard</h2> |
4958 | + |
4959 | + <p>The media manager dashboard is used to delegate specific tasks to users of |
4960 | + the system. When a user has had their homepage configured they will no longer |
4961 | + be able to access admin parts of <?php echo PRODUCT_NAME; ?>. The media manager will replace the default |
4962 | + dashboard with a simple dashboard, pictured below.</p> |
4963 | + |
4964 | + <p><img alt="Media Manager Dashboard" src="dashboard_user.png" |
4965 | + style="display: block; text-align: center; margin-left: auto; margin-right: auto" |
4966 | + width="567" height="189"></p> |
4967 | + |
4968 | + <p>This icon provides the user with a direct link to the region of the |
4969 | + template that they have been delegated. To learn more about setting users |
4970 | + permissions click <a href="../users/overview.php">here</a>.</p> |
4971 | + |
4972 | + <?php include('../../template/footer.php'); ?> |
4973 | +</body> |
4974 | +</html> |
4975 | |
4976 | === added file 'server/manual/content/dashboard/dashboard_admin.png' |
4977 | Binary files server/manual/content/dashboard/dashboard_admin.png 1970-01-01 00:00:00 +0000 and server/manual/content/dashboard/dashboard_admin.png 2013-04-11 16:56:27 +0000 differ |
4978 | === added file 'server/manual/content/dashboard/dashboard_user.png' |
4979 | Binary files server/manual/content/dashboard/dashboard_user.png 1970-01-01 00:00:00 +0000 and server/manual/content/dashboard/dashboard_user.png 2013-04-11 16:56:27 +0000 differ |
4980 | === added file 'server/manual/content/dashboard/navbar.php' |
4981 | --- server/manual/content/dashboard/navbar.php 1970-01-01 00:00:00 +0000 |
4982 | +++ server/manual/content/dashboard/navbar.php 2013-04-11 16:56:27 +0000 |
4983 | @@ -0,0 +1,183 @@ |
4984 | +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
4985 | +<?php include('../../template.php'); ?> |
4986 | +<html> |
4987 | +<head> |
4988 | + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
4989 | + <title><?php echo PRODUCT_NAME; ?> Documentation</title> |
4990 | + <link rel="stylesheet" type="text/css" href="../../css/doc.css"> |
4991 | + <meta name="keywords" content="digital signage, signage, narrow-casting, <?php echo PRODUCT_NAME; ?>, open source, agpl" /> |
4992 | + <meta name="description" content="<?php echo PRODUCT_NAME; ?> is an open source digital signage solution. It supports all main media types and can be interfaced to other sources of data using CSV, Databases or RSS." /> <link href="img/favicon.ico" rel="shortcut icon"> |
4993 | + <!-- Javascript Libraries --> |
4994 | + <script type="text/javascript" src="lib/jquery.pack.js"></script> |
4995 | + <script type="text/javascript" src="lib/jquery.dimensions.pack.js"></script> |
4996 | + <script type="text/javascript" src="lib/jquery.ifixpng.js"></script> |
4997 | +</head> |
4998 | + |
4999 | +<body> |
5000 | + <h1>Navigation</h1> |
The diff has been truncated for viewing.