Merge lp:~dangarner/xibo/server-163-final into lp:xibo/1.7

Proposed by Dan Garner
Status: Needs review
Proposed branch: lp:~dangarner/xibo/server-163-final
Merge into: lp:xibo/1.7
Diff against target: 1422 lines (+654/-169) (has conflicts)
36 files modified
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)
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/server-163-final
Reviewer Review Type Date Requested Status
Xibo Maintainters Pending
Review via email: mp+231716@code.launchpad.net
To post a comment you must log in.

Unmerged revisions

359. By Dan Garner

[cms] Pushed files for release.

Preview Diff

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

Subscribers

People subscribed via source and target branches