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
=== renamed file 'default.mo' => 'default.mo.OTHER'
0Binary files default.mo 2014-07-15 16:00:50 +0000 and default.mo.OTHER 2014-08-21 12:09:46 +0000 differ0Binary files default.mo 2014-07-15 16:00:50 +0000 and default.mo.OTHER 2014-08-21 12:09:46 +0000 differ
=== modified file 'default.pot'
--- default.pot 2014-07-15 16:00:50 +0000
+++ default.pot 2014-08-21 12:09:46 +0000
@@ -2,7 +2,11 @@
2msgstr ""2msgstr ""
3"Project-Id-Version: Xibo Digital Signage\n"3"Project-Id-Version: Xibo Digital Signage\n"
4"Report-Msgid-Bugs-To: \n"4"Report-Msgid-Bugs-To: \n"
5<<<<<<< TREE
5"POT-Creation-Date: 2014-07-15 17:00-0000\n"6"POT-Creation-Date: 2014-07-15 17:00-0000\n"
7=======
8"POT-Creation-Date: 2014-07-15 16:44-0000\n"
9>>>>>>> MERGE-SOURCE
6"PO-Revision-Date: \n"10"PO-Revision-Date: \n"
7"Last-Translator: Dan Garner <dan@xibo.org.uk>\n"11"Last-Translator: Dan Garner <dan@xibo.org.uk>\n"
8"Language-Team: <info@xibo.org.uk>\n"12"Language-Team: <info@xibo.org.uk>\n"
@@ -10,7 +14,11 @@
10"MIME-Version: 1.0\n"14"MIME-Version: 1.0\n"
11"Content-Type: text/plain; charset=UTF-8\n"15"Content-Type: text/plain; charset=UTF-8\n"
12"Content-Transfer-Encoding: 8bit\n"16"Content-Transfer-Encoding: 8bit\n"
17<<<<<<< TREE
13"X-Poedit-Basepath: C:\\Users\\dan\\www\\release\\1.7.0-alpha\n"18"X-Poedit-Basepath: C:\\Users\\dan\\www\\release\\1.7.0-alpha\n"
19=======
20"X-Poedit-Basepath: C:\\Users\\dan\\www\\release\\1.6.2\n"
21>>>>>>> MERGE-SOURCE
14"X-Poedit-KeywordsList: __;Translate\n"22"X-Poedit-KeywordsList: __;Translate\n"
15"X-Generator: Poedit 1.5.5\n"23"X-Generator: Poedit 1.5.5\n"
16"X-Poedit-SearchPath-0: server\n"24"X-Poedit-SearchPath-0: server\n"
1725
=== modified file 'server/config/config.class.php'
--- server/config/config.class.php 2014-06-28 16:12:52 +0000
+++ server/config/config.class.php 2014-08-21 12:09:46 +0000
@@ -1,7 +1,7 @@
1<?php1<?php
2/*2/*
3 * Xibo - Digital Signage - http://www.xibo.org.uk3 * Xibo - Digital Signage - http://www.xibo.org.uk
4 * Copyright (C) 2006-2013 Daniel Garner and James Packer4 * Copyright (C) 2006-2014 Daniel Garner and James Packer
5 *5 *
6 * This file is part of Xibo.6 * This file is part of Xibo.
7 *7 *
@@ -22,6 +22,8 @@
22 22
23class Config 23class Config
24{24{
25 public static $VERSION_REQUIRED = '5.3.3';
26
25 private $extensions;27 private $extensions;
26 private $envTested;28 private $envTested;
27 private $envFault;29 private $envFault;
@@ -129,7 +131,7 @@
129 // Check for PHP version131 // Check for PHP version
130 $message = __('PHP Version');132 $message = __('PHP Version');
131133
132 if ($this->CheckPHP() == 1) 134 if ($this->CheckPHP())
133 {135 {
134 $output .= $imgGood.$message.'<br />';136 $output .= $imgGood.$message.'<br />';
135 }137 }
@@ -138,7 +140,11 @@
138 $this->envFault = true;140 $this->envFault = true;
139 141
140 $output .= $imgBad.$message.'<br />';142 $output .= $imgBad.$message.'<br />';
143<<<<<<< TREE
141 $output .= '<div class="check_explain"> <p>' . __("PHP version 5.3.3 or later required.") . '. Detected ' . phpversion() . '</p></div>';144 $output .= '<div class="check_explain"> <p>' . __("PHP version 5.3.3 or later required.") . '. Detected ' . phpversion() . '</p></div>';
145=======
146 $output .= '<div class="check_explain"> <p>' . sprintf(__("PHP version %s or later required."), Config::$VERSION_REQUIRED) . '. Detected ' . phpversion() . '</p></div>';
147>>>>>>> MERGE-SOURCE
142 }148 }
143 149
144 // Check for file system permissions150 // Check for file system permissions
@@ -463,7 +469,11 @@
463 */469 */
464 function CheckPHP() 470 function CheckPHP()
465 {471 {
472<<<<<<< TREE
466 return ((version_compare('5.3.3', phpversion(), '>='))) ? 1 : 0;473 return ((version_compare('5.3.3', phpversion(), '>='))) ? 1 : 0;
474=======
475 return (version_compare(phpversion(), Config::$VERSION_REQUIRED) != -1);
476>>>>>>> MERGE-SOURCE
467 }477 }
468 478
469 /**479 /**
470480
=== modified file 'server/install.php'
--- server/install.php 2014-07-15 15:59:36 +0000
+++ server/install.php 2014-08-21 12:09:46 +0000
@@ -20,11 +20,14 @@
20 */ 20 */
21DEFINE('XIBO', true);21DEFINE('XIBO', true);
2222
23<<<<<<< TREE
23if (! checkPHP()) 24if (! checkPHP())
24{25{
25 die('Xibo requires PHP 5.3.3 or later');26 die('Xibo requires PHP 5.3.3 or later');
26}27}
2728
29=======
30>>>>>>> MERGE-SOURCE
28error_reporting(0);31error_reporting(0);
29ini_set('display_errors', 0);32ini_set('display_errors', 0);
3033
@@ -33,6 +36,12 @@
33include('config/config.class.php');36include('config/config.class.php');
34include('config/db_config.php');37include('config/db_config.php');
3538
39$config = new Config();
40
41if (!$config->CheckPHP()) {
42 die(sprintf('Xibo required PHP version %s.', Config::$VERSION_REQUIRED));
43}
44
36// Setup for the Translations using Gettext.45// Setup for the Translations using Gettext.
37// 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)46// 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)
38// Would be nice to include a method on the TranslationEngine that did this for us - but without the debugging47// Would be nice to include a method on the TranslationEngine that did this for us - but without the debugging
@@ -691,11 +700,14 @@
691 return $key;700 return $key;
692}701}
693702
703<<<<<<< TREE
694function checkPHP() 704function checkPHP()
695{705{
696 return (version_compare("5.3.3",phpversion(), "<="));706 return (version_compare("5.3.3",phpversion(), "<="));
697}707}
698708
709=======
710>>>>>>> MERGE-SOURCE
699function CheckGettext() 711function CheckGettext()
700{712{
701 return extension_loaded("gettext");713 return extension_loaded("gettext");
702714
=== added file 'server/install/database/71.sql'
--- server/install/database/71.sql 1970-01-01 00:00:00 +0000
+++ server/install/database/71.sql 2014-08-21 12:09:46 +0000
@@ -0,0 +1,4 @@
1
2UPDATE `version` SET `app_ver` = '1.6.3', `XmdsVersion` = 3;
3UPDATE `setting` SET `value` = 0 WHERE `setting` = 'PHONE_HOME_DATE';
4UPDATE `version` SET `DBVersion` = '71';
05
=== modified file 'server/install/master/data.sql'
--- server/install/master/data.sql 2014-07-15 15:35:22 +0000
+++ server/install/master/data.sql 2014-08-21 12:09:46 +0000
@@ -1,5 +1,9 @@
1INSERT INTO `version` (`app_ver`, `XmdsVersion`, `XlfVersion`, `DBVersion`) VALUES1INSERT INTO `version` (`app_ver`, `XmdsVersion`, `XlfVersion`, `DBVersion`) VALUES
2<<<<<<< TREE
2('1.6.2', 3, 1, 70);3('1.6.2', 3, 1, 70);
4=======
5('1.6.3', 3, 1, 71);
6>>>>>>> MERGE-SOURCE
37
4INSERT INTO `group` (`groupID`, `group`, `IsUserSpecific`, `IsEveryone`) VALUES8INSERT INTO `group` (`groupID`, `group`, `IsUserSpecific`, `IsEveryone`) VALUES
5(1, 'Users', 0, 0),9(1, 'Users', 0, 0),
610
=== modified file 'server/install/master/structure.sql'
--- server/install/master/structure.sql 2014-03-09 14:41:56 +0000
+++ server/install/master/structure.sql 2014-08-21 12:09:46 +0000
@@ -34,6 +34,7 @@
34 `DataSet` varchar(50) NOT NULL,34 `DataSet` varchar(50) NOT NULL,
35 `Description` varchar(254) DEFAULT NULL,35 `Description` varchar(254) DEFAULT NULL,
36 `UserID` int(11) NOT NULL,36 `UserID` int(11) NOT NULL,
37 `LastDataEdit` int(11) NOT NULL DEFAULT '0',
37 PRIMARY KEY (`DataSetID`),38 PRIMARY KEY (`DataSetID`),
38 KEY `UserID` (`UserID`)39 KEY `UserID` (`UserID`)
39) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;40) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
@@ -602,6 +603,15 @@
602 PRIMARY KEY (`id`)603 PRIMARY KEY (`id`)
603) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='File associations directly to Display Groups' AUTO_INCREMENT=1 ;604) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='File associations directly to Display Groups' AUTO_INCREMENT=1 ;
604605
606CREATE TABLE IF NOT EXISTS `lkdatasetlayout` (
607 `LkDataSetLayoutID` int(11) NOT NULL AUTO_INCREMENT,
608 `DataSetID` int(11) NOT NULL,
609 `LayoutID` int(11) NOT NULL,
610 `RegionID` varchar(50) NOT NULL,
611 `MediaID` varchar(50) NOT NULL,
612 PRIMARY KEY (`LkDataSetLayoutID`)
613) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
614
605--615--
606-- Constraints for dumped tables616-- Constraints for dumped tables
607--617--
608618
=== modified file 'server/lib/app/kit.class.php'
--- server/lib/app/kit.class.php 2014-05-26 09:09:06 +0000
+++ server/lib/app/kit.class.php 2014-08-21 12:09:46 +0000
@@ -372,7 +372,7 @@
372 */372 */
373 public static function GetURL($page = "")373 public static function GetURL($page = "")
374 {374 {
375 $page = $this->ValidateParam($page, _WORD);375 $page = Kit::ValidateParam($page, _WORD);
376 $fullUrl = 'http';376 $fullUrl = 'http';
377 377
378 if(isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on')378 if(isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on')
379379
=== modified file 'server/lib/app/pdoconnect.class.php'
--- server/lib/app/pdoconnect.class.php 2014-01-18 09:47:41 +0000
+++ server/lib/app/pdoconnect.class.php 2014-08-21 12:09:46 +0000
@@ -34,8 +34,18 @@
34 global $dbpass;34 global $dbpass;
35 global $dbname;35 global $dbname;
3636
37 $dbport = '';
38
39 if (strstr($dbhost, ':')) {
40 $hostParts = explode(':', $dbhost);
41 $dsn = 'mysql:host=' . $hostParts[0] . ';port=' . $hostParts[1] . ';dbname=' . $dbname . ';';
42 }
43 else {
44 $dsn = 'mysql:host=' . $dbhost . ';dbname=' . $dbname . ';';
45 }
46
37 // Open the connection and set the error mode47 // Open the connection and set the error mode
38 self::$conn = new PDO('mysql:host=' . $dbhost . ';dbname=' . $dbname . ';', $dbuser, $dbpass);48 self::$conn = new PDO($dsn, $dbuser, $dbpass);
39 self::$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);49 self::$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
4050
41 self::$conn->query("SET NAMES 'utf8'");51 self::$conn->query("SET NAMES 'utf8'");
4252
=== modified file 'server/lib/data/dataset.data.class.php'
--- server/lib/data/dataset.data.class.php 2014-07-08 14:45:16 +0000
+++ server/lib/data/dataset.data.class.php 2014-08-21 12:09:46 +0000
@@ -441,8 +441,7 @@
441441
442 Debug::LogEntry('audit', $SQL);442 Debug::LogEntry('audit', $SQL);
443443
444 if (!$rows = $db->GetArray($SQL, $associative))444 $rows = $db->GetArray($SQL, $associative);
445 trigger_error($db->error());
446445
447 if (!is_array($rows))446 if (!is_array($rows))
448 $rows = array();447 $rows = array();
449448
=== modified file 'server/lib/data/datasetdata.data.class.php'
--- server/lib/data/datasetdata.data.class.php 2014-07-12 13:54:51 +0000
+++ server/lib/data/datasetdata.data.class.php 2014-08-21 12:09:46 +0000
@@ -377,4 +377,4 @@
377 }377 }
378 }378 }
379}379}
380?>
381\ No newline at end of file380\ No newline at end of file
381?>
382382
=== modified file 'server/lib/data/displaygroup.data.class.php'
--- server/lib/data/displaygroup.data.class.php 2014-04-19 09:11:34 +0000
+++ server/lib/data/displaygroup.data.class.php 2014-08-21 12:09:46 +0000
@@ -151,7 +151,8 @@
151 */151 */
152 public function Delete($displayGroupID)152 public function Delete($displayGroupID)
153 {153 {
154 Debug::LogEntry('audit', 'IN', 'DisplayGroup', 'Delete');154 if ($displayGroupID == NULL || $displayGroupID == 0)
155 return $this->SetError(__('Missing displayGroupId'));
155156
156 try {157 try {
157 $dbh = PDOConnect::init();158 $dbh = PDOConnect::init();
@@ -162,6 +163,13 @@
162 if (!$schedule->DeleteScheduleForDisplayGroup($displayGroupID))163 if (!$schedule->DeleteScheduleForDisplayGroup($displayGroupID))
163 throw new Exception('Unable to DeleteScheduleForDisplayGroup');164 throw new Exception('Unable to DeleteScheduleForDisplayGroup');
164165
166 // Remove all permissions
167 Kit::ClassLoader('displaygroupsecurity');
168 $security = new DisplayGroupSecurity($this->db);
169
170 if (!$security->UnlinkAll($displayGroupID))
171 throw new Exception('Unable to Unlink all Display Group Permissions');
172
165 // Delete the Display Group173 // Delete the Display Group
166 $sth = $dbh->prepare('DELETE FROM displaygroup WHERE DisplayGroupID = :displaygroupid');174 $sth = $dbh->prepare('DELETE FROM displaygroup WHERE DisplayGroupID = :displaygroupid');
167 $sth->execute(array(175 $sth->execute(array(
@@ -414,10 +422,6 @@
414422
415 try {423 try {
416 $dbh = PDOConnect::init();424 $dbh = PDOConnect::init();
417
418 // Check that some media assignments have been made
419 if (count($mediaList) == 0)
420 $this->ThrowError(25006, __('No media to assign'));
421 425
422 // Drop all current assignments426 // Drop all current assignments
423 if (!$link->UnlinkAllFromDisplayGroup($displayGroupId))427 if (!$link->UnlinkAllFromDisplayGroup($displayGroupId))
424428
=== modified file 'server/lib/data/region.data.class.php'
--- server/lib/data/region.data.class.php 2014-07-01 17:12:06 +0000
+++ server/lib/data/region.data.class.php 2014-08-21 12:09:46 +0000
@@ -22,10 +22,19 @@
2222
23class Region extends Data23class Region extends Data
24{24{
25 // Caching25<<<<<<< TREE
26 private $layoutXml;26 // Caching
27 private $layoutDocument;27 private $layoutXml;
2828 private $layoutDocument;
29
30=======
31 // Caching
32 private $layoutXml;
33 private $layoutDocument;
34
35 public $delayFinalise = false;
36
37>>>>>>> MERGE-SOURCE
29 public function __construct(database $db) 38 public function __construct(database $db)
30 {39 {
31 $this->db =& $db;40 $this->db =& $db;
@@ -632,10 +641,12 @@
632 if (!$this->SetLayoutXml($layoutid, $xml->saveXML())) 641 if (!$this->SetLayoutXml($layoutid, $xml->saveXML()))
633 return false;642 return false;
634 643
635 // Update layout status644 if (!$this->delayFinalise) {
636 Kit::ClassLoader('Layout');645 // Update layout status
637 $layout = new Layout($this->db);646 Kit::ClassLoader('Layout');
638 $layout->SetValid($layoutid, true);647 $layout = new Layout($this->db);
648 $layout->SetValid($layoutid, true);
649 }
639 650
640 //Its swapped651 //Its swapped
641 return true; 652 return true;
642653
=== modified file 'server/lib/data/userdata.data.class.php'
--- server/lib/data/userdata.data.class.php 2014-01-18 09:47:41 +0000
+++ server/lib/data/userdata.data.class.php 2014-08-21 12:09:46 +0000
@@ -34,6 +34,34 @@
3434
35class Userdata extends Data35class Userdata extends Data
36{36{
37 public $userId;
38
39 public function Delete() {
40 if (!isset($this->userId) || $this->userId == 0)
41 return $this->SetError(__('Missing userId'));
42
43 try {
44 $dbh = PDOConnect::init();
45
46 $sth = $dbh->prepare('DELETE FROM `user` WHERE userid = :userid');
47 $sth->execute(array('userid' => $this->userId));
48
49 $sth = $dbh->prepare('DELETE FROM `session` WHERE userid = :userid');
50 $sth->execute(array('userid' => $this->userId));
51
52 return true;
53 }
54 catch (Exception $e) {
55
56 Debug::LogEntry('error', $e->getMessage(), get_class(), __FUNCTION__);
57
58 if (!$this->IsError())
59 $this->SetError(1, __('Unknown Error'));
60
61 return false;
62 }
63 }
64
37 /**65 /**
38 * Change a users password66 * Change a users password
39 * @param <type> $userId67 * @param <type> $userId
4068
=== modified file 'server/lib/data/usergroup.data.class.php'
--- server/lib/data/usergroup.data.class.php 2014-01-18 09:47:41 +0000
+++ server/lib/data/usergroup.data.class.php 2014-08-21 12:09:46 +0000
@@ -255,7 +255,7 @@
255 255
256 $sth = $dbh->prepare('DELETE FROM lkusergroup WHERE UserID = :userid');256 $sth = $dbh->prepare('DELETE FROM lkusergroup WHERE UserID = :userid');
257 $sth->execute(array(257 $sth->execute(array(
258 'userid' => $userID258 'userid' => $userId
259 ));259 ));
260260
261 Debug::LogEntry('audit', 'OUT', 'UserGroup', 'UnlinkAllGroups');261 Debug::LogEntry('audit', 'OUT', 'UserGroup', 'UnlinkAllGroups');
262262
=== modified file 'server/lib/include.php'
--- server/lib/include.php 2014-07-15 15:36:06 +0000
+++ server/lib/include.php 2014-08-21 12:09:46 +0000
@@ -20,7 +20,11 @@
20 */20 */
21defined('XIBO') or die("Sorry, you are not allowed to directly access this page.<br /> Please press the back button in your browser.");21defined('XIBO') or die("Sorry, you are not allowed to directly access this page.<br /> Please press the back button in your browser.");
2222
23<<<<<<< TREE
23define('WEBSITE_VERSION', 70);24define('WEBSITE_VERSION', 70);
25=======
26define('WEBSITE_VERSION', 71);
27>>>>>>> MERGE-SOURCE
2428
25// No errors reported until we read the settings from the DB29// No errors reported until we read the settings from the DB
26error_reporting(0);30error_reporting(0);
2731
=== modified file 'server/lib/modules/module.class.php'
--- server/lib/modules/module.class.php 2014-07-01 17:12:06 +0000
+++ server/lib/modules/module.class.php 2014-08-21 12:09:46 +0000
@@ -52,6 +52,7 @@
52 protected $showRegionOptions;52 protected $showRegionOptions;
53 protected $originalUserId;53 protected $originalUserId;
54 protected $storedAs;54 protected $storedAs;
55 protected $originalFilename;
5556
56 // Track the error state57 // Track the error state
57 private $error;58 private $error;
@@ -237,7 +238,7 @@
237 $dbh = PDOConnect::init();238 $dbh = PDOConnect::init();
238 239
239 // Load what we know about this media into the object240 // Load what we know about this media into the object
240 $sth = $dbh->prepare('SELECT duration, name, UserId, storedAs FROM media WHERE mediaID = :media_id');241 $sth = $dbh->prepare('SELECT duration, name, UserId, storedAs, originalFilename FROM media WHERE mediaID = :media_id');
241 $sth->execute(array(242 $sth->execute(array(
242 'media_id' => $mediaid243 'media_id' => $mediaid
243 ));244 ));
@@ -252,6 +253,7 @@
252 $this->name = $rows[0]['name'];253 $this->name = $rows[0]['name'];
253 $this->originalUserId = $rows[0]['UserId'];254 $this->originalUserId = $rows[0]['UserId'];
254 $this->storedAs = $rows[0]['storedAs'];255 $this->storedAs = $rows[0]['storedAs'];
256 $this->originalFilename = $rows[0]['originalFilename'];
255 }257 }
256 catch (Exception $e) {258 catch (Exception $e) {
257 259
@@ -1203,9 +1205,6 @@
1203 1205
1204 Debug::LogEntry('audit', sprintf('Replacing mediaid %s with mediaid %s in all layouts', $oldMediaId, $newMediaId), 'module', 'ReplaceMediaInAllLayouts');1206 Debug::LogEntry('audit', sprintf('Replacing mediaid %s with mediaid %s in all layouts', $oldMediaId, $newMediaId), 'module', 'ReplaceMediaInAllLayouts');
12051207
1206 // Create a region object for later use
1207 $region = new region($db);
1208
1209 try {1208 try {
1210 $dbh = PDOConnect::init();1209 $dbh = PDOConnect::init();
1211 1210
@@ -1231,6 +1230,9 @@
12311230
1232 Debug::LogEntry('audit', sprintf('%d linked media items for layoutid %d', count($results), $layoutId), 'module', 'ReplaceMediaInAllLayouts');1231 Debug::LogEntry('audit', sprintf('%d linked media items for layoutid %d', count($results), $layoutId), 'module', 'ReplaceMediaInAllLayouts');
1233 1232
1233 // Create a region object for later use (new one each time)
1234 $region = new region($db);
1235
1234 // Loop through each media link for this layout1236 // Loop through each media link for this layout
1235 foreach ($results as $row)1237 foreach ($results as $row)
1236 {1238 {
@@ -1958,13 +1960,14 @@
1958 }1960 }
1959 1961
1960 $download = Kit::GetParam('download', _REQUEST, _BOOLEAN, false);1962 $download = Kit::GetParam('download', _REQUEST, _BOOLEAN, false);
1963 $downloadFromLibrary = Kit::GetParam('downloadFromLibrary', _REQUEST, _BOOLEAN, false);
19611964
1962 $size = filesize($fileName);1965 $size = filesize($fileName);
1963 1966
1964 if ($download) {1967 if ($download) {
1965 header('Content-Type: application/octet-stream');1968 header('Content-Type: application/octet-stream');
1966 header("Content-Transfer-Encoding: Binary"); 1969 header("Content-Transfer-Encoding: Binary");
1967 header("Content-disposition: attachment; filename=\"" . basename($fileName) . "\"");1970 header("Content-disposition: attachment; filename=\"" . (($downloadFromLibrary) ? $this->originalFilename : basename($fileName)) . "\"");
1968 }1971 }
1969 else {1972 else {
1970 $fi = new finfo( FILEINFO_MIME_TYPE );1973 $fi = new finfo( FILEINFO_MIME_TYPE );
19711974
=== modified file 'server/lib/pages/admin.class.php'
--- server/lib/pages/admin.class.php 2014-06-30 15:15:17 +0000
+++ server/lib/pages/admin.class.php 2014-08-21 12:09:46 +0000
@@ -262,13 +262,13 @@
262 // Monthly bandwidth - optionally tested against limits262 // Monthly bandwidth - optionally tested against limits
263 $xmdsLimit = Config::GetSetting('MONTHLY_XMDS_TRANSFER_LIMIT_KB');263 $xmdsLimit = Config::GetSetting('MONTHLY_XMDS_TRANSFER_LIMIT_KB');
264 $startOfMonth = strtotime(date('m').'/01/'.date('Y').' 00:00:00');264 $startOfMonth = strtotime(date('m').'/01/'.date('Y').' 00:00:00');
265265
266 $sql = sprintf('SELECT IFNULL(SUM(Size), 0) AS BandwidthUsage FROM `bandwidth` WHERE Month = %d', $startOfMonth);266 $sql = sprintf('SELECT IFNULL(SUM(Size), 0) AS BandwidthUsage FROM `bandwidth` WHERE Month > %d AND Month < %d', $startOfMonth, $startOfMonth + (86400 * 2));
267 $bandwidthUsage = $this->db->GetSingleValue($sql, 'BandwidthUsage', _INT);267 $bandwidthUsage = $this->db->GetSingleValue($sql, 'BandwidthUsage', _DOUBLE);
268268
269 Debug::LogEntry('audit', $sql);269 Debug::LogEntry('audit', $sql . '. Usage: ' . $bandwidthUsage);
270 270
271 $usagePcnt = ($xmdsLimit > 0) ? (($bandwidthUsage / ($xmdsLimit * 1024)) * 100) : '';271 $usagePcnt = ($xmdsLimit > 0) ? (((double)$bandwidthUsage / ($xmdsLimit * 1024)) * 100) : '';
272 272
273 $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>';273 $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>';
274 }274 }
275275
=== modified file 'server/lib/pages/content.class.php'
--- server/lib/pages/content.class.php 2014-03-08 14:41:11 +0000
+++ server/lib/pages/content.class.php 2014-08-21 12:09:46 +0000
@@ -151,7 +151,7 @@
151 // Download151 // Download
152 $row['buttons'][] = array(152 $row['buttons'][] = array(
153 'id' => 'content_button_download',153 'id' => 'content_button_download',
154 'url' => 'index.php?p=module&mod=' . $row['mediatype'] . '&q=Exec&method=GetResource&download=1&mediaid=' . $row['mediaid'],154 'url' => 'index.php?p=module&mod=' . $row['mediatype'] . '&q=Exec&method=GetResource&download=1&downloadFromLibrary=1&mediaid=' . $row['mediaid'],
155 'text' => __('Download')155 'text' => __('Download')
156 );156 );
157157
158158
=== modified file 'server/lib/pages/display.class.php'
--- server/lib/pages/display.class.php 2014-07-12 12:09:34 +0000
+++ server/lib/pages/display.class.php 2014-08-21 12:09:46 +0000
@@ -338,11 +338,13 @@
338 $row['mediainventorystatus'] = ($row['mediainventorystatus'] == 1) ? 'success' : (($row['mediainventorystatus'] == 2) ? 'error' : 'warning');338 $row['mediainventorystatus'] = ($row['mediainventorystatus'] == 1) ? 'success' : (($row['mediainventorystatus'] == 2) ? 'error' : 'warning');
339339
340 // Schedule Now340 // Schedule Now
341 $row['buttons'][] = array(341 if ($row['edit'] == 1 || Config::GetSetting('SCHEDULE_WITH_VIEW_PERMISSION') == 'Yes') {
342 'id' => 'display_button_schedulenow',342 $row['buttons'][] = array(
343 'url' => 'index.php?p=schedule&q=ScheduleNowForm&displayGroupId=' . $row['displaygroupid'],343 'id' => 'display_button_schedulenow',
344 'text' => __('Schedule Now')344 'url' => 'index.php?p=schedule&q=ScheduleNowForm&displayGroupId=' . $row['displaygroupid'],
345 );345 'text' => __('Schedule Now')
346 );
347 }
346348
347 // Media Inventory349 // Media Inventory
348 $row['buttons'][] = array(350 $row['buttons'][] = array(
349351
=== modified file 'server/lib/pages/displaygroup.class.php'
--- server/lib/pages/displaygroup.class.php 2014-06-30 15:15:17 +0000
+++ server/lib/pages/displaygroup.class.php 2014-08-21 12:09:46 +0000
@@ -775,7 +775,7 @@
775 $response = new ResponseManager();775 $response = new ResponseManager();
776776
777 $displayGroupId = Kit::GetParam('displaygroupid', _GET, _INT);777 $displayGroupId = Kit::GetParam('displaygroupid', _GET, _INT);
778 $mediaList = Kit::GetParam('MediaID', _POST, _ARRAY_INT, array(), false);778 $mediaList = Kit::GetParam('MediaID', _POST, _ARRAY_INT, NULL, false);
779779
780 if ($displayGroupId == 0)780 if ($displayGroupId == 0)
781 trigger_error(__('Display Group not selected'), E_USER_ERROR);781 trigger_error(__('Display Group not selected'), E_USER_ERROR);
782782
=== modified file 'server/lib/pages/schedule.class.php'
--- server/lib/pages/schedule.class.php 2014-07-09 17:27:29 +0000
+++ server/lib/pages/schedule.class.php 2014-08-21 12:09:46 +0000
@@ -1100,8 +1100,9 @@
1100 // Determine if we are authed against this group.1100 // Determine if we are authed against this group.
1101 $auth = $this->user->DisplayGroupAuth($displayGroupID, true);1101 $auth = $this->user->DisplayGroupAuth($displayGroupID, true);
11021102
1103 if (!$auth->view)1103 // We should only be able to schedule if we have edit permission or if the SCHEDULE_WITH_VIEW permission is ON
1104 continue;1104 if (!$auth->edit && Config::GetSetting('SCHEDULE_WITH_VIEW_PERMISSION') == 'No')
1105 continue;
1105 1106
1106 // Do we need to nest yet? We only nest display specific groups1107 // Do we need to nest yet? We only nest display specific groups
1107 if ($isDisplaySpecific == 1 && !$nested)1108 if ($isDisplaySpecific == 1 && !$nested)
@@ -1760,19 +1761,23 @@
1760 * @return 1761 * @return
1761 * @param $eventDGIDs Object1762 * @param $eventDGIDs Object
1762 */1763 */
1763 private function IsEventEditable($eventDGIDs)1764 private function IsEventEditable($eventDGIDs) {
1764 {1765
1765 $db =& $this->db;1766 $scheduleWithView = (Config::GetSetting('SCHEDULE_WITH_VIEW_PERMISSION') == 'Yes');
1766 $user =& $this->user;
1767 1767
1768 // Work out if this event is editable or not. To do this we need to compare the permissions1768 // Work out if this event is editable or not. To do this we need to compare the permissions
1769 // of each display group this event is associated with1769 // of each display group this event is associated with
1770 foreach ($eventDGIDs as $dgID)1770 foreach ($eventDGIDs as $dgID) {
1771 {1771 // Permissions for display group
1772 if (!$user->DisplayGroupAuth($dgID))1772 $auth = $this->user->DisplayGroupAuth($dgID, true);
1773 {1773
1774 return false;1774 // Can schedule with view, but no view permissions
1775 }1775 if ($scheduleWithView && !$auth->view)
1776 return false;
1777
1778 // Can't schedule with view, but no edit permissions
1779 if (!$scheduleWithView && !$auth->edit)
1780 return false;
1776 }1781 }
1777 1782
1778 return true;1783 return true;
17791784
=== modified file 'server/lib/pages/statusdashboard.class.php'
--- server/lib/pages/statusdashboard.class.php 2014-06-29 14:37:07 +0000
+++ server/lib/pages/statusdashboard.class.php 2014-08-21 12:09:46 +0000
@@ -45,7 +45,7 @@
4545
46 foreach ($results as $row) {46 foreach ($results as $row) {
47 47
48 $points['data'][] = array($row['month'], ((double)$row['size']) / 1024 / 1024 / 1024);48 $points['data'][] = array(__($row['month']), ((double)$row['size']) / 1024 / 1024 / 1024);
49 }49 }
5050
51 $points['label'] = __('GB');51 $points['label'] = __('GB');
5252
=== modified file 'server/lib/pages/timeline.class.php'
--- server/lib/pages/timeline.class.php 2014-06-30 15:15:17 +0000
+++ server/lib/pages/timeline.class.php 2014-08-21 12:09:46 +0000
@@ -293,6 +293,7 @@
293 293
294 Kit::ClassLoader('region');294 Kit::ClassLoader('region');
295 $regionObject = new region($db);295 $regionObject = new region($db);
296 $regionObject->delayFinalise = true;
296 $ownerId = $regionObject->GetOwnerId($layoutid, $regionid);297 $ownerId = $regionObject->GetOwnerId($layoutid, $regionid);
297298
298 $regionAuth = $this->user->RegionAssignmentAuth($ownerId, $layoutid, $regionid, true);299 $regionAuth = $this->user->RegionAssignmentAuth($ownerId, $layoutid, $regionid, true);
@@ -302,6 +303,11 @@
302 if (!$regionObject->EditRegion($layoutid, $regionid, $width, $height, $top, $left))303 if (!$regionObject->EditRegion($layoutid, $regionid, $width, $height, $top, $left))
303 trigger_error($regionObject->GetErrorMessage(), E_USER_ERROR);304 trigger_error($regionObject->GetErrorMessage(), E_USER_ERROR);
304 }305 }
306
307 // Set the layout status
308 Kit::ClassLoader('Layout');
309 $layout = new Layout($this->db);
310 $layout->SetValid($layoutid, true);
305 311
306 $response->SetFormSubmitResponse('');312 $response->SetFormSubmitResponse('');
307 $response->hideMessage = true;313 $response->hideMessage = true;
308314
=== modified file 'server/lib/pages/user.class.php'
--- server/lib/pages/user.class.php 2014-06-30 15:15:17 +0000
+++ server/lib/pages/user.class.php 2014-08-21 12:09:46 +0000
@@ -430,23 +430,11 @@
430 trigger_error($userGroupObject->GetErrorMessage(), E_USER_ERROR);430 trigger_error($userGroupObject->GetErrorMessage(), E_USER_ERROR);
431431
432 // Delete the user432 // Delete the user
433 $sqldel = "DELETE FROM user";433 Kit::ClassLoader('userdata');
434 $sqldel .= " WHERE UserID = %d"; 434 $user = new UserData($this->db);
435435 $user->userId = $userid;
436 if (!$db->query(sprintf($sqldel, $userid)))436 if (!$user->Delete())
437 {437 trigger_error($user->GetErrorMessage(), E_USER_ERROR);
438 trigger_error($db->error());
439 trigger_error(__("This user has been active, you may only retire them."), E_USER_ERROR);
440 }
441
442 // We should delete this users sessions record.
443 $SQL = "DELETE FROM session WHERE userID = %d ";
444
445 if (!$db->query(sprintf($SQL, $userid)))
446 {
447 trigger_error($db->error());
448 trigger_error(__("If logged in, this user will be deleted once they log out."), E_USER_ERROR);
449 }
450438
451 $response->SetFormSubmitResponse(__('User Deleted.'));439 $response->SetFormSubmitResponse(__('User Deleted.'));
452 $response->Respond();440 $response->Respond();
453441
=== modified file 'server/lib/service/xmdssoap.class.php'
--- server/lib/service/xmdssoap.class.php 2014-07-08 12:46:48 +0000
+++ server/lib/service/xmdssoap.class.php 2014-08-21 12:09:46 +0000
@@ -1128,8 +1128,14 @@
11281128
1129 // See if the client was offline and if appropriate send an alert1129 // See if the client was offline and if appropriate send an alert
1130 // to say that it has come back online1130 // to say that it has come back online
1131<<<<<<< TREE
1131 if ($row[5] == 0 && $row[6] == 1 && Config::GetSetting('MAINTENANCE_ENABLED') == 'On' && 1132 if ($row[5] == 0 && $row[6] == 1 && Config::GetSetting('MAINTENANCE_ENABLED') == 'On' &&
1132 (Config::GetSetting('MAINTENANCE_EMAIL_ALERTS') == 'On' || Config::GetSetting('MAINTENANCE_EMAIL_ALERTS') == 'Protected'))1133 (Config::GetSetting('MAINTENANCE_EMAIL_ALERTS') == 'On' || Config::GetSetting('MAINTENANCE_EMAIL_ALERTS') == 'Protected'))
1134=======
1135 if ($row[5] == 0 && $row[6] == 1
1136 && (Config::GetSetting('MAINTENANCE_ENABLED') == 'On' || Config::GetSetting('MAINTENANCE_ENABLED') == 'Protected')
1137 && Config::GetSetting('MAINTENANCE_EMAIL_ALERTS') == 'On')
1138>>>>>>> MERGE-SOURCE
1133 {1139 {
1134 $msgTo = Kit::ValidateParam(Config::GetSetting("mail_to"),_PASSWORD);1140 $msgTo = Kit::ValidateParam(Config::GetSetting("mail_to"),_PASSWORD);
1135 $msgFrom = Kit::ValidateParam(Config::GetSetting("mail_from"),_PASSWORD);1141 $msgFrom = Kit::ValidateParam(Config::GetSetting("mail_from"),_PASSWORD);
11361142
=== modified file 'server/locale/dbtranslate.php'
--- server/locale/dbtranslate.php 2014-06-30 14:41:38 +0000
+++ server/locale/dbtranslate.php 2014-08-21 12:09:46 +0000
@@ -116,4 +116,47 @@
116echo __('Value');116echo __('Value');
117echo __('Formula');117echo __('Formula');
118118
119
120echo __('Media will be created with these settings. If public everyone will be able to view and use this media.');
121echo __('New layouts will be created with these settings. If public everyone will be able to view and use this layout.');
122echo __('Sets the default user type selected when creating a user.\r\n<br />\r\nWe recommend that this is set to "User"');
123echo __('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');
124echo __('This sets which user authentication module is currently being used.');
125echo __('Sets the admin message to be displayed on the client page at all times');
126echo __('Set the default timezone for the application');
127echo __('Errors will be mailed here');
128echo __('Mail will be sent from this address');
129echo __('This is the fully qualified URI of the site. e.g http://www.xibo.co.uk/');
130echo __('Default length for JPG files (in seconds)');
131echo __('Default length for PPT files');
132echo __('Default height for PPT files');
133echo __('Default length for PPT files (in seconds)');
134echo __('Default length for SWF files');
135echo __('Turn on the auditing information. Warning this will quickly fill up the log');
136echo __('Should the server send anonymous statistics back to the Xibo project?');
137echo __('Key used to distinguish each Xibo instance. This is generated randomly based on the time you first installed Xibo, and is completely untraceable.');
138echo __('The URL to connect to to PHONE_HOME (if enabled)');
139echo __('The last time we PHONED_HOME in seconds since the epoch');
140echo __('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.');
141echo __('Allow the maintenance script to run if it is called?');
142echo __('Global switch for email alerts to be sent');
143echo __('String appended to the maintenance script to prevent malicious calls to the script.');
144echo __('Maximum age for log entries. Set to 0 to keep logs indefinitely.');
145echo __('Maximum age for statistics entries. Set to 0 to keep statistics indefinitely.');
146echo __('How long in minutes after the last time a client connects should we send an alert? Can be overridden on a per client basis.');
147
148
149echo __('January');
150echo __('February');
151echo __('March');
152echo __('April');
153echo __('May');
154echo __('June');
155echo __('July');
156echo __('August');
157echo __('September');
158echo __('October');
159echo __('November');
160echo __('December');
161
119?>162?>
120163
=== modified file 'server/manual/content/admin/api_layouts.php'
--- server/manual/content/admin/api_layouts.php 2014-01-12 20:46:20 +0000
+++ server/manual/content/admin/api_layouts.php 2014-08-21 12:09:46 +0000
@@ -82,8 +82,8 @@
82</li><li> left82</li><li> left
83</li><li> ownerid83</li><li> ownerid
84</li><li> permission_edit84</li><li> permission_edit
85</li><li> permission_del85</li><li> permissions_del
86</li><li> permission_update_permissions86</li><li> permissions_update_permissions
87</li></ul>87</li></ul>
88<p>Error Codes88<p>Error Codes
89</p>89</p>
@@ -157,7 +157,7 @@
157</p>157</p>
158<ul><li> mediaid158<ul><li> mediaid
159</li><li> lkid159</li><li> lkid
160</li><li> type160</li><li> mediatype
161</li><li> duration161</li><li> duration
162</li><li> permission_edit162</li><li> permission_edit
163</li><li> permission_del163</li><li> permission_del
@@ -168,19 +168,42 @@
168</p>168</p>
169<ul><li> 1 - Access Denied169<ul><li> 1 - Access Denied
170</li></ul>170</li></ul>
171<h3> <span class="mw-headline" id="LayoutRegionMediaDetails"> LayoutRegionMediaDetails </span></h3>171
172<p>Parameters172<h2 class="api-method-call-doc" id="LayoutRegionMediaDetails">LayoutRegionMediaDetails</h2>
173</p>173<h3>Parameters</h3>
174<ul><li> layoutId174<dl>
175</li><li> regionId175 <dt>layoutId</dt>
176</li><li> mediaId176 <dd>The ID for this Layout. Required.</dd>
177</li></ul>177</dl>
178<p>Response178<dl>
179The XLF for the provided media id (XML format)179 <dt>regionId</dt>
180</p><p>Error Codes180 <dd>The ID for this Region. Required</dd>
181</p>181</dl>
182<ul><li> 1 - Access Denied182<dl>
183</li></ul>183 <dt>mediaId</dt>
184 <dd>The ID for this media. Required</dd>
185</dl>
186<dl>
187 <dt>type</dt>
188 <dd>The media type. Required</dd>
189</dl>
190
191<h3>Response</h3>
192The XLF for the provided media id (XML format). Base 64 encoded.
193<pre>
194{
195 "media": {
196 "id": "1",
197 "base64Xlf": "base64"
198 },
199 "status": "ok"
200}
201</pre>
202
203<h3>Errors</h3>
204<p>General Errors Only.
205</p>
206
184<h3> <span class="mw-headline" id="LayoutRegionMediaAdd"> LayoutRegionMediaAdd </span></h3>207<h3> <span class="mw-headline" id="LayoutRegionMediaAdd"> LayoutRegionMediaAdd </span></h3>
185<p>Parameters208<p>Parameters
186</p>209</p>
187210
=== modified file 'server/manual/content/admin/release_notes_1.6.2.php'
--- server/manual/content/admin/release_notes_1.6.2.php 2014-07-12 13:54:51 +0000
+++ server/manual/content/admin/release_notes_1.6.2.php 2014-08-21 12:09:46 +0000
@@ -1,76 +1,162 @@
1<?php1<<<<<<< TREE
2/*2<?php
3 * Xibo - Digital Signage - http://www.xibo.org.uk3/*
4 * Copyright (C) 2006-2014 Daniel Garner4 * Xibo - Digital Signage - http://www.xibo.org.uk
5 *5 * Copyright (C) 2006-2014 Daniel Garner
6 * This file is part of Xibo.6 *
7 *7 * This file is part of Xibo.
8 * Xibo is free software: you can redistribute it and/or modify8 *
9 * it under the terms of the GNU Affero General Public License as published by9 * Xibo is free software: you can redistribute it and/or modify
10 * the Free Software Foundation, either version 3 of the License, or10 * it under the terms of the GNU Affero General Public License as published by
11 * any later version. 11 * the Free Software Foundation, either version 3 of the License, or
12 *12 * any later version.
13 * Xibo is distributed in the hope that it will be useful,13 *
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of14 * Xibo is distributed in the hope that it will be useful,
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * GNU Affero General Public License for more details.16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 *17 * GNU Affero General Public License for more details.
18 * You should have received a copy of the GNU Affero General Public License18 *
19 * along with Xibo. If not, see <http://www.gnu.org/licenses/>.19 * You should have received a copy of the GNU Affero General Public License
20 */ 20 * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
21defined('XIBO') or die("Sorry, you are not allowed to directly access this page.<br /> Please press the back button in your browser.");21 */
2222defined('XIBO') or die("Sorry, you are not allowed to directly access this page.<br /> Please press the back button in your browser.");
23$LP_RELEASE_PAGE = 'https://launchpad.net/xibo/1.6/1.6.2';23
24?>24$LP_RELEASE_PAGE = 'https://launchpad.net/xibo/1.6/1.6.2';
25<h1 id="Notes_Title">Xibo 1.6.2 - Codename "Pons-Winnecke"</span></h1>25?>
26<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>26<h1 id="Notes_Title">Xibo 1.6.2 - Codename "Pons-Winnecke"</span></h1>
27<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>27<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>
2828<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>
29<div id="toctitle"><h2>Contents</h2></div>29
3030<div id="toctitle"><h2>Contents</h2></div>
31<ol>31
32 <li class="toclevel-1 tocsection-1"><a href="#Notes_Title">Introduction</a></li>32<ol>
33 <li class="toclevel-1 tocsection-2"><a href="#Requirements">Requirements</a></li>33 <li class="toclevel-1 tocsection-1"><a href="#Notes_Title">Introduction</a></li>
34 <li class="toclevel-1 tocsection-3"><a href="#Upgrading">Upgrading</a></li>34 <li class="toclevel-1 tocsection-2"><a href="#Requirements">Requirements</a></li>
35 <li class="toclevel-1 tocsection-4"><a href="#Help">Help</a></li>35 <li class="toclevel-1 tocsection-3"><a href="#Upgrading">Upgrading</a></li>
36 <li class="toclevel-1 tocsection-7"><a href="#Bug_Fixes">Bug Fixes</a></li>36 <li class="toclevel-1 tocsection-4"><a href="#Help">Help</a></li>
37 <li class="toclevel-1 tocsection-8"><a href="#Known_Issues_and_Limitations">Known Issues and Limitations</a></li>37 <li class="toclevel-1 tocsection-7"><a href="#Bug_Fixes">Bug Fixes</a></li>
38</ol>38 <li class="toclevel-1 tocsection-8"><a href="#Known_Issues_and_Limitations">Known Issues and Limitations</a></li>
3939</ol>
4040
41<h2 id="Requirements">Requirements</h2>41
42<p>You must use the 1.6.2 version of the Windows and Ubuntu Display Clients with this version of the Xibo CMS.</p>42<h2 id="Requirements">Requirements</h2>
4343<p>You must use the 1.6.2 version of the Windows and Ubuntu Display Clients with this version of the Xibo CMS.</p>
44<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>44
4545<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>
46<h2 id="Upgrading">Upgrading</h2>46
47<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>47<h2 id="Upgrading">Upgrading</h2>
4848<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>
49<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>49
5050<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>
51<ul>51
52 <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>52<ul>
53 <li>Backup settings.php from your installation</li>53 <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>
54 <li>Manually take a backup of your database</li>54 <li>Backup settings.php from your installation</li>
55 <li>Replace your existing installation with the new version from the tar.gz or zip file</li>55 <li>Manually take a backup of your database</li>
56 <li>Replace your backup settings.php file in your Xibo installation directory</li>56 <li>Replace your existing installation with the new version from the tar.gz or zip file</li>
57 <li>Browse to <a rel="nofollow" class="external free" href="http://your.server/path">http://your.server/path</a>as normal</li>57 <li>Replace your backup settings.php file in your Xibo installation directory</li>
58 <li>You will be prompted that an upgrade is required.</li>58 <li>Browse to <a rel="nofollow" class="external free" href="http://your.server/path">http://your.server/path</a>as normal</li>
59 <li>Enter your xibo_admin password, and follow the upgrade wizard.</li>59 <li>You will be prompted that an upgrade is required.</li>
60 <li>The upgrade should run, and finally ask you to log in as you would normally.</li>60 <li>Enter your xibo_admin password, and follow the upgrade wizard.</li>
61</ul>61 <li>The upgrade should run, and finally ask you to log in as you would normally.</li>
6262</ul>
63<h2 id="Help">Help</h2>63
64<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>64<h2 id="Help">Help</h2>
6565<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>
66<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>66
6767<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>
68<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>68
6969<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>
70<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>70
7171<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>
72<h2 id="Bug_Fixes">Bug Fixes</h2>72
73<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>73<h2 id="Bug_Fixes">Bug Fixes</h2>
7474<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>
75<h2 id="Known_Issues_and_Limitations">Known Issues and Limitations</h2>75
76<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>76<h2 id="Known_Issues_and_Limitations">Known Issues and Limitations</h2>
77<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>
78=======
79<?php
80/*
81 * Xibo - Digital Signage - http://www.xibo.org.uk
82 * Copyright (C) 2006-2014 Daniel Garner
83 *
84 * This file is part of Xibo.
85 *
86 * Xibo is free software: you can redistribute it and/or modify
87 * it under the terms of the GNU Affero General Public License as published by
88 * the Free Software Foundation, either version 3 of the License, or
89 * any later version.
90 *
91 * Xibo is distributed in the hope that it will be useful,
92 * but WITHOUT ANY WARRANTY; without even the implied warranty of
93 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
94 * GNU Affero General Public License for more details.
95 *
96 * You should have received a copy of the GNU Affero General Public License
97 * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
98 */
99defined('XIBO') or die("Sorry, you are not allowed to directly access this page.<br /> Please press the back button in your browser.");
100
101$LP_RELEASE_PAGE = 'https://launchpad.net/xibo/1.6/1.6.2';
102?>
103<h1 id="Notes_Title">Xibo 1.6.2 - Codename "Pons-Winnecke"</span></h1>
104<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>
105<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>
106
107<div id="toctitle"><h2>Contents</h2></div>
108
109<ol>
110 <li class="toclevel-1 tocsection-1"><a href="#Notes_Title">Introduction</a></li>
111 <li class="toclevel-1 tocsection-2"><a href="#Requirements">Requirements</a></li>
112 <li class="toclevel-1 tocsection-3"><a href="#Upgrading">Upgrading</a></li>
113 <li class="toclevel-1 tocsection-4"><a href="#Help">Help</a></li>
114 <li class="toclevel-1 tocsection-7"><a href="#Bug_Fixes">Bug Fixes</a></li>
115 <li class="toclevel-1 tocsection-8"><a href="#Known_Issues_and_Limitations">Known Issues and Limitations</a></li>
116</ol>
117
118
119<h2 id="Requirements">Requirements</h2>
120<p>You must use the 1.6.2 version of the Windows and Ubuntu Display Clients with this version of the Xibo CMS.</p>
121
122<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>
123
124<h3>Xibo for Windows</h3>
125<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>
126
127<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>
128
129<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>
130
131<h2 id="Upgrading">Upgrading</h2>
132<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>
133
134<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>
135
136<ul>
137 <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>
138 <li>Backup settings.php from your installation</li>
139 <li>Manually take a backup of your database</li>
140 <li>Replace your existing installation with the new version from the tar.gz or zip file</li>
141 <li>Replace your backup settings.php file in your Xibo installation directory</li>
142 <li>Browse to <a rel="nofollow" class="external free" href="http://your.server/path">http://your.server/path</a>as normal</li>
143 <li>You will be prompted that an upgrade is required.</li>
144 <li>Enter your xibo_admin password, and follow the upgrade wizard.</li>
145 <li>The upgrade should run, and finally ask you to log in as you would normally.</li>
146</ul>
147
148<h2 id="Help">Help</h2>
149<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>
150
151<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>
152
153<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>
154
155<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>
156
157<h2 id="Bug_Fixes">Bug Fixes</h2>
158<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>
159
160<h2 id="Known_Issues_and_Limitations">Known Issues and Limitations</h2>
161<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>
162>>>>>>> MERGE-SOURCE
77163
=== added file 'server/manual/content/admin/release_notes_1.6.3.php'
--- server/manual/content/admin/release_notes_1.6.3.php 1970-01-01 00:00:00 +0000
+++ server/manual/content/admin/release_notes_1.6.3.php 2014-08-21 12:09:46 +0000
@@ -0,0 +1,83 @@
1<?php
2/*
3 * Xibo - Digital Signage - http://www.xibo.org.uk
4 * Copyright (C) 2006-2014 Daniel Garner
5 *
6 * This file is part of Xibo.
7 *
8 * Xibo is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU Affero General Public License as published by
10 * the Free Software Foundation, either version 3 of the License, or
11 * any later version.
12 *
13 * Xibo is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU Affero General Public License for more details.
17 *
18 * You should have received a copy of the GNU Affero General Public License
19 * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
20 */
21defined('XIBO') or die("Sorry, you are not allowed to directly access this page.<br /> Please press the back button in your browser.");
22
23$LP_RELEASE_PAGE = 'https://launchpad.net/xibo/1.6/1.6.3';
24?>
25<h1 id="Notes_Title">Xibo 1.6.3 - Codename "Pons-Winnecke"</span></h1>
26<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>
27<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>
28
29<div id="toctitle"><h2>Contents</h2></div>
30
31<ol>
32 <li class="toclevel-1 tocsection-1"><a href="#Notes_Title">Introduction</a></li>
33 <li class="toclevel-1 tocsection-2"><a href="#Requirements">Requirements</a></li>
34 <li class="toclevel-1 tocsection-3"><a href="#Upgrading">Upgrading</a></li>
35 <li class="toclevel-1 tocsection-4"><a href="#Help">Help</a></li>
36 <li class="toclevel-1 tocsection-7"><a href="#Bug_Fixes">Bug Fixes</a></li>
37 <li class="toclevel-1 tocsection-8"><a href="#Known_Issues_and_Limitations">Known Issues and Limitations</a></li>
38</ol>
39
40
41<h2 id="Requirements">Requirements</h2>
42<p>You must use the 1.6.3 version of the Windows and Ubuntu Display Clients with this version of the Xibo CMS.</p>
43
44<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>
45
46<h3>Xibo for Windows</h3>
47<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>
48
49<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>
50
51<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>
52
53<h2 id="Upgrading">Upgrading</h2>
54<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>
55
56<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>
57
58<ul>
59 <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>
60 <li>Backup settings.php from your installation</li>
61 <li>Manually take a backup of your database</li>
62 <li>Replace your existing installation with the new version from the tar.gz or zip file</li>
63 <li>Replace your backup settings.php file in your Xibo installation directory</li>
64 <li>Browse to <a rel="nofollow" class="external free" href="http://your.server/path">http://your.server/path</a>as normal</li>
65 <li>You will be prompted that an upgrade is required.</li>
66 <li>Enter your xibo_admin password, and follow the upgrade wizard.</li>
67 <li>The upgrade should run, and finally ask you to log in as you would normally.</li>
68</ul>
69
70<h2 id="Help">Help</h2>
71<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>
72
73<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>
74
75<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>
76
77<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>
78
79<h2 id="Bug_Fixes">Bug Fixes</h2>
80<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>
81
82<h2 id="Known_Issues_and_Limitations">Known Issues and Limitations</h2>
83<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>
084
=== modified file 'server/manual/template.php'
--- server/manual/template.php 2014-07-12 13:54:51 +0000
+++ server/manual/template.php 2014-08-21 12:09:46 +0000
@@ -7,7 +7,11 @@
7 define('PRODUCT_NAME', 'Xibo');7 define('PRODUCT_NAME', 'Xibo');
88
9 # Product Version9 # Product Version
10<<<<<<< TREE
10 define('PRODUCT_VERSION', '1.6.2');11 define('PRODUCT_VERSION', '1.6.2');
12=======
13 define('PRODUCT_VERSION', '1.6.3');
14>>>>>>> MERGE-SOURCE
1115
12 # Home page URL16 # Home page URL
13 define('PRODUCT_HOME', 'http://xibo.org.uk');17 define('PRODUCT_HOME', 'http://xibo.org.uk');
1418
=== modified file 'server/modules/preview/HtmlTemplateForGetResource.html'
--- server/modules/preview/HtmlTemplateForGetResource.html 2014-07-15 11:42:14 +0000
+++ server/modules/preview/HtmlTemplateForGetResource.html 2014-08-21 12:09:46 +0000
@@ -86,7 +86,11 @@
86* You should have received a copy of the GNU Affero General Public License86* You should have received a copy of the GNU Affero General Public License
87* along with Xibo. If not, see <http://www.gnu.org/licenses/>.87* along with Xibo. If not, see <http://www.gnu.org/licenses/>.
88*/88*/
89<<<<<<< TREE
89jQuery.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(){}}})()}90jQuery.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(){}}})()}
91=======
92jQuery.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(){}}})()}
93>>>>>>> MERGE-SOURCE
90 </script>94 </script>
91 <!--script type="text/javascript" src="modules/preview/xibo-text-render.js"></script-->95 <!--script type="text/javascript" src="modules/preview/xibo-text-render.js"></script-->
9296
9397
=== modified file 'server/modules/preview/html-preview.js'
--- server/modules/preview/html-preview.js 2014-07-12 14:17:17 +0000
+++ server/modules/preview/html-preview.js 2014-08-21 12:09:46 +0000
@@ -333,10 +333,18 @@
333 333
334 if (oldMedia) {334 if (oldMedia) {
335 $("#" + oldMedia.containerName).css("display", "none");335 $("#" + oldMedia.containerName).css("display", "none");
336336<<<<<<< TREE
337 if (oldMedia.mediaType == "video") {337
338 $("#" + oldMedia.containerName + "-vid").get(0).pause();338 if (oldMedia.mediaType == "video") {
339 }339 $("#" + oldMedia.containerName + "-vid").get(0).pause();
340 }
341=======
342
343 if (oldMedia.mediaType == "video") {
344 $("#" + oldMedia.containerName + "-vid").get(0).pause();
345 $("#" + oldMedia.containerName + "-vid").get(0).currentTime = 0;
346 }
347>>>>>>> MERGE-SOURCE
340 }348 }
341 349
342 $("#" + newMedia.containerName).css("display", "block");350 $("#" + newMedia.containerName).css("display", "block");
343351
=== modified file 'server/modules/preview/xibo-text-render.js'
--- server/modules/preview/xibo-text-render.js 2014-07-15 11:42:14 +0000
+++ server/modules/preview/xibo-text-render.js 2014-08-21 12:09:46 +0000
@@ -173,6 +173,7 @@
173 }173 }
174174
175 // Now make it size correctly175 // Now make it size correctly
176<<<<<<< TREE
176 // What IE are we?177 // What IE are we?
177 if ($("body").hasClass('ie7') || $("body").hasClass('ie8')) {178 if ($("body").hasClass('ie7') || $("body").hasClass('ie8')) {
178 $(this).css({179 $(this).css({
@@ -185,6 +186,20 @@
185 "transform-origin": "0 0"186 "transform-origin": "0 0"
186 });187 });
187 }188 }
189=======
190 // What IE are we?
191 if ($("body").hasClass('ie7') || $("body").hasClass('ie8')) {
192 $(this).css({
193 "filter": "progid:DXImageTransform.Microsoft.Matrix(M11=" + options.scaleFactor + ", M12=0, M21=0, M22=" + options.scaleFactor + ", SizingMethod='auto expand'"
194 });
195 }
196 else {
197 $(this).css({
198 "transform": "scale(" + options.scaleFactor + ")",
199 "transform-origin": "0 0"
200 });
201 }
202>>>>>>> MERGE-SOURCE
188 203
189 // 4th objective - move the items around, start the timer204 // 4th objective - move the items around, start the timer
190 // settings involved:205 // settings involved:
@@ -296,6 +311,7 @@
296 height: options.originalHeight311 height: options.originalHeight
297 });312 });
298313
314<<<<<<< TREE
299 // What IE are we?315 // What IE are we?
300 if ($("body").hasClass('ie7') || $("body").hasClass('ie8')) {316 if ($("body").hasClass('ie7') || $("body").hasClass('ie8')) {
301 $("body").css({317 $("body").css({
@@ -309,6 +325,21 @@
309 });325 });
310 }326 }
311327
328=======
329 // What IE are we?
330 if ($("body").hasClass('ie7') || $("body").hasClass('ie8')) {
331 $("body").css({
332 "filter": "progid:DXImageTransform.Microsoft.Matrix(M11=" + options.scaleFactor + ", M12=0, M21=0, M22=" + options.scaleFactor + ", SizingMethod='auto expand'"
333 });
334 }
335 else {
336 $("body").css({
337 "transform": "scale(" + options.scaleFactor + ")",
338 "transform-origin": "0 0"
339 });
340 }
341
342>>>>>>> MERGE-SOURCE
312 var numberItems = $(this).attr("totalPages");343 var numberItems = $(this).attr("totalPages");
313344
314 if (options.rowsPerPage > 0) {345 if (options.rowsPerPage > 0) {
315346
=== modified file 'server/modules/preview/xibo-webpage-render.js'
--- server/modules/preview/xibo-webpage-render.js 2014-06-30 14:28:23 +0000
+++ server/modules/preview/xibo-webpage-render.js 2014-08-21 12:09:46 +0000
@@ -1,3 +1,4 @@
1<<<<<<< TREE
1$(document).ready(function() { 2$(document).ready(function() {
23
3 isMSIE = navigator.userAgent.match(/MSIE/),4 isMSIE = navigator.userAgent.match(/MSIE/),
@@ -63,4 +64,75 @@
63 });64 });
64 }65 }
65 }66 }
66});
67\ No newline at end of file67\ No newline at end of file
68});=======
69$(document).ready(function() {
70
71 isMSIE = navigator.userAgent.match(/MSIE/),
72 MSIEVersion = navigator.userAgent.match(/MSIE (\d\.\d+)/) ? parseInt(RegExp.$1, 10) : null
73
74 if (options.previewWidth == 0 && options.previewHeight == 0) {
75 options.width = $(window).width();
76 options.height = $(window).height();
77 }
78 else {
79 // We are a preview
80 options.width = options.previewWidth;
81 options.height = options.previewHeight;
82 }
83
84 // Scale Factor
85 options.scaleFactor = Math.min(options.width / options.originalWidth, options.height / options.originalHeight);
86
87 // We need to scale the scale according to the size difference between the layout designer and the actual request size.
88 if (options.scale_override != 1) {
89 options.offsetTop = options.offsetTop * options.scaleFactor;
90 options.offsetLeft = options.offsetLeft * options.scaleFactor;
91 options.scale = options.scale * options.scaleFactor;
92 }
93
94 // Width should take into account the offset
95 options.width = parseInt(options.width) + parseInt(options.offsetLeft);
96 options.height = parseInt(options.height) + parseInt(options.offsetTop);
97
98 // Add the width and height on the wrap.
99 $("#wrap").css({
100 "overflow": "hidden",
101 "width": options.width,
102 "height": options.height
103 });
104
105 // Margins on frame
106 $("#iframe").css({
107 "margin-top": -1 * options.offsetTop,
108 "margin-left": -1 * options.offsetLeft,
109 "width": options.width,
110 "height": options.height
111 });
112
113 // Transform on the frame
114 if (options.scale != 1) {
115
116 if (isMSIE) {
117 $("#iframe").css({
118 zoom: options.scale,
119 height: parseInt((options.height / options.scale) * (1 / (MSIEVersion >= 9 ? 1 : options.scale)), 10),
120 width: parseInt((options.width / options.scale) * (1 / (MSIEVersion >= 9 ? 1 : options.scale)), 10)
121 })
122 }
123 else {
124
125 $("#iframe").css({
126 'transform-origin': "0 0",
127 '-webkit-transform-origin': "0 0",
128 '-moz-transform-origin': "0 0",
129 '-o-transform-origin': "0 0",
130 'transform': 'scale(' + options.scale + ')',
131 '-webkit-transform': 'scale(' + options.scale + ')',
132 '-moz-transform': 'scale(' + options.scale + ')',
133 '-o-transform': 'scale(' + options.scale + ')',
134 "width": options.width / options.scale,
135 "height": options.height / options.scale
136 });
137 }
138 }
139});>>>>>>> MERGE-SOURCE
68140
=== modified file 'server/theme/default/html/status_dashboard.php'
--- server/theme/default/html/status_dashboard.php 2014-06-29 14:37:07 +0000
+++ server/theme/default/html/status_dashboard.php 2014-08-21 12:09:46 +0000
@@ -28,17 +28,22 @@
28?>28?>
29<div class="row">29<div class="row">
30 <div class="span6">30 <div class="span6">
31 <h3 class="text-center">Bandwidth Usage</h3>31 <h3 class="text-center"><?php echo Theme::Translate('Bandwidth Usage'); ?></h3>
32 <div id="flot_bandwidth_chart" style="height: 400px;" class="flot-chart"></div>32 <div id="flot_bandwidth_chart" style="height: 400px;" class="flot-chart"></div>
33 </div>33 </div>
34 <div class="span6">34 <div class="span6">
35<<<<<<< TREE
35 <h3 class="text-center">Library Usage</h3>36 <h3 class="text-center">Library Usage</h3>
36 <?php echo Theme::Get('library-widget'); ?>37 <?php echo Theme::Get('library-widget'); ?>
38=======
39 <h3 class="text-center"><?php echo Theme::Translate('Library Usage'); ?></h3>
40 <?php echo Theme::Get('library-widget'); ?>
41>>>>>>> MERGE-SOURCE
37 </div>42 </div>
38</div>43</div>
39<div class="row">44<div class="row">
40 <div class="span6">45 <div class="span6">
41 <h3 class="text-center">Display Activity</h3>46 <h3 class="text-center"><?php echo Theme::Translate('Display Activity'); ?></h3>
42 <table class="table">47 <table class="table">
43 <thead>48 <thead>
44 <tr>49 <tr>
4550
=== modified file 'server/upgrade.php'
--- server/upgrade.php 2014-07-15 15:59:36 +0000
+++ server/upgrade.php 2014-08-21 12:09:46 +0000
@@ -20,10 +20,13 @@
20 */ 20 */
21DEFINE('XIBO', true);21DEFINE('XIBO', true);
2222
23<<<<<<< TREE
23if (! checkPHP()) {24if (! checkPHP()) {
24 die("Xibo requires PHP 5.3.3 or later");25 die("Xibo requires PHP 5.3.3 or later");
25}26}
2627
28=======
29>>>>>>> MERGE-SOURCE
27error_reporting(0);30error_reporting(0);
28ini_set('display_errors', 0);31ini_set('display_errors', 0);
2932
@@ -34,6 +37,12 @@
34include('config/db_config.php');37include('config/db_config.php');
35include('config/config.class.php');38include('config/config.class.php');
3639
40$config = new Config();
41
42if (!$config->CheckPHP()) {
43 die(sprintf('Xibo required PHP version %s.', Config::$VERSION_REQUIRED));
44}
45
37// Setup the translations for gettext46// Setup the translations for gettext
38require_once("lib/app/translationengine.class.php");47require_once("lib/app/translationengine.class.php");
3948
@@ -385,12 +394,15 @@
385 394
386include('install/footer.inc');395include('install/footer.inc');
387396
397<<<<<<< TREE
388# Functions398# Functions
389function checkPHP() {399function checkPHP() {
390 # Check PHP version > 5400 # Check PHP version > 5
391 return (version_compare("5.3.3",phpversion(), "<="));401 return (version_compare("5.3.3",phpversion(), "<="));
392}402}
393403
404=======
405>>>>>>> MERGE-SOURCE
394function checkMySQL() {406function checkMySQL() {
395 # Check PHP has MySQL module installed407 # Check PHP has MySQL module installed
396 return extension_loaded("mysql");408 return extension_loaded("mysql");

Subscribers

People subscribed via source and target branches