From 62c07107c1e562494c08dbf258ef9f526d668adb Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Mon, 5 Mar 2012 14:43:34 +0100 Subject: [PATCH 01/16] CC-3174 : showbuilder dialog improvements, can scroll library, builder independently. --- airtime_mvc/public/css/showbuilder.css | 14 ++++++++++- .../public/js/airtime/schedule/schedule.js | 24 +++++++++++++++---- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/airtime_mvc/public/css/showbuilder.css b/airtime_mvc/public/css/showbuilder.css index a0a7d8e82..c17319817 100644 --- a/airtime_mvc/public/css/showbuilder.css +++ b/airtime_mvc/public/css/showbuilder.css @@ -47,10 +47,22 @@ tr.cursor-selected-row .marker { .ui-dialog .wrapper { margin: 0; padding: 10px 0 0 0; + overflow: hidden; +} + +.ui-dialog #library_content { + margin: 0 10px 10px 0; + overflow: auto; + min-height: 0; } .ui-dialog #show_builder { - width:45%; + margin: 0 0 10px 0; + overflow: auto; +} + +.ui-dialog .padded { + padding: 8px 10px 8px 8px; } .ui-dialog .ui-buttonset { diff --git a/airtime_mvc/public/js/airtime/schedule/schedule.js b/airtime_mvc/public/js/airtime/schedule/schedule.js index e93be7df3..192a64488 100644 --- a/airtime_mvc/public/js/airtime/schedule/schedule.js +++ b/airtime_mvc/public/js/airtime/schedule/schedule.js @@ -100,15 +100,31 @@ function buildScheduleDialog (json) { var dialog = $(json.dialog), viewport = findViewportDimensions(), - height = viewport.height * 0.96, - width = viewport.width * 0.96, - fnServer = AIRTIME.showbuilder.fnServerData; - + height = Math.floor(viewport.height * 0.96), + width = Math.floor(viewport.width * 0.96), + fnServer = AIRTIME.showbuilder.fnServerData, + //subtract padding in pixels + widgetWidth = width - 50, + libWidth = Math.floor(widgetWidth * 0.5), + builderWidth = Math.floor(widgetWidth * 0.5); + + + + dialog.find("#library_content") + .height(height - 125) + .width(libWidth); + + dialog.find("#show_builder") + .height(height - 125) + .width(builderWidth); + dialog.dialog({ autoOpen: false, title: json.title, width: width, height: height, + resizable: false, + draggable: false, modal: true, close: closeDialog, buttons: {"Ok": function() { From b8ca0ef740534de751e54b1fbf39ff1a75ca7704 Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Mon, 5 Mar 2012 15:39:18 +0100 Subject: [PATCH 02/16] CC-3174 : showbuidler fixing width of search input so it will work on smaller screens. --- airtime_mvc/public/css/showbuilder.css | 2 +- airtime_mvc/public/css/styles.css | 2 +- .../public/js/airtime/schedule/schedule.js | 20 +++++++++++++------ 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/airtime_mvc/public/css/showbuilder.css b/airtime_mvc/public/css/showbuilder.css index c17319817..3aac1fc05 100644 --- a/airtime_mvc/public/css/showbuilder.css +++ b/airtime_mvc/public/css/showbuilder.css @@ -62,7 +62,7 @@ tr.cursor-selected-row .marker { } .ui-dialog .padded { - padding: 8px 10px 8px 8px; + padding: 5px 10px 5px 8px; } .ui-dialog .ui-buttonset { diff --git a/airtime_mvc/public/css/styles.css b/airtime_mvc/public/css/styles.css index 5215c675e..16f737681 100644 --- a/airtime_mvc/public/css/styles.css +++ b/airtime_mvc/public/css/styles.css @@ -623,7 +623,7 @@ dl.inline-list dd { width: 55%; border: 1px solid #5B5B5B; margin-left: -8px; - padding: 4px 3px 4px 25px; + padding: 5px 3px 4px 25px; } .dataTables_length select { background-color: #DDDDDD; diff --git a/airtime_mvc/public/js/airtime/schedule/schedule.js b/airtime_mvc/public/js/airtime/schedule/schedule.js index 192a64488..2b613d307 100644 --- a/airtime_mvc/public/js/airtime/schedule/schedule.js +++ b/airtime_mvc/public/js/airtime/schedule/schedule.js @@ -106,16 +106,17 @@ function buildScheduleDialog (json) { //subtract padding in pixels widgetWidth = width - 50, libWidth = Math.floor(widgetWidth * 0.5), - builderWidth = Math.floor(widgetWidth * 0.5); - - + builderWidth = Math.floor(widgetWidth * 0.5), + libLength, + libType, + libFilter; dialog.find("#library_content") - .height(height - 125) + .height(height - 110) .width(libWidth); dialog.find("#show_builder") - .height(height - 125) + .height(height - 110) .width(builderWidth); dialog.dialog({ @@ -132,7 +133,7 @@ function buildScheduleDialog (json) { $("#schedule_calendar").fullCalendar( 'refetchEvents' ); }} }); - + //set the start end times so the builder datatables knows its time range. fnServer.start = json.start; fnServer.end = json.end; @@ -141,6 +142,13 @@ function buildScheduleDialog (json) { AIRTIME.showbuilder.builderDataTable(); dialog.dialog('open'); + + //calculate dynamically width fo the library search input. + libLength = dialog.find("#library_display_length"); + libType = dialog.find("#library_display_type"); + libFilter = dialog.find("#library_display_filter"); + + libFilter.find("input").width(libFilter.width() - libType.width() - libLength.width() - 80); } function buildContentDialog (json){ From a832a40c757512d82d8ff02638faa8179266e3a6 Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Mon, 5 Mar 2012 18:14:10 +0100 Subject: [PATCH 03/16] CC-3174 : showbuilder making the library a separate scrollable from playlist --- .../controllers/LibraryController.php | 1 + .../application/layouts/scripts/library.phtml | 2 +- airtime_mvc/public/css/media_library.css | 14 ++++--- airtime_mvc/public/css/playlist_builder.css | 4 +- airtime_mvc/public/css/styles.css | 2 +- .../public/js/airtime/library/library.js | 2 +- .../public/js/airtime/library/main_library.js | 17 +++++++- .../public/js/airtime/utilities/utilities.js | 40 +++++++++++++++++++ 8 files changed, 69 insertions(+), 13 deletions(-) create mode 100644 airtime_mvc/public/js/airtime/utilities/utilities.js diff --git a/airtime_mvc/application/controllers/LibraryController.php b/airtime_mvc/application/controllers/LibraryController.php index 64d411086..9b3a2b35e 100644 --- a/airtime_mvc/application/controllers/LibraryController.php +++ b/airtime_mvc/application/controllers/LibraryController.php @@ -56,6 +56,7 @@ class LibraryController extends Zend_Controller_Action $this->view->headScript()->appendFile($baseUrl.'/js/datatables/plugin/dataTables.TableTools.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/library/library.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'/js/airtime/library/main_library.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); diff --git a/airtime_mvc/application/layouts/scripts/library.phtml b/airtime_mvc/application/layouts/scripts/library.phtml index 69c0dc544..d015fee03 100644 --- a/airtime_mvc/application/layouts/scripts/library.phtml +++ b/airtime_mvc/application/layouts/scripts/library.phtml @@ -23,7 +23,7 @@
layout()->library ?>
-
layout()->spl ?>
+
layout()->spl ?>
diff --git a/airtime_mvc/public/css/media_library.css b/airtime_mvc/public/css/media_library.css index 97de2e91c..172c26a0a 100644 --- a/airtime_mvc/public/css/media_library.css +++ b/airtime_mvc/public/css/media_library.css @@ -1,7 +1,7 @@ #library_content { float: left; width: 50%; - min-height: 475px; + overflow: auto; } #library_display { @@ -10,7 +10,7 @@ } #library_display th { - text-align: left; + text-align: left; } #library_content #library_display { @@ -80,7 +80,9 @@ text-align: center; } -.library_sr, -.library_bitrate { - text-align: right; -} +td.library_track, +td.library_sr, +td.library_bitrate { + text-align: right; + padding-right: 1em !important; +} \ No newline at end of file diff --git a/airtime_mvc/public/css/playlist_builder.css b/airtime_mvc/public/css/playlist_builder.css index cef0a7eba..9fdfd6fc4 100644 --- a/airtime_mvc/public/css/playlist_builder.css +++ b/airtime_mvc/public/css/playlist_builder.css @@ -1,9 +1,7 @@ #side_playlist { width: 40%; - min-height: 475px; - padding: 8px; - padding-bottom: 0px; font-size: 16px; + overflow: auto; } #side_playlist, diff --git a/airtime_mvc/public/css/styles.css b/airtime_mvc/public/css/styles.css index 16f737681..e9e609c6b 100644 --- a/airtime_mvc/public/css/styles.css +++ b/airtime_mvc/public/css/styles.css @@ -9,7 +9,7 @@ body { padding: 0; } html, body { -height: 100%; + height: 100%; } #login-page { diff --git a/airtime_mvc/public/js/airtime/library/library.js b/airtime_mvc/public/js/airtime/library/library.js index 42aa267ef..27362a10f 100644 --- a/airtime_mvc/public/js/airtime/library/library.js +++ b/airtime_mvc/public/js/airtime/library/library.js @@ -58,7 +58,7 @@ var AIRTIME = (function(AIRTIME){ /* Length */ {"sTitle": "Length", "mDataProp": "length", "sClass": "library_length", "sWidth": "80px"}, /* Upload Time */ {"sTitle": "Uploaded", "mDataProp": "utime", "sClass": "library_upload_time"}, /* Last Modified */ {"sTitle": "Last Modified", "mDataProp": "mtime", "bVisible": false, "sClass": "library_modified_time"}, - /* Track Number */ {"sTitle": "Track", "mDataProp": "track_number", "bSearchable": false, "bVisible": false, "sClass": "library_track"}, + /* Track Number */ {"sTitle": "Track", "mDataProp": "track_number", "bSearchable": false, "bVisible": false, "sClass": "library_track", "sWidth": "65px"}, /* Mood */ {"sTitle": "Mood", "mDataProp": "mood", "bSearchable": false, "bVisible": false, "sClass": "library_mood"}, /* BPM */ {"sTitle": "BPM", "mDataProp": "bpm", "bSearchable": false, "bVisible": false, "sClass": "library_bpm"}, /* Composer */ {"sTitle": "Composer", "mDataProp": "composer", "bSearchable": false, "bVisible": false, "sClass": "library_composer"}, diff --git a/airtime_mvc/public/js/airtime/library/main_library.js b/airtime_mvc/public/js/airtime/library/main_library.js index d50811e7e..0682ee04a 100644 --- a/airtime_mvc/public/js/airtime/library/main_library.js +++ b/airtime_mvc/public/js/airtime/library/main_library.js @@ -1 +1,16 @@ -$(document).ready(AIRTIME.library.libraryInit); \ No newline at end of file +$(document).ready(function() { + var viewport = AIRTIME.utilities.findViewportDimensions(), + lib = $("#library_content"), + pl = $("#side_playlist"), + widgetHeight = viewport.height - 185, + width = Math.floor(viewport.width - 110); + + lib.height(widgetHeight) + .width(Math.floor(width * 0.55)); + + pl.height(widgetHeight) + .width(Math.floor(width * 0.45)); + + AIRTIME.library.libraryInit(); + +}); \ No newline at end of file diff --git a/airtime_mvc/public/js/airtime/utilities/utilities.js b/airtime_mvc/public/js/airtime/utilities/utilities.js new file mode 100644 index 000000000..9c3176051 --- /dev/null +++ b/airtime_mvc/public/js/airtime/utilities/utilities.js @@ -0,0 +1,40 @@ +var AIRTIME = (function(AIRTIME){ + var mod; + + if (AIRTIME.utilities === undefined) { + AIRTIME.utilities = {}; + } + mod = AIRTIME.utilities; + + mod.findViewportDimensions = function() { + var viewportwidth, + viewportheight; + + // the more standards compliant browsers (mozilla/netscape/opera/IE7) use + // window.innerWidth and window.innerHeight + if (typeof window.innerWidth != 'undefined') { + viewportwidth = window.innerWidth, viewportheight = window.innerHeight; + } + // IE6 in standards compliant mode (i.e. with a valid doctype as the first + // line in the document) + else if (typeof document.documentElement != 'undefined' + && typeof document.documentElement.clientWidth != 'undefined' + && document.documentElement.clientWidth != 0) { + viewportwidth = document.documentElement.clientWidth; + viewportheight = document.documentElement.clientHeight; + } + // older versions of IE + else { + viewportwidth = document.getElementsByTagName('body')[0].clientWidth; + viewportheight = document.getElementsByTagName('body')[0].clientHeight; + } + + return { + width: viewportwidth, + height: viewportheight + }; + }; + +return AIRTIME; + +}(AIRTIME || {})); \ No newline at end of file From 6c5f710329ab81acf7d17c5a2c1b445269bb2dd9 Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Tue, 6 Mar 2012 13:19:20 +0100 Subject: [PATCH 04/16] CC-3174 : showbuilder making each separate widget scrollable (playlist, library, timeline) --- .../controllers/LibraryController.php | 7 +++++- .../models/formatters/TimeFilledFormatter.php | 9 +++++++ airtime_mvc/public/css/showbuilder.css | 1 + airtime_mvc/public/css/styles.css | 4 +-- .../js/airtime/showbuilder/main_builder.js | 25 ++++++++++++++----- 5 files changed, 37 insertions(+), 9 deletions(-) diff --git a/airtime_mvc/application/controllers/LibraryController.php b/airtime_mvc/application/controllers/LibraryController.php index 9b3a2b35e..82d08a0db 100644 --- a/airtime_mvc/application/controllers/LibraryController.php +++ b/airtime_mvc/application/controllers/LibraryController.php @@ -29,9 +29,15 @@ class LibraryController extends Zend_Controller_Action public function indexAction() { + global $CC_CONFIG; + $this->_helper->layout->setLayout('library'); + $request = $this->getRequest(); + $baseUrl = $request->getBaseUrl(); + $this->view->headScript()->appendFile($this->view->baseUrl('/js/airtime/library/events/library_playlistbuilder.js'),'text/javascript'); + $this->view->headScript()->appendFile($baseUrl.'/js/airtime/library/main_library.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->_helper->actionStack('library', 'library'); $this->_helper->actionStack('index', 'playlist'); @@ -58,7 +64,6 @@ class LibraryController extends Zend_Controller_Action $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/library/library.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); - $this->view->headScript()->appendFile($baseUrl.'/js/airtime/library/main_library.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']); diff --git a/airtime_mvc/application/models/formatters/TimeFilledFormatter.php b/airtime_mvc/application/models/formatters/TimeFilledFormatter.php index 6a894d194..a1d751eee 100644 --- a/airtime_mvc/application/models/formatters/TimeFilledFormatter.php +++ b/airtime_mvc/application/models/formatters/TimeFilledFormatter.php @@ -19,6 +19,7 @@ class TimeFilledFormatter { { $formatted = ""; $sign = ($this->_seconds < 0) ? "-" : "+"; + $perfect = true; $time = Application_Model_Playlist::secondsToPlaylistTime(abs($this->_seconds)); Logging::log("time is: ".$time); @@ -29,16 +30,24 @@ class TimeFilledFormatter { if (intval($info[0]) > 0) { $info[0] = ltrim($info[0], "0"); $formatted .= " {$info[0]}h"; + $perfect = false; } if (intval($info[1]) > 0) { $info[1] = ltrim($info[1], "0"); $formatted .= " {$info[1]}m"; + $perfect = false; } if (intval($info[2]) > 0) { $sec = round($info[2], 0); $formatted .= " {$sec}s"; + $perfect = false; + } + + //0 over/under lap of content. + if ($perfect === true) { + $formatted = "+ 0s"; } return $formatted; diff --git a/airtime_mvc/public/css/showbuilder.css b/airtime_mvc/public/css/showbuilder.css index 3aac1fc05..4a2a47673 100644 --- a/airtime_mvc/public/css/showbuilder.css +++ b/airtime_mvc/public/css/showbuilder.css @@ -2,6 +2,7 @@ #show_builder { width:95%; + overflow: auto; } #show_builder_table th { diff --git a/airtime_mvc/public/css/styles.css b/airtime_mvc/public/css/styles.css index e9e609c6b..31e12329c 100644 --- a/airtime_mvc/public/css/styles.css +++ b/airtime_mvc/public/css/styles.css @@ -366,7 +366,7 @@ select { .wrapper { margin: 0 20px 0 20px; - padding:20px 0 0 0; + padding:10px 0 0 0; } .alpha-block { @@ -577,7 +577,7 @@ dl.inline-list dd { line-height:22px; } .dataTables_filter { - margin:8px 0 0 8px; + margin:0 0 0 8px; } .dataTables_filter .auto-search { width:55%; diff --git a/airtime_mvc/public/js/airtime/showbuilder/main_builder.js b/airtime_mvc/public/js/airtime/showbuilder/main_builder.js index 4a0af1638..827ac6ef9 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/main_builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/main_builder.js @@ -1,9 +1,21 @@ $(document).ready(function(){ - var oBaseDatePickerSettings, + var viewport = AIRTIME.utilities.findViewportDimensions(), + lib = $("#library_content"), + builder = $("#show_builder"), + widgetHeight = viewport.height - 185, + screenWidth = Math.floor(viewport.width - 110), + oBaseDatePickerSettings, oBaseTimePickerSettings, oRange; + //set the heights of the main widgets. + lib.height(widgetHeight); + + //builder takes all the screen on first load + builder.height(widgetHeight) + .width(screenWidth); + oBaseDatePickerSettings = { dateFormat: 'yy-mm-dd', onSelect: function(sDate, oDatePicker) { @@ -125,17 +137,17 @@ $(document).ready(function(){ if ($button.hasClass("sb-edit")) { $lib.show(); - $lib.width("45%"); - $builder.width("50%"); + $lib.width(Math.floor(screenWidth * 0.5)); + $builder.width(Math.floor(screenWidth * 0.5)); $button.removeClass("sb-edit"); $button.addClass("sb-finish-edit"); $button.val("Close Library"); } - else if($button.hasClass("sb-finish-edit")) { + else if ($button.hasClass("sb-finish-edit")) { $lib.hide(); - $builder.width("95%"); + $builder.width(screenWidth); $button.removeClass("sb-finish-edit"); $button.addClass("sb-edit"); @@ -149,7 +161,8 @@ $(document).ready(function(){ oRange = fnGetScheduleRange(); AIRTIME.showbuilder.fnServerData.start = oRange.start; AIRTIME.showbuilder.fnServerData.end = oRange.end; - + + AIRTIME.library.libraryInit(); AIRTIME.showbuilder.builderDataTable(); setInterval(function(){ From 64fe303b205ab9122511da247fea354a4c27601a Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Tue, 6 Mar 2012 13:35:21 +0100 Subject: [PATCH 05/16] CC-3174 : showbuilder fixing indentation. --- .../public/js/airtime/library/library.js | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/airtime_mvc/public/js/airtime/library/library.js b/airtime_mvc/public/js/airtime/library/library.js index bc895b20b..9a3a8d61c 100644 --- a/airtime_mvc/public/js/airtime/library/library.js +++ b/airtime_mvc/public/js/airtime/library/library.js @@ -1,4 +1,4 @@ - var AIRTIME = (function(AIRTIME){ +var AIRTIME = (function(AIRTIME){ var mod, libraryInit; @@ -459,9 +459,9 @@ return AIRTIME; - }(AIRTIME || {})); +}(AIRTIME || {})); - function addToolBarButtonsLibrary(aButtons) { +function addToolBarButtonsLibrary(aButtons) { var i, length = aButtons.length, libToolBar = $(".library_toolbar"), @@ -501,9 +501,9 @@ }(i)); } - } +} - function checkImportStatus(){ +function checkImportStatus(){ $.getJSON('/Preference/is-import-in-progress', function(data){ var div = $('#import_status'); if (data == true){ @@ -513,9 +513,9 @@ div.hide(); } }); - } +} - function addProgressIcon(id) { +function addProgressIcon(id) { var tr = $("#au_"+id), span; @@ -529,9 +529,9 @@ tr.find("td.library_title") .append(''); } - } +} - function checkSCUploadStatus(){ +function checkSCUploadStatus(){ var url = '/Library/get-upload-to-soundcloud-status'; @@ -553,9 +553,9 @@ } }); }); - } +} - function addQtipToSCIcons(){ +function addQtipToSCIcons(){ $(".progress, .soundcloud, .sc-error").live('mouseover', function(){ var id = $(this).parent().parent().data("aData").id; @@ -634,24 +634,24 @@ }); } }); +} + +var audio_preview_window = null; + +function open_audio_preview(name, filename, index) { + url = 'Playlist/audio-preview-player/name/'+name+'/filename/'+filename+'/index/'+index; + //$.post(baseUri+'Playlist/audio-preview-player', {fileName: fileName, cueIn: cueIn, cueOut: cueOut, fadeIn: fadeIn, fadeInFileName: fadeInFileName, fadeOut: fadeOut, fadeOutFileName: fadeOutFileName}) + if (audio_preview_window == null || audio_preview_window.closed){ + audio_preview_window = window.open(url, 'Audio Player', 'width=400,height=95'); + } else if (!audio_preview_window.closed) { + audio_preview_window.play(name, filename); + } else { + console.log("something else : "+baseUrl+url); } + + //Set the play button to pause. + //var elemID = "spl_"+elemIndexString; + //$('#'+elemID+' div.list-item-container a span').attr("class", "ui-icon ui-icon-pause"); - var audio_preview_window = null; - - function open_audio_preview(name, filename, index) { - url = 'Playlist/audio-preview-player/name/'+name+'/filename/'+filename+'/index/'+index; - //$.post(baseUri+'Playlist/audio-preview-player', {fileName: fileName, cueIn: cueIn, cueOut: cueOut, fadeIn: fadeIn, fadeInFileName: fadeInFileName, fadeOut: fadeOut, fadeOutFileName: fadeOutFileName}) - if (audio_preview_window == null || audio_preview_window.closed){ - audio_preview_window = window.open(url, 'Audio Player', 'width=400,height=95'); - } else if (!audio_preview_window.closed) { - audio_preview_window.play(name, filename); - } else { - console.log("something else : "+baseUrl+url); - } - - //Set the play button to pause. - //var elemID = "spl_"+elemIndexString; - //$('#'+elemID+' div.list-item-container a span').attr("class", "ui-icon ui-icon-pause"); - - return false; - } \ No newline at end of file + return false; +} \ No newline at end of file From e9627bca075ddb5f86b4e2bc2bb69b1ef50c02e6 Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Wed, 7 Mar 2012 12:20:30 +0100 Subject: [PATCH 06/16] CC-3174 : showbuilder only updating the timeline view if it is needed. --- .../controllers/ShowbuilderController.php | 36 +++++++++++++++- airtime_mvc/application/forms/ShowBuilder.php | 6 +++ airtime_mvc/application/models/Show.php | 6 ++- .../application/models/ShowBuilder.php | 43 +++++++++++++++++-- .../views/scripts/form/showbuilder.phtml | 1 + .../public/js/airtime/showbuilder/builder.js | 38 +++++++++++++++- .../js/airtime/showbuilder/main_builder.js | 42 +++++++++++++++--- 7 files changed, 160 insertions(+), 12 deletions(-) diff --git a/airtime_mvc/application/controllers/ShowbuilderController.php b/airtime_mvc/application/controllers/ShowbuilderController.php index a32d15665..28a9ba804 100644 --- a/airtime_mvc/application/controllers/ShowbuilderController.php +++ b/airtime_mvc/application/controllers/ShowbuilderController.php @@ -10,6 +10,7 @@ class ShowbuilderController extends Zend_Controller_Action ->addActionContext('schedule-add', 'json') ->addActionContext('schedule-remove', 'json') ->addActionContext('builder-dialog', 'json') + ->addActionContext('check-builder-feed', 'json') ->addActionContext('builder-feed', 'json') ->initContext(); } @@ -19,7 +20,7 @@ class ShowbuilderController extends Zend_Controller_Action $this->_helper->layout->setLayout('builder'); $this->view->headScript()->appendFile($this->view->baseUrl('/js/airtime/library/events/library_showbuilder.js'),'text/javascript'); - + $this->_helper->actionStack('library', 'library'); $this->_helper->actionStack('builder', 'showbuilder'); } @@ -88,6 +89,37 @@ class ShowbuilderController extends Zend_Controller_Action $this->view->dialog = $this->view->render('showbuilder/builderDialog.phtml'); } + public function checkBuilderFeedAction() { + + $request = $this->getRequest(); + $current_time = time(); + + $starts_epoch = $request->getParam("start", $current_time); + //default ends is 24 hours after starts. + $ends_epoch = $request->getParam("end", $current_time + (60*60*24)); + $show_filter = intval($request->getParam("showFilter", 0)); + $my_shows = intval($request->getParam("myShows", 0)); + $timestamp = intval($request->getParam("timestamp", -1)); + + $startsDT = DateTime::createFromFormat("U", $starts_epoch, new DateTimeZone("UTC")); + $endsDT = DateTime::createFromFormat("U", $ends_epoch, new DateTimeZone("UTC")); + + Logging::log("showbuilder starts {$startsDT->format("Y-m-d H:i:s")}"); + Logging::log("showbuilder ends {$endsDT->format("Y-m-d H:i:s")}"); + + $opts = array("myShows" => $my_shows, "showFilter" => $show_filter); + $showBuilder = new Application_Model_ShowBuilder($startsDT, $endsDT, $opts); + + //only send the schedule back if updates have been made. + // -1 default will always call the schedule to be sent back if no timestamp is defined. + if ($showBuilder->hasBeenUpdatedSince($timestamp)) { + $this->view->update = true; + } + else { + $this->view->update = false; + } + } + public function builderFeedAction() { $request = $this->getRequest(); @@ -98,6 +130,7 @@ class ShowbuilderController extends Zend_Controller_Action $ends_epoch = $request->getParam("end", $current_time + (60*60*24)); $show_filter = intval($request->getParam("showFilter", 0)); $my_shows = intval($request->getParam("myShows", 0)); + $timestamp = intval($request->getParam("timestamp", -1)); $startsDT = DateTime::createFromFormat("U", $starts_epoch, new DateTimeZone("UTC")); $endsDT = DateTime::createFromFormat("U", $ends_epoch, new DateTimeZone("UTC")); @@ -109,6 +142,7 @@ class ShowbuilderController extends Zend_Controller_Action $showBuilder = new Application_Model_ShowBuilder($startsDT, $endsDT, $opts); $this->view->schedule = $showBuilder->GetItems(); + $this->view->timestamp = $current_time; } public function scheduleAddAction() { diff --git a/airtime_mvc/application/forms/ShowBuilder.php b/airtime_mvc/application/forms/ShowBuilder.php index dddc91ffa..0865a51a2 100644 --- a/airtime_mvc/application/forms/ShowBuilder.php +++ b/airtime_mvc/application/forms/ShowBuilder.php @@ -11,6 +11,12 @@ class Application_Form_ShowBuilder extends Zend_Form_SubForm array('ViewScript', array('viewScript' => 'form/showbuilder.phtml')) )); + //set value to -1 originally to ensure we grab the schedule on first call. + $timestamp = new Zend_Form_Element_Hidden('sb_timestamp'); + $timestamp->setValue(-1) + ->setDecorators(array('ViewHelper')); + $this->addElement($timestamp); + // Add start date element $startDate = new Zend_Form_Element_Text('sb_date_start'); $startDate->class = 'input_text'; diff --git a/airtime_mvc/application/models/Show.php b/airtime_mvc/application/models/Show.php index 6fa4fd132..e29aa71cb 100644 --- a/airtime_mvc/application/models/Show.php +++ b/airtime_mvc/application/models/Show.php @@ -1448,7 +1448,8 @@ class Application_Model_Show { } $sql = "SELECT starts, ends, record, rebroadcast, instance_id, show_id, name, - color, background_color, file_id, cc_show_instances.id AS instance_id + color, background_color, file_id, cc_show_instances.id AS instance_id, + last_scheduled FROM cc_show_instances LEFT JOIN cc_show ON cc_show.id = cc_show_instances.show_id WHERE cc_show_instances.modified_instance = FALSE"; @@ -1479,6 +1480,9 @@ class Application_Model_Show { $sql = $sql." AND ({$exclude})"; } + Logging::log("getShows"); + Logging::log($sql); + return $CC_DBC->GetAll($sql); } diff --git a/airtime_mvc/application/models/ShowBuilder.php b/airtime_mvc/application/models/ShowBuilder.php index 231293468..355621872 100644 --- a/airtime_mvc/application/models/ShowBuilder.php +++ b/airtime_mvc/application/models/ShowBuilder.php @@ -6,8 +6,12 @@ require_once 'formatters/TimeFilledFormatter.php'; class Application_Model_ShowBuilder { private $timezone; + + //in UTC timezone private $startDT; + //in UTC timezone private $endDT; + private $user; private $opts; @@ -59,12 +63,12 @@ class Application_Model_ShowBuilder { $showStartDT = new DateTime($p_item["si_starts"], new DateTimeZone("UTC")); $schedStartDT = new DateTime($p_item["sched_starts"], new DateTimeZone("UTC")); - + $showStartEpoch = intval($showStartDT->format('U')); $schedStartEpoch = intval($schedStartDT->format('U')); //can only schedule the show if item hasn't started and you are allowed. - if ($this->epoch_now < max($showStartEpoch, $schedStartEpoch) + if ($this->epoch_now < max($showStartEpoch, $schedStartEpoch) && $this->user->canSchedule($p_item["show_id"]) == true) { $row["allowed"] = true; } @@ -89,7 +93,7 @@ class Application_Model_ShowBuilder { } private function isCurrent($p_epochItemStart, $p_epochItemEnd, &$row) { - + if ($this->epoch_now >= $p_epochItemStart && $this->epoch_now < $p_epochItemEnd) { $row["current"] = true; //how many seconds the view should wait to redraw itself. @@ -194,6 +198,39 @@ class Application_Model_ShowBuilder { return $row; } + /* + * @param int $timestamp Unix timestamp in seconds. + * + * @return boolean whether the schedule in the show builder's range has been updated. + * + */ + public function hasBeenUpdatedSince($timestamp) { + $outdated = false; + + Logging::log("checking if show builder has been updated since {$timestamp}"); + + $shows = Application_Model_Show::getShows($this->startDT, $this->endDT); + + foreach ($shows as $show) { + + if (isset($show["last_scheduled"])) { + $dt = new DateTime($show["last_scheduled"], new DateTimeZone("UTC")); + + //check if any of the shows have a more recent timestamp. + if ($timestamp < intval($dt->format("U"))) { + $outdated = true; + break; + } + } + } + + if (count($shows) == 0) { + $outdated = true; + } + + return $outdated; + } + public function GetItems() { $current_id = -1; diff --git a/airtime_mvc/application/views/scripts/form/showbuilder.phtml b/airtime_mvc/application/views/scripts/form/showbuilder.phtml index fb4c3b135..e2b67262e 100644 --- a/airtime_mvc/application/views/scripts/form/showbuilder.phtml +++ b/airtime_mvc/application/views/scripts/form/showbuilder.phtml @@ -1,4 +1,5 @@
+ element->getElement('sb_timestamp') ?> element->getElement('sb_date_start') ?> element->getElement('sb_time_start') ?> element->getElement('sb_date_end') ?> diff --git a/airtime_mvc/public/js/airtime/showbuilder/builder.js b/airtime_mvc/public/js/airtime/showbuilder/builder.js index 74b3b18b3..e82fe625d 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/builder.js @@ -14,6 +14,32 @@ var AIRTIME = (function(AIRTIME){ } } + mod.resetTimestamp = function() { + var timestamp = $("#sb_timestamp"); + //reset timestamp value since input values could have changed. + timestamp.val(-1); + }; + + mod.setTimestamp = function(timestamp) { + $("#sb_timestamp").val(timestamp); + }; + + mod.getTimestamp = function() { + var timestamp = $("#sb_timestamp"), + val; + + //if the timestamp field is on the page return it, or give the default of -1 + //to ensure a page refresh. + if (timestamp.length === 1) { + val = timestamp.val(); + } + else { + val = -1; + } + + return val; + }; + mod.fnAdd = function(aMediaIds, aSchedIds) { var oLibTT = TableTools.fnGetInstance('library_display'); @@ -47,6 +73,8 @@ var AIRTIME = (function(AIRTIME){ }; fnServerData = function ( sSource, aoData, fnCallback ) { + + aoData.push( { name: "timestamp", value: AIRTIME.showbuilder.getTimestamp()} ); aoData.push( { name: "format", value: "json"} ); if (fnServerData.hasOwnProperty("start")) { @@ -65,7 +93,10 @@ var AIRTIME = (function(AIRTIME){ "type": "GET", "url": sSource, "data": aoData, - "success": fnCallback + "success": function(json) { + AIRTIME.showbuilder.setTimestamp(json.timestamp); + fnCallback(json); + } } ); }; @@ -302,6 +333,7 @@ var AIRTIME = (function(AIRTIME){ aData = tr.data("aData"); setTimeout(function(){ + AIRTIME.showbuilder.resetTimestamp(); oTable.fnDraw(); }, aData.refresh * 1000); //need refresh in milliseconds } @@ -311,7 +343,9 @@ var AIRTIME = (function(AIRTIME){ }, //remove any selected nodes before the draw. "fnPreDrawCallback": function( oSettings ) { - var oTT = TableTools.fnGetInstance('show_builder_table'); + var oTT; + + oTT = TableTools.fnGetInstance('show_builder_table'); oTT.fnSelectNone(); }, diff --git a/airtime_mvc/public/js/airtime/showbuilder/main_builder.js b/airtime_mvc/public/js/airtime/showbuilder/main_builder.js index 827ac6ef9..2000f6a34 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/main_builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/main_builder.js @@ -109,6 +109,9 @@ $(document).ready(function(){ op, oTable = $('#show_builder_table').dataTable(); + //reset timestamp value since input values could have changed. + AIRTIME.showbuilder.resetTimestamp(); + oRange = fnGetScheduleRange(); fn = oTable.fnSettings().fnServerData; @@ -136,6 +139,9 @@ $(document).ready(function(){ if ($button.hasClass("sb-edit")) { + //reset timestamp to redraw the cursors. + AIRTIME.showbuilder.resetTimestamp(); + $lib.show(); $lib.width(Math.floor(screenWidth * 0.5)); $builder.width(Math.floor(screenWidth * 0.5)); @@ -154,8 +160,7 @@ $(document).ready(function(){ $button.val("Add Files"); } - oTable.fnDraw(); - + oTable.fnDraw(); }); oRange = fnGetScheduleRange(); @@ -165,8 +170,35 @@ $(document).ready(function(){ AIRTIME.library.libraryInit(); AIRTIME.showbuilder.builderDataTable(); + //check if the timeline viewed needs updating. setInterval(function(){ - var oTable = $('#show_builder_table').dataTable(); - oTable.fnDraw(); - }, 20 * 1000); //need refresh in milliseconds + var data = {}, + oTable = $('#show_builder_table').dataTable(), + fn = oTable.fnSettings().fnServerData, + start = fn.start, + end = fn.end; + + data["format"] = "json"; + data["start"] = start; + data["end"] = end; + data["timestamp"] = AIRTIME.showbuilder.getTimestamp(); + + if (fn.hasOwnProperty("ops")) { + data["myShows"] = fn.ops.myShows; + data["showFilter"] = fn.ops.showFilter; + } + + $.ajax( { + "dataType": "json", + "type": "GET", + "url": "/showbuilder/check-builder-feed", + "data": data, + "success": function(json) { + if (json.update === true) { + oTable.fnDraw(); + } + } + } ); + + }, 5 * 1000); //need refresh in milliseconds }); \ No newline at end of file From fe3c340a90ded23a81731dfdc56009c18adc67a4 Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Wed, 7 Mar 2012 18:27:32 +0100 Subject: [PATCH 07/16] CC-3174 : showbuilder making library table only scroll on the table part. --- airtime_mvc/application/models/StoredFile.php | 66 +++++++++---------- airtime_mvc/public/css/media_library.css | 3 +- airtime_mvc/public/css/styles.css | 9 +++ .../public/js/airtime/library/library.js | 15 +++-- .../public/js/airtime/showbuilder/builder.js | 5 +- .../js/airtime/showbuilder/main_builder.js | 5 +- 6 files changed, 59 insertions(+), 44 deletions(-) diff --git a/airtime_mvc/application/models/StoredFile.php b/airtime_mvc/application/models/StoredFile.php index 9dfd99e46..9615875f6 100644 --- a/airtime_mvc/application/models/StoredFile.php +++ b/airtime_mvc/application/models/StoredFile.php @@ -395,7 +395,7 @@ class Application_Model_StoredFile { } private function constructGetFileUrl($p_serverName, $p_serverPort){ -Logging::log("getting media! - 2"); +Logging::log("getting media! - 2"); return "http://$p_serverName:$p_serverPort/api/get-media/file/".$this->getGunId().".".$this->getFileExtension(); } @@ -660,7 +660,7 @@ Logging::log("getting media! - 2"); if($type == "au"){//&& isset( $audioResults )) { $row['audioFile'] = $row['gunid'].".".pathinfo($row['filepath'], PATHINFO_EXTENSION); - $row['image'] = '
'; + $row['image'] = ''; } else { $row['image'] = ''; @@ -669,22 +669,22 @@ Logging::log("getting media! - 2"); return $results; } - + public static function searchFiles($displayColumns, $fromTable, $data) { $con = Propel::getConnection(CcFilesPeer::DATABASE_NAME); $where = array(); - + if ($data["sSearch"] !== "") { $searchTerms = explode(" ", $data["sSearch"]); } - + $selectorCount = "SELECT COUNT(*) "; $selectorRows = "SELECT ".join(",", $displayColumns)." "; - + $sql = $selectorCount." FROM ".$fromTable; $sqlTotalRows = $sql; - + if (isset($searchTerms)) { $searchCols = array(); for ($i = 0; $i < $data["iColumns"]; $i++) { @@ -692,12 +692,12 @@ Logging::log("getting media! - 2"); $searchCols[] = $data["mDataProp_{$i}"]; } } - + $outerCond = array(); - + foreach ($searchTerms as $term) { $innerCond = array(); - + foreach ($searchCols as $col) { $escapedTerm = pg_escape_string($term); $innerCond[] = "{$col}::text ILIKE '%{$escapedTerm}%'"; @@ -707,7 +707,7 @@ Logging::log("getting media! - 2"); $where[] = "(".join(" AND ", $outerCond).")"; } // End Where clause - + // Order By clause $orderby = array(); for ($i = 0; $i < $data["iSortingCols"]; $i++){ @@ -717,22 +717,22 @@ Logging::log("getting media! - 2"); $orderby[] = "id"; $orderby = join("," , $orderby); // End Order By clause - + if (count($where) > 0) { $where = join(" AND ", $where); $sql = $selectorCount." FROM ".$fromTable." WHERE ".$where; $sqlTotalDisplayRows = $sql; - + $sql = $selectorRows." FROM ".$fromTable." WHERE ".$where." ORDER BY ".$orderby." OFFSET ".$data["iDisplayStart"]." LIMIT ".$data["iDisplayLength"]; } else { $sql = $selectorRows." FROM ".$fromTable." ORDER BY ".$orderby." OFFSET ".$data["iDisplayStart"]." LIMIT ".$data["iDisplayLength"]; } - + try { $r = $con->query($sqlTotalRows); $totalRows = $r->fetchColumn(0); - + if (isset($sqlTotalDisplayRows)) { $r = $con->query($sqlTotalDisplayRows); $totalDisplayRows = $r->fetchColumn(0); @@ -740,7 +740,7 @@ Logging::log("getting media! - 2"); else { $totalDisplayRows = $totalRows; } - + $r = $con->query($sql); $r->setFetchMode(PDO::FETCH_ASSOC); $results = $r->fetchAll(); @@ -748,10 +748,10 @@ Logging::log("getting media! - 2"); catch (Exception $e) { Logging::log($e->getMessage()); } - + //display sql executed in airtime log for testing Logging::log($sql); - + return array("sEcho" => intval($data["sEcho"]), "iTotalDisplayRecords" => $totalDisplayRows, "iTotalRecords" => $totalRows, "aaData" => $results); } @@ -764,15 +764,15 @@ Logging::log("getting media! - 2"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); - + // Settings $cleanupTargetDir = false; // Remove old files $maxFileAge = 60 * 60; // Temp file age in seconds - + // 5 minutes execution time @set_time_limit(5 * 60); // usleep(5000); - + // Get parameters $chunk = isset($_REQUEST["chunk"]) ? $_REQUEST["chunk"] : 0; $chunks = isset($_REQUEST["chunks"]) ? $_REQUEST["chunks"] : 0; @@ -781,29 +781,29 @@ Logging::log("getting media! - 2"); // Clean the fileName for security reasons //this needs fixing for songs not in ascii. //$fileName = preg_replace('/[^\w\._]+/', '', $fileName); - + // Create target dir if (!file_exists($p_targetDir)) @mkdir($p_targetDir); - + // Remove old temp files if (is_dir($p_targetDir) && ($dir = opendir($p_targetDir))) { while (($file = readdir($dir)) !== false) { $filePath = $p_targetDir . DIRECTORY_SEPARATOR . $file; - + // Remove temp files if they are older than the max age if (preg_match('/\.tmp$/', $file) && (filemtime($filePath) < time() - $maxFileAge)) @unlink($filePath); } - + closedir($dir); } else die('{"jsonrpc" : "2.0", "error" : {"code": 100, "message": "Failed to open temp directory."}, "id" : "id"}'); - + // Look for the content type header if (isset($_SERVER["HTTP_CONTENT_TYPE"])) $contentType = $_SERVER["HTTP_CONTENT_TYPE"]; - + if (isset($_SERVER["CONTENT_TYPE"])) $contentType = $_SERVER["CONTENT_TYPE"]; @@ -819,13 +819,13 @@ Logging::log("getting media! - 2"); if ($out) { // Read binary input stream and append it to temp file $in = fopen($_FILES['file']['tmp_name'], "rb"); - + if ($in) { while ($buff = fread($in, 4096)) fwrite($out, $buff); } else die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}'); - + fclose($out); unlink($_FILES['file']['tmp_name']); } else @@ -838,18 +838,18 @@ Logging::log("getting media! - 2"); if ($out) { // Read binary input stream and append it to temp file $in = fopen("php://input", "rb"); - + if ($in) { while ($buff = fread($in, 4096)) fwrite($out, $buff); } else die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}'); - + fclose($out); } else die('{"jsonrpc" : "2.0", "error" : {"code": 102, "message": "Failed to open output stream."}, "id" : "id"}'); } - + return $tempFilePath; } @@ -899,7 +899,7 @@ Logging::log("getting media! - 2"); Logging::log("copyFileToStor: moving file $audio_file to $audio_stor"); //Martin K.: changed to rename: Much less load + quicker since this is an atomic operation $r = @rename($audio_file, $audio_stor); - + if ($r === false) { #something went wrong likely there wasn't enough space in the audio_stor to move the file too. #warn the user that the file wasn't uploaded and they should check if there is enough disk space. diff --git a/airtime_mvc/public/css/media_library.css b/airtime_mvc/public/css/media_library.css index 172c26a0a..1456c04e7 100644 --- a/airtime_mvc/public/css/media_library.css +++ b/airtime_mvc/public/css/media_library.css @@ -1,7 +1,7 @@ #library_content { float: left; width: 50%; - overflow: auto; + overflow: hidden; } #library_display { @@ -84,5 +84,4 @@ td.library_track, td.library_sr, td.library_bitrate { text-align: right; - padding-right: 1em !important; } \ No newline at end of file diff --git a/airtime_mvc/public/css/styles.css b/airtime_mvc/public/css/styles.css index 31e12329c..457e91a0f 100644 --- a/airtime_mvc/public/css/styles.css +++ b/airtime_mvc/public/css/styles.css @@ -554,6 +554,14 @@ dl.inline-list dd { border-width: 0px 1px 0 1px; } +.dataTables_scrolling { + overflow: auto; +} + +.dataTables_scrolling table{ + border-width: 0px 1px 0 1px; +} + .DataTables_sort_wrapper .ui-icon { display: block; float: left; @@ -611,6 +619,7 @@ dl.inline-list dd { .dataTables_paginate { float: right; padding: 8px 0 8px 8px; + clear: left; } .dataTables_paginate .ui-button { font-size:12px; diff --git a/airtime_mvc/public/js/airtime/library/library.js b/airtime_mvc/public/js/airtime/library/library.js index e74ab9405..82512833c 100644 --- a/airtime_mvc/public/js/airtime/library/library.js +++ b/airtime_mvc/public/js/airtime/library/library.js @@ -42,14 +42,17 @@ var AIRTIME = (function(AIRTIME) { }; libraryInit = function() { - var oTable; + var oTable, + libContentDiv = $("#library_content"); + tableHeight = libContentDiv.height() - 140; oTable = $('#library_display').dataTable( { + //put hidden columns at the top to insure they can never be visible on the table through column reordering. "aoColumns": [ - /* Checkbox */ {"sTitle": "", "mDataProp": "checkbox", "bSortable": false, "bSearchable": false, "sWidth": "25px", "sClass": "library_checkbox"}, - /* Type */ {"sTitle": "", "mDataProp": "image", "bSearchable": false, "sWidth": "25px", "sClass": "library_type", "iDataSort": 2}, /* ftype */ {"sTitle": "", "mDataProp": "ftype", "bSearchable": false, "bVisible": false}, + /* Checkbox */ {"sTitle": "", "mDataProp": "checkbox", "bSortable": false, "bSearchable": false, "sWidth": "25px", "sClass": "library_checkbox"}, + /* Type */ {"sTitle": "", "mDataProp": "image", "bSearchable": false, "sWidth": "25px", "sClass": "library_type", "iDataSort": 0}, /* Title */ {"sTitle": "Title", "mDataProp": "track_title", "sClass": "library_title"}, /* Creator */ {"sTitle": "Creator", "mDataProp": "artist_name", "sClass": "library_creator"}, /* Album */ {"sTitle": "Album", "mDataProp": "album_title", "sClass": "library_album"}, @@ -227,9 +230,9 @@ var AIRTIME = (function(AIRTIME) { "oLanguage": { "sSearch": "" }, - + // R = ColReorder, C = ColVis, T = TableTools - "sDom": 'Rl<"#library_display_type">fr<"H"T<"library_toolbar"C>>t<"F"ip>', + "sDom": 'Rl<"#library_display_type">fr<"H"T<"library_toolbar"C>><"dataTables_scrolling"t><"F"ip>', "oTableTools": { "sRowSelect": "multi", @@ -285,6 +288,8 @@ var AIRTIME = (function(AIRTIME) { }); oTable.fnSetFilteringDelay(350); + + libContentDiv.find(".dataTables_scrolling").css("max-height", tableHeight); AIRTIME.library.events.setupLibraryToolbar(oTable); diff --git a/airtime_mvc/public/js/airtime/showbuilder/builder.js b/airtime_mvc/public/js/airtime/showbuilder/builder.js index e82fe625d..21f0f5350 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/builder.js @@ -105,7 +105,8 @@ var AIRTIME = (function(AIRTIME){ mod.builderDataTable = function() { var tableDiv = $('#show_builder_table'), oTable, - fnRemoveSelectedItems; + fnRemoveSelectedItems, + tableHeight; fnRemoveSelectedItems = function() { var oTT = TableTools.fnGetInstance('show_builder_table'), @@ -405,7 +406,7 @@ var AIRTIME = (function(AIRTIME){ }, // R = ColReorderResize, C = ColVis, T = TableTools - "sDom": 'Rr<"H"CT>t<"F">', + "sDom": 'Rr<"H"CT>t', "sAjaxDataProp": "schedule", "sAjaxSource": "/showbuilder/builder-feed" diff --git a/airtime_mvc/public/js/airtime/showbuilder/main_builder.js b/airtime_mvc/public/js/airtime/showbuilder/main_builder.js index 2000f6a34..9c97d3e63 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/main_builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/main_builder.js @@ -135,7 +135,8 @@ $(document).ready(function(){ var $button = $(this), $lib = $("#library_content"), $builder = $("#show_builder"), - oTable = $("#show_builder_table").dataTable(); + schedTable = $("#show_builder_table").dataTable(), + libTable = $lib.find("#library_display").dataTable(); if ($button.hasClass("sb-edit")) { @@ -160,7 +161,7 @@ $(document).ready(function(){ $button.val("Add Files"); } - oTable.fnDraw(); + schedTable.fnDraw(); }); oRange = fnGetScheduleRange(); From 7a5054655e474f7c2409708ccc99311626422edb Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Thu, 8 Mar 2012 11:14:09 +0100 Subject: [PATCH 08/16] CC-3174 : showbuilder change max-height slightly for the library dialog. --- airtime_mvc/public/js/airtime/schedule/schedule.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/airtime_mvc/public/js/airtime/schedule/schedule.js b/airtime_mvc/public/js/airtime/schedule/schedule.js index 2b613d307..9fb962ba4 100644 --- a/airtime_mvc/public/js/airtime/schedule/schedule.js +++ b/airtime_mvc/public/js/airtime/schedule/schedule.js @@ -141,9 +141,12 @@ function buildScheduleDialog (json) { AIRTIME.library.libraryInit(); AIRTIME.showbuilder.builderDataTable(); + dialog.find(".dataTables_scrolling") + .css("max-height", height - 110 - 155); + dialog.dialog('open'); - //calculate dynamically width fo the library search input. + //calculate dynamically width for the library search input. libLength = dialog.find("#library_display_length"); libType = dialog.find("#library_display_type"); libFilter = dialog.find("#library_display_filter"); From 53b8eb27245a179201189c8c2d24c5abbfb65da8 Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Thu, 8 Mar 2012 18:30:56 +0100 Subject: [PATCH 09/16] CC-733 : export broadcast logs exporting stats based on czech law --- airtime_mvc/application/configs/ACL.php | 2 + .../application/configs/navigation.php | 9 +- .../controllers/PlayouthistoryController.php | 60 ++++++++++++ .../layouts/scripts/playouthistory.phtml | 27 +++++ airtime_mvc/application/models/Datatables.php | 98 +++++++++++++++++++ .../application/models/PlayoutHistory.php | 60 ++++++++++++ airtime_mvc/application/models/Show.php | 4 +- .../views/scripts/playouthistory/index.phtml | 1 + .../js/airtime/playouthistory/historytable.js | 73 ++++++++++++++ 9 files changed, 331 insertions(+), 3 deletions(-) create mode 100644 airtime_mvc/application/controllers/PlayouthistoryController.php create mode 100644 airtime_mvc/application/layouts/scripts/playouthistory.phtml create mode 100644 airtime_mvc/application/models/Datatables.php create mode 100644 airtime_mvc/application/models/PlayoutHistory.php create mode 100644 airtime_mvc/application/views/scripts/playouthistory/index.phtml create mode 100644 airtime_mvc/public/js/airtime/playouthistory/historytable.js diff --git a/airtime_mvc/application/configs/ACL.php b/airtime_mvc/application/configs/ACL.php index f0bb211c8..d2ce2e23a 100644 --- a/airtime_mvc/application/configs/ACL.php +++ b/airtime_mvc/application/configs/ACL.php @@ -26,6 +26,7 @@ $ccAcl->add(new Zend_Acl_Resource('library')) ->add(new Zend_Acl_Resource('recorder')) ->add(new Zend_Acl_Resource('showbuilder')) ->add(new Zend_Acl_Resource('auth')) + ->add(new Zend_Acl_Resource('playouthistory')) ->add(new Zend_Acl_Resource('usersettings')); /** Creating permissions */ @@ -44,6 +45,7 @@ $ccAcl->allow('G', 'index') ->allow('H', 'search') ->allow('H', 'playlist') ->allow('H', 'showbuilder') + ->allow('A', 'playouthistory') ->allow('A', 'user') ->allow('A', 'systemstatus') ->allow('A', 'preference'); diff --git a/airtime_mvc/application/configs/navigation.php b/airtime_mvc/application/configs/navigation.php index 400a8b509..46aef0654 100644 --- a/airtime_mvc/application/configs/navigation.php +++ b/airtime_mvc/application/configs/navigation.php @@ -85,7 +85,14 @@ $pages = array( 'controller' => 'systemstatus', 'action' => 'index', 'resource' => 'systemstatus' - ) + ), + array( + 'label' => 'Playout History', + 'module' => 'default', + 'controller' => 'playouthistory', + 'action' => 'index', + 'resource' => 'playouthistory' + ) ) ), array( diff --git a/airtime_mvc/application/controllers/PlayouthistoryController.php b/airtime_mvc/application/controllers/PlayouthistoryController.php new file mode 100644 index 000000000..6d6b64d6d --- /dev/null +++ b/airtime_mvc/application/controllers/PlayouthistoryController.php @@ -0,0 +1,60 @@ +_helper->getHelper('AjaxContext'); + $ajaxContext + ->addActionContext('playout-history-feed', 'json') + ->initContext(); + } + + public function indexAction() + { + global $CC_CONFIG; + + $this->_helper->layout->setLayout('playouthistory'); + + $request = $this->getRequest(); + $baseUrl = $request->getBaseUrl(); + + $this->view->headScript()->appendFile($baseUrl.'/js/contextmenu/jquery.contextMenu.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.pluginAPI.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.TableTools.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/playouthistory/historytable.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); + + $this->view->headLink()->appendStylesheet($baseUrl.'/css/TableTools.css?'.$CC_CONFIG['airtime_version']); + } + + public function playoutHistoryFeedAction() + { + $request = $this->getRequest(); + $current_time = time(); + + $params = $request->getParams(); + + $starts_epoch = $request->getParam("start", $current_time - (60*60*24)); + $ends_epoch = $request->getParam("end", $current_time); + + $startsDT = DateTime::createFromFormat("U", $starts_epoch, new DateTimeZone("UTC")); + $endsDT = DateTime::createFromFormat("U", $ends_epoch, new DateTimeZone("UTC")); + + Logging::log("history starts {$startsDT->format("Y-m-d H:i:s")}"); + Logging::log("history ends {$endsDT->format("Y-m-d H:i:s")}"); + + $history = new Application_Model_PlayoutHistory($startsDT, $endsDT, $params); + + $r = $history->getItems(); + + $this->view->sEcho = $r["sEcho"]; + $this->view->iTotalDisplayRecords = $r["iTotalDisplayRecords"]; + $this->view->iTotalRecords = $r["iTotalRecords"]; + $this->view->history = $r["history"]; + } +} \ No newline at end of file diff --git a/airtime_mvc/application/layouts/scripts/playouthistory.phtml b/airtime_mvc/application/layouts/scripts/playouthistory.phtml new file mode 100644 index 000000000..210bbeaa8 --- /dev/null +++ b/airtime_mvc/application/layouts/scripts/playouthistory.phtml @@ -0,0 +1,27 @@ +doctype() ?> + + + + headTitle() ?> + headScript() ?> + headLink() ?> + google_analytics)?$this->google_analytics:"" ?> + + + +
+ + versionNotify() ?> + partial('partialviews/header.phtml', array("user" => $this->loggedInAs(), "is_trial"=>$this->isTrial(), "trial_remain"=> $this->trialRemaining())) ?> + +navigation()->menu()->setPartial($partial); ?> + +navigation()->menu() ?> +
+ +
+
layout()->content ?>
+
+ + \ No newline at end of file diff --git a/airtime_mvc/application/models/Datatables.php b/airtime_mvc/application/models/Datatables.php new file mode 100644 index 000000000..9ded1695c --- /dev/null +++ b/airtime_mvc/application/models/Datatables.php @@ -0,0 +1,98 @@ + 0) { + $where = join(" AND ", $where); + $sql = $selectorCount." FROM ".$fromTable." WHERE ".$where; + $sqlTotalDisplayRows = $sql; + + $sql = $selectorRows." FROM ".$fromTable." WHERE ".$where." ORDER BY ".$orderby." OFFSET ".$data["iDisplayStart"]." LIMIT ".$data["iDisplayLength"]; + } + else { + $sql = $selectorRows." FROM ".$fromTable." ORDER BY ".$orderby." OFFSET ".$data["iDisplayStart"]." LIMIT ".$data["iDisplayLength"]; + } + + try { + $r = $con->query($sqlTotalRows); + Logging::log($sqlTotalRows); + $totalRows = $r->fetchColumn(0); + + if (isset($sqlTotalDisplayRows)) { + $r = $con->query($sqlTotalDisplayRows); + Logging::log($sqlTotalDisplayRows); + $totalDisplayRows = $r->fetchColumn(0); + } + else { + $totalDisplayRows = $totalRows; + } + + $r = $con->query($sql); + $r->setFetchMode(PDO::FETCH_ASSOC); + $results = $r->fetchAll(); + } + catch (Exception $e) { + Logging::log($e->getMessage()); + } + + //display sql executed in airtime log for testing + Logging::log($sql); + + return array( + "sEcho" => intval($data["sEcho"]), + "iTotalDisplayRecords" => intval($totalDisplayRows), + "iTotalRecords" => intval($totalRows), + $dataProp => $results + ); + } +} \ No newline at end of file diff --git a/airtime_mvc/application/models/PlayoutHistory.php b/airtime_mvc/application/models/PlayoutHistory.php new file mode 100644 index 000000000..9084e05d6 --- /dev/null +++ b/airtime_mvc/application/models/PlayoutHistory.php @@ -0,0 +1,60 @@ +con = Propel::getConnection(CcSchedulePeer::DATABASE_NAME); + $this->startDT = $p_startDT; + $this->endDT = $p_endDT; + $this->timezone = date_default_timezone_get(); + $this->epoch_now = time(); + $this->opts = $p_opts; + } + + public function getItems() { + + $select = array( + "file.track_title as title", + "file.artist_name as artist", + "playout.played", + "playout.file_id", + "file.composer", + "file.copyright", + "file.length" + ); + + $start = $this->startDT->format("Y-m-d H:i:s"); + $end = $this->endDT->format("Y-m-d H:i:s"); + + $historyTable = "( + select count(schedule.file_id) as played, schedule.file_id as file_id + from cc_schedule as schedule + where schedule.starts >= '{$start}' and schedule.starts < '{$end}' + group by schedule.file_id + ) + AS playout left join cc_files as file on (file.id = playout.file_id)"; + + $results = Application_Model_Datatables::findEntries($this->con, $select, $historyTable, $this->opts, "history"); + + foreach ($results["history"] as &$row) { + $formatter = new LengthFormatter($row['length']); + $row['length'] = $formatter->format(); + } + + return $results; + } +} \ No newline at end of file diff --git a/airtime_mvc/application/models/Show.php b/airtime_mvc/application/models/Show.php index e29aa71cb..4e63c6876 100644 --- a/airtime_mvc/application/models/Show.php +++ b/airtime_mvc/application/models/Show.php @@ -1480,8 +1480,8 @@ class Application_Model_Show { $sql = $sql." AND ({$exclude})"; } - Logging::log("getShows"); - Logging::log($sql); + //Logging::log("getShows"); + //Logging::log($sql); return $CC_DBC->GetAll($sql); } diff --git a/airtime_mvc/application/views/scripts/playouthistory/index.phtml b/airtime_mvc/application/views/scripts/playouthistory/index.phtml new file mode 100644 index 000000000..6aa7f8268 --- /dev/null +++ b/airtime_mvc/application/views/scripts/playouthistory/index.phtml @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/airtime_mvc/public/js/airtime/playouthistory/historytable.js b/airtime_mvc/public/js/airtime/playouthistory/historytable.js new file mode 100644 index 000000000..cfa69fec7 --- /dev/null +++ b/airtime_mvc/public/js/airtime/playouthistory/historytable.js @@ -0,0 +1,73 @@ +var AIRTIME = (function(AIRTIME) { + var mod; + + if (AIRTIME.history === undefined) { + AIRTIME.history = {}; + } + mod = AIRTIME.history; + + mod.historyTable = function() { + var oTable, + historyContentDiv = $("#history_content"), + historyTableDiv = historyContentDiv.find("#history_table"); + tableHeight = historyContentDiv.height() - 140; + + oTable = historyTableDiv.dataTable( { + + "aoColumns": [ + {"sTitle": "Title", "mDataProp": "title", "sClass": "his_title"}, /* Title */ + {"sTitle": "Artist", "mDataProp": "artist", "sClass": "his_artist"}, /* Creator */ + {"sTitle": "Played", "mDataProp": "played", "sClass": "his_artist"}, /* times played */ + {"sTitle": "Length", "mDataProp": "length", "sClass": "his_length"}, /* Length */ + {"sTitle": "Composer", "mDataProp": "composer", "sClass": "his_composer"}, /* Composer */ + {"sTitle": "Copyright", "mDataProp": "copyright", "sClass": "his_copyright"} /* Copyright */ + ], + + "bProcessing": true, + "bServerSide": true, + "sAjaxSource": "/Playouthistory/playout-history-feed", + "sAjaxDataProp": "history", + + "fnServerData": function ( sSource, aoData, fnCallback ) { + + aoData.push( { name: "format", value: "json"} ); + + $.ajax( { + "dataType": 'json', + "type": "GET", + "url": sSource, + "data": aoData, + "success": fnCallback + } ); + }, + + "oLanguage": { + "sSearch": "" + }, + + "sPaginationType": "full_numbers", + "bJQueryUI": true, + "bAutoWidth": false, + + "sDom": 'lfr<"H"><"dataTables_scrolling"t><"F"ip>', + }); + }; + +return AIRTIME; + +}(AIRTIME || {})); + +$(document).ready(function(){ + + var viewport = AIRTIME.utilities.findViewportDimensions(), + history_content = $("#history_content"), + widgetHeight = viewport.height - 185, + screenWidth = Math.floor(viewport.width - 110); + + history_content + .height(widgetHeight) + .width(screenWidth); + + AIRTIME.history.historyTable(); + +}); \ No newline at end of file From c66b55ec17b1940693fb78e0e0677735fe9e5ec2 Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Fri, 9 Mar 2012 11:13:32 +0100 Subject: [PATCH 10/16] CC-733 : playout history translating mDataProp values to be able to search table on backend --- .../application/models/PlayoutHistory.php | 22 +++++++++++++++++++ airtime_mvc/public/css/media_library.css | 4 ---- airtime_mvc/public/css/styles.css | 6 ++++- .../js/airtime/playouthistory/historytable.js | 3 ++- 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/airtime_mvc/application/models/PlayoutHistory.php b/airtime_mvc/application/models/PlayoutHistory.php index 9084e05d6..6918f9dd1 100644 --- a/airtime_mvc/application/models/PlayoutHistory.php +++ b/airtime_mvc/application/models/PlayoutHistory.php @@ -15,6 +15,15 @@ class Application_Model_PlayoutHistory { private $epoch_now; private $opts; + private $mDataPropMap = array( + "artist" => "file.artist_name", + "title" => "file.track_title", + "played" => "playout.played", + "length" => "file.length", + "composer" => "file.composer", + "copyright" => "file.copyright", + ); + public function __construct($p_startDT, $p_endDT, $p_opts) { $this->con = Propel::getConnection(CcSchedulePeer::DATABASE_NAME); @@ -25,8 +34,21 @@ class Application_Model_PlayoutHistory { $this->opts = $p_opts; } + /* + * map front end mDataProp labels to proper column names for searching etc. + */ + private function translateColumns() { + + for ($i = 0; $i < $this->opts["iColumns"]; $i++){ + + $this->opts["mDataProp_{$i}"] = $this->mDataPropMap[$this->opts["mDataProp_{$i}"]]; + } + } + public function getItems() { + $this->translateColumns(); + $select = array( "file.track_title as title", "file.artist_name as artist", diff --git a/airtime_mvc/public/css/media_library.css b/airtime_mvc/public/css/media_library.css index 1456c04e7..87e156037 100644 --- a/airtime_mvc/public/css/media_library.css +++ b/airtime_mvc/public/css/media_library.css @@ -9,10 +9,6 @@ table-layout:fixed; } -#library_display th { - text-align: left; -} - #library_content #library_display { width:100%; } diff --git a/airtime_mvc/public/css/styles.css b/airtime_mvc/public/css/styles.css index 457e91a0f..a7de7fa82 100644 --- a/airtime_mvc/public/css/styles.css +++ b/airtime_mvc/public/css/styles.css @@ -510,6 +510,11 @@ dl.inline-list dd { border-width: 1px 1px 1px 1px; width:100%; } + +.datatable th { + text-align: left; +} + .datatable tr td, .datatable tr th { border-color: #b1b1b1; border-style: solid; @@ -671,7 +676,6 @@ button.ColVis_Button.ColVis_ShowAll { .library_length { text-align: right; - padding-right: 1em !important; } /*----END Data Table----*/ diff --git a/airtime_mvc/public/js/airtime/playouthistory/historytable.js b/airtime_mvc/public/js/airtime/playouthistory/historytable.js index cfa69fec7..975e19410 100644 --- a/airtime_mvc/public/js/airtime/playouthistory/historytable.js +++ b/airtime_mvc/public/js/airtime/playouthistory/historytable.js @@ -18,7 +18,7 @@ var AIRTIME = (function(AIRTIME) { {"sTitle": "Title", "mDataProp": "title", "sClass": "his_title"}, /* Title */ {"sTitle": "Artist", "mDataProp": "artist", "sClass": "his_artist"}, /* Creator */ {"sTitle": "Played", "mDataProp": "played", "sClass": "his_artist"}, /* times played */ - {"sTitle": "Length", "mDataProp": "length", "sClass": "his_length"}, /* Length */ + {"sTitle": "Length", "mDataProp": "length", "sClass": "his_length library_length"}, /* Length */ {"sTitle": "Composer", "mDataProp": "composer", "sClass": "his_composer"}, /* Composer */ {"sTitle": "Copyright", "mDataProp": "copyright", "sClass": "his_copyright"} /* Copyright */ ], @@ -51,6 +51,7 @@ var AIRTIME = (function(AIRTIME) { "sDom": 'lfr<"H"><"dataTables_scrolling"t><"F"ip>', }); + oTable.fnSetFilteringDelay(350); }; return AIRTIME; From b58e948825d1fd2880a2754a586afb8c2d10aece Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Fri, 9 Mar 2012 11:28:43 +0100 Subject: [PATCH 11/16] CC-733 : adding extra error messages --- python_apps/pypo/pypopush.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/python_apps/pypo/pypopush.py b/python_apps/pypo/pypopush.py index 6cb2558e7..61635fc55 100644 --- a/python_apps/pypo/pypopush.py +++ b/python_apps/pypo/pypopush.py @@ -104,6 +104,7 @@ class PypoPush(Thread): track, so let's push it now so that Liquidsoap can start playing it immediately after (and prepare crossfades if need be). """ + self.logger.debug("Push track immediately.") self.telnet_to_liquidsoap(media_item) self.last_end_time = media_item["end"] else: @@ -111,11 +112,13 @@ class PypoPush(Thread): this media item does not start right after a current playing track. We need to sleep, and then wake up when this track starts. """ + self.logger.debug("sleep until track start.") self.sleep_until_start(media_item) self.telnet_to_liquidsoap(media_item) self.last_end_time = media_item["end"] except Exception, e: + self.logger.error('Pypo Push Exception: %s', e) return False return True From 7c63387dd55cfd174a4fb5bb4571fe6163958e20 Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Fri, 9 Mar 2012 13:39:12 +0100 Subject: [PATCH 12/16] CC-733 : broadcast logs adding the export table tools. --- .../controllers/PlayouthistoryController.php | 10 +- .../js/airtime/playouthistory/historytable.js | 6 +- .../plugin/TableTools/as3/ZeroClipboard.as | 221 ++ .../plugin/TableTools/as3/ZeroClipboardPdf.as | 310 ++ .../plugin/TableTools/as3/lib/AlivePDF.swc | Bin 0 -> 131230 bytes .../plugin/TableTools/css/TableTools.css | 264 ++ .../plugin/TableTools/css/TableTools_JUI.css | 183 ++ .../plugin/TableTools/images/background.png | Bin 0 -> 944 bytes .../plugin/TableTools/images/collection.png | Bin 0 -> 1166 bytes .../TableTools/images/collection_hover.png | Bin 0 -> 1194 bytes .../plugin/TableTools/images/copy.png | Bin 0 -> 2184 bytes .../plugin/TableTools/images/copy_hover.png | Bin 0 -> 2797 bytes .../plugin/TableTools/images/csv.png | Bin 0 -> 1607 bytes .../plugin/TableTools/images/csv_hover.png | Bin 0 -> 1854 bytes .../plugin/TableTools/images/pdf.png | Bin 0 -> 4325 bytes .../plugin/TableTools/images/pdf_hover.png | Bin 0 -> 2786 bytes .../plugin/TableTools/images/print.png | Bin 0 -> 2123 bytes .../plugin/TableTools/images/print_hover.png | Bin 0 -> 2230 bytes .../TableTools/images/psd/collection.psd | Bin 0 -> 25792 bytes .../TableTools/images/psd/copy document.psd | Bin 0 -> 104729 bytes .../TableTools/images/psd/file_types.psd | Bin 0 -> 1090645 bytes .../plugin/TableTools/images/psd/printer.psd | Bin 0 -> 119952 bytes .../plugin/TableTools/images/xls.png | Bin 0 -> 1641 bytes .../plugin/TableTools/images/xls_hover.png | Bin 0 -> 2061 bytes .../plugin/TableTools/js/TableTools.js | 2569 +++++++++++++++++ .../plugin/TableTools/js/TableTools.min.js | 81 + .../plugin/TableTools/js/TableTools.min.js.gz | Bin 0 -> 8635 bytes .../plugin/TableTools/js/ZeroClipboard.js | 367 +++ .../plugin/TableTools/swf/copy_cvs_xls.swf | Bin 0 -> 2125 bytes .../TableTools/swf/copy_cvs_xls_pdf.swf | Bin 0 -> 58813 bytes 30 files changed, 4006 insertions(+), 5 deletions(-) create mode 100755 airtime_mvc/public/js/datatables/plugin/TableTools/as3/ZeroClipboard.as create mode 100755 airtime_mvc/public/js/datatables/plugin/TableTools/as3/ZeroClipboardPdf.as create mode 100644 airtime_mvc/public/js/datatables/plugin/TableTools/as3/lib/AlivePDF.swc create mode 100755 airtime_mvc/public/js/datatables/plugin/TableTools/css/TableTools.css create mode 100755 airtime_mvc/public/js/datatables/plugin/TableTools/css/TableTools_JUI.css create mode 100644 airtime_mvc/public/js/datatables/plugin/TableTools/images/background.png create mode 100644 airtime_mvc/public/js/datatables/plugin/TableTools/images/collection.png create mode 100644 airtime_mvc/public/js/datatables/plugin/TableTools/images/collection_hover.png create mode 100755 airtime_mvc/public/js/datatables/plugin/TableTools/images/copy.png create mode 100755 airtime_mvc/public/js/datatables/plugin/TableTools/images/copy_hover.png create mode 100755 airtime_mvc/public/js/datatables/plugin/TableTools/images/csv.png create mode 100755 airtime_mvc/public/js/datatables/plugin/TableTools/images/csv_hover.png create mode 100644 airtime_mvc/public/js/datatables/plugin/TableTools/images/pdf.png create mode 100644 airtime_mvc/public/js/datatables/plugin/TableTools/images/pdf_hover.png create mode 100755 airtime_mvc/public/js/datatables/plugin/TableTools/images/print.png create mode 100755 airtime_mvc/public/js/datatables/plugin/TableTools/images/print_hover.png create mode 100644 airtime_mvc/public/js/datatables/plugin/TableTools/images/psd/collection.psd create mode 100755 airtime_mvc/public/js/datatables/plugin/TableTools/images/psd/copy document.psd create mode 100755 airtime_mvc/public/js/datatables/plugin/TableTools/images/psd/file_types.psd create mode 100755 airtime_mvc/public/js/datatables/plugin/TableTools/images/psd/printer.psd create mode 100755 airtime_mvc/public/js/datatables/plugin/TableTools/images/xls.png create mode 100755 airtime_mvc/public/js/datatables/plugin/TableTools/images/xls_hover.png create mode 100755 airtime_mvc/public/js/datatables/plugin/TableTools/js/TableTools.js create mode 100644 airtime_mvc/public/js/datatables/plugin/TableTools/js/TableTools.min.js create mode 100644 airtime_mvc/public/js/datatables/plugin/TableTools/js/TableTools.min.js.gz create mode 100755 airtime_mvc/public/js/datatables/plugin/TableTools/js/ZeroClipboard.js create mode 100644 airtime_mvc/public/js/datatables/plugin/TableTools/swf/copy_cvs_xls.swf create mode 100644 airtime_mvc/public/js/datatables/plugin/TableTools/swf/copy_cvs_xls_pdf.swf diff --git a/airtime_mvc/application/controllers/PlayouthistoryController.php b/airtime_mvc/application/controllers/PlayouthistoryController.php index 6d6b64d6d..98c5d8788 100644 --- a/airtime_mvc/application/controllers/PlayouthistoryController.php +++ b/airtime_mvc/application/controllers/PlayouthistoryController.php @@ -22,14 +22,16 @@ class PlayoutHistoryController extends Zend_Controller_Action $this->view->headScript()->appendFile($baseUrl.'/js/contextmenu/jquery.contextMenu.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.pluginAPI.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.TableTools.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/TableTools/js/ZeroClipboard.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); + $this->view->headScript()->appendFile($baseUrl.'/js/datatables/plugin/TableTools/js/TableTools.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/playouthistory/historytable.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); - - $this->view->headLink()->appendStylesheet($baseUrl.'/css/TableTools.css?'.$CC_CONFIG['airtime_version']); + + $this->view->headLink()->appendStylesheet($baseUrl.'/js/datatables/plugin/TableTools/css/TableTools.css?'.$CC_CONFIG['airtime_version']); + //$this->view->headLink()->appendStylesheet($baseUrl.'/js/datatables/plugin/TableTools/css/TableTools_JUI.css?'.$CC_CONFIG['airtime_version']); } public function playoutHistoryFeedAction() diff --git a/airtime_mvc/public/js/airtime/playouthistory/historytable.js b/airtime_mvc/public/js/airtime/playouthistory/historytable.js index 975e19410..eddc4df3f 100644 --- a/airtime_mvc/public/js/airtime/playouthistory/historytable.js +++ b/airtime_mvc/public/js/airtime/playouthistory/historytable.js @@ -49,7 +49,11 @@ var AIRTIME = (function(AIRTIME) { "bJQueryUI": true, "bAutoWidth": false, - "sDom": 'lfr<"H"><"dataTables_scrolling"t><"F"ip>', + "sDom": 'lfr<"H"T><"dataTables_scrolling"t><"F"ip>', + + "oTableTools": { + "sSwfPath": "/js/datatables/plugin/TableTools/swf/copy_cvs_xls_pdf.swf" + } }); oTable.fnSetFilteringDelay(350); }; diff --git a/airtime_mvc/public/js/datatables/plugin/TableTools/as3/ZeroClipboard.as b/airtime_mvc/public/js/datatables/plugin/TableTools/as3/ZeroClipboard.as new file mode 100755 index 000000000..367b0497d --- /dev/null +++ b/airtime_mvc/public/js/datatables/plugin/TableTools/as3/ZeroClipboard.as @@ -0,0 +1,221 @@ +/* Compile using: mxmlc --target-player=10.0.0 ZeroClipboard.as */ +package { + import flash.display.Stage; + import flash.display.Sprite; + import flash.display.LoaderInfo; + import flash.display.StageScaleMode; + import flash.events.*; + import flash.display.StageAlign; + import flash.display.StageScaleMode; + import flash.external.ExternalInterface; + import flash.system.Security; + import flash.utils.*; + import flash.system.System; + import flash.net.FileReference; + import flash.net.FileFilter; + + public class ZeroClipboard extends Sprite { + + private var domId:String = ''; + private var button:Sprite; + private var clipText:String = 'blank'; + private var fileName:String = ''; + private var action:String = 'copy'; + private var incBom:Boolean = true; + private var charSet:String = 'utf8'; + + + public function ZeroClipboard() { + // constructor, setup event listeners and external interfaces + stage.scaleMode = StageScaleMode.EXACT_FIT; + flash.system.Security.allowDomain("*"); + + // import flashvars + var flashvars:Object = LoaderInfo( this.root.loaderInfo ).parameters; + domId = flashvars.id; + + // invisible button covers entire stage + button = new Sprite(); + button.buttonMode = true; + button.useHandCursor = true; + button.graphics.beginFill(0x00FF00); + button.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); + button.alpha = 0.0; + addChild(button); + + button.addEventListener(MouseEvent.CLICK, clickHandler); + button.addEventListener(MouseEvent.MOUSE_OVER, function(event:Event):void { + ExternalInterface.call( 'ZeroClipboard.dispatch', domId, 'mouseOver', null ); + } ); + button.addEventListener(MouseEvent.MOUSE_OUT, function(event:Event):void { + ExternalInterface.call( 'ZeroClipboard.dispatch', domId, 'mouseOut', null ); + } ); + button.addEventListener(MouseEvent.MOUSE_DOWN, function(event:Event):void { + ExternalInterface.call( 'ZeroClipboard.dispatch', domId, 'mouseDown', null ); + } ); + button.addEventListener(MouseEvent.MOUSE_UP, function(event:Event):void { + ExternalInterface.call( 'ZeroClipboard.dispatch', domId, 'mouseUp', null ); + } ); + + // External functions - readd whenever the stage is made active for IE + addCallbacks(); + stage.addEventListener(Event.ACTIVATE, addCallbacks); + + // signal to the browser that we are ready + ExternalInterface.call( 'ZeroClipboard.dispatch', domId, 'load', null ); + } + + public function addCallbacks ():void { + ExternalInterface.addCallback("setHandCursor", setHandCursor); + ExternalInterface.addCallback("clearText", clearText); + ExternalInterface.addCallback("setText", setText); + ExternalInterface.addCallback("appendText", appendText); + ExternalInterface.addCallback("setFileName", setFileName); + ExternalInterface.addCallback("setAction", setAction); + ExternalInterface.addCallback("setCharSet", setCharSet); + ExternalInterface.addCallback("setBomInc", setBomInc); + } + + + public function setCharSet(newCharSet:String):void { + if ( newCharSet == 'UTF16LE' ) { + charSet = newCharSet; + } else { + charSet = 'UTF8'; + } + } + + public function setBomInc(newBomInc:Boolean):void { + incBom = newBomInc; + } + + public function clearText():void { + clipText = ''; + } + + public function appendText(newText:String):void { + clipText += newText; + } + + public function setText(newText:String):void { + clipText = newText; + } + + public function setFileName(newFileName:String):void { + fileName = newFileName; + } + + public function setAction(newAction:String):void { + action = newAction; + } + + public function setHandCursor(enabled:Boolean):void { + // control whether the hand cursor is shown on rollover (true) + // or the default arrow cursor (false) + button.useHandCursor = enabled; + } + + + private function clickHandler(event:Event):void { + var fileRef:FileReference = new FileReference(); + fileRef.addEventListener(Event.COMPLETE, saveComplete); + + if ( action == "save" ) { + /* Save as a file */ + if ( charSet == 'UTF16LE' ) { + fileRef.save( strToUTF16LE(clipText), fileName ); + } else { + fileRef.save( strToUTF8(clipText), fileName ); + } + } else if ( action == "pdf" ) { + fileRef.save( "This instance of ZeroClipboard is not configured for PDF export. "+ + "Please use the PDF export version.", fileName+".txt" ); + } else { + /* Copy the text to the clipboard. Note charset and BOM have no effect here */ + System.setClipboard( clipText ); + ExternalInterface.call( 'ZeroClipboard.dispatch', domId, 'complete', clipText ); + } + } + + + private function saveComplete(event:Event):void { + ExternalInterface.call( 'ZeroClipboard.dispatch', domId, 'complete', clipText ); + } + + + private function getProp( prop:String, opts:Array ):String + { + var i:int, iLen:int; + for ( i=0, iLen=opts.length ; i> 8 ); + } + + i++; + } + + return utf16; + } + } +} diff --git a/airtime_mvc/public/js/datatables/plugin/TableTools/as3/ZeroClipboardPdf.as b/airtime_mvc/public/js/datatables/plugin/TableTools/as3/ZeroClipboardPdf.as new file mode 100755 index 000000000..937187e43 --- /dev/null +++ b/airtime_mvc/public/js/datatables/plugin/TableTools/as3/ZeroClipboardPdf.as @@ -0,0 +1,310 @@ +/* Compile using: mxmlc --target-player=10.0.0 -static-link-runtime-shared-libraries=true -library-path+=lib ZeroClipboardPdf.as */ +package { + import flash.display.Stage; + import flash.display.Sprite; + import flash.display.LoaderInfo; + import flash.display.StageScaleMode; + import flash.events.*; + import flash.display.StageAlign; + import flash.display.StageScaleMode; + import flash.external.ExternalInterface; + import flash.system.Security; + import flash.utils.*; + import flash.system.System; + import flash.net.FileReference; + import flash.net.FileFilter; + + /* PDF imports */ + import org.alivepdf.pdf.PDF; + import org.alivepdf.data.Grid; + import org.alivepdf.data.GridColumn; + import org.alivepdf.layout.Orientation; + import org.alivepdf.layout.Size; + import org.alivepdf.layout.Unit; + import org.alivepdf.display.Display; + import org.alivepdf.saving.Method; + import org.alivepdf.fonts.FontFamily; + import org.alivepdf.fonts.Style; + import org.alivepdf.fonts.CoreFont; + import org.alivepdf.colors.RGBColor; + + public class ZeroClipboard extends Sprite { + + private var domId:String = ''; + private var button:Sprite; + private var clipText:String = 'blank'; + private var fileName:String = ''; + private var action:String = 'copy'; + private var incBom:Boolean = true; + private var charSet:String = 'utf8'; + + + public function ZeroClipboard() { + // constructor, setup event listeners and external interfaces + stage.scaleMode = StageScaleMode.EXACT_FIT; + flash.system.Security.allowDomain("*"); + + // import flashvars + var flashvars:Object = LoaderInfo( this.root.loaderInfo ).parameters; + domId = flashvars.id; + + // invisible button covers entire stage + button = new Sprite(); + button.buttonMode = true; + button.useHandCursor = true; + button.graphics.beginFill(0x00FF00); + button.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); + button.alpha = 0.0; + addChild(button); + + button.addEventListener(MouseEvent.CLICK, function(event:Event):void { + clickHandler(event); + } ); + button.addEventListener(MouseEvent.MOUSE_OVER, function(event:Event):void { + ExternalInterface.call( 'ZeroClipboard.dispatch', domId, 'mouseOver', null ); + } ); + button.addEventListener(MouseEvent.MOUSE_OUT, function(event:Event):void { + ExternalInterface.call( 'ZeroClipboard.dispatch', domId, 'mouseOut', null ); + } ); + button.addEventListener(MouseEvent.MOUSE_DOWN, function(event:Event):void { + ExternalInterface.call( 'ZeroClipboard.dispatch', domId, 'mouseDown', null ); + } ); + button.addEventListener(MouseEvent.MOUSE_UP, function(event:Event):void { + ExternalInterface.call( 'ZeroClipboard.dispatch', domId, 'mouseUp', null ); + } ); + + // External functions - readd whenever the stage is made active for IE + addCallbacks(); + stage.addEventListener(Event.ACTIVATE, addCallbacks); + + // signal to the browser that we are ready + ExternalInterface.call( 'ZeroClipboard.dispatch', domId, 'load', null ); + } + + public function addCallbacks ():void { + ExternalInterface.addCallback("setHandCursor", setHandCursor); + ExternalInterface.addCallback("clearText", clearText); + ExternalInterface.addCallback("setText", setText); + ExternalInterface.addCallback("appendText", appendText); + ExternalInterface.addCallback("setFileName", setFileName); + ExternalInterface.addCallback("setAction", setAction); + ExternalInterface.addCallback("setCharSet", setCharSet); + ExternalInterface.addCallback("setBomInc", setBomInc); + } + + + public function setCharSet(newCharSet:String):void { + if ( newCharSet == 'UTF16LE' ) { + charSet = newCharSet; + } else { + charSet = 'UTF8'; + } + } + + public function setBomInc(newBomInc:Boolean):void { + incBom = newBomInc; + } + + public function clearText():void { + clipText = ''; + } + + public function appendText(newText:String):void { + clipText += newText; + } + + public function setText(newText:String):void { + clipText = newText; + } + + public function setFileName(newFileName:String):void { + fileName = newFileName; + } + + public function setAction(newAction:String):void { + action = newAction; + } + + public function setHandCursor(enabled:Boolean):void { + // control whether the hand cursor is shown on rollover (true) + // or the default arrow cursor (false) + button.useHandCursor = enabled; + } + + + private function clickHandler(event:Event):void { + var fileRef:FileReference = new FileReference(); + fileRef.addEventListener(Event.COMPLETE, saveComplete); + + if ( action == "save" ) { + /* Save as a file */ + if ( charSet == 'UTF16LE' ) { + fileRef.save( strToUTF16LE(clipText), fileName ); + } else { + fileRef.save( strToUTF8(clipText), fileName ); + } + } else if ( action == "pdf" ) { + /* Save as a PDF */ + var pdf:PDF = configPdf(); + fileRef.save( pdf.save( Method.LOCAL ), fileName ); + } else { + /* Copy the text to the clipboard. Note charset and BOM have no effect here */ + System.setClipboard( clipText ); + ExternalInterface.call( 'ZeroClipboard.dispatch', domId, 'complete', clipText ); + } + } + + + private function saveComplete(event:Event):void { + ExternalInterface.call( 'ZeroClipboard.dispatch', domId, 'complete', clipText ); + } + + + private function getProp( prop:String, opts:Array ):String + { + var i:int, iLen:int; + for ( i=0, iLen=opts.length ; i> 8 ); + } + + i++; + } + + return utf16; + } + } +} diff --git a/airtime_mvc/public/js/datatables/plugin/TableTools/as3/lib/AlivePDF.swc b/airtime_mvc/public/js/datatables/plugin/TableTools/as3/lib/AlivePDF.swc new file mode 100644 index 0000000000000000000000000000000000000000..ee0f3f8f4ca49ccea24defe4ac6bd4b9c3e65a05 GIT binary patch literal 131230 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%0DpCJ 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 z�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%0DJQR7sG>Xt#p#V(I8GKf74o* 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

{ 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

LlCHqghW6o`YlXts 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 A0{{R3 literal 0 HcmV?d00001 diff --git a/airtime_mvc/public/js/datatables/plugin/TableTools/images/copy.png b/airtime_mvc/public/js/datatables/plugin/TableTools/images/copy.png new file mode 100755 index 0000000000000000000000000000000000000000..5b01ab165a9d1adeee1142b4ea5a0c47278c0689 GIT binary patch literal 2184 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 KfL+QIrTrJRQ-Rt5 literal 0 HcmV?d00001 diff --git a/airtime_mvc/public/js/datatables/plugin/TableTools/images/csv.png b/airtime_mvc/public/js/datatables/plugin/TableTools/images/csv.png new file mode 100755 index 0000000000000000000000000000000000000000..43df1559f7cf9546065ef4864e605a834df47b51 GIT binary patch literal 1607 zcmeAS@N?(olHy`uVBq!ia0vp^QXtI1#=yXM&$lK5$YDu$^mSxlxOU@;e}oZ`FInOm zQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGSvpC$O5Fu(I+G%F`dC)!8b7_RUto5 zArZ(*R^)Z9NX{uO&MZq+NXsu$2+mC`&dAJ52g;=9c{FoijrsN?cNllZ!G7 zN;32FfI+yXM}5RnejUS+Wl7>dU|T^vIyZYBNs|KFb3 zD1k}v^Ru(R|9^db{eJ;ta&mIp{`&t)Au+ql-rl&jHoCv@1_R@fjvThn>*M!N+gJCu zN;hCbqi0Nv&8?FsJ0ITOp3kG>ecgrAxJ1HVNM7J!W^?A=z4@(A z^5i{##6PVszG~a@VcC=>L$>EKUYY_<6Qa-k-1*b}hv@-Jd(){w{MowG1d@6bTIQ^X zdi{|nnPQT$IzbLn-bEqiyquXz7aut6tld!hu(BJs{?T!E5h z3zC?WEqSYVB&pm`l5Ar0mOC(ad%+*SLt&G&EfnwW{%$#KcJZ^7g);mz-r9WFnk&8a z+Pvq>%DrCR+xGtV!YPYNV#b4&KN$t7MH4jesUanDhyefFE zGUEDGp2G_762EWK>3v?wwx%lK9dpqg#ecCpEm~^6!7Bw^Cnh|yE{&R&s^&R~Ij7>E zB!9yEUF)hh=l+&^w=Z?N0Z*%=(4o!me;+HH!~IRJ@%WL#nx+Nre?7D(TIS4|v%MwK zQJ^Dqg&_0oZKA!?QVl~xCH3z2*@hinbxP`ERx+<>23-~Uc8 zOPSDjIQ@>f!Xww@{VXrG^n^-vG->P#P1<=>sN+V<1UC;sMb~Tmf;u@z?_D}CVDHL( zP;G+9&n6K?0Vl21xm!QXJGk3s@|upuv$x-zt1eD|c5d#UjPlJ3u4dhRURl>{R*@W~ zeZfNJ>PMF=)mMKh>^`5bZtDO2qU|d!(Q?%(@=@ov&Qp7#q%L;jWQvgX&Q+_lZs%_mR_e_p;m{9rn<7PmN^r`oXxdYf;B1rE>;FX0u(7@Cbiqk(TjFEc$wC z^PGLFZ{90;bG1=3-IJrZ)vyUCI0#j&)qp z^9c;B;Bd0qu_K&!QC#yu1rc^#gAITG_Fh&h^(eXg(nLvBi0}3H-#064__p0_wElfP z@#2#fW{W+SUtZbVyT#z=#nAt%8$2wHj~|OztSl~iWLC)5Khgaw9IIwXKELwUQYk?3 whM0}@N5#Gw-!;Gfzopr0IJ)>1ONa4 literal 0 HcmV?d00001 diff --git a/airtime_mvc/public/js/datatables/plugin/TableTools/images/csv_hover.png b/airtime_mvc/public/js/datatables/plugin/TableTools/images/csv_hover.png new file mode 100755 index 0000000000000000000000000000000000000000..10b34d3b90b3f7712f6de998fbc98a051b38a661 GIT binary patch literal 1854 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 TzzMz{00000NkvXXu0mjfWhV~A literal 0 HcmV?d00001 diff --git a/airtime_mvc/public/js/datatables/plugin/TableTools/images/pdf_hover.png b/airtime_mvc/public/js/datatables/plugin/TableTools/images/pdf_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..eb06855f4fc6bb57036cf61324149e3f8e27c902 GIT binary patch literal 2786 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 literal 0 HcmV?d00001 diff --git a/airtime_mvc/public/js/datatables/plugin/TableTools/images/print_hover.png b/airtime_mvc/public/js/datatables/plugin/TableTools/images/print_hover.png new file mode 100755 index 0000000000000000000000000000000000000000..9808a9cc9c59c3968494faea0399864448fdb3f4 GIT binary patch literal 2230 zcmb7_c|6p67sr3r1~ZnfWk?xIiiEL+$`}SCOJWGwh8bgQ6DC_@D_e+>r9_Ik;r5_h zYf9sy!DSlRsf!{dvZjfVdB$J&-{(26*Li)nNZ3TTM{wuWE4IsAd+~MOeBT#MgXuzqyN8NjL&DVc}k-L+`nE9U|s*Cp;J$c zUje`&BU=;_6Fcp{$K@gf^!)gxVpfy(xZBH@pMhPlaS#C|_QiB1M4~QErcg6QNXNIG z{9RO1U}_NH>&XlicISTFW+7F&a##-$To#kbT;JTjp80)j;BKC&iHSTQC^_GqA@LW# zg~bgnm&+Mg|GuOzY!oeSO@*qyph{a(Q0wzKg(!JzYinWZj-sL>SlG=mM=RY_0qht( zu4iRs1@@&U1o#Euv1nUc{LmN%&JTiFlh-;QY=3#HnjX-b3#a_rUE;PreaO}EYFq!> zah(l?nw!2#;?6WvwxVELy zUsQfeZmyv@0N3_zmtO6mCvhW9O-&Oy>@}sydY(#m<^A(5h?AEz4g!AkQwpjvvWnQr zk6T!|{79Wjg33$(?hX|+QR*;+!`}j$aRSc0U43s@os9ne_2qfHbRH*ZUQpo+mO0qj zHP{9GxzWqg0Z%;b*gGOC!%mo(=>RJs00{YqsGp>ajCQTo;5W|Z_Nhsa!NEa4aHJ4g zwU6dY=LR}qsDW44L4LUWqGErL*d~d42-C@8u{!yhihhH}t*nI3WePr~JwznwQTF%b zq2yWlm0IR)bLAdfF!4IZ!X9Jk<5PTGL%IC(JckXox3>qwX7@RqyD37@nbSwTNy+IA zq<8JEaxg&YQ|mNJGHrtteTGxLs;++JhCvn#nmS&J*6f;Q$O?XY%z|b5ZCgtzRmy#{ z^66w~X6_35fMiA=ooRu$33VIUX-D&_p;~x($vr3J*)!epi-TqQ^tDoMms#-1q6>IM zT;o&+#f)@&y}dp=xY;!1{vxM4<5cc^j=;2Z;IKx1&s*7Sp`M66#}R|#flvGW#Lbaj ziDoA2MCkC7w*H~x@7wPGZmwPMCn=9)ig^-?jk37$GhgDAZy!5J-)-?NFssQp+ zuIm$RIeqAu?|h5m-bxqy9q8szW~JnXI=AleA1yU>FYTLGFom`jpKd9oK@#3MJf{DAuEj1r*+DItbKWWMrD~$T;qJqHv>SvUkSrf^Ga-mOvujy$8DDiiYh_7QKW_fK1|FX?j(kfw+=TFz-fm8$-?4aB;ksc=82 zx||azjKp@^ss9?h9<_R&{XWXZXLhxzVc03}m(Zq`p{wcwzE%sARe8kez8PvNrQ=3t zor3wIK$Gn%wqlK|i8%aQ`e(yXvOBR_--bpD*znVx%mvCnhJU5!v;+}OsBHDS*(DM^ zXn$Q5eLdVOq*JOTGUu}G7%AhSQBsV)R0u8`I|Tb&Wxj?0XMOajqn>pn42d_VBrit1 zFpw{69I?}Ns2b3^Bwm7ZR)9Dx{82HJGA%7wUAl5p(ZL7^>OXbRmZjv*Ra6 zY(Po(+4g|=VI6_O{>3lI3Bj?NW2OmY2}-w>j_-DA{OpgT8IT2h-aDqVncHKxafW|` zp~%yudm`%UeWrImCQw9nRJ+H;GE)7ZnCxES)7HI5mB##_Nc3V#^6fOVnlt*u<H}ZllwAh0Ka*zPT7YdQLphI{Gzo#AU?boT6~eD$@wCGGnbK!#yhz zNg&x3Mu?|;y{KFJfJ^1f>dR|u6qf>T3j@W7!{WP7AtLcp8qccR+U~WtzZeM%`!?~h o;Us;q!HUvr$byH37?TLU_*S9#_)UUT%E868wQ@w&Tln4hFFz3kD*ylh literal 0 HcmV?d00001 diff --git a/airtime_mvc/public/js/datatables/plugin/TableTools/images/psd/collection.psd b/airtime_mvc/public/js/datatables/plugin/TableTools/images/psd/collection.psd new file mode 100644 index 0000000000000000000000000000000000000000..7eb7caf2cc5c98e1d9ac04de50b2009b344bbe85 GIT binary patch literal 25792 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 literal 0 HcmV?d00001 diff --git a/airtime_mvc/public/js/datatables/plugin/TableTools/images/psd/copy document.psd b/airtime_mvc/public/js/datatables/plugin/TableTools/images/psd/copy document.psd new file mode 100755 index 0000000000000000000000000000000000000000..ca207adc608751b51eb5265bda2b7392889305a3 GIT binary patch literal 104729 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 -z29Kyi71;_?78Nx8T@Kyi71;_?8+RhFJ*IS|(R zV!bqG3$m6Y9v^AF3fsCthdKb8O7xR9@|=69)Pv@ zipvA2wFHaH1F+0cad`k1%V$L^SsYCE>MAY|kaByTV_~l1@&H?95wPO&04xw!Tpoa> z30Ww-xI6&-vA8?{E7KL12XJIxhvM=8tj8()?Xbs4ae06YhIVmzfQT&i>J^sWuE$@eH70Ukd8Mek_dn}y|5LtL%HXcf`TY{_z%vJ`nxdfXp%Oz3E zke;z{b+Hc|`__Og)Ixrv&xX$IR`^vOop z(RFdz*IZwxwr-QXd2kiTOO9-Z$=1QdM%mL#b|6ZzxnFU4fFyg*;aw~)53r35>x;_+ z$hJ_z9b{+uSlZ}jx1FRHW;3FoeJdL(>2`$u?-ns`eZ20^Pn;Xg=BKD?7eb_|G4etGJ=9#Tg zww_^^NcOr)T49SR3IP*Q*u$DlpP23d^>+luR@q;W*$V72BU>Y?rFYrBhwYjIwtZsz zCgyn-mj@^=4^UhlptwAM6LdUZTppmfJV0@Ifa3B1#pMBt%L5db2k7n%vol|>7|-mA z$xg0G_F|PSx7nB0^Lu){cn_P(vT0!ow*s4n%l@Kv8n-~AH`yL_66_hsPKM~+GG~|> z4Z4|#$&RD4AKzp8)*kkR#3|sg>#WWG=#Y^SVn|;FfM3B zH+ybJEFwmRnWQOfk;oKh!^r4tTg#@!?1(8fF(ulM~Upj z%#RU`2H(-GsOg3~LTuw1V;@Ff%Pk{pM7hu8^k~#h>l@hhol326G9G0=^T4~0eUaG> z*zaWv$Fvp3f^(7)wg?a6>~k+w6qg4mE)P -z29Kyi71;_?8+*%Z6t|PmTavb|hC)Rb}+9$jh zUzN*Ixyz2X$f&J7`s$HgS+c&ld+bY2Jhb+?hZC7!zO{Q)?xN#uGEG?f>Z`kU?cTlX zmoLA%`?aHcCcL(LSD%wuyKCKpvCOMS_l)ho-gboSC2Of>Bx$d{y8EbP-@R+s4sY#& zSDt-P@00BP*X>8iK3+=S{Tlgq@7a4~&+qMhZTD-h?pV8L&x_CeB>B>7dj?%^C3|-G zTAK3qYuP<-?LE4uWbdnQtsU{R)b727i;_{=SYAHPTTX?#oe z?mMz~)T^o31BsXR9?e~jkW1CF*Y@l=x_8WOO5DGH-`>4%@6YZ#x_9JjnYHm3_v9{y zb3xXT^l$H8ZkFsnaCE=6@96&Qfh@VRd$W5kSQ~wD@BaM<4p0V#?Aap^3|~wBqx-V^ z-#(!2e=DDN#GbX0o%`O-Uky_k8PUDN_w7Hh|IGtO50aVYj$GTjv#Kh8QIfBo+NGR> zM-RPypk#k8*Gp9oRUOG)scfU^JzY6KN!bIX2M-45o=$24QL+F4jwr?;`PI?zj62| znf5IkQw0?BRgO??%jFq!=)j>j4pKb@l~hq?pgckORcbVjzE*M%?H_Z`?%m)7ojY=H#DRSWUO({GzHy+*?t3CTs+KLQdVAkUbw$>a zd!T}`d&qiF!R6?oEJMgp?j1+=C_t1(%Jp!rd0^r_6iwOt_Nxbu(2@_+PspOG>Ymt3 zj3oKh^=_4aEcqFyy#OBI9MS|t`)Leh#(2hFmel=Y)OGHG59AsTUJITGY!B=MO0ON= zJwZnF#eMnfw|A?)js+&tBKmuD|1dCH#`Ap-Rqa&>O1coQG+evq=&q98djQcMAV|)t z|JTmhw6qa~aeQ}u+mK?sRm~inCkjrG$h$JmjBepPB#8^J6bjepimz|Pva2rw;U-Ya<8F7}WWxDaRy%g6YR1Cz6u_c5n-7CdBD+Op~Jm<^x+-e@3@ zLUNmN!F=cNOeAUE-^sDSg2S1gc7V35AVjYTPguY2yg$X|I+^9Gy(l=$_nFd)nD?L& zD4z(<8S|T|8oB+DLvK6yhN<#*yr*$`(To|IPW*o7!&&`zihVQNw{^#Q{pRhhW3%+BO3g{ z1*jg!AKbKv27jny5H0>-W{Kp$pYk&Y{@`au{K3vH{<`?dHq+&-EWf7Eqp4*XG9HJJ&2 zlmdTnGBf_*XFmKXNA>uFpF;=So?waRT|Ik5Wh&{`8}d5jTbTEXKB1l5I;%lm4WzC znrjFrQYHVxr)d|l47+R>OXcB_(XsJ~$*Gyyx%q{~rR9~?_-T1{WqE0FVSa9QW@>U` Td~9@NxLhjQ$40|Q%*gl&pqPNb literal 0 HcmV?d00001 diff --git a/airtime_mvc/public/js/datatables/plugin/TableTools/images/psd/file_types.psd b/airtime_mvc/public/js/datatables/plugin/TableTools/images/psd/file_types.psd new file mode 100755 index 0000000000000000000000000000000000000000..0f280ad520ae61fc8bf3f6d0781d878c28e62a73 GIT binary patch literal 1090645 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%0D!*7gJ&xXg{)WOAPknlyJ>Sq1bGcb~zFrJobK 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 NIbZ(A+IS-N{{g?^6wUwu literal 0 HcmV?d00001 diff --git a/airtime_mvc/public/js/datatables/plugin/TableTools/images/psd/printer.psd b/airtime_mvc/public/js/datatables/plugin/TableTools/images/psd/printer.psd new file mode 100755 index 0000000000000000000000000000000000000000..8c33f7aaadcb2e4932ec714f29a6717f05de2bd6 GIT binary patch literal 119952 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 RPsfkiB~w3|a8^@5`)|Mpx1|68 literal 0 HcmV?d00001 diff --git a/airtime_mvc/public/js/datatables/plugin/TableTools/images/xls.png b/airtime_mvc/public/js/datatables/plugin/TableTools/images/xls.png new file mode 100755 index 0000000000000000000000000000000000000000..5aaf40d0e3ebe984398903d89d11cf9bc21385c0 GIT binary patch literal 1641 zcmb7^dpy&77{`BDv)GzzO&$7?vb|XDW#u*@w{hBBMyY<7SuS&#>*Tr#-4H5`LnI;B zmXcUmvE)c3Md*H+qC*m8Xa4HnbDr1hd3~Sf`~5uc*XQ;9`zng}=m$V`xusnP~UCz6N&FfuyqK{b)~8Y~AYi^2?M#Y53FfEdIKpn=Ze5S>P* zK|zU8BATUCWU(qDx_Np+bif8AK|wT-8397lDo`8ckPsLa8^egBfx*mZkP;5XgfJrL z(lKf!;{Lgr^N(DGa^|GW`y(#0A?z?{;wAct7G4#lRH*%zrC!&?*2zZ`n49F z(qH`OY)|w|cpmUmBC(M(IV`I@_pX0g@=ffMjdZ%#l`2`8dDi;gCc9r&x@m$Kii^XSXk@g6-y6x-KkUF zbLSB7;04aKx$6gPD&s^rMghVurr7Th$sz&8W)1WGRRKBmw#0N87Nz1OT*2n5ZD>fo zKI1RhHK{VOjK3u0ss2qE_N(A`YT+*FeIz2H8a-V!bvbF|2M0sLFD_tSTRvjHw^a)4 zz?rN#^jP1=TpP)YvF^D!SZ7$0Vk&Z`hJIB}Bbi)J$8aiYn1CG@TcECk$#^GRUuaNd z{H5KjPz`CTN|Q?xLay4oaK$y#rzNSjac$w1xInk=`&{)>tsWVx#aqWaOCKH`ODyXr z?3F9UIpMT9zy#Z+oWCN(!Jyq*PCan>jeqE)Y~BB7JwX6|iRpO(%I@ zkF-km@8*tO|4b>VmX8Gx$m}d=vFv>!8uaq|m3yPk&>-QB5qZe$O`;aQ&yMEn5+3&L zl<4Tm*NcMhHe4-idY-twO1z5;VVlnwzpUEooS`;N$nr>C7`YY7Zd1$j7ds7&an|si znfQVsH7qje%!P?!_DuXr@+2Xw_l0kHjTHwz zR?o4<+V%Qfedn*ZcA5`_^8JQl#N2G+($cR^D-oiF0(Imq$2%8{f0!PN%gRmbyI5v1 zNZFcQiEWQ)8zaG5s0K*jSHRn3>o(abPNv>;-BWS0Vo|xzRU6ho->Ie<)dke-xckbW4_P(#*&2PUn=OE667#nV zY!G0)S;B%Z2!_{(Q&u-?^{XR2w$)DMb+J9Ls@;=EZ{xpcf-nL66T0|S5v3@$q#8bc zgm2KX45yF!jC_Y{%=Q{Cd>k=8+jr@$!NA;MORWuE-R*-RY7c`=6)&@W-aZ-B7V}1; z{@4S}og<@`0ivkXU2k@KN{FW{l+PB?R17uEL(DdM%gXTFws}|0`}CxN1)F@{?xRWO zgvIEJ&6X9*vW{N!C0y8Ir(qa79T2!|*I8&nHFnTc-(Yt*<6piT&6xlI literal 0 HcmV?d00001 diff --git a/airtime_mvc/public/js/datatables/plugin/TableTools/images/xls_hover.png b/airtime_mvc/public/js/datatables/plugin/TableTools/images/xls_hover.png new file mode 100755 index 0000000000000000000000000000000000000000..5b1930afd86e7ef439026ee89e75520c086471f5 GIT binary patch literal 2061 zcmb7_dpHvcAIFzDGtT5v)~3lUrG?ta>SWj$DJBfDl-bNoW0{#vB)8o1qI#?0xK-YC zKaNWzm-M2@r94F{&E!&N?+A^#?47^Pzwi5dp5ODkf1dAuzie->Bf2`qIsgDb_ozF` zR~?Nv91H>gHhm^12C5597LiN@0NxD`9S^io*KodTAfLhw=f{Wgm;hoJm(D~UjS6Kk zeVL(QqL`OVyn5--#uCxf&o7h(a6*zp!pfU z1Us6gp0Pp`*wIWg&w@fdH3PfBaN(X6@z|^gKA;-;x9K8nFqq$vbP@76N6q0O{nTQ@ zxbd-P*gxx7#p+`hwqGEh#EfO|*k}1{ZnU}u0LX8){=ZrdIboA@B@8SrE&t=&@>EgKRCFayrwil0e$CWJqi^?abQ*Jk03(ocH9G} z-QDG&0DwN>Qg`@c*txQxZ}L~BM$@ZlDd;{~!~&~Wc#%8Sf_;p^VzDJQo$#TtwViT8te0B1+9Jb!J|Fq^wJ;9f! z@p9Pt)undKn!9z!&6WMImgJSq^(M#*u)$|Q;HANTH>}U|Y;9MUmh(e-b$dFVDoo)M z6B96TDPH*`?Yhi94JM2-xb*4;-%mN>oH9({g2%9rIpgH|ALF=P`y{P@2Zkh1YB`WZ9?#;XSZLD;`7zeHM zI((Revkmpq0i`XFKmJ+SrA1EwPjk=&R28G#-ZZnz09P<28kPx2D1%?I?{pgFG*|4d zMtGAq_m)NDgNL2eXDz!bZlX<{H}@}8-f;Cve;K9>%b&nA=^9&H8XT|Ri^&nNXxaa~ zbBFE0bQoIyxqaw_Tei~enm$i+^4bY&F?wl7aN&$$yu$EPaV@Yp*LD`X<#46FU$%+BHgE%rP0%o7sbuXs#96$LL;&$VRPm19mTT6Vp7QSdeg1;$H z{{H=I=T-Z*_rqfcitVo6V-_x<|cPN6Mw=sJBxECJf& za>b7@n-TK&IOV~Un&`!ukio)a3+t6EA4cHljj{p8=y%lmjmqxvsrzj^1%RF;n?93! z<^Gk#?hXtjqNsj!YQC;ZI``)gsb3frumEhGiEW&$uI9u>2L|TEJfjhe${O_Gp9}QHtn)HN8wODZZQdRWnTydB|GGYF~xTqhZ_G0w}$z2b?CL>1nN{iSl2 zDy(-{W4{z>uM!u`Q)zDW+km){p|7&gydO(55GHq@q1{a$(v{B-z^+N0Fru0oRBW2{_7|YRA zd#MbS;H9Tm^}Rg`znr+OmHa#3ojTK6gtKz8D`^5AQIu$`1mx9-sfmMQDKtl%aWg2H+sFotDXNROl$ ax&mAY+hYDES`WPO$d0;tksdnJQvVCjG_(i+ literal 0 HcmV?d00001 diff --git a/airtime_mvc/public/js/datatables/plugin/TableTools/js/TableTools.js b/airtime_mvc/public/js/datatables/plugin/TableTools/js/TableTools.js new file mode 100755 index 000000000..3e02c2c08 --- /dev/null +++ b/airtime_mvc/public/js/datatables/plugin/TableTools/js/TableTools.js @@ -0,0 +1,2569 @@ +/* + * File: TableTools.js + * Version: 2.0.2 + * Description: Tools and buttons for DataTables + * Author: Allan Jardine (www.sprymedia.co.uk) + * Language: Javascript + * License: GPL v2 or BSD 3 point style + * Project: DataTables + * + * Copyright 2009-2012 Allan Jardine, all rights reserved. + * + * This source file is free software, under either the GPL v2 license or a + * BSD style license, available at: + * http://datatables.net/license_gpl2 + * http://datatables.net/license_bsd + */ + +/* Global scope for TableTools */ +var TableTools; + +(function($, window, document) { + +/** + * TableTools provides flexible buttons and other tools for a DataTables enhanced table + * @class TableTools + * @constructor + * @param {Object} oDT DataTables instance + * @param {Object} oOpts TableTools options + * @param {String} oOpts.sSwfPath ZeroClipboard SWF path + * @param {String} oOpts.sRowSelect Row selection options - 'none', 'single' or 'multi' + * @param {Function} oOpts.fnPreRowSelect Callback function just prior to row selection + * @param {Function} oOpts.fnRowSelected Callback function just after row selection + * @param {Function} oOpts.fnRowDeselected Callback function when row is deselected + * @param {Array} oOpts.aButtons List of buttons to be used + */ +TableTools = function( oDT, oOpts ) +{ + /* Santiy check that we are a new instance */ + if ( !this.CLASS || this.CLASS != "TableTools" ) + { + alert( "Warning: TableTools must be initialised with the keyword 'new'" ); + } + + + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Public class variables + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + /** + * @namespace Settings object which contains customisable information for TableTools instance + */ + this.s = { + /** + * Store 'this' so the instance can be retreieved from the settings object + * @property that + * @type object + * @default this + */ + "that": this, + + /** + * DataTables settings objects + * @property dt + * @type object + * @default null + */ + "dt": null, + + /** + * @namespace Print specific information + */ + "print": { + /** + * DataTables draw 'start' point before the printing display was shown + * @property saveStart + * @type int + * @default -1 + */ + "saveStart": -1, + + /** + * DataTables draw 'length' point before the printing display was shown + * @property saveLength + * @type int + * @default -1 + */ + "saveLength": -1, + + /** + * Page scrolling point before the printing display was shown so it can be restored + * @property saveScroll + * @type int + * @default -1 + */ + "saveScroll": -1, + + /** + * Wrapped function to end the print display (to maintain scope) + * @property funcEnd + * @type Function + * @default function () {} + */ + "funcEnd": function () {} + }, + + /** + * A unique ID is assigned to each button in each instance + * @property buttonCounter + * @type int + * @default 0 + */ + "buttonCounter": 0, + + /** + * @namespace Select rows specific information + */ + "select": { + /** + * Select type - can be 'none', 'single' or 'multi' + * @property type + * @type string + * @default "" + */ + "type": "", + + /** + * Array of nodes which are currently selected + * @property selected + * @type array + * @default [] + */ + "selected": [], + + /** + * Function to run before the selection can take place. Will cancel the select if the + * function returns false + * @property preRowSelect + * @type Function + * @default null + */ + "preRowSelect": null, + + /** + * Function to run when a row is selected + * @property postSelected + * @type Function + * @default null + */ + "postSelected": null, + + /** + * Function to run when a row is deselected + * @property postDeselected + * @type Function + * @default null + */ + "postDeselected": null, + + /** + * Indicate if all rows are selected (needed for server-side processing) + * @property all + * @type boolean + * @default false + */ + "all": false, + + /** + * Class name to add to selected TR nodes + * @property selectedClass + * @type String + * @default "" + */ + "selectedClass": "" + }, + + /** + * Store of the user input customisation object + * @property custom + * @type object + * @default {} + */ + "custom": {}, + + /** + * SWF movie path + * @property swfPath + * @type string + * @default "" + */ + "swfPath": "", + + /** + * Default button set + * @property buttonSet + * @type array + * @default [] + */ + "buttonSet": [], + + /** + * When there is more than one TableTools instance for a DataTable, there must be a + * master which controls events (row selection etc) + * @property master + * @type boolean + * @default false + */ + "master": false + }; + + + /** + * @namespace Common and useful DOM elements for the class instance + */ + this.dom = { + /** + * DIV element that is create and all TableTools buttons (and their children) put into + * @property container + * @type node + * @default null + */ + "container": null, + + /** + * The table node to which TableTools will be applied + * @property table + * @type node + * @default null + */ + "table": null, + + /** + * @namespace Nodes used for the print display + */ + "print": { + /** + * Nodes which have been removed from the display by setting them to display none + * @property hidden + * @type array + * @default [] + */ + "hidden": [], + + /** + * The information display saying tellng the user about the print display + * @property message + * @type node + * @default null + */ + "message": null + }, + + /** + * @namespace Nodes used for a collection display. This contains the currently used collection + */ + "collection": { + /** + * The div wrapper containing the buttons in the collection (i.e. the menu) + * @property collection + * @type node + * @default null + */ + "collection": null, + + /** + * Background display to provide focus and capture events + * @property background + * @type node + * @default null + */ + "background": null + } + }; + + + + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Public class methods + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + /** + * Retreieve the settings object from an instance + * @method fnSettings + * @returns {object} TableTools settings object + */ + this.fnSettings = function () { + return this.s; + }; + + + /* Constructor logic */ + if ( typeof oOpts == 'undefined' ) + { + oOpts = {}; + } + + this.s.dt = oDT.fnSettings(); + this._fnConstruct( oOpts ); + + return this; +}; + + + +TableTools.prototype = { + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Public methods + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + /** + * Retreieve the settings object from an instance + * @method fnGetSelected + * @returns {array} List of TR nodes which are currently selected + */ + "fnGetSelected": function () + { + var masterS = this._fnGetMasterSettings(); + return masterS.select.selected; + }, + + + /** + * Get the data source objects/arrays from DataTables for the selected rows (same as + * fnGetSelected followed by fnGetData on each row from the table) + * @method fnGetSelectedData + * @returns {array} Data from the TR nodes which are currently selected + */ + "fnGetSelectedData": function () + { + var masterS = this._fnGetMasterSettings(); + var selected = masterS.select.selected; + var out = []; + + for ( var i=0, iLen=selected.length ; i 0 ) + { + sTitle = anTitle[0].innerHTML; + } + } + + /* Strip characters which the OS will object to - checking for UTF8 support in the scripting + * engine + */ + if ( "\u00A1".toString().length < 4 ) { + return sTitle.replace(/[^a-zA-Z0-9_\u00A1-\uFFFF\.,\-_ !\(\)]/g, ""); + } else { + return sTitle.replace(/[^a-zA-Z0-9_\.,\-_ !\(\)]/g, ""); + } + }, + + + /** + * Calculate a unity array with the column width by proportion for a set of columns to be + * included for a button. This is particularly useful for PDF creation, where we can use the + * column widths calculated by the browser to size the columns in the PDF. + * @method fnCalcColRations + * @param {Object} oConfig Button configuration object + * @returns {Array} Unity array of column ratios + */ + "fnCalcColRatios": function ( oConfig ) + { + var + aoCols = this.s.dt.aoColumns, + aColumnsInc = this._fnColumnTargets( oConfig.mColumns ), + aColWidths = [], + iWidth = 0, iTotal = 0, i, iLen; + + for ( i=0, iLen=aColumnsInc.length ; i

Please use your browser's print function to "+ + "print this table. Press escape when finished.", + "sMessage": "", + "bShowAll": true, + "sToolTip": "View print view", + "sButtonClass": "DTTT_button_print", + "sButtonClassHover": "DTTT_button_print_hover", + "sButtonText": "Print", + "fnMouseover": null, + "fnMouseout": null, + "fnClick": null, + "fnSelect": null, + "fnComplete": null, + "fnInit": null, + "fnCellRender": null + }, + "text": { + "sAction": "text", + "sToolTip": "", + "sButtonClass": "DTTT_button_text", + "sButtonClassHover": "DTTT_button_text_hover", + "sButtonText": "Text button", + "mColumns": "all", + "bHeader": true, + "bFooter": true, + "bSelectedOnly": false, + "fnMouseover": null, + "fnMouseout": null, + "fnClick": null, + "fnSelect": null, + "fnComplete": null, + "fnInit": null, + "fnCellRender": null + }, + "select": { + "sAction": "text", + "sToolTip": "", + "sButtonClass": "DTTT_button_text", + "sButtonClassHover": "DTTT_button_text_hover", + "sButtonText": "Select button", + "mColumns": "all", + "bHeader": true, + "bFooter": true, + "fnMouseover": null, + "fnMouseout": null, + "fnClick": null, + "fnSelect": function( nButton, oConfig ) { + if ( this.fnGetSelected().length !== 0 ) { + $(nButton).removeClass('DTTT_disabled'); + } else { + $(nButton).addClass('DTTT_disabled'); + } + }, + "fnComplete": null, + "fnInit": function( nButton, oConfig ) { + $(nButton).addClass('DTTT_disabled'); + }, + "fnCellRender": null + }, + "select_single": { + "sAction": "text", + "sToolTip": "", + "sButtonClass": "DTTT_button_text", + "sButtonClassHover": "DTTT_button_text_hover", + "sButtonText": "Select button", + "mColumns": "all", + "bHeader": true, + "bFooter": true, + "fnMouseover": null, + "fnMouseout": null, + "fnClick": null, + "fnSelect": function( nButton, oConfig ) { + var iSelected = this.fnGetSelected().length; + if ( iSelected == 1 ) { + $(nButton).removeClass('DTTT_disabled'); + } else { + $(nButton).addClass('DTTT_disabled'); + } + }, + "fnComplete": null, + "fnInit": function( nButton, oConfig ) { + $(nButton).addClass('DTTT_disabled'); + }, + "fnCellRender": null + }, + "select_all": { + "sAction": "text", + "sToolTip": "", + "sButtonClass": "DTTT_button_text", + "sButtonClassHover": "DTTT_button_text_hover", + "sButtonText": "Select all", + "mColumns": "all", + "bHeader": true, + "bFooter": true, + "fnMouseover": null, + "fnMouseout": null, + "fnClick": function( nButton, oConfig ) { + this.fnSelectAll(); + }, + "fnSelect": function( nButton, oConfig ) { + if ( this.fnGetSelected().length == this.s.dt.fnRecordsDisplay() ) { + $(nButton).addClass('DTTT_disabled'); + } else { + $(nButton).removeClass('DTTT_disabled'); + } + }, + "fnComplete": null, + "fnInit": null, + "fnCellRender": null + }, + "select_none": { + "sAction": "text", + "sToolTip": "", + "sButtonClass": "DTTT_button_text", + "sButtonClassHover": "DTTT_button_text_hover", + "sButtonText": "Deselect all", + "mColumns": "all", + "bHeader": true, + "bFooter": true, + "fnMouseover": null, + "fnMouseout": null, + "fnClick": function( nButton, oConfig ) { + this.fnSelectNone(); + }, + "fnSelect": function( nButton, oConfig ) { + if ( this.fnGetSelected().length !== 0 ) { + $(nButton).removeClass('DTTT_disabled'); + } else { + $(nButton).addClass('DTTT_disabled'); + } + }, + "fnComplete": null, + "fnInit": function( nButton, oConfig ) { + $(nButton).addClass('DTTT_disabled'); + }, + "fnCellRender": null + }, + "ajax": { + "sAction": "text", + "sFieldBoundary": "", + "sFieldSeperator": "\t", + "sNewLine": "\n", + "sAjaxUrl": "/xhr.php", + "sToolTip": "", + "sButtonClass": "DTTT_button_text", + "sButtonClassHover": "DTTT_button_text_hover", + "sButtonText": "Ajax button", + "mColumns": "all", + "bHeader": true, + "bFooter": true, + "bSelectedOnly": false, + "fnMouseover": null, + "fnMouseout": null, + "fnClick": function( nButton, oConfig ) { + var sData = this.fnGetTableData(oConfig); + $.ajax( { + "url": oConfig.sAjaxUrl, + "data": [ + { "name": "tableData", "value": sData } + ], + "success": oConfig.fnAjaxComplete, + "dataType": "json", + "type": "POST", + "cache": false, + "error": function () { + alert( "Error detected when sending table data to server" ); + } + } ); + }, + "fnSelect": null, + "fnComplete": null, + "fnInit": null, + "fnAjaxComplete": function( json ) { + alert( 'Ajax complete' ); + }, + "fnCellRender": null + }, + "div": { + "sAction": "div", + "sToolTip": "", + "sButtonClass": "DTTT_nonbutton", + "sButtonClassHover": "", + "sButtonText": "Text button", + "fnMouseover": null, + "fnMouseout": null, + "fnClick": null, + "fnSelect": null, + "fnComplete": null, + "fnInit": null, + "nContent": null, + "fnCellRender": null + }, + "collection": { + "sAction": "collection", + "sToolTip": "", + "sButtonClass": "DTTT_button_collection", + "sButtonClassHover": "DTTT_button_collection_hover", + "sButtonText": "Collection", + "fnMouseover": null, + "fnMouseout": null, + "fnClick": function( nButton, oConfig ) { + this._fnCollectionShow(nButton, oConfig); + }, + "fnSelect": null, + "fnComplete": null, + "fnInit": null, + "fnCellRender": null + } +}; +/* + * on* callback parameters: + * 1. node - button element + * 2. object - configuration object for this button + * 3. object - ZeroClipboard reference (flash button only) + * 4. string - Returned string from Flash (flash button only - and only on 'complete') + */ + + +/** + * @namespace TableTools default settings for initialisation + */ +TableTools.DEFAULTS = { + "sSwfPath": "media/swf/copy_cvs_xls_pdf.swf", + "sRowSelect": "none", + "sSelectedClass": "DTTT_selected", + "fnPreRowSelect": null, + "fnRowSelected": null, + "fnRowDeselected": null, + "aButtons": [ "copy", "csv", "xls", "pdf", "print" ] +}; + + +/** + * Name of this class + * @constant CLASS + * @type String + * @default TableTools + */ +TableTools.prototype.CLASS = "TableTools"; + + +/** + * TableTools version + * @constant VERSION + * @type String + * @default 2.0.2 + */ +TableTools.VERSION = "2.0.2"; +TableTools.prototype.VERSION = TableTools.VERSION; + + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Initialisation + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * Register a new feature with DataTables + */ +if ( typeof $.fn.dataTable == "function" && + typeof $.fn.dataTableExt.fnVersionCheck == "function" && + $.fn.dataTableExt.fnVersionCheck('1.8.2') ) +{ + $.fn.dataTableExt.aoFeatures.push( { + "fnInit": function( oDTSettings ) { + var oOpts = typeof oDTSettings.oInit.oTableTools != 'undefined' ? + oDTSettings.oInit.oTableTools : {}; + + var oTT = new TableTools( oDTSettings.oInstance, oOpts ); + TableTools._aInstances.push( oTT ); + + return oTT.dom.container; + }, + "cFeature": "T", + "sFeature": "TableTools" + } ); +} +else +{ + alert( "Warning: TableTools 2 requires DataTables 1.8.2 or newer - www.datatables.net/download"); +} + +})(jQuery, window, document); diff --git a/airtime_mvc/public/js/datatables/plugin/TableTools/js/TableTools.min.js b/airtime_mvc/public/js/datatables/plugin/TableTools/js/TableTools.min.js new file mode 100644 index 000000000..3455faf03 --- /dev/null +++ b/airtime_mvc/public/js/datatables/plugin/TableTools/js/TableTools.min.js @@ -0,0 +1,81 @@ +// Simple Set Clipboard System +// Author: Joseph Huckaby +var ZeroClipboard={version:"1.0.4-TableTools2",clients:{},moviePath:"",nextId:1,$:function(a){"string"==typeof a&&(a=document.getElementById(a));if(!a.addClass)a.hide=function(){this.style.display="none"},a.show=function(){this.style.display=""},a.addClass=function(a){this.removeClass(a);this.className+=" "+a},a.removeClass=function(a){this.className=this.className.replace(RegExp("\\s*"+a+"\\s*")," ").replace(/^\s+/,"").replace(/\s+$/,"")},a.hasClass=function(a){return!!this.className.match(RegExp("\\s*"+ +a+"\\s*"))};return a},setMoviePath:function(a){this.moviePath=a},dispatch:function(a,b,c){(a=this.clients[a])&&a.receiveEvent(b,c)},register:function(a,b){this.clients[a]=b},getDOMObjectPosition:function(a){var b={left:0,top:0,width:a.width?a.width:a.offsetWidth,height:a.height?a.height:a.offsetHeight};if(""!=a.style.width)b.width=a.style.width.replace("px","");if(""!=a.style.height)b.height=a.style.height.replace("px","");for(;a;)b.left+=a.offsetLeft,b.top+=a.offsetTop,a=a.offsetParent;return b}, +Client:function(a){this.handlers={};this.id=ZeroClipboard.nextId++;this.movieId="ZeroClipboardMovie_"+this.id;ZeroClipboard.register(this.id,this);a&&this.glue(a)}}; +ZeroClipboard.Client.prototype={id:0,ready:!1,movie:null,clipText:"",fileName:"",action:"copy",handCursorEnabled:!0,cssEffects:!0,handlers:null,sized:!1,glue:function(a,b){this.domElement=ZeroClipboard.$(a);var c=99;this.domElement.style.zIndex&&(c=parseInt(this.domElement.style.zIndex)+1);var d=ZeroClipboard.getDOMObjectPosition(this.domElement);this.div=document.createElement("div");var e=this.div.style;e.position="absolute";e.left=this.domElement.offsetLeft+"px";e.top=this.domElement.offsetTop+ +"px";e.width=d.width+"px";e.height=d.height+"px";e.zIndex=c;if("undefined"!=typeof b&&""!=b)this.div.title=b;if(0!=d.width&&0!=d.height)this.sized=!0;this.domElement.parentNode.appendChild(this.div);this.div.innerHTML=this.getHTML(d.width,d.height)},positionElement:function(){var a=ZeroClipboard.getDOMObjectPosition(this.domElement),b=this.div.style;b.position="absolute";b.left=this.domElement.offsetLeft+"px";b.top=this.domElement.offsetTop+"px";b.width=a.width+"px";b.height=a.height+"px";if(0!=a.width&& +0!=a.height)this.sized=!0,b=this.div.childNodes[0],b.width=a.width,b.height=a.height},getHTML:function(a,b){var c="",d="id="+this.id+"&width="+a+"&height="+b;if(navigator.userAgent.match(/MSIE/))var e=location.href.match(/^https/i)?"https://":"http://",c=c+('');else c+='';return c},hide:function(){if(this.div)this.div.style.left="-2000px"},show:function(){this.reposition()},destroy:function(){if(this.domElement&&this.div){this.hide();this.div.innerHTML="";var a=document.getElementsByTagName("body")[0];try{a.removeChild(this.div)}catch(b){}this.div=this.domElement=null}},reposition:function(a){if(a)(this.domElement=ZeroClipboard.$(a))||this.hide();if(this.domElement&&this.div){var a=ZeroClipboard.getDOMObjectPosition(this.domElement),b= +this.div.style;b.left=""+a.left+"px";b.top=""+a.top+"px"}},clearText:function(){this.clipText="";this.ready&&this.movie.clearText()},appendText:function(a){this.clipText+=a;this.ready&&this.movie.appendText(a)},setText:function(a){this.clipText=a;this.ready&&this.movie.setText(a)},setCharSet:function(a){this.charSet=a;this.ready&&this.movie.setCharSet(a)},setBomInc:function(a){this.incBom=a;this.ready&&this.movie.setBomInc(a)},setFileName:function(a){this.fileName=a;this.ready&&this.movie.setFileName(a)}, +setAction:function(a){this.action=a;this.ready&&this.movie.setAction(a)},addEventListener:function(a,b){a=a.toString().toLowerCase().replace(/^on/,"");this.handlers[a]||(this.handlers[a]=[]);this.handlers[a].push(b)},setHandCursor:function(a){this.handCursorEnabled=a;this.ready&&this.movie.setHandCursor(a)},setCSSEffects:function(a){this.cssEffects=!!a},receiveEvent:function(a,b){a=a.toString().toLowerCase().replace(/^on/,"");switch(a){case "load":this.movie=document.getElementById(this.movieId); +if(!this.movie){var c=this;setTimeout(function(){c.receiveEvent("load",null)},1);return}if(!this.ready&&navigator.userAgent.match(/Firefox/)&&navigator.userAgent.match(/Windows/)){c=this;setTimeout(function(){c.receiveEvent("load",null)},100);this.ready=!0;return}this.ready=!0;this.movie.clearText();this.movie.appendText(this.clipText);this.movie.setFileName(this.fileName);this.movie.setAction(this.action);this.movie.setCharSet(this.charSet);this.movie.setBomInc(this.incBom);this.movie.setHandCursor(this.handCursorEnabled); +break;case "mouseover":this.domElement&&this.cssEffects&&this.recoverActive&&this.domElement.addClass("active");break;case "mouseout":if(this.domElement&&this.cssEffects&&(this.recoverActive=!1,this.domElement.hasClass("active")))this.domElement.removeClass("active"),this.recoverActive=!0;break;case "mousedown":this.domElement&&this.cssEffects&&this.domElement.addClass("active");break;case "mouseup":if(this.domElement&&this.cssEffects)this.domElement.removeClass("active"),this.recoverActive=!1}if(this.handlers[a])for(var d= +0,e=this.handlers[a].length;d"\u00a1".toString().length?b.replace(/[^a-zA-Z0-9_\u00A1-\uFFFF\.,\-_ !\(\)]/g,""):b.replace(/[^a-zA-Z0-9_\.,\-_ !\(\)]/g,"")},fnCalcColRatios:function(a){var b=this.s.dt.aoColumns,a=this._fnColumnTargets(a.mColumns),c=[],d=0,e=0,f,g;for(f=0,g=a.length;fl?g:l)+"px";k.style.width=(m>o?m:o)+"px";k.className="DTTT_collection_background";e(k).css("opacity",0);h.body.appendChild(k);h.body.appendChild(j); +g=e(j).outerWidth();m=e(j).outerHeight();if(f+g>o)j.style.left=o-g+"px";if(d+m>l)j.style.top=d-m-e(a).outerHeight()+"px";this.dom.collection.collection=j;this.dom.collection.background=k;setTimeout(function(){e(j).animate({opacity:1},500);e(k).animate({opacity:0.25},500)},10);e(k).click(function(){c._fnCollectionHide.call(c,null,null)})},_fnCollectionHide:function(a,b){if(!(null!==b&&"collection"==b.sExtends)&&null!==this.dom.collection.collection)e(this.dom.collection.collection).animate({opacity:0}, +500,function(){this.style.display="none"}),e(this.dom.collection.background).animate({opacity:0},500,function(){this.parentNode.removeChild(this)}),this.dom.collection.collection=null,this.dom.collection.background=null},_fnRowSelectConfig:function(){if(this.s.master){var a=this;e(a.s.dt.nTable).addClass("DTTT_selectable");e("tr",a.s.dt.nTBody).live("click",function(b){if(this.parentNode==a.s.dt.nTBody){var c=a.s.dt.oInstance.fnGetNodes();-1===e.inArray(this,c)||null!==a.s.select.preRowSelect&&!a.s.select.preRowSelect.call(a, +b)||("single"==a.s.select.type?a._fnRowSelectSingle.call(a,this):a._fnRowSelectMulti.call(a,this))}});a.s.dt.aoDrawCallback.push({fn:function(){a.s.select.all&&a.s.dt.oFeatures.bServerSide&&a.fnSelectAll()},sName:"TableTools_select"})}},_fnRowSelectSingle:function(a){this.s.master&&!e("td",a).hasClass(this.s.dt.oClasses.sRowEmpty)&&(e(a).hasClass(this.s.select.selectedClass)?this._fnRowDeselect(a):(0!==this.s.select.selected.length&&this._fnRowDeselectAll(),this.s.select.selected.push(a),e(a).addClass(this.s.select.selectedClass), +null!==this.s.select.postSelected&&this.s.select.postSelected.call(this,a)),TableTools._fnEventDispatch(this,"select",a))},_fnRowSelectMulti:function(a){this.s.master&&!e("td",a).hasClass(this.s.dt.oClasses.sRowEmpty)&&(e(a).hasClass(this.s.select.selectedClass)?this._fnRowDeselect(a):(this.s.select.selected.push(a),e(a).addClass(this.s.select.selectedClass),null!==this.s.select.postSelected&&this.s.select.postSelected.call(this,a)),TableTools._fnEventDispatch(this,"select",a))},_fnRowSelectAll:function(){if(this.s.master){for(var a, +b=0,c=this.s.dt.aiDisplayMaster.length;b/g, +"").replace(/^\s+|\s+$/g,""),g=this._fnHtmlDecode(g),f+=this._fnBoundData(g,a.sFieldBoundary,m)+a.sFieldSeperator);f=f.slice(0,-1*a.sFieldSeperator.length);f+=k}for(d=0,j=h.aiDisplay.length;d]+)).*?>/gi,"$1$2$3"),g=g.replace(/<.*?>/g,"")):g+="",g=g.replace(/^\s+/,"").replace(/\s+$/,""),g=this._fnHtmlDecode(g),f+=this._fnBoundData(g,a.sFieldBoundary,m)+a.sFieldSeperator);f=f.slice(0,-1*a.sFieldSeperator.length);f+=k}f.slice(0,-1);if(a.bFooter){for(b=0,c=h.aoColumns.length;b/g,""),g=this._fnHtmlDecode(g),f+=this._fnBoundData(g, +a.sFieldBoundary,m)+a.sFieldSeperator);f=f.slice(0,-1*a.sFieldSeperator.length)}return _sLastData=f},_fnBoundData:function(a,b,c){return""===b?a:b+a.replace(c,b+b)+b},_fnChunkData:function(a,b){for(var c=[],d=a.length,e=0;ea[c].length- +8&&(a[c].substr(e),a[c]=a[c].substr(0,e)),b.innerHTML=a[c],f+=b.childNodes[0].nodeValue;return f},_fnPrintConfig:function(a,b){var c=this;null!==b.fnInit&&b.fnInit.call(this,a,b);if(""!==b.sToolTip)a.title=b.sToolTip;e(a).hover(function(){e(a).addClass(b.sButtonClassHover)},function(){e(a).removeClass(b.sButtonClassHover)});null!==b.fnSelect&&TableTools._fnEventListen(this,"select",function(d){b.fnSelect.call(c,a,b,d)});e(a).click(function(d){d.preventDefault();c._fnPrintStart.call(c,d,b);null!== +b.fnClick&&b.fnClick.call(c,a,b,null);null!==b.fnComplete&&b.fnComplete.call(c,a,b,null,null);c._fnCollectionHide(a,b)})},_fnPrintStart:function(a,b){var c=this,d=this.s.dt;this._fnPrintHideNodes(d.nTable);this.s.print.saveStart=d._iDisplayStart;this.s.print.saveLength=d._iDisplayLength;if(b.bShowAll)d._iDisplayStart=0,d._iDisplayLength=-1,d.oApi._fnCalculateEnd(d),d.oApi._fnDraw(d);(""!==d.oScroll.sX||""!==d.oScroll.sY)&&this._fnPrintScrollStart(d);var d=d.aanFeatures,j;for(j in d)if("i"!=j&&"t"!= +j&&1==j.length)for(var f=0,g=d[j].length;fPrint view

Please use your browser's print function to print this table. Press escape when finished.", +sMessage:"",bShowAll:!0,sToolTip:"View print view",sButtonClass:"DTTT_button_print",sButtonClassHover:"DTTT_button_print_hover",sButtonText:"Print",fnMouseover:null,fnMouseout:null,fnClick:null,fnSelect:null,fnComplete:null,fnInit:null,fnCellRender:null},text:{sAction:"text",sToolTip:"",sButtonClass:"DTTT_button_text",sButtonClassHover:"DTTT_button_text_hover",sButtonText:"Text button",mColumns:"all",bHeader:!0,bFooter:!0,bSelectedOnly:!1,fnMouseover:null,fnMouseout:null,fnClick:null,fnSelect:null, +fnComplete:null,fnInit:null,fnCellRender:null},select:{sAction:"text",sToolTip:"",sButtonClass:"DTTT_button_text",sButtonClassHover:"DTTT_button_text_hover",sButtonText:"Select button",mColumns:"all",bHeader:!0,bFooter:!0,fnMouseover:null,fnMouseout:null,fnClick:null,fnSelect:function(a){0!==this.fnGetSelected().length?e(a).removeClass("DTTT_disabled"):e(a).addClass("DTTT_disabled")},fnComplete:null,fnInit:function(a){e(a).addClass("DTTT_disabled")},fnCellRender:null},select_single:{sAction:"text", +sToolTip:"",sButtonClass:"DTTT_button_text",sButtonClassHover:"DTTT_button_text_hover",sButtonText:"Select button",mColumns:"all",bHeader:!0,bFooter:!0,fnMouseover:null,fnMouseout:null,fnClick:null,fnSelect:function(a){1==this.fnGetSelected().length?e(a).removeClass("DTTT_disabled"):e(a).addClass("DTTT_disabled")},fnComplete:null,fnInit:function(a){e(a).addClass("DTTT_disabled")},fnCellRender:null},select_all:{sAction:"text",sToolTip:"",sButtonClass:"DTTT_button_text",sButtonClassHover:"DTTT_button_text_hover", +sButtonText:"Select all",mColumns:"all",bHeader:!0,bFooter:!0,fnMouseover:null,fnMouseout:null,fnClick:function(){this.fnSelectAll()},fnSelect:function(a){this.fnGetSelected().length==this.s.dt.fnRecordsDisplay()?e(a).addClass("DTTT_disabled"):e(a).removeClass("DTTT_disabled")},fnComplete:null,fnInit:null,fnCellRender:null},select_none:{sAction:"text",sToolTip:"",sButtonClass:"DTTT_button_text",sButtonClassHover:"DTTT_button_text_hover",sButtonText:"Deselect all",mColumns:"all",bHeader:!0,bFooter:!0, +fnMouseover:null,fnMouseout:null,fnClick:function(){this.fnSelectNone()},fnSelect:function(a){0!==this.fnGetSelected().length?e(a).removeClass("DTTT_disabled"):e(a).addClass("DTTT_disabled")},fnComplete:null,fnInit:function(a){e(a).addClass("DTTT_disabled")},fnCellRender:null},ajax:{sAction:"text",sFieldBoundary:"",sFieldSeperator:"\t",sNewLine:"\n",sAjaxUrl:"/xhr.php",sToolTip:"",sButtonClass:"DTTT_button_text",sButtonClassHover:"DTTT_button_text_hover",sButtonText:"Ajax button",mColumns:"all",bHeader:!0, +bFooter:!0,bSelectedOnly:!1,fnMouseover:null,fnMouseout:null,fnClick:function(a,b){var c=this.fnGetTableData(b);e.ajax({url:b.sAjaxUrl,data:[{name:"tableData",value:c}],success:b.fnAjaxComplete,dataType:"json",type:"POST",cache:!1,error:function(){alert("Error detected when sending table data to server")}})},fnSelect:null,fnComplete:null,fnInit:null,fnAjaxComplete:function(){alert("Ajax complete")},fnCellRender:null},div:{sAction:"div",sToolTip:"",sButtonClass:"DTTT_nonbutton",sButtonClassHover:"", +sButtonText:"Text button",fnMouseover:null,fnMouseout:null,fnClick:null,fnSelect:null,fnComplete:null,fnInit:null,nContent:null,fnCellRender:null},collection:{sAction:"collection",sToolTip:"",sButtonClass:"DTTT_button_collection",sButtonClassHover:"DTTT_button_collection_hover",sButtonText:"Collection",fnMouseover:null,fnMouseout:null,fnClick:function(a,b){this._fnCollectionShow(a,b)},fnSelect:null,fnComplete:null,fnInit:null,fnCellRender:null}};TableTools.DEFAULTS={sSwfPath:"media/swf/copy_cvs_xls_pdf.swf", +sRowSelect:"none",sSelectedClass:"DTTT_selected",fnPreRowSelect:null,fnRowSelected:null,fnRowDeselected:null,aButtons:["copy","csv","xls","pdf","print"]};TableTools.prototype.CLASS="TableTools";TableTools.VERSION="2.0.2";TableTools.prototype.VERSION=TableTools.VERSION;"function"==typeof e.fn.dataTable&&"function"==typeof e.fn.dataTableExt.fnVersionCheck&&e.fn.dataTableExt.fnVersionCheck("1.8.2")?e.fn.dataTableExt.aoFeatures.push({fnInit:function(a){a=new TableTools(a.oInstance,"undefined"!=typeof a.oInit.oTableTools? +a.oInit.oTableTools:{});TableTools._aInstances.push(a);return a.dom.container},cFeature:"T",sFeature:"TableTools"}):alert("Warning: TableTools 2 requires DataTables 1.8.2 or newer - www.datatables.net/download")})(jQuery,window,document); diff --git a/airtime_mvc/public/js/datatables/plugin/TableTools/js/TableTools.min.js.gz b/airtime_mvc/public/js/datatables/plugin/TableTools/js/TableTools.min.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..6ec0fb9cb581015e8add0d5258dc87f2e68ce6db GIT binary patch literal 8635 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�|zG0I*O_GphB}Y_tK$Y8_$8IT?YL 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 N_kY^c0R$j?002l1z+wOZ literal 0 HcmV?d00001 diff --git a/airtime_mvc/public/js/datatables/plugin/TableTools/js/ZeroClipboard.js b/airtime_mvc/public/js/datatables/plugin/TableTools/js/ZeroClipboard.js new file mode 100755 index 000000000..73707f024 --- /dev/null +++ b/airtime_mvc/public/js/datatables/plugin/TableTools/js/ZeroClipboard.js @@ -0,0 +1,367 @@ +// Simple Set Clipboard System +// Author: Joseph Huckaby + +var ZeroClipboard = { + + version: "1.0.4-TableTools2", + clients: {}, // registered upload clients on page, indexed by id + moviePath: '', // URL to movie + nextId: 1, // ID of next movie + + $: function(thingy) { + // simple DOM lookup utility function + if (typeof(thingy) == 'string') thingy = document.getElementById(thingy); + if (!thingy.addClass) { + // extend element with a few useful methods + thingy.hide = function() { this.style.display = 'none'; }; + thingy.show = function() { this.style.display = ''; }; + thingy.addClass = function(name) { this.removeClass(name); this.className += ' ' + name; }; + thingy.removeClass = function(name) { + this.className = this.className.replace( new RegExp("\\s*" + name + "\\s*"), " ").replace(/^\s+/, '').replace(/\s+$/, ''); + }; + thingy.hasClass = function(name) { + return !!this.className.match( new RegExp("\\s*" + name + "\\s*") ); + } + } + return thingy; + }, + + setMoviePath: function(path) { + // set path to ZeroClipboard.swf + this.moviePath = path; + }, + + dispatch: function(id, eventName, args) { + // receive event from flash movie, send to client + var client = this.clients[id]; + if (client) { + client.receiveEvent(eventName, args); + } + }, + + register: function(id, client) { + // register new client to receive events + this.clients[id] = client; + }, + + getDOMObjectPosition: function(obj) { + // get absolute coordinates for dom element + var info = { + left: 0, + top: 0, + width: obj.width ? obj.width : obj.offsetWidth, + height: obj.height ? obj.height : obj.offsetHeight + }; + + if ( obj.style.width != "" ) + info.width = obj.style.width.replace("px",""); + + if ( obj.style.height != "" ) + info.height = obj.style.height.replace("px",""); + + while (obj) { + info.left += obj.offsetLeft; + info.top += obj.offsetTop; + obj = obj.offsetParent; + } + + return info; + }, + + Client: function(elem) { + // constructor for new simple upload client + this.handlers = {}; + + // unique ID + this.id = ZeroClipboard.nextId++; + this.movieId = 'ZeroClipboardMovie_' + this.id; + + // register client with singleton to receive flash events + ZeroClipboard.register(this.id, this); + + // create movie + if (elem) this.glue(elem); + } +}; + +ZeroClipboard.Client.prototype = { + + id: 0, // unique ID for us + ready: false, // whether movie is ready to receive events or not + movie: null, // reference to movie object + clipText: '', // text to copy to clipboard + fileName: '', // default file save name + action: 'copy', // action to perform + handCursorEnabled: true, // whether to show hand cursor, or default pointer cursor + cssEffects: true, // enable CSS mouse effects on dom container + handlers: null, // user event handlers + sized: false, + + glue: function(elem, title) { + // glue to DOM element + // elem can be ID or actual DOM element object + this.domElement = ZeroClipboard.$(elem); + + // float just above object, or zIndex 99 if dom element isn't set + var zIndex = 99; + if (this.domElement.style.zIndex) { + zIndex = parseInt(this.domElement.style.zIndex) + 1; + } + + // find X/Y position of domElement + var box = ZeroClipboard.getDOMObjectPosition(this.domElement); + + // create floating DIV above element + this.div = document.createElement('div'); + var style = this.div.style; + style.position = 'absolute'; + style.left = (this.domElement.offsetLeft)+'px'; + //style.left = (this.domElement.offsetLeft+2)+'px'; + style.top = this.domElement.offsetTop+'px'; + style.width = (box.width) + 'px'; + //style.width = (box.width-4) + 'px'; + style.height = box.height + 'px'; + style.zIndex = zIndex; + if ( typeof title != "undefined" && title != "" ) { + this.div.title = title; + } + if ( box.width != 0 && box.height != 0 ) { + this.sized = true; + } + + // style.backgroundColor = '#f00'; // debug + this.domElement.parentNode.appendChild(this.div); + + this.div.innerHTML = this.getHTML( box.width, box.height ); + }, + + positionElement: function() { + var box = ZeroClipboard.getDOMObjectPosition(this.domElement); + var style = this.div.style; + + style.position = 'absolute'; + style.left = (this.domElement.offsetLeft)+'px'; + style.top = this.domElement.offsetTop+'px'; + style.width = box.width + 'px'; + style.height = box.height + 'px'; + + if ( box.width != 0 && box.height != 0 ) { + this.sized = true; + } else { + return; + } + + var flash = this.div.childNodes[0]; + flash.width = box.width; + flash.height = box.height; + }, + + getHTML: function(width, height) { + // return HTML for movie + var html = ''; + var flashvars = 'id=' + this.id + + '&width=' + width + + '&height=' + height; + + if (navigator.userAgent.match(/MSIE/)) { + // IE gets an OBJECT tag + var protocol = location.href.match(/^https/i) ? 'https://' : 'http://'; + html += ''; + } + else { + // all other browsers get an EMBED tag + html += ''; + } + return html; + }, + + hide: function() { + // temporarily hide floater offscreen + if (this.div) { + this.div.style.left = '-2000px'; + } + }, + + show: function() { + // show ourselves after a call to hide() + this.reposition(); + }, + + destroy: function() { + // destroy control and floater + if (this.domElement && this.div) { + this.hide(); + this.div.innerHTML = ''; + + var body = document.getElementsByTagName('body')[0]; + try { body.removeChild( this.div ); } catch(e) {;} + + this.domElement = null; + this.div = null; + } + }, + + reposition: function(elem) { + // reposition our floating div, optionally to new container + // warning: container CANNOT change size, only position + if (elem) { + this.domElement = ZeroClipboard.$(elem); + if (!this.domElement) this.hide(); + } + + if (this.domElement && this.div) { + var box = ZeroClipboard.getDOMObjectPosition(this.domElement); + var style = this.div.style; + style.left = '' + box.left + 'px'; + style.top = '' + box.top + 'px'; + } + }, + + clearText: function() { + // clear the text to be copy / saved + this.clipText = ''; + if (this.ready) this.movie.clearText(); + }, + + appendText: function(newText) { + // append text to that which is to be copied / saved + this.clipText += newText; + if (this.ready) { this.movie.appendText(newText) ;} + }, + + setText: function(newText) { + // set text to be copied to be copied / saved + this.clipText = newText; + if (this.ready) { this.movie.setText(newText) ;} + }, + + setCharSet: function(charSet) { + // set the character set (UTF16LE or UTF8) + this.charSet = charSet; + if (this.ready) { this.movie.setCharSet(charSet) ;} + }, + + setBomInc: function(bomInc) { + // set if the BOM should be included or not + this.incBom = bomInc; + if (this.ready) { this.movie.setBomInc(bomInc) ;} + }, + + setFileName: function(newText) { + // set the file name + this.fileName = newText; + if (this.ready) this.movie.setFileName(newText); + }, + + setAction: function(newText) { + // set action (save or copy) + this.action = newText; + if (this.ready) this.movie.setAction(newText); + }, + + addEventListener: function(eventName, func) { + // add user event listener for event + // event types: load, queueStart, fileStart, fileComplete, queueComplete, progress, error, cancel + eventName = eventName.toString().toLowerCase().replace(/^on/, ''); + if (!this.handlers[eventName]) this.handlers[eventName] = []; + this.handlers[eventName].push(func); + }, + + setHandCursor: function(enabled) { + // enable hand cursor (true), or default arrow cursor (false) + this.handCursorEnabled = enabled; + if (this.ready) this.movie.setHandCursor(enabled); + }, + + setCSSEffects: function(enabled) { + // enable or disable CSS effects on DOM container + this.cssEffects = !!enabled; + }, + + receiveEvent: function(eventName, args) { + // receive event from flash + eventName = eventName.toString().toLowerCase().replace(/^on/, ''); + + // special behavior for certain events + switch (eventName) { + case 'load': + // movie claims it is ready, but in IE this isn't always the case... + // bug fix: Cannot extend EMBED DOM elements in Firefox, must use traditional function + this.movie = document.getElementById(this.movieId); + if (!this.movie) { + var self = this; + setTimeout( function() { self.receiveEvent('load', null); }, 1 ); + return; + } + + // firefox on pc needs a "kick" in order to set these in certain cases + if (!this.ready && navigator.userAgent.match(/Firefox/) && navigator.userAgent.match(/Windows/)) { + var self = this; + setTimeout( function() { self.receiveEvent('load', null); }, 100 ); + this.ready = true; + return; + } + + this.ready = true; + this.movie.clearText(); + this.movie.appendText( this.clipText ); + this.movie.setFileName( this.fileName ); + this.movie.setAction( this.action ); + this.movie.setCharSet( this.charSet ); + this.movie.setBomInc( this.incBom ); + this.movie.setHandCursor( this.handCursorEnabled ); + break; + + case 'mouseover': + if (this.domElement && this.cssEffects) { + //this.domElement.addClass('hover'); + if (this.recoverActive) this.domElement.addClass('active'); + } + break; + + case 'mouseout': + if (this.domElement && this.cssEffects) { + this.recoverActive = false; + if (this.domElement.hasClass('active')) { + this.domElement.removeClass('active'); + this.recoverActive = true; + } + //this.domElement.removeClass('hover'); + } + break; + + case 'mousedown': + if (this.domElement && this.cssEffects) { + this.domElement.addClass('active'); + } + break; + + case 'mouseup': + if (this.domElement && this.cssEffects) { + this.domElement.removeClass('active'); + this.recoverActive = false; + } + break; + } // switch eventName + + if (this.handlers[eventName]) { + for (var idx = 0, len = this.handlers[eventName].length; idx < len; idx++) { + var func = this.handlers[eventName][idx]; + + if (typeof(func) == 'function') { + // actual function reference + func(this, args); + } + else if ((typeof(func) == 'object') && (func.length == 2)) { + // PHP style object + method, i.e. [myObject, 'myMethod'] + func[0][ func[1] ](this, args); + } + else if (typeof(func) == 'string') { + // name of function + window[func](this, args); + } + } // foreach event handler defined + } // user defined handler for event + } + +}; diff --git a/airtime_mvc/public/js/datatables/plugin/TableTools/swf/copy_cvs_xls.swf b/airtime_mvc/public/js/datatables/plugin/TableTools/swf/copy_cvs_xls.swf new file mode 100644 index 0000000000000000000000000000000000000000..4c0156d5e4722fb91b293e0c28d757d0dadf0938 GIT binary patch literal 2125 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 literal 0 HcmV?d00001 From 20db8d6fdf2c7772379c6f5890050c9a0377f31a Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Mon, 12 Mar 2012 11:47:25 +0100 Subject: [PATCH 13/16] CC-733 : broadcast logs adding time range selection for the log history. --- .../controllers/PlayouthistoryController.php | 31 ++++++- airtime_mvc/application/forms/DateRange.php | 68 ++++++++++++++ airtime_mvc/application/models/Datatables.php | 19 +++- .../views/scripts/form/daterange.phtml | 7 ++ .../views/scripts/playouthistory/index.phtml | 1 + .../js/airtime/playouthistory/historytable.js | 89 +++++++++++++++---- .../js/airtime/showbuilder/main_builder.js | 89 +++---------------- .../public/js/airtime/utilities/utilities.js | 73 +++++++++++++++ 8 files changed, 276 insertions(+), 101 deletions(-) create mode 100644 airtime_mvc/application/forms/DateRange.php create mode 100644 airtime_mvc/application/views/scripts/form/daterange.phtml diff --git a/airtime_mvc/application/controllers/PlayouthistoryController.php b/airtime_mvc/application/controllers/PlayouthistoryController.php index 98c5d8788..40bd16a72 100644 --- a/airtime_mvc/application/controllers/PlayouthistoryController.php +++ b/airtime_mvc/application/controllers/PlayouthistoryController.php @@ -16,8 +16,28 @@ class PlayoutHistoryController extends Zend_Controller_Action $this->_helper->layout->setLayout('playouthistory'); - $request = $this->getRequest(); - $baseUrl = $request->getBaseUrl(); + $request = $this->getRequest(); + $baseUrl = $request->getBaseUrl(); + + //default time is the last 24 hours. + $now = time(); + $from = $request->getParam("from", $now - (24*60*60)); + $to = $request->getParam("to", $now); + + $start = DateTime::createFromFormat("U", $from, new DateTimeZone("UTC")); + $start->setTimezone(new DateTimeZone(date_default_timezone_get())); + $end = DateTime::createFromFormat("U", $to, new DateTimeZone("UTC")); + $end->setTimezone(new DateTimeZone(date_default_timezone_get())); + + $form = new Application_Form_DateRange(); + $form->populate(array( + 'his_date_start' => $start->format("Y-m-d"), + 'his_time_start' => $start->format("H:i"), + 'his_date_end' => $end->format("Y-m-d"), + 'his_time_end' => $end->format("H:i") + )); + + $this->view->date_form = $form; $this->view->headScript()->appendFile($baseUrl.'/js/contextmenu/jquery.contextMenu.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'/js/datatables/js/jquery.dataTables.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); @@ -25,13 +45,18 @@ class PlayoutHistoryController extends Zend_Controller_Action $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/TableTools/js/ZeroClipboard.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'/js/datatables/plugin/TableTools/js/TableTools.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); - + + $offset = date("Z") * -1; + $this->view->headScript()->appendScript("var serverTimezoneOffset = {$offset}; //in seconds"); + $this->view->headScript()->appendFile($baseUrl.'/js/timepicker/jquery.ui.timepicker.js','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/playouthistory/historytable.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headLink()->appendStylesheet($baseUrl.'/js/datatables/plugin/TableTools/css/TableTools.css?'.$CC_CONFIG['airtime_version']); //$this->view->headLink()->appendStylesheet($baseUrl.'/js/datatables/plugin/TableTools/css/TableTools_JUI.css?'.$CC_CONFIG['airtime_version']); + + $this->view->headLink()->appendStylesheet($baseUrl.'/css/jquery.ui.timepicker.css'); } public function playoutHistoryFeedAction() diff --git a/airtime_mvc/application/forms/DateRange.php b/airtime_mvc/application/forms/DateRange.php new file mode 100644 index 000000000..283367c73 --- /dev/null +++ b/airtime_mvc/application/forms/DateRange.php @@ -0,0 +1,68 @@ +setDecorators(array( + array('ViewScript', array('viewScript' => 'form/daterange.phtml')) + )); + + // Add start date element + $startDate = new Zend_Form_Element_Text('his_date_start'); + $startDate->class = 'input_text'; + $startDate->setRequired(true) + ->setLabel('Date Start:') + ->setValue(date("Y-m-d")) + ->setFilters(array('StringTrim')) + ->setValidators(array( + 'NotEmpty', + array('date', false, array('YYYY-MM-DD')))) + ->setDecorators(array('ViewHelper')); + $startDate->setAttrib('alt', 'date'); + $this->addElement($startDate); + + // Add start time element + $startTime = new Zend_Form_Element_Text('his_time_start'); + $startTime->class = 'input_text'; + $startTime->setRequired(true) + ->setValue('00:00') + ->setFilters(array('StringTrim')) + ->setValidators(array( + 'NotEmpty', + array('date', false, array('HH:mm')), + array('regex', false, array('/^[0-9:]+$/', 'messages' => 'Invalid character entered')))) + ->setDecorators(array('ViewHelper')); + $startTime->setAttrib('alt', 'time'); + $this->addElement($startTime); + + // Add end date element + $endDate = new Zend_Form_Element_Text('his_date_end'); + $endDate->class = 'input_text'; + $endDate->setRequired(true) + ->setLabel('Date End:') + ->setValue(date("Y-m-d")) + ->setFilters(array('StringTrim')) + ->setValidators(array( + 'NotEmpty', + array('date', false, array('YYYY-MM-DD')))) + ->setDecorators(array('ViewHelper')); + $endDate->setAttrib('alt', 'date'); + $this->addElement($endDate); + + // Add end time element + $endTime = new Zend_Form_Element_Text('his_time_end'); + $endTime->class = 'input_text'; + $endTime->setRequired(true) + ->setValue('01:00') + ->setFilters(array('StringTrim')) + ->setValidators(array( + 'NotEmpty', + array('date', false, array('HH:mm')), + array('regex', false, array('/^[0-9:]+$/', 'messages' => 'Invalid character entered')))) + ->setDecorators(array('ViewHelper')); + $endTime->setAttrib('alt', 'time'); + $this->addElement($endTime); + } +} \ No newline at end of file diff --git a/airtime_mvc/application/models/Datatables.php b/airtime_mvc/application/models/Datatables.php index 9ded1695c..0c01091b7 100644 --- a/airtime_mvc/application/models/Datatables.php +++ b/airtime_mvc/application/models/Datatables.php @@ -51,16 +51,27 @@ class Application_Model_Datatables { $orderby[] = "id"; $orderby = join("," , $orderby); // End Order By clause - + + $displayLength = intval($data["iDisplayLength"]); if (count($where) > 0) { $where = join(" AND ", $where); $sql = $selectorCount." FROM ".$fromTable." WHERE ".$where; $sqlTotalDisplayRows = $sql; - - $sql = $selectorRows." FROM ".$fromTable." WHERE ".$where." ORDER BY ".$orderby." OFFSET ".$data["iDisplayStart"]." LIMIT ".$data["iDisplayLength"]; + + $sql = $selectorRows." FROM ".$fromTable." WHERE ".$where." ORDER BY ".$orderby; + + //limit the results returned. + if ($displayLength !== -1) { + $sql .= " OFFSET ".$data["iDisplayStart"]." LIMIT ".$displayLength; + } } else { - $sql = $selectorRows." FROM ".$fromTable." ORDER BY ".$orderby." OFFSET ".$data["iDisplayStart"]." LIMIT ".$data["iDisplayLength"]; + $sql = $selectorRows." FROM ".$fromTable." ORDER BY ".$orderby; + + //limit the results returned. + if ($displayLength !== -1) { + $sql .= " OFFSET ".$data["iDisplayStart"]." LIMIT ".$displayLength; + } } try { diff --git a/airtime_mvc/application/views/scripts/form/daterange.phtml b/airtime_mvc/application/views/scripts/form/daterange.phtml new file mode 100644 index 000000000..5d0d86d4f --- /dev/null +++ b/airtime_mvc/application/views/scripts/form/daterange.phtml @@ -0,0 +1,7 @@ +

\ No newline at end of file diff --git a/airtime_mvc/application/views/scripts/playouthistory/index.phtml b/airtime_mvc/application/views/scripts/playouthistory/index.phtml index 6aa7f8268..df820f39b 100644 --- a/airtime_mvc/application/views/scripts/playouthistory/index.phtml +++ b/airtime_mvc/application/views/scripts/playouthistory/index.phtml @@ -1 +1,2 @@ +date_form; ?>
\ No newline at end of file diff --git a/airtime_mvc/public/js/airtime/playouthistory/historytable.js b/airtime_mvc/public/js/airtime/playouthistory/historytable.js index eddc4df3f..8dfeca40a 100644 --- a/airtime_mvc/public/js/airtime/playouthistory/historytable.js +++ b/airtime_mvc/public/js/airtime/playouthistory/historytable.js @@ -9,8 +9,29 @@ var AIRTIME = (function(AIRTIME) { mod.historyTable = function() { var oTable, historyContentDiv = $("#history_content"), - historyTableDiv = historyContentDiv.find("#history_table"); - tableHeight = historyContentDiv.height() - 140; + historyTableDiv = historyContentDiv.find("#history_table"), + tableHeight = historyContentDiv.height() - 140, + fnServerData; + + fnServerData = function ( sSource, aoData, fnCallback ) { + + if (fnServerData.hasOwnProperty("start")) { + aoData.push( { name: "start", value: fnServerData.start} ); + } + if (fnServerData.hasOwnProperty("end")) { + aoData.push( { name: "end", value: fnServerData.end} ); + } + + aoData.push( { name: "format", value: "json"} ); + + $.ajax( { + "dataType": 'json', + "type": "GET", + "url": sSource, + "data": aoData, + "success": fnCallback + } ); + }; oTable = historyTableDiv.dataTable( { @@ -28,26 +49,18 @@ var AIRTIME = (function(AIRTIME) { "sAjaxSource": "/Playouthistory/playout-history-feed", "sAjaxDataProp": "history", - "fnServerData": function ( sSource, aoData, fnCallback ) { - - aoData.push( { name: "format", value: "json"} ); - - $.ajax( { - "dataType": 'json', - "type": "GET", - "url": sSource, - "data": aoData, - "success": fnCallback - } ); - }, + "fnServerData": fnServerData, "oLanguage": { "sSearch": "" }, + "aLengthMenu": [[50, 100, 500, -1], [50, 100, 500, "All"]], + "iDisplayLength": 50, + "sPaginationType": "full_numbers", "bJQueryUI": true, - "bAutoWidth": false, + "bAutoWidth": true, "sDom": 'lfr<"H"T><"dataTables_scrolling"t><"F"ip>', @@ -56,6 +69,8 @@ var AIRTIME = (function(AIRTIME) { } }); oTable.fnSetFilteringDelay(350); + + return oTable; }; return AIRTIME; @@ -67,12 +82,52 @@ $(document).ready(function(){ var viewport = AIRTIME.utilities.findViewportDimensions(), history_content = $("#history_content"), widgetHeight = viewport.height - 185, - screenWidth = Math.floor(viewport.width - 110); + screenWidth = Math.floor(viewport.width - 110), + oBaseDatePickerSettings, + oBaseTimePickerSettings, + oTable, + dateStartId = "#his_date_start", + timeStartId = "#his_time_start", + dateEndId = "#his_date_end", + timeEndId = "#his_time_end"; history_content .height(widgetHeight) .width(screenWidth); - AIRTIME.history.historyTable(); + oBaseDatePickerSettings = { + dateFormat: 'yy-mm-dd', + onSelect: function(sDate, oDatePicker) { + $(this).datepicker( "setDate", sDate ); + } + }; + + oBaseTimePickerSettings = { + showPeriodLabels: false, + showCloseButton: true, + showLeadingZero: false, + defaultTime: '0:00' + }; + + oTable = AIRTIME.history.historyTable(); + + history_content.find(dateStartId).datepicker(oBaseDatePickerSettings); + history_content.find(timeStartId).timepicker(oBaseTimePickerSettings); + history_content.find(dateEndId).datepicker(oBaseDatePickerSettings); + history_content.find(timeEndId).timepicker(oBaseTimePickerSettings); + + + history_content.find("#his_submit").click(function(ev){ + var fn, + oRange; + + oRange = AIRTIME.utilities.fnGetScheduleRange(dateStartId, timeStartId, dateEndId, timeEndId); + + fn = oTable.fnSettings().fnServerData; + fn.start = oRange.start; + fn.end = oRange.end; + + oTable.fnDraw(); + }); }); \ No newline at end of file diff --git a/airtime_mvc/public/js/airtime/showbuilder/main_builder.js b/airtime_mvc/public/js/airtime/showbuilder/main_builder.js index 9c97d3e63..78c6d5723 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/main_builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/main_builder.js @@ -7,7 +7,11 @@ $(document).ready(function(){ screenWidth = Math.floor(viewport.width - 110), oBaseDatePickerSettings, oBaseTimePickerSettings, - oRange; + oRange, + dateStartId = "#sb_date_start", + timeStartId = "#sb_time_start", + dateEndId = "#sb_date_end", + timeEndId = "#sb_time_end"; //set the heights of the main widgets. lib.height(widgetHeight); @@ -30,78 +34,10 @@ $(document).ready(function(){ defaultTime: '0:00' }; - /* - * Get the schedule range start in unix timestamp form (in seconds). - * defaults to NOW if nothing is selected. - * - * @param String sDatePickerId - * - * @param String sTimePickerId - * - * @return Number iTime - */ - function fnGetTimestamp(sDatePickerId, sTimePickerId) { - var date, - time, - iTime, - iServerOffset, - iClientOffset; - - if ($(sDatePickerId).val() === "") { - return 0; - } - - date = $(sDatePickerId).val(); - time = $(sTimePickerId).val(); - - date = date.split("-"); - time = time.split(":"); - - //0 based month in js. - oDate = new Date(date[0], date[1]-1, date[2], time[0], time[1]); - - iTime = oDate.getTime(); //value is in millisec. - iTime = Math.round(iTime / 1000); - iServerOffset = serverTimezoneOffset; - iClientOffset = oDate.getTimezoneOffset() * -60;//function returns minutes - - //adjust for the fact the the Date object is in client time. - iTime = iTime + iClientOffset + iServerOffset; - - return iTime; - } - /* - * Returns an object containing a unix timestamp in seconds for the start/end range - * - * @return Object {"start", "end", "range"} - */ - function fnGetScheduleRange() { - var iStart, - iEnd, - iRange, - DEFAULT_RANGE = 60*60*24; - - iStart = fnGetTimestamp("#sb_date_start", "#sb_time_start"); - iEnd = fnGetTimestamp("#sb_date_end", "#sb_time_end"); - - iRange = iEnd - iStart; - - if (iRange === 0 || iEnd < iStart) { - iEnd = iStart + DEFAULT_RANGE; - iRange = DEFAULT_RANGE; - } - - return { - start: iStart, - end: iEnd, - range: iRange - }; - } - - $("#sb_date_start").datepicker(oBaseDatePickerSettings); - $("#sb_time_start").timepicker(oBaseTimePickerSettings); - $("#sb_date_end").datepicker(oBaseDatePickerSettings); - $("#sb_time_end").timepicker(oBaseTimePickerSettings); + builder.find(dateStartId).datepicker(oBaseDatePickerSettings); + builder.find(timeStartId).timepicker(oBaseTimePickerSettings); + builder.find(dateEndId).datepicker(oBaseDatePickerSettings); + builder.find(timeEndId).timepicker(oBaseTimePickerSettings); $("#sb_submit").click(function(ev){ var fn, @@ -112,7 +48,7 @@ $(document).ready(function(){ //reset timestamp value since input values could have changed. AIRTIME.showbuilder.resetTimestamp(); - oRange = fnGetScheduleRange(); + oRange = AIRTIME.utilities.fnGetScheduleRange(dateStartId, timeStartId, dateEndId, timeEndId); fn = oTable.fnSettings().fnServerData; fn.start = oRange.start; @@ -135,8 +71,7 @@ $(document).ready(function(){ var $button = $(this), $lib = $("#library_content"), $builder = $("#show_builder"), - schedTable = $("#show_builder_table").dataTable(), - libTable = $lib.find("#library_display").dataTable(); + schedTable = $("#show_builder_table").dataTable(); if ($button.hasClass("sb-edit")) { @@ -164,7 +99,7 @@ $(document).ready(function(){ schedTable.fnDraw(); }); - oRange = fnGetScheduleRange(); + oRange = AIRTIME.utilities.fnGetScheduleRange(dateStartId, timeStartId, dateEndId, timeEndId); AIRTIME.showbuilder.fnServerData.start = oRange.start; AIRTIME.showbuilder.fnServerData.end = oRange.end; diff --git a/airtime_mvc/public/js/airtime/utilities/utilities.js b/airtime_mvc/public/js/airtime/utilities/utilities.js index 9c3176051..54475a580 100644 --- a/airtime_mvc/public/js/airtime/utilities/utilities.js +++ b/airtime_mvc/public/js/airtime/utilities/utilities.js @@ -35,6 +35,79 @@ var AIRTIME = (function(AIRTIME){ }; }; + /* + * Get the schedule range start in unix timestamp form (in seconds). + * defaults to NOW if nothing is selected. + * + * @param String sDatePickerId + * + * @param String sTimePickerId + * + * @return Number iTime + */ + mod.fnGetTimestamp = function(sDateId, sTimeId) { + var date, + time, + iTime, + iServerOffset, + iClientOffset, + temp; + + temp = $(sDateId).val(); + if ( temp === "") { + return 0; + } + else { + date = temp; + } + + time = $(sTimeId).val(); + + date = date.split("-"); + time = time.split(":"); + + //0 based month in js. + oDate = new Date(date[0], date[1]-1, date[2], time[0], time[1]); + + iTime = oDate.getTime(); //value is in millisec. + iTime = Math.round(iTime / 1000); + iServerOffset = serverTimezoneOffset; + iClientOffset = oDate.getTimezoneOffset() * -60;//function returns minutes + + //adjust for the fact the the Date object is in client time. + iTime = iTime + iClientOffset + iServerOffset; + + return iTime; + }; + + /* + * Returns an object containing a unix timestamp in seconds for the start/end range + * + * @return Object {"start", "end", "range"} + */ + mod.fnGetScheduleRange = function(dateStart, timeStart, dateEnd, timeEnd) { + var iStart, + iEnd, + iRange, + DEFAULT_RANGE = 60*60*24; + + iStart = AIRTIME.utilities.fnGetTimestamp(dateStart, timeStart); + iEnd = AIRTIME.utilities.fnGetTimestamp(dateEnd, timeEnd); + + iRange = iEnd - iStart; + + if (iRange === 0 || iEnd < iStart) { + iEnd = iStart + DEFAULT_RANGE; + iRange = DEFAULT_RANGE; + } + + return { + start: iStart, + end: iEnd, + range: iRange + }; + }; + return AIRTIME; }(AIRTIME || {})); \ No newline at end of file From 3b32a168137c8bd383b3faecce91eadd72e564ad Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Mon, 12 Mar 2012 13:25:03 +0100 Subject: [PATCH 14/16] CC-3174 : showbuilder setting a timeout to refresh when the first item on the timeline starts incse there is no "current" item. --- .../application/models/ShowBuilder.php | 13 ++++++++++- .../public/js/airtime/showbuilder/builder.js | 22 ++++++++++++++++--- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/airtime_mvc/application/models/ShowBuilder.php b/airtime_mvc/application/models/ShowBuilder.php index 355621872..bb87c9e6a 100644 --- a/airtime_mvc/application/models/ShowBuilder.php +++ b/airtime_mvc/application/models/ShowBuilder.php @@ -17,6 +17,8 @@ class Application_Model_ShowBuilder { private $contentDT; private $epoch_now; + + private $hasCurrent; private $defaultRowArray = array( "header" => false, @@ -51,6 +53,8 @@ class Application_Model_ShowBuilder { $this->user = Application_Model_User::GetCurrentUser(); $this->opts = $p_opts; $this->epoch_now = time(); + + $this->hasCurrent = false; } //check to see if this row should be editable. @@ -98,6 +102,8 @@ class Application_Model_ShowBuilder { $row["current"] = true; //how many seconds the view should wait to redraw itself. $row["refresh"] = $p_epochItemEnd - $this->epoch_now; + + $this->hasCurrent = true; } } @@ -115,6 +121,7 @@ class Application_Model_ShowBuilder { $row["header"] = true; $row["starts"] = $showStartDT->format("Y-m-d H:i"); + $row["timeUntil"] = intval($showStartDT->format("U")) - $this->epoch_now; $row["ends"] = $showEndDT->format("Y-m-d H:i"); $row["duration"] = $showEndDT->format("U") - $showStartDT->format("U"); $row["title"] = $p_item["show_name"]; @@ -266,7 +273,7 @@ class Application_Model_ShowBuilder { //pass in the previous row as it's the last row for the previous show. $display_items[] = $this->makeFooterRow($scheduled_items[$i-1]); } - + $display_items[] = $this->makeHeaderRow($item); $current_id = $item["si_id"]; @@ -284,6 +291,10 @@ class Application_Model_ShowBuilder { if (count($scheduled_items) > 0) { $display_items[] = $this->makeFooterRow($scheduled_items[count($scheduled_items)-1]); } + + if (!$this->hasCurrent) { + + } return $display_items; } diff --git a/airtime_mvc/public/js/airtime/showbuilder/builder.js b/airtime_mvc/public/js/airtime/showbuilder/builder.js index 21f0f5350..6a54357ec 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/builder.js @@ -14,6 +14,8 @@ var AIRTIME = (function(AIRTIME){ } } + mod.timeout = undefined; + mod.resetTimestamp = function() { var timestamp = $("#sb_timestamp"); //reset timestamp value since input values could have changed. @@ -301,7 +303,11 @@ var AIRTIME = (function(AIRTIME){ markerDiv, td, $lib = $("#library_content"), - tr; + tr, + oTable = $('#show_builder_table').dataTable(), + aData; + + clearTimeout(AIRTIME.showbuilder.timeout); //only create the cursor arrows if the library is on the page. if ($lib.length > 0 && $lib.filter(":visible").length > 0) { @@ -329,15 +335,25 @@ var AIRTIME = (function(AIRTIME){ //if the now playing song is visible set a timeout to redraw the table at the start of the next song. tr = tableDiv.find("tr.sb-now-playing"); + if (tr.length > 0) { - var oTable = $('#show_builder_table').dataTable(), - aData = tr.data("aData"); + aData = tr.data("aData"); setTimeout(function(){ AIRTIME.showbuilder.resetTimestamp(); oTable.fnDraw(); }, aData.refresh * 1000); //need refresh in milliseconds } + //current song is not set, set a timeout to refresh when the first item on the timeline starts. + else { + tr = tableDiv.find("tbody tr:first"); + aData = tr.data("aData"); + + AIRTIME.showbuilder.timeout = setTimeout(function(){ + AIRTIME.showbuilder.resetTimestamp(); + oTable.fnDraw(); + }, aData.timeUntil * 1000); //need refresh in milliseconds + } }, "fnHeaderCallback": function(nHead) { $(nHead).find("input[type=checkbox]").attr("checked", false); From f28f6659dc6369b8a4d601d01af150af209d55f7 Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Mon, 12 Mar 2012 14:23:03 +0100 Subject: [PATCH 15/16] CC-3403 : Replace Now Playing with the new Timeline screen --- .../application/configs/navigation.php | 11 +-- .../controllers/LoginController.php | 4 +- .../controllers/ShowbuilderController.php | 88 +++++++++++++++++-- .../application/layouts/scripts/builder.phtml | 3 + .../views/scripts/showbuilder/index.phtml | 1 + .../public/js/airtime/showbuilder/builder.js | 15 ++-- 6 files changed, 96 insertions(+), 26 deletions(-) diff --git a/airtime_mvc/application/configs/navigation.php b/airtime_mvc/application/configs/navigation.php index 46aef0654..ef1ff8d66 100644 --- a/airtime_mvc/application/configs/navigation.php +++ b/airtime_mvc/application/configs/navigation.php @@ -11,9 +11,9 @@ $pages = array( array( 'label' => 'Now Playing', 'module' => 'default', - 'controller' => 'Nowplaying', + 'controller' => 'Showbuilder', 'action' => 'index', - 'resource' => 'nowplaying' + 'resource' => 'showbuilder' ), array( 'label' => 'Add Media', @@ -29,13 +29,6 @@ $pages = array( 'action' => 'index', 'resource' => 'library' ), - array( - 'label' => 'Airtimeline', - 'module' => 'default', - 'controller' => 'Showbuilder', - 'action' => 'index', - 'resource' => 'showbuilder' - ), array( 'label' => 'Calendar', 'module' => 'default', diff --git a/airtime_mvc/application/controllers/LoginController.php b/airtime_mvc/application/controllers/LoginController.php index 652dc4f42..5906ef814 100644 --- a/airtime_mvc/application/controllers/LoginController.php +++ b/airtime_mvc/application/controllers/LoginController.php @@ -68,7 +68,7 @@ class LoginController extends Zend_Controller_Action $tempSess = new Zend_Session_Namespace("referrer"); $tempSess->referrer = 'login'; - $this->_redirect('Nowplaying'); + $this->_redirect('Showbuilder'); } else { @@ -95,7 +95,7 @@ class LoginController extends Zend_Controller_Action public function logoutAction() { Zend_Auth::getInstance()->clearIdentity(); - $this->_redirect('login/index'); + $this->_redirect('showbuilder/index'); } } diff --git a/airtime_mvc/application/controllers/ShowbuilderController.php b/airtime_mvc/application/controllers/ShowbuilderController.php index 28a9ba804..08edddcf0 100644 --- a/airtime_mvc/application/controllers/ShowbuilderController.php +++ b/airtime_mvc/application/controllers/ShowbuilderController.php @@ -18,10 +18,80 @@ class ShowbuilderController extends Zend_Controller_Action public function indexAction() { $this->_helper->layout->setLayout('builder'); + $this->_helper->viewRenderer->setResponseSegment('dialog'); + + global $CC_CONFIG; + + $request = $this->getRequest(); + $baseUrl = $request->getBaseUrl(); - $this->view->headScript()->appendFile($this->view->baseUrl('/js/airtime/library/events/library_showbuilder.js'),'text/javascript'); - - $this->_helper->actionStack('library', 'library'); + $this->view->headScript()->appendFile($this->view->baseUrl('/js/airtime/library/events/library_showbuilder.js?'.$CC_CONFIG['airtime_version']),'text/javascript'); + + $refer_sses = new Zend_Session_Namespace('referrer'); + $userInfo = Zend_Auth::getInstance()->getStorage()->read(); + $user = new Application_Model_User($userInfo->id); + + if ($request->isPost()) { + $form = new Application_Form_RegisterAirtime(); + + $values = $request->getPost(); + if ($values["Publicise"] != 1 && $form->isValid($values)) { + Application_Model_Preference::SetSupportFeedback($values["SupportFeedback"]); + + if (isset($values["Privacy"])) { + Application_Model_Preference::SetPrivacyPolicyCheck($values["Privacy"]); + } + // unset session + Zend_Session::namespaceUnset('referrer'); + } + else if ($values["Publicise"] == '1' && $form->isValid($values)) { + Application_Model_Preference::SetHeadTitle($values["stnName"], $this->view); + Application_Model_Preference::SetPhone($values["Phone"]); + Application_Model_Preference::SetEmail($values["Email"]); + Application_Model_Preference::SetStationWebSite($values["StationWebSite"]); + Application_Model_Preference::SetPublicise($values["Publicise"]); + + $form->Logo->receive(); + $imagePath = $form->Logo->getFileName(); + + Application_Model_Preference::SetStationCountry($values["Country"]); + Application_Model_Preference::SetStationCity($values["City"]); + Application_Model_Preference::SetStationDescription($values["Description"]); + Application_Model_Preference::SetStationLogo($imagePath); + Application_Model_Preference::SetSupportFeedback($values["SupportFeedback"]); + + if (isset($values["Privacy"])){ + Application_Model_Preference::SetPrivacyPolicyCheck($values["Privacy"]); + } + // unset session + Zend_Session::namespaceUnset('referrer'); + } + else { + $logo = Application_Model_Preference::GetStationLogo(); + if ($logo) { + $this->view->logoImg = $logo; + } + $this->view->dialog = $form; + $this->view->headScript()->appendFile($baseUrl.'/js/airtime/nowplaying/register.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); + } + } + else { + //popup if previous page was login + if ($refer_sses->referrer == 'login' && Application_Model_Nowplaying::ShouldShowPopUp() + && !Application_Model_Preference::GetSupportFeedback() && $user->isAdmin()){ + + $form = new Application_Form_RegisterAirtime(); + + $logo = Application_Model_Preference::GetStationLogo(); + if ($logo) { + $this->view->logoImg = $logo; + } + $this->view->dialog = $form; + $this->view->headScript()->appendFile($baseUrl.'/js/airtime/nowplaying/register.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); + } + } + + $this->_helper->actionStack('library', 'library'); $this->_helper->actionStack('builder', 'showbuilder'); } @@ -34,7 +104,7 @@ class ShowbuilderController extends Zend_Controller_Action $now = time(); $from = $request->getParam("from", $now); - $to = $request->getParam("to", $now+(24*60*60)); + $to = $request->getParam("to", $now + (24*60*60)); $start = DateTime::createFromFormat("U", $from, new DateTimeZone("UTC")); $start->setTimezone(new DateTimeZone(date_default_timezone_get())); @@ -53,12 +123,12 @@ class ShowbuilderController extends Zend_Controller_Action $offset = date("Z") * -1; $this->view->headScript()->appendScript("var serverTimezoneOffset = {$offset}; //in seconds"); - $this->view->headScript()->appendFile($baseUrl.'/js/timepicker/jquery.ui.timepicker.js','text/javascript'); - $this->view->headScript()->appendFile($baseUrl.'/js/airtime/showbuilder/builder.js','text/javascript'); - $this->view->headScript()->appendFile($baseUrl.'/js/airtime/showbuilder/main_builder.js','text/javascript'); + $this->view->headScript()->appendFile($baseUrl.'/js/timepicker/jquery.ui.timepicker.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); + $this->view->headScript()->appendFile($baseUrl.'/js/airtime/showbuilder/builder.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); + $this->view->headScript()->appendFile($baseUrl.'/js/airtime/showbuilder/main_builder.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); - $this->view->headLink()->appendStylesheet($baseUrl.'/css/jquery.ui.timepicker.css'); - $this->view->headLink()->appendStylesheet($baseUrl.'/css/showbuilder.css'); + $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']); } public function builderDialogAction() { diff --git a/airtime_mvc/application/layouts/scripts/builder.phtml b/airtime_mvc/application/layouts/scripts/builder.phtml index c90f2a277..d1d37a4f2 100644 --- a/airtime_mvc/application/layouts/scripts/builder.phtml +++ b/airtime_mvc/application/layouts/scripts/builder.phtml @@ -23,5 +23,8 @@
layout()->builder ?>
+ +layout()->dialog ?> + diff --git a/airtime_mvc/application/views/scripts/showbuilder/index.phtml b/airtime_mvc/application/views/scripts/showbuilder/index.phtml index e69de29bb..f8dc512d7 100644 --- a/airtime_mvc/application/views/scripts/showbuilder/index.phtml +++ b/airtime_mvc/application/views/scripts/showbuilder/index.phtml @@ -0,0 +1 @@ +dialog ?> \ No newline at end of file diff --git a/airtime_mvc/public/js/airtime/showbuilder/builder.js b/airtime_mvc/public/js/airtime/showbuilder/builder.js index 6a54357ec..fd0e0dc84 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/builder.js @@ -346,13 +346,16 @@ var AIRTIME = (function(AIRTIME){ } //current song is not set, set a timeout to refresh when the first item on the timeline starts. else { - tr = tableDiv.find("tbody tr:first"); - aData = tr.data("aData"); + tr = tableDiv.find("tbody tr.sb-allowed.sb-header:first"); - AIRTIME.showbuilder.timeout = setTimeout(function(){ - AIRTIME.showbuilder.resetTimestamp(); - oTable.fnDraw(); - }, aData.timeUntil * 1000); //need refresh in milliseconds + if (tr.length > 0) { + aData = tr.data("aData"); + + AIRTIME.showbuilder.timeout = setTimeout(function(){ + AIRTIME.showbuilder.resetTimestamp(); + oTable.fnDraw(); + }, aData.timeUntil * 1000); //need refresh in milliseconds + } } }, "fnHeaderCallback": function(nHead) { From 41a46b3144f833f0d3091058ec2e3ec7e6f560a8 Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Mon, 12 Mar 2012 15:02:34 +0100 Subject: [PATCH 16/16] CC-3174 : showbuilder --- airtime_mvc/application/models/Show.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airtime_mvc/application/models/Show.php b/airtime_mvc/application/models/Show.php index 4e63c6876..06e72261b 100644 --- a/airtime_mvc/application/models/Show.php +++ b/airtime_mvc/application/models/Show.php @@ -162,7 +162,7 @@ class Application_Model_Show { ->find($con); foreach ($instances as $instance) { - $instance->updateScheduleStatus(); + $instance->updateScheduleStatus($con); } $con->commit();