702 lines
24 KiB
JavaScript
702 lines
24 KiB
JavaScript
|
|
Ext.namespace("clientSetup");
|
||
|
|
|
||
|
|
clientSetup.application = {
|
||
|
|
init: function ()
|
||
|
|
{
|
||
|
|
var OCLIENTOPTION = "";
|
||
|
|
var loadMaskData = new Ext.LoadMask(Ext.getBody(), {msg: _("ID_LOADING_GRID")});
|
||
|
|
|
||
|
|
function oauthClientProcessAjax(option, oauthClientId)
|
||
|
|
{
|
||
|
|
//Message
|
||
|
|
var msg = "";
|
||
|
|
|
||
|
|
switch (option) {
|
||
|
|
case "INS":
|
||
|
|
msg = "Insert data...";
|
||
|
|
break;
|
||
|
|
case "UPD":
|
||
|
|
msg = "Update data...";
|
||
|
|
break;
|
||
|
|
case "DEL":
|
||
|
|
msg = "Delete data...";
|
||
|
|
break;
|
||
|
|
//case "LST":
|
||
|
|
// break;
|
||
|
|
}
|
||
|
|
|
||
|
|
var loadMaskAux = new Ext.LoadMask(Ext.getBody(), {msg: msg});
|
||
|
|
loadMaskAux.show();
|
||
|
|
|
||
|
|
//Data
|
||
|
|
var p;
|
||
|
|
|
||
|
|
switch (option) {
|
||
|
|
case "INS":
|
||
|
|
p = {
|
||
|
|
option: option,
|
||
|
|
name: Ext.getCmp("txtName").getValue(),
|
||
|
|
description: Ext.getCmp("txtDescription").getValue(),
|
||
|
|
webSite: Ext.getCmp("txtWebSite").getValue(),
|
||
|
|
redirectUri: Ext.getCmp("txtRedirectUri").getValue()
|
||
|
|
};
|
||
|
|
break;
|
||
|
|
case "UPD":
|
||
|
|
p = {
|
||
|
|
option: option,
|
||
|
|
oauthClientId: oauthClientId,
|
||
|
|
name: Ext.getCmp("txtName").getValue(),
|
||
|
|
description: Ext.getCmp("txtDescription").getValue(),
|
||
|
|
webSite: Ext.getCmp("txtWebSite").getValue(),
|
||
|
|
redirectUri: Ext.getCmp("txtRedirectUri").getValue()
|
||
|
|
};
|
||
|
|
break;
|
||
|
|
case "DEL":
|
||
|
|
p = {
|
||
|
|
option: option,
|
||
|
|
oauthClientId: oauthClientId
|
||
|
|
};
|
||
|
|
break;
|
||
|
|
//case "LST":
|
||
|
|
// break;
|
||
|
|
}
|
||
|
|
|
||
|
|
Ext.Ajax.request({
|
||
|
|
url: "../oauth2/clientSetupAjax",
|
||
|
|
method: "POST",
|
||
|
|
params: p,
|
||
|
|
|
||
|
|
success: function (response, opts)
|
||
|
|
{
|
||
|
|
var dataResponse = Ext.util.JSON.decode(response.responseText);
|
||
|
|
|
||
|
|
switch (option) {
|
||
|
|
case "INS":
|
||
|
|
case "UPD":
|
||
|
|
case "DEL":
|
||
|
|
if (dataResponse.status) {
|
||
|
|
if (dataResponse.status == "OK") {
|
||
|
|
pagingData.moveFirst();
|
||
|
|
|
||
|
|
switch (option) {
|
||
|
|
case "INS":
|
||
|
|
dataResponse.data.CLIENT_NAME = Ext.getCmp("txtName").getValue();
|
||
|
|
|
||
|
|
insertSuccessView(dataResponse.data);
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
Ext.MessageBox.alert(_("ID_ALERT"), dataResponse.message);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
//case "LST":
|
||
|
|
// break;
|
||
|
|
}
|
||
|
|
|
||
|
|
loadMaskAux.hide();
|
||
|
|
},
|
||
|
|
failure: function (response, opts)
|
||
|
|
{
|
||
|
|
loadMaskAux.hide();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
function oauthClientSetForm(option, oauthClientId)
|
||
|
|
{
|
||
|
|
switch (option) {
|
||
|
|
case "INS":
|
||
|
|
Ext.getCmp("oauthClientId").setValue("");
|
||
|
|
Ext.getCmp("txtName").setValue("");
|
||
|
|
Ext.getCmp("txtDescription").setValue("");
|
||
|
|
Ext.getCmp("txtWebSite").setValue("");
|
||
|
|
Ext.getCmp("txtRedirectUri").setValue("");
|
||
|
|
|
||
|
|
Ext.getCmp("txtName").allowBlank = true;
|
||
|
|
|
||
|
|
winData.setTitle("New Application");
|
||
|
|
winData.show();
|
||
|
|
|
||
|
|
Ext.getCmp("btnSubmit").btnEl.dom.innerHTML = "Register Application";
|
||
|
|
|
||
|
|
Ext.getCmp("txtName").allowBlank = false;
|
||
|
|
break;
|
||
|
|
case "UPD":
|
||
|
|
var record = grdpnlMain.getSelectionModel().getSelected();
|
||
|
|
|
||
|
|
if (typeof(record) != "undefined") {
|
||
|
|
Ext.getCmp("oauthClientId").setValue(record.get("CLIENT_ID")); //oauthClientId
|
||
|
|
Ext.getCmp("txtName").setValue(record.get("CLIENT_NAME"));
|
||
|
|
Ext.getCmp("txtDescription").setValue(record.get("CLIENT_DESCRIPTION"));
|
||
|
|
Ext.getCmp("txtWebSite").setValue(record.get("CLIENT_WEBSITE"));
|
||
|
|
Ext.getCmp("txtRedirectUri").setValue(record.get("REDIRECT_URI"));
|
||
|
|
|
||
|
|
Ext.getCmp("txtName").allowBlank = true;
|
||
|
|
|
||
|
|
winData.setTitle("Edit Application");
|
||
|
|
winData.show();
|
||
|
|
|
||
|
|
Ext.getCmp("btnSubmit").btnEl.dom.innerHTML = "Edit Application";
|
||
|
|
|
||
|
|
Ext.getCmp("txtName").allowBlank = false;
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function insertSuccessView(data)
|
||
|
|
{
|
||
|
|
var html = "Your application \"" + data.CLIENT_NAME + "\" was registered successfully!" + "<br /><br />";
|
||
|
|
html = html + "<h3>" + "Application Credentials" + "</h3><br />";
|
||
|
|
html = html + " <b>* " + "Client ID" + ":</b> " + data.CLIENT_ID + "<br />";
|
||
|
|
html = html + " <b>* " + "Client Secret" + ":</b> " + data.CLIENT_SECRET + "<br /><br />";
|
||
|
|
html = html + "<h3>" + "Next Steps" + "</h3><br />";
|
||
|
|
html = html + " <b>* </b>" + "Make authorize requests" + "<br />";
|
||
|
|
html = html + " <b>* </b>" + "Get access tokens" + "<br />";
|
||
|
|
|
||
|
|
var formItems = Ext.getCmp("frmInsertSuccessView").form.items;
|
||
|
|
formItems.items[0].setValue(html);
|
||
|
|
|
||
|
|
winInsertSuccess.show();
|
||
|
|
}
|
||
|
|
|
||
|
|
function detailView()
|
||
|
|
{
|
||
|
|
var record = grdpnlMain.getSelectionModel().getSelected();
|
||
|
|
|
||
|
|
if (typeof(record) != "undefined") {
|
||
|
|
var html = "Your application \"" + record.get("CLIENT_NAME") + "\"" + "<br /><br />";
|
||
|
|
html = html + "<h3>" + "Application Details" + "</h3><br />";
|
||
|
|
html = html + " <b>* " + "Description" + ":</b> " + record.get("CLIENT_DESCRIPTION") + "<br />";
|
||
|
|
html = html + " <b>* " + "Web Site" + ":</b> " + record.get("CLIENT_WEBSITE") + "<br />";
|
||
|
|
html = html + " <b>* " + "Callback URL" + ":</b> " + record.get("REDIRECT_URI") + "<br /><br />";
|
||
|
|
html = html + "<h3>" + "Application Credentials" + "</h3><br />";
|
||
|
|
html = html + " <b>* " + "Client ID" + ":</b> " + record.get("CLIENT_ID") + "<br />";
|
||
|
|
html = html + " <b>* " + "Client Secret" + ":</b> " + record.get("CLIENT_SECRET") + "<br /><br />";
|
||
|
|
|
||
|
|
var formItems = Ext.getCmp("frmDetailView").form.items;
|
||
|
|
formItems.items[0].setValue(html);
|
||
|
|
|
||
|
|
winDetail.show();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function onMnuContext(grid, rowIndex, e)
|
||
|
|
{
|
||
|
|
e.stopEvent();
|
||
|
|
|
||
|
|
var coords = e.getXY();
|
||
|
|
|
||
|
|
mnuContext.showAt([coords[0], coords[1]]);
|
||
|
|
}
|
||
|
|
|
||
|
|
//Variables
|
||
|
|
var pageSize = parseInt(CONFIG.pageSize);
|
||
|
|
|
||
|
|
//Stores
|
||
|
|
var storeData = new Ext.data.Store({
|
||
|
|
proxy: new Ext.data.HttpProxy({
|
||
|
|
url: "../oauth2/clientSetupAjax",
|
||
|
|
method: "POST"
|
||
|
|
}),
|
||
|
|
|
||
|
|
//baseParams: {"option": "LST", "pageSize": pageSize},
|
||
|
|
|
||
|
|
reader: new Ext.data.JsonReader({
|
||
|
|
totalProperty: "resultTotal",
|
||
|
|
root: "resultRoot",
|
||
|
|
fields: [
|
||
|
|
{name: "CLIENT_ID", type: "string"},
|
||
|
|
{name: "CLIENT_SECRET", type: "string"},
|
||
|
|
{name: "CLIENT_NAME", type: "string"},
|
||
|
|
{name: "CLIENT_DESCRIPTION", type: "string"},
|
||
|
|
{name: "CLIENT_WEBSITE", type: "string"},
|
||
|
|
{name: "REDIRECT_URI", type: "string"},
|
||
|
|
{name: "USR_UID", type: "string"}
|
||
|
|
]
|
||
|
|
}),
|
||
|
|
|
||
|
|
//autoLoad: true, //First call
|
||
|
|
remoteSort: true,
|
||
|
|
|
||
|
|
listeners: {
|
||
|
|
beforeload: function (store, opt)
|
||
|
|
{
|
||
|
|
loadMaskData.show();
|
||
|
|
|
||
|
|
btnEdit.setDisabled(true);
|
||
|
|
btnDelete.setDisabled(true);
|
||
|
|
btnDetail.setDisabled(true);
|
||
|
|
|
||
|
|
this.baseParams = {
|
||
|
|
option: "LST",
|
||
|
|
pageSize: pageSize,
|
||
|
|
search: Ext.getCmp("txtSearch").getValue()
|
||
|
|
};
|
||
|
|
},
|
||
|
|
load: function (store, record, opt)
|
||
|
|
{
|
||
|
|
loadMaskData.hide();
|
||
|
|
|
||
|
|
if (CREATE_CLIENT == 1) {
|
||
|
|
OCLIENTOPTION = "INS";
|
||
|
|
CREATE_CLIENT = 0;
|
||
|
|
|
||
|
|
oauthClientSetForm(OCLIENTOPTION, "");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
var storePageSize = new Ext.data.SimpleStore({
|
||
|
|
fields: ["size"],
|
||
|
|
data: [["20"], ["30"], ["40"], ["50"], ["100"]],
|
||
|
|
autoLoad: true
|
||
|
|
});
|
||
|
|
|
||
|
|
//Components
|
||
|
|
var winData = new Ext.Window({
|
||
|
|
layout: "fit",
|
||
|
|
width: 550,
|
||
|
|
height: 475,
|
||
|
|
//title: "",
|
||
|
|
modal: true,
|
||
|
|
resizable: false,
|
||
|
|
closeAction: "hide",
|
||
|
|
|
||
|
|
items: [
|
||
|
|
new Ext.FormPanel({
|
||
|
|
id: "frmOauthClient",
|
||
|
|
|
||
|
|
frame: true,
|
||
|
|
labelAlign: "right",
|
||
|
|
labelWidth: 80,
|
||
|
|
autoWidth: true,
|
||
|
|
//height: 395,
|
||
|
|
autoScroll: false,
|
||
|
|
|
||
|
|
defaults: {width: 425},
|
||
|
|
|
||
|
|
items: [
|
||
|
|
{
|
||
|
|
xtype: "hidden",
|
||
|
|
id: "oauthClientId",
|
||
|
|
name: "oauthClientId",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
xtype: "textfield",
|
||
|
|
id: "txtName",
|
||
|
|
name: "txtName",
|
||
|
|
|
||
|
|
fieldLabel: "Name"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
xtype: "label",
|
||
|
|
|
||
|
|
fieldLabel: " ",
|
||
|
|
labelSeparator: "",
|
||
|
|
|
||
|
|
html: "<span style=\"font-size: 11px;\">" + "Your application name. This is used to attribute the source in user-facing authorization screens. 32 characters max." + "</span><div style=\"height: 5px;\"></div>"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
xtype: "textarea",
|
||
|
|
id: "txtDescription",
|
||
|
|
name: "txtDescription",
|
||
|
|
|
||
|
|
fieldLabel: "Description",
|
||
|
|
height: 55
|
||
|
|
},
|
||
|
|
{
|
||
|
|
xtype: "label",
|
||
|
|
|
||
|
|
fieldLabel: " ",
|
||
|
|
labelSeparator: "",
|
||
|
|
|
||
|
|
html: "<span style=\"font-size: 11px;\">" + "Your application description, which will be shown in user-facing authorization screens. Between 10 and 200 characters max." + "</span><div style=\"height: 5px;\"></div>"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
xtype: "textfield",
|
||
|
|
id: "txtWebSite",
|
||
|
|
name: "txtWebSite",
|
||
|
|
|
||
|
|
fieldLabel: "Web Site",
|
||
|
|
vtype: "url"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
xtype: "label",
|
||
|
|
|
||
|
|
fieldLabel: " ",
|
||
|
|
labelSeparator: "",
|
||
|
|
|
||
|
|
html: "<span style=\"font-size: 11px;\">" + "Your application's publicly accessible home page, where users can go to download, make use of, or find out more information about your application. This fully-qualified URL is used in the source attribution for request created by your application and will be shown in user-facing authorization screens. (If you don't have a URL yet, just put a placeholder here but remember to change it later.)" + "</span><div style=\"height: 5px;\"></div>"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
xtype: "textfield",
|
||
|
|
id: "txtRedirectUri",
|
||
|
|
name: "txtRedirectUri",
|
||
|
|
|
||
|
|
fieldLabel: "Callback URL",
|
||
|
|
vtype: "url"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
xtype: "label",
|
||
|
|
|
||
|
|
fieldLabel: " ",
|
||
|
|
labelSeparator: "",
|
||
|
|
|
||
|
|
html: "<span style=\"font-size: 11px;\">" + "here should we return after successfully authenticating? For @Anywhere applications, only the domain specified in the callback will be used. OAuth 1.0a applications should explicitly specify their oauth_callback URL on the request token step, regardless of the value given here. To restrict your application from using callbacks, leave this field blank." + "</span>"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
})
|
||
|
|
],
|
||
|
|
buttons: [
|
||
|
|
{
|
||
|
|
id: "btnSubmit",
|
||
|
|
//text: "",
|
||
|
|
handler: function ()
|
||
|
|
{
|
||
|
|
if (Ext.getCmp("frmOauthClient").getForm().isValid()) {
|
||
|
|
oauthClientProcessAjax(OCLIENTOPTION, Ext.getCmp("oauthClientId").getValue());
|
||
|
|
|
||
|
|
Ext.getCmp("txtName").allowBlank = true;
|
||
|
|
|
||
|
|
winData.hide();
|
||
|
|
} else {
|
||
|
|
Ext.MessageBox.alert(_("ID_INVALID_DATA"), _("ID_CHECK_FIELDS_MARK_RED"));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
text: _("ID_CANCEL"),
|
||
|
|
handler: function ()
|
||
|
|
{
|
||
|
|
Ext.getCmp("txtName").allowBlank = true;
|
||
|
|
|
||
|
|
winData.hide();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
]
|
||
|
|
});
|
||
|
|
|
||
|
|
var winInsertSuccess = new Ext.Window({
|
||
|
|
layout: "fit",
|
||
|
|
width: 450,
|
||
|
|
height: 300,
|
||
|
|
title: "Registration Success",
|
||
|
|
modal: true,
|
||
|
|
resizable: false,
|
||
|
|
closeAction: "hide",
|
||
|
|
|
||
|
|
items: [
|
||
|
|
new Ext.FormPanel({
|
||
|
|
id: "frmInsertSuccessView",
|
||
|
|
|
||
|
|
frame: true,
|
||
|
|
labelAlign: "right",
|
||
|
|
labelWidth: 1,
|
||
|
|
autoWidth: true,
|
||
|
|
//height: 395,
|
||
|
|
autoScroll: true,
|
||
|
|
items: [
|
||
|
|
{
|
||
|
|
xtype: "displayfield",
|
||
|
|
fieldLabel: ""
|
||
|
|
}
|
||
|
|
]
|
||
|
|
})
|
||
|
|
]
|
||
|
|
});
|
||
|
|
|
||
|
|
var winDetail = new Ext.Window({
|
||
|
|
layout: "fit",
|
||
|
|
width: 450,
|
||
|
|
height: 300,
|
||
|
|
title: "Detail",
|
||
|
|
modal: true,
|
||
|
|
resizable: false,
|
||
|
|
closeAction: "hide",
|
||
|
|
|
||
|
|
items: [
|
||
|
|
new Ext.FormPanel({
|
||
|
|
id: "frmDetailView",
|
||
|
|
|
||
|
|
frame: true,
|
||
|
|
labelAlign: "right",
|
||
|
|
labelWidth: 1,
|
||
|
|
autoWidth: true,
|
||
|
|
//height: 395,
|
||
|
|
autoScroll: true,
|
||
|
|
items: [
|
||
|
|
{
|
||
|
|
xtype: "displayfield",
|
||
|
|
fieldLabel: ""
|
||
|
|
}
|
||
|
|
]
|
||
|
|
})
|
||
|
|
]
|
||
|
|
});
|
||
|
|
|
||
|
|
var btnNew = new Ext.Action({
|
||
|
|
id: "btnNew",
|
||
|
|
|
||
|
|
text: _("ID_NEW"),
|
||
|
|
iconCls: "button_menu_ext ss_sprite ss_add",
|
||
|
|
|
||
|
|
handler: function ()
|
||
|
|
{
|
||
|
|
OCLIENTOPTION = "INS";
|
||
|
|
|
||
|
|
oauthClientSetForm(OCLIENTOPTION, "");
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
var btnEdit = new Ext.Action({
|
||
|
|
id: "btnEdit",
|
||
|
|
|
||
|
|
text: _("ID_EDIT"),
|
||
|
|
iconCls: "button_menu_ext ss_sprite ss_pencil",
|
||
|
|
|
||
|
|
handler: function ()
|
||
|
|
{
|
||
|
|
var record = grdpnlMain.getSelectionModel().getSelected();
|
||
|
|
|
||
|
|
if (typeof(record) != "undefined") {
|
||
|
|
OCLIENTOPTION = "UPD";
|
||
|
|
|
||
|
|
oauthClientSetForm(OCLIENTOPTION, record.get("CLIENT_ID"));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
var btnDelete = new Ext.Action({
|
||
|
|
id: "btnDelete",
|
||
|
|
|
||
|
|
text: _("ID_DELETE"),
|
||
|
|
iconCls: "button_menu_ext ss_sprite ss_cross",
|
||
|
|
|
||
|
|
handler: function ()
|
||
|
|
{
|
||
|
|
var record = grdpnlMain.getSelectionModel().getSelected();
|
||
|
|
|
||
|
|
if (typeof(record) != "undefined") {
|
||
|
|
Ext.MessageBox.confirm(
|
||
|
|
_("ID_CONFIRM"),
|
||
|
|
"Do you want to delete selected Application?",
|
||
|
|
function (btn)
|
||
|
|
{
|
||
|
|
if (btn == "yes") {
|
||
|
|
OCLIENTOPTION = "DEL";
|
||
|
|
|
||
|
|
oauthClientProcessAjax(OCLIENTOPTION, record.get("CLIENT_ID"));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
var btnDetail = new Ext.Action({
|
||
|
|
id: "btnDetail",
|
||
|
|
|
||
|
|
text: _("ID_DETAIL"),
|
||
|
|
iconCls: "button_menu_ext ss_sprite ss_zoom",
|
||
|
|
|
||
|
|
handler: function ()
|
||
|
|
{
|
||
|
|
detailView();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
var btnSearch = new Ext.Action({
|
||
|
|
id: "btnSearch",
|
||
|
|
|
||
|
|
text: _("ID_SEARCH"),
|
||
|
|
|
||
|
|
handler: function ()
|
||
|
|
{
|
||
|
|
pagingData.moveFirst();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
var txtSearch = new Ext.form.TextField({
|
||
|
|
id: "txtSearch",
|
||
|
|
|
||
|
|
emptyText: _("ID_ENTER_SEARCH_TERM"),
|
||
|
|
width: 150,
|
||
|
|
allowBlank: true,
|
||
|
|
|
||
|
|
listeners: {
|
||
|
|
specialkey: function (f, e)
|
||
|
|
{
|
||
|
|
if (e.getKey() == e.ENTER) {
|
||
|
|
pagingData.moveFirst();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
var btnTextClear = new Ext.Action({
|
||
|
|
id: "btnTextClear",
|
||
|
|
|
||
|
|
text: "X",
|
||
|
|
ctCls: "pm_search_x_button",
|
||
|
|
handler: function ()
|
||
|
|
{
|
||
|
|
txtSearch.reset();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
var cboPageSize = new Ext.form.ComboBox({
|
||
|
|
id: "cboPageSize",
|
||
|
|
|
||
|
|
mode: "local",
|
||
|
|
triggerAction: "all",
|
||
|
|
store: storePageSize,
|
||
|
|
valueField: "size",
|
||
|
|
displayField: "size",
|
||
|
|
width: 50,
|
||
|
|
editable: false,
|
||
|
|
|
||
|
|
listeners: {
|
||
|
|
select: function (combo, record, index)
|
||
|
|
{
|
||
|
|
pageSize = parseInt(record.data["size"]);
|
||
|
|
|
||
|
|
pagingData.pageSize = pageSize;
|
||
|
|
pagingData.moveFirst();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
var pagingData = new Ext.PagingToolbar({
|
||
|
|
id: "pagingData",
|
||
|
|
|
||
|
|
pageSize: pageSize,
|
||
|
|
store: storeData,
|
||
|
|
displayInfo: true,
|
||
|
|
displayMsg: "Displaying data " + "{" + "0" + "}" + " - " + "{" + "1" + "}" + " of " + "{" + "2" + "}",
|
||
|
|
emptyMsg: "No data to display",
|
||
|
|
items: ["-", "Page size:", cboPageSize]
|
||
|
|
});
|
||
|
|
|
||
|
|
var cmodel = new Ext.grid.ColumnModel({
|
||
|
|
defaults: {
|
||
|
|
sortable: true
|
||
|
|
},
|
||
|
|
|
||
|
|
columns: [
|
||
|
|
{id: "CLIENT_ID", dataIndex: "CLIENT_ID", hidden: true, hideable: false},
|
||
|
|
{id: "CLIENT_SECRET", dataIndex: "CLIENT_SECRET", hidden: true, hideable: false},
|
||
|
|
{id: "CLIENT_NAME", dataIndex: "CLIENT_NAME", header: "Name", width: 200, align: "left"},
|
||
|
|
{id: "CLIENT_DESCRIPTION", dataIndex: "CLIENT_DESCRIPTION", header: "Description", width: 250, align: "left"},
|
||
|
|
{id: "CLIENT_WEBSITE", dataIndex: "CLIENT_WEBSITE", hidden: true, hideable: false},
|
||
|
|
{id: "REDIRECT_URI", dataIndex: "REDIRECT_URI", hidden: true, hideable: false},
|
||
|
|
{id: "USR_UID", dataIndex: "USR_UID", hidden: true, hideable: false}
|
||
|
|
]
|
||
|
|
});
|
||
|
|
|
||
|
|
var smodel = new Ext.grid.RowSelectionModel({
|
||
|
|
singleSelect: true,
|
||
|
|
listeners: {
|
||
|
|
rowselect: function (sm)
|
||
|
|
{
|
||
|
|
btnEdit.setDisabled(false);
|
||
|
|
btnDelete.setDisabled(false);
|
||
|
|
btnDetail.setDisabled(false);
|
||
|
|
},
|
||
|
|
rowdeselect: function (sm)
|
||
|
|
{
|
||
|
|
btnEdit.setDisabled(true);
|
||
|
|
btnDelete.setDisabled(true);
|
||
|
|
btnDetail.setDisabled(true);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
var grdpnlMain = new Ext.grid.GridPanel({
|
||
|
|
id: "grdpnlMain",
|
||
|
|
|
||
|
|
store: storeData,
|
||
|
|
colModel: cmodel,
|
||
|
|
selModel: smodel,
|
||
|
|
|
||
|
|
columnLines: true,
|
||
|
|
viewConfig: {forceFit: true}, //Expand all columns
|
||
|
|
enableColumnResize: true,
|
||
|
|
enableHdMenu: true, //Menu of the column
|
||
|
|
//autoExpandColumn: "CLIENT_DESCRIPTION",
|
||
|
|
|
||
|
|
//tbar: [btnNew, "-", btnEdit, btnDelete, "-", btnDetail, "->", txtSearch, btnTextClear, btnSearch],
|
||
|
|
tbar: [btnNew, "-", btnEdit, btnDelete, "-", btnDetail],
|
||
|
|
//bbar: pagingData,
|
||
|
|
|
||
|
|
//style: "margin: 0 auto 0 auto;",
|
||
|
|
//width: 550,
|
||
|
|
//height: 450,
|
||
|
|
title: "<div><div style=\"float: left;\">" + "My Applications" + "</div><div id=\"divAccessTokenSetup\" style=\"float: right;\"></div><div style=\"clear: both; height: 0; line-height:0; font-size: 0;\"></div></div>",
|
||
|
|
border: false,
|
||
|
|
|
||
|
|
listeners: {
|
||
|
|
afterrender: function (grid)
|
||
|
|
{
|
||
|
|
var btn = new Ext.Button({
|
||
|
|
text: " " + "Applications",
|
||
|
|
iconCls: "button_menu_ext ss_sprite ss_arrow_left",
|
||
|
|
renderTo: "divAccessTokenSetup",
|
||
|
|
|
||
|
|
handler: function ()
|
||
|
|
{
|
||
|
|
location.href = "accessTokenSetup";
|
||
|
|
}
|
||
|
|
});
|
||
|
|
},
|
||
|
|
rowdblclick: function (grid, rowIndex, evt)
|
||
|
|
{
|
||
|
|
var record = grdpnlMain.getSelectionModel().getSelected();
|
||
|
|
|
||
|
|
if (typeof(record) != "undefined") {
|
||
|
|
OCLIENTOPTION = "UPD";
|
||
|
|
|
||
|
|
oauthClientSetForm(OCLIENTOPTION, record.get("CLIENT_ID"));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
//Menu context
|
||
|
|
var mnuContext = new Ext.menu.Menu({
|
||
|
|
id: "mnuContext",
|
||
|
|
|
||
|
|
items: [btnEdit, btnDelete, "-", btnDetail]
|
||
|
|
});
|
||
|
|
|
||
|
|
//Initialize events
|
||
|
|
grdpnlMain.on(
|
||
|
|
"rowcontextmenu",
|
||
|
|
function (grid, rowIndex, evt)
|
||
|
|
{
|
||
|
|
var sm = grid.getSelectionModel();
|
||
|
|
sm.selectRow(rowIndex, sm.isSelected(rowIndex));
|
||
|
|
},
|
||
|
|
this
|
||
|
|
);
|
||
|
|
|
||
|
|
grdpnlMain.addListener("rowcontextmenu", onMnuContext, this);
|
||
|
|
|
||
|
|
cboPageSize.setValue(pageSize);
|
||
|
|
|
||
|
|
grdpnlMain.store.load();
|
||
|
|
|
||
|
|
//Load all panels
|
||
|
|
var viewport = new Ext.Viewport({
|
||
|
|
layout: "fit",
|
||
|
|
autoScroll: false,
|
||
|
|
items: [grdpnlMain]
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
Ext.onReady(clientSetup.application.init, clientSetup.application);
|
||
|
|
|