diff --git a/airtime_mvc/application/controllers/LibraryController.php b/airtime_mvc/application/controllers/LibraryController.php
index aa6b15bb6..80f90fc90 100644
--- a/airtime_mvc/application/controllers/LibraryController.php
+++ b/airtime_mvc/application/controllers/LibraryController.php
@@ -73,8 +73,6 @@ class LibraryController extends Zend_Controller_Action
public function contextMenuAction()
{
- global $CC_CONFIG;
-
$id = $this->_getParam('id');
$type = $this->_getParam('type');
//playlist||timeline
diff --git a/airtime_mvc/application/controllers/ShowbuilderController.php b/airtime_mvc/application/controllers/ShowbuilderController.php
index 59df1f870..10648cd6b 100644
--- a/airtime_mvc/application/controllers/ShowbuilderController.php
+++ b/airtime_mvc/application/controllers/ShowbuilderController.php
@@ -12,6 +12,7 @@ class ShowbuilderController extends Zend_Controller_Action
->addActionContext('builder-dialog', 'json')
->addActionContext('check-builder-feed', 'json')
->addActionContext('builder-feed', 'json')
+ ->addActionContext('context-menu', 'json')
->initContext();
}
@@ -94,6 +95,28 @@ class ShowbuilderController extends Zend_Controller_Action
$this->_helper->actionStack('library', 'library');
$this->_helper->actionStack('builder', 'showbuilder');
}
+
+ public function contextMenuAction()
+ {
+ $id = $this->_getParam('id');
+ $now = time();
+
+ $request = $this->getRequest();
+ $baseUrl = $request->getBaseUrl();
+ $menu = array();
+
+ $userInfo = Zend_Auth::getInstance()->getStorage()->read();
+ $user = new Application_Model_User($userInfo->id);
+
+ $item = CcScheduleQuery::create()->findPK($id);
+ $instance = $item->getCcShowInstances();
+
+ if ($now < intval($item->getDbStarts("U")) && $user->canSchedule($instance->getDbShowId())) {
+ $menu["del"] = array("name"=> "Delete", "icon" => "delete", "url" => "/showbuilder/schedule-remove");
+ }
+
+ $this->view->items = $menu;
+ }
public function builderAction() {
diff --git a/airtime_mvc/public/js/airtime/library/library.js b/airtime_mvc/public/js/airtime/library/library.js
index 9f95862bc..571154ef1 100644
--- a/airtime_mvc/public/js/airtime/library/library.js
+++ b/airtime_mvc/public/js/airtime/library/library.js
@@ -329,6 +329,8 @@ var AIRTIME = (function(AIRTIME) {
addQtipToSCIcons();
+
+ //begin context menu initialization.
$.contextMenu({
selector: '#library_display td:not(.library_checkbox)',
trigger: "left",
diff --git a/airtime_mvc/public/js/airtime/library/spl.js b/airtime_mvc/public/js/airtime/library/spl.js
index 38771d4ce..982d0d79a 100644
--- a/airtime_mvc/public/js/airtime/library/spl.js
+++ b/airtime_mvc/public/js/airtime/library/spl.js
@@ -752,4 +752,24 @@ $(document).ready(function() {
AIRTIME.library.libraryInit();
AIRTIME.playlist.init();
+
+ pl.find(".ui-icon-alert").qtip({
+ content: {
+ text: "File does not exist on disk..."
+ },
+ position:{
+ adjust: {
+ resize: true,
+ method: "flip flip"
+ },
+ at: "right center",
+ my: "left top",
+ viewport: $(window)
+ },
+ style: {
+ classes: "ui-tooltip-dark"
+ },
+ show: 'mouseover',
+ hide: 'mouseout'
+ });
});
diff --git a/airtime_mvc/public/js/airtime/showbuilder/builder.js b/airtime_mvc/public/js/airtime/showbuilder/builder.js
index ccec211f3..5fe6eaf95 100644
--- a/airtime_mvc/public/js/airtime/showbuilder/builder.js
+++ b/airtime_mvc/public/js/airtime/showbuilder/builder.js
@@ -128,7 +128,7 @@ var AIRTIME = (function(AIRTIME){
oTable = tableDiv.dataTable( {
"aoColumns": [
- /* checkbox */ {"mDataProp": "allowed", "sTitle": "", "sWidth": "15px"},
+ /* checkbox */ {"mDataProp": "allowed", "sTitle": "", "sWidth": "15px", "sClass": "sb_checkbox"},
/* starts */{"mDataProp": "starts", "sTitle": "Start"},
/* ends */{"mDataProp": "ends", "sTitle": "End"},
/* runtime */{"mDataProp": "runtime", "sTitle": "Duration", "sClass": "library_length"},
@@ -214,6 +214,14 @@ var AIRTIME = (function(AIRTIME){
node,
cl="";
+ //call the context menu so we can prevent the event from propagating.
+ $(nRow).find('td:not(.sb_checkbox)').click(function(e){
+
+ $(this).contextMenu({x: e.pageX, y: e.pageY});
+
+ return false;
+ });
+
//save some info for reordering purposes.
$(nRow).data({"aData": aData});
@@ -565,6 +573,53 @@ var AIRTIME = (function(AIRTIME){
return false;
});
+ //begin context menu initialization.
+ $.contextMenu({
+ selector: '#show_builder_table td:not(.sb_checkbox)',
+ trigger: "left",
+ ignoreRightClick: true,
+
+ build: function($el, e) {
+ var data, items, callback, $tr;
+
+ $tr = $el.parent();
+ data = $tr.data("aData");
+
+ function processMenuItems(oItems) {
+
+ //define a delete callback.
+ if (oItems.del !== undefined) {
+
+ callback = function() {
+ AIRTIME.showbuilder.fnRemove([{
+ id: data.id,
+ timestamp: data.timestamp,
+ instance: data.instance
+ }]);
+ };
+
+ oItems.del.callback = callback;
+ }
+
+ items = oItems;
+ }
+
+ request = $.ajax({
+ url: "/showbuilder/context-menu",
+ type: "GET",
+ data: {id : data.id, format: "json"},
+ dataType: "json",
+ async: false,
+ success: function(json){
+ processMenuItems(json.items);
+ }
+ });
+
+ return {
+ items: items
+ };
+ }
+ });
};
mod.init = function(oTable) {