CC-6097, CC-6091, CC-6080, CC-6066 - css fixes and more work on add/remove content screen

This commit is contained in:
Duncan Sommerville 2015-08-25 17:09:05 -04:00
parent 371a26ff97
commit 84baef1996
17 changed files with 169 additions and 318 deletions

View file

@ -23,95 +23,96 @@ class LibraryController extends Zend_Controller_Action
public function indexAction() public function indexAction()
{ {
$CC_CONFIG = Config::getConfig(); $this->_redirect("showbuilder");
// $CC_CONFIG = Config::getConfig();
$request = $this->getRequest(); //
$baseUrl = Application_Common_OsPath::getBaseDir(); // $request = $this->getRequest();
// $baseUrl = Application_Common_OsPath::getBaseDir();
$this->view->headScript()->appendFile($baseUrl.'js/blockui/jquery.blockUI.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); //
$this->view->headScript()->appendFile($baseUrl.'js/contextmenu/jquery.contextMenu.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/blockui/jquery.blockUI.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/datatables/js/jquery.dataTables.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/contextmenu/jquery.contextMenu.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.pluginAPI.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/datatables/js/jquery.dataTables.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.fnSetFilteringDelay.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.pluginAPI.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.ColVis.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.fnSetFilteringDelay.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.colReorder.min.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.ColVis.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.FixedColumns.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.colReorder.min.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.columnFilter.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.FixedColumns.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
// $this->view->headScript()->appendFile($baseUrl.'js/datatables/plugin/dataTables.columnFilter.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/airtime/buttons/buttons.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); //
$this->view->headScript()->appendFile($baseUrl.'js/airtime/utilities/utilities.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/airtime/buttons/buttons.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/airtime/library/library.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/airtime/utilities/utilities.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/airtime/library/events/library_playlistbuilder.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/airtime/library/library.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
// $this->view->headScript()->appendFile($baseUrl.'js/airtime/library/events/library_playlistbuilder.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headLink()->appendStylesheet($baseUrl.'css/media_library.css?'.$CC_CONFIG['airtime_version']); //
$this->view->headLink()->appendStylesheet($baseUrl.'css/jquery.contextMenu.css?'.$CC_CONFIG['airtime_version']); // $this->view->headLink()->appendStylesheet($baseUrl.'css/media_library.css?'.$CC_CONFIG['airtime_version']);
$this->view->headLink()->appendStylesheet($baseUrl.'css/datatables/css/ColVis.css?'.$CC_CONFIG['airtime_version']); // $this->view->headLink()->appendStylesheet($baseUrl.'css/jquery.contextMenu.css?'.$CC_CONFIG['airtime_version']);
$this->view->headLink()->appendStylesheet($baseUrl.'css/datatables/css/dataTables.colReorder.min.css?'.$CC_CONFIG['airtime_version']); // $this->view->headLink()->appendStylesheet($baseUrl.'css/datatables/css/ColVis.css?'.$CC_CONFIG['airtime_version']);
$this->view->headLink()->appendStylesheet($baseUrl.'css/waveform.css?'.$CC_CONFIG['airtime_version']); // $this->view->headLink()->appendStylesheet($baseUrl.'css/datatables/css/dataTables.colReorder.min.css?'.$CC_CONFIG['airtime_version']);
// $this->view->headLink()->appendStylesheet($baseUrl.'css/waveform.css?'.$CC_CONFIG['airtime_version']);
$this->view->headScript()->appendFile($baseUrl.'js/airtime/library/spl.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); //
$this->view->headScript()->appendFile($baseUrl.'js/airtime/playlist/smart_blockbuilder.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/airtime/library/spl.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
// $this->view->headScript()->appendFile($baseUrl.'js/airtime/playlist/smart_blockbuilder.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/observer/observer.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); //
$this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/config.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/observer/observer.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/curves.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/config.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/fades.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/curves.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/local_storage.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/fades.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/controls.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/local_storage.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/playout.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/controls.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/track_render.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/playout.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/track.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/track_render.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/time_scale.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/track.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/playlist.js?'.$CC_CONFIG['airtime_version'], 'text/javascript'); // $this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/time_scale.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
// $this->view->headScript()->appendFile($baseUrl.'js/waveformplaylist/playlist.js?'.$CC_CONFIG['airtime_version'], 'text/javascript');
//arbitrary attributes need to be allowed to set an id for the templates. //
$this->view->headScript()->setAllowArbitraryAttributes(true); // //arbitrary attributes need to be allowed to set an id for the templates.
//$this->view->headScript()->appendScript(file_get_contents(APPLICATION_PATH.'/../public/js/waveformplaylist/templates/bottombar.tpl'), // $this->view->headScript()->setAllowArbitraryAttributes(true);
// 'text/template', array('id' => 'tpl_playlist_cues', 'noescape' => true)); // //$this->view->headScript()->appendScript(file_get_contents(APPLICATION_PATH.'/../public/js/waveformplaylist/templates/bottombar.tpl'),
// // 'text/template', array('id' => 'tpl_playlist_cues', 'noescape' => true));
$this->view->headLink()->appendStylesheet($baseUrl.'css/playlist_builder.css?'.$CC_CONFIG['airtime_version']); //
// $this->view->headLink()->appendStylesheet($baseUrl.'css/playlist_builder.css?'.$CC_CONFIG['airtime_version']);
try { //
// try {
$obj_sess = new Zend_Session_Namespace(UI_PLAYLISTCONTROLLER_OBJ_SESSNAME); //
if (isset($obj_sess->id)) { // $obj_sess = new Zend_Session_Namespace(UI_PLAYLISTCONTROLLER_OBJ_SESSNAME);
$objInfo = Application_Model_Library::getObjInfo($obj_sess->type); // if (isset($obj_sess->id)) {
$obj = new $objInfo['className']($obj_sess->id); // $objInfo = Application_Model_Library::getObjInfo($obj_sess->type);
$userInfo = Zend_Auth::getInstance()->getStorage()->read(); // $obj = new $objInfo['className']($obj_sess->id);
$user = new Application_Model_User($userInfo->id); // $userInfo = Zend_Auth::getInstance()->getStorage()->read();
$isAdminOrPM = $user->isUserType(array(UTYPE_SUPERADMIN, UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER)); // $user = new Application_Model_User($userInfo->id);
// $isAdminOrPM = $user->isUserType(array(UTYPE_SUPERADMIN, UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER));
if ($isAdminOrPM || $obj->getCreatorId() == $userInfo->id) { //
$this->view->obj = $obj; // if ($isAdminOrPM || $obj->getCreatorId() == $userInfo->id) {
if ($obj_sess->type == "block") { // $this->view->obj = $obj;
$form = new Application_Form_SmartBlockCriteria(); // if ($obj_sess->type == "block") {
$form->startForm($obj_sess->id); // $form = new Application_Form_SmartBlockCriteria();
$this->view->form = $form; // $form->startForm($obj_sess->id);
} // $this->view->form = $form;
} // }
// }
$formatter = new LengthFormatter($obj->getLength()); //
$this->view->length = $formatter->format(); // $formatter = new LengthFormatter($obj->getLength());
$this->view->type = $obj_sess->type; // $this->view->length = $formatter->format();
} // $this->view->type = $obj_sess->type;
// }
//get user settings and determine if we need to hide //
// or show the playlist editor // //get user settings and determine if we need to hide
$showPlaylist = false; // // or show the playlist editor
$data = Application_Model_Preference::getLibraryScreenSettings(); // $showPlaylist = false;
if (!is_null($data)) { // $data = Application_Model_Preference::getLibraryScreenSettings();
if ($data["playlist"] == "true") { // if (!is_null($data)) {
$showPlaylist = true; // if ($data["playlist"] == "true") {
} // $showPlaylist = true;
} // }
$this->view->showPlaylist = $showPlaylist; // }
} catch (PlaylistNotFoundException $e) { // $this->view->showPlaylist = $showPlaylist;
$this->playlistNotFound($obj_sess->type); // } catch (PlaylistNotFoundException $e) {
} catch (Exception $e) { // $this->playlistNotFound($obj_sess->type);
$this->playlistNotFound($obj_sess->type); // } catch (Exception $e) {
Logging::info($e->getMessage()); // $this->playlistNotFound($obj_sess->type);
//$this->playlistUnknownError($e); // Logging::info($e->getMessage());
} // //$this->playlistUnknownError($e);
// }
} }
protected function playlistNotFound($p_type) protected function playlistNotFound($p_type)

View file

@ -112,7 +112,7 @@ class ScheduleController extends Zend_Controller_Action
$this->view->headLink()->appendStylesheet($baseUrl.'css/datatables/css/ColVis.css?'.$CC_CONFIG['airtime_version']); $this->view->headLink()->appendStylesheet($baseUrl.'css/datatables/css/ColVis.css?'.$CC_CONFIG['airtime_version']);
$this->view->headLink()->appendStylesheet($baseUrl.'css/datatables/css/dataTables.colReorder.min.css?'.$CC_CONFIG['airtime_version']); $this->view->headLink()->appendStylesheet($baseUrl.'css/datatables/css/dataTables.colReorder.min.css?'.$CC_CONFIG['airtime_version']);
$this->view->headLink()->appendStylesheet($baseUrl.'css/showbuilder.css?'.$CC_CONFIG['airtime_version']); $this->view->headLink()->appendStylesheet($baseUrl.'css/showbuilder.css?'.$CC_CONFIG['airtime_version']);
$this->view->headLink()->appendStylesheet($baseUrl.'css/_showbuilder.css?'.$CC_CONFIG['airtime_version']); $this->view->headLink()->appendStylesheet($baseUrl.'css/dashboard.css?'.$CC_CONFIG['airtime_version']);
//End Show builder JS/CSS requirements //End Show builder JS/CSS requirements
$this->createShowFormAction(true); $this->createShowFormAction(true);

View file

@ -66,7 +66,7 @@ class ShowbuilderController extends Zend_Controller_Action
$this->view->headLink()->appendStylesheet($baseUrl.'css/jquery.ui.timepicker.css?'.$CC_CONFIG['airtime_version']); $this->view->headLink()->appendStylesheet($baseUrl.'css/jquery.ui.timepicker.css?'.$CC_CONFIG['airtime_version']);
$this->view->headLink()->appendStylesheet($baseUrl.'css/showbuilder.css?'.$CC_CONFIG['airtime_version']); $this->view->headLink()->appendStylesheet($baseUrl.'css/showbuilder.css?'.$CC_CONFIG['airtime_version']);
$this->view->headLink()->appendStylesheet($baseUrl.'css/_showbuilder.css?'.$CC_CONFIG['airtime_version']); // TODO $this->view->headLink()->appendStylesheet($baseUrl.'css/dashboard.css?'.$CC_CONFIG['airtime_version']); // TODO
$csrf_namespace = new Zend_Session_Namespace('csrf_namespace'); $csrf_namespace = new Zend_Session_Namespace('csrf_namespace');
$csrf_element = new Zend_Form_Element_Hidden('csrf'); $csrf_element = new Zend_Form_Element_Hidden('csrf');

View file

@ -1,22 +0,0 @@
<?php
class SystemstatusController extends Zend_Controller_Action
{
public function init()
{
/* Disable this on Airtime pro since we're not using Media Monitor/Monit
$CC_CONFIG = Config::getConfig();
$baseUrl = Application_Common_OsPath::getBaseDir();
$this->view->headScript()->appendFile($baseUrl.'js/airtime/status/status.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
*/
}
public function indexAction()
{
$partitions = Application_Model_Systemstatus::GetDiskInfo();
$this->view->status = new StdClass;
$this->view->status->partitions = $partitions;
}
}

View file

@ -189,7 +189,7 @@ class Application_Form_EditAudioMD extends Zend_Form
) )
)); ));
$this->addDisplayGroup(array('editmdsave', 'editmdcancel'), 'submitButtons', array( $this->addDisplayGroup(array('editmdcancel', 'editmdsave'), 'submitButtons', array(
'decorators' => array( 'decorators' => array(
'FormElements', 'FormElements',
'DtDdWrapper' 'DtDdWrapper'

View file

@ -73,10 +73,10 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
<button id="add_media_btn" class="btn btn-small dashboard-btn">Upload</button> <button id="add_media_btn" class="btn btn-small dashboard-btn">Upload</button>
</a> </a>
</div> </div>
<div class="media_type_selector" data-selection-id="1"> <div class="media_type_selector top-link" data-selection-id="1">
<a href="/showbuilder#"><i class='icon-home icon-white'></i><?php echo _("Dashboard") ?></a></div> <a href="/showbuilder#"><i class='icon-home icon-white'></i><?php echo _("Dashboard") ?></a></div>
<div class="media_type_selector dashboard_sub_nav" data-selection-id="1"> <div class="media_type_selector dashboard_sub_nav" data-selection-id="1">
<a href="/showbuilder#files"><i class='icon-music icon-white'></i><?php echo _("Tracks") ?></a></div> <a href="/showbuilder#tracks"><i class='icon-music icon-white'></i><?php echo _("Tracks") ?></a></div>
<div class="media_type_selector dashboard_sub_nav" data-selection-id="2"> <div class="media_type_selector dashboard_sub_nav" data-selection-id="2">
<a href="/showbuilder#playlists"><i class='icon-list icon-white'></i><?php echo _("Playlists") ?></a></div> <a href="/showbuilder#playlists"><i class='icon-list icon-white'></i><?php echo _("Playlists") ?></a></div>
<div class="media_type_selector dashboard_sub_nav" data-selection-id="3"> <div class="media_type_selector dashboard_sub_nav" data-selection-id="3">

View file

@ -1,172 +0,0 @@
<?php echo $this->doctype() ?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php echo $this->headTitle() ?>
<?php echo $this->headLink() ?>
<?php echo $this->headScript() ?>
<?php echo isset($this->google_analytics)?$this->google_analytics:"" ?>
<?php $baseUrl = Application_Common_OsPath::getBaseDir(); ?>
</head>
<body>
<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-55N6NH"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-55N6NH');</script>
<!-- End Google Tag Manager -->
<?php echo $this->partial('partialviews/trialBox.phtml', array("is_trial"=>$this->isTrial(), "trial_remain"=> $this->trialRemaining())) ?>
<div id="Panel" class="sticky">
<?php if($this->suspended) : ?>
<?php echo $this->partial('partialviews/suspended.phtml'); ?>
<?php else : ?>
<?php echo $this->versionNotify();
$sss = $this->SourceSwitchStatus();
$scs = $this->SourceConnectionStatus();
?>
<?php echo $this->partial('partialviews/header.phtml', array("live_dj_switch"=>$sss['live_dj'], "live_dj_connection"=>$scs['live_dj'], "master_dj_switch"=>$sss['master_dj'], "master_dj_connection"=>$scs['master_dj'],
"scheduled_play_switch"=>$sss['scheduled_play'], "baseUrl"=>$baseUrl)) ?>
<?php $partial = array('menu.phtml', 'default');
$this->navigation()->menu()->setPartial($partial); ?>
<script type="text/javascript">
var schedulePreLoaded = <?php
//Awful hack to speed up loading - Embed the schedule in the response so that the dashboard
//doesn't have to make a separate AJAX request to get this data.
require_once("ScheduleController.php");
ScheduleController::printCurrentPlaylistForEmbedding();
?>;
//The DOM elements that these calls depend on exist by this point:
parseItems(schedulePreLoaded.entries);
parseSourceStatus(schedulePreLoaded.source_status);
parseSwitchStatus(schedulePreLoaded.switch_status);
</script>
<!--
<div id="nav">
<div class="logo"></div>
<div class="personal-block solo">
<ol>
<li>
<span class="trial-box-button"><a title="Billing" href=<?php echo $baseUrl . '/billing/upgrade'?>>Upgrade</a></span>&nbsp;
<a id="current-user" href=<?php echo $baseUrl . "/user/edit-user"?>><span class="name"><?php echo $this->escape($this->loggedInAs()); ?></span></a>
| <a href=<?php echo $baseUrl . "/login/logout"?>><?php echo _("Logout")?></a>
</li>
</ol>
</div>
<div id="mobile-nav">
<div class="menu-btn" id="menu-btn">
<div></div>
<span></span>
<span></span>
<span></span>
</div>
</div>
<div class="responsive-menu">
<?php echo $this->navigation()->menu() ?>
</div>
<div style="clear:both;"></div>
</div>
-->
<?php endif; //suspended ?>
</div>
<div id="media_type_nav"> <!-- class="content-pane" -->
<div class="btn-group">
<button id="new_media_selector" class="btn btn-small dropdown-toggle" data-toggle="dropdown">
New <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li id="new-playlist">
<a href="#"><?php echo _("Playlist") ?></a>
</li>
<li id="new-smart-block">
<a href="#"><?php echo _("Smart Block") ?></a>
</li>
<li id="new-webstream">
<a href="#"><?php echo _("Webstream") ?></a>
</li>
</ul>
</div>
<div class="media_type_selector" selection_id="1">
<a href="/showbuilder"><?php echo _("Dashboard") ?></a></div>
<div class="media_type_selector dashboard_sub_nav" selection_id="1">
<a href="/showbuilder#files"><?php echo _("Files") ?></a></div>
<div class="media_type_selector dashboard_sub_nav" selection_id="2">
<a href="/showbuilder#playlists"><?php echo _("Playlists") ?></a></div>
<div class="media_type_selector dashboard_sub_nav" selection_id="3">
<a href="/showbuilder#smart-blocks"><?php echo _("Smart Blocks") ?></a></div>
<div class="media_type_selector dashboard_sub_nav" selection_id="4">
<a href="/showbuilder#webstreams"><?php echo _("Webstreams") ?></a></div>
<div id="nav">
<?php echo $this->navigation()->menu() ?>
</div>
</div>
<div class="wrapper dropzone" id="content">
<?php $hint = Application_Common_UsabilityHints::getUsabilityHint(); ?>
<div class="usability_hint" <?php if ($hint == "") { echo "style='display:none'"; } ?>><?php echo $hint; ?></div>
<?php echo $this->layout()->content ?>
</div>
<script id="tmpl-pl-cues" type="text/template">
<div class="waveform-cues">
<div class="playlist-time-scale"></div>
<div class="playlist-tracks"></div>
<div class="playlist-controls">
<a class="btn btn-small btn_play"><i class="icon-play icon-white"></i><?php echo _("Play"); ?></a>
<a class="btn btn-small btn_stop"><i class="icon-stop icon-white"></i><?php echo _("Stop"); ?></a>
<label class="audio audio_pos">00:00:00.0</label>
</div>
<div class="set-cue">
<label for="editor-cue-in"><?php echo _("Cue In"); ?></label>
<input type="text" class="audio_start">
<input type="button" class="btn btn-small set-cue-in" value="<?php echo _("Set Cue In"); ?>">
<label class="audio editor-cue-in">00:00:00.0</label>
<span style="display:none" class="cue-in-error"></span>
</div>
<div class="set-cue">
<label for="editor-cue-out"><?php echo _("Cue Out"); ?></label>
<input type="text" class="audio_end">
<input type="button" class="btn btn-small set-cue-out" value="<?php echo _("Set Cue Out"); ?>">
<label class="audio editor-cue-out">00:00:00.0</label>
<span style="display:none" class="cue-out-error"></span>
</div>
</div>
</script>
<script id="tmpl-pl-fades" type="text/template">
<div class="waveform-fades">
<div class="playlist-time-scale"></div>
<div class="playlist-tracks"></div>
<div class="playlist-controls left-floated">
<a class="btn btn-small btn_play"><i class="icon-play icon-white"></i><?php echo _("Play"); ?></a>
<a class="btn btn-small btn_stop"><i class="icon-stop icon-white"></i><?php echo _("Stop"); ?></a>
<label class="audio audio_pos">00:00:00.0</label>
</div>
<div class="set-fade left-floated">
<a type="button" class="btn btn-small btn_cursor" data-state="cursor"><?php echo _("Cursor"); ?></a>
<a type="button" class="btn btn-small btn_fadein" data-state="fadein"><?php echo _("Fade In"); ?></a>
<a type="button" class="btn btn-small btn_fadeout" data-state="fadeout"><?php echo _("Fade Out"); ?></a>
</div>
</div>
</script>
</body>
</html>

View file

@ -899,6 +899,7 @@ SQL;
// any data from the db for these and datatables will complain // any data from the db for these and datatables will complain
$row['checkbox'] = ""; $row['checkbox'] = "";
$row['image'] = ""; $row['image'] = "";
$row['options'] = "";
$type = substr($row['ftype'], 0, 2); $type = substr($row['ftype'], 0, 2);
$row['tr_id'] = "{$type}_{$row['id']}"; $row['tr_id'] = "{$type}_{$row['id']}";

View file

@ -1,29 +1,28 @@
<div> <div><!-- jQuery UI changes the styling on the outermost div; use a blank div so as not to break the .wrapper styling-->
<!-- jQuery UI changes the styling on the outermost div; use a blank div so as not to break the .wrapper styling-->
<div class="wrapper"> <div class="wrapper">
<div> <div id="media_selector_wrapper">
<div class="media_type_selector dashboard_sub_nav" data-selection-id="1"> <div class="media_type_selector dashboard_sub_nav" data-selection-id="1">
<a href="#files"> <a href="#tracks">
<i class='icon-music icon-white'></i> <i class='icon-music icon-white'></i>
<span class="selector-name hidden"><?php echo _("Tracks") ?></span> <span class="selector-name"><?php echo _("Tracks") ?></span>
</a> </a>
</div> </div>
<div class="media_type_selector dashboard_sub_nav" data-selection-id="2"> <div class="media_type_selector dashboard_sub_nav" data-selection-id="2">
<a href="#playlists"> <a href="#playlists">
<i class='icon-list icon-white'></i> <i class='icon-list icon-white'></i>
<span class="selector-name hidden"><?php echo _("Playlists") ?></span> <span class="selector-name"><?php echo _("Playlists") ?></span>
</a> </a>
</div> </div>
<div class="media_type_selector dashboard_sub_nav" data-selection-id="3"> <div class="media_type_selector dashboard_sub_nav" data-selection-id="3">
<a href="#smart-blocks"> <a href="#smart-blocks">
<i class='icon-time icon-white'></i> <i class='icon-time icon-white'></i>
<span class="selector-name hidden"><?php echo _("Smart Blocks") ?></span> <span class="selector-name"><?php echo _("Smart Blocks") ?></span>
</a> </a>
</div> </div>
<div class="media_type_selector dashboard_sub_nav" data-selection-id="4"> <div class="media_type_selector dashboard_sub_nav" data-selection-id="4">
<a href="#webstreams"> <a href="#webstreams">
<i class='icon-random icon-white'></i> <i class='icon-random icon-white'></i>
<span class="selector-name hidden"><?php echo _("Webstreams") ?></span> <span class="selector-name"><?php echo _("Webstreams") ?></span>
</a> </a>
</div> </div>
</div> </div>
@ -31,7 +30,7 @@
<div id="library_content" class="lib-content tabs content-pane wide-panel"> <div id="library_content" class="lib-content tabs content-pane wide-panel">
<div> <div>
<h2 id="library_title">Library</h2> <h2 id="library_title"><?php echo _("Dashboard")." - " ?><span id="library_filter"></span></h2>
</div> </div>
<div class="panel-header"> <div class="panel-header">
<div id="advanced-options" class="btn-group"> <div id="advanced-options" class="btn-group">

View file

@ -2,7 +2,7 @@
<div id="library_content" class="lib-content tabs content-pane wide-panel"> <div id="library_content" class="lib-content tabs content-pane wide-panel">
<div> <div>
<h2 id="library_title">Library</h2> <h2 id="library_title"><?php echo _("Dashboard")." - " ?><span id="library_filter"></span></h2>
</div> </div>
<div class="panel-header"> <div class="panel-header">
<div id="advanced-options" class="btn-group"> <div id="advanced-options" class="btn-group">

View file

@ -262,7 +262,7 @@ table.datatable tr.sb-header.odd:hover td, table.datatable tr.sb-header.even:hov
.ui-dialog .wrapper { .ui-dialog .wrapper {
margin: 0; margin: 0;
padding: 10px 0 0 0; padding: 10px 0 40px;
overflow: hidden; overflow: hidden;
top: 0; top: 0;
left: 0; left: 0;

View file

@ -36,7 +36,7 @@ html, body {
h2 { h2 {
color: #efefef; color: #efefef;
font-size: 2.1em; font-size: 20px;
font-weight: normal; font-weight: normal;
margin: 0; margin: 0;
padding: 0 0 10px; padding: 0 0 10px;
@ -3498,8 +3498,6 @@ button.btn-icon-text > i.icon-white {
font-size: 16px; font-size: 16px;
font-weight: 400; font-weight: 400;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
/*margin: 20px 20px 0 5px;*/
/*padding: 10px 0px 10px 0px;*/
padding: 0; padding: 0;
-webkit-transition: color 0.1s linear; -webkit-transition: color 0.1s linear;
@ -3508,14 +3506,43 @@ button.btn-icon-text > i.icon-white {
transition: color 0.1s linear; transition: color 0.1s linear;
} }
#media_selector_wrapper {
flex: 0 0 100%;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-flow: row wrap;
flex-flow: row wrap;
}
.ui-dialog-content .media_type_selector {
padding-left: 0;
flex: 1 auto;
}
.ui-dialog-content .media_type_selector.selected,
.ui-dialog-content .media_type_selector.selected a {
border: none;
border-bottom: 1px solid #FF5D1A;
}
#nav i, .media_type_selector i { #nav i, .media_type_selector i {
margin-right: 10px; margin-right: 10px;
} }
.media_type_selector.highlight,
.media_type_selector.highlight a {
color: #fff;
background-color: #444;
border-right: 1px solid #FF5D1A;
}
.media_type_selector.selected, .media_type_selector.selected a { .media_type_selector.selected, .media_type_selector.selected a {
color: #fff; color: #fff;
background-color: #444; background-color: #444;
border-right: 1px solid #FF5D1A; border-right: 1px solid #1ADEFF;
-webkit-transition: color 0.1s linear; -webkit-transition: color 0.1s linear;
-moz-transition: color 0.1s linear; -moz-transition: color 0.1s linear;
-o-transition: color 0.1s linear; -o-transition: color 0.1s linear;

View file

@ -361,7 +361,7 @@ var AIRTIME = (function(AIRTIME) {
*/ */
mod.deselectCurrentPage = function() { mod.deselectCurrentPage = function() {
var $trs = $libTable.find("tr"); var $trs = $libTable.find("tr");
mod.selectAll($trs); mod.deselectAll($trs);
}; };
mod.selectNone = function() { mod.selectNone = function() {
@ -599,7 +599,7 @@ var AIRTIME = (function(AIRTIME) {
/* Upload Time */ { "sTitle" : $.i18n._("Uploaded") , "mDataProp" : "utime" , "bVisible" : false , "sClass" : "library_upload_time" , "sWidth" : "155px" }, /* Upload Time */ { "sTitle" : $.i18n._("Uploaded") , "mDataProp" : "utime" , "bVisible" : false , "sClass" : "library_upload_time" , "sWidth" : "155px" },
/* Website */ { "sTitle" : $.i18n._("Website") , "mDataProp" : "info_url" , "bVisible" : false , "sClass" : "library_url" , "sWidth" : "150px" }, /* Website */ { "sTitle" : $.i18n._("Website") , "mDataProp" : "info_url" , "bVisible" : false , "sClass" : "library_url" , "sWidth" : "150px" },
/* Year */ { "sTitle" : $.i18n._("Year") , "mDataProp" : "year" , "bVisible" : false , "sClass" : "library_year" , "sWidth" : "60px" }, /* Year */ { "sTitle" : $.i18n._("Year") , "mDataProp" : "year" , "bVisible" : false , "sClass" : "library_year" , "sWidth" : "60px" },
/* Context Menu */ { "sTitle" : "" , "mData" : null , "bSortable" : false , "sClass" : "library_actions" , "bSearchable" : false , "sWidth" : "16px" } /* Context Menu */ { "sTitle" : "" , "mDataProp" : "options" , "bSortable" : false , "bSearchable" : false , "sWidth" : "16px", "sClass" : "library_actions" }
], ],
"bProcessing": true, "bProcessing": true,
@ -678,6 +678,7 @@ var AIRTIME = (function(AIRTIME) {
*/ */
var advSearchFields = $("div#advanced_search").children(':visible'); var advSearchFields = $("div#advanced_search").children(':visible');
var advSearchValid = validateAdvancedSearch(advSearchFields); var advSearchValid = validateAdvancedSearch(advSearchFields);
advSearchFields.val("TEST");
var type; var type;
aoData.push( { name: "format", value: "json"} ); aoData.push( { name: "format", value: "json"} );
aoData.push( { name: "advSearch", value: advSearchValid} ); aoData.push( { name: "advSearch", value: advSearchValid} );

View file

@ -121,10 +121,15 @@ function findViewportDimensions() {
} }
function highlightMediaTypeSelector(dialog) { function highlightMediaTypeSelector(dialog) {
var selected;
if (location.hash === "") { if (location.hash === "") {
dialog.find("a[href$='#files']").parent().addClass("selected"); selected = dialog.find("a[href$='#tracks']");
} else {
selected = dialog.find("a[href$='"+location.hash+"']")
} }
dialog.find("a[href$='"+location.hash+"']").parent().addClass("selected");
selected.parent().addClass("selected");
$("#library_filter").text(selected.text());
// Slightly hacky way of triggering the click event when it's outside of the anchor text // Slightly hacky way of triggering the click event when it's outside of the anchor text
dialog.find(".media_type_selector").on("click", function() { dialog.find(".media_type_selector").on("click", function() {
@ -133,11 +138,13 @@ function highlightMediaTypeSelector(dialog) {
}); });
$(window).on('hashchange', function() { $(window).on('hashchange', function() {
var selected = dialog.find("a[href$='"+location.hash+"']");
AIRTIME.library.selectNone(); AIRTIME.library.selectNone();
dialog.find(".media_type_selector").each(function () { dialog.find(".media_type_selector").each(function () {
$(this).removeClass("selected"); $(this).removeClass("selected");
}); });
dialog.find("a[href$='"+location.hash+"']").parent().addClass("selected"); $("#library_filter").text(selected.text());
selected.parent().addClass("selected");
oTable.fnDraw(); oTable.fnDraw();
}); });
} }

View file

@ -198,7 +198,6 @@ var AIRTIME = (function(AIRTIME){
}; };
mod.checkToolBarIcons = function() { mod.checkToolBarIcons = function() {
//library may not be on the page. //library may not be on the page.
if (AIRTIME.library !== undefined) { if (AIRTIME.library !== undefined) {
AIRTIME.library.checkAddButton(); AIRTIME.library.checkAddButton();
@ -332,7 +331,6 @@ var AIRTIME = (function(AIRTIME){
}; };
mod.fnMove = function(aSelect, aAfter) { mod.fnMove = function(aSelect, aAfter) {
mod.disableUI(); mod.disableUI();
$.post(baseUrl+"showbuilder/schedule-move", $.post(baseUrl+"showbuilder/schedule-move",
@ -757,6 +755,7 @@ var AIRTIME = (function(AIRTIME){
tr.addClass(SB_SELECTED_CLASS); tr.addClass(SB_SELECTED_CLASS);
tr.find("input[type='checkbox']").prop("checked", true); tr.find("input[type='checkbox']").prop("checked", true);
}); });
mod.checkToolBarIcons();
} }
}, },
@ -874,11 +873,12 @@ var AIRTIME = (function(AIRTIME){
$previouslySelected = undefined; $previouslySelected = undefined;
tr.removeClass(SB_SELECTED_CLASS); tr.removeClass(SB_SELECTED_CLASS);
tr.find(".sb-checkbox > input").prop('checked', false); tr.find(".sb-checkbox > input").prop('checked', false);
mod.checkToolBarIcons();
} else { } else {
tr.addClass(SB_SELECTED_CLASS);
tr.find(".sb-checkbox > input").prop('checked', true); tr.find(".sb-checkbox > input").prop('checked', true);
mod.checkToolBarIcons();
} }
mod.checkToolBarIcons();
selectedRows = $("." + SB_SELECTED_CLASS); selectedRows = $("." + SB_SELECTED_CLASS);
}); });
@ -889,14 +889,14 @@ var AIRTIME = (function(AIRTIME){
$previouslySelected = undefined; $previouslySelected = undefined;
tr.removeClass(SB_SELECTED_CLASS); tr.removeClass(SB_SELECTED_CLASS);
tr.find(".sb-checkbox > input").prop('checked', false); tr.find(".sb-checkbox > input").prop('checked', false);
mod.checkToolBarIcons();
} else if (!(e.shiftKey || e.ctrlKey)) { } else if (!(e.shiftKey || e.ctrlKey)) {
mod.selectNone(); mod.selectNone();
tr.addClass(SB_SELECTED_CLASS); tr.addClass(SB_SELECTED_CLASS);
tr.find(".sb-checkbox > input").prop('checked', true); tr.find(".sb-checkbox > input").prop('checked', true);
$previouslySelected = tr; $previouslySelected = tr;
mod.checkToolBarIcons();
} }
mod.checkToolBarIcons();
selectedRows = $("." + SB_SELECTED_CLASS); selectedRows = $("." + SB_SELECTED_CLASS);
}); });

View file

@ -118,10 +118,16 @@ AIRTIME = (function(AIRTIME) {
function highlightMediaTypeSelector() function highlightMediaTypeSelector()
{ {
$(".media_type_selector:first").addClass("highlight");
var selected;
if (location.hash === "") { if (location.hash === "") {
$("a[href$='#files']").parent().addClass("selected"); selected = $("a[href$='#tracks']");
} else {
selected = $("a[href$='"+location.hash+"']");
} }
$("a[href$='"+location.hash+"']").parent().addClass("selected");
selected.parent().addClass("selected");
$("#library_filter").text(selected.text());
// Slightly hacky way of triggering the click event when it's outside of the anchor text // Slightly hacky way of triggering the click event when it's outside of the anchor text
$(".media_type_selector").on("click", function() { $(".media_type_selector").on("click", function() {
@ -130,7 +136,7 @@ AIRTIME = (function(AIRTIME) {
}); });
$(window).on('hashchange', function() { $(window).on('hashchange', function() {
var selected = $("a[href$='"+location.hash+"']");
// If we click Dashboard from one of the media views, do nothing // If we click Dashboard from one of the media views, do nothing
if (!location.hash) { if (!location.hash) {
return; return;
@ -139,8 +145,11 @@ AIRTIME = (function(AIRTIME) {
$(".media_type_selector").each(function () { $(".media_type_selector").each(function () {
$(this).removeClass("selected"); $(this).removeClass("selected");
}); });
$("a[href$='"+location.hash+"']").parent().addClass("selected"); selected.parent().addClass("selected");
oTable.fnDraw(); oTable.fnDraw();
$("#library_filter").text(selected.text());
// Highlight the dashboard link
$(".media_type_selector:first").addClass("highlight");
}); });
} }