(function ($) {
Drupal.behaviors.chadoNodeApiChangeNotify = {
attach: function (context) {
ChadoNodeApi_notifyChanges({
machineName: {
plural: 'properties',
singular:'property'
},
readableName: {
plural: 'properties',
singular:'property'
}
});
ChadoNodeApi_notifyChanges({
machineName: {
plural: 'dbxrefs',
singular:'dbxref'
},
readableName: {
plural: 'references',
singular:'reference'
}
});
ChadoNodeApi_notifyChanges({
machineName: {
plural: 'relationships',
singular:'relationship'
},
readableName: {
plural: 'relationships',
singular:'relationship'
}
});
function ChadoNodeApi_notifyChanges(api) {
var numCurrent = $('tr.' + api.machineName.singular).length;
var numOriginal = $('input.num-' + api.machineName.plural, context).val();
var numSaved = $('tr.saved.' + api.machineName.singular).length;
var numUnsaved = $('tr.unsaved.' + api.machineName.singular).length;
var numRemoved = numOriginal - numSaved;
// If changes have been made then notify the user.
if (numUnsaved > 0 || numRemoved > 0) {
// Make the warning visible.
$('#' + api.machineName.singular + '-save-warning').css("display","inherit");
// Determine singular versus plural.
var unsavedReadable = api.readableName.plural;
if (numUnsaved == 1) {
unsavedReadable = api.readableName.singular;
}
var removedReadable = api.readableName.plural;
if (numRemoved == 1) {
removedReadable = api.readableName.singular;
}
// Specify the changes made in the warning.
var note = '';
if (numUnsaved > 0 && numRemoved > 0) {
note = 'NOTE: Changes include the addition of ' + numUnsaved + ' ' + unsavedReadable + ' and the removal of ' + numRemoved + ' saved ' + removedReadable + '.';
}
else if (numUnsaved > 0) {
note = 'NOTE: Changes include the addition of ' + numUnsaved + ' ' + unsavedReadable + '.';
}
else if (numRemoved > 0) {
note = 'NOTE: Changes include the removal of ' + numRemoved + ' saved ' + removedReadable + '.';
}
$('#' + api.machineName.singular + '-save-warning span.specific-changes').html(note);
// Add a * to any new records to make the warning more accessible.
$('tr.unsaved.' + api.machineName.singular + ' span.row-unsaved-warning').html('*');
}
}
}};
})(jQuery);