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