diff --git a/airtime_mvc/public/js/airtime/showbuilder/builder.js b/airtime_mvc/public/js/airtime/showbuilder/builder.js index 4649a0415..0ea7b943d 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/builder.js @@ -8,7 +8,9 @@ var AIRTIME = (function(AIRTIME){ $sbTable, $toolbar, $ul, - $lib; + $lib, + cursors = [], + cursorIds = []; if (AIRTIME.showbuilder === undefined) { AIRTIME.showbuilder = {}; @@ -127,7 +129,7 @@ var AIRTIME = (function(AIRTIME){ }; mod.selectCursor = function($el) { - + $el.addClass(CURSOR_SELECTED_CLASS); mod.checkToolBarIcons(); }; @@ -208,11 +210,16 @@ var AIRTIME = (function(AIRTIME){ mod.fnItemCallback = function(json) { checkError(json); + + cursors = $(".cursor-selected-row"); + for (i = 0; i < cursors.length; i++) { + cursorIds.push(($(cursors.get(i)).attr("id"))); + } oSchedTable.fnDraw(); mod.enableUI(); }; - + mod.fnAdd = function(aMediaIds, aSchedIds) { mod.disableUI(); @@ -401,7 +408,6 @@ var AIRTIME = (function(AIRTIME){ headerIcon; fnPrepareSeparatorRow = function fnPrepareSeparatorRow(sRowContent, sClass, iNodeIndex) { - $node = $(nRow.children[iNodeIndex]); $node.html(sRowContent); $node.attr('colspan',100); @@ -413,7 +419,9 @@ var AIRTIME = (function(AIRTIME){ $nRow.addClass(sClass); }; - + + $nRow.attr("id", aData.id); + if (aData.header === true) { //remove the column classes from all tds. $nRow.find('td').removeClass(); @@ -615,6 +623,7 @@ var AIRTIME = (function(AIRTIME){ $cursorRows, $table = $(this), $parent = $table.parent(), + $tr, //use this array to cache DOM heights then we can detach the table to manipulate it to increase speed. heights = []; @@ -653,8 +662,16 @@ var AIRTIME = (function(AIRTIME){ }); $td.append(markerDiv).wrapInner(wrapperDiv); + } + //re-highlight selected cursors before draw took place + for (i = 0; i < cursorIds.length; i++) { + $tr = $table.find("tr[id="+cursorIds[i]+"]"); + mod.selectCursor($tr); + } + cursorIds = []; + //if there is only 1 cursor on the page highlight it by default. if ($cursorRows.length === 1) { $td = $cursorRows.find("td:first"); @@ -678,8 +695,14 @@ var AIRTIME = (function(AIRTIME){ if (temp.length > 0) { aData = temp.data("aData"); - - mod.timeout = setTimeout(mod.refresh, aData.refresh * 1000); //need refresh in milliseconds + // max time interval + // setTimeout allow only up to 2^21 millisecs timeout value + maxRefreshInterval = Math.pow(2, 31) - 1; + refreshInterval = aData.refresh * 1000; + if(refreshInterval > maxRefreshInterval){ + refreshInterval = maxRefreshInterval; + } + mod.timeout = setTimeout(mod.refresh, refreshInterval); //need refresh in milliseconds break; } } diff --git a/airtime_mvc/public/js/airtime/showbuilder/main_builder.js b/airtime_mvc/public/js/airtime/showbuilder/main_builder.js index ca007e69c..c474e49df 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/main_builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/main_builder.js @@ -30,7 +30,7 @@ AIRTIME = (function(AIRTIME) { oBaseDatePickerSettings = { dateFormat: 'yy-mm-dd', - onSelect: function(sDate, oDatePicker) { + onClick: function(sDate, oDatePicker) { $(this).datepicker( "setDate", sDate ); } }; @@ -277,4 +277,4 @@ AIRTIME = (function(AIRTIME) { } (AIRTIME || {})); $(document).ready(AIRTIME.builderMain.onReady); -$(window).resize(AIRTIME.builderMain.onResize); \ No newline at end of file +$(window).resize(AIRTIME.builderMain.onResize);