New items are properly displayed on a notify()
New items are automatically selected. When adding a new item, or editing an item without a creator, display an empty creator box. Edit button changed from toggling to Save/Cancel buttons. Simple "Do you want to save changes?" dialog if you select a different item while in edit mode.
This commit is contained in:
parent
adfcc5cd73
commit
56b1e37c13
|
@ -196,7 +196,7 @@ Scholar.ItemTreeView.prototype.notify = function(action, type, ids)
|
||||||
if(this._itemGroup.isLibrary() || item.inCollection(this.getCollectionID()))
|
if(this._itemGroup.isLibrary() || item.inCollection(this.getCollectionID()))
|
||||||
{
|
{
|
||||||
this._showItem(item,this.rowCount);
|
this._showItem(item,this.rowCount);
|
||||||
this._treebox.rowCountChanged(this.rowCount,1);
|
this._treebox.rowCountChanged(this.rowCount-1,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
madeChanges = true;
|
madeChanges = true;
|
||||||
|
@ -209,6 +209,10 @@ Scholar.ItemTreeView.prototype.notify = function(action, type, ids)
|
||||||
|
|
||||||
if(madeChanges)
|
if(madeChanges)
|
||||||
this._refreshHashMap();
|
this._refreshHashMap();
|
||||||
|
|
||||||
|
//Select last add
|
||||||
|
if(action == 'add' && item)
|
||||||
|
this.selection.select(this._itemRowMap[item.getID()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
Scholar.ItemTreeView.prototype.canDrop = function(index, orient)
|
Scholar.ItemTreeView.prototype.canDrop = function(index, orient)
|
||||||
|
|
|
@ -3,6 +3,9 @@ MetadataPane = new function()
|
||||||
var _dynamicFields;
|
var _dynamicFields;
|
||||||
var _dynamicCreators;
|
var _dynamicCreators;
|
||||||
var _editButton;
|
var _editButton;
|
||||||
|
var _cancelButton;
|
||||||
|
var _saveButton;
|
||||||
|
var _creatorsToolbar;
|
||||||
|
|
||||||
var _itemBeingEdited;
|
var _itemBeingEdited;
|
||||||
var _creatorTypes = Scholar.CreatorTypes.getTypes();
|
var _creatorTypes = Scholar.CreatorTypes.getTypes();
|
||||||
|
@ -20,20 +23,35 @@ MetadataPane = new function()
|
||||||
_dynamicFields = document.getElementById('editpane-dynamic-fields');
|
_dynamicFields = document.getElementById('editpane-dynamic-fields');
|
||||||
_dynamicCreators = document.getElementById('editpane-dynamic-creators');
|
_dynamicCreators = document.getElementById('editpane-dynamic-creators');
|
||||||
_editButton = document.getElementById('metadata-pane-edit-button');
|
_editButton = document.getElementById('metadata-pane-edit-button');
|
||||||
|
_cancelButton = document.getElementById('metadata-pane-cancel-button');
|
||||||
|
_saveButton = document.getElementById('metadata-pane-save-button');
|
||||||
|
_creatorsToolbar = document.getElementById('metadata-creators-toolbar');
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Dynamically loads an item
|
* Loads an item
|
||||||
*/
|
*/
|
||||||
function viewItem(thisItem)
|
function viewItem(thisItem)
|
||||||
|
{
|
||||||
|
if(_editButton.hidden)
|
||||||
|
toggleEdit(confirm("Save changes to '"+_itemBeingEdited.getField('title')+"'?"));
|
||||||
|
|
||||||
|
_itemBeingEdited = thisItem;
|
||||||
|
|
||||||
|
reloadFields();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function reloadFields()
|
||||||
{
|
{
|
||||||
removeDynamicRows(_dynamicFields);
|
removeDynamicRows(_dynamicFields);
|
||||||
removeDynamicRows(_dynamicCreators);
|
removeDynamicRows(_dynamicCreators);
|
||||||
|
thisItem = _itemBeingEdited;
|
||||||
|
|
||||||
var fieldNames = getFullFieldList(thisItem);
|
var fieldNames = getFullFieldList(thisItem);
|
||||||
var editingMode = _editButton.checked;
|
var editingMode = _editButton.hidden;
|
||||||
|
|
||||||
for(var i = 0; i<fieldNames.length; i++)
|
for(var i = 0; i<fieldNames.length; i++)
|
||||||
{
|
{
|
||||||
|
@ -45,32 +63,42 @@ MetadataPane = new function()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(var i = 0, len=thisItem.numCreators(); i<len; i++)
|
if(thisItem.numCreators() > 0)
|
||||||
{
|
{
|
||||||
var creator = thisItem.getCreator(i);
|
for(var i = 0, len=thisItem.numCreators(); i<len; i++)
|
||||||
if(_editButton.checked)
|
|
||||||
{
|
{
|
||||||
addCreator(creator['firstName'],creator['lastName'],creator['creatorTypeID']);
|
var creator = thisItem.getCreator(i);
|
||||||
}
|
if(editingMode)
|
||||||
else
|
{
|
||||||
{
|
addCreator(creator['firstName'],creator['lastName'],creator['creatorTypeID']);
|
||||||
addDynamicField(Scholar.getString('creatorTypes.'+Scholar.CreatorTypes.getTypeName(creator['creatorTypeID']))+":",
|
}
|
||||||
creator['firstName']+' '+creator['lastName'],
|
else
|
||||||
false);
|
{
|
||||||
|
addDynamicField(Scholar.getString('creatorTypes.'+Scholar.CreatorTypes.getTypeName(creator['creatorTypeID']))+":",
|
||||||
|
creator['firstName']+' '+creator['lastName'],
|
||||||
|
false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(editingMode)
|
||||||
_itemBeingEdited = thisItem;
|
{
|
||||||
|
//display a empty creator box if editing, and if there are no creators
|
||||||
|
addCreator();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleEdit()
|
function toggleEdit(save)
|
||||||
{
|
{
|
||||||
if(_editButton.checked)
|
if(_editButton.hidden && save)
|
||||||
saveItem();
|
saveItem();
|
||||||
|
|
||||||
_editButton.checked = !_editButton.checked;
|
_cancelButton.hidden = _editButton.hidden;
|
||||||
document.getElementById('metadata-creators-toolbar').hidden = !_editButton.checked;
|
_saveButton.hidden = _editButton.hidden;
|
||||||
viewItem(_itemBeingEdited);
|
_creatorsToolbar.hidden = _editButton.hidden;
|
||||||
|
|
||||||
|
_editButton.hidden = !_editButton.hidden;
|
||||||
|
|
||||||
|
reloadFields();
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveItem()
|
function saveItem()
|
||||||
|
@ -133,6 +161,7 @@ MetadataPane = new function()
|
||||||
}
|
}
|
||||||
|
|
||||||
var row = document.createElement("row");
|
var row = document.createElement("row");
|
||||||
|
row.align="center";
|
||||||
row.appendChild(label);
|
row.appendChild(label);
|
||||||
row.appendChild(valueElement);
|
row.appendChild(valueElement);
|
||||||
_dynamicFields.appendChild(row);
|
_dynamicFields.appendChild(row);
|
||||||
|
@ -173,7 +202,7 @@ MetadataPane = new function()
|
||||||
|
|
||||||
var add = document.createElement("toolbarbutton");
|
var add = document.createElement("toolbarbutton");
|
||||||
add.setAttribute("label","+");
|
add.setAttribute("label","+");
|
||||||
remove.setAttribute("class","addremove");
|
add.setAttribute("class","addremove");
|
||||||
add.setAttribute("oncommand","MetadataPane.addCreator();");
|
add.setAttribute("oncommand","MetadataPane.addCreator();");
|
||||||
|
|
||||||
var row = document.createElement("row");
|
var row = document.createElement("row");
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
<toolbar id="metadata-creators-toolbar" hidden="true">
|
<toolbar id="metadata-creators-toolbar" hidden="true">
|
||||||
<label value="Creators"/>
|
<label value="Creators"/>
|
||||||
<spacer flex="1"/>
|
<spacer flex="1"/>
|
||||||
<toolbarbutton label="+" oncommand="MetadataPane.addCreator()"/>
|
<toolbarbutton label="+" oncommand="MetadataPane.addCreator()" class="addremove"/>
|
||||||
</toolbar>
|
</toolbar>
|
||||||
<grid>
|
<grid>
|
||||||
<columns>
|
<columns>
|
||||||
|
@ -35,6 +35,8 @@
|
||||||
<spacer flex="1"/>
|
<spacer flex="1"/>
|
||||||
<toolbar id="metadata-toolbar">
|
<toolbar id="metadata-toolbar">
|
||||||
<toolbarbutton id="metadata-pane-edit-button" label="Edit" oncommand="MetadataPane.toggleEdit()"/>
|
<toolbarbutton id="metadata-pane-edit-button" label="Edit" oncommand="MetadataPane.toggleEdit()"/>
|
||||||
|
<toolbarbutton id="metadata-pane-cancel-button" label="Cancel" oncommand="MetadataPane.toggleEdit()" hidden="true"/>
|
||||||
|
<toolbarbutton id="metadata-pane-save-button" label="Save" oncommand="MetadataPane.toggleEdit(true)" hidden="true"/>
|
||||||
<spacer flex="1" />
|
<spacer flex="1" />
|
||||||
</toolbar>
|
</toolbar>
|
||||||
</vbox>
|
</vbox>
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
<spacer flex="1"/>
|
<spacer flex="1"/>
|
||||||
<toolbarbutton class="tabs-closebutton" oncommand="ScholarPane.toggleView('notes')"/>
|
<toolbarbutton class="tabs-closebutton" oncommand="ScholarPane.toggleView('notes')"/>
|
||||||
</toolbar>
|
</toolbar>
|
||||||
<textbox value="Notes.... lorem ispum delorum..." multiline="true" flex="1"/>
|
<textbox multiline="true" flex="1" disabled="true"/>
|
||||||
</vbox>
|
</vbox>
|
||||||
</vbox>
|
</vbox>
|
||||||
</window>
|
</window>
|
||||||
|
|
|
@ -90,11 +90,28 @@ tree #items-tree
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#metadata-toolbar toolbarbutton
|
||||||
|
{
|
||||||
|
color: blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
#metadata-toolbar toolbarbutton:hover
|
||||||
|
{
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
#scholar-metadata .addremove
|
#scholar-metadata .addremove
|
||||||
{
|
{
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
color: blue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#scholar-metadata .addremove:hover
|
||||||
|
{
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#scholar-notes
|
#scholar-notes
|
||||||
{
|
{
|
||||||
height: 100px;
|
height: 100px;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user