From 773206ab22b4e41b104ce5d23241d9f5d3b059b4 Mon Sep 17 00:00:00 2001 From: Martin Konecny Date: Thu, 26 Apr 2012 17:50:35 -0400 Subject: [PATCH 1/6] http://www.python.org/dev/peps/pep-0008/#package-and-module-names --- python_apps/media-monitor/airtime-media-monitor | 2 +- python_apps/media-monitor/{MediaMonitor.py => media_monitor.py} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename python_apps/media-monitor/{MediaMonitor.py => media_monitor.py} (100%) diff --git a/python_apps/media-monitor/airtime-media-monitor b/python_apps/media-monitor/airtime-media-monitor index a02f11735..35d2080d0 100755 --- a/python_apps/media-monitor/airtime-media-monitor +++ b/python_apps/media-monitor/airtime-media-monitor @@ -6,7 +6,7 @@ virtualenv_bin="/usr/lib/airtime/airtime_virtualenv/bin/" . ${virtualenv_bin}activate media_monitor_path="/usr/lib/airtime/media-monitor/" -media_monitor_script="MediaMonitor.py" +media_monitor_script="media_monitor.py" api_client_path="/usr/lib/airtime/" diff --git a/python_apps/media-monitor/MediaMonitor.py b/python_apps/media-monitor/media_monitor.py similarity index 100% rename from python_apps/media-monitor/MediaMonitor.py rename to python_apps/media-monitor/media_monitor.py From da7b87866cfc00314534bfeb64c62a8600643c64 Mon Sep 17 00:00:00 2001 From: Martin Konecny Date: Thu, 26 Apr 2012 17:59:25 -0400 Subject: [PATCH 2/6] -check whether getdefaultlocale actually returns a value before attempting to use it. --- python_apps/media-monitor/media_monitor.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/python_apps/media-monitor/media_monitor.py b/python_apps/media-monitor/media_monitor.py index bcf9a0a3b..f999b791e 100644 --- a/python_apps/media-monitor/media_monitor.py +++ b/python_apps/media-monitor/media_monitor.py @@ -41,12 +41,15 @@ logger.info("\n\n*** Media Monitor bootup ***\n\n") try: - fs_encoding = locale.getdefaultlocale()[1].lower() - if fs_encoding not in ['utf-8', 'utf8']: - logger.error("Filesystem encoding needs to be UTF-8. Currently '%s'. Exiting..." % fs_encoding) - sys.exit(1) + fs_encoding = locale.getdefaultlocale()[1] + if fs_encoding is not None: + if fs_encoding not in ['utf-8', 'utf8']: + logger.error("Filesystem encoding needs to be UTF-8. Currently '%s'. Exiting..." % fs_encoding) + sys.exit(1) + else: + logger.debug("Filesystem encoding: '%s'" % fs_encoding) else: - logger.debug("Filesystem encoding: '%s'" % fs_encoding) + logger.debug("Unknown encoding") config = AirtimeMediaConfig(logger) From b9e13d3b08e5a12406de5276a7c4710e20033f9f Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Fri, 27 Apr 2012 11:22:44 +0200 Subject: [PATCH 3/6] CC-3715 : Library- carry over selected state between pages, be like gmail include select all/none --- .../library/events/library_playlistbuilder.js | 10 +- .../library/events/library_showbuilder.js | 14 +- .../public/js/airtime/library/library.js | 183 ++++++++++++------ airtime_mvc/public/js/airtime/library/spl.js | 4 +- .../public/js/airtime/showbuilder/builder.js | 5 +- 5 files changed, 141 insertions(+), 75 deletions(-) diff --git a/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js b/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js index 9309da3c4..2c249f675 100644 --- a/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js +++ b/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js @@ -5,11 +5,10 @@ var AIRTIME = (function(AIRTIME){ AIRTIME.library = {}; } - AIRTIME.library.events = {}; - mod = AIRTIME.library.events; + mod = AIRTIME.library; - mod.enableAddButtonCheck = function() { - var selected = $('#library_display tr[id ^= "au"] input[type=checkbox]').filter(":checked"), + mod.checkAddButton = function() { + var selected = mod.getChosenItemsLength(), sortable = $('#spl_sortable'), check = false; @@ -36,6 +35,9 @@ var AIRTIME = (function(AIRTIME){ mod.fnDrawCallback = function() { + mod.redrawChosen(); + mod.checkToolBarIcons(); + $('#library_display tr[id ^= "au"]').draggable({ helper: function(){ var selected = $('#library_display tr:not(:first) input:checked').parents('tr[id^="au"]'), diff --git a/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js b/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js index 4d51a3719..926678c0c 100644 --- a/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js +++ b/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js @@ -5,16 +5,15 @@ var AIRTIME = (function(AIRTIME){ AIRTIME.library = {}; } - AIRTIME.library.events = {}; - mod = AIRTIME.library.events; + mod = AIRTIME.library; - mod.enableAddButtonCheck = function() { - var selected = $('#library_display tr input[type=checkbox]').filter(":checked"), + mod.checkAddButton = function() { + var selected = mod.getChosenItemsLength(), cursor = $('tr.cursor-selected-row'), check = false; //make sure library items are selected and a cursor is selected. - if (selected.length !== 0 && cursor.length !== 0) { + if (mod.chosenItems.length !== 0 && cursor.length !== 0) { check = true; } @@ -36,6 +35,9 @@ var AIRTIME = (function(AIRTIME){ mod.fnDrawCallback = function fnLibDrawCallback() { + mod.redrawChosen(); + mod.checkToolBarIcons(); + $('#library_display tr:not(:first)').draggable({ helper: function(){ var selected = $('#library_display tr:not(:first) input:checked').parents('tr'), @@ -73,7 +75,7 @@ var AIRTIME = (function(AIRTIME){ }, cursor: 'pointer', connectToSortable: '#show_builder_table' - }); + }); }; mod.setupLibraryToolbar = function() { diff --git a/airtime_mvc/public/js/airtime/library/library.js b/airtime_mvc/public/js/airtime/library/library.js index 6835d983b..b69ebf385 100644 --- a/airtime_mvc/public/js/airtime/library/library.js +++ b/airtime_mvc/public/js/airtime/library/library.js @@ -4,38 +4,128 @@ var AIRTIME = (function(AIRTIME) { oTable, $libContent, $libTable, - LIB_SELECTED_CLASS = "lib-selected"; + LIB_SELECTED_CLASS = "lib-selected", + chosenItems = {}; if (AIRTIME.library === undefined) { AIRTIME.library = {}; } mod = AIRTIME.library; - mod.getSelectedData = function() { - var $selected = $libTable.find("tbody").find("input:checkbox").filter(":checked").parents("tr"), - aData = [], - i, length, - $item; + mod.getChosenItemsLength = function(){ + var selected = Object.keys(chosenItems).length; - for (i = 0, length = $selected.length; i < length; i++) { - $item = $($selected.get(i)); - aData.push($item.data('aData')); + return selected; + }; + + mod.checkDeleteButton = function() { + var selected = mod.getChosenItemsLength(), + check = false; + + if (selected !== 0) { + check = true; } - return aData.reverse(); + if (check === true) { + AIRTIME.button.enableButton("lib-button-delete"); + } + else { + AIRTIME.button.disableButton("lib-button-delete"); + } }; - mod.selectAll = function () { - $libTable.find("input:checkbox").attr("checked", true); - }; - - mod.selectNone = function () { - $libTable.find("input:checkbox").attr("checked", false); - $libTable.find("tr").removeClass(LIB_SELECTED_CLASS); + mod.checkToolBarIcons = function() { - //disable all lib buttons. - AIRTIME.button.disableButton("lib-button-delete"); - AIRTIME.button.disableButton("lib-button-add"); + AIRTIME.library.checkAddButton(); + AIRTIME.library.checkDeleteButton(); + }; + + mod.getSelectedData = function() { + var id, + data = []; + + for (id in chosenItems) { + + if (chosenItems.hasOwnProperty(id)) { + data.push(chosenItems[id]); + } + } + + return data; + }; + + mod.redrawChosen = function() { + var ids = Object.keys(chosenItems), + i, length, + $el; + + for (i = 0, length = ids.length; i < length; i++) { + $el = $libTable.find("#"+ids[i]); + + if ($el.length !== 0) { + mod.highlightItem($el); + } + } + }; + + mod.highlightItem = function($el) { + var $input = $el.find("input"); + + $input.attr("checked", true); + $el.addClass(LIB_SELECTED_CLASS); + }; + + mod.selectItem = function($el) { + var id; + + mod.highlightItem($el); + + id = $el.attr("id"); + chosenItems[id] = $el.data('aData'); + + mod.checkToolBarIcons(); + }; + + mod.deselectItem = function($el) { + var id, + $input = $el.find("input"); + + $input.attr("checked", false); + $el.removeClass(LIB_SELECTED_CLASS); + + id = $el.attr("id"); + delete chosenItems[id]; + + mod.checkToolBarIcons(); + }; + + /* + * select all selects all items which the user can currently see. + * (behaviour taken from gmail) + */ + mod.selectAll = function () { + var $trs = $libTable.find("tbody input:checkbox").parents("tr"); + + $trs.each(function(i, el){ + $el = $(this); + + mod.selectItem($el); + }); + }; + + /* + * select none deselects all items that the user can currently see. + * (behaviour taken from gmail) + */ + mod.selectNone = function () { + + var $trs = $libTable.find("tbody input:checkbox").filter(":checked").parents("tr"); + + $trs.each(function(i, el){ + $el = $(this); + + mod.deselectItem($el); + }); }; mod.fnDeleteItems = function(aMedia) { @@ -181,7 +271,7 @@ var AIRTIME = (function(AIRTIME) { "success": fnCallback } ); }, - "fnRowCallback": AIRTIME.library.events.fnRowCallback, + "fnRowCallback": AIRTIME.library.fnRowCallback, "fnCreatedRow": function( nRow, aData, iDataIndex ) { //add the play function to the library_type td @@ -248,10 +338,8 @@ var AIRTIME = (function(AIRTIME) { //remove any selected nodes before the draw. "fnPreDrawCallback": function( oSettings ) { - AIRTIME.button.disableButton("lib-button-delete"); - AIRTIME.button.disableButton("lib-button-add"); }, - "fnDrawCallback": AIRTIME.library.events.fnDrawCallback, + "fnDrawCallback": AIRTIME.library.fnDrawCallback, "fnHeaderCallback": function(nHead) { $(nHead).find("input[type=checkbox]").attr("checked", false); }, @@ -283,7 +371,7 @@ var AIRTIME = (function(AIRTIME) { $libContent.find(".dataTables_scrolling").css("max-height", tableHeight); - AIRTIME.library.events.setupLibraryToolbar(oTable); + AIRTIME.library.setupLibraryToolbar(oTable); $("#library_display_type") .addClass("dataTables_type") @@ -298,63 +386,38 @@ var AIRTIME = (function(AIRTIME) { }); $libTable.find('[name="pl_cb_all"]').click(function() { - var $cbs = $libTable.find("input:checkbox"), - $trs; if ($(this).is(":checked")) { - $cbs.attr("checked", true); - //checking to enable buttons - $trs = $cbs.parents("tr"); - $trs.addClass(LIB_SELECTED_CLASS); - - AIRTIME.button.enableButton("lib-button-delete"); - AIRTIME.library.events.enableAddButtonCheck(); + AIRTIME.library.selectAll(); } else { - $cbs.attr("checked", false); - - $trs = $cbs.parents("tr"); - $trs.removeClass(LIB_SELECTED_CLASS); - - AIRTIME.button.disableButton("lib-button-delete"); - AIRTIME.button.disableButton("lib-button-add"); + AIRTIME.library.selectNone(); } }); $libTable.find("tbody").on("click", "input[type=checkbox]", function(ev) { var $cb = $(this), - $selectedCb, $prev, - $tr = $cb.parents("tr"); + $tr = $cb.parents("tr"), + $trs; if ($cb.is(":checked")) { if (ev.shiftKey) { $prev = $libTable.find("tbody").find("tr."+LIB_SELECTED_CLASS).eq(-1); + $trs = $prev.nextUntil($tr); - $prev.nextUntil($tr) - .addClass(LIB_SELECTED_CLASS) - .find("input:checkbox") - .attr("checked", true) - .end(); + $trs.each(function(i, el){ + mod.selectItem($(el)); + }); } - $tr.addClass(LIB_SELECTED_CLASS); - //checking to enable buttons - AIRTIME.button.enableButton("lib-button-delete"); - AIRTIME.library.events.enableAddButtonCheck(); + mod.selectItem($tr); } else { - $selectedCb = $libTable.find("tbody input:checkbox").filter(":checked"); - $tr.removeClass(LIB_SELECTED_CLASS); - - //checking to disable buttons - if ($selectedCb.length === 0) { - AIRTIME.button.disableButton("lib-button-delete"); - } - AIRTIME.library.events.enableAddButtonCheck(); + mod.deselectItem($tr); } }); diff --git a/airtime_mvc/public/js/airtime/library/spl.js b/airtime_mvc/public/js/airtime/library/spl.js index a3b01f335..927ca3d08 100644 --- a/airtime_mvc/public/js/airtime/library/spl.js +++ b/airtime_mvc/public/js/airtime/library/spl.js @@ -275,9 +275,9 @@ var AIRTIME = (function(AIRTIME){ } function redrawLib() { - var dt = $("#library_display").dataTable(); + var dt = $lib.find("#library_display").dataTable(); - dt.fnStandingRedraw(); + dt.fnDraw(); } function setPlaylistContent(json) { diff --git a/airtime_mvc/public/js/airtime/showbuilder/builder.js b/airtime_mvc/public/js/airtime/showbuilder/builder.js index 3b211f9b6..61f5134b2 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/builder.js @@ -79,7 +79,6 @@ var AIRTIME = (function(AIRTIME){ function(json){ checkError(json); oSchedTable.fnDraw(); - AIRTIME.library.selectNone(); }); }; @@ -541,7 +540,7 @@ var AIRTIME = (function(AIRTIME){ AIRTIME.button.enableButton("sb-button-cancel"); } - AIRTIME.library.events.enableAddButtonCheck(); + AIRTIME.library.checkAddButton(); }, "fnHeaderCallback": function(nHead) { $(nHead).find("input[type=checkbox]").attr("checked", false); @@ -876,7 +875,7 @@ var AIRTIME = (function(AIRTIME){ } //check if add button can still be enabled. - AIRTIME.library.events.enableAddButtonCheck(); + AIRTIME.library.checkAddButton(); return false; }); From c42aebe5e9343cc3ebd112f1c7e705d58040ee88 Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Fri, 27 Apr 2012 14:41:52 +0200 Subject: [PATCH 4/6] CC-3715 : Library- carry over selected state between pages, be like gmail include select all/none --- .../library/events/library_playlistbuilder.js | 5 +- .../library/events/library_showbuilder.js | 10 ++-- .../public/js/airtime/library/library.js | 49 ++++++++++++------- 3 files changed, 42 insertions(+), 22 deletions(-) diff --git a/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js b/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js index 2c249f675..a0fc53b5a 100644 --- a/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js +++ b/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js @@ -13,7 +13,7 @@ var AIRTIME = (function(AIRTIME){ check = false; //make sure audioclips are selected and a playlist is currently open. - if (selected.length !== 0 && sortable.length !== 0) { + if (selected !== 0 && sortable.length !== 0) { check = true; } @@ -84,6 +84,7 @@ var AIRTIME = (function(AIRTIME){ $toolbar .append("
    ") .find('ul') + .append('
  • ') .append('
  • ') .append('
  • '); @@ -122,6 +123,8 @@ var AIRTIME = (function(AIRTIME){ AIRTIME.library.fnDeleteSelectedItems(); }); + + mod.createToolbarDropDown(); }; return AIRTIME; diff --git a/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js b/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js index 926678c0c..7c7dfa49e 100644 --- a/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js +++ b/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js @@ -13,7 +13,7 @@ var AIRTIME = (function(AIRTIME){ check = false; //make sure library items are selected and a cursor is selected. - if (mod.chosenItems.length !== 0 && cursor.length !== 0) { + if (selected !== 0 && cursor.length !== 0) { check = true; } @@ -79,12 +79,12 @@ var AIRTIME = (function(AIRTIME){ }; mod.setupLibraryToolbar = function() { - var $toolbar = $(".lib-content .fg-toolbar:first"), - $libTable = $("#library_display"); + var $toolbar = $(".lib-content .fg-toolbar:first"); $toolbar .append("
      ") .find('ul') + .append('
    • ') .append('
    • ') .append('
    • '); @@ -133,7 +133,9 @@ var AIRTIME = (function(AIRTIME){ } AIRTIME.library.fnDeleteSelectedItems(); - }); + }); + + mod.createToolbarDropDown(); }; return AIRTIME; diff --git a/airtime_mvc/public/js/airtime/library/library.js b/airtime_mvc/public/js/airtime/library/library.js index b69ebf385..fc5bc5bb2 100644 --- a/airtime_mvc/public/js/airtime/library/library.js +++ b/airtime_mvc/public/js/airtime/library/library.js @@ -18,6 +18,20 @@ var AIRTIME = (function(AIRTIME) { return selected; }; + mod.createToolbarDropDown = function() { + + $.contextMenu({ + selector: '#library_content .ui-icon-document-b', + trigger: "left", + ignoreRightClick: true, + items: { + "sp": {name: "Select This Page", callback: mod.selectCurrentPage}, + "dp": {name: "Deselect This Page", callback: mod.deselectCurrentPage}, + "sn": {name: "Deselect All", callback: mod.selectNone} + } + }); + }; + mod.checkDeleteButton = function() { var selected = mod.getChosenItemsLength(), check = false; @@ -100,10 +114,10 @@ var AIRTIME = (function(AIRTIME) { }; /* - * select all selects all items which the user can currently see. + * selects all items which the user can currently see. * (behaviour taken from gmail) */ - mod.selectAll = function () { + mod.selectCurrentPage = function() { var $trs = $libTable.find("tbody input:checkbox").parents("tr"); $trs.each(function(i, el){ @@ -114,10 +128,10 @@ var AIRTIME = (function(AIRTIME) { }; /* - * select none deselects all items that the user can currently see. + * deselects all items that the user can currently see. * (behaviour taken from gmail) */ - mod.selectNone = function () { + mod.deselectCurrentPage = function() { var $trs = $libTable.find("tbody input:checkbox").filter(":checked").parents("tr"); @@ -128,6 +142,18 @@ var AIRTIME = (function(AIRTIME) { }); }; + mod.selectNone = function() { + var $inputs = $libTable.find("tbody input:checkbox"), + $trs = $inputs.parents("tr"); + + $inputs.attr("checked", false); + $trs.removeClass(LIB_SELECTED_CLASS); + + chosenItems = {}; + + mod.checkToolBarIcons(); + }; + mod.fnDeleteItems = function(aMedia) { $.post("/library/delete", @@ -136,7 +162,7 @@ var AIRTIME = (function(AIRTIME) { if (json.message !== undefined) { alert(json.message); } - + chosenItems = {}; oTable.fnDraw(); }); }; @@ -170,7 +196,7 @@ var AIRTIME = (function(AIRTIME) { //put hidden columns at the top to insure they can never be visible on the table through column reordering. "aoColumns": [ /* ftype */ {"sTitle": "", "mDataProp": "ftype", "bSearchable": false, "bVisible": false}, - /* Checkbox */ {"sTitle": "", "mDataProp": "checkbox", "bSortable": false, "bSearchable": false, "sWidth": "25px", "sClass": "library_checkbox"}, + /* 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"}, @@ -384,17 +410,6 @@ var AIRTIME = (function(AIRTIME) { .change(function(ev){ oTable.fnDraw(); }); - - $libTable.find('[name="pl_cb_all"]').click(function() { - - if ($(this).is(":checked")) { - - AIRTIME.library.selectAll(); - } - else { - AIRTIME.library.selectNone(); - } - }); $libTable.find("tbody").on("click", "input[type=checkbox]", function(ev) { From e6b724c45a6c4ad11542286e37bb3d2168238fe6 Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Fri, 27 Apr 2012 15:44:40 +0200 Subject: [PATCH 5/6] CC-3729 : Create same UI for timeline to select checkboxes. --- .../public/js/airtime/library/library.js | 5 +- .../public/js/airtime/showbuilder/builder.js | 161 ++++++++++-------- 2 files changed, 90 insertions(+), 76 deletions(-) diff --git a/airtime_mvc/public/js/airtime/library/library.js b/airtime_mvc/public/js/airtime/library/library.js index fc5bc5bb2..f25c96967 100644 --- a/airtime_mvc/public/js/airtime/library/library.js +++ b/airtime_mvc/public/js/airtime/library/library.js @@ -364,11 +364,10 @@ var AIRTIME = (function(AIRTIME) { //remove any selected nodes before the draw. "fnPreDrawCallback": function( oSettings ) { + //make sure any dragging helpers are removed or else they'll be stranded on the screen. + $("#draggingContainer").remove(); }, "fnDrawCallback": AIRTIME.library.fnDrawCallback, - "fnHeaderCallback": function(nHead) { - $(nHead).find("input[type=checkbox]").attr("checked", false); - }, "aaSorting": [[3, 'asc']], "sPaginationType": "full_numbers", diff --git a/airtime_mvc/public/js/airtime/showbuilder/builder.js b/airtime_mvc/public/js/airtime/showbuilder/builder.js index 61f5134b2..a377ddb3c 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/builder.js @@ -50,6 +50,59 @@ var AIRTIME = (function(AIRTIME){ return mod.showInstances; }; + mod.checkTrimButton = function() { + $over = $sbTable.find(".sb-over"); + + if ($over.length !== 0) { + AIRTIME.button.enableButton("sb-button-trim"); + } + else { + AIRTIME.button.disableButton("sb-button-trim"); + } + }; + + mod.checkDeleteButton = function() { + $selected = $sbTable.find("tbody").find("input:checkbox").filter(":checked"); + + if ($selected.length !== 0) { + AIRTIME.button.enableButton("sb-button-delete"); + } + else { + AIRTIME.button.disableButton("sb-button-delete"); + } + }; + + mod.checkJumpToCurrentButton = function() { + $current = $sbTable.find(".sb-now-playing"); + + if ($current.length !== 0) { + AIRTIME.button.enableButton("sb-button-current"); + } + else { + AIRTIME.button.disableButton("sb-button-current"); + } + }; + + mod.checkCancelButton = function() { + $current = $sbTable.find(".sb-current-show"); + + if ($current.length !== 0) { + AIRTIME.button.enableButton("sb-button-cancel"); + } + else { + AIRTIME.button.disableButton("sb-button-cancel"); + } + }; + + mod.checkToolBarIcons = function() { + + AIRTIME.library.checkAddButton(); + mod.checkTrimButton(); + mod.checkDeleteButton(); + mod.checkJumpToCurrentButton(); + mod.checkCancelButton(); + }; + mod.getSelectedData = function() { var $selected = $sbTable.find("tbody").find("input:checkbox").filter(":checked").parents("tr"), aData = [], @@ -65,11 +118,25 @@ var AIRTIME = (function(AIRTIME){ }; mod.selectAll = function () { - $sbTable.find("input:checkbox").attr("checked", true); + $inputs = $sbTable.find("input:checkbox"); + + $inputs.attr("checked", true); + + $trs = $inputs.parents("tr"); + $trs.addClass(SB_SELECTED_CLASS); + + mod.checkToolBarIcons(); }; mod.selectNone = function () { - $sbTable.find("input:checkbox").attr("checked", false); + $inputs = $sbTable.find("input:checkbox"); + + $inputs.attr("checked", false); + + $trs = $inputs.parents("tr"); + $trs.removeClass(SB_SELECTED_CLASS); + + mod.checkToolBarIcons(); }; mod.fnAdd = function(aMediaIds, aSchedIds) { @@ -154,7 +221,7 @@ var AIRTIME = (function(AIRTIME){ oSchedTable = $sbTable.dataTable( { "aoColumns": [ - /* checkbox */ {"mDataProp": "allowed", "sTitle": "", "sWidth": "15px", "sClass": "sb-checkbox"}, + /* checkbox */ {"mDataProp": "allowed", "sTitle": "", "sWidth": "15px", "sClass": "sb-checkbox"}, /* Type */ {"mDataProp": "image", "sTitle": "", "sClass": "library_image sb-image", "sWidth": "16px"}, /* starts */ {"mDataProp": "starts", "sTitle": "Start", "sClass": "sb-starts", "sWidth": "60px"}, /* ends */ {"mDataProp": "ends", "sTitle": "End", "sClass": "sb-ends", "sWidth": "60px"}, @@ -427,15 +494,6 @@ var AIRTIME = (function(AIRTIME){ //make sure any dragging helpers are removed or else they'll be stranded on the screen. $("#draggingContainer").remove(); - - //disable jump to current button. - AIRTIME.button.disableButton("sb-button-delete"); - //disable jump to current button. - AIRTIME.button.disableButton("sb-button-current"); - //disable deleting of overbooked tracks. - AIRTIME.button.disableButton("sb-button-trim"); - //disable cancelling current show. - AIRTIME.button.disableButton("sb-button-cancel"); }, "fnDrawCallback": function fnBuilderDrawCallback(oSettings, json) { var wrapperDiv, @@ -513,7 +571,7 @@ var AIRTIME = (function(AIRTIME){ aData = temp.data("aData"); setTimeout(function(){ - AIRTIME.showbuilder.resetTimestamp(); + mod.resetTimestamp(); oSchedTable.fnDraw(); }, aData.refresh * 1000); //need refresh in milliseconds @@ -521,31 +579,9 @@ var AIRTIME = (function(AIRTIME){ } } - //now playing item exists. - if (elements[0].length > 0) { - //enable jump to current button. - AIRTIME.button.enableButton("sb-button-current"); - } - - //check if there are any overbooked tracks on screen to enable the trim button. - $tr = $sbTable.find("tr.sb-over.sb-future"); - if ($tr.length > 0) { - //enable deleting of overbooked tracks. - AIRTIME.button.enableButton("sb-button-trim"); - } - - $tr = $sbTable.find('tr.sb-future:first'); - if ($tr.hasClass('sb-current-show')) { - //enable cancelling current show. - AIRTIME.button.enableButton("sb-button-cancel"); - } - - AIRTIME.library.checkAddButton(); + mod.checkToolBarIcons(); }, - "fnHeaderCallback": function(nHead) { - $(nHead).find("input[type=checkbox]").attr("checked", false); - }, - + "oColVis": { "aiExclude": [ 0, 1 ] }, @@ -561,34 +597,9 @@ var AIRTIME = (function(AIRTIME){ "sAjaxSource": "/showbuilder/builder-feed" }); - //adding checkbox events. - $sbTable.find('[name="sb_cb_all"]').click(function() { - var $cbs = $sbTable.find("input:checkbox"), - $trs; - - if ($(this).is(":checked")) { - $cbs.attr("checked", true); - //checking to enable buttons - - $trs = $cbs.parents("tr"); - $trs.addClass(SB_SELECTED_CLASS); - - AIRTIME.button.enableButton("sb-button-delete"); - } - else { - $cbs.attr("checked", false); - - $trs = $cbs.parents("tr"); - $trs.removeClass(SB_SELECTED_CLASS); - - AIRTIME.button.disableButton("sb-button-delete"); - } - }); - $sbTable.find("tbody").on("click", "input:checkbox", function(ev) { var $cb = $(this), - $selectedCb, $tr = $cb.parents("tr"), $prev; @@ -605,18 +616,12 @@ var AIRTIME = (function(AIRTIME){ } $tr.addClass(SB_SELECTED_CLASS); - //checking to enable buttons - AIRTIME.button.enableButton("sb-button-delete"); } else { - $selectedCb = $sbTable.find("tbody input:checkbox").filter(":checked"); $tr.removeClass(SB_SELECTED_CLASS); - - //checking to disable buttons - if ($selectedCb.length === 0) { - AIRTIME.button.disableButton("sb-button-delete"); - } } + + mod.checkToolBarIcons(); }); var sortableConf = (function(){ @@ -771,7 +776,8 @@ var AIRTIME = (function(AIRTIME){ $toolbar = $(".sb-content .fg-toolbar"); $ul = $("
        "); - $ul.append('
      • ') + $ul.append('
      • ') + .append('
      • ') .append('
      • '); $toolbar.append($ul); @@ -780,6 +786,16 @@ var AIRTIME = (function(AIRTIME){ .append('
      • '); $toolbar.append($ul); + $.contextMenu({ + selector: '#show_builder .ui-icon-document-b', + trigger: "left", + ignoreRightClick: true, + items: { + "sa": {name: "Select All", callback: mod.selectAll}, + "sn": {name: "Select None", callback: mod.selectNone} + } + }); + //jump to current $toolbar.find('.sb-button-cancel') .click(function() { @@ -874,8 +890,7 @@ var AIRTIME = (function(AIRTIME){ .removeClass(cursorSelClass); } - //check if add button can still be enabled. - AIRTIME.library.checkAddButton(); + mod.checkToolBarIcons(); return false; }); From f6ff289506a7f5a84d229fd852c7a6a71397a607 Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Fri, 27 Apr 2012 15:53:37 +0200 Subject: [PATCH 6/6] CC-3677 : Tooltips improvements --- .../js/airtime/library/events/library_playlistbuilder.js | 6 +++--- .../js/airtime/library/events/library_showbuilder.js | 6 +++--- airtime_mvc/public/js/airtime/showbuilder/builder.js | 8 ++++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js b/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js index a0fc53b5a..88d66b111 100644 --- a/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js +++ b/airtime_mvc/public/js/airtime/library/events/library_playlistbuilder.js @@ -84,9 +84,9 @@ var AIRTIME = (function(AIRTIME){ $toolbar .append("
          ") .find('ul') - .append('
        • ') - .append('
        • ') - .append('
        • '); + .append('
        • ') + .append('
        • ') + .append('
        • '); //add to playlist button $toolbar.find('.lib-button-add') diff --git a/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js b/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js index 7c7dfa49e..1a3a416e7 100644 --- a/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js +++ b/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js @@ -84,9 +84,9 @@ var AIRTIME = (function(AIRTIME){ $toolbar .append("
            ") .find('ul') - .append('
          • ') - .append('
          • ') - .append('
          • '); + .append('
          • ') + .append('
          • ') + .append('
          • '); //add to timeline button $toolbar.find('.lib-button-add') diff --git a/airtime_mvc/public/js/airtime/showbuilder/builder.js b/airtime_mvc/public/js/airtime/showbuilder/builder.js index a377ddb3c..4a115b120 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/builder.js @@ -777,13 +777,13 @@ var AIRTIME = (function(AIRTIME){ $ul = $("
              "); $ul.append('
            • ') - .append('
            • ') - .append('
            • '); + .append('
            • ') + .append('
            • '); $toolbar.append($ul); $ul = $("
                "); - $ul.append('
              • ') - .append('
              • '); + $ul.append('
              • ') + .append('
              • '); $toolbar.append($ul); $.contextMenu({