blob: 15345ddc0b59ad5fe00072679251943f9973bcbe [file] [log] [blame]
/*
* Copyright (c) 2010, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception, which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
if (typeof(admingui) == 'undefined') {
admingui = {};
}
admingui.gadget = {
noop: function() {
},
setResponse: function(response, rawData) {
admingui.gadget.response = response;
admingui.gadget.responseRaw = rawData;
},
/**
* handler - The name of the handler to invoke.
* args - An object containing properties / values for the parameters.
* callback - A JS function that should be notified.
*/
invoke: function(handler, args, callback) {
if ((callback == null) || (typeof(callback) === 'undefined')) {
callback = admingui.gadget.setResponse;
}
//return window.top.admingui.ajax.invoke(handler, args, callback, 3, false);
//For now pass in true (asynchronous) b/c JSF2 Ajax is broken
window.top.admingui.ajax.invoke(handler, args, callback, 3, true);
return false;
},
getResponse: function() {
return admingui.gadget.response;
}
};
if (typeof(gadgets) == 'undefined') {
// FIXME: I have to solve how to make these functions appear synchronous
// FIXME: when they are asynchronous when backed by Ajax
gadgets = {
Prefs: function(moduleId) {
if (typeof(moduleId) == 'undefined') {
moduleId = 'default';
}
// outputs (i.e. "value") are not used, but must be supplied
this.prefsHandlerOpts = {root: '/glassfish/gadget/' + moduleId, value:'gadgetPrefs'}
this.moduleId = (typeof(moduleId) == 'undefined') ? 'GlassFish' : moduleId;
this.getArray =
function(key) {
// invoke Ajax to get preference
this.prefsHandlerOpts.key = key;
admingui.gadget.invoke("getPreference", this.prefsHandlerOpts);
var resp = admingui.gadget.getResponse().value;
if (typeof(resp) != 'object') {
// Array's show up as Objects...
resp = [resp];
}
return resp;
};
this.getBool =
/* true iff preference == 'true' */
function(key) {
// invoke Ajax to get preference
this.prefsHandlerOpts.key = key;
admingui.gadget.invoke("getPreference", this.prefsHandlerOpts);
var resp = admingui.gadget.getResponse().value;
resp = (resp == 'true');
return resp;
};
this.getCountry =
function() {
// FIXME: Not implemented!
return "US";
};
this.getFloat =
function(key) {
// invoke Ajax to get preference
this.prefsHandlerOpts.key = key;
admingui.gadget.invoke("getPreference", this.prefsHandlerOpts);
var resp = admingui.gadget.getResponse().value;
resp = parseFloat(resp);
return resp;
};
this.getInt =
function(key) {
// invoke Ajax to get preference
this.prefsHandlerOpts.key = key;
admingui.gadget.invoke("getPreference", this.prefsHandlerOpts);
var resp = admingui.gadget.getResponse().value;
resp = parseInt(resp);
alert(typeof(resp));
return resp;
};
this.getLang =
function() {
// FIXME: Not implemented!
return "en";
};
this.getModuleId =
function() {
return this.moduleId;
};
this.getMsg =
function(key) {
alert('Prefs.getMsg() tbd...');
// FIXME: TBD...
// invoke Ajax to get the message
return key;
};
this.getString =
function(key) {
// invoke Ajax to get preference
this.prefsHandlerOpts.key = key;
admingui.gadget.invoke("getPreference", this.prefsHandlerOpts);
var resp = admingui.gadget.getResponse()
if (typeof(resp) != 'undefined') {
resp = resp.value;
}
return resp;
};
this.set =
function(key, val) {
// invoke Ajax to set preference
this.prefsHandlerOpts.key = key;
this.prefsHandlerOpts.value = val;
admingui.gadget.invoke("setPreference", this.prefsHandlerOpts);
};
this.setArray =
function(key, val) {
// invoke Ajax to get preference
if (typeof(val) != 'object') {
val = [val];
}
this.prefsHandlerOpts.key = key;
this.prefsHandlerOpts.value = val;
admingui.gadget.invoke("setPreference", this.prefsHandlerOpts);
};
}
};
}