/*
主框架
*
*/
hsjwebgis.interval
hsjwebgis.mainlayout =
function(){
var Ajax = Ext.Ajax;
var west;
var loginwindow;
var loginsuccess =
false;
var center;
var height;
var beforeroeindex;
return{
/*
* 主框架
*
*/
mainlayout:
function(){
var south =
new Ext.BoxComponent({
region:'south',
el: 'south',
height : 20
});
west =
new Ext.Panel({
region:'west',
title:'数 据 维 护',
split:
true,
width: 200,
minSize: 175,
maxSize: 400,
//
autoScroll: true,
collapsible:
true,
margins:'0 0 0 5',
layout:'accordion',
layoutConfig:{
animate:
false
}
});
center =
new Ext.TabPanel({
region:'center',
id:'acc',
enableTabScroll:
true,
activeTab:0
});
var viewport =
new Ext.Viewport({
layout:'border',
items:[
south, west, center
]
});
viewport.on('resize',
function(){
//
alert(south.getSize().height);
if(south.getSize().height>25)
south.setHeight(25);
viewport.doLayout();
});
return{
viewport: viewport,
viewCenter:center,
viewWest:west,
//
viewNorth: north,
viewSouth: south
}
},
/*
* 登陆对话框
*
*/
//
begin
loginwindow:
function(){
var chk =
new Ext.form.Checkbox({
boxLabel:'记住用户名',
hideLabel :
true
});
var form =
new Ext.form.FormPanel({
baseCls: 'x-plain',
labelWidth: 70,
bodyStyle:'padding:15px 15px 0',
//
defaultType: 'textfield',
defaults: {width: 150},
items: [{
xtype: 'textfield',
fieldLabel: '用户名',
regexText:"用户名必须为0~9,a~z或下划线组成的字符",
regex:/^[A-Za-z0-9_]+$/,
name: 'loginname',
anchor:'100%'
},{
xtype: 'textfield',
fieldLabel: '密 码',
regex:/^[A-Za-z0-9_]+$/,
regexText:"密码必须为0~9,a~z或下划线组成的字符",
name: 'password',
inputType:'password',
anchor:'100%'
},chk]
});
//
/响应enter事件
var nav =
new Ext.KeyNav("login", {
"enter" :
function(e){
hsjwebgis.mainlayout.login(form);
},
scope :
this
});
//
框体
loginwindow =
new Ext.Window({
el:'login',
title: '登 录 Login',
width: 300,
height:180,
layout: 'fit',
closable :
false,
plain:
true,
bodyStyle:'padding:5px;',
buttonAlign:'center',
items: form,
modal:
true,
resizable:
false,
buttons: [{
text: '登 录',
handler:
function(){
var n = 0;
var text = "";
if (!form.form.findField("loginname").isValid())
{
n++;
text = text + "<div>" + n + ':'+ form.form.findField("loginname").regexText + '\n</div>';
}
if (!form.form.findField("password").isValid())
{
n++;
text = text + "<div>" + n + ':'+ form.form.findField("password").regexText + '\n</div>';
}
if (n>0)
{
Ext.MessageBox.alert
(
'提示', '<div>填写数据错误,可能存在以下错误:\n</div>' + text,
function()
{}
);
}
if(chk.getValue())
saveLoginName(form.form.findField("loginname").getValue());
else
saveLoginName('');
if(n==0)
hsjwebgis.mainlayout.login(form);
}
},{
text: '取 消',
handler:
function(){
hsjwebgis.mainlayout.close();
}
}]
});
loginwindow.on('beforeshow',
function(){
form.form.findField("loginname").setValue(getLoginName());
chk.setValue(isCheck());
});
loginwindow.on({
'close':
function() {
hsjwebgis.mainlayout.close();
}
});
loginwindow.show(
this);
Ext.get('x-form-el-ext-comp-1005').setStyle("text-align","right");
},
//
end
close:
function(){
if(loginsuccess ==
false){
window.close();
if(Ext.isGecko)
alert("此操作被浏览器拒绝!\n 请在浏览器地址栏输入“about:config”并回车\n然后将[dom.allow_scripts_to_close_windows]设置为'true'");
}
},
//
begin
/*
*
登陆连接
* servlet/Login
* 参数{
* loginname,
* password
* }
*
*/
login:
function(form){
//
设置登录按钮为不可用状态
loginwindow.buttons[0].disable();
var index = 0;
if(form.form.findField("loginname").getValue() == ""||form.form.findField("password").getValue() == "")
{
Ext.MessageBox.show({
title: '提 示',
msg: '对不起,用户名或密码不能为空!',
buttons: Ext.MessageBox.OK,
icon: Ext.MessageBox.INFO
});
loginwindow.buttons[0].enable();
}
if(form.form.findField("loginname").getValue() != ""&&form.form.findField("password").getValue() != ""){
if(index == 0){
index ++;
Ajax.request({
url: 'aspx/Login.aspx',
success:
function(response){
if(response.responseText=="false"){
loginwindow.buttons[0].disable();
loginsuccess =
false;
Ext.MessageBox.show({
title: '提 示',
msg: '错误的用户名或密码',
buttons: Ext.MessageBox.OK,
icon: Ext.MessageBox.ERROR
});
loginwindow.buttons[0].enable();
}
else
if(response.responseText=="false2")
{
loginsuccess =
false;
Ext.MessageBox.show({
title: '提 示',
msg: '对不起,您的账户已被锁定!',
buttons: Ext.MessageBox.OK,
icon: Ext.MessageBox.INFO
});
loginwindow.buttons[0].enable();
}
else{
//
登陆成功但是并非web权限用户
if(response.responseText=="[]")
{
location.href = "error.htm";
}
else
{
Ext.get("loginName").dom.innerHTML = form.form.findField("loginname").getValue();
utils.monitorSession();
hsjwebgis.mainlayout.loginSuccess(response);
}
}
},
failure:
function(){
Ext.MessageBox.show({
title: '警 告',
msg: '服务器连接异常',
buttons: Ext.MessageBox.OK,
icon: Ext.MessageBox.WARNING
});
loginwindow.buttons[0].enable();
},
params: {
loginname:form.form.findField("loginname").getValue(),
password:form.form.findField("password").getValue()
}
});
}
}
},
//
end
/*
加载accordion
*ext/extends/FeedTree.js
*
*/
loginSuccess:
function(response){
//
alert(response);
permission = response.responseText;
eval("var permission = " + permission);
for (
var n = 0; n < permission.length; n++) {
eval("var feed"
+ permission[n].nodeid
+ " = new FeedTree({title:'"+permission[n].name+"',id:"
+ permission[n].nodeid
+ ",root: new Ext.tree.TreeNode(),baseon:center,action:'"
+ permission[n].action + "',description:'"
+ permission[n].description + "'})")
for (
var m = 0; m < permission[n].node.length; m++) {
eval("var node = feed" + permission[n].nodeid
+ ".addNode('" + permission[n].node[m].name
+ "','feeds-node',true,"
+ permission[n].node[m].nodeid
+ ",' ')");
for (
var k = 0; k < permission[n].node[m].node.length; k++) {
eval("var feedNode = feed" + permission[n].nodeid
+ ".addfeed('"
+ permission[n].node[m].node[k].name + "',"
+ permission[n].node[m].node[k].nodeid
+ ",node,center,'"
+ permission[n].node[m].node[k].description
+ "','" + permission[n].node[m].node[k].action
+ "','" + permission[n].node[m].node[k].permission
+ "')");
}
}
eval("west.add(feed" + permission[n].nodeid + ")");
west.doLayout();
}
if(loginwindow!=
null){
loginsuccess =
true;
loginwindow.close();
}
}
};
}();