blob: cffbf94e539c5a08ea16e8051f9a06f08859bca3 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
function ADdomain() {
Resource.apply(this, Array.prototype.slice.call(arguments));
this.restype = 'addomain';
}
ADdomain.prototype = new Resource();
ADdomain.prototype.colformatter = function(value, rowIndex, obj) {
if(obj.field == 'usedbhostnames') {
if(value == "0")
return '<span class="rederrormsg">' + _('false') + '</span>';
if(value == "1")
return '<span class="ready">' + _('true') + '</span>';
}
return value;
}
var resource = new ADdomain();
function addNewResource(title) {
dijit.byId('addeditdlg').set('title', title);
dijit.byId('addeditbtn').set('label', title);
dojo.byId('editresid').value = 0;
resetEditResource();
dijit.byId('password').set('value', '');
dijit.byId('password2').set('value', '');
dijit.byId('addeditdlg').show();
}
function inlineEditResourceCB(data, ioArgs) {
if(data.items.status == 'success') {
dojo.byId('saveresourcecont').value = data.items.cont;
dijit.byId('addeditdlg').set('title', data.items.title);
dijit.byId('addeditbtn').set('label', 'Save Changes');
dojo.byId('editresid').value = data.items.rscid;
dijit.byId('name').set('value', data.items.data.name);
dijit.byId('owner').set('value', data.items.data.owner);
dijit.byId('domaindnsname').set('value', data.items.data.domaindnsname);
dijit.byId('username').set('value', data.items.data.username);
dijit.byId('dnsservers').set('value', data.items.data.dnsservers);
dijit.byId('usedbhostnames').set('checked', parseInt(data.items.data.usedbhostnames))
dijit.byId('password').set('value', '********');
dijit.byId('password2').set('value', 'xxxxxxxx');
dojo.byId('addeditdlgerrmsg').innerHTML = '';
dijit.byId('addeditdlg').show();
}
else if(data.items.status == 'noaccess') {
alert('Access denied to edit this item');
}
}
function resetEditResource() {
var fields = ['name', 'owner', 'domaindnsname', 'username', 'password', 'password2', 'usedbhostnames', 'dnsservers'];
for(var i = 0; i < fields.length; i++) {
dijit.byId(fields[i]).reset();
}
dojo.byId('addeditdlgerrmsg').innerHTML = '';
}
function saveResource() {
var errobj = dojo.byId('addeditdlgerrmsg');
var fields = ['name', 'owner', 'domaindnsname', 'username', 'password', 'password2', 'dnsservers'];
if(dojo.byId('editresid').value == 0)
var data = {continuation: dojo.byId('addresourcecont').value};
else
var data = {continuation: dojo.byId('saveresourcecont').value};
for(var i = 0; i < fields.length; i++) {
if(! checkValidatedObj(fields[i], errobj))
return;
data[fields[i]] = dijit.byId(fields[i]).get('value');
}
if(dojo.byId('editresid').value != 0 &&
dijit.byId('password').get('value') == '********' &&
dijit.byId('password2').get('value') == 'xxxxxxxx') {
data['password'] = '';
data['password2'] = '';
}
else if(dijit.byId('password').get('value') != dijit.byId('password2').get('value')) {
dojo.byId('addeditdlgerrmsg').innerHTML = _('Passwords do not match');
return;
}
// update usedbhostnames
if(dijit.byId('usedbhostnames').get('checked')) {
data['usedbhostnames'] = 1;
}
else {
data['usedbhostnames'] = 0;
}
dijit.byId('addeditbtn').set('disabled', true);
RPCwrapper(data, saveResourceCB, 1);
}
function saveResourceCB(data, ioArgs) {
if(data.items.status == 'error') {
dojo.byId('addeditdlgerrmsg').innerHTML = '<br>' + data.items.msg;
dijit.byId('addeditbtn').set('disabled', false);
return;
}
else if(data.items.status == 'adderror') {
alert(data.items.errormsg);
}
else if(data.items.status == 'success') {
if(data.items.action == 'add') {
if(typeof resourcegrid !== 'undefined') {
resourcegrid.store.newItem(data.items.data);
resourcegrid.sort();
}
dojo.forEach(dijit.findWidgets(dojo.byId('groupdlgcontent')), function(w) {
w.destroyRecursive();
});
if(data.items.nogroups == 0) {
dojo.byId('groupdlgcontent').innerHTML = data.items.groupingHTML;
AJdojoCreate('groupdlgcontent');
dojo.byId('resources').value = data.items.data.id;
populateLists('resources', 'ingroups', 'inresourcename', 'outresourcename', 'resgroupinggroupscont');
dijit.byId('groupdlg').show();
dijit.byId('groupingnote').show();
}
}
else {
resourcegrid.store.fetch({
query: {id: data.items.data.id},
onItem: function(item) {
var fields = ['name', 'owner', 'domaindnsname', 'username', 'usedbhostnames', 'dnsservers'];
for(var i = 0; i < fields.length; i++) {
dijit.byId(fields[i]).reset();
resourcegrid.store.setValue(item, fields[i], data.items.data[fields[i]]);
}
},
onComplete: function(items, result) {
// when call resourcegrid.sort directly, the table contents disappear; not sure why
setTimeout(function() {resourcegrid.sort();}, 10);
}
});
}
dijit.byId('addeditdlg').hide();
resetEditResource();
setTimeout(function() {dijit.byId('addeditbtn').set('disabled', false);}, 250);
}
}