Closes #292, "Delete From Library" context menu option in collections
Library or Saved Search: "Delete Selected Item From Library..." Collection: "Remove Selected Item" "Delete Selected Item From Library..."
This commit is contained in:
parent
f5e55d21bf
commit
fc2be86681
4 changed files with 38 additions and 23 deletions
|
@ -260,10 +260,14 @@ var ScholarPane = new function()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function deleteSelectedItem()
|
/*
|
||||||
|
* _force_ deletes item from DB even if removing from a collection or search
|
||||||
|
*/
|
||||||
|
function deleteSelectedItem(force)
|
||||||
{
|
{
|
||||||
if(itemsView && itemsView.selection.count > 0)
|
if(itemsView && itemsView.selection.count > 0)
|
||||||
{
|
{
|
||||||
|
if (!force){
|
||||||
if (itemsView._itemGroup.isCollection()){
|
if (itemsView._itemGroup.isCollection()){
|
||||||
var noPrompt = true;
|
var noPrompt = true;
|
||||||
}
|
}
|
||||||
|
@ -271,6 +275,7 @@ var ScholarPane = new function()
|
||||||
else if (itemsView._itemGroup.isSearch()){
|
else if (itemsView._itemGroup.isSearch()){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var eraseChildren = {value: true};
|
var eraseChildren = {value: true};
|
||||||
var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
|
var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
|
||||||
|
@ -300,7 +305,7 @@ var ScholarPane = new function()
|
||||||
hasChildren ? Scholar.getString('pane.items.delete.attached') : '',
|
hasChildren ? Scholar.getString('pane.items.delete.attached') : '',
|
||||||
eraseChildren))
|
eraseChildren))
|
||||||
{
|
{
|
||||||
itemsView.deleteSelection(eraseChildren.value);
|
itemsView.deleteSelection(eraseChildren.value, force);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -514,28 +519,33 @@ var ScholarPane = new function()
|
||||||
if(itemsView && itemsView.selection.count > 0)
|
if(itemsView && itemsView.selection.count > 0)
|
||||||
{
|
{
|
||||||
menu.childNodes[2].removeAttribute('disabled');
|
menu.childNodes[2].removeAttribute('disabled');
|
||||||
menu.childNodes[4].removeAttribute('disabled');
|
menu.childNodes[3].removeAttribute('disabled');
|
||||||
menu.childNodes[5].removeAttribute('disabled');
|
menu.childNodes[5].removeAttribute('disabled');
|
||||||
|
menu.childNodes[6].removeAttribute('disabled');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
menu.childNodes[2].setAttribute('disabled', true);
|
menu.childNodes[2].setAttribute('disabled', true);
|
||||||
menu.childNodes[4].setAttribute('disabled', true);
|
menu.childNodes[3].setAttribute('disabled', true);
|
||||||
menu.childNodes[5].setAttribute('disabled', true);
|
menu.childNodes[5].setAttribute('disabled', true);
|
||||||
|
menu.childNodes[6].setAttribute('disabled', true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(itemsView && itemsView.selection.count > 1)
|
var multiple = (itemsView && itemsView.selection.count > 1) ? '.multiple' : '';
|
||||||
|
|
||||||
|
if (itemsView._itemGroup.isCollection())
|
||||||
{
|
{
|
||||||
menu.childNodes[2].setAttribute('label', Scholar.getString('pane.items.menu.remove.multiple'));
|
menu.childNodes[2].setAttribute('label', Scholar.getString('pane.items.menu.remove' + multiple));
|
||||||
menu.childNodes[4].setAttribute('label', Scholar.getString('pane.items.menu.export.multiple'));
|
menu.childNodes[2].setAttribute('hidden', false);
|
||||||
menu.childNodes[5].setAttribute('label', Scholar.getString('pane.items.menu.createBib.multiple'));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
menu.childNodes[2].setAttribute('label', Scholar.getString('pane.items.menu.remove'));
|
menu.childNodes[2].setAttribute('hidden', true);
|
||||||
menu.childNodes[4].setAttribute('label', Scholar.getString('pane.items.menu.export'));
|
|
||||||
menu.childNodes[5].setAttribute('label', Scholar.getString('pane.items.menu.createBib'));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
menu.childNodes[3].setAttribute('label', Scholar.getString('pane.items.menu.erase' + multiple));
|
||||||
|
menu.childNodes[5].setAttribute('label', Scholar.getString('pane.items.menu.export' + multiple));
|
||||||
|
menu.childNodes[6].setAttribute('label', Scholar.getString('pane.items.menu.createBib' + multiple));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Adapted from: http://www.xulplanet.com/references/elemref/ref_tree.html#cmnote-9
|
// Adapted from: http://www.xulplanet.com/references/elemref/ref_tree.html#cmnote-9
|
||||||
|
|
|
@ -51,6 +51,7 @@
|
||||||
<menuitem label="&toolbar.newItem.label;" command="cmd_scholar_newItem"/>
|
<menuitem label="&toolbar.newItem.label;" command="cmd_scholar_newItem"/>
|
||||||
<menuseparator/>
|
<menuseparator/>
|
||||||
<menuitem oncommand="ScholarPane.deleteSelectedItem();"/>
|
<menuitem oncommand="ScholarPane.deleteSelectedItem();"/>
|
||||||
|
<menuitem oncommand="ScholarPane.deleteSelectedItem(true);"/>
|
||||||
<menuseparator/>
|
<menuseparator/>
|
||||||
<menuitem oncommand="Scholar_File_Interface.exportItems();"/>
|
<menuitem oncommand="Scholar_File_Interface.exportItems();"/>
|
||||||
<menuitem oncommand="Scholar_File_Interface.bibliographyFromItems();"/>
|
<menuitem oncommand="Scholar_File_Interface.bibliographyFromItems();"/>
|
||||||
|
|
|
@ -535,8 +535,10 @@ Scholar.ItemTreeView.prototype.selectItem = function(id)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Delete the selection
|
* Delete the selection
|
||||||
|
*
|
||||||
|
* _force_ deletes item from DB even if removing from a collection
|
||||||
*/
|
*/
|
||||||
Scholar.ItemTreeView.prototype.deleteSelection = function(eraseChildren)
|
Scholar.ItemTreeView.prototype.deleteSelection = function(eraseChildren, force)
|
||||||
{
|
{
|
||||||
if(this.selection.count == 0)
|
if(this.selection.count == 0)
|
||||||
return;
|
return;
|
||||||
|
@ -562,7 +564,7 @@ Scholar.ItemTreeView.prototype.deleteSelection = function(eraseChildren)
|
||||||
this._treebox.beginUpdateBatch();
|
this._treebox.beginUpdateBatch();
|
||||||
for (var i=0; i<items.length; i++)
|
for (var i=0; i<items.length; i++)
|
||||||
{
|
{
|
||||||
if(this._itemGroup.isLibrary()) //erase item from DB
|
if(this._itemGroup.isLibrary() || force) //erase item from DB
|
||||||
items[i].ref.erase(eraseChildren);
|
items[i].ref.erase(eraseChildren);
|
||||||
else if(this._itemGroup.isCollection())
|
else if(this._itemGroup.isCollection())
|
||||||
this._itemGroup.ref.removeItem(items[i].ref.getID());
|
this._itemGroup.ref.removeItem(items[i].ref.getID());
|
||||||
|
|
|
@ -9,8 +9,10 @@ pane.items.delete = Are you sure you want to delete the selected item?
|
||||||
pane.items.delete.multiple = Are you sure you want to delete the selected items?
|
pane.items.delete.multiple = Are you sure you want to delete the selected items?
|
||||||
pane.items.delete.title = Delete
|
pane.items.delete.title = Delete
|
||||||
pane.items.delete.attached = Erase attached notes and files
|
pane.items.delete.attached = Erase attached notes and files
|
||||||
pane.items.menu.remove = Remove Selected Item...
|
pane.items.menu.remove = Remove Selected Item
|
||||||
pane.items.menu.remove.multiple = Remove Selected Items...
|
pane.items.menu.remove.multiple = Remove Selected Items
|
||||||
|
pane.items.menu.erase = Delete Selected Item From Library...
|
||||||
|
pane.items.menu.erase.multiple = Delete Selected Items From Library...
|
||||||
pane.items.menu.export = Export Selected Item...
|
pane.items.menu.export = Export Selected Item...
|
||||||
pane.items.menu.export.multiple = Export Selected Items...
|
pane.items.menu.export.multiple = Export Selected Items...
|
||||||
pane.items.menu.createBib = Create Bibliography From Selected Item...
|
pane.items.menu.createBib = Create Bibliography From Selected Item...
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue