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

Conflicts:
	airtime_mvc/public/js/airtime/common/common.js
This commit is contained in:
Duncan Sommerville 2015-08-14 10:54:53 -04:00
commit 12c4e4a374
18 changed files with 318 additions and 171 deletions

View file

@ -36,7 +36,7 @@ define('DEFAULT_TIMESTAMP_FORMAT', 'Y-m-d H:i:s');
define('DEFAULT_MICROTIME_FORMAT', 'Y-m-d H:i:s.u');
define('DEFAULT_ICECAST_PORT', 8000);
define('DEFAULT_ICECAST_PASS', 'hackme');
define('DEFAULT_SHOW_COLOR', '3366cc');
define('DEFAULT_SHOW_COLOR', '5B9CAB');
// Metadata Keys for files
define('MDATA_KEY_FILEPATH' , 'filepath');

View file

@ -8,27 +8,27 @@
* the navigation container below.
*/
$pages = array(
array(
/*array(
'label' => _('Now Playing'),
'module' => 'default',
'controller' => 'Showbuilder',
'action' => 'index',
'resource' => 'showbuilder'
),
),*/
array(
'label' => _('Add Media'),
'module' => 'default',
'controller' => 'Plupload',
'action' => 'index',
'resource' => 'plupload'
),
),/*
array(
'label' => _('Library'),
'module' => 'default',
'controller' => 'Library',
'action' => 'index',
'resource' => 'playlist'
),
),*/
array(
'label' => _('Calendar'),
'module' => 'default',

View file

@ -290,7 +290,7 @@ class LocaleController extends Zend_Controller_Action
//"Select" => _("Select"),
"Select all" => _("Select all"),
"Select none" => _("Select none"),
"Remove overbooked tracks" => _("Remove overbooked tracks"),
"Trim overbooked shows" => _("Trim overbooked shows"),
"Remove selected scheduled items" => _("Remove selected scheduled items"),
"Jump to the current playing track" => _("Jump to the current playing track"),
"Cancel current show" => _("Cancel current show"),

View file

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

View file

@ -50,14 +50,13 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
</script>
<div id="nav">
<!--<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>
<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>
@ -70,14 +69,48 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
</div>
</div>
<div class="responsive-menu">
<?php echo $this->navigation()->menu() ?>
<?php /*echo $this->navigation()->menu() */?>
</div>
<div style="clear:both;"></div>
</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="/show-builder"><?php echo _("Dashboard") ?></a></div>
<div class="media_type_selector dashboard_sub_nav" selection_id="1">
<a href="/show-builder#files"><?php echo _("Files") ?></a></div>
<div class="media_type_selector dashboard_sub_nav" selection_id="2">
<a href="/show-builder#playlists"><?php echo _("Playlists") ?></a></div>
<div class="media_type_selector dashboard_sub_nav" selection_id="3">
<a href="/show-builder#smart-blocks"><?php echo _("Smart Blocks") ?></a></div>
<div class="media_type_selector dashboard_sub_nav" selection_id="4">
<a href="/show-builder#webstreams"><?php echo _("Webstreams") ?></a></div>
<hr style="margin-left: 5px; margin-right: 5px">
<div id="nav">
<?php echo $this->navigation()->menu() ?>
</div>
</div>
<?php $hint = Application_Common_UsabilityHints::getUsabilityHint(); ?>
<div class="usability_hint" <?php if ($hint == "") { echo "style='display:none'"; } ?>><?php echo $hint; ?></div>
@ -129,3 +162,4 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
</script>
</body>
</html>

View file

@ -1,3 +1,8 @@
<?php echo $this->doctype() ?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
@ -31,7 +36,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
$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'])) ?>
"scheduled_play_switch"=>$sss['scheduled_play'], "baseUrl"=>$baseUrl)) ?>
<?php $partial = array('menu.phtml', 'default');
$this->navigation()->menu()->setPartial($partial); ?>
@ -50,12 +55,13 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
</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;-->
<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>
@ -69,12 +75,14 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
<span></span>
</div>
</div>
<div class="responsive-menu">
<?php echo $this->navigation()->menu() ?>
</div>
<div style="clear:both;"></div>
</div>
-->
<?php endif; //suspended ?>
</div>
@ -95,10 +103,20 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
</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 class="media_type_selector" selection_id="1">
<a href="/show-builder"><?php echo _("Dashboard") ?></a></div>
<div class="media_type_selector dashboard_sub_nav" selection_id="1">
<a href="/show-builder#files"><?php echo _("Files") ?></a></div>
<div class="media_type_selector dashboard_sub_nav" selection_id="2">
<a href="/show-builder#playlists"><?php echo _("Playlists") ?></a></div>
<div class="media_type_selector dashboard_sub_nav" selection_id="3">
<a href="/show-builder#smart-blocks"><?php echo _("Smart Blocks") ?></a></div>
<div class="media_type_selector dashboard_sub_nav" selection_id="4">
<a href="/show-builder#webstreams"><?php echo _("Webstreams") ?></a></div>
<div id="nav">
<?php echo $this->navigation()->menu() ?>
</div>
</div>
<div class="wrapper dropzone" id="content">

View file

@ -49,8 +49,16 @@
<a href="#" class="listen-control-button"><span><?php echo _("Listen") ?></span></a>
</div>
<div class="time-info-block pull-right">
<div class="logo"></div>
<div class="personal-block solo">
<ol>
<li>
<a id="current-user" href=<?php echo $this->baseUrl . "user/edit-user"?>><span class="name"><?php echo $this->escape($this->loggedInAs()); ?></span></a>
| <a href=<?php echo $this->baseUrl . "login/logout"?>><?php echo _("Logout")?></a>
</li>
</ol>
</div>
<ul>
<li><?php echo _("Station time") ?></li>
<li class="time" id="time"></li>
<li class="time-zone"><span id="time-zone"></span></li>
</ul>

View file

@ -43,7 +43,7 @@
</div>
<div id="recent_uploads_wrapper" class="lib-content ui-widget ui-widget-content block-shadow alpha-block">
<div id="recent_uploads_wrapper" class="lib-content ui-widget ui-widget-content block-shadow">
<div id="recent_uploads" class="padded">
<div id="recent_uploads_filter">

View file

@ -2,15 +2,15 @@ div.ColVis_collectionBackground {
background-color: transparent;
}
.wrapper {
/*background: #242424;*/
/*.wrapper {
*//*background: #242424;*//*
background: #111;
top: 139px;
top: 105px;
left: 130px;
right: 0;
bottom: 0;
padding: 10px 10px 40px;
/*padding: 0;*/
padding: 5px 10px 40px;
*//*padding: 0;*//*
border: none;
display: -webkit-box;
@ -29,13 +29,13 @@ div.ColVis_collectionBackground {
transition: top 0.2s linear, padding 0.2s linear;
}
/* Usability hint */
*//* Usability hint *//*
.usability_hint {
left: 130px;
flex: 0 100%;
width: 100%;
}
}*/
/* Scroll bars */
@ -251,18 +251,6 @@ thead th.ui-state-default:focus {
outline: none;
}
/* Library Context Menu */
.context-menu-item.icon {
min-height: 26px;
padding: 0 5px;
background-position: 4px 5px;
}
.context-menu-item > span {
padding: 0 20px;
line-height: 26px;
}
/* Library Search */
@ -619,76 +607,6 @@ li.ui-state-default {
padding-top: 4px;
}
/* Media type selector */
#media_type_nav {
position: fixed;
top: 139px;
bottom: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
width: 130px;
flex: 1 auto;
padding: 0;
background: #353535;
border: 1px solid #242424;
border-top: 1px solid #7e7e7e;
/* border: 1px solid #242424; */
-moz-box-shadow: 0 2px 5px rgba(0,0,0,.35);
-webkit-box-shadow: 0 2px 5px rgba(0,0,0,.35);
box-shadow: 0 2px 5px rgba(0,0,0,.35);
z-index: 100;
text-align: left;
}
#media_type_nav .btn-group {
padding: 4px;
}
#new_media_selector {
width: 100%;
font-size: 14px;
}
.media_type_selector {
cursor: pointer;
color: #cecece;
font-family: Roboto, "Open Sans", sans-serif;
font-size: 16px;
font-weight: 400;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
/*margin: 20px 20px 0 5px;*/
padding: 10px 10px 10px 10px;
-webkit-transition: color 0.1s linear;
-moz-transition: color 0.1s linear;
-o-transition: color 0.1s linear;
transition: color 0.1s linear;
}
.media_type_selector.selected {
color: #fff;
background-color: #444;
-webkit-transition: color 0.1s linear;
-moz-transition: color 0.1s linear;
-o-transition: color 0.1s linear;
transition: color 0.1s linear;
}
.media_type_selector:hover {
color: #fff;
-webkit-transition: color 0.1s linear;
-moz-transition: color 0.1s linear;
-o-transition: color 0.1s linear;
transition: color 0.1s linear;
}
/* DataTables */
.ColVis_collection.TableTools_collection.ui-buttonset.ui-buttonset-multi {
@ -776,24 +694,3 @@ th.library_checkbox {
border: none;
}
/* Uploads/Dropzone */
#upload_form {
width: 100%;
min-width: 555px;
background: none;
border: 2px dashed #efefef;
color: #efefef;
font-family: Roboto, "Open Sans", sans-serif;
font-size: 20px;
font-weight: 300;
line-height: 14px;
margin-top: 10px;
}
.dropzone .dz-message {
margin: 0;
}

View file

@ -167,3 +167,16 @@
.context-menu-accesskey {
text-decoration: underline;
}
/* Library Context Menu */
.context-menu-item.icon {
min-height: 26px;
padding: 0 5px;
background-position: 4px 5px;
}
.context-menu-item > span {
padding: 0 20px;
line-height: 26px;
}

View file

@ -14,6 +14,9 @@
}
.player-preview {
width: 100%;
background-color: #111;
padding-top: 25px;
padding-bottom: 25px;
}
.player-preview iframe {
margin: 0 auto;
@ -31,15 +34,13 @@
padding-bottom: 10px;
font-size: 14px;
/*font-weight: bold;*/
color: #333;
margin-bottom: 10px;
margin-top: 10px;
}
.player-title {
clear: left;
color: #5b5b5b;
float: left;
font-size: 13px;
font-weight: bold;
width: 40px;
padding: 4px 0;
text-align: left;
@ -55,7 +56,6 @@
#player_embed_src-element p {
margin: 0px;
font-size: 13px;
color: #333;
}
@ -75,7 +75,7 @@ table#player_compatibility_chart{
#player_compatibility_chart th
{
color: #5b5b5b;
color: #1f1f1f;
border: 0px;
}

View file

@ -10,7 +10,7 @@ way to fit your requirements.
=================================================================== */
#nav {
padding:7px 0 0 6px;
/*padding:7px 0 0 6px;*/
margin:0;
list-style:none;
height:28px;
@ -18,16 +18,17 @@ way to fit your requirements.
position:relative;
z-index:500;
font-family:Arial, Helvetica, sans-serif;
border-top:1px solid #7e7e7e;
/*border-top:1px solid #7e7e7e;
border-bottom:1px solid #242424;
-moz-box-shadow: 0 2px 5px rgba(0,0,0,.35);
-webkit-box-shadow: 0 2px 5px rgba(0,0,0,.35);
box-shadow: 0 2px 5px rgba(0,0,0,.35);
box-shadow: 0 2px 5px rgba(0,0,0,.35);*/
}
#nav li.top {
display:block;
float:left;
margin:0 5px 0 0;
/*margin:0 5px 0 0;*/
padding: 10px;
}
#nav li a.top_link {
display:block;
@ -35,16 +36,16 @@ way to fit your requirements.
height:18px;
color:#ccc;
text-decoration:none;
font-size:11px;
text-transform:uppercase;
font-weight:bold;
padding:4px 0 0 14px;
font-size:16px;
/*text-transform:uppercase;*/
/*font-weight:bold;*/
/*padding:4px 0 0 10px;*/
cursor:pointer;
}
#nav li a.top_link span {
float:left;
display:block;
padding:0 14px 0 0;
padding: 0 14px 0 0;
}
#nav li a.top_link span.down {
float:left;
@ -55,7 +56,7 @@ way to fit your requirements.
}
#nav li:hover a.top_link, #nav li.active a.top_link, #nav li.active:hover a.top_link {
color:#fff;
background:#000;
/*background:#000;*/
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;

View file

@ -1787,7 +1787,7 @@ button, input {
.user-management {
width:910px;
height: 410px;
min-height: 410px;
}
.user-management-expanded {
width:910px;
@ -3395,15 +3395,12 @@ dd .stream-status {
margin-bottom: 20px;
}
#weekly-schedule-widget label {
font-weight: bold;
}
.schedule_iframe_wrapper {
width: 100%;
float: left;
text-align: center;
padding: 10px;
background-color: #111;
padding-top: 25px;
padding-bottom: 25px;
margin-bottom: 25px;
}
#schedule_iframe {
@ -3412,6 +3409,21 @@ dd .stream-status {
/* Usability Hints */
/*
* This is a temporary solution to a larger issue;
* we should revisit this (and really all of the
* absolute positioning in Airtime) when we want
* to focus on responsive design.
*/
.usability_hint:not(.hidden) + .wrapper {
top: 105px;
-webkit-transition: top 0.2s linear;
-moz-transition: top 0.2s linear;
-o-transition: top 0.2s linear;
transition: top 0.2s linear;
}
.usability_hint {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
@ -3425,9 +3437,10 @@ dd .stream-status {
text-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
position: fixed;
top: 139px;
width: 100%;
top: 105px;
width: 90%;
z-index: 1;
margin: 5px 10px;
}
.usability_hint a {
@ -3443,3 +3456,131 @@ dd .stream-status {
#upload_form, #recent_uploads_wrapper {
box-sizing: border-box;
}
button.btn-icon-text > i.icon-white {
margin-right: 4px;
}
/* Media type selector */
#media_type_nav {
position: absolute;
top: 105px;
bottom: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
width: 130px;
flex: 1 auto;
padding: 0;
background: #353535;
border: 1px solid #242424;
border-top: 1px solid #7e7e7e;
/* border: 1px solid #242424; */
-moz-box-shadow: 0 2px 5px rgba(0,0,0,.35);
-webkit-box-shadow: 0 2px 5px rgba(0,0,0,.35);
box-shadow: 0 2px 5px rgba(0,0,0,.35);
z-index: 100;
text-align: left;
}
#media_type_nav .btn-group {
padding: 4px;
}
#new_media_selector {
width: 100%;
font-size: 14px;
}
.media_type_selector {
cursor: pointer;
color: #cecece;
font-family: Roboto, "Open Sans", sans-serif;
font-size: 16px;
font-weight: 400;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
/*margin: 20px 20px 0 5px;*/
padding: 10px 10px 10px 10px;
-webkit-transition: color 0.1s linear;
-moz-transition: color 0.1s linear;
-o-transition: color 0.1s linear;
transition: color 0.1s linear;
}
.media_type_selector.selected {
color: #fff;
background-color: #444;
-webkit-transition: color 0.1s linear;
-moz-transition: color 0.1s linear;
-o-transition: color 0.1s linear;
transition: color 0.1s linear;
}
.media_type_selector:hover, .media_type_selector a:hover {
color: #fff;
-webkit-transition: color 0.1s linear;
-moz-transition: color 0.1s linear;
-o-transition: color 0.1s linear;
transition: color 0.1s linear;
}
.media_type_selector a {
text-decoration: none;
color: #cecece;
}
.dashboard_sub_nav {
padding-left: 20px;
}
.wrapper {
/*background: #242424;*/
background: #111;
top: 105px;
left: 130px;
right: 0;
bottom: 0;
padding: 5px 10px 40px;
/*padding: 0;*/
border: none;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-flow: row wrap;
flex-flow: row wrap;
overflow: auto;
-webkit-transition: top 0.2s linear;
-moz-transition: top 0.2s linear;
-o-transition: top 0.2s linear;
transition: top 0.2s linear;
}
/* Usability hint */
.usability_hint {
left: 130px;
flex: 0 100%;
width: 100%;
}
/* Uploads/Dropzone */
#upload_form {
width: 100%;
min-width: 555px;
margin-bottom: 10px;
}

View file

@ -480,12 +480,12 @@ function setCurrentUserPseudoPassword() {
$('#cu_passwordVerify').val("xxxxxx");
}
$(window).resize(function() {
/* If we don't do this, the menu can stay hidden after resizing */
/*$(window).resize(function() {
*//* If we don't do this, the menu can stay hidden after resizing *//*
if ($(this).width() > 970) {
$("#nav .responsive-menu").show();
}
});
});*/
$(document).ready(function() {
if ($('#master-panel').length > 0)
@ -509,7 +509,7 @@ $(document).ready(function() {
// text. This differs depending on the language setting
$('#popup-link').css('width', $('.jp-container h1').css('width'));
$('#menu-btn').click(function() {
/*$('#menu-btn').click(function() {
$('#nav .responsive-menu').slideToggle();
});
});*/
});

View file

@ -136,7 +136,7 @@ var AIRTIME = (function(AIRTIME) {
"</button>" +
"</div>")
.append("<div class='btn-group' title=" + $.i18n._('Delete') + ">" +
"<button class='btn btn-small' id='sb-trash'>" +
"<button class='btn btn-small btn-danger' id='sb-trash'>" +
"<i class='icon-white icon-trash'></i>" +
"<span>" + $.i18n._('Delete') + "</span>" +
"</button>" +
@ -1257,6 +1257,19 @@ $(document).ready(function() {
}
});
if (location.hash === "") {
$("a[href$='#files']").parent().addClass("selected");
}
$("a[href$='"+location.hash+"']").parent().addClass("selected");
$(window).on('hashchange', function() {
$(".media_type_selector").each(function () {
$(this).removeClass("selected");
});
$("a[href$='"+location.hash+"']").parent().addClass("selected");
oTable.fnDraw();
});
$(".media_type_selector").on("click", function() {
if (!$(this).hasClass("selected")) {
AIRTIME.library.selectNone();

View file

@ -0,0 +1,14 @@
/*$(document).ready(function() {
$(".media_type_selector").on("click", function() {
console.log("hello");
console.log(location.hash);
if (!$(this).hasClass("selected")) {
//AIRTIME.library.selectNone();
$(".media_type_selector").each(function () {
$(this).removeClass("selected");
});
$(this).addClass("selected");
oTable.fnDraw();
}
});
});*/

View file

@ -1103,21 +1103,29 @@ var AIRTIME = (function(AIRTIME){
"</ul>" +
"</div>")
.append("<div class='btn-group'>" +
"<button title='"+$.i18n._("Remove overbooked tracks")+"' class='ui-state-disabled btn btn-small' disabled='disabled'>" +
"<i class='icon-white icon-cut'></i></button></div>")
"<button title='"+$.i18n._("Trim overbooked shows")+"' class='ui-state-disabled btn btn-small btn-icon-text' disabled='disabled'>" +
"<i class='icon-white icon-cut'></i>" +
"<span>" + $.i18n._('Trim overbooked shows') + "</span>" +
"</button></div>")
.append("<div class='btn-group'>" +
"<button title='"+$.i18n._("Remove selected scheduled items")+"' class='ui-state-disabled btn btn-small' disabled='disabled'>" +
"<i class='icon-white icon-trash'></i></button></div>");
"<button title='"+$.i18n._("Remove selected scheduled items")+"' class='ui-state-disabled btn btn-small btn-icon-text btn-danger' disabled='disabled'>" +
"<i class='icon-white icon-trash'></i>" +
"<span>" + $.i18n._('Remove') + "</span>" +
"</button></div>");
//if 'Add/Remove content' was chosen from the context menu
//in the Calendar do not append these buttons
if ($(".ui-dialog-content").length === 0) {
$menu.append("<div class='btn-group'>" +
"<button title='"+$.i18n._("Jump to the current playing track")+"' class='ui-state-disabled btn btn-small' disabled='disabled'>" +
"<i class='icon-white icon-step-forward'></i></button></div>")
"<button title='"+$.i18n._("Jump to the current playing track")+"' class='ui-state-disabled btn btn-small btn-icon-text' disabled='disabled'>" +
"<i class='icon-white icon-step-forward'></i>" +
"<span>" + $.i18n._('Jump to Current') + "</span>" +
"</button></div>")
.append("<div class='btn-group'>" +
"<button title='"+$.i18n._("Cancel current show")+"' class='ui-state-disabled btn btn-small btn-danger' disabled='disabled'>" +
"<i class='icon-white icon-ban-circle'></i></button></div>");
"<button title='"+$.i18n._("Cancel current show")+"' class='ui-state-disabled btn btn-small btn-icon-text btn-danger' disabled='disabled'>" +
"<i class='icon-white icon-ban-circle'></i>" +
"<span>" + $.i18n._('Cancel current show') + "</span>" +
"</button></div>");
}
if (localStorage.getItem('user-type') != 'G') {