CC-3715 : Library- carry over selected state between pages, be like gmail include select all/none

This commit is contained in:
Naomi Aro 2012-04-27 14:41:52 +02:00
parent b9e13d3b08
commit c42aebe5e9
3 changed files with 42 additions and 22 deletions

View file

@ -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;

View file

@ -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;

View file

@ -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) {