Merge branch 'saas-showbuilder' of github.com:sourcefabric/Airtime into saas-showbuilder

This commit is contained in:
Albert Santoni 2015-08-10 14:17:24 -04:00
commit a28df91c56
7 changed files with 213 additions and 91 deletions

View File

@ -10,6 +10,8 @@ class ShowBuilderController extends Zend_Controller_Action {
$baseUrl = Application_Common_OsPath::getBaseDir();
$userType = Application_Model_User::GetCurrentUser()->getType();
$this->_helper->layout->setLayout("showbuilder");
$this->view->headScript()->appendScript("localStorage.setItem( 'user-type', '$userType' );");
$this->view->headScript()->appendScript(Application_Common_GoogleAnalytics::generateGoogleTagManagerDataLayerJavaScript());

View File

@ -78,29 +78,6 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
<?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 selected" selection_id="1"><?php echo _("Files") ?></div>
<div class="media_type_selector" selection_id="2"><?php echo _("Playlists") ?></div>
<div class="media_type_selector" selection_id="3"><?php echo _("Smart Blocks") ?></div>
<div class="media_type_selector" selection_id="4"><?php echo _("Webstreams") ?></div>
</div>
<?php $hint = Application_Common_UsabilityHints::getUsabilityHint(); ?>
<div class="usability_hint" <?php if ($hint == "") { echo "style='display:none'"; } ?>><?php echo $hint; ?></div>

View File

@ -0,0 +1,154 @@
<?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'])) ?>
<?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 selected" selection_id="1"><?php echo _("Files") ?></div>
<div class="media_type_selector" selection_id="2"><?php echo _("Playlists") ?></div>
<div class="media_type_selector" selection_id="3"><?php echo _("Smart Blocks") ?></div>
<div class="media_type_selector" selection_id="4"><?php echo _("Webstreams") ?></div>
</div>
<?php $hint = Application_Common_UsabilityHints::getUsabilityHint(); ?>
<div class="usability_hint" <?php if ($hint == "") { echo "style='display:none'"; } ?>><?php echo $hint; ?></div>
<div class="wrapper dropzone" id="content">
<?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

@ -5,28 +5,6 @@
<!-- </div>-->
<!--</form>-->
<!--<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 selected" selection_id="1">--><?php //echo _("Files") ?><!--</div>-->
<!-- <div class="media_type_selector" selection_id="2">--><?php //echo _("Playlists") ?><!--</div>-->
<!-- <div class="media_type_selector" selection_id="3">--><?php //echo _("Smart Blocks") ?><!--</div>-->
<!-- <div class="media_type_selector" selection_id="4">--><?php //echo _("Webstreams") ?><!--</div>-->
<!--</div>-->
<?php echo $this->csrf ?>
<div id="library_content" class="lib-content tabs content-pane wide-panel">

View File

@ -1,4 +1,3 @@
div.ColVis_collectionBackground {
background-color: transparent;
}
@ -115,39 +114,12 @@ div.ColVis_collectionBackground {
flex: 8 100%;
min-height: 50%;
}
/*#media_type_nav {*/
/*display: -webkit-box;*/
/*display: -moz-box;*/
/*display: -ms-flexbox;*/
/*display: -webkit-flex;*/
/*display: flex;*/
/*-webkit-flex-flow: row;*/
/*flex-flow: row;*/
/*-webkit-align-items: center;*/
/*align-items: center;*/
/*-webkit-justify-content: center;*/
/*justify-content: center;*/
/*}*/
/*#media_type_nav .btn-group {*/
/*flex: 1 100%;*/
/*}*/
/*#media_type_nav .dropdown-menu {*/
/*width: 100%;*/
/*}*/
/*#media_type_nav .media_type_selector {*/
/*flex: 1 100%;*/
/*margin-top: 3px;*/
/*}*/
}
@media screen and (max-width: 780px) {
.wrapper {
padding: 4px 4px 40px !important;
}
/*#media_type_nav {*/
/*min-width: 555px;*/
/*}*/
}
@media screen and (max-width: 555px) {
@ -187,7 +159,9 @@ div.ColVis_collectionBackground {
}
#library_content .dataTables_length label {
color: #555555;
color: #efefef;
line-height: 26px;
font-weight: normal;
}
#library_content legend {
@ -207,11 +181,20 @@ div.ColVis_collectionBackground {
margin-right: 4px;
}
#library_content input[type="checkbox"], #library_content img,
.sb-content input[type="checkbox"], .sb-content img {
position: relative;
top: 2px;
}
div.btn > span
{
color: red;
}
.fg-toolbar.ui-toolbar {
border: none;
}
.fg-toolbar.ui-toolbar.ui-widget-header.ui-corner-bl.ui-corner-br.ui-helper-clearfix {
position: absolute;
@ -235,13 +218,13 @@ div.btn > span
.dataTables_scrolling {
position: absolute;
bottom: 39px; /* 38 px is the size of the header/footer + 1px because there's no internal border */
top: 39px;
left: 1px; /* Border */
bottom: 37px; /* 36 px is the size of the header/footer + 1px because there's no internal border */
top: 37px;
left: 0;
right: 0;
}
#library_display {
#library_display, #show_builder_table {
border: none;
}
@ -556,7 +539,7 @@ textarea {
#media_type_nav {
position: absolute;
top: 139px;
bottom: 0px;
bottom: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
@ -565,7 +548,7 @@ textarea {
width: 130px;
flex: 1 auto;
padding: 0px;
padding: 0;
/*margin-right: 10px;*/
/*text-align: center;*/
@ -654,7 +637,7 @@ textarea {
/* Hacky stuff here */
#show_builder .dataTables_scrolling {
top: 69px;
top: 67px;
}
.sb-padded > .fg-toolbar {
@ -667,6 +650,30 @@ textarea {
}
/* ~~~~~~~~~~~~~~~~ */
#library_display td, #show_builder td {
font-size: 14px;
}
#library_display td > span > span,
#show_builder td > span > span {
color: #efefef;
}
.datatable tr td[class$='checkbox'], .datatable tr td[class$='type'] {
text-align: center;
}
.datatable tr td { /*, .datatable tr th {*/
line-height: 28px;
font-size: 14px;
padding: 5px;
color: #CCC;
}
.datatable tr[class$='selected'] td,
.datatable tr.sb-now-playing td {
color: #efefef;
}
.datatable tr, .datatable td,
.dataTable tr, .dataTable td
@ -675,6 +682,7 @@ textarea {
}
/* This is so dragged items show up above the layout */
.ui-draggable-dragging {
z-index: 9999;
position: fixed !important;
@ -700,5 +708,4 @@ textarea {
.dropzone .dz-message {
margin: 0;
}
}

View File

@ -56,8 +56,8 @@
}
.sb-content input[type="checkbox"] {
position: relative;
top: 3px;
position: relative;
top: 3px;
}
.sb-content fieldset {

View File

@ -13,7 +13,7 @@ var AIRTIME = (function(AIRTIME){
showInstanceIds = [],
headerFooter = [],
DISABLED_CLASS = 'ui-state-disabled',
selected,
selectedRows,
$previouslySelected,
flagForDeselection;
@ -254,7 +254,7 @@ var AIRTIME = (function(AIRTIME){
var $trs = $sbTable.find("tr.lib-audio");
$trs.removeClass(SB_SELECTED_CLASS).find(".sb-checkbox > input").prop('checked', false);
$previouslySelected = undefined;
selected = undefined;
selectedRows = undefined;
mod.checkToolBarIcons();
};
@ -283,7 +283,7 @@ var AIRTIME = (function(AIRTIME){
checkError(json);
mod.getSelectedCursors();
selected = $(".sb-selected");
selectedRows = $("." + SB_SELECTED_CLASS);
oSchedTable.fnDraw();
mod.enableUI();
@ -748,10 +748,12 @@ var AIRTIME = (function(AIRTIME){
mod.checkToolBarIcons();
var sid;
if (selected !== undefined) {
selected.each(function (i, el) {
if (selectedRows !== undefined) {
selectedRows.each(function (i, el) {
sid = $(el).attr("id");
$("#" + sid).addClass(SB_SELECTED_CLASS);
var tr = $("#" + sid);
tr.addClass(SB_SELECTED_CLASS);
tr.find("input[type='checkbox']").prop("checked", true);
});
}
},
@ -806,6 +808,7 @@ var AIRTIME = (function(AIRTIME){
flagForDeselection = true;
}
selectedRows = $("." + SB_SELECTED_CLASS);
// Remember this row so we can properly multiselect
$previouslySelected = $tr;
});
@ -818,6 +821,7 @@ var AIRTIME = (function(AIRTIME){
} else {
$(this).find(".sb-checkbox > input").prop('checked', true);
}
selectedRows = $("." + SB_SELECTED_CLASS);
});
//begin context menu initialization.