Merge lp:~dangarner/xibo/client-163 into lp:xibo/1.7

Proposed by Dan Garner
Status: Needs review
Proposed branch: lp:~dangarner/xibo/client-163
Merge into: lp:xibo/1.7
Diff against target: 1542 lines (+683/-171) (has conflicts)
41 files modified
client/dotNET/DataSetView.cs (+3/-1)
client/dotNET/Properties/Settings.Designer.cs (+8/-0)
client/dotNET/Properties/Settings.settings (+8/-0)
client/dotNET/Rss.cs (+2/-1)
client/dotNET/app.config (+8/-0)
default.pot (+8/-0)
server/config/config.class.php (+12/-2)
server/install.php (+12/-0)
server/install/database/71.sql (+4/-0)
server/install/master/data.sql (+4/-0)
server/install/master/structure.sql (+10/-0)
server/lib/app/kit.class.php (+1/-1)
server/lib/app/pdoconnect.class.php (+11/-1)
server/lib/data/dataset.data.class.php (+1/-2)
server/lib/data/datasetdata.data.class.php (+1/-1)
server/lib/data/displaygroup.data.class.php (+9/-5)
server/lib/data/region.data.class.php (+19/-8)
server/lib/data/userdata.data.class.php (+28/-0)
server/lib/data/usergroup.data.class.php (+1/-1)
server/lib/include.php (+4/-0)
server/lib/modules/module.class.php (+8/-5)
server/lib/pages/admin.class.php (+7/-7)
server/lib/pages/content.class.php (+1/-1)
server/lib/pages/display.class.php (+7/-5)
server/lib/pages/displaygroup.class.php (+1/-1)
server/lib/pages/schedule.class.php (+17/-12)
server/lib/pages/statusdashboard.class.php (+1/-1)
server/lib/pages/timeline.class.php (+6/-0)
server/lib/pages/user.class.php (+5/-17)
server/lib/service/xmdssoap.class.php (+6/-0)
server/locale/dbtranslate.php (+43/-0)
server/manual/content/admin/api_layouts.php (+39/-16)
server/manual/content/admin/release_notes_1.6.2.php (+162/-76)
server/manual/content/admin/release_notes_1.6.3.php (+83/-0)
server/manual/template.php (+4/-0)
server/modules/preview/HtmlTemplateForGetResource.html (+4/-0)
server/modules/preview/html-preview.js (+12/-4)
server/modules/preview/xibo-text-render.js (+31/-0)
server/modules/preview/xibo-webpage-render.js (+73/-1)
server/theme/default/html/status_dashboard.php (+7/-2)
server/upgrade.php (+12/-0)
Text conflict in client/dotNET/Properties/Settings.Designer.cs
Text conflict in client/dotNET/Properties/Settings.settings
Text conflict in client/dotNET/app.config
Contents conflict in default.mo
Text conflict in default.pot
Text conflict in server/config/config.class.php
Text conflict in server/install.php
Text conflict in server/install/master/data.sql
Text conflict in server/lib/data/region.data.class.php
Text conflict in server/lib/include.php
Text conflict in server/lib/service/xmdssoap.class.php
Text conflict in server/manual/content/admin/release_notes_1.6.2.php
Text conflict in server/manual/template.php
Text conflict in server/modules/preview/HtmlTemplateForGetResource.html
Text conflict in server/modules/preview/html-preview.js
Text conflict in server/modules/preview/xibo-text-render.js
Text conflict in server/modules/preview/xibo-webpage-render.js
Text conflict in server/theme/default/html/status_dashboard.php
Text conflict in server/upgrade.php
To merge this branch: bzr merge lp:~dangarner/xibo/client-163
Reviewer Review Type Date Requested Status
Xibo Maintainters Pending
Review via email: mp+231789@code.launchpad.net
To post a comment you must log in.

Unmerged revisions

347. By Dan Garner

[dotnetclient] Bumped Version (1.6.3, 85)
[dotnetclient] Always re-download resource when layout changes

346. By Dan Garner

Merged ~dangarner/xibo/server-163-final/

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'client/dotNET/DataSetView.cs'
2--- client/dotNET/DataSetView.cs 2013-11-09 12:14:38 +0000
3+++ client/dotNET/DataSetView.cs 2014-08-21 19:12:24 +0000
4@@ -40,6 +40,8 @@
5 private string _backgroundColor;
6 private string _backgroundTop;
7 private string _backgroundLeft;
8+
9+ private RegionOptions _options;
10
11 // File paths
12 private string _filePath;
13@@ -113,7 +115,7 @@
14 // It exists - therefore we want to get the last time it was updated
15 DateTime lastWriteDate = System.IO.File.GetLastWriteTime(filePath);
16
17- if (DateTime.Now.CompareTo(lastWriteDate.AddHours(_updateInterval * 1.0 / 60.0)) > 0)
18+ if (DateTime.Now.CompareTo(lastWriteDate.AddHours(_updateInterval * 1.0 / 60.0)) > 0 || _options.LayoutModifiedDate.CompareTo(lastWriteDate) > 0)
19 return false;
20 else
21 return true;
22
23=== modified file 'client/dotNET/Properties/Settings.Designer.cs'
24--- client/dotNET/Properties/Settings.Designer.cs 2014-06-29 16:11:23 +0000
25+++ client/dotNET/Properties/Settings.Designer.cs 2014-08-21 19:12:24 +0000
26@@ -271,7 +271,11 @@
27
28 [global::System.Configuration.ApplicationScopedSettingAttribute()]
29 [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
30+<<<<<<< TREE
31 [global::System.Configuration.DefaultSettingValueAttribute("1.6.2")]
32+=======
33+ [global::System.Configuration.DefaultSettingValueAttribute("1.6.3")]
34+>>>>>>> MERGE-SOURCE
35 public string ClientVersion {
36 get {
37 return ((string)(this["ClientVersion"]));
38@@ -535,7 +539,11 @@
39
40 [global::System.Configuration.ApplicationScopedSettingAttribute()]
41 [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
42+<<<<<<< TREE
43 [global::System.Configuration.DefaultSettingValueAttribute("84")]
44+=======
45+ [global::System.Configuration.DefaultSettingValueAttribute("85")]
46+>>>>>>> MERGE-SOURCE
47 public int ClientCodeVersion {
48 get {
49 return ((int)(this["ClientCodeVersion"]));
50
51=== modified file 'client/dotNET/Properties/Settings.settings'
52--- client/dotNET/Properties/Settings.settings 2014-06-29 16:11:23 +0000
53+++ client/dotNET/Properties/Settings.settings 2014-08-21 19:12:24 +0000
54@@ -69,7 +69,11 @@
55 <Value Profile="(Default)">cacheManager.xml</Value>
56 </Setting>
57 <Setting Name="ClientVersion" Type="System.String" Scope="Application">
58+<<<<<<< TREE
59 <Value Profile="(Default)">1.6.2</Value>
60+=======
61+ <Value Profile="(Default)">1.6.3</Value>
62+>>>>>>> MERGE-SOURCE
63 </Setting>
64 <Setting Name="scrollStepAmount" Type="System.Decimal" Scope="User">
65 <Value Profile="(Default)">1</Value>
66@@ -138,7 +142,11 @@
67 <Value Profile="(Default)">Bottom Right</Value>
68 </Setting>
69 <Setting Name="ClientCodeVersion" Type="System.Int32" Scope="Application">
70+<<<<<<< TREE
71 <Value Profile="(Default)">84</Value>
72+=======
73+ <Value Profile="(Default)">85</Value>
74+>>>>>>> MERGE-SOURCE
75 </Setting>
76 <Setting Name="ClientInformationKeyCode" Type="System.String" Scope="User">
77 <Value Profile="(Default)">I</Value>
78
79=== modified file 'client/dotNET/Rss.cs'
80--- client/dotNET/Rss.cs 2014-02-09 14:58:41 +0000
81+++ client/dotNET/Rss.cs 2014-08-21 19:12:24 +0000
82@@ -614,7 +614,8 @@
83 // It exists - therefore we want to get the last time it was updated
84 DateTime lastWriteDate = System.IO.File.GetLastWriteTime(_filePath);
85
86- if (DateTime.Now.CompareTo(lastWriteDate.AddHours(_updateInterval * 1.0 / 60.0)) > 0)
87+ // Either the update interval has expired or the layout has been modified.
88+ if (DateTime.Now.CompareTo(lastWriteDate.AddHours(_updateInterval * 1.0 / 60.0)) > 0 || _options.LayoutModifiedDate.CompareTo(lastWriteDate) > 0)
89 return false;
90 else
91 return true;
92
93=== modified file 'client/dotNET/app.config'
94--- client/dotNET/app.config 2014-06-29 16:11:23 +0000
95+++ client/dotNET/app.config 2014-08-21 19:12:24 +0000
96@@ -144,7 +144,11 @@
97 <value>cacheManager.xml</value>
98 </setting>
99 <setting name="ClientVersion" serializeAs="String">
100+<<<<<<< TREE
101 <value>1.6.2</value>
102+=======
103+ <value>1.6.3</value>
104+>>>>>>> MERGE-SOURCE
105 </setting>
106 <setting name="xmdsResetTimeout" serializeAs="String">
107 <value>900</value>
108@@ -156,7 +160,11 @@
109 <value>True</value>
110 </setting>
111 <setting name="ClientCodeVersion" serializeAs="String">
112+<<<<<<< TREE
113 <value>84</value>
114+=======
115+ <value>85</value>
116+>>>>>>> MERGE-SOURCE
117 </setting>
118 </XiboClient.Properties.Settings>
119 </applicationSettings>
120
121=== renamed file 'default.mo' => 'default.mo.OTHER'
122Binary files default.mo 2014-07-15 16:00:50 +0000 and default.mo.OTHER 2014-08-21 19:12:24 +0000 differ
123=== modified file 'default.pot'
124--- default.pot 2014-07-15 16:00:50 +0000
125+++ default.pot 2014-08-21 19:12:24 +0000
126@@ -2,7 +2,11 @@
127 msgstr ""
128 "Project-Id-Version: Xibo Digital Signage\n"
129 "Report-Msgid-Bugs-To: \n"
130+<<<<<<< TREE
131 "POT-Creation-Date: 2014-07-15 17:00-0000\n"
132+=======
133+"POT-Creation-Date: 2014-07-15 16:44-0000\n"
134+>>>>>>> MERGE-SOURCE
135 "PO-Revision-Date: \n"
136 "Last-Translator: Dan Garner <dan@xibo.org.uk>\n"
137 "Language-Team: <info@xibo.org.uk>\n"
138@@ -10,7 +14,11 @@
139 "MIME-Version: 1.0\n"
140 "Content-Type: text/plain; charset=UTF-8\n"
141 "Content-Transfer-Encoding: 8bit\n"
142+<<<<<<< TREE
143 "X-Poedit-Basepath: C:\\Users\\dan\\www\\release\\1.7.0-alpha\n"
144+=======
145+"X-Poedit-Basepath: C:\\Users\\dan\\www\\release\\1.6.2\n"
146+>>>>>>> MERGE-SOURCE
147 "X-Poedit-KeywordsList: __;Translate\n"
148 "X-Generator: Poedit 1.5.5\n"
149 "X-Poedit-SearchPath-0: server\n"
150
151=== modified file 'server/config/config.class.php'
152--- server/config/config.class.php 2014-06-28 16:12:52 +0000
153+++ server/config/config.class.php 2014-08-21 19:12:24 +0000
154@@ -1,7 +1,7 @@
155 <?php
156 /*
157 * Xibo - Digital Signage - http://www.xibo.org.uk
158- * Copyright (C) 2006-2013 Daniel Garner and James Packer
159+ * Copyright (C) 2006-2014 Daniel Garner and James Packer
160 *
161 * This file is part of Xibo.
162 *
163@@ -22,6 +22,8 @@
164
165 class Config
166 {
167+ public static $VERSION_REQUIRED = '5.3.3';
168+
169 private $extensions;
170 private $envTested;
171 private $envFault;
172@@ -129,7 +131,7 @@
173 // Check for PHP version
174 $message = __('PHP Version');
175
176- if ($this->CheckPHP() == 1)
177+ if ($this->CheckPHP())
178 {
179 $output .= $imgGood.$message.'<br />';
180 }
181@@ -138,7 +140,11 @@
182 $this->envFault = true;
183
184 $output .= $imgBad.$message.'<br />';
185+<<<<<<< TREE
186 $output .= '<div class="check_explain"> <p>' . __("PHP version 5.3.3 or later required.") . '. Detected ' . phpversion() . '</p></div>';
187+=======
188+ $output .= '<div class="check_explain"> <p>' . sprintf(__("PHP version %s or later required."), Config::$VERSION_REQUIRED) . '. Detected ' . phpversion() . '</p></div>';
189+>>>>>>> MERGE-SOURCE
190 }
191
192 // Check for file system permissions
193@@ -463,7 +469,11 @@
194 */
195 function CheckPHP()
196 {
197+<<<<<<< TREE
198 return ((version_compare('5.3.3', phpversion(), '>='))) ? 1 : 0;
199+=======
200+ return (version_compare(phpversion(), Config::$VERSION_REQUIRED) != -1);
201+>>>>>>> MERGE-SOURCE
202 }
203
204 /**
205
206=== modified file 'server/install.php'
207--- server/install.php 2014-07-15 15:59:36 +0000
208+++ server/install.php 2014-08-21 19:12:24 +0000
209@@ -20,11 +20,14 @@
210 */
211 DEFINE('XIBO', true);
212
213+<<<<<<< TREE
214 if (! checkPHP())
215 {
216 die('Xibo requires PHP 5.3.3 or later');
217 }
218
219+=======
220+>>>>>>> MERGE-SOURCE
221 error_reporting(0);
222 ini_set('display_errors', 0);
223
224@@ -33,6 +36,12 @@
225 include('config/config.class.php');
226 include('config/db_config.php');
227
228+$config = new Config();
229+
230+if (!$config->CheckPHP()) {
231+ die(sprintf('Xibo required PHP version %s.', Config::$VERSION_REQUIRED));
232+}
233+
234 // Setup for the Translations using Gettext.
235 // There is normally a class that will do this for us - but it requires a DB object (which we do not have at install time)
236 // Would be nice to include a method on the TranslationEngine that did this for us - but without the debugging
237@@ -691,11 +700,14 @@
238 return $key;
239 }
240
241+<<<<<<< TREE
242 function checkPHP()
243 {
244 return (version_compare("5.3.3",phpversion(), "<="));
245 }
246
247+=======
248+>>>>>>> MERGE-SOURCE
249 function CheckGettext()
250 {
251 return extension_loaded("gettext");
252
253=== added file 'server/install/database/71.sql'
254--- server/install/database/71.sql 1970-01-01 00:00:00 +0000
255+++ server/install/database/71.sql 2014-08-21 19:12:24 +0000
256@@ -0,0 +1,4 @@
257+
258+UPDATE `version` SET `app_ver` = '1.6.3', `XmdsVersion` = 3;
259+UPDATE `setting` SET `value` = 0 WHERE `setting` = 'PHONE_HOME_DATE';
260+UPDATE `version` SET `DBVersion` = '71';
261
262=== modified file 'server/install/master/data.sql'
263--- server/install/master/data.sql 2014-07-15 15:35:22 +0000
264+++ server/install/master/data.sql 2014-08-21 19:12:24 +0000
265@@ -1,5 +1,9 @@
266 INSERT INTO `version` (`app_ver`, `XmdsVersion`, `XlfVersion`, `DBVersion`) VALUES
267+<<<<<<< TREE
268 ('1.6.2', 3, 1, 70);
269+=======
270+('1.6.3', 3, 1, 71);
271+>>>>>>> MERGE-SOURCE
272
273 INSERT INTO `group` (`groupID`, `group`, `IsUserSpecific`, `IsEveryone`) VALUES
274 (1, 'Users', 0, 0),
275
276=== modified file 'server/install/master/structure.sql'
277--- server/install/master/structure.sql 2014-03-09 14:41:56 +0000
278+++ server/install/master/structure.sql 2014-08-21 19:12:24 +0000
279@@ -34,6 +34,7 @@
280 `DataSet` varchar(50) NOT NULL,
281 `Description` varchar(254) DEFAULT NULL,
282 `UserID` int(11) NOT NULL,
283+ `LastDataEdit` int(11) NOT NULL DEFAULT '0',
284 PRIMARY KEY (`DataSetID`),
285 KEY `UserID` (`UserID`)
286 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
287@@ -602,6 +603,15 @@
288 PRIMARY KEY (`id`)
289 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='File associations directly to Display Groups' AUTO_INCREMENT=1 ;
290
291+CREATE TABLE IF NOT EXISTS `lkdatasetlayout` (
292+ `LkDataSetLayoutID` int(11) NOT NULL AUTO_INCREMENT,
293+ `DataSetID` int(11) NOT NULL,
294+ `LayoutID` int(11) NOT NULL,
295+ `RegionID` varchar(50) NOT NULL,
296+ `MediaID` varchar(50) NOT NULL,
297+ PRIMARY KEY (`LkDataSetLayoutID`)
298+) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
299+
300 --
301 -- Constraints for dumped tables
302 --
303
304=== modified file 'server/lib/app/kit.class.php'
305--- server/lib/app/kit.class.php 2014-05-26 09:09:06 +0000
306+++ server/lib/app/kit.class.php 2014-08-21 19:12:24 +0000
307@@ -372,7 +372,7 @@
308 */
309 public static function GetURL($page = "")
310 {
311- $page = $this->ValidateParam($page, _WORD);
312+ $page = Kit::ValidateParam($page, _WORD);
313 $fullUrl = 'http';
314
315 if(isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on')
316
317=== modified file 'server/lib/app/pdoconnect.class.php'
318--- server/lib/app/pdoconnect.class.php 2014-01-18 09:47:41 +0000
319+++ server/lib/app/pdoconnect.class.php 2014-08-21 19:12:24 +0000
320@@ -34,8 +34,18 @@
321 global $dbpass;
322 global $dbname;
323
324+ $dbport = '';
325+
326+ if (strstr($dbhost, ':')) {
327+ $hostParts = explode(':', $dbhost);
328+ $dsn = 'mysql:host=' . $hostParts[0] . ';port=' . $hostParts[1] . ';dbname=' . $dbname . ';';
329+ }
330+ else {
331+ $dsn = 'mysql:host=' . $dbhost . ';dbname=' . $dbname . ';';
332+ }
333+
334 // Open the connection and set the error mode
335- self::$conn = new PDO('mysql:host=' . $dbhost . ';dbname=' . $dbname . ';', $dbuser, $dbpass);
336+ self::$conn = new PDO($dsn, $dbuser, $dbpass);
337 self::$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
338
339 self::$conn->query("SET NAMES 'utf8'");
340
341=== modified file 'server/lib/data/dataset.data.class.php'
342--- server/lib/data/dataset.data.class.php 2014-07-08 14:45:16 +0000
343+++ server/lib/data/dataset.data.class.php 2014-08-21 19:12:24 +0000
344@@ -441,8 +441,7 @@
345
346 Debug::LogEntry('audit', $SQL);
347
348- if (!$rows = $db->GetArray($SQL, $associative))
349- trigger_error($db->error());
350+ $rows = $db->GetArray($SQL, $associative);
351
352 if (!is_array($rows))
353 $rows = array();
354
355=== modified file 'server/lib/data/datasetdata.data.class.php'
356--- server/lib/data/datasetdata.data.class.php 2014-07-12 13:54:51 +0000
357+++ server/lib/data/datasetdata.data.class.php 2014-08-21 19:12:24 +0000
358@@ -377,4 +377,4 @@
359 }
360 }
361 }
362-?>
363\ No newline at end of file
364+?>
365
366=== modified file 'server/lib/data/displaygroup.data.class.php'
367--- server/lib/data/displaygroup.data.class.php 2014-04-19 09:11:34 +0000
368+++ server/lib/data/displaygroup.data.class.php 2014-08-21 19:12:24 +0000
369@@ -151,7 +151,8 @@
370 */
371 public function Delete($displayGroupID)
372 {
373- Debug::LogEntry('audit', 'IN', 'DisplayGroup', 'Delete');
374+ if ($displayGroupID == NULL || $displayGroupID == 0)
375+ return $this->SetError(__('Missing displayGroupId'));
376
377 try {
378 $dbh = PDOConnect::init();
379@@ -162,6 +163,13 @@
380 if (!$schedule->DeleteScheduleForDisplayGroup($displayGroupID))
381 throw new Exception('Unable to DeleteScheduleForDisplayGroup');
382
383+ // Remove all permissions
384+ Kit::ClassLoader('displaygroupsecurity');
385+ $security = new DisplayGroupSecurity($this->db);
386+
387+ if (!$security->UnlinkAll($displayGroupID))
388+ throw new Exception('Unable to Unlink all Display Group Permissions');
389+
390 // Delete the Display Group
391 $sth = $dbh->prepare('DELETE FROM displaygroup WHERE DisplayGroupID = :displaygroupid');
392 $sth->execute(array(
393@@ -414,10 +422,6 @@
394
395 try {
396 $dbh = PDOConnect::init();
397-
398- // Check that some media assignments have been made
399- if (count($mediaList) == 0)
400- $this->ThrowError(25006, __('No media to assign'));
401
402 // Drop all current assignments
403 if (!$link->UnlinkAllFromDisplayGroup($displayGroupId))
404
405=== modified file 'server/lib/data/region.data.class.php'
406--- server/lib/data/region.data.class.php 2014-07-01 17:12:06 +0000
407+++ server/lib/data/region.data.class.php 2014-08-21 19:12:24 +0000
408@@ -22,10 +22,19 @@
409
410 class Region extends Data
411 {
412- // Caching
413- private $layoutXml;
414- private $layoutDocument;
415-
416+<<<<<<< TREE
417+ // Caching
418+ private $layoutXml;
419+ private $layoutDocument;
420+
421+=======
422+ // Caching
423+ private $layoutXml;
424+ private $layoutDocument;
425+
426+ public $delayFinalise = false;
427+
428+>>>>>>> MERGE-SOURCE
429 public function __construct(database $db)
430 {
431 $this->db =& $db;
432@@ -632,10 +641,12 @@
433 if (!$this->SetLayoutXml($layoutid, $xml->saveXML()))
434 return false;
435
436- // Update layout status
437- Kit::ClassLoader('Layout');
438- $layout = new Layout($this->db);
439- $layout->SetValid($layoutid, true);
440+ if (!$this->delayFinalise) {
441+ // Update layout status
442+ Kit::ClassLoader('Layout');
443+ $layout = new Layout($this->db);
444+ $layout->SetValid($layoutid, true);
445+ }
446
447 //Its swapped
448 return true;
449
450=== modified file 'server/lib/data/userdata.data.class.php'
451--- server/lib/data/userdata.data.class.php 2014-01-18 09:47:41 +0000
452+++ server/lib/data/userdata.data.class.php 2014-08-21 19:12:24 +0000
453@@ -34,6 +34,34 @@
454
455 class Userdata extends Data
456 {
457+ public $userId;
458+
459+ public function Delete() {
460+ if (!isset($this->userId) || $this->userId == 0)
461+ return $this->SetError(__('Missing userId'));
462+
463+ try {
464+ $dbh = PDOConnect::init();
465+
466+ $sth = $dbh->prepare('DELETE FROM `user` WHERE userid = :userid');
467+ $sth->execute(array('userid' => $this->userId));
468+
469+ $sth = $dbh->prepare('DELETE FROM `session` WHERE userid = :userid');
470+ $sth->execute(array('userid' => $this->userId));
471+
472+ return true;
473+ }
474+ catch (Exception $e) {
475+
476+ Debug::LogEntry('error', $e->getMessage(), get_class(), __FUNCTION__);
477+
478+ if (!$this->IsError())
479+ $this->SetError(1, __('Unknown Error'));
480+
481+ return false;
482+ }
483+ }
484+
485 /**
486 * Change a users password
487 * @param <type> $userId
488
489=== modified file 'server/lib/data/usergroup.data.class.php'
490--- server/lib/data/usergroup.data.class.php 2014-01-18 09:47:41 +0000
491+++ server/lib/data/usergroup.data.class.php 2014-08-21 19:12:24 +0000
492@@ -255,7 +255,7 @@
493
494 $sth = $dbh->prepare('DELETE FROM lkusergroup WHERE UserID = :userid');
495 $sth->execute(array(
496- 'userid' => $userID
497+ 'userid' => $userId
498 ));
499
500 Debug::LogEntry('audit', 'OUT', 'UserGroup', 'UnlinkAllGroups');
501
502=== modified file 'server/lib/include.php'
503--- server/lib/include.php 2014-07-15 15:36:06 +0000
504+++ server/lib/include.php 2014-08-21 19:12:24 +0000
505@@ -20,7 +20,11 @@
506 */
507 defined('XIBO') or die("Sorry, you are not allowed to directly access this page.<br /> Please press the back button in your browser.");
508
509+<<<<<<< TREE
510 define('WEBSITE_VERSION', 70);
511+=======
512+define('WEBSITE_VERSION', 71);
513+>>>>>>> MERGE-SOURCE
514
515 // No errors reported until we read the settings from the DB
516 error_reporting(0);
517
518=== modified file 'server/lib/modules/module.class.php'
519--- server/lib/modules/module.class.php 2014-07-01 17:12:06 +0000
520+++ server/lib/modules/module.class.php 2014-08-21 19:12:24 +0000
521@@ -52,6 +52,7 @@
522 protected $showRegionOptions;
523 protected $originalUserId;
524 protected $storedAs;
525+ protected $originalFilename;
526
527 // Track the error state
528 private $error;
529@@ -237,7 +238,7 @@
530 $dbh = PDOConnect::init();
531
532 // Load what we know about this media into the object
533- $sth = $dbh->prepare('SELECT duration, name, UserId, storedAs FROM media WHERE mediaID = :media_id');
534+ $sth = $dbh->prepare('SELECT duration, name, UserId, storedAs, originalFilename FROM media WHERE mediaID = :media_id');
535 $sth->execute(array(
536 'media_id' => $mediaid
537 ));
538@@ -252,6 +253,7 @@
539 $this->name = $rows[0]['name'];
540 $this->originalUserId = $rows[0]['UserId'];
541 $this->storedAs = $rows[0]['storedAs'];
542+ $this->originalFilename = $rows[0]['originalFilename'];
543 }
544 catch (Exception $e) {
545
546@@ -1203,9 +1205,6 @@
547
548 Debug::LogEntry('audit', sprintf('Replacing mediaid %s with mediaid %s in all layouts', $oldMediaId, $newMediaId), 'module', 'ReplaceMediaInAllLayouts');
549
550- // Create a region object for later use
551- $region = new region($db);
552-
553 try {
554 $dbh = PDOConnect::init();
555
556@@ -1231,6 +1230,9 @@
557
558 Debug::LogEntry('audit', sprintf('%d linked media items for layoutid %d', count($results), $layoutId), 'module', 'ReplaceMediaInAllLayouts');
559
560+ // Create a region object for later use (new one each time)
561+ $region = new region($db);
562+
563 // Loop through each media link for this layout
564 foreach ($results as $row)
565 {
566@@ -1958,13 +1960,14 @@
567 }
568
569 $download = Kit::GetParam('download', _REQUEST, _BOOLEAN, false);
570+ $downloadFromLibrary = Kit::GetParam('downloadFromLibrary', _REQUEST, _BOOLEAN, false);
571
572 $size = filesize($fileName);
573
574 if ($download) {
575 header('Content-Type: application/octet-stream');
576 header("Content-Transfer-Encoding: Binary");
577- header("Content-disposition: attachment; filename=\"" . basename($fileName) . "\"");
578+ header("Content-disposition: attachment; filename=\"" . (($downloadFromLibrary) ? $this->originalFilename : basename($fileName)) . "\"");
579 }
580 else {
581 $fi = new finfo( FILEINFO_MIME_TYPE );
582
583=== modified file 'server/lib/pages/admin.class.php'
584--- server/lib/pages/admin.class.php 2014-06-30 15:15:17 +0000
585+++ server/lib/pages/admin.class.php 2014-08-21 19:12:24 +0000
586@@ -262,13 +262,13 @@
587 // Monthly bandwidth - optionally tested against limits
588 $xmdsLimit = Config::GetSetting('MONTHLY_XMDS_TRANSFER_LIMIT_KB');
589 $startOfMonth = strtotime(date('m').'/01/'.date('Y').' 00:00:00');
590-
591- $sql = sprintf('SELECT IFNULL(SUM(Size), 0) AS BandwidthUsage FROM `bandwidth` WHERE Month = %d', $startOfMonth);
592- $bandwidthUsage = $this->db->GetSingleValue($sql, 'BandwidthUsage', _INT);
593-
594- Debug::LogEntry('audit', $sql);
595-
596- $usagePcnt = ($xmdsLimit > 0) ? (($bandwidthUsage / ($xmdsLimit * 1024)) * 100) : '';
597+
598+ $sql = sprintf('SELECT IFNULL(SUM(Size), 0) AS BandwidthUsage FROM `bandwidth` WHERE Month > %d AND Month < %d', $startOfMonth, $startOfMonth + (86400 * 2));
599+ $bandwidthUsage = $this->db->GetSingleValue($sql, 'BandwidthUsage', _DOUBLE);
600+
601+ Debug::LogEntry('audit', $sql . '. Usage: ' . $bandwidthUsage);
602+
603+ $usagePcnt = ($xmdsLimit > 0) ? (((double)$bandwidthUsage / ($xmdsLimit * 1024)) * 100) : '';
604
605 $output .= '<p>' . sprintf(__('You have used %s of bandwidth this month.'), $this->FormatByteSize($bandwidthUsage)) . (($xmdsLimit > 0) ? sprintf(__(' This is %d %% of your %s limit.'), $usagePcnt, $this->FormatByteSize($xmdsLimit * 1024)) : '') . '</p>';
606 }
607
608=== modified file 'server/lib/pages/content.class.php'
609--- server/lib/pages/content.class.php 2014-03-08 14:41:11 +0000
610+++ server/lib/pages/content.class.php 2014-08-21 19:12:24 +0000
611@@ -151,7 +151,7 @@
612 // Download
613 $row['buttons'][] = array(
614 'id' => 'content_button_download',
615- 'url' => 'index.php?p=module&mod=' . $row['mediatype'] . '&q=Exec&method=GetResource&download=1&mediaid=' . $row['mediaid'],
616+ 'url' => 'index.php?p=module&mod=' . $row['mediatype'] . '&q=Exec&method=GetResource&download=1&downloadFromLibrary=1&mediaid=' . $row['mediaid'],
617 'text' => __('Download')
618 );
619
620
621=== modified file 'server/lib/pages/display.class.php'
622--- server/lib/pages/display.class.php 2014-07-12 12:09:34 +0000
623+++ server/lib/pages/display.class.php 2014-08-21 19:12:24 +0000
624@@ -338,11 +338,13 @@
625 $row['mediainventorystatus'] = ($row['mediainventorystatus'] == 1) ? 'success' : (($row['mediainventorystatus'] == 2) ? 'error' : 'warning');
626
627 // Schedule Now
628- $row['buttons'][] = array(
629- 'id' => 'display_button_schedulenow',
630- 'url' => 'index.php?p=schedule&q=ScheduleNowForm&displayGroupId=' . $row['displaygroupid'],
631- 'text' => __('Schedule Now')
632- );
633+ if ($row['edit'] == 1 || Config::GetSetting('SCHEDULE_WITH_VIEW_PERMISSION') == 'Yes') {
634+ $row['buttons'][] = array(
635+ 'id' => 'display_button_schedulenow',
636+ 'url' => 'index.php?p=schedule&q=ScheduleNowForm&displayGroupId=' . $row['displaygroupid'],
637+ 'text' => __('Schedule Now')
638+ );
639+ }
640
641 // Media Inventory
642 $row['buttons'][] = array(
643
644=== modified file 'server/lib/pages/displaygroup.class.php'
645--- server/lib/pages/displaygroup.class.php 2014-06-30 15:15:17 +0000
646+++ server/lib/pages/displaygroup.class.php 2014-08-21 19:12:24 +0000
647@@ -775,7 +775,7 @@
648 $response = new ResponseManager();
649
650 $displayGroupId = Kit::GetParam('displaygroupid', _GET, _INT);
651- $mediaList = Kit::GetParam('MediaID', _POST, _ARRAY_INT, array(), false);
652+ $mediaList = Kit::GetParam('MediaID', _POST, _ARRAY_INT, NULL, false);
653
654 if ($displayGroupId == 0)
655 trigger_error(__('Display Group not selected'), E_USER_ERROR);
656
657=== modified file 'server/lib/pages/schedule.class.php'
658--- server/lib/pages/schedule.class.php 2014-07-09 17:27:29 +0000
659+++ server/lib/pages/schedule.class.php 2014-08-21 19:12:24 +0000
660@@ -1100,8 +1100,9 @@
661 // Determine if we are authed against this group.
662 $auth = $this->user->DisplayGroupAuth($displayGroupID, true);
663
664- if (!$auth->view)
665- continue;
666+ // We should only be able to schedule if we have edit permission or if the SCHEDULE_WITH_VIEW permission is ON
667+ if (!$auth->edit && Config::GetSetting('SCHEDULE_WITH_VIEW_PERMISSION') == 'No')
668+ continue;
669
670 // Do we need to nest yet? We only nest display specific groups
671 if ($isDisplaySpecific == 1 && !$nested)
672@@ -1760,19 +1761,23 @@
673 * @return
674 * @param $eventDGIDs Object
675 */
676- private function IsEventEditable($eventDGIDs)
677- {
678- $db =& $this->db;
679- $user =& $this->user;
680+ private function IsEventEditable($eventDGIDs) {
681+
682+ $scheduleWithView = (Config::GetSetting('SCHEDULE_WITH_VIEW_PERMISSION') == 'Yes');
683
684 // Work out if this event is editable or not. To do this we need to compare the permissions
685 // of each display group this event is associated with
686- foreach ($eventDGIDs as $dgID)
687- {
688- if (!$user->DisplayGroupAuth($dgID))
689- {
690- return false;
691- }
692+ foreach ($eventDGIDs as $dgID) {
693+ // Permissions for display group
694+ $auth = $this->user->DisplayGroupAuth($dgID, true);
695+
696+ // Can schedule with view, but no view permissions
697+ if ($scheduleWithView && !$auth->view)
698+ return false;
699+
700+ // Can't schedule with view, but no edit permissions
701+ if (!$scheduleWithView && !$auth->edit)
702+ return false;
703 }
704
705 return true;
706
707=== modified file 'server/lib/pages/statusdashboard.class.php'
708--- server/lib/pages/statusdashboard.class.php 2014-06-29 14:37:07 +0000
709+++ server/lib/pages/statusdashboard.class.php 2014-08-21 19:12:24 +0000
710@@ -45,7 +45,7 @@
711
712 foreach ($results as $row) {
713
714- $points['data'][] = array($row['month'], ((double)$row['size']) / 1024 / 1024 / 1024);
715+ $points['data'][] = array(__($row['month']), ((double)$row['size']) / 1024 / 1024 / 1024);
716 }
717
718 $points['label'] = __('GB');
719
720=== modified file 'server/lib/pages/timeline.class.php'
721--- server/lib/pages/timeline.class.php 2014-06-30 15:15:17 +0000
722+++ server/lib/pages/timeline.class.php 2014-08-21 19:12:24 +0000
723@@ -293,6 +293,7 @@
724
725 Kit::ClassLoader('region');
726 $regionObject = new region($db);
727+ $regionObject->delayFinalise = true;
728 $ownerId = $regionObject->GetOwnerId($layoutid, $regionid);
729
730 $regionAuth = $this->user->RegionAssignmentAuth($ownerId, $layoutid, $regionid, true);
731@@ -302,6 +303,11 @@
732 if (!$regionObject->EditRegion($layoutid, $regionid, $width, $height, $top, $left))
733 trigger_error($regionObject->GetErrorMessage(), E_USER_ERROR);
734 }
735+
736+ // Set the layout status
737+ Kit::ClassLoader('Layout');
738+ $layout = new Layout($this->db);
739+ $layout->SetValid($layoutid, true);
740
741 $response->SetFormSubmitResponse('');
742 $response->hideMessage = true;
743
744=== modified file 'server/lib/pages/user.class.php'
745--- server/lib/pages/user.class.php 2014-06-30 15:15:17 +0000
746+++ server/lib/pages/user.class.php 2014-08-21 19:12:24 +0000
747@@ -430,23 +430,11 @@
748 trigger_error($userGroupObject->GetErrorMessage(), E_USER_ERROR);
749
750 // Delete the user
751- $sqldel = "DELETE FROM user";
752- $sqldel .= " WHERE UserID = %d";
753-
754- if (!$db->query(sprintf($sqldel, $userid)))
755- {
756- trigger_error($db->error());
757- trigger_error(__("This user has been active, you may only retire them."), E_USER_ERROR);
758- }
759-
760- // We should delete this users sessions record.
761- $SQL = "DELETE FROM session WHERE userID = %d ";
762-
763- if (!$db->query(sprintf($SQL, $userid)))
764- {
765- trigger_error($db->error());
766- trigger_error(__("If logged in, this user will be deleted once they log out."), E_USER_ERROR);
767- }
768+ Kit::ClassLoader('userdata');
769+ $user = new UserData($this->db);
770+ $user->userId = $userid;
771+ if (!$user->Delete())
772+ trigger_error($user->GetErrorMessage(), E_USER_ERROR);
773
774 $response->SetFormSubmitResponse(__('User Deleted.'));
775 $response->Respond();
776
777=== modified file 'server/lib/service/xmdssoap.class.php'
778--- server/lib/service/xmdssoap.class.php 2014-07-08 12:46:48 +0000
779+++ server/lib/service/xmdssoap.class.php 2014-08-21 19:12:24 +0000
780@@ -1128,8 +1128,14 @@
781
782 // See if the client was offline and if appropriate send an alert
783 // to say that it has come back online
784+<<<<<<< TREE
785 if ($row[5] == 0 && $row[6] == 1 && Config::GetSetting('MAINTENANCE_ENABLED') == 'On' &&
786 (Config::GetSetting('MAINTENANCE_EMAIL_ALERTS') == 'On' || Config::GetSetting('MAINTENANCE_EMAIL_ALERTS') == 'Protected'))
787+=======
788+ if ($row[5] == 0 && $row[6] == 1
789+ && (Config::GetSetting('MAINTENANCE_ENABLED') == 'On' || Config::GetSetting('MAINTENANCE_ENABLED') == 'Protected')
790+ && Config::GetSetting('MAINTENANCE_EMAIL_ALERTS') == 'On')
791+>>>>>>> MERGE-SOURCE
792 {
793 $msgTo = Kit::ValidateParam(Config::GetSetting("mail_to"),_PASSWORD);
794 $msgFrom = Kit::ValidateParam(Config::GetSetting("mail_from"),_PASSWORD);
795
796=== modified file 'server/locale/dbtranslate.php'
797--- server/locale/dbtranslate.php 2014-06-30 14:41:38 +0000
798+++ server/locale/dbtranslate.php 2014-08-21 19:12:24 +0000
799@@ -116,4 +116,47 @@
800 echo __('Value');
801 echo __('Formula');
802
803+
804+echo __('Media will be created with these settings. If public everyone will be able to view and use this media.');
805+echo __('New layouts will be created with these settings. If public everyone will be able to view and use this layout.');
806+echo __('Sets the default user type selected when creating a user.\r\n<br />\r\nWe recommend that this is set to "User"');
807+echo __('Sets whether debug information is recorded when an error occurs.\r\n<br />\r\nThis should be set to "off" to ensure smaller log sizes');
808+echo __('This sets which user authentication module is currently being used.');
809+echo __('Sets the admin message to be displayed on the client page at all times');
810+echo __('Set the default timezone for the application');
811+echo __('Errors will be mailed here');
812+echo __('Mail will be sent from this address');
813+echo __('This is the fully qualified URI of the site. e.g http://www.xibo.co.uk/');
814+echo __('Default length for JPG files (in seconds)');
815+echo __('Default length for PPT files');
816+echo __('Default height for PPT files');
817+echo __('Default length for PPT files (in seconds)');
818+echo __('Default length for SWF files');
819+echo __('Turn on the auditing information. Warning this will quickly fill up the log');
820+echo __('Should the server send anonymous statistics back to the Xibo project?');
821+echo __('Key used to distinguish each Xibo instance. This is generated randomly based on the time you first installed Xibo, and is completely untraceable.');
822+echo __('The URL to connect to to PHONE_HOME (if enabled)');
823+echo __('The last time we PHONED_HOME in seconds since the epoch');
824+echo __('This should only be set if you want to display the maximum allowed error messaging through the user interface. <br /> Useful for capturing critical php errors and environment issues.');
825+echo __('Allow the maintenance script to run if it is called?');
826+echo __('Global switch for email alerts to be sent');
827+echo __('String appended to the maintenance script to prevent malicious calls to the script.');
828+echo __('Maximum age for log entries. Set to 0 to keep logs indefinitely.');
829+echo __('Maximum age for statistics entries. Set to 0 to keep statistics indefinitely.');
830+echo __('How long in minutes after the last time a client connects should we send an alert? Can be overridden on a per client basis.');
831+
832+
833+echo __('January');
834+echo __('February');
835+echo __('March');
836+echo __('April');
837+echo __('May');
838+echo __('June');
839+echo __('July');
840+echo __('August');
841+echo __('September');
842+echo __('October');
843+echo __('November');
844+echo __('December');
845+
846 ?>
847
848=== modified file 'server/manual/content/admin/api_layouts.php'
849--- server/manual/content/admin/api_layouts.php 2014-01-12 20:46:20 +0000
850+++ server/manual/content/admin/api_layouts.php 2014-08-21 19:12:24 +0000
851@@ -82,8 +82,8 @@
852 </li><li> left
853 </li><li> ownerid
854 </li><li> permission_edit
855-</li><li> permission_del
856-</li><li> permission_update_permissions
857+</li><li> permissions_del
858+</li><li> permissions_update_permissions
859 </li></ul>
860 <p>Error Codes
861 </p>
862@@ -157,7 +157,7 @@
863 </p>
864 <ul><li> mediaid
865 </li><li> lkid
866-</li><li> type
867+</li><li> mediatype
868 </li><li> duration
869 </li><li> permission_edit
870 </li><li> permission_del
871@@ -168,19 +168,42 @@
872 </p>
873 <ul><li> 1 - Access Denied
874 </li></ul>
875-<h3> <span class="mw-headline" id="LayoutRegionMediaDetails"> LayoutRegionMediaDetails </span></h3>
876-<p>Parameters
877-</p>
878-<ul><li> layoutId
879-</li><li> regionId
880-</li><li> mediaId
881-</li></ul>
882-<p>Response
883-The XLF for the provided media id (XML format)
884-</p><p>Error Codes
885-</p>
886-<ul><li> 1 - Access Denied
887-</li></ul>
888+
889+<h2 class="api-method-call-doc" id="LayoutRegionMediaDetails">LayoutRegionMediaDetails</h2>
890+<h3>Parameters</h3>
891+<dl>
892+ <dt>layoutId</dt>
893+ <dd>The ID for this Layout. Required.</dd>
894+</dl>
895+<dl>
896+ <dt>regionId</dt>
897+ <dd>The ID for this Region. Required</dd>
898+</dl>
899+<dl>
900+ <dt>mediaId</dt>
901+ <dd>The ID for this media. Required</dd>
902+</dl>
903+<dl>
904+ <dt>type</dt>
905+ <dd>The media type. Required</dd>
906+</dl>
907+
908+<h3>Response</h3>
909+The XLF for the provided media id (XML format). Base 64 encoded.
910+<pre>
911+{
912+ "media": {
913+ "id": "1",
914+ "base64Xlf": "base64"
915+ },
916+ "status": "ok"
917+}
918+</pre>
919+
920+<h3>Errors</h3>
921+<p>General Errors Only.
922+</p>
923+
924 <h3> <span class="mw-headline" id="LayoutRegionMediaAdd"> LayoutRegionMediaAdd </span></h3>
925 <p>Parameters
926 </p>
927
928=== modified file 'server/manual/content/admin/release_notes_1.6.2.php'
929--- server/manual/content/admin/release_notes_1.6.2.php 2014-07-12 13:54:51 +0000
930+++ server/manual/content/admin/release_notes_1.6.2.php 2014-08-21 19:12:24 +0000
931@@ -1,76 +1,162 @@
932-<?php
933-/*
934- * Xibo - Digital Signage - http://www.xibo.org.uk
935- * Copyright (C) 2006-2014 Daniel Garner
936- *
937- * This file is part of Xibo.
938- *
939- * Xibo is free software: you can redistribute it and/or modify
940- * it under the terms of the GNU Affero General Public License as published by
941- * the Free Software Foundation, either version 3 of the License, or
942- * any later version.
943- *
944- * Xibo is distributed in the hope that it will be useful,
945- * but WITHOUT ANY WARRANTY; without even the implied warranty of
946- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
947- * GNU Affero General Public License for more details.
948- *
949- * You should have received a copy of the GNU Affero General Public License
950- * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
951- */
952-defined('XIBO') or die("Sorry, you are not allowed to directly access this page.<br /> Please press the back button in your browser.");
953-
954-$LP_RELEASE_PAGE = 'https://launchpad.net/xibo/1.6/1.6.2';
955-?>
956-<h1 id="Notes_Title">Xibo 1.6.2 - Codename "Pons-Winnecke"</span></h1>
957-<p><strong>This is a bug fixing release of the 1.6 Series of Xibo</strong>. We recommend everyone using 1.6 series upgrade to this release.</p>
958-<p>You can download this release from <a rel="nofollow" class="external free" href="<?php echo $LP_RELEASE_PAGE; ?>"><?php echo $LP_RELEASE_PAGE; ?></a></p>
959-
960-<div id="toctitle"><h2>Contents</h2></div>
961-
962-<ol>
963- <li class="toclevel-1 tocsection-1"><a href="#Notes_Title">Introduction</a></li>
964- <li class="toclevel-1 tocsection-2"><a href="#Requirements">Requirements</a></li>
965- <li class="toclevel-1 tocsection-3"><a href="#Upgrading">Upgrading</a></li>
966- <li class="toclevel-1 tocsection-4"><a href="#Help">Help</a></li>
967- <li class="toclevel-1 tocsection-7"><a href="#Bug_Fixes">Bug Fixes</a></li>
968- <li class="toclevel-1 tocsection-8"><a href="#Known_Issues_and_Limitations">Known Issues and Limitations</a></li>
969-</ol>
970-
971-
972-<h2 id="Requirements">Requirements</h2>
973-<p>You must use the 1.6.2 version of the Windows and Ubuntu Display Clients with this version of the Xibo CMS.</p>
974-
975-<p>Xibo requires PHP 5.3.3 or higher. A full list of module requirements is presented at the point of installation - we'll even tell you which modules you're missing!</p>
976-
977-<h2 id="Upgrading">Upgrading</h2>
978-<p>There are significant database schema changes between the 1.4 series of Xibo and prior released. The upgrade wizard will take a prior database and convert it to a schema suitable for the 1.4 series to date. Note that this is a one-way conversion. Please do not upgrade your production database to test Xibo 1.6 functionality, and then expect to run a prior series code base against that database.</p>
979-
980-<p>Instructions for cloning a Xibo database are available here <a href="index.php?toc=developer&p=admin/release_notes_clonedb" title="Clone Database">Clone Database</a>.</p>
981-
982-<ul>
983- <li>Clone your existing Xibo database and grant permissions (see <a href="index.php?toc=developer&p=admin/release_notes_clonedb" title="Clone Database">Release Notes:Clone Database</a> for details)</li>
984- <li>Backup settings.php from your installation</li>
985- <li>Manually take a backup of your database</li>
986- <li>Replace your existing installation with the new version from the tar.gz or zip file</li>
987- <li>Replace your backup settings.php file in your Xibo installation directory</li>
988- <li>Browse to <a rel="nofollow" class="external free" href="http://your.server/path">http://your.server/path</a>as normal</li>
989- <li>You will be prompted that an upgrade is required.</li>
990- <li>Enter your xibo_admin password, and follow the upgrade wizard.</li>
991- <li>The upgrade should run, and finally ask you to log in as you would normally.</li>
992-</ul>
993-
994-<h2 id="Help">Help</h2>
995-<p>Please ask for help / advice in the Answers section of Launchpad: <a rel="nofollow" class="external free" href="https://answers.launchpad.net/xibo">https://answers.launchpad.net/xibo</a></p>
996-
997-<p>Please report any bugs in the Bugs section of Launchpad: <a rel="nofollow" class="external free" href="https://bugs.launchpad.net/xibo">https://bugs.launchpad.net/xibo</a> (if you're not sure that what you have found is a bug, please ask in the Answers section first!)</p>
998-
999-<p>Please report any enhancement requests in the Blueprints section of Launchpad: <a rel="nofollow" class="external free" href="https://blueprints.launchpad.net/xibo">https://blueprints.launchpad.net/xibo</a></p>
1000-
1001-<p>When asking for assistance with this release, please make it clear that you're using the release candidate and not a stable release of Xibo.</p>
1002-
1003-<h2 id="Bug_Fixes">Bug Fixes</h2>
1004-<p>For a full list of bug fixes please refer to the Release Project Page: <a rel="nofollow" class="external free" href="<?php echo $LP_RELEASE_PAGE; ?>"><?php echo $LP_RELEASE_PAGE; ?></a></p>
1005-
1006-<h2 id="Known_Issues_and_Limitations">Known Issues and Limitations</h2>
1007-<p>There are plenty of new features in the pipeline, but to provide a stable platform for users wanting Xibo now, the 1.6 series of releases are now feature-frozen (no new features will be implemented). All new development work will go in to the 1.7 series - which will be made available as a BETA.</p>
1008+<<<<<<< TREE
1009+<?php
1010+/*
1011+ * Xibo - Digital Signage - http://www.xibo.org.uk
1012+ * Copyright (C) 2006-2014 Daniel Garner
1013+ *
1014+ * This file is part of Xibo.
1015+ *
1016+ * Xibo is free software: you can redistribute it and/or modify
1017+ * it under the terms of the GNU Affero General Public License as published by
1018+ * the Free Software Foundation, either version 3 of the License, or
1019+ * any later version.
1020+ *
1021+ * Xibo is distributed in the hope that it will be useful,
1022+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1023+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1024+ * GNU Affero General Public License for more details.
1025+ *
1026+ * You should have received a copy of the GNU Affero General Public License
1027+ * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
1028+ */
1029+defined('XIBO') or die("Sorry, you are not allowed to directly access this page.<br /> Please press the back button in your browser.");
1030+
1031+$LP_RELEASE_PAGE = 'https://launchpad.net/xibo/1.6/1.6.2';
1032+?>
1033+<h1 id="Notes_Title">Xibo 1.6.2 - Codename "Pons-Winnecke"</span></h1>
1034+<p><strong>This is a bug fixing release of the 1.6 Series of Xibo</strong>. We recommend everyone using 1.6 series upgrade to this release.</p>
1035+<p>You can download this release from <a rel="nofollow" class="external free" href="<?php echo $LP_RELEASE_PAGE; ?>"><?php echo $LP_RELEASE_PAGE; ?></a></p>
1036+
1037+<div id="toctitle"><h2>Contents</h2></div>
1038+
1039+<ol>
1040+ <li class="toclevel-1 tocsection-1"><a href="#Notes_Title">Introduction</a></li>
1041+ <li class="toclevel-1 tocsection-2"><a href="#Requirements">Requirements</a></li>
1042+ <li class="toclevel-1 tocsection-3"><a href="#Upgrading">Upgrading</a></li>
1043+ <li class="toclevel-1 tocsection-4"><a href="#Help">Help</a></li>
1044+ <li class="toclevel-1 tocsection-7"><a href="#Bug_Fixes">Bug Fixes</a></li>
1045+ <li class="toclevel-1 tocsection-8"><a href="#Known_Issues_and_Limitations">Known Issues and Limitations</a></li>
1046+</ol>
1047+
1048+
1049+<h2 id="Requirements">Requirements</h2>
1050+<p>You must use the 1.6.2 version of the Windows and Ubuntu Display Clients with this version of the Xibo CMS.</p>
1051+
1052+<p>Xibo requires PHP 5.3.3 or higher. A full list of module requirements is presented at the point of installation - we'll even tell you which modules you're missing!</p>
1053+
1054+<h2 id="Upgrading">Upgrading</h2>
1055+<p>There are significant database schema changes between the 1.4 series of Xibo and prior released. The upgrade wizard will take a prior database and convert it to a schema suitable for the 1.4 series to date. Note that this is a one-way conversion. Please do not upgrade your production database to test Xibo 1.6 functionality, and then expect to run a prior series code base against that database.</p>
1056+
1057+<p>Instructions for cloning a Xibo database are available here <a href="index.php?toc=developer&p=admin/release_notes_clonedb" title="Clone Database">Clone Database</a>.</p>
1058+
1059+<ul>
1060+ <li>Clone your existing Xibo database and grant permissions (see <a href="index.php?toc=developer&p=admin/release_notes_clonedb" title="Clone Database">Release Notes:Clone Database</a> for details)</li>
1061+ <li>Backup settings.php from your installation</li>
1062+ <li>Manually take a backup of your database</li>
1063+ <li>Replace your existing installation with the new version from the tar.gz or zip file</li>
1064+ <li>Replace your backup settings.php file in your Xibo installation directory</li>
1065+ <li>Browse to <a rel="nofollow" class="external free" href="http://your.server/path">http://your.server/path</a>as normal</li>
1066+ <li>You will be prompted that an upgrade is required.</li>
1067+ <li>Enter your xibo_admin password, and follow the upgrade wizard.</li>
1068+ <li>The upgrade should run, and finally ask you to log in as you would normally.</li>
1069+</ul>
1070+
1071+<h2 id="Help">Help</h2>
1072+<p>Please ask for help / advice in the Answers section of Launchpad: <a rel="nofollow" class="external free" href="https://answers.launchpad.net/xibo">https://answers.launchpad.net/xibo</a></p>
1073+
1074+<p>Please report any bugs in the Bugs section of Launchpad: <a rel="nofollow" class="external free" href="https://bugs.launchpad.net/xibo">https://bugs.launchpad.net/xibo</a> (if you're not sure that what you have found is a bug, please ask in the Answers section first!)</p>
1075+
1076+<p>Please report any enhancement requests in the Blueprints section of Launchpad: <a rel="nofollow" class="external free" href="https://blueprints.launchpad.net/xibo">https://blueprints.launchpad.net/xibo</a></p>
1077+
1078+<p>When asking for assistance with this release, please make it clear that you're using the release candidate and not a stable release of Xibo.</p>
1079+
1080+<h2 id="Bug_Fixes">Bug Fixes</h2>
1081+<p>For a full list of bug fixes please refer to the Release Project Page: <a rel="nofollow" class="external free" href="<?php echo $LP_RELEASE_PAGE; ?>"><?php echo $LP_RELEASE_PAGE; ?></a></p>
1082+
1083+<h2 id="Known_Issues_and_Limitations">Known Issues and Limitations</h2>
1084+<p>There are plenty of new features in the pipeline, but to provide a stable platform for users wanting Xibo now, the 1.6 series of releases are now feature-frozen (no new features will be implemented). All new development work will go in to the 1.7 series - which will be made available as a BETA.</p>
1085+=======
1086+<?php
1087+/*
1088+ * Xibo - Digital Signage - http://www.xibo.org.uk
1089+ * Copyright (C) 2006-2014 Daniel Garner
1090+ *
1091+ * This file is part of Xibo.
1092+ *
1093+ * Xibo is free software: you can redistribute it and/or modify
1094+ * it under the terms of the GNU Affero General Public License as published by
1095+ * the Free Software Foundation, either version 3 of the License, or
1096+ * any later version.
1097+ *
1098+ * Xibo is distributed in the hope that it will be useful,
1099+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1100+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1101+ * GNU Affero General Public License for more details.
1102+ *
1103+ * You should have received a copy of the GNU Affero General Public License
1104+ * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
1105+ */
1106+defined('XIBO') or die("Sorry, you are not allowed to directly access this page.<br /> Please press the back button in your browser.");
1107+
1108+$LP_RELEASE_PAGE = 'https://launchpad.net/xibo/1.6/1.6.2';
1109+?>
1110+<h1 id="Notes_Title">Xibo 1.6.2 - Codename "Pons-Winnecke"</span></h1>
1111+<p><strong>This is a bug fixing release of the 1.6 Series of Xibo</strong>. We recommend everyone using 1.6 series upgrade to this release.</p>
1112+<p>You can download this release from <a rel="nofollow" class="external free" href="<?php echo $LP_RELEASE_PAGE; ?>"><?php echo $LP_RELEASE_PAGE; ?></a></p>
1113+
1114+<div id="toctitle"><h2>Contents</h2></div>
1115+
1116+<ol>
1117+ <li class="toclevel-1 tocsection-1"><a href="#Notes_Title">Introduction</a></li>
1118+ <li class="toclevel-1 tocsection-2"><a href="#Requirements">Requirements</a></li>
1119+ <li class="toclevel-1 tocsection-3"><a href="#Upgrading">Upgrading</a></li>
1120+ <li class="toclevel-1 tocsection-4"><a href="#Help">Help</a></li>
1121+ <li class="toclevel-1 tocsection-7"><a href="#Bug_Fixes">Bug Fixes</a></li>
1122+ <li class="toclevel-1 tocsection-8"><a href="#Known_Issues_and_Limitations">Known Issues and Limitations</a></li>
1123+</ol>
1124+
1125+
1126+<h2 id="Requirements">Requirements</h2>
1127+<p>You must use the 1.6.2 version of the Windows and Ubuntu Display Clients with this version of the Xibo CMS.</p>
1128+
1129+<p>Xibo requires PHP 5.3.3 or higher. A full list of module requirements is presented at the point of installation - we'll even tell you which modules you're missing!</p>
1130+
1131+<h3>Xibo for Windows</h3>
1132+<p>Series 1.6 of Xibo has brought about advancements in text formatting, layout scaling and other general presentation improvements. As a result of this the recommended version of IE to have installed is IE9 on the client. IE9 is not supported on Windows XP.</p>
1133+
1134+<p>The Xibo team have made every effort to maintain support for XP as a platform and as a result Xibo will run on Windows XP, but may experience some visual defects and artefacts.</p>
1135+
1136+<p>We are looking to replace IE as a rendering engine in 1.7 Series. More information <a href="https://blueprints.launchpad.net/xibo/+spec/netclient-berkelium-sharp">here</a>.</p>
1137+
1138+<h2 id="Upgrading">Upgrading</h2>
1139+<p>There are significant database schema changes between the 1.4 series of Xibo and prior released. The upgrade wizard will take a prior database and convert it to a schema suitable for the 1.4 series to date. Note that this is a one-way conversion. Please do not upgrade your production database to test Xibo 1.6 functionality, and then expect to run a prior series code base against that database.</p>
1140+
1141+<p>Instructions for cloning a Xibo database are available here <a href="index.php?toc=developer&p=admin/release_notes_clonedb" title="Clone Database">Clone Database</a>.</p>
1142+
1143+<ul>
1144+ <li>Clone your existing Xibo database and grant permissions (see <a href="index.php?toc=developer&p=admin/release_notes_clonedb" title="Clone Database">Release Notes:Clone Database</a> for details)</li>
1145+ <li>Backup settings.php from your installation</li>
1146+ <li>Manually take a backup of your database</li>
1147+ <li>Replace your existing installation with the new version from the tar.gz or zip file</li>
1148+ <li>Replace your backup settings.php file in your Xibo installation directory</li>
1149+ <li>Browse to <a rel="nofollow" class="external free" href="http://your.server/path">http://your.server/path</a>as normal</li>
1150+ <li>You will be prompted that an upgrade is required.</li>
1151+ <li>Enter your xibo_admin password, and follow the upgrade wizard.</li>
1152+ <li>The upgrade should run, and finally ask you to log in as you would normally.</li>
1153+</ul>
1154+
1155+<h2 id="Help">Help</h2>
1156+<p>Please ask for help / advice in the Answers section of Launchpad: <a rel="nofollow" class="external free" href="https://answers.launchpad.net/xibo">https://answers.launchpad.net/xibo</a></p>
1157+
1158+<p>Please report any bugs in the Bugs section of Launchpad: <a rel="nofollow" class="external free" href="https://bugs.launchpad.net/xibo">https://bugs.launchpad.net/xibo</a> (if you're not sure that what you have found is a bug, please ask in the Answers section first!)</p>
1159+
1160+<p>Please report any enhancement requests in the Blueprints section of Launchpad: <a rel="nofollow" class="external free" href="https://blueprints.launchpad.net/xibo">https://blueprints.launchpad.net/xibo</a></p>
1161+
1162+<p>When asking for assistance with this release, please make it clear that you're using the release candidate and not a stable release of Xibo.</p>
1163+
1164+<h2 id="Bug_Fixes">Bug Fixes</h2>
1165+<p>For a full list of bug fixes please refer to the Release Project Page: <a rel="nofollow" class="external free" href="<?php echo $LP_RELEASE_PAGE; ?>"><?php echo $LP_RELEASE_PAGE; ?></a></p>
1166+
1167+<h2 id="Known_Issues_and_Limitations">Known Issues and Limitations</h2>
1168+<p>There are plenty of new features in the pipeline, but to provide a stable platform for users wanting Xibo now, the 1.6 series of releases are now feature-frozen (no new features will be implemented). All new development work will go in to the 1.7 series - which will be made available as a BETA.</p>
1169+>>>>>>> MERGE-SOURCE
1170
1171=== added file 'server/manual/content/admin/release_notes_1.6.3.php'
1172--- server/manual/content/admin/release_notes_1.6.3.php 1970-01-01 00:00:00 +0000
1173+++ server/manual/content/admin/release_notes_1.6.3.php 2014-08-21 19:12:24 +0000
1174@@ -0,0 +1,83 @@
1175+<?php
1176+/*
1177+ * Xibo - Digital Signage - http://www.xibo.org.uk
1178+ * Copyright (C) 2006-2014 Daniel Garner
1179+ *
1180+ * This file is part of Xibo.
1181+ *
1182+ * Xibo is free software: you can redistribute it and/or modify
1183+ * it under the terms of the GNU Affero General Public License as published by
1184+ * the Free Software Foundation, either version 3 of the License, or
1185+ * any later version.
1186+ *
1187+ * Xibo is distributed in the hope that it will be useful,
1188+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1189+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1190+ * GNU Affero General Public License for more details.
1191+ *
1192+ * You should have received a copy of the GNU Affero General Public License
1193+ * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
1194+ */
1195+defined('XIBO') or die("Sorry, you are not allowed to directly access this page.<br /> Please press the back button in your browser.");
1196+
1197+$LP_RELEASE_PAGE = 'https://launchpad.net/xibo/1.6/1.6.3';
1198+?>
1199+<h1 id="Notes_Title">Xibo 1.6.3 - Codename "Pons-Winnecke"</span></h1>
1200+<p><strong>This is a bug fixing release of the 1.6 Series of Xibo</strong>. We recommend everyone using 1.6 series upgrade to this release.</p>
1201+<p>You can download this release from <a rel="nofollow" class="external free" href="<?php echo $LP_RELEASE_PAGE; ?>"><?php echo $LP_RELEASE_PAGE; ?></a></p>
1202+
1203+<div id="toctitle"><h2>Contents</h2></div>
1204+
1205+<ol>
1206+ <li class="toclevel-1 tocsection-1"><a href="#Notes_Title">Introduction</a></li>
1207+ <li class="toclevel-1 tocsection-2"><a href="#Requirements">Requirements</a></li>
1208+ <li class="toclevel-1 tocsection-3"><a href="#Upgrading">Upgrading</a></li>
1209+ <li class="toclevel-1 tocsection-4"><a href="#Help">Help</a></li>
1210+ <li class="toclevel-1 tocsection-7"><a href="#Bug_Fixes">Bug Fixes</a></li>
1211+ <li class="toclevel-1 tocsection-8"><a href="#Known_Issues_and_Limitations">Known Issues and Limitations</a></li>
1212+</ol>
1213+
1214+
1215+<h2 id="Requirements">Requirements</h2>
1216+<p>You must use the 1.6.3 version of the Windows and Ubuntu Display Clients with this version of the Xibo CMS.</p>
1217+
1218+<p>Xibo requires PHP 5.3.3 or higher. A full list of module requirements is presented at the point of installation - we'll even tell you which modules you're missing!</p>
1219+
1220+<h3>Xibo for Windows</h3>
1221+<p>Series 1.6 of Xibo has brought about advancements in text formatting, layout scaling and other general presentation improvements. As a result of this the recommended version of IE to have installed is IE9 on the client. IE9 is not supported on Windows XP.</p>
1222+
1223+<p>The Xibo team have made every effort to maintain support for XP as a platform and as a result Xibo will run on Windows XP, but may experience some visual defects and artefacts.</p>
1224+
1225+<p>We are looking to replace IE as a rendering engine in 1.7 Series. More information <a href="https://blueprints.launchpad.net/xibo/+spec/netclient-berkelium-sharp">here</a>.</p>
1226+
1227+<h2 id="Upgrading">Upgrading</h2>
1228+<p>There are significant database schema changes between the 1.4 series of Xibo and prior released. The upgrade wizard will take a prior database and convert it to a schema suitable for the 1.4 series to date. Note that this is a one-way conversion. Please do not upgrade your production database to test Xibo 1.6 functionality, and then expect to run a prior series code base against that database.</p>
1229+
1230+<p>Instructions for cloning a Xibo database are available here <a href="index.php?toc=developer&p=admin/release_notes_clonedb" title="Clone Database">Clone Database</a>.</p>
1231+
1232+<ul>
1233+ <li>Clone your existing Xibo database and grant permissions (see <a href="index.php?toc=developer&p=admin/release_notes_clonedb" title="Clone Database">Release Notes:Clone Database</a> for details)</li>
1234+ <li>Backup settings.php from your installation</li>
1235+ <li>Manually take a backup of your database</li>
1236+ <li>Replace your existing installation with the new version from the tar.gz or zip file</li>
1237+ <li>Replace your backup settings.php file in your Xibo installation directory</li>
1238+ <li>Browse to <a rel="nofollow" class="external free" href="http://your.server/path">http://your.server/path</a>as normal</li>
1239+ <li>You will be prompted that an upgrade is required.</li>
1240+ <li>Enter your xibo_admin password, and follow the upgrade wizard.</li>
1241+ <li>The upgrade should run, and finally ask you to log in as you would normally.</li>
1242+</ul>
1243+
1244+<h2 id="Help">Help</h2>
1245+<p>Please ask for help / advice in the Answers section of Launchpad: <a rel="nofollow" class="external free" href="https://answers.launchpad.net/xibo">https://answers.launchpad.net/xibo</a></p>
1246+
1247+<p>Please report any bugs in the Bugs section of Launchpad: <a rel="nofollow" class="external free" href="https://bugs.launchpad.net/xibo">https://bugs.launchpad.net/xibo</a> (if you're not sure that what you have found is a bug, please ask in the Answers section first!)</p>
1248+
1249+<p>Please report any enhancement requests in the Blueprints section of Launchpad: <a rel="nofollow" class="external free" href="https://blueprints.launchpad.net/xibo">https://blueprints.launchpad.net/xibo</a></p>
1250+
1251+<p>When asking for assistance with this release, please make it clear that you're using the release candidate and not a stable release of Xibo.</p>
1252+
1253+<h2 id="Bug_Fixes">Bug Fixes</h2>
1254+<p>For a full list of bug fixes please refer to the Release Project Page: <a rel="nofollow" class="external free" href="<?php echo $LP_RELEASE_PAGE; ?>"><?php echo $LP_RELEASE_PAGE; ?></a></p>
1255+
1256+<h2 id="Known_Issues_and_Limitations">Known Issues and Limitations</h2>
1257+<p>There are plenty of new features in the pipeline, but to provide a stable platform for users wanting Xibo now, the 1.6 series of releases are now feature-frozen (no new features will be implemented). All new development work will go in to the 1.7 series - which will be made available as a BETA.</p>
1258
1259=== modified file 'server/manual/template.php'
1260--- server/manual/template.php 2014-07-12 13:54:51 +0000
1261+++ server/manual/template.php 2014-08-21 19:12:24 +0000
1262@@ -7,7 +7,11 @@
1263 define('PRODUCT_NAME', 'Xibo');
1264
1265 # Product Version
1266+<<<<<<< TREE
1267 define('PRODUCT_VERSION', '1.6.2');
1268+=======
1269+ define('PRODUCT_VERSION', '1.6.3');
1270+>>>>>>> MERGE-SOURCE
1271
1272 # Home page URL
1273 define('PRODUCT_HOME', 'http://xibo.org.uk');
1274
1275=== modified file 'server/modules/preview/HtmlTemplateForGetResource.html'
1276--- server/modules/preview/HtmlTemplateForGetResource.html 2014-07-15 11:42:14 +0000
1277+++ server/modules/preview/HtmlTemplateForGetResource.html 2014-08-21 19:12:24 +0000
1278@@ -86,7 +86,11 @@
1279 * You should have received a copy of the GNU Affero General Public License
1280 * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
1281 */
1282+<<<<<<< TREE
1283 jQuery.fn.extend({xiboRender:function(e,t){var n={type:"ticker",direction:"single",duration:"50",durationIsPerItem:false,numItems:0,takeItemsFrom:"start",itemsPerPage:0,scrollSpeed:"2",scaleMode:"scale",previewWidth:0,previewHeight:0,scaleOverride:0};var e=$.extend({},n,e);if(e.previewWidth==0&&e.previewHeight==0){e.width=$(window).width();e.height=$(window).height()}else{e.width=e.previewWidth;e.height=e.previewHeight}e.scaleFactor=Math.min(e.width/e.originalWidth,e.height/e.originalHeight);if(e.scaleOverride!=0){e.originalWidth=e.previewWidth;e.originalHeight=e.previewHeight;e.scaleFactor=e.scaleOverride}this.each(function(){$(this).css({width:e.originalWidth,height:e.originalHeight});if(e.type=="ticker"){if(e.sourceid==undefined){console.error("Source ID undefined - assuming 1");e.sourceid=1}if(e.sourceid==1){if(e.takeItemsFrom=="end"){t.reverse()}if(e.numItems>t.length||e.numItems==0)e.numItems=t.length;t=t.slice(0,e.numItems);if(e.takeItemsFrom=="end"){t.reverse()}}else{e.numItems=t.length}}var n=e.numItems;var r=e.itemsPerPage>0?Math.ceil(e.numItems/e.itemsPerPage):e.numItems;var i=1;var s=this;for(var o=0;o<t.length;o++){if(e.direction=="single"&&e.itemsPerPage>0&&(i>=e.itemsPerPage||o==0)){s=$("<div/>").addClass("page").appendTo(this);i=0}$("<div/>").addClass("item").html(t[o]).appendTo(s);i++}if(e.scaleMode=="fit"){$("*",this).css("font-size","");$(this).fitText(1.75)}if($("body").hasClass("ie7")||$("body").hasClass("ie8")){$(this).css({zoom:e.scaleFactor})}else{$(this).css({transform:"scale("+e.scaleFactor+")","transform-origin":"0 0"})}var u=false;if(e.direction=="single"){var a=e.itemsPerPage>0?"> .page":"> .item";var f=e.itemsPerPage>0?r:n;var l=e.durationIsPerItem?e.duration:e.duration/f;$(this).cycle({fx:e.transition,timeout:l*1e3,slides:a})}else if(e.direction=="left"||e.direction=="right"){u=true;$(" .item",this).css({display:"inline","padding-left":"4px"});$(" .item p",this).css({display:"inline"})}else if(e.direction=="up"||e.direction=="down"){u=true}if(u){var c=$("<div/>").addClass("scroll").attr({scrollamount:e.scrollSpeed,scaleFactor:e.scaleFactor,behaviour:"scroll",direction:e.direction,height:e.originalHeight,width:e.originalWidth});$(this).wrapInner(c);$(this).find(".scroll").marquee()}if(e.direction=="up"||e.direction=="down"){$(this).children().children().css("white-space","normal")}})},dataSetRender:function(e){if(e===undefined||e===null){e={duration:5,transition:"fade",rowsPerPage:0,previewWidth:0,previewHeight:0,scaleOverride:0}}$(this).each(function(){if(e.previewWidth==0&&e.previewHeight==0){e.width=$(window).width();e.height=$(window).height()}else{e.width=e.previewWidth;e.height=e.previewHeight}e.scaleFactor=Math.min(e.width/e.originalWidth,e.height/e.originalHeight);if(e.scaleOverride!=0){e.originalWidth=e.previewWidth;e.originalHeight=e.previewHeight;e.scaleFactor=e.scaleOverride}$("body").css({width:e.originalWidth,height:e.originalHeight});if($("body").hasClass("ie7")||$("body").hasClass("ie8")){$("body").css({zoom:e.scaleFactor})}else{$("body").css({transform:"scale("+e.scaleFactor+")","transform-origin":"0 0"})}var t=$(this).attr("totalPages");if(e.rowsPerPage>0){$(this).cycle({fx:e.transition,timeout:e.duration*1e3/t,slides:"> table"})}})}});if(!window.console){(function(){var e=["log","debug","info","warn","error","assert","dir","dirxml","group","groupEnd","time","timeEnd","count","trace","profile","profileEnd"],t,n=e.length;window.console={};for(t=0;t<n;t++){window.console[e[t]]=function(){}}})()}
1284+=======
1285+jQuery.fn.extend({xiboRender:function(e,t){var n={type:"ticker",direction:"single",duration:"50",durationIsPerItem:false,numItems:0,takeItemsFrom:"start",itemsPerPage:0,scrollSpeed:"2",scaleMode:"scale",previewWidth:0,previewHeight:0,scaleOverride:0};var e=$.extend({},n,e);if(e.previewWidth==0&&e.previewHeight==0){e.width=$(window).width();e.height=$(window).height()}else{e.width=e.previewWidth;e.height=e.previewHeight}e.scaleFactor=Math.min(e.width/e.originalWidth,e.height/e.originalHeight);if(e.scaleOverride!=0){e.originalWidth=e.previewWidth;e.originalHeight=e.previewHeight;e.scaleFactor=e.scaleOverride}this.each(function(){$(this).css({width:e.originalWidth,height:e.originalHeight});if(e.type=="ticker"){if(e.sourceid==undefined){console.error("Source ID undefined - assuming 1");e.sourceid=1}if(e.sourceid==1){if(e.takeItemsFrom=="end"){t.reverse()}if(e.numItems>t.length||e.numItems==0)e.numItems=t.length;t=t.slice(0,e.numItems);if(e.takeItemsFrom=="end"){t.reverse()}}else{e.numItems=t.length}}var n=e.numItems;var r=e.itemsPerPage>0?Math.ceil(e.numItems/e.itemsPerPage):e.numItems;var i=1;var s=this;for(var o=0;o<t.length;o++){if(e.direction=="single"&&e.itemsPerPage>0&&(i>=e.itemsPerPage||o==0)){s=$("<div/>").addClass("page").appendTo(this);i=0}$("<div/>").addClass("item").html(t[o]).appendTo(s);i++}if(e.scaleMode=="fit"){$("*",this).css("font-size","");$(this).fitText(1.75)}if($("body").hasClass("ie7")||$("body").hasClass("ie8")){$(this).css({filter:"progid:DXImageTransform.Microsoft.Matrix(M11="+e.scaleFactor+", M12=0, M21=0, M22="+e.scaleFactor+", SizingMethod='auto expand'"})}else{$(this).css({transform:"scale("+e.scaleFactor+")","transform-origin":"0 0"})}var u=false;if(e.direction=="single"){var a=e.itemsPerPage>0?"> .page":"> .item";var f=e.itemsPerPage>0?r:n;var l=e.durationIsPerItem?e.duration:e.duration/f;$(this).cycle({fx:e.transition,timeout:l*1e3,slides:a})}else if(e.direction=="left"||e.direction=="right"){u=true;$(" .item",this).css({display:"inline","padding-left":"4px"});$(" .item p",this).css({display:"inline"})}else if(e.direction=="up"||e.direction=="down"){u=true}if(u){var c=$("<div/>").addClass("scroll").attr({scrollamount:e.scrollSpeed,scaleFactor:e.scaleFactor,behaviour:"scroll",direction:e.direction,height:e.originalHeight,width:e.originalWidth});$(this).wrapInner(c);$(this).find(".scroll").marquee()}if(e.direction=="up"||e.direction=="down"){$(this).children().children().css("white-space","normal")}})},dataSetRender:function(e){if(e===undefined||e===null){e={duration:5,transition:"fade",rowsPerPage:0,previewWidth:0,previewHeight:0,scaleOverride:0}}$(this).each(function(){if(e.previewWidth==0&&e.previewHeight==0){e.width=$(window).width();e.height=$(window).height()}else{e.width=e.previewWidth;e.height=e.previewHeight}e.scaleFactor=Math.min(e.width/e.originalWidth,e.height/e.originalHeight);if(e.scaleOverride!=0){e.originalWidth=e.previewWidth;e.originalHeight=e.previewHeight;e.scaleFactor=e.scaleOverride}$("body").css({width:e.originalWidth,height:e.originalHeight});if($("body").hasClass("ie7")||$("body").hasClass("ie8")){$("body").css({filter:"progid:DXImageTransform.Microsoft.Matrix(M11="+e.scaleFactor+", M12=0, M21=0, M22="+e.scaleFactor+", SizingMethod='auto expand'"})}else{$("body").css({transform:"scale("+e.scaleFactor+")","transform-origin":"0 0"})}var t=$(this).attr("totalPages");if(e.rowsPerPage>0){$(this).cycle({fx:e.transition,timeout:e.duration*1e3/t,slides:"> table"})}})}});if(!window.console){(function(){var e=["log","debug","info","warn","error","assert","dir","dirxml","group","groupEnd","time","timeEnd","count","trace","profile","profileEnd"],t,n=e.length;window.console={};for(t=0;t<n;t++){window.console[e[t]]=function(){}}})()}
1286+>>>>>>> MERGE-SOURCE
1287 </script>
1288 <!--script type="text/javascript" src="modules/preview/xibo-text-render.js"></script-->
1289
1290
1291=== modified file 'server/modules/preview/html-preview.js'
1292--- server/modules/preview/html-preview.js 2014-07-12 14:17:17 +0000
1293+++ server/modules/preview/html-preview.js 2014-08-21 19:12:24 +0000
1294@@ -333,10 +333,18 @@
1295
1296 if (oldMedia) {
1297 $("#" + oldMedia.containerName).css("display", "none");
1298-
1299- if (oldMedia.mediaType == "video") {
1300- $("#" + oldMedia.containerName + "-vid").get(0).pause();
1301- }
1302+<<<<<<< TREE
1303+
1304+ if (oldMedia.mediaType == "video") {
1305+ $("#" + oldMedia.containerName + "-vid").get(0).pause();
1306+ }
1307+=======
1308+
1309+ if (oldMedia.mediaType == "video") {
1310+ $("#" + oldMedia.containerName + "-vid").get(0).pause();
1311+ $("#" + oldMedia.containerName + "-vid").get(0).currentTime = 0;
1312+ }
1313+>>>>>>> MERGE-SOURCE
1314 }
1315
1316 $("#" + newMedia.containerName).css("display", "block");
1317
1318=== modified file 'server/modules/preview/xibo-text-render.js'
1319--- server/modules/preview/xibo-text-render.js 2014-07-15 11:42:14 +0000
1320+++ server/modules/preview/xibo-text-render.js 2014-08-21 19:12:24 +0000
1321@@ -173,6 +173,7 @@
1322 }
1323
1324 // Now make it size correctly
1325+<<<<<<< TREE
1326 // What IE are we?
1327 if ($("body").hasClass('ie7') || $("body").hasClass('ie8')) {
1328 $(this).css({
1329@@ -185,6 +186,20 @@
1330 "transform-origin": "0 0"
1331 });
1332 }
1333+=======
1334+ // What IE are we?
1335+ if ($("body").hasClass('ie7') || $("body").hasClass('ie8')) {
1336+ $(this).css({
1337+ "filter": "progid:DXImageTransform.Microsoft.Matrix(M11=" + options.scaleFactor + ", M12=0, M21=0, M22=" + options.scaleFactor + ", SizingMethod='auto expand'"
1338+ });
1339+ }
1340+ else {
1341+ $(this).css({
1342+ "transform": "scale(" + options.scaleFactor + ")",
1343+ "transform-origin": "0 0"
1344+ });
1345+ }
1346+>>>>>>> MERGE-SOURCE
1347
1348 // 4th objective - move the items around, start the timer
1349 // settings involved:
1350@@ -296,6 +311,7 @@
1351 height: options.originalHeight
1352 });
1353
1354+<<<<<<< TREE
1355 // What IE are we?
1356 if ($("body").hasClass('ie7') || $("body").hasClass('ie8')) {
1357 $("body").css({
1358@@ -309,6 +325,21 @@
1359 });
1360 }
1361
1362+=======
1363+ // What IE are we?
1364+ if ($("body").hasClass('ie7') || $("body").hasClass('ie8')) {
1365+ $("body").css({
1366+ "filter": "progid:DXImageTransform.Microsoft.Matrix(M11=" + options.scaleFactor + ", M12=0, M21=0, M22=" + options.scaleFactor + ", SizingMethod='auto expand'"
1367+ });
1368+ }
1369+ else {
1370+ $("body").css({
1371+ "transform": "scale(" + options.scaleFactor + ")",
1372+ "transform-origin": "0 0"
1373+ });
1374+ }
1375+
1376+>>>>>>> MERGE-SOURCE
1377 var numberItems = $(this).attr("totalPages");
1378
1379 if (options.rowsPerPage > 0) {
1380
1381=== modified file 'server/modules/preview/xibo-webpage-render.js'
1382--- server/modules/preview/xibo-webpage-render.js 2014-06-30 14:28:23 +0000
1383+++ server/modules/preview/xibo-webpage-render.js 2014-08-21 19:12:24 +0000
1384@@ -1,3 +1,4 @@
1385+<<<<<<< TREE
1386 $(document).ready(function() {
1387
1388 isMSIE = navigator.userAgent.match(/MSIE/),
1389@@ -63,4 +64,75 @@
1390 });
1391 }
1392 }
1393-});
1394\ No newline at end of file
1395+});=======
1396+$(document).ready(function() {
1397+
1398+ isMSIE = navigator.userAgent.match(/MSIE/),
1399+ MSIEVersion = navigator.userAgent.match(/MSIE (\d\.\d+)/) ? parseInt(RegExp.$1, 10) : null
1400+
1401+ if (options.previewWidth == 0 && options.previewHeight == 0) {
1402+ options.width = $(window).width();
1403+ options.height = $(window).height();
1404+ }
1405+ else {
1406+ // We are a preview
1407+ options.width = options.previewWidth;
1408+ options.height = options.previewHeight;
1409+ }
1410+
1411+ // Scale Factor
1412+ options.scaleFactor = Math.min(options.width / options.originalWidth, options.height / options.originalHeight);
1413+
1414+ // We need to scale the scale according to the size difference between the layout designer and the actual request size.
1415+ if (options.scale_override != 1) {
1416+ options.offsetTop = options.offsetTop * options.scaleFactor;
1417+ options.offsetLeft = options.offsetLeft * options.scaleFactor;
1418+ options.scale = options.scale * options.scaleFactor;
1419+ }
1420+
1421+ // Width should take into account the offset
1422+ options.width = parseInt(options.width) + parseInt(options.offsetLeft);
1423+ options.height = parseInt(options.height) + parseInt(options.offsetTop);
1424+
1425+ // Add the width and height on the wrap.
1426+ $("#wrap").css({
1427+ "overflow": "hidden",
1428+ "width": options.width,
1429+ "height": options.height
1430+ });
1431+
1432+ // Margins on frame
1433+ $("#iframe").css({
1434+ "margin-top": -1 * options.offsetTop,
1435+ "margin-left": -1 * options.offsetLeft,
1436+ "width": options.width,
1437+ "height": options.height
1438+ });
1439+
1440+ // Transform on the frame
1441+ if (options.scale != 1) {
1442+
1443+ if (isMSIE) {
1444+ $("#iframe").css({
1445+ zoom: options.scale,
1446+ height: parseInt((options.height / options.scale) * (1 / (MSIEVersion >= 9 ? 1 : options.scale)), 10),
1447+ width: parseInt((options.width / options.scale) * (1 / (MSIEVersion >= 9 ? 1 : options.scale)), 10)
1448+ })
1449+ }
1450+ else {
1451+
1452+ $("#iframe").css({
1453+ 'transform-origin': "0 0",
1454+ '-webkit-transform-origin': "0 0",
1455+ '-moz-transform-origin': "0 0",
1456+ '-o-transform-origin': "0 0",
1457+ 'transform': 'scale(' + options.scale + ')',
1458+ '-webkit-transform': 'scale(' + options.scale + ')',
1459+ '-moz-transform': 'scale(' + options.scale + ')',
1460+ '-o-transform': 'scale(' + options.scale + ')',
1461+ "width": options.width / options.scale,
1462+ "height": options.height / options.scale
1463+ });
1464+ }
1465+ }
1466+});>>>>>>> MERGE-SOURCE
1467
1468=== modified file 'server/theme/default/html/status_dashboard.php'
1469--- server/theme/default/html/status_dashboard.php 2014-06-29 14:37:07 +0000
1470+++ server/theme/default/html/status_dashboard.php 2014-08-21 19:12:24 +0000
1471@@ -28,17 +28,22 @@
1472 ?>
1473 <div class="row">
1474 <div class="span6">
1475- <h3 class="text-center">Bandwidth Usage</h3>
1476+ <h3 class="text-center"><?php echo Theme::Translate('Bandwidth Usage'); ?></h3>
1477 <div id="flot_bandwidth_chart" style="height: 400px;" class="flot-chart"></div>
1478 </div>
1479 <div class="span6">
1480+<<<<<<< TREE
1481 <h3 class="text-center">Library Usage</h3>
1482 <?php echo Theme::Get('library-widget'); ?>
1483+=======
1484+ <h3 class="text-center"><?php echo Theme::Translate('Library Usage'); ?></h3>
1485+ <?php echo Theme::Get('library-widget'); ?>
1486+>>>>>>> MERGE-SOURCE
1487 </div>
1488 </div>
1489 <div class="row">
1490 <div class="span6">
1491- <h3 class="text-center">Display Activity</h3>
1492+ <h3 class="text-center"><?php echo Theme::Translate('Display Activity'); ?></h3>
1493 <table class="table">
1494 <thead>
1495 <tr>
1496
1497=== modified file 'server/upgrade.php'
1498--- server/upgrade.php 2014-07-15 15:59:36 +0000
1499+++ server/upgrade.php 2014-08-21 19:12:24 +0000
1500@@ -20,10 +20,13 @@
1501 */
1502 DEFINE('XIBO', true);
1503
1504+<<<<<<< TREE
1505 if (! checkPHP()) {
1506 die("Xibo requires PHP 5.3.3 or later");
1507 }
1508
1509+=======
1510+>>>>>>> MERGE-SOURCE
1511 error_reporting(0);
1512 ini_set('display_errors', 0);
1513
1514@@ -34,6 +37,12 @@
1515 include('config/db_config.php');
1516 include('config/config.class.php');
1517
1518+$config = new Config();
1519+
1520+if (!$config->CheckPHP()) {
1521+ die(sprintf('Xibo required PHP version %s.', Config::$VERSION_REQUIRED));
1522+}
1523+
1524 // Setup the translations for gettext
1525 require_once("lib/app/translationengine.class.php");
1526
1527@@ -385,12 +394,15 @@
1528
1529 include('install/footer.inc');
1530
1531+<<<<<<< TREE
1532 # Functions
1533 function checkPHP() {
1534 # Check PHP version > 5
1535 return (version_compare("5.3.3",phpversion(), "<="));
1536 }
1537
1538+=======
1539+>>>>>>> MERGE-SOURCE
1540 function checkMySQL() {
1541 # Check PHP has MySQL module installed
1542 return extension_loaded("mysql");

Subscribers

People subscribed via source and target branches