[interface] You can now change an item's type via menu.
This commit is contained in:
parent
c345b90b9a
commit
8d50874d6b
4 changed files with 24 additions and 15 deletions
|
@ -13,6 +13,7 @@ ScholarItemPane = new function()
|
||||||
|
|
||||||
this.onLoad = onLoad;
|
this.onLoad = onLoad;
|
||||||
this.viewItem = viewItem;
|
this.viewItem = viewItem;
|
||||||
|
this.changeTypeTo = changeTypeTo;
|
||||||
this.addCreatorRow = addCreatorRow;
|
this.addCreatorRow = addCreatorRow;
|
||||||
this.removeCreator = removeCreator;
|
this.removeCreator = removeCreator;
|
||||||
this.showEditor = showEditor;
|
this.showEditor = showEditor;
|
||||||
|
@ -27,6 +28,7 @@ ScholarItemPane = new function()
|
||||||
function onLoad()
|
function onLoad()
|
||||||
{
|
{
|
||||||
_dynamicFields = document.getElementById('editpane-dynamic-fields');
|
_dynamicFields = document.getElementById('editpane-dynamic-fields');
|
||||||
|
_itemTypeMenu = document.getElementById('editpane-type-menu');
|
||||||
_creatorTypeMenu = document.getElementById('creatorTypeMenu');
|
_creatorTypeMenu = document.getElementById('creatorTypeMenu');
|
||||||
_notesMenu = document.getElementById('scholar-notes-menu');
|
_notesMenu = document.getElementById('scholar-notes-menu');
|
||||||
_notesField = document.getElementById('scholar-notes-field');
|
_notesField = document.getElementById('scholar-notes-field');
|
||||||
|
@ -43,6 +45,10 @@ ScholarItemPane = new function()
|
||||||
_creatorTypeMenu.appendChild(menuitem);
|
_creatorTypeMenu.appendChild(menuitem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var itemTypes = Scholar.ItemTypes.getTypes();
|
||||||
|
for(var i = 0; i<itemTypes.length; i++)
|
||||||
|
_itemTypeMenu.appendItem(Scholar.getString("itemTypes."+itemTypes[i]['name']),itemTypes[i]['id']);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,6 +73,10 @@ ScholarItemPane = new function()
|
||||||
while(_dynamicFields.hasChildNodes())
|
while(_dynamicFields.hasChildNodes())
|
||||||
_dynamicFields.removeChild(_dynamicFields.firstChild);
|
_dynamicFields.removeChild(_dynamicFields.firstChild);
|
||||||
|
|
||||||
|
for(var i = 0, len = _itemTypeMenu.firstChild.childNodes.length; i < len; i++)
|
||||||
|
if(_itemTypeMenu.firstChild.childNodes[i].value == _itemBeingEdited.getType())
|
||||||
|
_itemTypeMenu.selectedIndex = i;
|
||||||
|
|
||||||
var fieldNames = new Array("title","dateAdded","dateModified");
|
var fieldNames = new Array("title","dateAdded","dateModified");
|
||||||
var fields = Scholar.ItemFields.getItemTypeFields(_itemBeingEdited.getField("itemTypeID"));
|
var fields = Scholar.ItemFields.getItemTypeFields(_itemBeingEdited.getField("itemTypeID"));
|
||||||
for(var i = 0; i<fields.length; i++)
|
for(var i = 0; i<fields.length; i++)
|
||||||
|
@ -117,6 +127,16 @@ ScholarItemPane = new function()
|
||||||
onNoteSelected();
|
onNoteSelected();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function changeTypeTo(id)
|
||||||
|
{
|
||||||
|
if(id != _itemBeingEdited.getType() && confirm('Are you sure you want to change the item type? Certain fields may be lost.'))
|
||||||
|
{
|
||||||
|
_itemBeingEdited.setType(id);
|
||||||
|
_itemBeingEdited.save();
|
||||||
|
reloadFields();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function addDynamicRow(label, value, beforeElement)
|
function addDynamicRow(label, value, beforeElement)
|
||||||
{
|
{
|
||||||
var row = document.createElement("row");
|
var row = document.createElement("row");
|
||||||
|
|
|
@ -29,6 +29,9 @@
|
||||||
<popupset>
|
<popupset>
|
||||||
<popup id="creatorTypeMenu" position="after_start" oncommand="ScholarItemPane.modifyCreator(document.popupNode.getAttribute('fieldname').split('-')[1],'typeID',event.explicitOriginalTarget.getAttribute('typeid'));"/>
|
<popup id="creatorTypeMenu" position="after_start" oncommand="ScholarItemPane.modifyCreator(document.popupNode.getAttribute('fieldname').split('-')[1],'typeID',event.explicitOriginalTarget.getAttribute('typeid'));"/>
|
||||||
</popupset>
|
</popupset>
|
||||||
|
<menulist id="editpane-type-menu" oncommand="ScholarItemPane.changeTypeTo(this.value)">
|
||||||
|
<menupopup/>
|
||||||
|
</menulist>
|
||||||
<grid flex="1">
|
<grid flex="1">
|
||||||
<columns>
|
<columns>
|
||||||
<column/>
|
<column/>
|
||||||
|
|
|
@ -35,17 +35,6 @@ var ScholarPane = new function()
|
||||||
|
|
||||||
//select Library
|
//select Library
|
||||||
collectionsView.selection.select(0);
|
collectionsView.selection.select(0);
|
||||||
|
|
||||||
//Create the add menu with each item type
|
|
||||||
var addMenu = document.getElementById('tb-add').firstChild;
|
|
||||||
var itemTypes = Scholar.ItemTypes.getTypes();
|
|
||||||
for(var i = 0; i<itemTypes.length; i++)
|
|
||||||
{
|
|
||||||
var menuitem = document.createElement("menuitem");
|
|
||||||
menuitem.setAttribute("label", Scholar.getString("itemTypes."+itemTypes[i]['name']));
|
|
||||||
menuitem.setAttribute("oncommand","ScholarPane.newItem("+itemTypes[i]['id']+")");
|
|
||||||
addMenu.appendChild(menuitem);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -65,10 +65,7 @@
|
||||||
<splitter id="scholar-tree-splitter" resizebefore="closest" resizeafter="closest"/>
|
<splitter id="scholar-tree-splitter" resizebefore="closest" resizeafter="closest"/>
|
||||||
<vbox persist="width" flex="1" style="min-width: 300px;">
|
<vbox persist="width" flex="1" style="min-width: 300px;">
|
||||||
<toolbar align="center">
|
<toolbar align="center">
|
||||||
<toolbarbutton id="tb-add" label="&toolbar.newItem.label;" type="menu">
|
<toolbarbutton id="tb-add" label="&toolbar.newItem.label;" command="cmd_scholar_newItem"/>
|
||||||
<menupopup>
|
|
||||||
</menupopup>
|
|
||||||
</toolbarbutton>
|
|
||||||
<spacer flex="1"/>
|
<spacer flex="1"/>
|
||||||
<label value="&toolbar.search.label;" control="tb-search"/>
|
<label value="&toolbar.search.label;" control="tb-search"/>
|
||||||
<textbox id="tb-search" type="timed" timeout="500" command="cmd_scholar_search"/>
|
<textbox id="tb-search" type="timed" timeout="500" command="cmd_scholar_search"/>
|
||||||
|
|
Loading…
Reference in a new issue