`
qianqian_1216
  • 浏览: 34496 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

ext.js

阅读更多

Emice.HolidayMaintain = function(){
    var dlg, opt, mask, waitTimer;
    var bodyEl, msgEl, frameEl;
    var buttons, bwidth;
   
    var partTemplate;
    var btnNew, btnDelete;
    var tblParts, partRow;
    var holidayListDiv,newHolidayDiv;

    // private
    var handleButton = function(button){
        dlg.hide();
        Ext.callback(opt.fn, opt.scope||window, [button, ''], 1);
    };

    // private
    var handleHide = function(){
        if(opt && opt.cls){
            dlg.el.removeClass(opt.cls);
        }
        if(waitTimer){
            Ext.TaskMgr.stop(waitTimer);
            waitTimer = null;
        }
    };
 
 var get = function(id,root){
  if(!root){
   root=bodyEl.dom
  }
  return Ext.DomQuery.select('#'+id,root)[0];
 };
 
    // private
    var updateButtons = function(b){
        var width = 0;
        if(!b){
            buttons["ok"].hide();
            buttons["cancel"].hide();
            dlg.footer.dom.style.display = 'none';
            return width;
        }
        dlg.footer.dom.style.display = '';
        for(var k in buttons){
            if(typeof buttons[k] != "function"){
                if(b[k]){
                    buttons[k].show();
     //buttons[k].disabled=true;
                    buttons[k].setText(typeof b[k] == "string" ? b[k] : Emice.HolidayMaintain.buttonText[k]);
                    width += buttons[k].el.getWidth()+15;
                }else{
                    buttons[k].hide();
                }
            }
        }
        return width;
    };

    // private
    var handleEsc = function(d, k, e){
        if(opt && opt.closable !== false){
            dlg.hide();
        }
        if(e){
            e.stopEvent();
        }
    };

    return {
        /**
         * Returns a reference to the underlying {@link Ext.BasicDialog} element
         * @return {Ext.BasicDialog} The BasicDialog element
         */
        getDialog : function(){
           if(!dlg){
                dlg = new Ext.BasicDialog("x-msg-box", {
                   
     title: opt.holidayDate,
                    autoCreate : true,
                    shadow: true,
                    draggable: true,
     proxyDrag: false,
     closable: false,
                    resizable:false,
                    constraintoviewport:false,
                    fixedcenter:true,
                    collapsible : false,
                    shim:true,
                    modal: true,
                    width:400,
     height:100,
                    buttonAlign:"center",
                    closeClick : function(){
                        if(opt && opt.buttons && opt.buttons.no && !opt.buttons.cancel){
                            handleButton("no");
                        }else{
                            handleButton("cancel");
                        }
                    }
                });
                dlg.on("hide", handleHide);
                mask = dlg.mask;
                dlg.addKeyListener(27, handleEsc);
                buttons = {};
                var bt = this.buttonText;
              
                buttons["ok"] = dlg.addButton(bt["ok"], handleButton.createCallback("ok"));
                buttons["cancel"] = dlg.addButton(bt["cancel"], handleButton.createCallback("cancel"));
    //disable
    buttons["ok"].disable();
    //buttons["cancel"].show();
    
                bodyEl = dlg.body.createChild({
                    html:'<div class="ext-mb-text" id="_part_template" style="background:white;border: 1px solid #6593CF;height:130px"><span id="_temp"></span></div>'
                });
    
    partTemplate = bodyEl.dom.firstChild;
   }
            return dlg;
        },

        /**
         * Returns true if the message box is currently displayed
         * @return {Boolean} True if the message box is visible, else false
         */
        isVisible : function(){
            return dlg && dlg.isVisible(); 
        },

        /**
         * Hides the message box if it is displayed
         */
        hide : function(){
            if(this.isVisible()){
                dlg.hide();
            } 
        },
        getxx : function(id,root){
      if(!root){
       root=Emice.HolidayMaintain.getDialog().body.dom;
      }
      return Ext.DomQuery.select('#'+id,root)[0];
     },
       
        updateSize : function(){

            if(!dlg.isVisible() && !opt.width){
                dlg.resizeTo(this.maxWidth, 100); // resize first so content is never clipped from previous shows
            }

            var w = Math.max(Math.min(opt.width || partTemplate.offsetWidth, this.maxWidth),
                        Math.max(opt.minWidth || this.minWidth, bwidth));  
            if(dlg.isVisible()){
                dlg.fixedcenter = false;
            }

   if(!w){
    w = 1;
   }

            dlg.setContentSize(w, bodyEl.getHeight());


            if(dlg.isVisible()){
                dlg.fixedcenter = true;
            }
   
            return this;
        },
  
  innerOkHandler : function(el,trueOkHandler){
   return function(){
    try{
      
     Emice.HolidayMaintain.hide();
     if(trueOkHandler){
      trueOkHandler();
     }
    }catch(e){
     alert("Edit part error: " + e.message);
    }
   }
  },

  innerCancelHandler : function(el,trueCancelHandler){
   return function(){
    Emice.HolidayMaintain.hide();
    if(trueCancelHandler){
     trueCancelHandler();
    }    
   }
  },

//////////////////////////////////////////////////////////////////////////      
        loadTemplate:function(oElement, bSuccess){
            if(!bSuccess){
                return;
            }
            Emice.HolidayMaintain.trueLoadTemplate();
        },
       
        trueLoadTemplate:function(){
       
         Ext.get("_name").dom.value = opt.name;
   Ext.get("_remarks").dom.value = opt.remarks;

            var d = Emice.HolidayMaintain.getDialog();

            //Emice.HolidayMaintain.fillHolidays(opt.holidays);

   bwidth = updateButtons(Emice.HolidayMaintain.OKCANCEL);


            buttons["ok"].setHandler(Emice.HolidayMaintain.update);
   //buttons["cancel"].setHandler(Emice.HolidayMaintain.innerCancelHandler(opt.field,opt.cancelHandler));

            dlg.setDefaultButton(buttons["cancel"]);

            //Ext.get(partRow).setVisible(false);
          
            newHolidayDiv = get("_new_holiday_div",partTemplate);
            //Ext.get(newHolidayDiv).mask();
   Ext.get(newHolidayDiv).setDisplayed(false);
            //chooseRadio = Ext.get("_choose");
            //newHolidayRadio = Ext.get("_newholiday");
            editHolidayRadio = Ext.get("_editholiday");
            deleteHolidayRadio = Ext.get("_deleteholiday");
   
   //newHolidayRadio.on('click',function(){
                //buttons["ok"].setHandler(Emice.HolidayMaintain.save);
                //Ext.get(holidayListDiv).mask();
    //Ext.get(holidayListDiv).setDisplayed(false);
                //Ext.get(newHolidayDiv).unmask();
    //Ext.get(newHolidayDiv).setDisplayed(true);
   //});
   
   editHolidayRadio.on('click',function(){
                buttons["ok"].setHandler(Emice.HolidayMaintain.update);
                //Ext.get(holidayListDiv).mask();
    //Ext.get(holidayListDiv).setDisplayed(false);
                //Ext.get(newHolidayDiv).unmask();
    Ext.get(newHolidayDiv).setDisplayed(true);
   });
   
            deleteHolidayRadio.on('click',function(){
                buttons["ok"].setHandler(Emice.HolidayMaintain.deleteMe);
                //Ext.get(holidayListDiv).mask();
    //Ext.get(holidayListDiv).setDisplayed(false);
                //Ext.get(newHolidayDiv).mask();
    Ext.get(newHolidayDiv).setDisplayed(false);
   });

 
            Emice.HolidayMaintain.updateSize();
   d.mask = opt.modal !== false ? mask : false;

            if(!d.isVisible()){
                // force it to the end of the z-index stack so it gets a cursor in FF
                document.body.appendChild(dlg.el.dom);
                d.animateTarget = null;
                d.show();
            }

            Emice.HolidayMaintain.onReady();
            
            Ext.get(newHolidayDiv).setDisplayed(true);
            this.multipleLanguages();
           
        },
       
        multipleLanguages : function(){

         Ext.get("_edit_holiday_text").dom.innerHTML =opt.msg_edit;
         //Ext.get("_new_holiday_text").dom.innerHTML ='New';
         Ext.get("_delete_text").dom.innerHTML =opt.msg_delete;
         Ext.get("name").dom.innerHTML =opt.msg_holidayName;
         Ext.get("remarks").dom.innerHTML =opt.msg_disc;
         
        },
       
        show : function(options){
   opt = options;

            if(this.isVisible()){
                this.hide();
            }
            var d = this.getDialog();
           
            d.setTitle(opt.holidayDate);
           
            this.initDialog();
           
      Ext.get(partTemplate).load({
       url: opt.url ,
       callback: this.loadTemplate,
       text: ''
      });

        },
       
  initDialog: function(){
   partTemplate.innerHTML = "";
  },
  
  onReady : function(){
   buttons["ok"].enable();
  },

        /*fillHolidays: function(obj){

   //alert(obj.length);
   var index = 0;
   for(var i=0;i<obj.length;i++){
                var name = obj[i].name;
                var key = obj[i].id;
                                
                var option = new Option(name,key);   
                option.title=name;
                Ext.get("_holidaylist").dom.options[i] = option;            
   }
   */
   /*if(opt.holidayId){
    Ext.get("_holidaylist").dom.value = opt.holidayId;
   }*//*
   Emice.HolidayMaintain.updateSize();
  },*/

  update : function(){
            Emice.HolidayMaintain.updateHoliday({
           
             params : {
                    name   : get("_name",partTemplate).value ,
     remarks  : get("_remarks",partTemplate).value,
     holidayDate : opt.holidayDate,
     holidayId : opt.holidayId
                }, 
                success: function(resp){
                    if(Ext.util.JSON.decode(resp.responseText)!=false){
      dlg.hide();
      window.view();

                    }else{
                        alert(opt.msg_updatefailed);
      dlg.hide();
                    }
                   
                }.createDelegate(this),
               
                failure: function(){
                    alert(opt.msg_updatefailed);
                }.createDelegate(this)
            });
 
  },


        save : function(){

   if(get("_name",partTemplate).value==""){
    alert(opt.msg_notnull);
    return;
   }
   

            Emice.HolidayMaintain.saveToServer({

    params : {
                    name   : get("_name",partTemplate).value ,
     remarks  : get("_remarks",partTemplate).value,
     holidayDate : opt.holidayDate,
     holidayId : opt.holidayId
                },
           
                success: function(resp){
                  
                    if(Ext.util.JSON.decode(resp.responseText)!=false){

      dlg.hide();
      window.view();
   
                    }else{
                        alert(opt.msg_save);
      dlg.hide();
                    }
                   
                }.createDelegate(this),
               
                failure: function(){

                    alert(opt.msg_savefailed);
               
                }.createDelegate(this)
            });
 
  },

        deleteMe: function(){
            if(!confirm(opt.msg_suredel)){
                return;
            }


            Emice.HolidayMaintain.deleteFromServer({
               
                    params : {
                    holidayId : opt.holidayId
                 },
                    success: function(resp){
                    if(Ext.util.JSON.decode(resp.responseText)==false){
                        alert(opt.msg_delete);
      dlg.hide();
                    }else{                       
      dlg.hide();
      window.view();
                    }  
                 
                }.createDelegate(this),

                failure: function(){
               
                    alert(opt.msg_delfailed);
               
                }.createDelegate(this)
            });
        },


        saveToServer: function(opt2){
     
            Ext.Ajax.request(
            { 
           
                url: "holidayShow.do?method=addNewHoliday",
               
                params : opt2.params,
               
                method : "POST",
               
                success: opt2.success,
               
                failure: opt2.failure
             });

     },

        deleteFromServer: function(opt2){

   
            Ext.Ajax.request(
            {  
                url: "holidayShow.do?method=deleteHoliday",
           
                params : opt2.params,
               
                method : "POST",
               
                success: opt2.success,
               
                failure: opt2.failure
             });
       
     },


  updateHoliday: function(opt2){
     
            Ext.Ajax.request(
            { 
           
                url: "holidayShow.do?method=updateHoliday",
               
                params : opt2.params,
               
                method : "POST",
               
                success: opt2.success,
               
                failure: opt2.failure
             });

     },

   
 
  OKCANCEL : {ok:true, cancel:true},


        defaultTextHeight : 75,
        /**
         * The maximum width in pixels of the message box (defaults to 600)
         * @type Number
         */
        maxWidth : 600,
        /**
         * The minimum width in pixels of the message box (defaults to 100)
         * @type Number
         */
        minWidth : 100,
        /**
         * The minimum width in pixels of the message box progress bar if displayed (defaults to 250)
         * @type Number
         */
        minProgressWidth : 250,
       

        /**
         * An object containing the default button text strings that can be overriden for localized language support.
         * Supported properties are: ok, cancel, yes and no.
         * Customize the default text like so: Ext.MessageBox.buttonText.yes = "";
         * @type Object
         */
        buttonText : {
            ok : "Ok",
            cancel : "Cancel"
        }
    };
}();

 

 
分享到:
评论

相关推荐

    Ext.js教程和Ext.js API

    Ext.js 是一个强大的JavaScript库,专门用于构建富客户端的Web应用程序。它提供了丰富的用户界面组件和数据绑定功能,使得开发者可以构建出具有桌面应用级别的交互式网页应用。本教程和API文档聚焦于Ext.js 3.0版本...

    Ext.js 6 示例学习

    Ext.js 是一个强大的JavaScript库,专门用于构建富客户端的Web应用程序。它提供了丰富的用户界面组件和数据绑定机制,使得开发者可以构建出具有桌面应用级别的交互式网页应用。本压缩包包含两个PDF文档,分别是“Ext...

    EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档

    EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档...

    ext.js——打印

    打印功能 ext.js,打印功能 ext.js,打印功能 ext.js,打印功能 ext.js,打印功能 ext.js

    ext.js拖动3.4版本插件

    Ext JS 是一个强大的JavaScript应用程序框架,它提供了丰富的用户界面组件和功能,用于构建富客户端Web应用。在3.4版本中,它包含了对拖放功能的良好支持,这使得开发者能够轻松实现各种元素的动态交互,比如在布局...

    Ext.JS.4.First.Look_第1版__._Ext.JS.4.First.Look_.Loiane.Groner.文字版

    ### Ext.JS 4.0 第一印象:新特性与迁移指南 #### 一、书籍简介 本书《Ext.JS 4.0 第一印象》由 Loiane Groner 撰写,是一本针对 Ext.JS 4.0 的实用指南。书中详细介绍了 Ext.JS 4.0 的新特性,并提供了从 Ext.JS ...

    ext.js监听事件

    ext封装的太死板,里面有常用到的15个ext.js触发事件和监听事件,对ext了解的不是特别深入,大部分都是经常碰到的

    ext.js 4.2 demo+文件

    官方文件加示例,ext.js 4.2版本,后面就是凑字数了后面就是凑字数了

    extjs-Ext.ux.form.LovCombo下拉框

    至于"extjs"标签,这表明整个话题是关于EXTJS框架的,EXTJS是一个强大的JavaScript库,用于构建富客户端Web应用程序。它提供了丰富的组件库,包括表格、窗口、面板、菜单等,而`Ext.ux.form.LovCombo`就是EXTJS生态...

    EXT.js4.2实战

    EXT.js4.2是EXT JS框架的第4.2版本,是一个完整的前端开源JavaScript框架,用于开发基于Web的交互式应用程序。该框架提供了丰富的组件库,允许开发者创建具有丰富界面的单页应用程序(SPA)。EXT.js4.2不仅包括UI...

    Learning.Ext.JS.3.2

    Ext.JS是一种功能强大的JavaScript库,用于简化Web前端开发过程,允许开发者快速构建复杂的用户界面组件,如表格、树、菜单、工具栏等,同时提供丰富的主题和样式选项。 ### 构建动态桌面式用户界面 在《学习Ext....

    深入浅出Ext.JS.徐会生等

    《深入浅出Ext.JS》是由徐会生等人编著的一本关于Ext.JS的权威技术书籍,旨在帮助读者全面理解和掌握这一强大的JavaScript框架。Ext.JS是一个用于构建富客户端Web应用的开源库,它提供了丰富的组件库和强大的数据...

    深入浅出Ext.JS.徐会生例子

    Ext.JS是一个强大的JavaScript库,专门用于构建富客户端Web应用程序。它提供了丰富的用户界面组件、数据绑定机制和可扩展的架构,使得开发人员能够创建功能复杂的桌面级网页应用。"深入浅出Ext.JS.徐会生例子"可能是...

    Ext.js核心函数详解

    资源名称:Ext.js核心函数详解资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    [深入浅出Ext.JS].徐会生等

    [深入浅出Ext.JS].徐会生等.扫描版.一本比较ExtJS入门级教材。对学习EXTJS有帮助。

    Ext.js教程完整版

    3. 采用”适配器(adapters)“使得 Ext 和其他的 JavaScript 库共存; 4. 充分利用 AJAX 技术; 5. 在您的语言中展示 ExtJS 对象; 关于 Ext: 我们采用最新的的 Ext 2.x 版本, 1.x 版本到 2.x 版本的是一个重组的...

    Ext.ux.SwfUploadPanel.js

    `Ext.ux.SwfUploadPanel.js`是这样一个基于ExtJS和SwfUpload技术的插件,它实现了多文件上传的功能。这篇文章将深入探讨这个插件的工作原理、主要特点以及如何在实际项目中应用。 首先,`ExtJS`(全称为EXT ...

    Ext.get与Ext.fly的区别

    在Ext JS框架中,`Ext.get`和`Ext.fly`是两个非常重要的方法,它们主要用于操作DOM元素。理解这两个方法之间的区别以及如何使用它们对于开发高质量、高效率的应用程序至关重要。 #### 1. Ext.get **定义**:`Ext....

    Ext.Store的获取方法

    在Ext.js中,`Ext.Store`是用来管理数据的类,它通常与各种UI组件(如Grid、ComboBox等)关联,用于存储和检索数据。然而,获取`Ext.Store`的方式并不像获取其他Ext组件那样直接,因为Store并不是一个具有可视界面的...

Global site tag (gtag.js) - Google Analytics