CC-3715 : Library- carry over selected state between pages, be like gmail include select all/none
This commit is contained in:
parent
b9e13d3b08
commit
c42aebe5e9
3 changed files with 42 additions and 22 deletions
|
@ -13,7 +13,7 @@ var AIRTIME = (function(AIRTIME){
|
||||||
check = false;
|
check = false;
|
||||||
|
|
||||||
//make sure audioclips are selected and a playlist is currently open.
|
//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;
|
check = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,6 +84,7 @@ var AIRTIME = (function(AIRTIME){
|
||||||
$toolbar
|
$toolbar
|
||||||
.append("<ul />")
|
.append("<ul />")
|
||||||
.find('ul')
|
.find('ul')
|
||||||
|
.append('<li class="ui-state-default lib-button-select" title="select"><span class="ui-icon ui-icon-document-b"></span></li>')
|
||||||
.append('<li class="ui-state-default ui-state-disabled lib-button-add" title="add selected files to playlist"><span class="ui-icon ui-icon-plusthick"></span></li>')
|
.append('<li class="ui-state-default ui-state-disabled lib-button-add" title="add selected files to playlist"><span class="ui-icon ui-icon-plusthick"></span></li>')
|
||||||
.append('<li class="ui-state-default ui-state-disabled lib-button-delete" title="delete selected files"><span class="ui-icon ui-icon-trash"></span></li>');
|
.append('<li class="ui-state-default ui-state-disabled lib-button-delete" title="delete selected files"><span class="ui-icon ui-icon-trash"></span></li>');
|
||||||
|
|
||||||
|
@ -122,6 +123,8 @@ var AIRTIME = (function(AIRTIME){
|
||||||
|
|
||||||
AIRTIME.library.fnDeleteSelectedItems();
|
AIRTIME.library.fnDeleteSelectedItems();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
mod.createToolbarDropDown();
|
||||||
};
|
};
|
||||||
|
|
||||||
return AIRTIME;
|
return AIRTIME;
|
||||||
|
|
|
@ -13,7 +13,7 @@ var AIRTIME = (function(AIRTIME){
|
||||||
check = false;
|
check = false;
|
||||||
|
|
||||||
//make sure library items are selected and a cursor is selected.
|
//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;
|
check = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,12 +79,12 @@ var AIRTIME = (function(AIRTIME){
|
||||||
};
|
};
|
||||||
|
|
||||||
mod.setupLibraryToolbar = function() {
|
mod.setupLibraryToolbar = function() {
|
||||||
var $toolbar = $(".lib-content .fg-toolbar:first"),
|
var $toolbar = $(".lib-content .fg-toolbar:first");
|
||||||
$libTable = $("#library_display");
|
|
||||||
|
|
||||||
$toolbar
|
$toolbar
|
||||||
.append("<ul />")
|
.append("<ul />")
|
||||||
.find('ul')
|
.find('ul')
|
||||||
|
.append('<li class="ui-state-default lib-button-select" title="select"><span class="ui-icon ui-icon-document-b"></span></li>')
|
||||||
.append('<li class="ui-state-default ui-state-disabled lib-button-add" title="add files after cursor points"><span class="ui-icon ui-icon-plusthick"></span></li>')
|
.append('<li class="ui-state-default ui-state-disabled lib-button-add" title="add files after cursor points"><span class="ui-icon ui-icon-plusthick"></span></li>')
|
||||||
.append('<li class="ui-state-default ui-state-disabled lib-button-delete" title="delete selected files"><span class="ui-icon ui-icon-trash"></span></li>');
|
.append('<li class="ui-state-default ui-state-disabled lib-button-delete" title="delete selected files"><span class="ui-icon ui-icon-trash"></span></li>');
|
||||||
|
|
||||||
|
@ -133,7 +133,9 @@ var AIRTIME = (function(AIRTIME){
|
||||||
}
|
}
|
||||||
|
|
||||||
AIRTIME.library.fnDeleteSelectedItems();
|
AIRTIME.library.fnDeleteSelectedItems();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
mod.createToolbarDropDown();
|
||||||
};
|
};
|
||||||
|
|
||||||
return AIRTIME;
|
return AIRTIME;
|
||||||
|
|
|
@ -18,6 +18,20 @@ var AIRTIME = (function(AIRTIME) {
|
||||||
return selected;
|
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() {
|
mod.checkDeleteButton = function() {
|
||||||
var selected = mod.getChosenItemsLength(),
|
var selected = mod.getChosenItemsLength(),
|
||||||
check = false;
|
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)
|
* (behaviour taken from gmail)
|
||||||
*/
|
*/
|
||||||
mod.selectAll = function () {
|
mod.selectCurrentPage = function() {
|
||||||
var $trs = $libTable.find("tbody input:checkbox").parents("tr");
|
var $trs = $libTable.find("tbody input:checkbox").parents("tr");
|
||||||
|
|
||||||
$trs.each(function(i, el){
|
$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)
|
* (behaviour taken from gmail)
|
||||||
*/
|
*/
|
||||||
mod.selectNone = function () {
|
mod.deselectCurrentPage = function() {
|
||||||
|
|
||||||
var $trs = $libTable.find("tbody input:checkbox").filter(":checked").parents("tr");
|
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) {
|
mod.fnDeleteItems = function(aMedia) {
|
||||||
|
|
||||||
$.post("/library/delete",
|
$.post("/library/delete",
|
||||||
|
@ -136,7 +162,7 @@ var AIRTIME = (function(AIRTIME) {
|
||||||
if (json.message !== undefined) {
|
if (json.message !== undefined) {
|
||||||
alert(json.message);
|
alert(json.message);
|
||||||
}
|
}
|
||||||
|
chosenItems = {};
|
||||||
oTable.fnDraw();
|
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.
|
//put hidden columns at the top to insure they can never be visible on the table through column reordering.
|
||||||
"aoColumns": [
|
"aoColumns": [
|
||||||
/* ftype */ {"sTitle": "", "mDataProp": "ftype", "bSearchable": false, "bVisible": false},
|
/* ftype */ {"sTitle": "", "mDataProp": "ftype", "bSearchable": false, "bVisible": false},
|
||||||
/* Checkbox */ {"sTitle": "<input type='checkbox' name='pl_cb_all'>", "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},
|
/* Type */ {"sTitle": "", "mDataProp": "image", "bSearchable": false, "sWidth": "25px", "sClass": "library_type", "iDataSort": 0},
|
||||||
/* Title */ {"sTitle": "Title", "mDataProp": "track_title", "sClass": "library_title"},
|
/* Title */ {"sTitle": "Title", "mDataProp": "track_title", "sClass": "library_title"},
|
||||||
/* Creator */ {"sTitle": "Creator", "mDataProp": "artist_name", "sClass": "library_creator"},
|
/* Creator */ {"sTitle": "Creator", "mDataProp": "artist_name", "sClass": "library_creator"},
|
||||||
|
@ -384,17 +410,6 @@ var AIRTIME = (function(AIRTIME) {
|
||||||
.change(function(ev){
|
.change(function(ev){
|
||||||
oTable.fnDraw();
|
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) {
|
$libTable.find("tbody").on("click", "input[type=checkbox]", function(ev) {
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue