NIHVIVO-2343 Create accountProxyCommon.js to partition the code, and add filtering to prevent duplicates.
This commit is contained in:
parent
0a951807d3
commit
61d059423a
4 changed files with 130 additions and 81 deletions
90
webapp/web/js/account/accountProxyCommon.js
Normal file
90
webapp/web/js/account/accountProxyCommon.js
Normal file
|
@ -0,0 +1,90 @@
|
|||
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||
|
||||
/*
|
||||
* A collection of building blocks for the proxy-management UI.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
* proxyInfoElement
|
||||
* ----------------------------------------------------------------------------
|
||||
* Display information about an entity according to the template. The entity
|
||||
* can be either:
|
||||
* a profile -- Individual to be edited.
|
||||
* a proxy -- User Account to do the editing, optionally with info from a
|
||||
* profile associated with that individual.
|
||||
* ----------------------------------------------------------------------------
|
||||
* The template must inlude
|
||||
* 1) a link with attribute templatePart="remove"
|
||||
* 2) a link with attribute templatePart="restore"
|
||||
* 3) a hidden field with attribute templatePart="uriField" and value="%uri%" see below
|
||||
*
|
||||
* The template may include tokens to be replaced, from the following:
|
||||
* %uri% -- the URI of the individual being displayed
|
||||
* %label& -- the label of the individual.
|
||||
* %classLabel% -- the label of the most specific class of the individual.
|
||||
* %imageUrl% -- the URL that will fetch the image of the individual,
|
||||
* or a placeholder image.
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
function proxyInfoElement(template, uri, label, classLabel, imageUrl, existing) {
|
||||
this.uri = uri;
|
||||
|
||||
var existed = existing;
|
||||
var removed = false;
|
||||
|
||||
var content = template.replace(/%uri%/g, uri).replace(/%label%/g, label)
|
||||
.replace(/%classLabel%/g, classLabel).replace(/%imageUrl%/g,
|
||||
imageUrl);
|
||||
|
||||
this.toString = function() {
|
||||
return "proxyInfoElement: " + content;
|
||||
}
|
||||
|
||||
this.element = function() {
|
||||
var element = $("<div name='proxyInfoElement'>" + content + "</div>");
|
||||
var removeLink = $("[templatePart='remove']", element).first();
|
||||
var restoreLink = $("[templatePart='restore']", element).first();
|
||||
var proxyUriField = $("[templatePart='uriField']", element);
|
||||
|
||||
var setClass = function(r) {
|
||||
if (r) {
|
||||
element.removeClass('new existing').addClass('removed')
|
||||
} else if (existed) {
|
||||
element.removeClass('new removed').addClass('existing')
|
||||
} else {
|
||||
element.removeClass('removed existing').addClass('new')
|
||||
}
|
||||
}
|
||||
|
||||
var setRemoved = function(r) {
|
||||
removed = r;
|
||||
if (r) {
|
||||
removeLink.hide();
|
||||
restoreLink.show();
|
||||
proxyUriField.attr('disabled', 'disabled');
|
||||
setClass(r);
|
||||
} else {
|
||||
removeLink.show();
|
||||
restoreLink.hide();
|
||||
proxyUriField.attr('disabled', '');
|
||||
setClass(r);
|
||||
}
|
||||
}
|
||||
|
||||
removeLink.click(function(event) {
|
||||
setRemoved(true);
|
||||
return false;
|
||||
});
|
||||
|
||||
restoreLink.click(function(event) {
|
||||
setRemoved(false);
|
||||
return false;
|
||||
});
|
||||
|
||||
setRemoved(removed);
|
||||
|
||||
return element;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue