Merge branch 'master' of dev.sourcefabric.org:campcaster
This commit is contained in:
commit
d5efcac452
56 changed files with 1166 additions and 510 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -2,3 +2,4 @@
|
||||||
*.pyc
|
*.pyc
|
||||||
files/
|
files/
|
||||||
pypo/liquidsoap/liquidsoap
|
pypo/liquidsoap/liquidsoap
|
||||||
|
build/build.properties
|
||||||
|
|
|
@ -69,6 +69,7 @@
|
||||||
<actionMethod actionName="showList"/>
|
<actionMethod actionName="showList"/>
|
||||||
<actionMethod actionName="getShowData"/>
|
<actionMethod actionName="getShowData"/>
|
||||||
<actionMethod actionName="showContentDialog"/>
|
<actionMethod actionName="showContentDialog"/>
|
||||||
|
<actionMethod actionName="editShow"/>
|
||||||
</controllerFile>
|
</controllerFile>
|
||||||
<controllerFile controllerName="Api">
|
<controllerFile controllerName="Api">
|
||||||
<actionMethod actionName="index"/>
|
<actionMethod actionName="index"/>
|
||||||
|
@ -77,6 +78,9 @@
|
||||||
<actionMethod actionName="index"/>
|
<actionMethod actionName="index"/>
|
||||||
<actionMethod actionName="addUser"/>
|
<actionMethod actionName="addUser"/>
|
||||||
<actionMethod actionName="getHosts"/>
|
<actionMethod actionName="getHosts"/>
|
||||||
|
<actionMethod actionName="getUserDataTableInfo"/>
|
||||||
|
<actionMethod actionName="getUserData"/>
|
||||||
|
<actionMethod actionName="removeUser"/>
|
||||||
</controllerFile>
|
</controllerFile>
|
||||||
<controllerFile controllerName="SidePlaylist">
|
<controllerFile controllerName="SidePlaylist">
|
||||||
<actionMethod actionName="index"/>
|
<actionMethod actionName="index"/>
|
||||||
|
@ -85,6 +89,7 @@
|
||||||
<actionMethod actionName="index"/>
|
<actionMethod actionName="index"/>
|
||||||
<actionMethod actionName="getDataGridData"/>
|
<actionMethod actionName="getDataGridData"/>
|
||||||
<actionMethod actionName="livestream"/>
|
<actionMethod actionName="livestream"/>
|
||||||
|
<actionMethod actionName="dayView"/>
|
||||||
</controllerFile>
|
</controllerFile>
|
||||||
<controllerFile controllerName="Preference">
|
<controllerFile controllerName="Preference">
|
||||||
<actionMethod actionName="index"/>
|
<actionMethod actionName="index"/>
|
||||||
|
@ -288,9 +293,23 @@
|
||||||
<viewControllerScriptsDirectory forControllerName="Library">
|
<viewControllerScriptsDirectory forControllerName="Library">
|
||||||
<viewScriptFile forActionName="getFileMetaData"/>
|
<viewScriptFile forActionName="getFileMetaData"/>
|
||||||
</viewControllerScriptsDirectory>
|
</viewControllerScriptsDirectory>
|
||||||
|
<viewControllerScriptsDirectory forControllerName="Nowplaying">
|
||||||
|
<viewScriptFile forActionName="dayView"/>
|
||||||
|
</viewControllerScriptsDirectory>
|
||||||
|
<viewControllerScriptsDirectory forControllerName="User">
|
||||||
|
<viewScriptFile forActionName="getUserDataTableInfo"/>
|
||||||
|
</viewControllerScriptsDirectory>
|
||||||
|
<viewControllerScriptsDirectory forControllerName="User">
|
||||||
|
<viewScriptFile forActionName="getUserData"/>
|
||||||
|
</viewControllerScriptsDirectory>
|
||||||
|
<viewControllerScriptsDirectory forControllerName="User">
|
||||||
|
<viewScriptFile forActionName="removeUser"/>
|
||||||
<viewControllerScriptsDirectory forControllerName="Playlist">
|
<viewControllerScriptsDirectory forControllerName="Playlist">
|
||||||
<viewScriptFile forActionName="setPlaylistFades"/>
|
<viewScriptFile forActionName="setPlaylistFades"/>
|
||||||
</viewControllerScriptsDirectory>
|
</viewControllerScriptsDirectory>
|
||||||
|
<viewControllerScriptsDirectory forControllerName="Schedule">
|
||||||
|
<viewScriptFile forActionName="editShow"/>
|
||||||
|
</viewControllerScriptsDirectory>
|
||||||
</viewScriptsDirectory>
|
</viewScriptsDirectory>
|
||||||
<viewHelpersDirectory/>
|
<viewHelpersDirectory/>
|
||||||
<viewFiltersDirectory enabled="false"/>
|
<viewFiltersDirectory enabled="false"/>
|
||||||
|
|
|
@ -30,7 +30,8 @@ if (PEAR::isError($CC_DBC)) {
|
||||||
}
|
}
|
||||||
$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC);
|
$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC);
|
||||||
|
|
||||||
Zend_Session::start();
|
//Zend_Session::start();
|
||||||
|
Zend_Validate::setDefaultNamespaces("Zend");
|
||||||
|
|
||||||
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
|
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
// This file generated by Propel 1.5.2 convert-conf target
|
// This file generated by Propel 1.5.2 convert-conf target
|
||||||
// from XML runtime conf file /home/naomi/dev-campcaster/campcaster/build/runtime-conf.xml
|
// from XML runtime conf file /home/martin/workspace/airtime/build/runtime-conf.xml
|
||||||
$conf = array (
|
$conf = array (
|
||||||
'datasources' =>
|
'datasources' =>
|
||||||
array (
|
array (
|
||||||
|
@ -17,4 +17,4 @@ $conf = array (
|
||||||
'generator_version' => '1.5.2',
|
'generator_version' => '1.5.2',
|
||||||
);
|
);
|
||||||
$conf['classmap'] = include(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'classmap-airtime-conf.php');
|
$conf['classmap'] = include(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'classmap-airtime-conf.php');
|
||||||
return $conf;
|
return $conf;
|
||||||
|
|
|
@ -9,11 +9,11 @@
|
||||||
*/
|
*/
|
||||||
$pages = array(
|
$pages = array(
|
||||||
array(
|
array(
|
||||||
'label' => 'Now Playing',
|
'label' => 'Now Playing',
|
||||||
'module' => 'Nowplaying',
|
'module' => 'default',
|
||||||
'controller' => 'index',
|
'controller' => 'Nowplaying',
|
||||||
'action' => 'index',
|
'action' => 'index',
|
||||||
'order' => -100 //make sure home is the first page
|
'resource' => 'Nowplaying'
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'label' => 'Schedule',
|
'label' => 'Schedule',
|
||||||
|
|
|
@ -85,6 +85,9 @@ class LibraryController extends Zend_Controller_Action
|
||||||
'title' => 'Close');
|
'title' => 'Close');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$menu[] = array('action' => array('type' => 'ajax', 'url' => '/Playlist/metadata/format/json/id/#id#', 'callback' => 'window["createPlaylistMetaForm"]'),
|
||||||
|
'title' => 'Edit Metadata');
|
||||||
|
|
||||||
$menu[] = array('action' => array('type' => 'ajax', 'url' => '/Playlist/delete'.$params, 'callback' => 'window["deletePlaylist"]'),
|
$menu[] = array('action' => array('type' => 'ajax', 'url' => '/Playlist/delete'.$params, 'callback' => 'window["deletePlaylist"]'),
|
||||||
'title' => 'Delete');
|
'title' => 'Delete');
|
||||||
|
|
||||||
|
|
|
@ -6,27 +6,38 @@ class NowplayingController extends Zend_Controller_Action
|
||||||
public function init()
|
public function init()
|
||||||
{
|
{
|
||||||
$ajaxContext = $this->_helper->getHelper('AjaxContext');
|
$ajaxContext = $this->_helper->getHelper('AjaxContext');
|
||||||
$ajaxContext->addActionContext('get-data-grid-data', 'json')
|
$ajaxContext->addActionContext('get-data-grid-data', 'json')
|
||||||
->initContext();
|
->initContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function indexAction()
|
public function indexAction()
|
||||||
{
|
{
|
||||||
$this->view->headScript()->appendFile('/js/datatables/js/jquery.dataTables.min.js','text/javascript');
|
$this->view->headScript()->appendFile('/js/datatables/js/jquery.dataTables.min.js','text/javascript');
|
||||||
$this->view->headScript()->appendFile('/js/playlist/nowplayingdatagrid.js','text/javascript');
|
$this->view->headScript()->appendFile('/js/playlist/nowplayingdatagrid.js','text/javascript');
|
||||||
|
$this->view->headScript()->appendFile('/js/playlist/nowview.js','text/javascript');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getDataGridDataAction()
|
public function getDataGridDataAction()
|
||||||
{
|
{
|
||||||
$viewType = $this->_request->getParam('view');
|
$viewType = $this->_request->getParam('view');
|
||||||
$this->view->entries = Application_Model_Nowplaying::GetDataGridData($viewType);
|
$dateString = $this->_request->getParam('date');
|
||||||
|
$this->view->entries = Application_Model_Nowplaying::GetDataGridData($viewType, $dateString);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function livestreamAction()
|
public function livestreamAction()
|
||||||
{
|
{
|
||||||
//use bare bones layout (no header bar or menu)
|
//use bare bones layout (no header bar or menu)
|
||||||
$this->_helper->layout->setLayout('bare');
|
$this->_helper->layout->setLayout('bare');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function dayViewAction()
|
||||||
|
{
|
||||||
|
$this->view->headScript()->appendFile('/js/datatables/js/jquery.dataTables.min.js','text/javascript');
|
||||||
|
$this->view->headScript()->appendFile('/js/playlist/nowplayingdatagrid.js','text/javascript');
|
||||||
|
$this->view->headScript()->appendFile('/js/playlist/dayview.js','text/javascript');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -35,3 +46,5 @@ class NowplayingController extends Zend_Controller_Action
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@ class PlaylistController extends Zend_Controller_Action
|
||||||
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
||||||
|
|
||||||
$pl = new Playlist();
|
$pl = new Playlist();
|
||||||
$pl_id = $pl->create("Test Zend Auth");
|
$pl_id = $pl->create("Untitled Playlist");
|
||||||
$pl->setPLMetaData('dc:creator', $userInfo->login);
|
$pl->setPLMetaData('dc:creator', $userInfo->login);
|
||||||
|
|
||||||
$this->changePlaylist($pl_id);
|
$this->changePlaylist($pl_id);
|
||||||
|
|
|
@ -2,16 +2,12 @@
|
||||||
|
|
||||||
class ScheduleController extends Zend_Controller_Action
|
class ScheduleController extends Zend_Controller_Action
|
||||||
{
|
{
|
||||||
|
|
||||||
protected $sched_sess = null;
|
protected $sched_sess = null;
|
||||||
|
|
||||||
public function init()
|
public function init()
|
||||||
{
|
{
|
||||||
if(!Zend_Auth::getInstance()->hasIdentity())
|
$ajaxContext = $this->_helper->getHelper('AjaxContext');
|
||||||
{
|
|
||||||
$this->_redirect('login/index');
|
|
||||||
}
|
|
||||||
|
|
||||||
$ajaxContext = $this->_helper->getHelper('AjaxContext');
|
|
||||||
$ajaxContext->addActionContext('event-feed', 'json')
|
$ajaxContext->addActionContext('event-feed', 'json')
|
||||||
->addActionContext('make-context-menu', 'json')
|
->addActionContext('make-context-menu', 'json')
|
||||||
->addActionContext('add-show-dialog', 'json')
|
->addActionContext('add-show-dialog', 'json')
|
||||||
|
@ -26,6 +22,7 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
->addActionContext('get-current-playlist', 'json')
|
->addActionContext('get-current-playlist', 'json')
|
||||||
->addActionContext('find-playlists', 'json')
|
->addActionContext('find-playlists', 'json')
|
||||||
->addActionContext('remove-group', 'json')
|
->addActionContext('remove-group', 'json')
|
||||||
|
->addActionContext('edit-show', 'json')
|
||||||
->initContext();
|
->initContext();
|
||||||
|
|
||||||
$this->sched_sess = new Zend_Session_Namespace("schedule");
|
$this->sched_sess = new Zend_Session_Namespace("schedule");
|
||||||
|
@ -50,7 +47,7 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
$end = $this->_getParam('end', null);
|
$end = $this->_getParam('end', null);
|
||||||
|
|
||||||
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
||||||
$user = new User($userInfo->id, $userInfo->type);
|
$user = new User($userInfo->id);
|
||||||
if($user->isAdmin())
|
if($user->isAdmin())
|
||||||
$editable = true;
|
$editable = true;
|
||||||
else
|
else
|
||||||
|
@ -112,14 +109,8 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
||||||
|
|
||||||
$show = new Show(new User($userInfo->id, $userInfo->type));
|
$show = new Show(new User($userInfo->id, $userInfo->type));
|
||||||
$overlap = $show->addShow($data);
|
$show->addShow($data);
|
||||||
|
$this->_redirect('Schedule');
|
||||||
if(isset($overlap)) {
|
|
||||||
$this->view->overlap = $overlap;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$this->_redirect('Schedule');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -137,7 +128,7 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
$showInstanceId = $this->_getParam('showInstanceId');
|
$showInstanceId = $this->_getParam('showInstanceId');
|
||||||
|
|
||||||
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
||||||
$user = new User($userInfo->id, $userInfo->type);
|
$user = new User($userInfo->id);
|
||||||
|
|
||||||
if($user->isAdmin()) {
|
if($user->isAdmin()) {
|
||||||
$show = new ShowInstance($showInstanceId);
|
$show = new ShowInstance($showInstanceId);
|
||||||
|
@ -155,7 +146,7 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
$showInstanceId = $this->_getParam('showInstanceId');
|
$showInstanceId = $this->_getParam('showInstanceId');
|
||||||
|
|
||||||
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
||||||
$user = new User($userInfo->id, $userInfo->type);
|
$user = new User($userInfo->id);
|
||||||
|
|
||||||
if($user->isAdmin()) {
|
if($user->isAdmin()) {
|
||||||
$show = new ShowInstance($showInstanceId);
|
$show = new ShowInstance($showInstanceId);
|
||||||
|
@ -169,9 +160,9 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
public function deleteShowAction()
|
public function deleteShowAction()
|
||||||
{
|
{
|
||||||
$showInstanceId = $this->_getParam('id');
|
$showInstanceId = $this->_getParam('id');
|
||||||
|
|
||||||
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
||||||
$user = new User($userInfo->id, $userInfo->type);
|
$user = new User($userInfo->id);
|
||||||
|
|
||||||
if($user->isAdmin()) {
|
if($user->isAdmin()) {
|
||||||
$show = new ShowInstance($showInstanceId);
|
$show = new ShowInstance($showInstanceId);
|
||||||
|
@ -185,7 +176,7 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
$today_timestamp = date("Y-m-d H:i:s");
|
$today_timestamp = date("Y-m-d H:i:s");
|
||||||
|
|
||||||
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
||||||
$user = new User($userInfo->id, $userInfo->type);
|
$user = new User($userInfo->id);
|
||||||
|
|
||||||
$show = new ShowInstance($id);
|
$show = new ShowInstance($id);
|
||||||
|
|
||||||
|
@ -214,7 +205,7 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
|
|
||||||
public function scheduleShowAction()
|
public function scheduleShowAction()
|
||||||
{
|
{
|
||||||
$showInstanceId = $this->sched_sess->showInstanceId;
|
$showInstanceId = $this->sched_sess->showInstanceId;
|
||||||
$search = $this->_getParam('search', null);
|
$search = $this->_getParam('search', null);
|
||||||
$plId = $this->_getParam('plId');
|
$plId = $this->_getParam('plId');
|
||||||
|
|
||||||
|
@ -223,7 +214,7 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
}
|
}
|
||||||
|
|
||||||
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
||||||
$user = new User($userInfo->id, $userInfo->type);
|
$user = new User($userInfo->id);
|
||||||
$show = new ShowInstance($showInstanceId);
|
$show = new ShowInstance($showInstanceId);
|
||||||
|
|
||||||
if($user->isHost($show->getShowId())) {
|
if($user->isHost($show->getShowId())) {
|
||||||
|
@ -242,12 +233,11 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
{
|
{
|
||||||
$showInstanceId = $this->_getParam('id');
|
$showInstanceId = $this->_getParam('id');
|
||||||
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
||||||
$user = new User($userInfo->id, $userInfo->type);
|
$user = new User($userInfo->id);
|
||||||
$show = new ShowInstance($showInstanceId);
|
$show = new ShowInstance($showInstanceId);
|
||||||
|
|
||||||
if($user->isHost($show->getShowId())) {
|
if($user->isHost($show->getShowId()))
|
||||||
$show->clearShow();
|
$show->clearShow();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getCurrentPlaylistAction()
|
public function getCurrentPlaylistAction()
|
||||||
|
@ -257,8 +247,8 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
|
|
||||||
public function findPlaylistsAction()
|
public function findPlaylistsAction()
|
||||||
{
|
{
|
||||||
$post = $this->getRequest()->getPost();
|
$post = $this->getRequest()->getPost();
|
||||||
|
|
||||||
$show = new ShowInstance($this->sched_sess->showInstanceId);
|
$show = new ShowInstance($this->sched_sess->showInstanceId);
|
||||||
$playlists = $show->searchPlaylistsForShow($post);
|
$playlists = $show->searchPlaylistsForShow($post);
|
||||||
|
|
||||||
|
@ -273,7 +263,7 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
$search = $this->_getParam('search', null);
|
$search = $this->_getParam('search', null);
|
||||||
|
|
||||||
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
||||||
$user = new User($userInfo->id, $userInfo->type);
|
$user = new User($userInfo->id);
|
||||||
$show = new ShowInstance($showInstanceId);
|
$show = new ShowInstance($showInstanceId);
|
||||||
|
|
||||||
if($user->isHost($show->getShowId())) {
|
if($user->isHost($show->getShowId())) {
|
||||||
|
@ -289,7 +279,7 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
|
|
||||||
public function scheduleShowDialogAction()
|
public function scheduleShowDialogAction()
|
||||||
{
|
{
|
||||||
$showInstanceId = $this->_getParam('id');
|
$showInstanceId = $this->_getParam('id');
|
||||||
$this->sched_sess->showInstanceId = $showInstanceId;
|
$this->sched_sess->showInstanceId = $showInstanceId;
|
||||||
|
|
||||||
$show = new ShowInstance($showInstanceId);
|
$show = new ShowInstance($showInstanceId);
|
||||||
|
@ -331,13 +321,25 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
|
|
||||||
public function showContentDialogAction()
|
public function showContentDialogAction()
|
||||||
{
|
{
|
||||||
$showInstanceId = $this->_getParam('id');
|
$showInstanceId = $this->_getParam('id');
|
||||||
$show = new ShowInstance($showInstanceId);
|
$show = new ShowInstance($showInstanceId);
|
||||||
|
|
||||||
$this->view->showContent = $show->getShowListContent();
|
$this->view->showContent = $show->getShowListContent();
|
||||||
$this->view->dialog = $this->view->render('schedule/show-content-dialog.phtml');
|
$this->view->dialog = $this->view->render('schedule/show-content-dialog.phtml');
|
||||||
unset($this->view->showContent);
|
unset($this->view->showContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function editShowAction()
|
||||||
|
{
|
||||||
|
$showInstanceId = $this->_getParam('id');
|
||||||
|
$showInstance = new ShowInstance($showInstanceId);
|
||||||
|
|
||||||
|
$show = new Show($showInstance->getShowId());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -5,43 +5,89 @@ class UserController extends Zend_Controller_Action
|
||||||
|
|
||||||
public function init()
|
public function init()
|
||||||
{
|
{
|
||||||
$ajaxContext = $this->_helper->getHelper('AjaxContext');
|
$ajaxContext = $this->_helper->getHelper('AjaxContext');
|
||||||
$ajaxContext->addActionContext('get-hosts', 'json')
|
$ajaxContext->addActionContext('get-hosts', 'json')
|
||||||
->initContext();
|
->addActionContext('get-user-data-table-info', 'json')
|
||||||
|
->addActionContext('get-user-data', 'json')
|
||||||
|
->addActionContext('remove-user', 'json')
|
||||||
|
->initContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function indexAction()
|
public function indexAction()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function addUserAction()
|
public function addUserAction()
|
||||||
{
|
{
|
||||||
$request = $this->getRequest();
|
|
||||||
$form = new Application_Form_AddUser();
|
|
||||||
|
$this->view->headScript()->appendFile('/js/datatables/js/jquery.dataTables.js','text/javascript');
|
||||||
if ($request->isPost()) {
|
$this->view->headScript()->appendFile('/js/airtime/user/user.js','text/javascript');
|
||||||
if ($form->isValid($request->getPost())) {
|
$request = $this->getRequest();
|
||||||
|
$form = new Application_Form_AddUser();
|
||||||
$formdata = $form->getValues();
|
|
||||||
User::addUser($formdata);
|
if ($request->isPost()) {
|
||||||
$form->reset();
|
if ($form->isValid($request->getPost())) {
|
||||||
}
|
|
||||||
}
|
$formdata = $form->getValues();
|
||||||
|
if ($form->validateLogin($formdata)){
|
||||||
$this->view->form = $form;
|
$user = new User($formdata['user_id']);
|
||||||
|
$user->setFirstName($formdata['first_name']);
|
||||||
|
$user->setLastName($formdata['last_name']);
|
||||||
|
$user->setLogin($formdata['login']);
|
||||||
|
if ($formdata['password'] != "xxxxxx")
|
||||||
|
$user->setPassword($formdata['password']);
|
||||||
|
$user->setType($formdata['type']);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
$form->reset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->view->form = $form;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getHostsAction()
|
public function getHostsAction()
|
||||||
{
|
{
|
||||||
$search = $this->_getParam('term');
|
$search = $this->_getParam('term');
|
||||||
|
$this->view->hosts = User::getHosts($search);
|
||||||
$this->view->hosts = User::getHosts($search);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getUserDataTableInfoAction()
|
||||||
|
{
|
||||||
|
$post = $this->getRequest()->getPost();
|
||||||
|
$users = User::getUsersDataTablesInfo($post);
|
||||||
|
|
||||||
|
|
||||||
|
die(json_encode($users));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getUserDataAction()
|
||||||
|
{
|
||||||
|
$id = $this->_getParam('id');
|
||||||
|
$this->view->entries = User::GetUserData($id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function removeUserAction()
|
||||||
|
{
|
||||||
|
// action body
|
||||||
|
$id = $this->_getParam('id');
|
||||||
|
$user = new User($id);
|
||||||
|
|
||||||
|
$this->view->entries = $user->delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,8 @@ class Application_Form_AddShowRepeats extends Zend_Form_SubForm
|
||||||
//Add type select
|
//Add type select
|
||||||
$this->addElement('select', 'add_show_repeat_type', array(
|
$this->addElement('select', 'add_show_repeat_type', array(
|
||||||
'required' => true,
|
'required' => true,
|
||||||
'label' => 'Repeat Type:',
|
'label' => 'Repeat Type:',
|
||||||
|
'class' => ' input_select',
|
||||||
'multiOptions' => array(
|
'multiOptions' => array(
|
||||||
"0" => "weekly",
|
"0" => "weekly",
|
||||||
"1" => "bi-weekly",
|
"1" => "bi-weekly",
|
||||||
|
|
|
@ -5,56 +5,78 @@ class Application_Form_AddUser extends Zend_Form
|
||||||
|
|
||||||
public function init()
|
public function init()
|
||||||
{
|
{
|
||||||
// Add login element
|
/*
|
||||||
$this->addElement('text', 'login', array(
|
$this->addElementPrefixPath('Application_Validate',
|
||||||
'label' => 'Username:',
|
'../application/validate',
|
||||||
'required' => true,
|
'validate');
|
||||||
'filters' => array('StringTrim'),
|
* */
|
||||||
'validators' => array('NotEmpty')
|
|
||||||
));
|
$hidden = new Zend_Form_Element_Hidden('user_id');
|
||||||
|
$hidden->setAttrib('style', 'display: none;');
|
||||||
// Add password element
|
$this->addElement($hidden);
|
||||||
$this->addElement('text', 'password', array(
|
|
||||||
'label' => 'Password:',
|
$login = new Zend_Form_Element_Text('login');
|
||||||
'required' => true,
|
$login->setLabel('Username:');
|
||||||
'filters' => array('StringTrim'),
|
$login->setAttrib('class', 'input_text');
|
||||||
'validators' => array('NotEmpty')
|
$login->setRequired(true);
|
||||||
));
|
$login->addFilter('StringTrim');
|
||||||
|
//$login->addValidator('UserNameValidate');
|
||||||
// Add first name element
|
$this->addElement($login);
|
||||||
$this->addElement('text', 'first_name', array(
|
|
||||||
'label' => 'Firstname:',
|
$password = new Zend_Form_Element_Password('password');
|
||||||
'required' => true,
|
$password->setLabel('Password:');
|
||||||
'filters' => array('StringTrim'),
|
$password->setAttrib('class', 'input_text');
|
||||||
'validators' => array('NotEmpty')
|
$password->setRequired(true);
|
||||||
));
|
$password->addFilter('StringTrim');
|
||||||
|
$password->addValidator('NotEmpty');
|
||||||
// Add last name element
|
$this->addElement($password);
|
||||||
$this->addElement('text', 'last_name', array(
|
|
||||||
'label' => 'Lastname:',
|
$firstName = new Zend_Form_Element_Text('first_name');
|
||||||
'required' => true,
|
$firstName->setLabel('Firstname:');
|
||||||
'filters' => array('StringTrim'),
|
$firstName->setAttrib('class', 'input_text');
|
||||||
'validators' => array('NotEmpty')
|
$firstName->setRequired(true);
|
||||||
));
|
$firstName->addFilter('StringTrim');
|
||||||
|
$firstName->addValidator('NotEmpty');
|
||||||
//Add type select
|
$this->addElement($firstName);
|
||||||
$this->addElement('select', 'type', array(
|
|
||||||
'required' => true,
|
$lastName = new Zend_Form_Element_Text('last_name');
|
||||||
'multiOptions' => array(
|
$lastName->setLabel('Lastname:');
|
||||||
"A" => "admin",
|
$lastName->setAttrib('class', 'input_text');
|
||||||
|
$lastName->setRequired(true);
|
||||||
|
$lastName->addFilter('StringTrim');
|
||||||
|
$lastName->addValidator('NotEmpty');
|
||||||
|
$this->addElement($lastName);
|
||||||
|
|
||||||
|
$select = new Zend_Form_Element_Select('type');
|
||||||
|
$select->setAttrib('class', 'input_select');
|
||||||
|
$select->setAttrib('style', 'width: 40%');
|
||||||
|
$select->setMultiOptions(array(
|
||||||
|
"A" => "admin",
|
||||||
"H" => "host",
|
"H" => "host",
|
||||||
"G" => "guest",
|
"G" => "guest",
|
||||||
),
|
));
|
||||||
));
|
$select->setRequired(true);
|
||||||
|
$this->addElement($select);
|
||||||
// Add the submit button
|
|
||||||
$this->addElement('submit', 'submit', array(
|
$submit = new Zend_Form_Element_Submit('submit');
|
||||||
'ignore' => true,
|
$submit->setAttrib('class', 'ui-button ui-state-default right-floated');
|
||||||
'label' => 'Submit',
|
$submit->setIgnore(true);
|
||||||
));
|
$submit->setLabel('submit');
|
||||||
|
$this->addElement($submit);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function validateLogin($data){
|
||||||
|
|
||||||
|
if (strlen($data['user_id']) == 0){
|
||||||
|
$count = CcSubjsQuery::create()->filterByDbLogin($data['login'])->count();
|
||||||
|
|
||||||
|
if ($count != 0){
|
||||||
|
$this->getElement('login')->setErrors(array("login name is not unique."));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,14 @@ class Application_Model_DateHelper
|
||||||
return date("Y-m-d H:i:s", $this->_timestamp);
|
return date("Y-m-d H:i:s", $this->_timestamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getTime(){
|
||||||
|
return date("H:i:s", $this->_timestamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
function setDate($dateString){
|
||||||
|
$this->_timestamp = strtotime($dateString);
|
||||||
|
}
|
||||||
|
|
||||||
function getNowDayStartDiff(){
|
function getNowDayStartDiff(){
|
||||||
$dayStartTS = strtotime(date("Y-m-d", $this->_timestamp));
|
$dayStartTS = strtotime(date("Y-m-d", $this->_timestamp));
|
||||||
return $this->_timestamp - $dayStartTS;
|
return $this->_timestamp - $dayStartTS;
|
||||||
|
|
|
@ -4,8 +4,11 @@ class Application_Model_Nowplaying
|
||||||
{
|
{
|
||||||
|
|
||||||
public static function InsertBlankRow($i, $rows){
|
public static function InsertBlankRow($i, $rows){
|
||||||
$startDate = explode(".", $rows[$i-1][3]);
|
$startDateFull = $rows[$i-1][3];
|
||||||
$endDate = explode(".", $rows[$i][2]);
|
$endDateFull = $rows[$i][2];
|
||||||
|
|
||||||
|
$startDate = explode(".", $startDateFull);
|
||||||
|
$endDate = explode(".", $endDateFull);
|
||||||
|
|
||||||
$epochStartMS = strtotime($startDate[0])*1000;
|
$epochStartMS = strtotime($startDate[0])*1000;
|
||||||
$epochEndMS = strtotime($endDate[0])*1000;
|
$epochEndMS = strtotime($endDate[0])*1000;
|
||||||
|
@ -15,7 +18,7 @@ class Application_Model_Nowplaying
|
||||||
if (count($endDate) > 1)
|
if (count($endDate) > 1)
|
||||||
$epochEndMS += $endDate[1];
|
$epochEndMS += $endDate[1];
|
||||||
|
|
||||||
$blankRow = array(array("b", "-", "-", "-", Application_Model_DateHelper::ConvertMSToHHMMSSmm($epochEndMS - $epochStartMS), "-", "-", "-", "-" , "-", "", ""));
|
$blankRow = array(array("b", $startDateFull, $startDateFull, $endDate, Application_Model_DateHelper::ConvertMSToHHMMSSmm($epochEndMS - $epochStartMS), "-", "-", "-", "-" , "-", "", ""));
|
||||||
array_splice($rows, $i, 0, $blankRow);
|
array_splice($rows, $i, 0, $blankRow);
|
||||||
return $rows;
|
return $rows;
|
||||||
}
|
}
|
||||||
|
@ -42,13 +45,14 @@ class Application_Model_Nowplaying
|
||||||
return $rows;
|
return $rows;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function GetDataGridData($viewType){
|
public static function GetDataGridData($viewType, $dateString){
|
||||||
|
|
||||||
$date = Schedule::GetSchedulerTime();
|
|
||||||
$timeNow = $date->getDate();
|
|
||||||
|
|
||||||
|
//echo $dateString;
|
||||||
if ($viewType == "now"){
|
if ($viewType == "now"){
|
||||||
|
|
||||||
|
$date = new Application_Model_DateHelper;
|
||||||
|
$timeNow = $date->getDate();
|
||||||
|
|
||||||
/* When do "ORDER BY x DESC LIMIT 5" to ensure that we get the last 5 previously scheduled items.
|
/* When do "ORDER BY x DESC LIMIT 5" to ensure that we get the last 5 previously scheduled items.
|
||||||
* However using DESC, puts our scheduled items in reverse order, so we need to reverse it again
|
* However using DESC, puts our scheduled items in reverse order, so we need to reverse it again
|
||||||
* with array_reverse.
|
* with array_reverse.
|
||||||
|
@ -57,6 +61,10 @@ class Application_Model_Nowplaying
|
||||||
$current = Schedule::Get_Scheduled_Item_Data($timeNow, 0);
|
$current = Schedule::Get_Scheduled_Item_Data($timeNow, 0);
|
||||||
$next = Schedule::Get_Scheduled_Item_Data($timeNow, 1, 10, "24 hours");
|
$next = Schedule::Get_Scheduled_Item_Data($timeNow, 1, 10, "24 hours");
|
||||||
} else {
|
} else {
|
||||||
|
$date = new Application_Model_DateHelper;
|
||||||
|
$time = $date->getTime();
|
||||||
|
$date->setDate($dateString." ".$time);
|
||||||
|
$timeNow = $date->getDate();
|
||||||
|
|
||||||
$previous = array_reverse(Schedule::Get_Scheduled_Item_Data($timeNow, -1, "ALL", $date->getNowDayStartDiff()." seconds"));
|
$previous = array_reverse(Schedule::Get_Scheduled_Item_Data($timeNow, -1, "ALL", $date->getNowDayStartDiff()." seconds"));
|
||||||
$current = Schedule::Get_Scheduled_Item_Data($timeNow, 0);
|
$current = Schedule::Get_Scheduled_Item_Data($timeNow, 0);
|
||||||
|
|
|
@ -419,21 +419,6 @@ class Schedule {
|
||||||
return $rows;
|
return $rows;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the date of the server in the format
|
|
||||||
* "YYYY-MM-DD HH:mm:SS".
|
|
||||||
*
|
|
||||||
* Note: currently assuming that Web Server and Scheduler are on the
|
|
||||||
* same host.
|
|
||||||
*
|
|
||||||
* @return date Current server time.
|
|
||||||
*/
|
|
||||||
public static function GetSchedulerTime() {
|
|
||||||
$date = new Application_Model_DateHelper;
|
|
||||||
return $date;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns data related to the scheduled items.
|
* Returns data related to the scheduled items.
|
||||||
*
|
*
|
||||||
|
@ -447,7 +432,7 @@ class Schedule {
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
|
|
||||||
$date = Schedule::GetSchedulerTime();
|
$date = new Application_Model_DateHelper;
|
||||||
$timeNow = $date->getDate();
|
$timeNow = $date->getDate();
|
||||||
return array("env"=>APPLICATION_ENV,
|
return array("env"=>APPLICATION_ENV,
|
||||||
"schedulerTime"=>gmdate("Y-m-d H:i:s"),
|
"schedulerTime"=>gmdate("Y-m-d H:i:s"),
|
||||||
|
|
|
@ -11,16 +11,44 @@ class Show {
|
||||||
|
|
||||||
public function getName() {
|
public function getName() {
|
||||||
$show = CcShowQuery::create()->findPK($this->_showId);
|
$show = CcShowQuery::create()->findPK($this->_showId);
|
||||||
|
|
||||||
return $show->getDbName();
|
return $show->getDbName();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setName($name) {
|
public function setName($name) {
|
||||||
$show = CcShowQuery::create()->findPK($this->_showId);
|
$show = CcShowQuery::create()->findPK($this->_showId);
|
||||||
|
|
||||||
$show->setDbName($name);
|
$show->setDbName($name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getDescription() {
|
||||||
|
$show = CcShowQuery::create()->findPK($this->_showId);
|
||||||
|
return $show->getDbDescription();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setDescription($description) {
|
||||||
|
$show = CcShowQuery::create()->findPK($this->_showId);
|
||||||
|
$show->setDbDescription($description);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getColor() {
|
||||||
|
$show = CcShowQuery::create()->findPK($this->_showId);
|
||||||
|
return $show->getDbColor();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setColor($color) {
|
||||||
|
$show = CcShowQuery::create()->findPK($this->_showId);
|
||||||
|
$show->setDbColor($color);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getBackgroundColor() {
|
||||||
|
$show = CcShowQuery::create()->findPK($this->_showId);
|
||||||
|
return $show->getDbBackgroundColor();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setBackgroundColor($backgroundColor) {
|
||||||
|
$show = CcShowQuery::create()->findPK($this->_showId);
|
||||||
|
$show->setDbBackgroundColor($backgroundColor);
|
||||||
|
}
|
||||||
|
|
||||||
//end dates are non inclusive.
|
//end dates are non inclusive.
|
||||||
public static function addShow($data) {
|
public static function addShow($data) {
|
||||||
|
|
||||||
|
|
|
@ -1797,7 +1797,7 @@ class StoredFile {
|
||||||
return StoredFile::searchFiles($fromTable, $datatables);
|
return StoredFile::searchFiles($fromTable, $datatables);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function searchFiles($fromTable, $data)
|
public static function searchFiles($fromTable, $data)
|
||||||
{
|
{
|
||||||
global $CC_CONFIG, $CC_DBC;
|
global $CC_CONFIG, $CC_DBC;
|
||||||
|
|
||||||
|
|
|
@ -2,41 +2,92 @@
|
||||||
|
|
||||||
class User {
|
class User {
|
||||||
|
|
||||||
private $_userRole;
|
private $_userInstance;
|
||||||
private $_userId;
|
|
||||||
|
|
||||||
public function __construct($userId, $userType='G')
|
public function __construct($userId)
|
||||||
{
|
{
|
||||||
$this->_userRole = $userType;
|
if (strlen($userId)==0){
|
||||||
$this->_userId = $userId;
|
$this->_userInstance = $this->createUser();
|
||||||
|
} else {
|
||||||
|
$this->_userInstance = CcSubjsQuery::create()->findPK($userId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getType() {
|
|
||||||
return $this->userRole;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getId() {
|
public function getId() {
|
||||||
return $this->_userId;
|
return $this->_userInstance->getDbId();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isHost($showId) {
|
public function isHost($showId) {
|
||||||
return CcShowHostsQuery::create()->filterByDbShow($showId)->filterByDbHost($this->_userId)->count() > 0;
|
$userId = $this->_userInstance->getDbId();
|
||||||
|
return CcShowHostsQuery::create()->filterByDbShow($showId)->filterByDbHost($userId)->count() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isAdmin() {
|
public function isAdmin() {
|
||||||
return $this->_userRole === 'A';
|
return $this->_userInstance->getDbType() === 'A';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setLogin($login){
|
||||||
|
$user = $this->_userInstance;
|
||||||
|
$user->setDbLogin($login);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setPassword($password){
|
||||||
|
$user = $this->_userInstance;
|
||||||
|
$user->setDbPass(md5($password));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setFirstName($firstName){
|
||||||
|
$user = $this->_userInstance;
|
||||||
|
$user->setDbFirstName($firstName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setLastName($lastName){
|
||||||
|
$user = $this->_userInstance;
|
||||||
|
$user->setDbLastName($lastName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setType($type){
|
||||||
|
$user = $this->_userInstance;
|
||||||
|
$user->setDbType($type);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getLogin(){
|
||||||
|
$user = $this->_userInstance;
|
||||||
|
return $user->getDbLogin();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getPassword(){
|
||||||
|
$user = $this->_userInstance;
|
||||||
|
return $user->getDbPass();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getFirstName(){
|
||||||
|
$user = $this->_userInstance;
|
||||||
|
return $user->getDbFirstName();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getLastName(){
|
||||||
|
$user = $this->_userInstance;
|
||||||
|
return $user->getDbLastName();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getType(){
|
||||||
|
$user = $this->_userInstance;
|
||||||
|
return $user->getDbType();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function save(){
|
||||||
|
$this->_userInstance->save();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function delete(){
|
||||||
|
if (!$this->_userInstance->isDeleted())
|
||||||
|
$this->_userInstance->delete();
|
||||||
|
}
|
||||||
|
|
||||||
public static function addUser($data) {
|
private function createUser() {
|
||||||
|
$user = new CcSubjs();
|
||||||
$user = new CcSubjs();
|
return $user;
|
||||||
$user->setDbLogin($data['login']);
|
|
||||||
$user->setDbPass(md5($data['password']));
|
|
||||||
$user->setDbFirstName($data['first_name']);
|
|
||||||
$user->setDbLastName($data['last_name']);
|
|
||||||
$user->setDbType($data['type']);
|
|
||||||
$user->save();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getUsers($type, $search=NULL) {
|
public static function getUsers($type, $search=NULL) {
|
||||||
|
@ -71,5 +122,21 @@ class User {
|
||||||
public static function getHosts($search=NULL) {
|
public static function getHosts($search=NULL) {
|
||||||
return User::getUsers(array('H', 'A'), $search);
|
return User::getUsers(array('H', 'A'), $search);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getUsersDataTablesInfo($datatables_post) {
|
||||||
|
|
||||||
|
$fromTable = "cc_subjs";
|
||||||
|
return StoredFile::searchFiles($fromTable, $datatables_post);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getUserData($id){
|
||||||
|
global $CC_DBC;
|
||||||
|
|
||||||
|
$sql = "SELECT login, first_name, last_name, type, id"
|
||||||
|
." FROM cc_subjs"
|
||||||
|
." WHERE id = $id";
|
||||||
|
|
||||||
|
return $CC_DBC->GetRow($sql);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,6 +46,9 @@ class CcSubjsTableMap extends TableMap {
|
||||||
$this->addColumn('LAST_NAME', 'DbLastName', 'VARCHAR', true, 255, '');
|
$this->addColumn('LAST_NAME', 'DbLastName', 'VARCHAR', true, 255, '');
|
||||||
$this->addColumn('LASTLOGIN', 'DbLastlogin', 'TIMESTAMP', false, null, null);
|
$this->addColumn('LASTLOGIN', 'DbLastlogin', 'TIMESTAMP', false, null, null);
|
||||||
$this->addColumn('LASTFAIL', 'DbLastfail', 'TIMESTAMP', false, null, null);
|
$this->addColumn('LASTFAIL', 'DbLastfail', 'TIMESTAMP', false, null, null);
|
||||||
|
$this->addColumn('SKYPE_CONTACT', 'DbSkypeContact', 'VARCHAR', false, 255, null);
|
||||||
|
$this->addColumn('JABBER_CONTACT', 'DbJabberContact', 'VARCHAR', false, 255, null);
|
||||||
|
$this->addColumn('EMAIL', 'DbEmail', 'VARCHAR', false, 255, null);
|
||||||
// validators
|
// validators
|
||||||
} // initialize()
|
} // initialize()
|
||||||
|
|
||||||
|
|
|
@ -77,6 +77,24 @@ abstract class BaseCcSubjs extends BaseObject implements Persistent
|
||||||
*/
|
*/
|
||||||
protected $lastfail;
|
protected $lastfail;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The value for the skype_contact field.
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $skype_contact;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The value for the jabber_contact field.
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $jabber_contact;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The value for the email field.
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $email;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array CcAccess[] Collection to store aggregation of CcAccess objects.
|
* @var array CcAccess[] Collection to store aggregation of CcAccess objects.
|
||||||
*/
|
*/
|
||||||
|
@ -277,6 +295,36 @@ abstract class BaseCcSubjs extends BaseObject implements Persistent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the [skype_contact] column value.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getDbSkypeContact()
|
||||||
|
{
|
||||||
|
return $this->skype_contact;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the [jabber_contact] column value.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getDbJabberContact()
|
||||||
|
{
|
||||||
|
return $this->jabber_contact;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the [email] column value.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getDbEmail()
|
||||||
|
{
|
||||||
|
return $this->email;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the value of [id] column.
|
* Set the value of [id] column.
|
||||||
*
|
*
|
||||||
|
@ -495,6 +543,66 @@ abstract class BaseCcSubjs extends BaseObject implements Persistent
|
||||||
return $this;
|
return $this;
|
||||||
} // setDbLastfail()
|
} // setDbLastfail()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the value of [skype_contact] column.
|
||||||
|
*
|
||||||
|
* @param string $v new value
|
||||||
|
* @return CcSubjs The current object (for fluent API support)
|
||||||
|
*/
|
||||||
|
public function setDbSkypeContact($v)
|
||||||
|
{
|
||||||
|
if ($v !== null) {
|
||||||
|
$v = (string) $v;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->skype_contact !== $v) {
|
||||||
|
$this->skype_contact = $v;
|
||||||
|
$this->modifiedColumns[] = CcSubjsPeer::SKYPE_CONTACT;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
} // setDbSkypeContact()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the value of [jabber_contact] column.
|
||||||
|
*
|
||||||
|
* @param string $v new value
|
||||||
|
* @return CcSubjs The current object (for fluent API support)
|
||||||
|
*/
|
||||||
|
public function setDbJabberContact($v)
|
||||||
|
{
|
||||||
|
if ($v !== null) {
|
||||||
|
$v = (string) $v;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->jabber_contact !== $v) {
|
||||||
|
$this->jabber_contact = $v;
|
||||||
|
$this->modifiedColumns[] = CcSubjsPeer::JABBER_CONTACT;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
} // setDbJabberContact()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the value of [email] column.
|
||||||
|
*
|
||||||
|
* @param string $v new value
|
||||||
|
* @return CcSubjs The current object (for fluent API support)
|
||||||
|
*/
|
||||||
|
public function setDbEmail($v)
|
||||||
|
{
|
||||||
|
if ($v !== null) {
|
||||||
|
$v = (string) $v;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->email !== $v) {
|
||||||
|
$this->email = $v;
|
||||||
|
$this->modifiedColumns[] = CcSubjsPeer::EMAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
} // setDbEmail()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Indicates whether the columns in this object are only set to default values.
|
* Indicates whether the columns in this object are only set to default values.
|
||||||
*
|
*
|
||||||
|
@ -555,6 +663,9 @@ abstract class BaseCcSubjs extends BaseObject implements Persistent
|
||||||
$this->last_name = ($row[$startcol + 5] !== null) ? (string) $row[$startcol + 5] : null;
|
$this->last_name = ($row[$startcol + 5] !== null) ? (string) $row[$startcol + 5] : null;
|
||||||
$this->lastlogin = ($row[$startcol + 6] !== null) ? (string) $row[$startcol + 6] : null;
|
$this->lastlogin = ($row[$startcol + 6] !== null) ? (string) $row[$startcol + 6] : null;
|
||||||
$this->lastfail = ($row[$startcol + 7] !== null) ? (string) $row[$startcol + 7] : null;
|
$this->lastfail = ($row[$startcol + 7] !== null) ? (string) $row[$startcol + 7] : null;
|
||||||
|
$this->skype_contact = ($row[$startcol + 8] !== null) ? (string) $row[$startcol + 8] : null;
|
||||||
|
$this->jabber_contact = ($row[$startcol + 9] !== null) ? (string) $row[$startcol + 9] : null;
|
||||||
|
$this->email = ($row[$startcol + 10] !== null) ? (string) $row[$startcol + 10] : null;
|
||||||
$this->resetModified();
|
$this->resetModified();
|
||||||
|
|
||||||
$this->setNew(false);
|
$this->setNew(false);
|
||||||
|
@ -563,7 +674,7 @@ abstract class BaseCcSubjs extends BaseObject implements Persistent
|
||||||
$this->ensureConsistency();
|
$this->ensureConsistency();
|
||||||
}
|
}
|
||||||
|
|
||||||
return $startcol + 8; // 8 = CcSubjsPeer::NUM_COLUMNS - CcSubjsPeer::NUM_LAZY_LOAD_COLUMNS).
|
return $startcol + 11; // 11 = CcSubjsPeer::NUM_COLUMNS - CcSubjsPeer::NUM_LAZY_LOAD_COLUMNS).
|
||||||
|
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
throw new PropelException("Error populating CcSubjs object", $e);
|
throw new PropelException("Error populating CcSubjs object", $e);
|
||||||
|
@ -1012,6 +1123,15 @@ abstract class BaseCcSubjs extends BaseObject implements Persistent
|
||||||
case 7:
|
case 7:
|
||||||
return $this->getDbLastfail();
|
return $this->getDbLastfail();
|
||||||
break;
|
break;
|
||||||
|
case 8:
|
||||||
|
return $this->getDbSkypeContact();
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
return $this->getDbJabberContact();
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
return $this->getDbEmail();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
break;
|
break;
|
||||||
|
@ -1043,6 +1163,9 @@ abstract class BaseCcSubjs extends BaseObject implements Persistent
|
||||||
$keys[5] => $this->getDbLastName(),
|
$keys[5] => $this->getDbLastName(),
|
||||||
$keys[6] => $this->getDbLastlogin(),
|
$keys[6] => $this->getDbLastlogin(),
|
||||||
$keys[7] => $this->getDbLastfail(),
|
$keys[7] => $this->getDbLastfail(),
|
||||||
|
$keys[8] => $this->getDbSkypeContact(),
|
||||||
|
$keys[9] => $this->getDbJabberContact(),
|
||||||
|
$keys[10] => $this->getDbEmail(),
|
||||||
);
|
);
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
@ -1098,6 +1221,15 @@ abstract class BaseCcSubjs extends BaseObject implements Persistent
|
||||||
case 7:
|
case 7:
|
||||||
$this->setDbLastfail($value);
|
$this->setDbLastfail($value);
|
||||||
break;
|
break;
|
||||||
|
case 8:
|
||||||
|
$this->setDbSkypeContact($value);
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
$this->setDbJabberContact($value);
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
$this->setDbEmail($value);
|
||||||
|
break;
|
||||||
} // switch()
|
} // switch()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1130,6 +1262,9 @@ abstract class BaseCcSubjs extends BaseObject implements Persistent
|
||||||
if (array_key_exists($keys[5], $arr)) $this->setDbLastName($arr[$keys[5]]);
|
if (array_key_exists($keys[5], $arr)) $this->setDbLastName($arr[$keys[5]]);
|
||||||
if (array_key_exists($keys[6], $arr)) $this->setDbLastlogin($arr[$keys[6]]);
|
if (array_key_exists($keys[6], $arr)) $this->setDbLastlogin($arr[$keys[6]]);
|
||||||
if (array_key_exists($keys[7], $arr)) $this->setDbLastfail($arr[$keys[7]]);
|
if (array_key_exists($keys[7], $arr)) $this->setDbLastfail($arr[$keys[7]]);
|
||||||
|
if (array_key_exists($keys[8], $arr)) $this->setDbSkypeContact($arr[$keys[8]]);
|
||||||
|
if (array_key_exists($keys[9], $arr)) $this->setDbJabberContact($arr[$keys[9]]);
|
||||||
|
if (array_key_exists($keys[10], $arr)) $this->setDbEmail($arr[$keys[10]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1149,6 +1284,9 @@ abstract class BaseCcSubjs extends BaseObject implements Persistent
|
||||||
if ($this->isColumnModified(CcSubjsPeer::LAST_NAME)) $criteria->add(CcSubjsPeer::LAST_NAME, $this->last_name);
|
if ($this->isColumnModified(CcSubjsPeer::LAST_NAME)) $criteria->add(CcSubjsPeer::LAST_NAME, $this->last_name);
|
||||||
if ($this->isColumnModified(CcSubjsPeer::LASTLOGIN)) $criteria->add(CcSubjsPeer::LASTLOGIN, $this->lastlogin);
|
if ($this->isColumnModified(CcSubjsPeer::LASTLOGIN)) $criteria->add(CcSubjsPeer::LASTLOGIN, $this->lastlogin);
|
||||||
if ($this->isColumnModified(CcSubjsPeer::LASTFAIL)) $criteria->add(CcSubjsPeer::LASTFAIL, $this->lastfail);
|
if ($this->isColumnModified(CcSubjsPeer::LASTFAIL)) $criteria->add(CcSubjsPeer::LASTFAIL, $this->lastfail);
|
||||||
|
if ($this->isColumnModified(CcSubjsPeer::SKYPE_CONTACT)) $criteria->add(CcSubjsPeer::SKYPE_CONTACT, $this->skype_contact);
|
||||||
|
if ($this->isColumnModified(CcSubjsPeer::JABBER_CONTACT)) $criteria->add(CcSubjsPeer::JABBER_CONTACT, $this->jabber_contact);
|
||||||
|
if ($this->isColumnModified(CcSubjsPeer::EMAIL)) $criteria->add(CcSubjsPeer::EMAIL, $this->email);
|
||||||
|
|
||||||
return $criteria;
|
return $criteria;
|
||||||
}
|
}
|
||||||
|
@ -1217,6 +1355,9 @@ abstract class BaseCcSubjs extends BaseObject implements Persistent
|
||||||
$copyObj->setDbLastName($this->last_name);
|
$copyObj->setDbLastName($this->last_name);
|
||||||
$copyObj->setDbLastlogin($this->lastlogin);
|
$copyObj->setDbLastlogin($this->lastlogin);
|
||||||
$copyObj->setDbLastfail($this->lastfail);
|
$copyObj->setDbLastfail($this->lastfail);
|
||||||
|
$copyObj->setDbSkypeContact($this->skype_contact);
|
||||||
|
$copyObj->setDbJabberContact($this->jabber_contact);
|
||||||
|
$copyObj->setDbEmail($this->email);
|
||||||
|
|
||||||
if ($deepCopy) {
|
if ($deepCopy) {
|
||||||
// important: temporarily setNew(false) because this affects the behavior of
|
// important: temporarily setNew(false) because this affects the behavior of
|
||||||
|
@ -2111,6 +2252,9 @@ abstract class BaseCcSubjs extends BaseObject implements Persistent
|
||||||
$this->last_name = null;
|
$this->last_name = null;
|
||||||
$this->lastlogin = null;
|
$this->lastlogin = null;
|
||||||
$this->lastfail = null;
|
$this->lastfail = null;
|
||||||
|
$this->skype_contact = null;
|
||||||
|
$this->jabber_contact = null;
|
||||||
|
$this->email = null;
|
||||||
$this->alreadyInSave = false;
|
$this->alreadyInSave = false;
|
||||||
$this->alreadyInValidation = false;
|
$this->alreadyInValidation = false;
|
||||||
$this->clearAllReferences();
|
$this->clearAllReferences();
|
||||||
|
|
|
@ -26,7 +26,7 @@ abstract class BaseCcSubjsPeer {
|
||||||
const TM_CLASS = 'CcSubjsTableMap';
|
const TM_CLASS = 'CcSubjsTableMap';
|
||||||
|
|
||||||
/** The total number of columns. */
|
/** The total number of columns. */
|
||||||
const NUM_COLUMNS = 8;
|
const NUM_COLUMNS = 11;
|
||||||
|
|
||||||
/** The number of lazy-loaded columns. */
|
/** The number of lazy-loaded columns. */
|
||||||
const NUM_LAZY_LOAD_COLUMNS = 0;
|
const NUM_LAZY_LOAD_COLUMNS = 0;
|
||||||
|
@ -55,6 +55,15 @@ abstract class BaseCcSubjsPeer {
|
||||||
/** the column name for the LASTFAIL field */
|
/** the column name for the LASTFAIL field */
|
||||||
const LASTFAIL = 'cc_subjs.LASTFAIL';
|
const LASTFAIL = 'cc_subjs.LASTFAIL';
|
||||||
|
|
||||||
|
/** the column name for the SKYPE_CONTACT field */
|
||||||
|
const SKYPE_CONTACT = 'cc_subjs.SKYPE_CONTACT';
|
||||||
|
|
||||||
|
/** the column name for the JABBER_CONTACT field */
|
||||||
|
const JABBER_CONTACT = 'cc_subjs.JABBER_CONTACT';
|
||||||
|
|
||||||
|
/** the column name for the EMAIL field */
|
||||||
|
const EMAIL = 'cc_subjs.EMAIL';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An identiy map to hold any loaded instances of CcSubjs objects.
|
* An identiy map to hold any loaded instances of CcSubjs objects.
|
||||||
* This must be public so that other peer classes can access this when hydrating from JOIN
|
* This must be public so that other peer classes can access this when hydrating from JOIN
|
||||||
|
@ -71,12 +80,12 @@ abstract class BaseCcSubjsPeer {
|
||||||
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
|
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
|
||||||
*/
|
*/
|
||||||
private static $fieldNames = array (
|
private static $fieldNames = array (
|
||||||
BasePeer::TYPE_PHPNAME => array ('DbId', 'DbLogin', 'DbPass', 'DbType', 'DbFirstName', 'DbLastName', 'DbLastlogin', 'DbLastfail', ),
|
BasePeer::TYPE_PHPNAME => array ('DbId', 'DbLogin', 'DbPass', 'DbType', 'DbFirstName', 'DbLastName', 'DbLastlogin', 'DbLastfail', 'DbSkypeContact', 'DbJabberContact', 'DbEmail', ),
|
||||||
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbLogin', 'dbPass', 'dbType', 'dbFirstName', 'dbLastName', 'dbLastlogin', 'dbLastfail', ),
|
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbLogin', 'dbPass', 'dbType', 'dbFirstName', 'dbLastName', 'dbLastlogin', 'dbLastfail', 'dbSkypeContact', 'dbJabberContact', 'dbEmail', ),
|
||||||
BasePeer::TYPE_COLNAME => array (self::ID, self::LOGIN, self::PASS, self::TYPE, self::FIRST_NAME, self::LAST_NAME, self::LASTLOGIN, self::LASTFAIL, ),
|
BasePeer::TYPE_COLNAME => array (self::ID, self::LOGIN, self::PASS, self::TYPE, self::FIRST_NAME, self::LAST_NAME, self::LASTLOGIN, self::LASTFAIL, self::SKYPE_CONTACT, self::JABBER_CONTACT, self::EMAIL, ),
|
||||||
BasePeer::TYPE_RAW_COLNAME => array ('ID', 'LOGIN', 'PASS', 'TYPE', 'FIRST_NAME', 'LAST_NAME', 'LASTLOGIN', 'LASTFAIL', ),
|
BasePeer::TYPE_RAW_COLNAME => array ('ID', 'LOGIN', 'PASS', 'TYPE', 'FIRST_NAME', 'LAST_NAME', 'LASTLOGIN', 'LASTFAIL', 'SKYPE_CONTACT', 'JABBER_CONTACT', 'EMAIL', ),
|
||||||
BasePeer::TYPE_FIELDNAME => array ('id', 'login', 'pass', 'type', 'first_name', 'last_name', 'lastlogin', 'lastfail', ),
|
BasePeer::TYPE_FIELDNAME => array ('id', 'login', 'pass', 'type', 'first_name', 'last_name', 'lastlogin', 'lastfail', 'skype_contact', 'jabber_contact', 'email', ),
|
||||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, )
|
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, )
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -86,12 +95,12 @@ abstract class BaseCcSubjsPeer {
|
||||||
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
|
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
|
||||||
*/
|
*/
|
||||||
private static $fieldKeys = array (
|
private static $fieldKeys = array (
|
||||||
BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbLogin' => 1, 'DbPass' => 2, 'DbType' => 3, 'DbFirstName' => 4, 'DbLastName' => 5, 'DbLastlogin' => 6, 'DbLastfail' => 7, ),
|
BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbLogin' => 1, 'DbPass' => 2, 'DbType' => 3, 'DbFirstName' => 4, 'DbLastName' => 5, 'DbLastlogin' => 6, 'DbLastfail' => 7, 'DbSkypeContact' => 8, 'DbJabberContact' => 9, 'DbEmail' => 10, ),
|
||||||
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbLogin' => 1, 'dbPass' => 2, 'dbType' => 3, 'dbFirstName' => 4, 'dbLastName' => 5, 'dbLastlogin' => 6, 'dbLastfail' => 7, ),
|
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbLogin' => 1, 'dbPass' => 2, 'dbType' => 3, 'dbFirstName' => 4, 'dbLastName' => 5, 'dbLastlogin' => 6, 'dbLastfail' => 7, 'dbSkypeContact' => 8, 'dbJabberContact' => 9, 'dbEmail' => 10, ),
|
||||||
BasePeer::TYPE_COLNAME => array (self::ID => 0, self::LOGIN => 1, self::PASS => 2, self::TYPE => 3, self::FIRST_NAME => 4, self::LAST_NAME => 5, self::LASTLOGIN => 6, self::LASTFAIL => 7, ),
|
BasePeer::TYPE_COLNAME => array (self::ID => 0, self::LOGIN => 1, self::PASS => 2, self::TYPE => 3, self::FIRST_NAME => 4, self::LAST_NAME => 5, self::LASTLOGIN => 6, self::LASTFAIL => 7, self::SKYPE_CONTACT => 8, self::JABBER_CONTACT => 9, self::EMAIL => 10, ),
|
||||||
BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'LOGIN' => 1, 'PASS' => 2, 'TYPE' => 3, 'FIRST_NAME' => 4, 'LAST_NAME' => 5, 'LASTLOGIN' => 6, 'LASTFAIL' => 7, ),
|
BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'LOGIN' => 1, 'PASS' => 2, 'TYPE' => 3, 'FIRST_NAME' => 4, 'LAST_NAME' => 5, 'LASTLOGIN' => 6, 'LASTFAIL' => 7, 'SKYPE_CONTACT' => 8, 'JABBER_CONTACT' => 9, 'EMAIL' => 10, ),
|
||||||
BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'login' => 1, 'pass' => 2, 'type' => 3, 'first_name' => 4, 'last_name' => 5, 'lastlogin' => 6, 'lastfail' => 7, ),
|
BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'login' => 1, 'pass' => 2, 'type' => 3, 'first_name' => 4, 'last_name' => 5, 'lastlogin' => 6, 'lastfail' => 7, 'skype_contact' => 8, 'jabber_contact' => 9, 'email' => 10, ),
|
||||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, )
|
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, )
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -171,6 +180,9 @@ abstract class BaseCcSubjsPeer {
|
||||||
$criteria->addSelectColumn(CcSubjsPeer::LAST_NAME);
|
$criteria->addSelectColumn(CcSubjsPeer::LAST_NAME);
|
||||||
$criteria->addSelectColumn(CcSubjsPeer::LASTLOGIN);
|
$criteria->addSelectColumn(CcSubjsPeer::LASTLOGIN);
|
||||||
$criteria->addSelectColumn(CcSubjsPeer::LASTFAIL);
|
$criteria->addSelectColumn(CcSubjsPeer::LASTFAIL);
|
||||||
|
$criteria->addSelectColumn(CcSubjsPeer::SKYPE_CONTACT);
|
||||||
|
$criteria->addSelectColumn(CcSubjsPeer::JABBER_CONTACT);
|
||||||
|
$criteria->addSelectColumn(CcSubjsPeer::EMAIL);
|
||||||
} else {
|
} else {
|
||||||
$criteria->addSelectColumn($alias . '.ID');
|
$criteria->addSelectColumn($alias . '.ID');
|
||||||
$criteria->addSelectColumn($alias . '.LOGIN');
|
$criteria->addSelectColumn($alias . '.LOGIN');
|
||||||
|
@ -180,6 +192,9 @@ abstract class BaseCcSubjsPeer {
|
||||||
$criteria->addSelectColumn($alias . '.LAST_NAME');
|
$criteria->addSelectColumn($alias . '.LAST_NAME');
|
||||||
$criteria->addSelectColumn($alias . '.LASTLOGIN');
|
$criteria->addSelectColumn($alias . '.LASTLOGIN');
|
||||||
$criteria->addSelectColumn($alias . '.LASTFAIL');
|
$criteria->addSelectColumn($alias . '.LASTFAIL');
|
||||||
|
$criteria->addSelectColumn($alias . '.SKYPE_CONTACT');
|
||||||
|
$criteria->addSelectColumn($alias . '.JABBER_CONTACT');
|
||||||
|
$criteria->addSelectColumn($alias . '.EMAIL');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,9 @@
|
||||||
* @method CcSubjsQuery orderByDbLastName($order = Criteria::ASC) Order by the last_name column
|
* @method CcSubjsQuery orderByDbLastName($order = Criteria::ASC) Order by the last_name column
|
||||||
* @method CcSubjsQuery orderByDbLastlogin($order = Criteria::ASC) Order by the lastlogin column
|
* @method CcSubjsQuery orderByDbLastlogin($order = Criteria::ASC) Order by the lastlogin column
|
||||||
* @method CcSubjsQuery orderByDbLastfail($order = Criteria::ASC) Order by the lastfail column
|
* @method CcSubjsQuery orderByDbLastfail($order = Criteria::ASC) Order by the lastfail column
|
||||||
|
* @method CcSubjsQuery orderByDbSkypeContact($order = Criteria::ASC) Order by the skype_contact column
|
||||||
|
* @method CcSubjsQuery orderByDbJabberContact($order = Criteria::ASC) Order by the jabber_contact column
|
||||||
|
* @method CcSubjsQuery orderByDbEmail($order = Criteria::ASC) Order by the email column
|
||||||
*
|
*
|
||||||
* @method CcSubjsQuery groupByDbId() Group by the id column
|
* @method CcSubjsQuery groupByDbId() Group by the id column
|
||||||
* @method CcSubjsQuery groupByDbLogin() Group by the login column
|
* @method CcSubjsQuery groupByDbLogin() Group by the login column
|
||||||
|
@ -23,6 +26,9 @@
|
||||||
* @method CcSubjsQuery groupByDbLastName() Group by the last_name column
|
* @method CcSubjsQuery groupByDbLastName() Group by the last_name column
|
||||||
* @method CcSubjsQuery groupByDbLastlogin() Group by the lastlogin column
|
* @method CcSubjsQuery groupByDbLastlogin() Group by the lastlogin column
|
||||||
* @method CcSubjsQuery groupByDbLastfail() Group by the lastfail column
|
* @method CcSubjsQuery groupByDbLastfail() Group by the lastfail column
|
||||||
|
* @method CcSubjsQuery groupByDbSkypeContact() Group by the skype_contact column
|
||||||
|
* @method CcSubjsQuery groupByDbJabberContact() Group by the jabber_contact column
|
||||||
|
* @method CcSubjsQuery groupByDbEmail() Group by the email column
|
||||||
*
|
*
|
||||||
* @method CcSubjsQuery leftJoin($relation) Adds a LEFT JOIN clause to the query
|
* @method CcSubjsQuery leftJoin($relation) Adds a LEFT JOIN clause to the query
|
||||||
* @method CcSubjsQuery rightJoin($relation) Adds a RIGHT JOIN clause to the query
|
* @method CcSubjsQuery rightJoin($relation) Adds a RIGHT JOIN clause to the query
|
||||||
|
@ -67,6 +73,9 @@
|
||||||
* @method CcSubjs findOneByDbLastName(string $last_name) Return the first CcSubjs filtered by the last_name column
|
* @method CcSubjs findOneByDbLastName(string $last_name) Return the first CcSubjs filtered by the last_name column
|
||||||
* @method CcSubjs findOneByDbLastlogin(string $lastlogin) Return the first CcSubjs filtered by the lastlogin column
|
* @method CcSubjs findOneByDbLastlogin(string $lastlogin) Return the first CcSubjs filtered by the lastlogin column
|
||||||
* @method CcSubjs findOneByDbLastfail(string $lastfail) Return the first CcSubjs filtered by the lastfail column
|
* @method CcSubjs findOneByDbLastfail(string $lastfail) Return the first CcSubjs filtered by the lastfail column
|
||||||
|
* @method CcSubjs findOneByDbSkypeContact(string $skype_contact) Return the first CcSubjs filtered by the skype_contact column
|
||||||
|
* @method CcSubjs findOneByDbJabberContact(string $jabber_contact) Return the first CcSubjs filtered by the jabber_contact column
|
||||||
|
* @method CcSubjs findOneByDbEmail(string $email) Return the first CcSubjs filtered by the email column
|
||||||
*
|
*
|
||||||
* @method array findByDbId(int $id) Return CcSubjs objects filtered by the id column
|
* @method array findByDbId(int $id) Return CcSubjs objects filtered by the id column
|
||||||
* @method array findByDbLogin(string $login) Return CcSubjs objects filtered by the login column
|
* @method array findByDbLogin(string $login) Return CcSubjs objects filtered by the login column
|
||||||
|
@ -76,6 +85,9 @@
|
||||||
* @method array findByDbLastName(string $last_name) Return CcSubjs objects filtered by the last_name column
|
* @method array findByDbLastName(string $last_name) Return CcSubjs objects filtered by the last_name column
|
||||||
* @method array findByDbLastlogin(string $lastlogin) Return CcSubjs objects filtered by the lastlogin column
|
* @method array findByDbLastlogin(string $lastlogin) Return CcSubjs objects filtered by the lastlogin column
|
||||||
* @method array findByDbLastfail(string $lastfail) Return CcSubjs objects filtered by the lastfail column
|
* @method array findByDbLastfail(string $lastfail) Return CcSubjs objects filtered by the lastfail column
|
||||||
|
* @method array findByDbSkypeContact(string $skype_contact) Return CcSubjs objects filtered by the skype_contact column
|
||||||
|
* @method array findByDbJabberContact(string $jabber_contact) Return CcSubjs objects filtered by the jabber_contact column
|
||||||
|
* @method array findByDbEmail(string $email) Return CcSubjs objects filtered by the email column
|
||||||
*
|
*
|
||||||
* @package propel.generator.airtime.om
|
* @package propel.generator.airtime.om
|
||||||
*/
|
*/
|
||||||
|
@ -374,6 +386,72 @@ abstract class BaseCcSubjsQuery extends ModelCriteria
|
||||||
return $this->addUsingAlias(CcSubjsPeer::LASTFAIL, $dbLastfail, $comparison);
|
return $this->addUsingAlias(CcSubjsPeer::LASTFAIL, $dbLastfail, $comparison);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter the query on the skype_contact column
|
||||||
|
*
|
||||||
|
* @param string $dbSkypeContact The value to use as filter.
|
||||||
|
* Accepts wildcards (* and % trigger a LIKE)
|
||||||
|
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
||||||
|
*
|
||||||
|
* @return CcSubjsQuery The current query, for fluid interface
|
||||||
|
*/
|
||||||
|
public function filterByDbSkypeContact($dbSkypeContact = null, $comparison = null)
|
||||||
|
{
|
||||||
|
if (null === $comparison) {
|
||||||
|
if (is_array($dbSkypeContact)) {
|
||||||
|
$comparison = Criteria::IN;
|
||||||
|
} elseif (preg_match('/[\%\*]/', $dbSkypeContact)) {
|
||||||
|
$dbSkypeContact = str_replace('*', '%', $dbSkypeContact);
|
||||||
|
$comparison = Criteria::LIKE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $this->addUsingAlias(CcSubjsPeer::SKYPE_CONTACT, $dbSkypeContact, $comparison);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter the query on the jabber_contact column
|
||||||
|
*
|
||||||
|
* @param string $dbJabberContact The value to use as filter.
|
||||||
|
* Accepts wildcards (* and % trigger a LIKE)
|
||||||
|
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
||||||
|
*
|
||||||
|
* @return CcSubjsQuery The current query, for fluid interface
|
||||||
|
*/
|
||||||
|
public function filterByDbJabberContact($dbJabberContact = null, $comparison = null)
|
||||||
|
{
|
||||||
|
if (null === $comparison) {
|
||||||
|
if (is_array($dbJabberContact)) {
|
||||||
|
$comparison = Criteria::IN;
|
||||||
|
} elseif (preg_match('/[\%\*]/', $dbJabberContact)) {
|
||||||
|
$dbJabberContact = str_replace('*', '%', $dbJabberContact);
|
||||||
|
$comparison = Criteria::LIKE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $this->addUsingAlias(CcSubjsPeer::JABBER_CONTACT, $dbJabberContact, $comparison);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter the query on the email column
|
||||||
|
*
|
||||||
|
* @param string $dbEmail The value to use as filter.
|
||||||
|
* Accepts wildcards (* and % trigger a LIKE)
|
||||||
|
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
||||||
|
*
|
||||||
|
* @return CcSubjsQuery The current query, for fluid interface
|
||||||
|
*/
|
||||||
|
public function filterByDbEmail($dbEmail = null, $comparison = null)
|
||||||
|
{
|
||||||
|
if (null === $comparison) {
|
||||||
|
if (is_array($dbEmail)) {
|
||||||
|
$comparison = Criteria::IN;
|
||||||
|
} elseif (preg_match('/[\%\*]/', $dbEmail)) {
|
||||||
|
$dbEmail = str_replace('*', '%', $dbEmail);
|
||||||
|
$comparison = Criteria::LIKE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $this->addUsingAlias(CcSubjsPeer::EMAIL, $dbEmail, $comparison);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filter the query by a related CcAccess object
|
* Filter the query by a related CcAccess object
|
||||||
*
|
*
|
||||||
|
|
26
application/validate/UserNameValidate.php
Normal file
26
application/validate/UserNameValidate.php
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class Application_Validate_UserNameValidate extends Zend_Validate_Abstract
|
||||||
|
{
|
||||||
|
const LOGIN = 'login';
|
||||||
|
|
||||||
|
protected $_messageTemplates = array(
|
||||||
|
self::LOGIN => "'%value%' is already taken"
|
||||||
|
);
|
||||||
|
|
||||||
|
public function isValid($value)
|
||||||
|
{
|
||||||
|
$this->_setValue($value);
|
||||||
|
|
||||||
|
$count = CcSubjsQuery::create()->filterByDbLogin($value)->count();
|
||||||
|
|
||||||
|
if ($count != 0) {
|
||||||
|
$this->_error(self::LOGIN);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
|
@ -10,5 +10,5 @@
|
||||||
</label>
|
</label>
|
||||||
<?php $i=$i+1 ?>
|
<?php $i=$i+1 ?>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
<?php echo $this->formErrors($this->element->getMessages()) ?>
|
<?php if($this->element->hasErrors()) { echo $this->formErrors($this->element->getMessages());} ?>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
|
@ -9,8 +9,5 @@
|
||||||
$this->element->getAttribs()
|
$this->element->getAttribs()
|
||||||
) ?>
|
) ?>
|
||||||
|
|
||||||
<?php if($this->element->hasErrors()) {
|
<?php if($this->element->hasErrors()) { echo $this->formErrors($this->element->getMessages());} ?>
|
||||||
echo $this->formErrors($this->element->getMessages());
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</dd>
|
</dd>
|
||||||
|
|
5
application/views/scripts/nowplaying/day-view.phtml
Normal file
5
application/views/scripts/nowplaying/day-view.phtml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<div class="button-bar-top">
|
||||||
|
Date:<input type="text" id="datepicker" class="input_text">
|
||||||
|
<a href="javascript:void(0)" class="toggle-button" id="now_view">Now View</a><a href="javascript:void(0)" class="toggle-button-active end-button" id="day_view">Day View</a>
|
||||||
|
</div>
|
||||||
|
<div id='demo'></div>
|
|
@ -1,2 +1,4 @@
|
||||||
<div style="text-align:right;"><a href="javascript:void(0);" onclick="setViewType(0)">Now View</a> | <a href="javascript:void(0);" onclick="setViewType(1)">Day View</a></div>
|
<div class="button-bar-top">
|
||||||
|
<a href="javascript:void(0)" class="toggle-button-active" id="now_view">Now View</a><a href="javascript:void(0)" class="toggle-button end-button" id="day_view">Day View</a>
|
||||||
|
</div>
|
||||||
<div id='demo'></div>
|
<div id='demo'></div>
|
||||||
|
|
|
@ -1,4 +1 @@
|
||||||
<?php
|
<?php echo $this->form; ?>
|
||||||
|
|
||||||
$this->form->setAction($this->url());
|
|
||||||
echo $this->form;
|
|
||||||
|
|
|
@ -1,38 +1,28 @@
|
||||||
<div class="wrapper" id="content">
|
<form id="add-show-form" method="post" action="">
|
||||||
<form method="post" action="">
|
<div id="schedule-add-show" class="tabs ui-widget ui-widget-content block-shadow alpha-block padded">
|
||||||
<div id="schedule-add-show" class="tabs ui-widget ui-widget-content block-shadow alpha-block padded">
|
<div class="button-bar">
|
||||||
<ul>
|
<button id="add-show-submit" class="right-floated">Add this show</button>
|
||||||
<li><a href="#schedule-show-what"><span>What</span></a></li>
|
<button id="add-show-close" class="right-floated">Close</button>
|
||||||
<li><a href="#schedule-show-when"><span>When</span></a></li>
|
</div>
|
||||||
<li><a href="#schedule-show-who"><span>Who</span></a></li>
|
<div class="clear"></div>
|
||||||
<li><a href="#schedule-show-style"><span>Style</span></a></li>
|
<div id="schedule-show-what">
|
||||||
</ul>
|
<?php echo $this->what ?>
|
||||||
<div class="button-bar">
|
</div>
|
||||||
<button id="add-show-submit" class="right-floated">Add this show</button></div>
|
<h3 class="collapsible-header"><span class="arrow-icon"></span>When</h3>
|
||||||
<div class="clear"></div>
|
<div id="schedule-show-when" class="collapsible-content">
|
||||||
|
<?php echo $this->when ?>
|
||||||
|
<?php echo $this->repeats ?>
|
||||||
|
</div>
|
||||||
|
<h3 class="collapsible-header"><span class="arrow-icon"></span>Who</h3>
|
||||||
|
<div id="schedule-show-who" class="collapsible-content">
|
||||||
|
<?php echo $this->who ?>
|
||||||
|
</div>
|
||||||
|
<h3 class="collapsible-header"><span class="arrow-icon"></span>Style</h3>
|
||||||
|
<div id="schedule-show-style" class="collapsible-content">
|
||||||
|
<?php echo $this->style ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
<?php if(isset($this->overlap)) : ?>
|
<div id="fullcalendar_show_display" class="ui-widget-content block-shadow omega-block padded"></div>
|
||||||
<div id="schedule-add-show-overlap" style="display:block;">
|
|
||||||
<div>Overlap</div>
|
|
||||||
<?php echo $this->partialLoop('schedule/show-overlap.phtml', $this->overlap); ?>
|
|
||||||
</div>
|
|
||||||
<?php endif;?>
|
|
||||||
|
|
||||||
<div id="schedule-show-what">
|
|
||||||
<?php echo $this->what ?>
|
|
||||||
</div>
|
|
||||||
<div id="schedule-show-when">
|
|
||||||
<?php echo $this->when ?>
|
|
||||||
<?php echo $this->repeats ?>
|
|
||||||
</div>
|
|
||||||
<div id="schedule-show-who">
|
|
||||||
<?php echo $this->who ?>
|
|
||||||
</div>
|
|
||||||
<div id="schedule-show-style">
|
|
||||||
<?php echo $this->style ?>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<div id="fullcalendar_show_display" class="ui-widget-content block-shadow omega-block padded"></div>
|
|
||||||
</div>
|
|
||||||
|
|
11
application/views/scripts/schedule/edit-show.phtml
Normal file
11
application/views/scripts/schedule/edit-show.phtml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<div>
|
||||||
|
<div id="schedule-show-what">
|
||||||
|
<?php echo $this->what ?>
|
||||||
|
</div>
|
||||||
|
<div id="schedule-show-who">
|
||||||
|
<?php echo $this->who ?>
|
||||||
|
</div>
|
||||||
|
<div id="schedule-show-style">
|
||||||
|
<?php echo $this->style ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -1,4 +0,0 @@
|
||||||
<div>
|
|
||||||
<span><?php echo $this->name ?></span>
|
|
||||||
<span><?php echo $this->start_time ?></span>-<span><?php echo $this->end_time ?></span>
|
|
||||||
</div>
|
|
|
@ -1,3 +1,33 @@
|
||||||
<?php
|
<div class=
|
||||||
|
"ui-widget ui-widget-content block-shadow clearfix padded-strong user-management">
|
||||||
echo $this->form;
|
<h2>
|
||||||
|
Manage users
|
||||||
|
</h2>
|
||||||
|
<div class="user-list-wrapper">
|
||||||
|
<div id="users_wrapper" class="dataTables_wrapper">
|
||||||
|
|
||||||
|
<div class="button-holder">
|
||||||
|
<button type="button" id="add_user_button" name=
|
||||||
|
"search_add_group" class="ui-button ui-widget ui-state-default ui-button-text-icon-primary">
|
||||||
|
<span class="ui-button-text">Add user</span></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<table cellspacing="0" cellpadding="0" style="" id="users_datatable" class="datatable">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>id</th>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>Role</th>
|
||||||
|
<th>Delete</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody></tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="user-data simple-formblock" id="user_details">
|
||||||
|
<fieldset class="padded">
|
||||||
|
<?php echo $this->form ?>
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
<br /><br /><center>View script for controller <b>User</b> and script/action name <b>getUserDataTableInfo</b></center>
|
3
application/views/scripts/user/get-user-data.phtml
Normal file
3
application/views/scripts/user/get-user-data.phtml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<?php
|
||||||
|
echo $this->entries;
|
||||||
|
?>
|
3
application/views/scripts/user/remove-user.phtml
Normal file
3
application/views/scripts/user/remove-user.phtml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<?php
|
||||||
|
echo this->entries;
|
||||||
|
?>
|
|
@ -264,6 +264,9 @@
|
||||||
<column name="last_name" phpName="DbLastName" type="VARCHAR" size="255" required="true" defaultValue=""/>
|
<column name="last_name" phpName="DbLastName" type="VARCHAR" size="255" required="true" defaultValue=""/>
|
||||||
<column name="lastlogin" phpName="DbLastlogin" type="TIMESTAMP" required="false"/>
|
<column name="lastlogin" phpName="DbLastlogin" type="TIMESTAMP" required="false"/>
|
||||||
<column name="lastfail" phpName="DbLastfail" type="TIMESTAMP" required="false"/>
|
<column name="lastfail" phpName="DbLastfail" type="TIMESTAMP" required="false"/>
|
||||||
|
<column name="skype_contact" phpName="DbSkypeContact" type="VARCHAR" required="false"/>
|
||||||
|
<column name="jabber_contact" phpName="DbJabberContact" type="VARCHAR" required="false"/>
|
||||||
|
<column name="email" phpName="DbEmail" type="VARCHAR" required="false"/>
|
||||||
<unique name="cc_subjs_id_idx">
|
<unique name="cc_subjs_id_idx">
|
||||||
<unique-column name="id"/>
|
<unique-column name="id"/>
|
||||||
</unique>
|
</unique>
|
||||||
|
|
|
@ -402,6 +402,9 @@ CREATE TABLE "cc_subjs"
|
||||||
"last_name" VARCHAR(255) default '' NOT NULL,
|
"last_name" VARCHAR(255) default '' NOT NULL,
|
||||||
"lastlogin" TIMESTAMP,
|
"lastlogin" TIMESTAMP,
|
||||||
"lastfail" TIMESTAMP,
|
"lastfail" TIMESTAMP,
|
||||||
|
"skype_contact" VARCHAR(255),
|
||||||
|
"jabber_contact" VARCHAR(255),
|
||||||
|
"email" VARCHAR(255),
|
||||||
PRIMARY KEY ("id"),
|
PRIMARY KEY ("id"),
|
||||||
CONSTRAINT "cc_subjs_id_idx" UNIQUE ("id"),
|
CONSTRAINT "cc_subjs_id_idx" UNIQUE ("id"),
|
||||||
CONSTRAINT "cc_subjs_login_idx" UNIQUE ("login")
|
CONSTRAINT "cc_subjs_login_idx" UNIQUE ("login")
|
||||||
|
|
|
@ -15,40 +15,72 @@ if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
require_once(dirname(__FILE__).'/../application/configs/conf.php');
|
require_once(dirname(__FILE__).'/../application/configs/conf.php');
|
||||||
require_once(dirname(__FILE__).'/../application/models/GreenBox.php');
|
require_once(dirname(__FILE__).'/../application/models/GreenBox.php');
|
||||||
//require_once(dirname(__FILE__).'/../application/models/cron/Cron.php');
|
require_once(dirname(__FILE__).'/installInit.php');
|
||||||
require_once(dirname(__FILE__)."/installInit.php");
|
|
||||||
|
|
||||||
// Need to check that we are superuser before running this.
|
function checkIfRoot(){
|
||||||
if(exec("whoami") != "root"){
|
// Need to check that we are superuser before running this.
|
||||||
echo "Must be root user.\n";
|
if(exec("whoami") != "root"){
|
||||||
exit(1);
|
echo "Must be root user.\n";
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Need to check if build.properties project home is set correctly.
|
// Need to check if build.properties project home is set correctly.
|
||||||
|
function setBuildPropertiesPath(){
|
||||||
|
$property = 'project.home';
|
||||||
|
$lines = file('../build/build.properties');
|
||||||
|
foreach ($lines as $key => &$line) {
|
||||||
|
if ($property == substr($line, 0, strlen($property))){
|
||||||
|
$line = $property." = ".realpath(__dir__.'/../')."\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$property = 'project.home';
|
$fp=fopen('../build/build.properties', 'w');
|
||||||
$lines = file('../build/build.properties');
|
foreach($lines as $key => $line){
|
||||||
foreach ($lines as $key => &$line) {
|
fwrite($fp, $line);
|
||||||
if ($property == substr($line, 0, strlen($property))){
|
}
|
||||||
$line = $property." = ".realpath(__dir__.'/../')."\n";
|
fclose($fp);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$fp=fopen('../build/build.properties', 'w');
|
function directorySetup($CC_CONFIG){
|
||||||
foreach($lines as $key => $line){
|
//------------------------------------------------------------------------
|
||||||
fwrite($fp, $line);
|
// Install storage directories
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
echo " *** Directory Setup ***\n";
|
||||||
|
foreach (array('baseFilesDir', 'storageDir') as $d) {
|
||||||
|
$test = file_exists($CC_CONFIG[$d]);
|
||||||
|
if ( $test === FALSE ) {
|
||||||
|
@mkdir($CC_CONFIG[$d], 02775);
|
||||||
|
if (file_exists($CC_CONFIG[$d])) {
|
||||||
|
$rp = realpath($CC_CONFIG[$d]);
|
||||||
|
echo " * Directory $rp created\n";
|
||||||
|
} else {
|
||||||
|
echo " * Failed creating {$CC_CONFIG[$d]}\n";
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
} elseif (is_writable($CC_CONFIG[$d])) {
|
||||||
|
$rp = realpath($CC_CONFIG[$d]);
|
||||||
|
echo " * Skipping directory already exists: $rp\n";
|
||||||
|
} else {
|
||||||
|
$rp = realpath($CC_CONFIG[$d]);
|
||||||
|
echo " * WARNING: Directory already exists, but is not writable: $rp\n";
|
||||||
|
//exit(1);
|
||||||
|
}
|
||||||
|
$CC_CONFIG[$d] = $rp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
fclose($fp);
|
|
||||||
|
|
||||||
|
|
||||||
|
checkIfRoot();
|
||||||
|
setBuildPropertiesPath();
|
||||||
|
|
||||||
echo "******************************** Install Begin *********************************\n";
|
echo "******************************** Install Begin *********************************\n";
|
||||||
|
|
||||||
echo " *** Database Installation ***\n";
|
echo " *** Database Installation ***\n";
|
||||||
|
|
||||||
//sudo -u postgres createuser --no-superuser --no-createdb --no-createrole -A -P myuser
|
|
||||||
|
|
||||||
// Create the database user
|
// Create the database user
|
||||||
$command = "sudo -u postgres psql postgres --command \"CREATE USER {$CC_CONFIG['dsn']['username']} "
|
$command = "sudo -u postgres psql postgres --command \"CREATE USER {$CC_CONFIG['dsn']['username']} "
|
||||||
|
@ -86,148 +118,18 @@ if ($langIsInstalled == '0') {
|
||||||
echo " * Creating database tables\n";
|
echo " * Creating database tables\n";
|
||||||
// Put Propel sql files in Database
|
// Put Propel sql files in Database
|
||||||
$command = __DIR__."/../library/propel/generator/bin/propel-gen ../build/ insert-sql 2>propel-error.log";
|
$command = __DIR__."/../library/propel/generator/bin/propel-gen ../build/ insert-sql 2>propel-error.log";
|
||||||
//echo $command."\n";
|
|
||||||
@exec($command, $output, $results);
|
@exec($command, $output, $results);
|
||||||
|
|
||||||
|
directorySetup($CC_CONFIG);
|
||||||
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
// Install default data
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
echo " *** Inserting Default Users ***\n";
|
|
||||||
|
|
||||||
// Add the "Station Preferences" group
|
|
||||||
if (!empty($CC_CONFIG['StationPrefsGr'])) {
|
|
||||||
if (!Subjects::GetSubjId('scheduler')) {
|
|
||||||
echo " * Creating group '".$CC_CONFIG['StationPrefsGr']."'...";
|
|
||||||
$stPrefGr = Subjects::AddSubj($CC_CONFIG['StationPrefsGr']);
|
|
||||||
Subjects::AddSubjectToGroup('root', $CC_CONFIG['StationPrefsGr']);
|
|
||||||
echo "done.\n";
|
|
||||||
} else {
|
|
||||||
echo " * Skipping: group already exists: '".$CC_CONFIG['StationPrefsGr']."'\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add the root user if it doesnt exist yet.
|
|
||||||
//$rootUid = Subjects::GetSubjId('root');
|
|
||||||
//if (!$rootUid) {
|
|
||||||
// echo " * Creating user 'root'...";
|
|
||||||
// $rootUid = BasicStor::addSubj("root", $CC_CONFIG['tmpRootPass']);
|
|
||||||
|
|
||||||
// Add root user to the admin group
|
|
||||||
//$r = Subjects::AddSubjectToGroup('root', $CC_CONFIG['AdminsGr']);
|
|
||||||
//if (PEAR::isError($r)) {
|
|
||||||
//return $r;
|
|
||||||
//}
|
|
||||||
// echo "done.\n";
|
|
||||||
//} else {
|
|
||||||
// echo " * Skipping: user already exists: 'root'\n";
|
|
||||||
//}
|
|
||||||
|
|
||||||
// Create the user named 'scheduler'.
|
|
||||||
if (!Subjects::GetSubjId('scheduler')) {
|
|
||||||
echo " * Creating user 'scheduler'...";
|
|
||||||
$subid = Subjects::AddSubj('scheduler', $CC_CONFIG['schedulerPass']);
|
|
||||||
$res = Alib::AddPerm($subid, 'read', '0', 'A');
|
|
||||||
//$r = Subjects::AddSubjectToGroup('scheduler', $CC_CONFIG['AllGr']);
|
|
||||||
echo "done.\n";
|
|
||||||
} else {
|
|
||||||
echo " * Skipping: user already exists: 'scheduler'\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Need to add 'scheduler' to group StationPrefs
|
|
||||||
Subjects::AddSubjectToGroup('scheduler', $CC_CONFIG['StationPrefsGr']);
|
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
// Install storage directories
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
echo " *** Directory Setup ***\n";
|
|
||||||
foreach (array('baseFilesDir', 'storageDir') as $d) {
|
|
||||||
$test = file_exists($CC_CONFIG[$d]);
|
|
||||||
if ( $test === FALSE ) {
|
|
||||||
@mkdir($CC_CONFIG[$d], 02775);
|
|
||||||
if (file_exists($CC_CONFIG[$d])) {
|
|
||||||
$rp = realpath($CC_CONFIG[$d]);
|
|
||||||
echo " * Directory $rp created\n";
|
|
||||||
} else {
|
|
||||||
echo " * Failed creating {$CC_CONFIG[$d]}\n";
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
} elseif (is_writable($CC_CONFIG[$d])) {
|
|
||||||
$rp = realpath($CC_CONFIG[$d]);
|
|
||||||
echo " * Skipping directory already exists: $rp\n";
|
|
||||||
} else {
|
|
||||||
$rp = realpath($CC_CONFIG[$d]);
|
|
||||||
echo " * WARNING: Directory already exists, but is not writable: $rp\n";
|
|
||||||
//exit(1);
|
|
||||||
}
|
|
||||||
$CC_CONFIG[$d] = $rp;
|
|
||||||
}
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
// Storage directory writability test
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
|
|
||||||
//echo " * Testing writability of ".$CC_CONFIG['storageDir']."...";
|
|
||||||
//if (!($fp = @fopen($CC_CONFIG['storageDir']."/_writeTest", 'w'))) {
|
|
||||||
// echo "\nPlease make directory {$CC_CONFIG['storageDir']} writeable by your webserver".
|
|
||||||
// "\nand run install again\n\n";
|
|
||||||
// exit(1);
|
|
||||||
//} else {
|
|
||||||
// fclose($fp);
|
|
||||||
// unlink($CC_CONFIG['storageDir']."/_writeTest");
|
|
||||||
//}
|
|
||||||
//echo "done.\n";
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// Make sure the Smarty Templates Compiled directory has the right perms
|
|
||||||
//
|
|
||||||
echo " * Setting dir permissions...\n";
|
echo " * Setting dir permissions...\n";
|
||||||
//install_setDirPermissions($CC_CONFIG["smartyTemplateCompiled"]);
|
|
||||||
install_setDirPermissions($CC_CONFIG["storageDir"]);
|
install_setDirPermissions($CC_CONFIG["storageDir"]);
|
||||||
//install_setDirPermissions($CC_CONFIG["bufferDir"]);
|
|
||||||
//install_setDirPermissions($CC_CONFIG["transDir"]);
|
|
||||||
//install_setDirPermissions($CC_CONFIG["accessDir"]);
|
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
// Install Cron job
|
|
||||||
//------------------------------------------------------------------------
|
|
||||||
//$m = '*/2';
|
|
||||||
//$h ='*';
|
|
||||||
//$dom = '*';
|
|
||||||
//$mon = '*';
|
|
||||||
//$dow = '*';
|
|
||||||
//$command = realpath("{$CC_CONFIG['cronDir']}/transportCron.php");
|
|
||||||
//$old_regex = '/transportCron\.php/';
|
|
||||||
//echo " * Install storageServer cron job...\n";
|
|
||||||
//
|
|
||||||
//$cron = new Cron();
|
|
||||||
//$access = $cron->openCrontab('write');
|
|
||||||
//if ($access != 'write') {
|
|
||||||
// do {
|
|
||||||
// $r = $cron->forceWriteable();
|
|
||||||
// } while ($r);
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//foreach ($cron->ct->getByType(CRON_CMD) as $id => $line) {
|
|
||||||
// if (preg_match($old_regex, $line['command'])) {
|
|
||||||
// echo " * Removing old entry: ".$line['command']."\n";
|
|
||||||
// $cron->ct->delEntry($id);
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
//echo " * Adding new entry: ".$command."\n";
|
|
||||||
//$cron->ct->addCron($m, $h, $dom, $mon, $dow, $command);
|
|
||||||
//$cron->closeCrontab();
|
|
||||||
//echo " Done.\n";
|
|
||||||
|
|
||||||
echo " * Importing sample audio clips \n";
|
echo " * Importing sample audio clips \n";
|
||||||
$command = __DIR__."/../utils/airtime-import --copy ../audio_samples/ > /dev/null";
|
$command = __DIR__."/../utils/airtime-import --copy ../audio_samples/ > /dev/null";
|
||||||
@exec($command, $output, $results);
|
@exec($command, $output, $results);
|
||||||
|
|
||||||
$command = "python ".__DIR__."/../pypo/install/pypo-install.py";
|
$command = "python ".__DIR__."/../pypo/install/pypo-install.py";
|
||||||
|
|
||||||
system($command);
|
system($command);
|
||||||
echo "******************************* Install Complete *******************************\n";
|
echo "******************************* Install Complete *******************************\n";
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -3,9 +3,8 @@ if (!function_exists('pg_connect')) {
|
||||||
trigger_error("PostgreSQL PHP extension required and not found.", E_USER_ERROR);
|
trigger_error("PostgreSQL PHP extension required and not found.", E_USER_ERROR);
|
||||||
exit(2);
|
exit(2);
|
||||||
}
|
}
|
||||||
//require_once('DB.php');
|
|
||||||
require_once(dirname(__FILE__).'/../library/pear/DB.php');
|
require_once(dirname(__FILE__).'/../library/pear/DB.php');
|
||||||
//require_once('File/Find.php');
|
|
||||||
|
|
||||||
function camp_db_table_exists($p_name)
|
function camp_db_table_exists($p_name)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
#schedule-add-show,
|
#schedule-add-show,
|
||||||
#fullcalendar_show_display {
|
#fullcalendar_show_display {
|
||||||
float: left;
|
float: left;
|
||||||
|
@ -12,7 +11,7 @@
|
||||||
|
|
||||||
#schedule-add-show textarea {
|
#schedule-add-show textarea {
|
||||||
width: 99%;
|
width: 99%;
|
||||||
height: 100px;
|
height: 80px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#fullcalendar_show_display {
|
#fullcalendar_show_display {
|
||||||
|
@ -78,9 +77,7 @@ label.wrapp-label input[type="checkbox"] {
|
||||||
float:left;
|
float:left;
|
||||||
margin:-1px 4px 0 0;
|
margin:-1px 4px 0 0;
|
||||||
}
|
}
|
||||||
#schedule-add-show fieldset {
|
|
||||||
min-height:70px;
|
|
||||||
}
|
|
||||||
#schedule-add-show fieldset:last-child {
|
#schedule-add-show fieldset:last-child {
|
||||||
margin-bottom:0;
|
margin-bottom:0;
|
||||||
}
|
}
|
||||||
|
@ -107,4 +104,4 @@ label.wrapp-label input[type="checkbox"] {
|
||||||
padding:8px;
|
padding:8px;
|
||||||
color:#902d2d;
|
color:#902d2d;
|
||||||
display:none;
|
display:none;
|
||||||
}
|
}
|
BIN
public/css/images/icon_audioclip.png
Normal file
BIN
public/css/images/icon_audioclip.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
BIN
public/css/images/icon_playlist.png
Normal file
BIN
public/css/images/icon_playlist.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
BIN
public/css/images/progressbar_show_red.png
Normal file
BIN
public/css/images/progressbar_show_red.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 150 B |
|
@ -36,7 +36,7 @@
|
||||||
list-style: none;
|
list-style: none;
|
||||||
padding:0;
|
padding:0;
|
||||||
height: 400px;
|
height: 400px;
|
||||||
overflow: auto;
|
overflow-y: scroll;
|
||||||
width:100%;
|
width:100%;
|
||||||
margin-top:0;
|
margin-top:0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -174,7 +174,7 @@ select {
|
||||||
border-width:1px 1px 0 1px;
|
border-width:1px 1px 0 1px;
|
||||||
background:#141414 url(images/progressbar_bg.png) repeat-x 0 0;
|
background:#141414 url(images/progressbar_bg.png) repeat-x 0 0;
|
||||||
}
|
}
|
||||||
.progressbar .progress-song, .progressbar .progress-show {
|
.progressbar .progress-song, .progressbar .progress-show, .progress-show-red {
|
||||||
height:4px;
|
height:4px;
|
||||||
width:0%;
|
width:0%;
|
||||||
background:#f97202 url(images/progressbar_song.png) repeat-x 0 0;
|
background:#f97202 url(images/progressbar_song.png) repeat-x 0 0;
|
||||||
|
@ -182,6 +182,9 @@ select {
|
||||||
.progressbar .progress-show {
|
.progressbar .progress-show {
|
||||||
background:#02cef9 url(images/progressbar_show.png) repeat-x 0 0;
|
background:#02cef9 url(images/progressbar_show.png) repeat-x 0 0;
|
||||||
}
|
}
|
||||||
|
.progressbar .progress-show-red {
|
||||||
|
background:#02cef9 url(images/progressbar_show_red.png) repeat-x 0 0;
|
||||||
|
}
|
||||||
.now-playing-info .lenght {
|
.now-playing-info .lenght {
|
||||||
color:#c4c4c4;
|
color:#c4c4c4;
|
||||||
padding-left:6px;
|
padding-left:6px;
|
||||||
|
@ -516,6 +519,25 @@ dl.inline-list dd {
|
||||||
padding: 0.2em 1em;
|
padding: 0.2em 1em;
|
||||||
margin-right:3px;
|
margin-right:3px;
|
||||||
}
|
}
|
||||||
|
.dataTables_filter input {
|
||||||
|
background: url("images/search_auto_bg.png") no-repeat scroll 0 0 #DDDDDD;
|
||||||
|
text-indent: 25px;
|
||||||
|
width: 60%;
|
||||||
|
border: 1px solid #5B5B5B;
|
||||||
|
height: 23px;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.dataTables_length select {
|
||||||
|
background-color: #DDDDDD;
|
||||||
|
border: 1px solid #5B5B5B;
|
||||||
|
font-family: Arial,Helvetica,sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
height: 25px;
|
||||||
|
margin: 0;
|
||||||
|
padding: 2px 2px 2px 0;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
/*----END Data Table----*/
|
/*----END Data Table----*/
|
||||||
|
|
||||||
|
@ -702,7 +724,7 @@ dt.block-display, dd.block-display {
|
||||||
.floated-panel {
|
.floated-panel {
|
||||||
margin-top:0;
|
margin-top:0;
|
||||||
width:99.99%;
|
width:99.99%;
|
||||||
z-index:9999;
|
z-index:999;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -801,7 +823,8 @@ div.ui-datepicker {
|
||||||
#schedule_playlist_chosen li > h3 > div > span.ui-icon {
|
#schedule_playlist_chosen li > h3 > div > span.ui-icon {
|
||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
}
|
}
|
||||||
#schedule_playlist_chosen li > h3 > span.ui-icon.ui-icon-triangle-1-e {
|
#schedule_playlist_chosen li > h3 > span.ui-icon.ui-icon-triangle-1-e,
|
||||||
|
#schedule_playlist_chosen li > h3 > span.ui-icon.ui-icon-triangle-1-s {
|
||||||
float:left;
|
float:left;
|
||||||
margin-right: 8px;
|
margin-right: 8px;
|
||||||
}
|
}
|
||||||
|
@ -848,7 +871,6 @@ div.ui-datepicker {
|
||||||
margin-right:22px;
|
margin-right:22px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#schedule_playlist_chosen li > div > div > span {
|
#schedule_playlist_chosen li > div > div > span {
|
||||||
float: right;
|
float: right;
|
||||||
margin-right:46px;
|
margin-right:46px;
|
||||||
|
@ -913,7 +935,7 @@ h2#scheduled_playlist_name span {
|
||||||
}
|
}
|
||||||
|
|
||||||
.time {
|
.time {
|
||||||
width: 100px;
|
width: 80px;
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
@ -1064,15 +1086,21 @@ button, input {
|
||||||
|
|
||||||
.user-management {
|
.user-management {
|
||||||
width:810px;
|
width:810px;
|
||||||
|
/*width:380px;*/
|
||||||
|
}
|
||||||
|
.user-management-expanded {
|
||||||
|
width:810px;
|
||||||
}
|
}
|
||||||
.user-data {
|
.user-data {
|
||||||
float:left;
|
float:left;
|
||||||
width:420px;
|
width:420px;
|
||||||
|
margin-left:10px;
|
||||||
|
/*display:none;*/
|
||||||
}
|
}
|
||||||
.user-list-wrapper {
|
.user-list-wrapper {
|
||||||
float:left;
|
float:left;
|
||||||
width:380px;
|
width:380px;
|
||||||
margin-right:10px;
|
/*margin-right:10px;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
.user-management div.user-list-wrapper .ui-widget-header:first-child {
|
.user-management div.user-list-wrapper .ui-widget-header:first-child {
|
||||||
|
@ -1086,10 +1114,11 @@ button, input {
|
||||||
}
|
}
|
||||||
.user-management h2 {
|
.user-management h2 {
|
||||||
font-size: 1.7em;
|
font-size: 1.7em;
|
||||||
padding-bottom: 16px;
|
padding-bottom: 12px;
|
||||||
}
|
}
|
||||||
.user-management .dataTables_filter .auto-search {
|
.user-management .dataTables_filter input {
|
||||||
width: 378px;
|
width: 378px;
|
||||||
|
margin-bottom:8px;
|
||||||
}
|
}
|
||||||
.user-data.simple-formblock dd {
|
.user-data.simple-formblock dd {
|
||||||
width: 73%;
|
width: 73%;
|
||||||
|
@ -1103,8 +1132,9 @@ button, input {
|
||||||
}
|
}
|
||||||
|
|
||||||
.user-list-wrapper .button-holder {
|
.user-list-wrapper .button-holder {
|
||||||
padding:8px 0;
|
padding:0;
|
||||||
text-align:right;
|
text-align:right;
|
||||||
|
height:37px;
|
||||||
}
|
}
|
||||||
.user-list-wrapper .button-holder .ui-button {
|
.user-list-wrapper .button-holder .ui-button {
|
||||||
margin:0;
|
margin:0;
|
||||||
|
@ -1121,3 +1151,91 @@ button, input {
|
||||||
|
|
||||||
|
|
||||||
#ui-datepicker-div { z-index: 10 !important }
|
#ui-datepicker-div { z-index: 10 !important }
|
||||||
|
|
||||||
|
.button-bar-top {
|
||||||
|
text-align:right;
|
||||||
|
height:30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toggle-button, .toggle-button-active {
|
||||||
|
border: 1px solid #505050;
|
||||||
|
background-color: #5e5e5e;
|
||||||
|
background: -moz-linear-gradient(top, #757575 0, #5e5e5e 100%);
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #757575), color-stop(100%, #5e5e5e));
|
||||||
|
color: #ffffff;
|
||||||
|
margin:0;
|
||||||
|
font-size:12px;
|
||||||
|
padding:5px 12px;
|
||||||
|
text-decoration:none;
|
||||||
|
text-shadow: #343434 0px -1px;
|
||||||
|
border-width:1px 0 1px 1px;
|
||||||
|
}
|
||||||
|
.toggle-button:hover {
|
||||||
|
background-color: #292929;
|
||||||
|
background: -moz-linear-gradient(top, #3b3b3b 0, #292929 100%);
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #3b3b3b), color-stop(100%, #292929));
|
||||||
|
text-shadow: #000000 0px -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toggle-button-active {
|
||||||
|
background-color: #c6c6c6;
|
||||||
|
background: -moz-linear-gradient(top, #767676 0, #c6c6c6 20%, #c6c6c6 35%, #a0a0a0 100%);
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #767676), color-stop(20%, #c6c6c6), color-stop(35%, #c6c6c6), color-stop(100%, #a0a0a0));
|
||||||
|
color: #2e2e2e;
|
||||||
|
cursor:default;
|
||||||
|
text-shadow: #d8d8d8 0px 1px;
|
||||||
|
}
|
||||||
|
.end-button {
|
||||||
|
border-width:1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ul.errors {
|
||||||
|
display:block;
|
||||||
|
clear:left;
|
||||||
|
padding:3px 0 0 0;
|
||||||
|
margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.errors li {
|
||||||
|
color:#902d2d;
|
||||||
|
font-size:11px;
|
||||||
|
padding:2px 4px;
|
||||||
|
background:#c6b4b4;
|
||||||
|
margin-bottom:2px;
|
||||||
|
border:1px solid #c83f3f;
|
||||||
|
}
|
||||||
|
.collapsible-header {
|
||||||
|
border: 1px solid #8f8f8f;
|
||||||
|
background-color: #cccccc;
|
||||||
|
background: -moz-linear-gradient(top, #cccccc 0, #b9b9b9 100%);
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #cccccc), color-stop(100%, #b9b9b9));
|
||||||
|
font-size:13px;
|
||||||
|
color:#353535;
|
||||||
|
font-weight:bold;
|
||||||
|
padding:6px 0 6px 20px;
|
||||||
|
margin:8px 0 0 0;
|
||||||
|
cursor:pointer;
|
||||||
|
position:relative;
|
||||||
|
}
|
||||||
|
.collapsible-content {
|
||||||
|
margin-top:-1px;
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
.collapsible-header .arrow-icon {
|
||||||
|
display:block;
|
||||||
|
background:url(images/arrows_collapse.png) no-repeat 0 0;
|
||||||
|
height:11px;
|
||||||
|
width:11px;
|
||||||
|
position:absolute;
|
||||||
|
left:5px;
|
||||||
|
top:8px;
|
||||||
|
|
||||||
|
}
|
||||||
|
.collapsible-header.close .arrow-icon {
|
||||||
|
background-position: 0 -11px;
|
||||||
|
|
||||||
|
}
|
||||||
|
#schedule-add-show .button-bar {
|
||||||
|
height: 28px;
|
||||||
|
margin: 0 0 8px 0;
|
||||||
|
|
|
@ -65,6 +65,13 @@ function dtRowCallback( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
|
||||||
type = aData[6].substring(0,2);
|
type = aData[6].substring(0,2);
|
||||||
id = aData[0];
|
id = aData[0];
|
||||||
|
|
||||||
|
if(type == "au") {
|
||||||
|
$('td:eq(5)', nRow).html( '<img src="css/images/icon_audioclip.png">' );
|
||||||
|
}
|
||||||
|
else if(type == "pl") {
|
||||||
|
$('td:eq(5)', nRow).html( '<img src="css/images/icon_playlist.png">' );
|
||||||
|
}
|
||||||
|
|
||||||
$(nRow).attr("id", type+'_'+id);
|
$(nRow).attr("id", type+'_'+id);
|
||||||
|
|
||||||
$(nRow).qtip({
|
$(nRow).qtip({
|
||||||
|
|
|
@ -146,21 +146,21 @@ function submitOnEnter(event) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function setCueEvents() {
|
function setCueEvents(el) {
|
||||||
|
|
||||||
$(".spl_cue_in span:last").blur(changeCueIn);
|
$(el).find(".spl_cue_in span:last").blur(changeCueIn);
|
||||||
$(".spl_cue_out span:last").blur(changeCueOut);
|
$(el).find(".spl_cue_out span:last").blur(changeCueOut);
|
||||||
|
|
||||||
$(".spl_cue_in span:first, .spl_cue_out span:first")
|
$(el).find(".spl_cue_in span:first, .spl_cue_out span:first")
|
||||||
.keydown(submitOnEnter);
|
.keydown(submitOnEnter);
|
||||||
}
|
}
|
||||||
|
|
||||||
function setFadeEvents() {
|
function setFadeEvents(el) {
|
||||||
|
|
||||||
$(".spl_fade_in span:first").blur(changeFadeIn);
|
$(el).find(".spl_fade_in span:first").blur(changeFadeIn);
|
||||||
$(".spl_fade_out span:first").blur(changeFadeOut);
|
$(el).find(".spl_fade_out span:first").blur(changeFadeOut);
|
||||||
|
|
||||||
$(".spl_fade_in span:first, .spl_fade_out span:first")
|
$(el).find(".spl_fade_in span:first, .spl_fade_out span:first")
|
||||||
.keydown(submitOnEnter);
|
.keydown(submitOnEnter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -198,7 +198,7 @@ function openFadeEditor(event) {
|
||||||
.append(json.html)
|
.append(json.html)
|
||||||
.show();
|
.show();
|
||||||
|
|
||||||
setFadeEvents();
|
setFadeEvents(li);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -231,7 +231,7 @@ function openCueEditor(event) {
|
||||||
.append(json.html)
|
.append(json.html)
|
||||||
.show();
|
.show();
|
||||||
|
|
||||||
setCueEvents();
|
setCueEvents(li);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -328,36 +328,49 @@ function closeSPL() {
|
||||||
$.post(url, noOpenPL);
|
$.post(url, noOpenPL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function createPlaylistMetaForm(json) {
|
||||||
|
var submit, form;
|
||||||
|
|
||||||
|
submit = $('<button id="new_playlist_submit">Submit</button>')
|
||||||
|
.button()
|
||||||
|
.click(function(){
|
||||||
|
var url, data;
|
||||||
|
|
||||||
|
url = '/Playlist/metadata/format/json';
|
||||||
|
data = $("#side_playlist form").serialize();
|
||||||
|
|
||||||
|
$.post(url, data, function(json){
|
||||||
|
if(json.form){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
openDiffSPL(json);
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
form = $(json.form);
|
||||||
|
|
||||||
|
form.find("input, textarea")
|
||||||
|
.keydown(function(event){
|
||||||
|
//enter was pressed
|
||||||
|
if(event.keyCode === 13) {
|
||||||
|
event.preventDefault();
|
||||||
|
$("#new_playlist_submit").click();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
$("#side_playlist")
|
||||||
|
.empty()
|
||||||
|
.append(form)
|
||||||
|
.append(submit);
|
||||||
|
}
|
||||||
|
|
||||||
function newSPL() {
|
function newSPL() {
|
||||||
var url;
|
var url;
|
||||||
|
|
||||||
url = '/Playlist/new/format/json';
|
url = '/Playlist/new/format/json';
|
||||||
|
|
||||||
$.post(url, function(json){
|
$.post(url, createPlaylistMetaForm);
|
||||||
var submit;
|
|
||||||
|
|
||||||
submit = $('<button>Submit</button>')
|
|
||||||
.button()
|
|
||||||
.click(function(){
|
|
||||||
var url, data;
|
|
||||||
|
|
||||||
url = '/Playlist/metadata/format/json';
|
|
||||||
data = $("#side_playlist form").serialize();
|
|
||||||
|
|
||||||
$.post(url, data, function(json){
|
|
||||||
if(json.form){
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
openDiffSPL(json);
|
|
||||||
})
|
|
||||||
});
|
|
||||||
|
|
||||||
$("#side_playlist")
|
|
||||||
.empty()
|
|
||||||
.append(json.form)
|
|
||||||
.append(submit);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function deleteSPL() {
|
function deleteSPL() {
|
||||||
|
|
|
@ -60,7 +60,9 @@ function findHosts(request, callback) {
|
||||||
function setAddShowEvents() {
|
function setAddShowEvents() {
|
||||||
var start, end;
|
var start, end;
|
||||||
|
|
||||||
$(".tabs").tabs();
|
$("h3").click(function(){
|
||||||
|
$(this).next().toggle();
|
||||||
|
});
|
||||||
|
|
||||||
if(!$("#add_show_repeats").attr('checked')) {
|
if(!$("#add_show_repeats").attr('checked')) {
|
||||||
$("#schedule-show-when > fieldset:last").hide();
|
$("#schedule-show-when > fieldset:last").hide();
|
||||||
|
@ -114,6 +116,15 @@ function setAddShowEvents() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
$("#add-show-close")
|
||||||
|
.button()
|
||||||
|
.click(function(event){
|
||||||
|
event.stopPropagation();
|
||||||
|
event.preventDefault();
|
||||||
|
$("#add-show-form").hide();
|
||||||
|
});
|
||||||
|
|
||||||
$("#add-show-submit")
|
$("#add-show-submit")
|
||||||
.button()
|
.button()
|
||||||
.click(function(){
|
.click(function(){
|
||||||
|
|
|
@ -23,13 +23,15 @@ function dayClick(date, allDay, jsEvent, view) {
|
||||||
|
|
||||||
function viewDisplay( view ) {
|
function viewDisplay( view ) {
|
||||||
|
|
||||||
$('.schedule_change_slots').remove();
|
var td = $('.schedule_change_slots').parent();
|
||||||
|
td.prev().remove();
|
||||||
|
td.remove();
|
||||||
|
|
||||||
if(view.name === 'agendaDay' || view.name === 'agendaWeek') {
|
if(view.name === 'agendaDay' || view.name === 'agendaWeek') {
|
||||||
|
|
||||||
var calendarEl = this;
|
var calendarEl = this;
|
||||||
|
|
||||||
var select = $('<select class="schedule_change_slots"/>')
|
var select = $('<select class="schedule_change_slots input_select"/>')
|
||||||
.append('<option value="5">5 min</option>')
|
.append('<option value="5">5 min</option>')
|
||||||
.append('<option value="10">10 min</option>')
|
.append('<option value="10">10 min</option>')
|
||||||
.append('<option value="15">15 min</option>')
|
.append('<option value="15">15 min</option>')
|
||||||
|
|
|
@ -191,6 +191,10 @@ function buildScheduleDialog(json){
|
||||||
dialog.dialog('open');
|
dialog.dialog('open');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function buildEditDialog(json){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
function scheduleRefetchEvents() {
|
function scheduleRefetchEvents() {
|
||||||
$("#schedule_calendar").fullCalendar( 'refetchEvents' );
|
$("#schedule_calendar").fullCalendar( 'refetchEvents' );
|
||||||
}
|
}
|
||||||
|
|
72
public/js/airtime/user/user.js
Normal file
72
public/js/airtime/user/user.js
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
function populateForm(entries){
|
||||||
|
//$('#user_details').show();
|
||||||
|
|
||||||
|
$('.errors').remove();
|
||||||
|
|
||||||
|
$('#user_id').val(entries.id);
|
||||||
|
$('#login').val(entries.login);
|
||||||
|
$('#first_name').val(entries.first_name);
|
||||||
|
$('#last_name').val(entries.last_name);
|
||||||
|
$('#type').val(entries.type);
|
||||||
|
|
||||||
|
if (entries.id.length != 0){
|
||||||
|
$('#login').attr('readonly', 'readonly');
|
||||||
|
$('#password').val("xxxxxx");
|
||||||
|
} else {
|
||||||
|
$('#login').removeAttr('readonly');
|
||||||
|
$('#password').val("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function rowClickCallback(row_id){
|
||||||
|
$.ajax({ url: '/User/get-user-data/id/'+ row_id +'/format/json', dataType:"json", success:function(data){
|
||||||
|
populateForm(data.entries);
|
||||||
|
}});
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeUserCallback(row_id, nRow){
|
||||||
|
$.ajax({ url: '/User/remove-user/id/'+ row_id +'/format/json', dataType:"text", success:function(data){
|
||||||
|
var o = $('#users_datatable').dataTable().fnDeleteRow(nRow);
|
||||||
|
}});
|
||||||
|
}
|
||||||
|
|
||||||
|
function rowCallback( nRow, aData, iDisplayIndex ){
|
||||||
|
$(nRow).click(function(){rowClickCallback(aData[0])});
|
||||||
|
$('td:eq(2)', nRow).append( '<span class="ui-icon ui-icon-closethick"></span>').children('span').click(function(e){e.stopPropagation(); removeUserCallback(aData[0], nRow)});
|
||||||
|
|
||||||
|
return nRow;
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#users_datatable').dataTable( {
|
||||||
|
"bProcessing": true,
|
||||||
|
"bServerSide": true,
|
||||||
|
"sAjaxSource": "/User/get-user-data-table-info/format/json",
|
||||||
|
"fnServerData": function ( sSource, aoData, fnCallback ) {
|
||||||
|
$.ajax( {
|
||||||
|
"dataType": 'json',
|
||||||
|
"type": "POST",
|
||||||
|
"url": sSource,
|
||||||
|
"data": aoData,
|
||||||
|
"success": fnCallback
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
"fnRowCallback": rowCallback,
|
||||||
|
"aoColumns": [
|
||||||
|
/* Id */ { "sName": "id", "bSearchable": false, "bVisible": false },
|
||||||
|
/* user name */ { "sName": "login" },
|
||||||
|
/* user type */ { "sName": "type", "bSearchable": false },
|
||||||
|
/* del button */ { "sName": "null as delete", "bSearchable": false, "bSortable": false}
|
||||||
|
],
|
||||||
|
"bJQueryUI": true,
|
||||||
|
"bAutoWidth": false,
|
||||||
|
"bLengthChange": false
|
||||||
|
});
|
||||||
|
|
||||||
|
//$('#user_details').hide();
|
||||||
|
|
||||||
|
var newUser = {login:"", first_name:"", last_name:"", type:"G", id:""};
|
||||||
|
|
||||||
|
$('#add_user_button').click(function(){populateForm(newUser)});
|
||||||
|
|
||||||
|
});
|
1
public/js/playlist/dayview.js
Normal file
1
public/js/playlist/dayview.js
Normal file
|
@ -0,0 +1 @@
|
||||||
|
var viewType = "day";
|
|
@ -3,17 +3,17 @@ var datagridData;
|
||||||
|
|
||||||
function getDateText(obj){
|
function getDateText(obj){
|
||||||
var str = obj.aData[ obj.iDataColumn ].toString();
|
var str = obj.aData[ obj.iDataColumn ].toString();
|
||||||
if (str.indexOf(" ") != -1){
|
datetime = str.split(" ");
|
||||||
return changeTimePrecision(str.substring(0, str.indexOf(" ")));
|
if (datetime.length == 2)
|
||||||
}
|
return datetime[0];
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTimeText(obj){
|
function getTimeText(obj){
|
||||||
var str = obj.aData[ obj.iDataColumn ].toString();
|
var str = obj.aData[ obj.iDataColumn ].toString();
|
||||||
if (str.indexOf(" ") != -1){
|
datetime = str.split(" ");
|
||||||
return changeTimePrecision(str.substring(str.indexOf(" ")+1));
|
if (datetime.length == 2)
|
||||||
}
|
return changeTimePrecision(datetime[1]);
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,16 +23,16 @@ function changeTimePrecisionInit(obj){
|
||||||
}
|
}
|
||||||
|
|
||||||
function changeTimePrecision(str){
|
function changeTimePrecision(str){
|
||||||
if (str.indexOf(".") != -1){
|
|
||||||
if (str.length - str.indexOf(".") > 2)
|
var temp = str.split(".")
|
||||||
var extraLength = str.length - str.indexOf(".") -3;
|
if (temp.length == 2){
|
||||||
return str.substring(0, str.length - extraLength);
|
if (temp[1].length > 2)
|
||||||
}
|
return temp[0]+"."+temp[1].substr(0, 2);
|
||||||
return str;
|
}
|
||||||
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
function notifySongEnd(){
|
function notifySongEnd(){
|
||||||
//alert("length " + datagridData.rows.length);
|
|
||||||
for (var i=0; i<datagridData.rows.length; i++){
|
for (var i=0; i<datagridData.rows.length; i++){
|
||||||
if (datagridData.rows[i][0] == "c")
|
if (datagridData.rows[i][0] == "c")
|
||||||
datagridData.rows[i][0] = "p";
|
datagridData.rows[i][0] = "p";
|
||||||
|
@ -45,16 +45,6 @@ function notifySongEnd(){
|
||||||
createDataGrid();
|
createDataGrid();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
function updateDataGrid(){
|
|
||||||
var table = $('#nowplayingtable');
|
|
||||||
//table.dataTable().fnClearTable();
|
|
||||||
|
|
||||||
for (var i=0; i<datagridData.rows.length; i++){
|
|
||||||
table.dataTable().fnAddData(datagridData.rows[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
var columns = [{"sTitle": "type", "bVisible":false},
|
var columns = [{"sTitle": "type", "bVisible":false},
|
||||||
{"sTitle":"Date"},
|
{"sTitle":"Date"},
|
||||||
{"sTitle":"Start"},
|
{"sTitle":"Start"},
|
||||||
|
@ -83,7 +73,6 @@ function createDataGrid(){
|
||||||
"bInfo": false,
|
"bInfo": false,
|
||||||
"bLengthChange": false,
|
"bLengthChange": false,
|
||||||
"bPaginate": false,
|
"bPaginate": false,
|
||||||
"aaData": datagridData.rows,
|
|
||||||
"aoColumns": columns,
|
"aoColumns": columns,
|
||||||
"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
|
"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
|
||||||
if (aData[aData.length-2] == "t")
|
if (aData[aData.length-2] == "t")
|
||||||
|
@ -93,41 +82,73 @@ function createDataGrid(){
|
||||||
else if (aData[0] == "b")
|
else if (aData[0] == "b")
|
||||||
$(nRow).attr("style", "background-color:#EE3B3B");
|
$(nRow).attr("style", "background-color:#EE3B3B");
|
||||||
return nRow;
|
return nRow;
|
||||||
}
|
},
|
||||||
|
"bAutoWidth":false
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var viewType = "now" //"day";
|
function getDateString(){
|
||||||
var mainLoopRegistered = false;
|
var date0 = $("#datepicker").datepicker("getDate");
|
||||||
|
return (date0.getFullYear() + "-" + (parseInt(date0.getMonth())+1) + "-" + date0.getDate());
|
||||||
function setViewType(type){
|
|
||||||
if (type == 0){
|
|
||||||
viewType = "now";
|
|
||||||
} else {
|
|
||||||
viewType = "day";
|
|
||||||
}
|
|
||||||
init2();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function init2(){
|
function getAJAXURL(){
|
||||||
$.ajax({ url: "/Nowplaying/get-data-grid-data/format/json/view/" + viewType, dataType:"json", success:function(data){
|
var url = "/Nowplaying/get-data-grid-data/format/json/view/"+viewType;
|
||||||
|
|
||||||
|
if (viewType == "day"){
|
||||||
|
url += "/date/" + getDateString();
|
||||||
|
}
|
||||||
|
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateDataTable(){
|
||||||
|
var table = $('#nowplayingtable').dataTable();
|
||||||
|
|
||||||
|
table.fnClearTable(false);
|
||||||
|
table.fnAddData(datagridData.rows, false);
|
||||||
|
table.fnDraw(true);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function getData(){
|
||||||
|
$.ajax({ url: getAJAXURL(), dataType:"json", success:function(data){
|
||||||
datagridData = data.entries;
|
datagridData = data.entries;
|
||||||
createDataGrid();
|
updateDataTable();
|
||||||
}});
|
}});
|
||||||
|
}
|
||||||
|
|
||||||
|
function init2(){
|
||||||
|
getData();
|
||||||
|
|
||||||
if (typeof registerSongEndListener == 'function' && !registered){
|
if (typeof registerSongEndListener == 'function' && !registered){
|
||||||
registered = true;
|
registered = true;
|
||||||
registerSongEndListener(notifySongEnd);
|
registerSongEndListener(notifySongEnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!mainLoopRegistered){
|
setTimeout(init2, 5000);
|
||||||
setTimeout(init2, 5000);
|
|
||||||
mainLoopRegistered = true;
|
}
|
||||||
}
|
|
||||||
|
function redirect(url){
|
||||||
|
document.location.href = url;
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
init2();
|
|
||||||
|
createDataGrid();
|
||||||
|
if (viewType == "day"){
|
||||||
|
$('#now_view').click(function(){redirect('/Nowplaying/index')});
|
||||||
|
|
||||||
|
$("#datepicker").datepicker({
|
||||||
|
onSelect: function(dateText, inst)
|
||||||
|
{ getData();}});
|
||||||
|
$("#datepicker").datepicker("setDate", new Date());
|
||||||
|
} else {
|
||||||
|
$('#day_view').click(function(){redirect('/Nowplaying/day-view')});
|
||||||
|
}
|
||||||
|
|
||||||
|
init2();
|
||||||
});
|
});
|
||||||
|
|
1
public/js/playlist/nowview.js
Normal file
1
public/js/playlist/nowview.js
Normal file
|
@ -0,0 +1 @@
|
||||||
|
var viewType = "now";
|
|
@ -73,54 +73,60 @@ function nextShowStart(){
|
||||||
nextShowPrepare = true;
|
nextShowPrepare = true;
|
||||||
currentShow[0] = nextShow.shift();
|
currentShow[0] = nextShow.shift();
|
||||||
updatePlaybar();
|
updatePlaybar();
|
||||||
|
|
||||||
//notifySongEndListener();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Called every "uiUpdateInterval" mseconds. */
|
/* Called every "uiUpdateInterval" mseconds. */
|
||||||
function updateProgressBarValue(){
|
function updateProgressBarValue(){
|
||||||
|
var showPercentDone = 0;
|
||||||
if (currentShow.length > 0){
|
if (currentShow.length > 0){
|
||||||
var showPercentDone = (estimatedSchedulePosixTime - currentShow[0].showStartPosixTime)/currentShow[0].showLengthMs*100;
|
showPercentDone = (estimatedSchedulePosixTime - currentShow[0].showStartPosixTime)/currentShow[0].showLengthMs*100;
|
||||||
if (showPercentDone < 0 || showPercentDone > 100){
|
if (showPercentDone < 0 || showPercentDone > 100){
|
||||||
showPercentDone = 0;
|
showPercentDone = 0;
|
||||||
currentShow = new Array();
|
currentShow = new Array();
|
||||||
}
|
}
|
||||||
$('#progress-show').attr("style", "width:"+showPercentDone+"%");
|
|
||||||
}
|
}
|
||||||
|
$('#progress-show').attr("style", "width:"+showPercentDone+"%");
|
||||||
|
|
||||||
var songPercentDone = 0;
|
var songPercentDone = 0;
|
||||||
if (currentSong.length > 0){
|
if (currentSong.length > 0){
|
||||||
songPercentDone = (estimatedSchedulePosixTime - currentSong[0].songStartPosixTime)/currentSong[0].songLengthMs*100;
|
songPercentDone = (estimatedSchedulePosixTime - currentSong[0].songStartPosixTime)/currentSong[0].songLengthMs*100;
|
||||||
if (songPercentDone < 0 || songPercentDone > 100){
|
if (songPercentDone < 0 || songPercentDone > 100){
|
||||||
songPercentDone = 0;
|
songPercentDone = 0;
|
||||||
currentSong = new Array();
|
currentSong = new Array();
|
||||||
} else {
|
} else {
|
||||||
$('#on-air-info').attr("class", "on-air-info on");
|
$('#on-air-info').attr("class", "on-air-info on");
|
||||||
|
$('#progress-show').attr("class", "progress-show");
|
||||||
}
|
}
|
||||||
} else
|
} else {
|
||||||
$('#on-air-info').attr("class", "on-air-info off");
|
$('#on-air-info').attr("class", "on-air-info off");
|
||||||
|
$('#progress-show').attr("class", "progress-show-red");
|
||||||
|
}
|
||||||
$('#progress-bar').attr("style", "width:"+songPercentDone+"%");
|
$('#progress-bar').attr("style", "width:"+songPercentDone+"%");
|
||||||
|
|
||||||
//calculate how much time left to next song if there is any
|
//calculate how much time left to next song if there is any
|
||||||
if (nextSongs.length > 0 && nextSongPrepare){
|
if (nextSongs.length > 0 && nextSongPrepare){
|
||||||
var diff = nextSongs[0].songStartPosixTime - estimatedSchedulePosixTime;
|
var diff = nextSongs[0].songStartPosixTime - estimatedSchedulePosixTime;
|
||||||
if (diff < serverUpdateInterval && diff >= 0){
|
if (diff < serverUpdateInterval){
|
||||||
|
|
||||||
|
//sometimes the diff is negative (-100ms for example). Still looking
|
||||||
|
//into why this could sometimes happen.
|
||||||
|
if (diff < 0)
|
||||||
|
diff=0;
|
||||||
|
|
||||||
nextSongPrepare = false;
|
nextSongPrepare = false;
|
||||||
setTimeout(newSongStart, diff);
|
setTimeout(newSongStart, diff);
|
||||||
} else if (diff < 0 && APPLICATION_ENV == "development"){
|
|
||||||
alert ("Warning: estimatedSchedulePosixTime > songStartPosixTime");
|
|
||||||
alert (estimatedSchedulePosixTime + " " + nextSongs[0].songStartPosixTime);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//calculate how much time left to next show if there is any
|
//calculate how much time left to next show if there is any
|
||||||
if (nextShow.length > 0 && nextShowPrepare){
|
if (nextShow.length > 0 && nextShowPrepare){
|
||||||
var diff = nextShow[0].showStartPosixTime - estimatedSchedulePosixTime;
|
var diff = nextShow[0].showStartPosixTime - estimatedSchedulePosixTime;
|
||||||
if (diff < serverUpdateInterval && diff >= 0){
|
if (diff < serverUpdateInterval){
|
||||||
|
if (diff < 0)
|
||||||
|
diff=0;
|
||||||
|
|
||||||
nextShowPrepare = false;
|
nextShowPrepare = false;
|
||||||
setTimeout(nextShowStart, diff);
|
setTimeout(nextShowStart, diff);
|
||||||
} else if (diff < 0 && APPLICATION_ENV == "development"){
|
|
||||||
alert ("Warning: estimatedSchedulePosixTime > showStartPosixTime");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -131,7 +137,7 @@ function updatePlaybar(){
|
||||||
/* Column 0 update */
|
/* Column 0 update */
|
||||||
$('#previous').empty();
|
$('#previous').empty();
|
||||||
$('#prev-length').empty();
|
$('#prev-length').empty();
|
||||||
$('#current').text("Current:");
|
$('#current').html("Current: <span style='color:red; font-weight:bold'>Nothing Scheduled</span>");
|
||||||
$('#next').empty();
|
$('#next').empty();
|
||||||
$('#next-length').empty();
|
$('#next-length').empty();
|
||||||
if (previousSongs.length > 0){
|
if (previousSongs.length > 0){
|
||||||
|
@ -191,22 +197,13 @@ function calcAdditionalShowData(show){
|
||||||
if (show.length > 0){
|
if (show.length > 0){
|
||||||
show[0].showStartPosixTime = convertDateToPosixTime(show[0].start_timestamp);
|
show[0].showStartPosixTime = convertDateToPosixTime(show[0].start_timestamp);
|
||||||
show[0].showEndPosixTime = convertDateToPosixTime(show[0].end_timestamp);
|
show[0].showEndPosixTime = convertDateToPosixTime(show[0].end_timestamp);
|
||||||
|
|
||||||
//hack to fix case where show end is next day, but we have it set
|
|
||||||
//as the same day.
|
|
||||||
if (show[0].showEndPosixTime - show[0].showStartPosixTime < 0)
|
|
||||||
show[0].showEndPosixTime += 1000*3600*24;
|
|
||||||
|
|
||||||
show[0].showLengthMs = show[0].showEndPosixTime - show[0].showStartPosixTime;
|
show[0].showLengthMs = show[0].showEndPosixTime - show[0].showStartPosixTime;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseItems(obj){
|
function parseItems(obj){
|
||||||
APPLICATION_ENV = obj.env;
|
APPLICATION_ENV = obj.env;
|
||||||
|
|
||||||
var schedulePosixTime = convertDateToPosixTime(obj.schedulerTime);
|
|
||||||
schedulePosixTime += parseInt(obj.timezoneOffset)*1000;
|
|
||||||
|
|
||||||
$('#time-zone').text(obj.timezone);
|
$('#time-zone').text(obj.timezone);
|
||||||
|
|
||||||
previousSongs = obj.previous;
|
previousSongs = obj.previous;
|
||||||
|
@ -223,10 +220,10 @@ function parseItems(obj){
|
||||||
calcAdditionalShowData(obj.currentShow);
|
calcAdditionalShowData(obj.currentShow);
|
||||||
calcAdditionalShowData(obj.nextShow);
|
calcAdditionalShowData(obj.nextShow);
|
||||||
|
|
||||||
if (localRemoteTimeOffset == null){
|
var schedulePosixTime = convertDateToPosixTime(obj.schedulerTime);
|
||||||
var date = new Date();
|
schedulePosixTime += parseInt(obj.timezoneOffset)*1000;
|
||||||
localRemoteTimeOffset = date.getTime() - schedulePosixTime;
|
var date = new Date();
|
||||||
}
|
localRemoteTimeOffset = date.getTime() - schedulePosixTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -66,4 +66,4 @@ function initShowListView(){
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
initShowListView();
|
initShowListView();
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue