NIHVIVO-2232: Nick fixed the issue I had for showing and hiding the custom template field, and another issue selecting/deselecting classes in a class group.
This commit is contained in:
parent
d37b526ad8
commit
4fca7d702e
3 changed files with 98 additions and 125 deletions
|
@ -2,19 +2,23 @@
|
|||
|
||||
var menuManagementEdit = {
|
||||
onLoad: function() {
|
||||
this.initObjects();
|
||||
this.bindEventListeners();
|
||||
this.initObjects();
|
||||
this.bindEventListeners();
|
||||
this.toggleClassSelection();
|
||||
},
|
||||
initObjects: function() {
|
||||
this.changeContentType = $('#changeContentType');
|
||||
this.selectContentType = $('#selectContentType');
|
||||
this.existingContentType = $('#existingContentType');
|
||||
this.selectClassGroupDropdown = $('#selectClassGroup');
|
||||
this.classesForClassGroup = $('#classesInSelectedGroup');
|
||||
this.selectedGroupForPage = $('#selectedContentTypeValue');
|
||||
this.selectClassesMessage = $('#selectClassesMessage');
|
||||
this.allClassesSelectedCheckbox = $('#allSelected');
|
||||
|
||||
this.defaultTemplateRadio = $('input.default-template');
|
||||
this.customTemplateRadio = $('input.custom-template');
|
||||
this.customTemplate = $('#custom-template');
|
||||
this.changeContentType = $('#changeContentType');
|
||||
this.selectContentType = $('#selectContentType');
|
||||
this.existingContentType = $('#existingContentType');
|
||||
this.selectClassGroupDropdown = $('#selectClassGroup');
|
||||
this.classesForClassGroup = $('#classesInSelectedGroup');
|
||||
this.selectedGroupForPage = $('#selectedContentTypeValue');
|
||||
this.selectClassesMessage = $('#selectClassesMessage');
|
||||
this.allClassesSelectedCheckbox = $('#allSelected');
|
||||
|
||||
},
|
||||
bindEventListeners: function() {
|
||||
// Listeners for vClass switching
|
||||
|
@ -23,84 +27,107 @@ var menuManagementEdit = {
|
|||
return false;
|
||||
});
|
||||
this.selectClassGroupDropdown.change(function() {
|
||||
menuManagementEdit.chooseClassGroup();
|
||||
menuManagementEdit.chooseClassGroup();
|
||||
});
|
||||
this.allClassesSelectedCheckbox.change(function() {
|
||||
menuManagementEdit.toggleClassSelection();
|
||||
// this.allClassesSelectedCheckbox.change(function() {
|
||||
// menuManagementEdit.toggleClassSelection();
|
||||
// });
|
||||
|
||||
// Listeners for template field
|
||||
this.defaultTemplateRadio.click(function(){
|
||||
menuManagementEdit.customTemplate.addClass('hidden');
|
||||
});
|
||||
this.customTemplateRadio.click(function(){
|
||||
// If checked, hide this input element
|
||||
menuManagementEdit.customTemplate.removeClass('hidden');
|
||||
});
|
||||
},
|
||||
showClassGroups: function() {
|
||||
if(!this.existingContentType.hasClass("hidden")) {
|
||||
this.existingContentType.addClass("hidden");
|
||||
this.selectClassesMessage.addClass("hidden");
|
||||
this.classesForClassGroup.addClass("hidden");
|
||||
}
|
||||
this.selectContentType.removeClass("hidden");
|
||||
if(!this.existingContentType.hasClass("hidden")) {
|
||||
this.existingContentType.addClass("hidden");
|
||||
this.selectClassesMessage.addClass("hidden");
|
||||
this.classesForClassGroup.addClass("hidden");
|
||||
}
|
||||
this.selectContentType.removeClass("hidden");
|
||||
|
||||
},
|
||||
hideClassGroups: function() {
|
||||
if(!this.selectContentType.hasClass("hidden")) {
|
||||
|
||||
this.selectContentType.addClass("hidden");
|
||||
}
|
||||
this.existingContentType.removeClass("hidden");
|
||||
this.selectClassesMessage.removeClass("hidden");
|
||||
this.classesForClassGroup.removeClass("hidden");
|
||||
if(!this.selectContentType.hasClass("hidden")) {
|
||||
|
||||
this.selectContentType.addClass("hidden");
|
||||
}
|
||||
this.existingContentType.removeClass("hidden");
|
||||
this.selectClassesMessage.removeClass("hidden");
|
||||
this.classesForClassGroup.removeClass("hidden");
|
||||
},
|
||||
toggleClassSelection:function() {
|
||||
/*To do: please fix so selecting all selects all classes and deselecting
|
||||
* any class will deselect all
|
||||
*/
|
||||
/*
|
||||
if(this.allClassesSelectedCheckbox.is(':checked')) {
|
||||
$('#classInClassGroup').attr('checked', 'checked');
|
||||
} else {
|
||||
$('#classInClassGroup').removeAttr('checked');
|
||||
}*/
|
||||
toggleClassSelection: function() {
|
||||
/*To do: please fix so selecting all selects all classes and deselecting
|
||||
* any class will deselect all
|
||||
*/
|
||||
/*
|
||||
if(this.allClassesSelectedCheckbox.is(':checked')) {
|
||||
$('#classInClassGroup').attr('checked', 'checked');
|
||||
} else {
|
||||
$('#classInClassGroup').removeAttr('checked');
|
||||
}*/
|
||||
// Check/unckeck all classes for selection
|
||||
$('input:checkbox[name=allSelected]').click(function(){
|
||||
// alert($('input:checkbox[name=classInClassGroup]'));
|
||||
if ( this.checked ) {
|
||||
// if checked, select all the checkboxes
|
||||
$('input:checkbox[name=classInClassGroup]').attr('checked','checked');
|
||||
|
||||
} else {
|
||||
// if not checked, deselect all the checkboxes
|
||||
$('input:checkbox[name=classInClassGroup]').removeAttr('checked');
|
||||
}
|
||||
});
|
||||
|
||||
$('input:checkbox[name=classInClassGroup]').click(function(){
|
||||
$('input:checkbox[name=allSelected]').removeAttr('checked');
|
||||
});
|
||||
},
|
||||
chooseClassGroup: function() {
|
||||
|
||||
var url = "dataservice?getVClassesForVClassGroup=1&classgroupUri=";
|
||||
var vclassUri = this.selectClassGroupDropdown.val();
|
||||
url += encodeURIComponent(vclassUri);
|
||||
//Make ajax call to retrieve vclasses
|
||||
$.getJSON(url, function(results) {
|
||||
|
||||
if ( results.classes.length == 0 ) {
|
||||
|
||||
chooseClassGroup: function() {
|
||||
var url = "dataservice?getVClassesForVClassGroup=1&classgroupUri=";
|
||||
var vclassUri = this.selectClassGroupDropdown.val();
|
||||
url += encodeURIComponent(vclassUri);
|
||||
//Make ajax call to retrieve vclasses
|
||||
$.getJSON(url, function(results) {
|
||||
|
||||
if ( results.classes.length == 0 ) {
|
||||
|
||||
} else {
|
||||
//update existing content type with correct class group name and hide class group select again
|
||||
var _this = menuManagementEdit;
|
||||
menuManagementEdit.hideClassGroups();
|
||||
|
||||
menuManagementEdit.selectedGroupForPage.html(results.classGroupName);
|
||||
//retrieve classes for class group and display with all selected
|
||||
menuManagementEdit.classesForClassGroup.empty();
|
||||
var appendHtml = '<ul id="selectedClasses" name="selectedClasses">';
|
||||
appendHtml += '<ul id="selectedClasses" name="selectedClasses">';
|
||||
appendHtml += '<li class="ui-state-default">' +
|
||||
//update existing content type with correct class group name and hide class group select again
|
||||
var _this = menuManagementEdit;
|
||||
menuManagementEdit.hideClassGroups();
|
||||
|
||||
menuManagementEdit.selectedGroupForPage.html(results.classGroupName);
|
||||
//retrieve classes for class group and display with all selected
|
||||
menuManagementEdit.classesForClassGroup.empty();
|
||||
var appendHtml = '<ul id="selectedClasses" name="selectedClasses">';
|
||||
appendHtml += '<ul id="selectedClasses" name="selectedClasses">';
|
||||
appendHtml += '<li class="ui-state-default">' +
|
||||
'<input type="checkbox" name="allSelected" id="allSelected" value="all" checked="checked" />' +
|
||||
'<label class="inline" for="All"> All</label>' +
|
||||
'</li>';
|
||||
$.each(results.classes, function(i, item) {
|
||||
var thisClass = results.classes[i];
|
||||
var thisClassName = thisClass.name;
|
||||
//When first selecting new content type, all classes should be selected
|
||||
appendHtml += ' <li class="ui-state-default">' +
|
||||
var thisClass = results.classes[i];
|
||||
var thisClassName = thisClass.name;
|
||||
//When first selecting new content type, all classes should be selected
|
||||
appendHtml += ' <li class="ui-state-default">' +
|
||||
'<input type="checkbox" checked="checked" name="classInClassGroup" value="' + thisClass.URI + '" />' +
|
||||
'<label class="inline" for="' + thisClassName + '"> ' + thisClassName + '</label>' +
|
||||
'</li>';
|
||||
});
|
||||
appendHtml += "</ul>";
|
||||
menuManagementEdit.classesForClassGroup.append(appendHtml);
|
||||
|
||||
|
||||
menuManagementEdit.toggleClassSelection();
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready(function() {
|
||||
menuManagementEdit.onLoad();
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue