/*
 Copyright 2009-2015 Luc Saffre
 License: BSD (see file COPYING for details)
*/

// lino.js --- generated Thu Sep 19 15:57:37 2019 by Lino Amici 18.8.0 for 000 (Anonymous).
Ext.BLANK_IMAGE_URL = '/static/ext-3.3.1/resources/images/default/s.gif';
LANGUAGE_CHOICES = [ [ "en", "English" ], [ "fr", "French" ] ];
MEDIA_URL = "/media/";
GEN_TIMESTAMP = 1568907014.2381399;

// hack to add a toCamel function, inspired by
// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/
String.prototype.toCamel = function(){
  //~ return this.replace(/(\-[a-z])/g, function($1){return $1.toUpperCase().replace('-','');});
  //~ return this;
  return this.replace(/([A-Z])([A-Z]+)/g, function(match,p1,p2,offset,string){
      //~ console.log("20131005 got ",arguments);
      return p1 + p2.toLowerCase();});
};

if (!Array.prototype.last) {
    Array.prototype.last = function () {
        return this[this.length - 1];
    }
}


// 20151126 hack to modify Ext.EventObjectImpl.isSpecialKey() which
// returned false for Ctrl-S when called from a keyup handler (namely
// ComboBox.onLoad)

Ext.EventObjectImpl.prototype.isSpecialKey = function(){
    // same as original except for one line
    var k = this.normalizeKey(this.keyCode);
    // return (this.type == 'keypress' && this.ctrlKey) ||
    return (this.ctrlKey) ||
        this.isNavKeyPress() ||
        (k == this.BACKSPACE) || 
        (k >= 16 && k <= 20) || 
        (k >= 44 && k <= 46);   
};





/* MonthPickerPlugin: thanks to keypoint @ sencha forum
   http://www.sencha.com/forum/showthread.php?74002-3.x-Ext.ux.MonthMenu&p=356860#post356860
*/
Ext.namespace('Ext.ux'); 

Ext.ux.MonthPickerPlugin = function() { 
    var picker; 
    var oldDateDefaults; 

    this.init = function(pk) { 
        picker = pk; 
        picker.onTriggerClick = picker.onTriggerClick.createSequence(onClick); 
        picker.getValue = picker.getValue.createInterceptor(setDefaultMonthDay).createSequence(restoreDefaultMonthDay); 
        picker.beforeBlur = picker.beforeBlur.createInterceptor(setDefaultMonthDay).createSequence(restoreDefaultMonthDay); 
    }; 

    function setDefaultMonthDay() { 
        oldDateDefaults = Date.defaults.d; 
        Date.defaults.d = 1; 
        return true; 
    } 

    function restoreDefaultMonthDay(ret) { 
        Date.defaults.d = oldDateDefaults; 
        return ret; 
    } 

    function onClick(e, el, opt) { 
        var p = picker.menu.picker; 
        p.activeDate = p.activeDate.getFirstDateOfMonth(); 
        if (p.value) { 
            p.value = p.value.getFirstDateOfMonth(); 
        } 

        p.showMonthPicker(); 
         
        if (!p.disabled) { 
            p.monthPicker.stopFx(); 
            p.monthPicker.show(); 

            p.mun(p.monthPicker, 'click', p.onMonthClick, p); 
            p.mun(p.monthPicker, 'dblclick', p.onMonthDblClick, p); 
            p.onMonthClick = p.onMonthClick.createSequence(pickerClick); 
            p.onMonthDblClick = p.onMonthDblClick.createSequence(pickerDblclick); 
            p.mon(p.monthPicker, 'click', p.onMonthClick, p); 
            p.mon(p.monthPicker, 'dblclick', p.onMonthDblClick, p); 
        } 
    } 

    function pickerClick(e, t) { 
        var el = new Ext.Element(t); 
        if (el.is('button.x-date-mp-cancel')) { 
            picker.menu.hide(); 
        } else if(el.is('button.x-date-mp-ok')) { 
            var p = picker.menu.picker; 
            p.setValue(p.activeDate); 
            p.fireEvent('select', p, p.value); 
        } 
    } 

    function pickerDblclick(e, t) { 
        var el = new Ext.Element(t); 
        if (el.parent() 
            && (el.parent().is('td.x-date-mp-month') 
            || el.parent().is('td.x-date-mp-year'))) { 

            var p = picker.menu.picker; 
            p.setValue(p.activeDate); 
            p.fireEvent('select', p, p.value); 
        } 
    } 
}; 

Ext.preg('monthPickerPlugin', Ext.ux.MonthPickerPlugin);  

// Override this function to put the listeners always on the keydown event regardless of the browser.See #2887
Ext.EventManager.getKeyEvent = function() {
  return 'keydown';
};

/**
JC Watsons solution (adapted to ExtJS 3.3.1 by LS) is elegant and simple:
`A "fix" for unchecked checkbox submission  behaviour
<http://www.sencha.com/forum/showthread.php?28449>`_

Added special handling for checkbox inputs. 
ExtJS defines disabled checkboxes `readonly`, not `disabled` as for other inputs.

*/
Ext.lib.Ajax.serializeForm = function(form) {
    // console.log('20170731 linolib.js serializeForm', form);
    var fElements = form.elements || (document.forms[form] || Ext.getDom(form)).elements, 
        hasSubmit = false, 
        encoder = encodeURIComponent, 
        name, 
        data = '', 
        type, 
        hasValue;

    Ext.each(fElements, function(element){
        name = element.name;
        type = element.type;

        if (!element.disabled && name && !(type == 'checkbox' && element.readonly)) {
            if (/select-(one|multiple)/i.test(type)) {
                Ext.each(element.options, function(opt){
                    if (opt.selected) {
                        hasValue = opt.hasAttribute ? opt.hasAttribute('value') : opt.getAttributeNode('value').specified;
                        data += String.format("{0}={1}&", encoder(name), encoder(hasValue ? opt.value : opt.text));
                    }
                });
            } else if (!(/file|undefined|reset|button/i.test(type))) {
                //~ if (!(/radio|checkbox/i.test(type) && !element.checked) && !(type == 'submit' && hasSubmit)) {
                if (!(type == 'submit' && hasSubmit)) {
                    if (type == 'checkbox') {
                        //~ console.log('20111001',element,'data += ',encoder(name) + '=' + (element.checked ? 'on' : 'off') + '&');
                        data += encoder(name) + '=' + (element.checked ? 'on' : 'off') + '&';
                    } else {
                        //~ console.log('20111001',element,'data += ',encoder(name) + '=' + encoder(element.value) + '&');
                        data += encoder(name) + '=' + encoder(element.value) + '&';
                    }
                    hasSubmit = /submit/i.test(type);
                }
            }
        //~ } else {
            //~ console.log(name,type,element.readonly);
        }
    });
    return data.substr(0, data.length - 1);
};



/*
Set a long timeout of fifteen minutes. 
See /blog/2012/0307
*/
Ext.Ajax.timeout = 15 * 60 * 1000; 

/*
 * Thanks to 
 * `huuze <http://stackoverflow.com/users/10040/huuuze>`_ for the question
 * and to 
 * `chrisv <http://stackoverflow.com/users/683808/chrisv>`_
 * for the answer on
 * http://stackoverflow.com/questions/3764589/how-do-i-include-django-1-2s-csrf-token-in-a-javascript-generated-html-form/5485616#5485616
 * 
 * */
 
Ext.Ajax.on('beforerequest', function (conn, options) {
   if (!(/^http:.*/.test(options.url) || /^https:.*/.test(options.url))) {
     if (typeof(options.headers) == "undefined") {
       options.headers = {'X-CSRFToken': Ext.util.Cookies.get('csrftoken')};
     } else {
       options.headers['X-CSRFToken'] = Ext.util.Cookies.get('csrftoken');
     }                        
   }
}, this);

// Ext.apply(Ext.EventManager, function(){
//     return{
//         getKeyEvent : function(){
//                //return useKeydown ? 'keydown' : 'keypress';
//            return 'keydown';
//            },
// }});

/* This probably worked, but was not used in real world.
My fix for the "Cannot set QuickTips dismissDelay to 0" bug,
see http://www.sencha.com/forum/showthread.php?183515 

*/
// Ext.override(Ext.QuickTip,{
//   showAt : function(xy){
//         var t = this.activeTarget;
//         // console.log("20171024 QuickTip.showAt",this.title,this.dismissDelay,t.dismissDelay);
//         if(t){
//             if(!this.rendered){
//                 this.render(Ext.getBody());
//                 this.activeTarget = t;
//             }
//             if(t.width){
//                 this.setWidth(t.width);
//                 this.body.setWidth(this.adjustBodyWidth(t.width - this.getFrameWidth()));
//                 this.measureWidth = false;
//             } else{
//                 this.measureWidth = true;
//             }
//             this.setTitle(t.title || '');
//             this.body.update(t.text);
//             this.autoHide = t.autoHide;
//             // bugfix by Luc 20120226
//             if (t.dismissDelay != undefined) this.dismissDelay = t.dismissDelay;
//             //~ this.dismissDelay = t.dismissDelay || this.dismissDelay;
//             if(this.lastCls){
//                 this.el.removeClass(this.lastCls);
//                 delete this.lastCls;
//             }
//             if(t.cls){
//                 this.el.addClass(t.cls);
//                 this.lastCls = t.cls;
//             }
//             if(this.anchor){
//                 this.constrainPosition = false;
//             }else if(t.align){ 
//                 xy = this.el.getAlignToXY(t.el, t.align);
//                 this.constrainPosition = false;
//             }else{
//                 this.constrainPosition = true;
//             }
//         }
//         Ext.QuickTip.superclass.showAt.call(this, xy);
//     }
// });

/*
Another hack. See /docs/blog/2012/0228
*/
Ext.Element.addMethods(
    function() {
        var VISIBILITY      = "visibility",
            DISPLAY         = "display",
            HIDDEN          = "hidden",
            NONE            = "none",
            XMASKED         = "x-masked",
            XMASKEDRELATIVE = "x-masked-relative",
            data            = Ext.Element.data;

        return {
            
            mask : function(msg, msgCls) {
                var me  = this,
                    dom = me.dom,
                    dh  = Ext.DomHelper,
                    EXTELMASKMSG = "ext-el-mask-msg",
                    el,
                    mask;
                // removed the following lines. See /docs/blog/2012/0228
                //~ if (!(/^body/i.test(dom.tagName) && me.getStyle('position') == 'static')) {
                    //~ console.log(20120228,dom.tagName,me);
                    //~ me.addClass(XMASKEDRELATIVE); 
                //~ }
                if (el = data(dom, 'maskMsg')) {
                    el.remove();
                }
                if (el = data(dom, 'mask')) {
                    el.remove();
                }

                mask = dh.append(dom, {cls : "ext-el-mask"}, true);
                data(dom, 'mask', mask);

                me.addClass(XMASKED);
                mask.setDisplayed(true);
                
                if (typeof msg == 'string') {
                    var mm = dh.append(dom, {cls : EXTELMASKMSG, cn:{tag:'div'}}, true);
                    data(dom, 'maskMsg', mm);
                    mm.dom.className = msgCls ? EXTELMASKMSG + " " + msgCls : EXTELMASKMSG;
                    mm.dom.firstChild.innerHTML = msg;
                    mm.setDisplayed(true);
                    mm.center(me);
                }
                
                
                if (Ext.isIE && !(Ext.isIE7 && Ext.isStrict) && me.getStyle('height') == 'auto') {
                    mask.setSize(undefined, me.getHeight());
                }
                
                return mask;
            }

            
        };
    }()
);



Ext.namespace('Lino');

Lino.insert_linoweb_version = function(p){
    p.lv = GEN_TIMESTAMP;
};


//~ Lino.subst_user_field = new Ext.form.ComboBox({});
//~ Lino.subst_user = null;
Lino.insert_subst_user = function(p){
    Lino.insert_linoweb_version(p);
    //~ console.log('20120714 insert_subst_user',Lino.subst_user,p);
    //~ if (Lino.subst_user_field.getValue()) {
    if (p.su) return;
    if (Lino.subst_user) {
        //~ p.su = Lino.subst_user_field.getValue();
        p.su = Lino.subst_user;
    //~ } else {
        //~ delete p.su;
    }
    //~ console.log('20120714 insert_subst_user -->',Lino.subst_user,p);
}

// Lino.login_window = null;



Lino.set_subst_user = function(id, name) {
    //~ console.log(20130723,'Lino.set_subst_user',id,name,Lino.current_window,Lino.viewport);
    Lino.subst_user = id;
    if (Lino.current_window) 
        Lino.current_window.main_item.set_base_param("su",id);
    if (Lino.viewport) 
        Lino.permalink_handler(Lino.current_window)();
}

Lino.goto_record_id = function(pk) {

    if (Lino.current_window)
        Lino.current_window.main_item.goto_record_id(pk);
}


//~ Lino.select_subst_user = function(cmp,rec,value){
    //~ Lino.subst_user=value;
    //~ console.log(20120713,rec);
//~ }
    
Lino.current_window = null;
Lino.window_history = Array();
    
Lino.chars2width = function(cols) {  return cols * 9; }
Lino.rows2height = function(cols) {  return cols * 20; }
Lino.perc2width = function(perc) {  
    // var w = Math.max(document.documentElement.clientWidth, window.innerWidth);
    // console.log("20151226", document, window, w);
    var w = Lino.viewport.getWidth();
    return w * perc / 100; 
}



Lino.MainPanel = {
  is_home_page: false
  ,auto_apply_params: true
  ,setting_param_values : false
  ,config_containing_window : function(wincfg) { }
  ,init_containing_window : function(win) { }
  ,is_loading : function() { 
      if (!this.rendered) return true;
      //~ return (Ext.select('.x-loading-msg').elements.length > 0);
      return true; 
    } 
  ,do_when_clean : function(auto_save,todo) { todo() }
  ,get_master_params : function() {
    var p = {}
    p['mt'] = this.content_type; 
    rec = this.get_current_record()
    if (rec) {
      if (rec.phantom) {
          p['mk'] = undefined; 
      }else{
          p['mk'] = rec.id; 
      }
    } else {
      p['mk'] = undefined;
    }
    //~ console.log('get_master_params returns',p,'using record',rec);
    return p;
  }
  ,get_permalink : function() {
    var p = Ext.apply({}, this.get_base_params());
    delete p.fmt;
    delete p.lv; 
    Ext.apply(p, this.get_permalink_params());
    
    if (this.toggle_params_panel_btn) {
        p.sp = this.toggle_params_panel_btn.pressed;
        //~ if (this.toggle_params_panel_btn.pressed == this.params_panel_hidden) {
          //~ p.sp = true;
        //~ }
    }
    
    //~ Lino.insert_subst_user(p);
     //~ p.fmt = 'html';
    //~ console.log('get_permalink',p,this.get_permalink_params());
    if (this.is_home_page)
        //~ var url = '';
        var url = '/';
    else 
        var url = this.get_permalink_url();
    if (p.su == null) 
        delete p.su;
    if (Ext.urlEncode(p)) url = url + "?" + Ext.urlEncode(p);
    return url;
  }
  ,get_record_url : function(record_id) {
      var url = '/api' + this.ls_url
      //~ var url = this.containing_window.config.url_data; // ls_url;
      url += '/' + (record_id === undefined ? this.default_record_id : String(record_id));
      //~ if (record_id !== undefined) url += '/' + String(record_id);
      //~ url += '/' + String(record_id);
      return url;
  }
  ,get_permalink_url : function() {
      return '/api' + this.ls_url;
  }
  ,get_permalink_params : function() {
      //~ return {an:'grid'};
      var p = {};
      if (this.action_name)
          p.an = this.action_name;
      this.add_param_values(p,false)
      return p;
  }
  /*

  Lino.MainPanel.set_status() : the status can have the following keys:

  - param_values : values of parameter fields
  - field_values : values of action parameter fields
  - base_params
  - record_id
  - active_tab
  - data_record
  - show_params_panel
  - current_page

   */
  ,set_status : function(status, requesting_panel) {}
  ,get_status : function() { return {}}
  ,refresh : function() {}
  ,get_base_params : function() {  // Lino.MainPanel
    var p = {};
    Lino.insert_subst_user(p);
    Lino.insert_linoweb_version(p);
    return p;
  }
  ,add_params_panel : function (tbar) {
      if (this.params_panel) {
        //~  20130923b
        //~ this.params_panel.autoHeight = true; // 20130924
        var t = this;
        var update = function() {
            var p = t.params_panel;
            //~ console.log("update", p.getSize().height,p.forceLayout,p.autoHeight);
            var w = t.get_containing_window();
            Lino.do_when_visible(w, function() {
                //~ p.doLayout(true); // doLayout(shallow, force)
                w.doLayout(true); // doLayout(shallow, force)
                //~ t.params_panel.on('afterlayout',update,t,{single:true});
            });
        };
        Lino.do_when_visible(this.params_panel, update);
        this.params_panel.on('show',update);
        this.params_panel.on('hide',update);
        //~ this.params_panel.on('bodyresize',update);
        this.params_panel.on('afterlayout',update);
        //~ this.params_panel.on('afterlayout',update,this,{single:true});
        //~ this.params_panel.on('bodyresize',update,this,{single:true});
        //~ this.params_panel.on('resize',update,this,{single:true});
        //~ this.params_panel.on('render',update,this,{single:true});
        
        // this.params_panel.on('render',
        //~ this.params_panel.on('afterlayout',update,this,{single:true,delay:200});
        //~ this.params_panel.on('bodyresize',update,this,{single:true,delay:200});
        this.toggle_params_panel_btn = new Ext.Button({ scope:this, 
          //~ text: "$_("[parameters]")", // gear
          iconCls: 'x-tbar-database_gear',
          tooltip:"Show or hide the table parameters panel",
          enableToggle: true,
          //~ pressed: ! this.params_panel.hidden,
          pressed: ! this.params_panel_hidden,
          toggleHandler: function(btn,state) { 
            //~ console.log("20120210 add_params_panel",state,this.params_panel);
            if (state) {
                this.params_panel.show();
            } else {
                this.params_panel.hide();
            }
            //~ this.params_panel.on('afterlayout',update,this,{single:true});
            //~ t.get_containing_window().doLayout();
            //~ this.params_panel.on('afterlayout',function() {
                //~ console.log("20130918 afterlayout");
                //~ t.get_containing_window().doLayout(); // doLayout(shallow, force)
            //~ },this,{single:true});
          }
        }); 
        tbar = tbar.concat([this.toggle_params_panel_btn]);

        if (this.auto_apply_params) {
            var refresh = function() {
                if (!t.setting_param_values) {
                    t._force_dirty = true; 
                    t.refresh();
                }
            }
            Ext.each(this.params_panel.fields,function(f) {
              //~ f.on('valid',function() {t.refresh()});
              if (f instanceof Ext.form.Checkbox) {
                  f.on('check',refresh);
//              } else if (f instanceof Ext.DatePicker) {
//                  f.on('select',refresh);
//                  console.log('Ext.DatePicker');
              } else if (f instanceof Ext.form.DateField) {
                  f.on('change',refresh);
              } else if (f instanceof Ext.form.TriggerField) {
                  f.on('select',refresh);
                  //~ f.on('change',refresh);
                  //~ f.on('valid',refresh);
              } else {
                  if (! f.on) 
                      console.log("20121010 no method 'on'",f);
                  else
                      f.on('change',refresh);
                }
              });
        }
      }
      return tbar;
  }
  ,add_param_values : function (p,force_dirty) {
    if (this.params_panel) {
      /* 
      * 20120918 add param_values to the request string 
      * *only if the params_form is dirty*.
      * Otherwise Actor.default_params() would never be used.
      *
      * 20121023 But IntegClients.params_default has non-empty default values. 
      * Users must have the possibility to make them empty.
      * 
      * 20130605 : added `force_dirty` parameter because Checkbox fields don't 
      * mark their form as dirty when check is fired.
      * 
      * 20130721 : `force_dirty` not as a parameter but as 
      * `this._force_dirty` because
      * 
      * 20130915 : both _force_dirty and force_dirty parameter are needed.
      * 
      */
      if (force_dirty || this._force_dirty || this.params_panel.form.isDirty()) {
      //~ if (this._force_dirty || this.params_panel.form.isDirty()) {
        p.pv = this.get_param_values();
        //~ console.log("20130923 form is dirty (",force_dirty,this._force_dirty,this.params_panel.form.isDirty(),")");
        //~ console.log("20130923 form is dirty",p);
      }else{
        //~ console.log("20130923 form not dirty:",this.params_panel.form);
        if (this.status_param_values) 
          p.pv = Lino.fields2array(
            this.params_panel.fields,this.status_param_values);
      }
      //~ if (!this.params_panel.form.isDirty()) return;
      //~ p.pv = this.get_param_values();
      //~ console.log("20120203 add_param_values added pv",p.pv,"to",p);
    }
    else if(this.use_detail_params_value){
      p.pv = Lino.fields2array(this.ownerCt.ownerCt.ownerCt.params_panel.fields);
      }
  },
  get_param_values : function() { // similar to get_field_values()
      return Lino.fields2array(this.params_panel.fields);
  },
  set_param_values : function(pv) {
    if (this.params_panel) {
      //~ console.log('20120203 MainPanel.set_param_values', pv);
      this.status_param_values = pv;
      //~ this.params_panel.form.suspendEvents(false);
      this.setting_param_values = true;
      if (pv) { 
          this.params_panel.form.my_loadRecord(pv);
      } else { 
        this.params_panel.form.reset(); 
      }
      this.setting_param_values = false;
      this._force_dirty = false; 
      //~ this.params_panel.form.resumeEvents();
    }
  }
};




Lino.Viewport = Ext.extend(Ext.Viewport, Lino.MainPanel);
Lino.Viewport = Ext.extend(Lino.Viewport, {
  layout : "fit"
  ,is_home_page : true
  ,initComponent : function(){
    Lino.Viewport.superclass.initComponent.call(this);
    this.on('render',function(){
      this.loadMask = new Ext.LoadMask(this.el,{msg:"Please wait..."});
      //~ console.log("20121118 Lino.viewport.loadMask",this.loadMask);
    },this);
  }
  ,refresh : function() {
      var caller = this;
      // console.log("20140829 Lino.Viewport.refresh()");
      if (caller.loadMask) caller.loadMask.show();
      var success = function(response) {
        if (caller.loadMask) caller.loadMask.hide();
        if (response.responseText) {
          var result = Ext.decode(response.responseText);
          //~ console.log('Lino.do_action()',action.name,'result is',result);
          if (result.html) {
              var cmp = Ext.getCmp('dashboard');
              // cmp.removeAll(true);  // 20140829
              cmp.update(result.html, true);
          }

        if (result.message) {
            //~ if (result.alert && ! gridmode) {
            if (result.alert) { // 20120628b
                //~ Ext.MessageBox.alert('Alert',result.alert_msg);
                if (result.alert === true) result.alert = "Alert";
                Ext.MessageBox.alert(result.alert, result.message, function(){eval(result.alert_eval_js)});
            } else {
                Lino.notify(result.message);
            }
        }
          if (result.notify_msg) Lino.notify(result.notify_msg);
          if (result.js_code) { 
            var jsr = result.js_code(caller);
            //~ console.log('Lino.do_action()',action,'returned from js_code in',result);
          };
        }
      };
      var p = {}
      Lino.insert_linoweb_version(p);
      var action = {
        url : '/api/main_html',
        waitMsg: "Please wait...",
        failure: Lino.ajax_error_handler(caller),
        success: success,
        method: 'GET',
        params: {}
      };
      Lino.insert_subst_user(action.params);
      Ext.Ajax.request(action);
    
  }
});




Lino.open_window = function(win, st, requesting_panel) {
  // console.log("20140831 Lino.open_window()", win, win.el.getBox());
  var cw = Lino.current_window;
  if (cw) {
    // console.log("20140829 Lino.open_window() save current status",
    //             cw.main_item.get_status());
    Lino.window_history.push({
      window:cw,
      status:cw.main_item.get_status()
    });
  }
  Lino.current_window = win;
  //~ if (st.su) 
      //~ Lino.subst_user_field.setValue(st.su);
  win.main_item.set_status(st, requesting_panel);
  // win.toFront();
  win.show();
};

Lino.load_url = function(url) {
    //~ foo.bar.baz = 2; 
    //~ console.log("20121120 Lino.load_url()");
    //~ Lino.body_loadMask.show();
    Lino.viewport.loadMask.show();
    //~ location.replace(url);
    document.location = url;
}

Lino.close_window = function(status_update, norestore) {
  // norestore is true when called by handle_action_result() who 
  // will call set_status() itself later
  var cw = Lino.current_window;
  var ww = Lino.window_history.pop();
  var retval = cw.main_item.requesting_panel;
  // console.log(
  //     "20150514 Lino.close_window() going to close", cw.title,
  //     "previous is", ww, 
  //     "norestore is", norestore,
  //     "retval is", retval);
  if (ww) {
    //~ if (status_update) Ext.apply(ww.status,status_update);
    if(!norestore) {
        if (status_update) status_update(ww);
        // 20180725 ww.window.main_item.set_status(ww.status , cw.id);
        ww.window.main_item.set_status(ww.status , retval);
    }
    Lino.current_window = ww.window;
  } else {
      Lino.current_window = null;
      // new since 20140829:
      if(!norestore) { Lino.viewport.refresh(); }
  }
  if (cw) cw.hide_really();
  return retval;
};

Lino.kill_current_window = function() {
  // console.log("20140418 Lino.kill_current_window()");
  var cw = Lino.current_window;
  Lino.current_window = null;
  if (cw) cw.hide_really();
};

Lino.reload = function() {
    // First close all windows to ensure all changes are saved
    Lino.close_all_windows();

    // Then reload current view
    var url =  "/"

    var p = {};
    Lino.insert_subst_user(p)
    if (Ext.urlEncode(p))
        url = url + "?" + Ext.urlEncode(p);

    Lino.load_url(url);
}

Lino.handle_home_button = function() {
  if (Lino.window_history.length == 0)
      Lino.reload();
  else
      Lino.close_all_windows();
}

Lino.close_all_windows = function() {
    while (Lino.window_history.length > 0) {
        Lino.close_window();
    }
}

Lino.calling_window = function() {
    if (Lino.window_history.length) 
        return Lino.window_history[Lino.window_history.length-1];
}

//~ Lino.WindowAction = function(mainItemClass,windowConfig,mainConfig,ppf) {
Lino.WindowAction = function(windowConfig,main_item_fn) {
    //~ if(!mainConfig) mainConfig = {};
    //~ mainConfig.is_main_window = true;
    this.windowConfig = windowConfig;
    this.main_item_fn = main_item_fn;
    //~ if (ppf) mainConfig.params_panel.fields = ppf;
    //~ this.mainConfig = mainConfig;
    //~ this.mainItemClass = mainItemClass;
};

Lino.WindowAction = Ext.extend(Lino.WindowAction,{
    window : null,
    //~ mainItemClass: null,
    get_window : function() {
      //~ if(mainConfig) Ext.apply(this.mainConfig,mainConfig);
      // if (this.window == null || this.window.isDestroyed)  { // 20140829
      // if (this.window == null || this.window.getBox().width == 0)  { // 20140829
      if (this.window == null)  {
      // if (true)  {
          //~ this.windowConfig.main_item = new this.mainItemClass(this.mainConfig);
          this.windowConfig.main_item = this.main_item_fn();
          this.window = new Lino.Window(this.windowConfig);
      }
      return this.window;
    },
    run : function(requesting_panel, status) {
      // console.log('20140829 window_action.run()', this)
      Lino.open_window(this.get_window(), status, requesting_panel);
    }
  
});


Lino.PanelMixin = {
  get_containing_window : function (){
      if (this.containing_window) return this.containing_window;
      return this.containing_panel.get_containing_window();
  }
  ,set_window_title : function(title) {
    //~ this.setTitle(title);
    var cw = this.get_containing_window();

    //~ if (cw) {
    //~ if (cw && cw.closable) {
    if (cw && !cw.main_item.hide_window_title) {
      //~ console.log('20111202 set_window_title(',title,') for',this.containing_window);
      //~ if (! this.containing_window.rendered) console.log("WARNING: not rendered!");
      cw.setTitle(title);
    //~ } else {
      //~ document.title = title;
    }
    //~ else console.log('20111202 not set_window_title(',title,') for',this);
  }
  
};


// Lino.status_bar = new Ext.ux.StatusBar({defaultText:'Lino version 19.9.0.'});






/* 
  Originally copied from Ext JS Library 3.3.1
  Modifications by Luc Saffre : 
  - rendering of phantom records
  - fire afteredit event
  - react on dblclcik, not on single click

 */
Lino.CheckColumn = Ext.extend(Ext.grid.Column, {

    processEvent : function(name, e, grid, rowIndex, colIndex){
        //~ console.log('20110713 Lino.CheckColumn.processEvent',name)
        if (name == 'click') {
        //~ if (name == 'mousedown') {
        //~ if (name == 'dblclick') {
            return this.toggleValue(grid, rowIndex, colIndex);
        } else {
            return Ext.grid.ActionColumn.superclass.processEvent.apply(this, arguments);
        }
    },
    
    toggleValue : function (grid,rowIndex,colIndex) {
        var record = grid.store.getAt(rowIndex);
        var dataIndex = grid.colModel.getDataIndex(colIndex);
        // 20120514
        //~ if(record.data.disabled_fields && record.data.disabled_fields[dataIndex]) {
          //~ Lino.notify("This field is disabled");
          //~ return false;
        //~ }
      
        //~ if (dataIndex in record.data['disabled_fields']) {
            //~ Lino.notify("This field is disabled.");
            //~ return false;
        //~ }
        var startValue = record.data[dataIndex];
        var value = !startValue;
        //~ record.set(this.dataIndex, value);
        var e = {
            grid: grid,
            record: record,
            field: dataIndex,
            originalValue: startValue,
            value: value,
            row: rowIndex,
            column: colIndex,
            cancel: false
        };
        if(grid.fireEvent("beforeedit", e) !== false && !e.cancel){
        //~ if(grid.fireEvent("validateedit", e) !== false && !e.cancel){
            record.set(dataIndex, value);
            delete e.cancel;
            grid.fireEvent("afteredit", e);
        }
        return false; // Cancel event propagation
    },

    renderer : function(v, p, record){
        if (record.phantom) return '';
        p.css += ' x-grid3-check-col-td'; 
        return String.format('<div class="x-grid3-check-col{0}">&#160;</div>', v ? '-on' : '');
    }

    // Deprecate use as a plugin. Remove in 4.0
    // init: Ext.emptyFn
});

// register ptype. Deprecate. Remove in 4.0
// Ext.preg('checkcolumn', Lino.CheckColumn);

// backwards compat. Remove in 4.0
// Ext.grid.CheckColumn = Lino.CheckColumn;

// register Column xtype
Ext.grid.Column.types.checkcolumn = Lino.CheckColumn;


/* 20110725 : 
Lino.on_tab_activate is necessary 
in contacts.Person.2.dtl 
(but don't ask me why...)
*/
Lino.on_tab_activate = function(item) {
  //~ console.log('activate',item); 
  if (item.rendered && item.doLayout) item.doLayout();
  //~ if (item.rendered) item.doLayout();
}

Lino.TimeField = Ext.extend(Ext.form.TimeField,{
  format: 'H:i',
  altFormats: 'g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H|gi a|hi a|giA|hiA|gi A|hi A|Hi|g.ia|g.iA|g.i a|g.i A|h.i|g.i|H.i',
  increment: 15
  });
Lino.DateField = Ext.extend(Ext.form.DateField,{
  //~ boxMinWidth: Lino.chars2width(15), // 20131005 changed from 11 to 15
  format: 'd.m.Y',
  altFormats: 'd/m/Y|Y-m-d'
  });
Lino.DatePickerField = Ext.extend(Ext.DatePicker,{
  //~ boxMinWidth: Lino.chars2width(11),
  format: 'd.m.Y',
  //~ altFormats: 'd/m/Y|Y-m-d'
  formatDate : function(date){
      //~ console.log("20121203 formatDate",this.name,date);
      return Ext.isDate(date) ? date.dateFormat(this.format) : date;
  }
  });
Lino.DateTimeField = Ext.extend(Ext.ux.form.DateTime,{
  dateFormat: 'd.m.Y',
  timeFormat: 'H:i'
  //~ ,hiddenFormat: 'd.m.Y H:i'
  });
Lino.URLField = Ext.extend(Ext.form.TriggerField,{
  triggerClass : 'x-form-search-trigger',
  //~ triggerClass : 'x-form-world-trigger',
  vtype: 'url',
  onTriggerClick : function() {
    //~ console.log('Lino.URLField.onTriggerClick',this.value)
    //~ document.location = this.value;
    window.open(this.getValue(),'_blank');
  }
});
Lino.IncompleteDateField = Ext.extend(Ext.form.TextField,{
  //~ regex: /^-?\d+-[01]\d-[0123]\d$/,
  //~ regex: /^[0123]\d\.[01]\d\.-?\d+$/,
  maxLength: 10,
  boxMinWidth: Lino.chars2width(10),
  regex: /^[0123]?\d\.[01]?\d\.-?\d+$/,
  regexText: 'Enter a date in format YYYY-MM-DD (use zeroes for unknown parts).'
  });


//~ Lino.make_dropzone = function(cmp) {
    //~ cmp.on('render', function(ct, position){
      //~ ct.el.on({
        //~ dragenter:function(event){
          //~ event.browserEvent.dataTransfer.dropEffect = 'move';
          //~ return true;
        //~ }
        //~ ,dragover:function(event){
          //~ event.browserEvent.dataTransfer.dropEffect = 'move';
          //~ event.stopEvent();
          //~ return true;
        //~ }
        //~ ,drop:{
          //~ scope:this
          //~ ,fn:function(event){
            //~ event.stopEvent();
            //~ console.log(20110516);
            //~ var files = event.browserEvent.dataTransfer.files;
            //~ if(files === undefined){
              //~ return true;
            //~ }
            //~ var len = files.length;
            //~ while(--len >= 0){
              //~ console.log(files[len]);
              //~ // this.processDragAndDropFileUpload(files[len]);
            //~ }
          //~ }
        //~ }
      //~ });
    //~ });
//~ };

//~ Lino.FileUploadField = Ext.ux.form.FileUploadField;

Lino.FileUploadField = Ext.extend(Ext.ux.form.FileUploadField,{
    ctCls :"field-margin",
    unused_onRender : function(ct, position){
      Lino.FileUploadField.superclass.onRender.call(this, ct, position);
      this.el.on({
        dragenter:function(event){
          event.browserEvent.dataTransfer.dropEffect = 'move';
          return true;
        }
        ,dragover:function(event){
          event.browserEvent.dataTransfer.dropEffect = 'move';
          event.stopEvent();
          return true;
        }
        ,drop:{
          scope:this
          ,fn:function(event){
            event.stopEvent();
            //~ console.log(20110516);
            var files = event.browserEvent.dataTransfer.files;
            if(files === undefined){
              return true;
            }
            var len = files.length;
            while(--len >= 0){
              console.log(files[len]);
              //~ this.processDragAndDropFileUpload(files[len]);
            }
          }
        }
      });
    }
});

Lino.FileField = Ext.extend(Ext.form.TriggerField,{
  triggerClass : 'x-form-search-trigger',
  editable: false,
  onTriggerClick : function() {
    //~ console.log('Lino.URLField.onTriggerClick',this.value)
    //~ document.location = this.value;
    if (this.getValue()) window.open(MEDIA_URL + '/'+this.getValue(),'_blank');
  }
});

Lino.file_field_handler = function(panel,config) {
  if (panel.action_name == 'insert') {
      panel.has_file_upload = true;


      // config.value = '<br/><br/>';

      var f = new Lino.FileUploadField(config);
      //~ Lino.make_dropzone(f);
      return f;
      //~ return new Ext.ux.form.FileUploadField(config);
      //~ return new Lino.FileField(config);
      
  } else {
      //~ return new Lino.URLField(config);
      return new Lino.FileField(config);
  }
}

Lino.VBorderPanel = Ext.extend(Ext.Panel,{
    constructor : function(config) {
      config.layout = 'border';
      delete config.layoutConfig;
      Lino.VBorderPanel.superclass.constructor.call(this,config);
      for(var i=0; i < this.items.length;i++) {
        var item = this.items.get(i);
        if (this.isVertical(item) && item.collapsible) {
          item.on('collapse',this.onBodyResize,this);
          item.on('expand',this.onBodyResize,this);
        }
      }
    },
    isVertical : function(item) {
       return (item.region == 'north' || item.region == 'south' || item.region == 'center');
    },
    onBodyResize: function(w, h){
        //~ console.log('VBorderPanel.onBodyResize',this.title)
      if (this.isVisible()) { // to avoid "Uncaught TypeError: Cannot call method 'getHeight' of undefined."
        var sumflex = 0;
        var availableHeight = this.getInnerHeight();
        var me = this;
        this.items.each(function(item){
          if (me.isVertical(item)) {
              if (item.collapsed || item.flex == 0 || item.flex === undefined) {
                  if (item.rendered) availableHeight -= item.getHeight();
              } else {
                  sumflex += item.flex;
              }
          } 
          
        });
        //~ for(var i=0; i < this.items.length;i++) {
          //~ var item = this.items.get(i);
          //~ // if (this.isVertical(item) && item.getResizeEl()) {
          //~ if (this.isVertical(item)) {
              //~ if (item.collapsed || item.flex == 0 || item.flex === undefined) {
                  //~ // item.syncSize()
                  //~ // item.doLayout()
                  //~ // if (item.region == "north") console.log('region north',item.getHeight(),item.id, item);
                  //~ // if (item.getHeight() == 0) console.log(20100921,'both flex and getHeight() are 0!');
                  //~ availableHeight -= item.getHeight();
              //~ } else {
                  //~ sumflex += item.flex;
                  //~ // console.log(item.flex);
              //~ }
          //~ } 
          //~ // else console.log('non-vertical item in VBoderPanel:',item)
        //~ }
        var hunit = availableHeight / sumflex;
        //~ console.log('sumflex=',sumflex,'hunit=',hunit, 'availableHeight=',availableHeight);
        for(var i=0; i < this.items.length;i++) {
          var item = this.items.get(i);
          if (this.isVertical(item)) {
              if (item.flex != 0 && ! item.collapsed) {
                  item.setHeight(hunit * item.flex);
                  //~ console.log(item.region,' : height set to',item.getHeight());
              }
          }
          //~ else console.log('non-vertical item in VBoderPanel:',item)
        }
      }
      Lino.VBorderPanel.superclass.onBodyResize.call(this, w, h);
    }
});


/*
  modifications to the standard behaviour of a CellSelectionModel:
  
*/
Ext.override(Ext.grid.CellSelectionModel, {
//~ var dummy = {

    getRowFrompx : function(px){
        g = this.grid;
        rows = g.getView().getRows();
        total_height = 0,
        searched_row = 0;
        for (row in rows){
            if (total_height < px){
                searched_row += 1;
                total_height += rows[row].clientHeight;
                }
            else{
                return searched_row;
            }
        }

    },
    handleKeyDown : function(e){
        /* removed because F2 wouldn't pass
        if(!e.isNavKeyPress()){
            return;
        }
        */
        //~ console.log('handleKeyDown',e)
        var k = e.getKey(),
            g = this.grid,
            s = this.selection,
            sm = this,
            walk = function(row, col, step){
                return g.walkCells(
                    row,
                    col,
                    step,
                    g.isEditor && g.editing ? sm.acceptsNav : sm.isSelectable, 
                    sm
                );
            },
            cell, newCell, r, c, ae;
            t = g.getTopToolbar();
            if (t != undefined){
                d = t.getPageData();
            }
            else{
                d = undefined;
            }

        switch(k){
            case e.ESC:
                break;
            default:
                // e.stopEvent(); // removed because Browser keys like Alt-Home, Ctrl-R wouldn't work
                break;
        }

        if(!s){
            cell = walk(0, 0, 1); 
            if(cell){
                this.select(cell[0], cell[1]);
            }
            return;
        }

        cell = s.cell;
        r = cell[0];    
        c = cell[1];    
        
        switch(k){
            case e.TAB:
                if(e.shiftKey){
                    newCell = walk(r, c - 1, -1);
                    // prev + [-1 -1]
                }else{
                    newCell = walk(r, c + 1, 1);
                }
                e.stopEvent(); // Don't allow tab to cause grid to loose focus
                if(!newCell && d != undefined){
                    var self = this;
                    var new_page = e.shiftKey? Math.max(1, d.activePage -1) : Math.min(d.pages, d.activePage +1) ;
                    if (d.activePage !== new_page) {
                        t.on('change', function (tb, pageData) {
                            if (e.shiftKey) {
                                self.select(
                                    Math.min(r, g.store.getCount() - 1),
                                    g.getColumnModel().getColumnsBy(function (col) {return !col.hidden}).last().colIndex
                                );
                            }else {
                                self.select(0,0);
                            }
                            //~ console.log('change',r,c);
                        }, this, {single: true});

                        if (e.shiftKey) {
                            t.movePrevious();
                        } else {
                            t.moveNext();
                        }
                        return;}
                }
                break;
            case e.HOME:
                if (!(g.isEditor && g.editing)) {
                    if (!e.hasModifier()) {
                        newCell = [r, 0];
                        //~ console.log('home',newCell);
                        break;
                    } else {
                        var activePage = Math.ceil((t.cursor + t.pageSize) / t.pageSize);
                        if (e.ctrlKey && activePage > 1) {
                            e.stopEvent();
                            var self = this;
                            t.on('change', function (tb, pageData) {
                                self.select(0, c);
                                //~ console.log('change',r,c);
                            }, this, {single: true});

                            t.moveFirst();
                            return;
                        }
                        newCell = [0, c];
                        break;
                    }
                }
            case e.END:
                if (!(g.isEditor && g.editing)) {
                    if (!e.hasModifier()) {
                        newCell = [r, g.getColumnModel().getColumnsBy(function (col) {
                            return !col.hidden
                        }).last().colIndex];
                        //~ console.log('end',newCell);
                        break;
                    } else if (d != undefined){
                        if (e.ctrlKey && d.activePage < d.pages) {
                            e.stopEvent();
                            var self = this;
                            t.on('change', function (tb, pageData) {
                                var r = g.store.getCount() - 1;
                                self.select(r, c);
                                //~ console.log('change',r,c);
                            }, this, {single: true});
                            t.moveLast();
                            return;
                        } else {
                            newCell = [g.store.getCount() - 1, c];
                            //~ console.log('ctrl-end',newCell);
                            break;
                        }
                    }
                }
            case e.PAGE_UP:
            case e.PAGE_DOWN:
                e.stopEvent();
                var self = this;
                var scroller = g.getView().scroller;
                var box = scroller.getBox();
                //console.log('box',box);
                var viewSize = scroller.getSize(); // EXP {width: 547, height: 500}
//                console.log('viewSize',viewSize);
                var scrollPosition = scroller.getScroll(); // EXP {left: 0, top: 135}
//                console.log('scrollPosition',scrollPosition);
//                if (box.height < box.bottom){
                var direction  = e.PAGE_DOWN === k ? 'b' : 'u';
                scroller.scroll(direction, box.y,false);
//                }
                var new_scrollPosition = scroller.getScroll(); // EXP {left: 0, top: 135}
//                console.log('new_scrollPosition',new_scrollPosition);
                if (new_scrollPosition.top != scrollPosition.top){
                    newcellpx = e.PAGE_DOWN === k ? box.height : new_scrollPosition.top;
                    var newx = this.getRowFrompx(newcellpx);
//                    console.log('newx',newx);
                    newCell = walk(newx,c,1)
                    break;
                }
//                g.getView().scroller.scroll('b', 99999,true);
//                g.getView().scroller.isScrollable();
                if (d != undefined){
                    var new_page = e.PAGE_DOWN === k ? Math.min(d.pages, d.activePage +1) : Math.max(1, d.activePage -1);
                    if (d.activePage !== new_page) {
                        t.on('change', function (tb, pageData) {
                            self.select(Math.min(r, g.store.getCount() - 1), c);
                            //~ console.log('change',r,c);
                        }, this, {single: true});
                        if(k === e.PAGE_DOWN){
                            t.moveNext();
                        }else{
                            t.movePrevious();
    //                        Go to the bottom of the new page
                            var scroller = g.getView().scroller;
                            var newbox = scroller.getBox();
                            scroller.scroll('b', newbox.bottom,false);
                        }
                    }
                    return;
                }else{ // same page, goto top / bottom row, keep c same
                    r = e.PAGE_DOWN === k ? g.store.getCount() - 1 : 0;
                    newCell = [r, c]
                }
                break;
            case e.DOWN:
                newCell = walk(r + 1, c, 1);
                break;
            case e.UP:
                newCell = walk(r - 1, c, -1);
                break;
            case e.RIGHT:
                newCell = walk(r, c + 1, 1);
                break;
            case e.LEFT:
                newCell = walk(r, c - 1, -1);
                break;
            case e.F2:
                if (!e.hasModifier()) {
                    if (g.isEditor && !g.editing) {
                        g.startEditing(r, c);
                        e.stopEvent();
                        return;
                    }
                    break;
                }
            case e.INSERT:
                if (!e.hasModifier()) {
                    if (g.ls_insert_handler && !g.editing) {
                        e.stopEvent();
                        Lino.show_insert(g);
                        return;
                    }
                    break;
                }
            case e.DELETE:
                if (!e.hasModifier()) {
                    if (!g.editing) {
                        e.stopEvent();
                        // Lino.delete_selected(g);
                        Lino.row_action_handler('delete_selected','GET',null)(g);
                        return;
                    }
                    break;
                }

            case e.ENTER:
                e.stopEvent();
                g.onCellDblClick(g,r,c);
                break;

            default:
                g.handle_key_event(e);
                
        }
        

        if(newCell){
          e.stopEvent();
          r = newCell[0];
          c = newCell[1];
          this.select(r, c); 
          if(g.isEditor && g.editing){ 
            ae = g.activeEditor;
            if(ae && ae.field.triggerBlur){
                ae.field.triggerBlur();
            }
            g.startEditing(r, c);
          }
        //~ } else if (g.isEditor && !g.editing && e.charCode) {
        //~ // } else if (!e.isSpecialKey() && g.isEditor && !g.editing) {
            //~ g.set_start_value(String.fromCharCode(e.charCode));
            //~ // g.set_start_value(String.fromCharCode(k));
            //~ // g.set_start_value(e.charCode);
            //~ g.startEditing(r, c);
            //~ // e.stopEvent();
            //~ return;
        // } else {
          // console.log('20120513',e,g);
        }
        
    }


//~ };
});

 

function PseudoConsole() {
    this.log = function() {};
};
if (typeof(console) == 'undefined') console = new PseudoConsole();

Lino.notify = function(msg) {
  if (msg == undefined) msg = ''; else console.log(msg);
  
    if (msg == undefined) return;
    // Lino.alert(msg);
  
};

Lino.alert = function(msg) {
  Ext.MessageBox.alert('Notify',msg);
};


//~ Lino.show_about = function() {
  //~ new Ext.Window({
    //~ width: 400, height: 400,
    //~ title: "About",
    //~ html: '<a href="http://www.extjs.com" target="_blank">ExtJS</a> version ' + Ext.version
  //~ }).show();
//~ };

function obj2str(o) {
  if (typeof o != 'object') return String(o);
  var s = '';
  for (var p in o) {
    s += p + ': ' + obj2str(o[p]) + '\n';
  }
  return s;
}

Lino.on_store_exception = function (store,type,action,options,response,arg) {
  //~ throw response;
  console.log("on_store_exception: store=",store,
    "type=",type,
    "action=",action,
    "options=",options,
    "response=",response,
    "arg=",arg);
    if (arg != undefined && arg) { console.log(arg.stack)};
    var msg = "There was a problem with the database connection.";
    if (response.responseText)
        msg += '<br/>' + response.responseText
    msg += '<br/>' + "If the error persists, try reloading the browser page ([SHIFT+CTRL+R] in Firefox)."
    Ext.Msg.alert("Database problem", msg );
    
};

//~ Lino.on_submit_success = function(form, action) {
   //~ Lino.notify(action.result.message);
   //~ this.close();
//~ };

Lino.on_submit_failure = function(form, action) {
    //~ Lino.notify();
  // action may be undefined
    switch (action.failureType) {
        case Ext.form.Action.CLIENT_INVALID:
            Ext.Msg.alert("Client-side failure", "Please check all fields of this form before submitting");
            break;
        case Ext.form.Action.CONNECT_FAILURE:
            Ext.Msg.alert("Connection failure", "Ajax communication failed");
            break;
        case Ext.form.Action.SERVER_INVALID:
            Ext.Msg.alert("Server-side failure", action.result.message);
   }
};



/*
Lino.save_wc_handler = function(ww) {
  return function(event,toolEl,panel,tc) {
    var pos = panel.getPosition();
    var size = panel.getSize();
    wc = ww.get_window_config();
    Ext.applyIf(wc,{ 
      x:pos[0],y:pos[1],height:size.height,width:size.width,
      maximized:panel.maximized});
    Lino.do_action(ww,{url:'/window_configs/'+ww.config.permalink_name,params:wc,method:'POST'});
  }
};

*/

Lino.show_in_own_window_button = function(handler) {
  return {
    qtip: "Show this panel in own window", 
    id: "up",
    handler: function(event,toolEl,panel, tc) {
      //~ console.log('20111206 report_window_button',panel,handler);
      handler.run(null,{base_params:panel.containing_panel.get_master_params()});
    }
  }
}

Lino.action_handler = function (panel, on_success, on_confirm) {
  return function (response) {
      if (!panel) { 
          if (Lino.current_window) 
              panel = Lino.current_window.main_item;
          else panel = Lino.viewport;
      }
      
    if (panel.loadMask) panel.loadMask.hide(); // 20120211
    if (!response.responseText) return ;
    var result = Ext.decode(response.responseText);
    Lino.handle_action_result(panel, result, on_success, on_confirm);
  }
};

Lino.handle_action_result = function (panel, result, on_success, on_confirm) {

    // console.log('20150514 Lino.handle_action_result()', result);
    
    // if (panel instanceof Lino.GridPanel) {
    //     gridmode = true;
    // } else {
    //     gridmode = false;
    // }

    //~ if (result.goto_record) {
        //~ var js = "Lino." + result.goto_record[0] + '.detail.run';
        //~ var h = eval(js);
        //~ h(panel,{record_id:result.goto_record[1]});
    //~ }
    
    if (result.goto_url) {
        document.location = result.goto_url;
        if (result.close_window) Lino.close_window();
        return;
    }
    
    if (result.xcallback) {
        //~ var config = {title:"Confirmation"};
        var config = {cls:"l-confirmation", title:result.xcallback.title};
        //~ config.buttons = Ext.MessageBox.YESNOCANCEL;
        //~ config.buttons = Ext.MessageBox.YESNO;
        var p = {};
        Lino.insert_subst_user(p);
        config.buttons = result.xcallback.buttons;
        config.msg = result.message;
        config.fn = function(buttonId, text, opt) {
          panel.loadMask.show(); 
          //~ Lino.insert_subst_user(p);
          Ext.Ajax.request({
            method: 'GET',
            url: '/callbacks/'
                  + result.xcallback.id + '/' + buttonId,
            params: p,
            failure: Lino.ajax_error_handler(panel),
            success: Lino.action_handler(panel, on_success, on_confirm)
          });
        }
        Ext.MessageBox.show(config);
        return;
    }

    // `record_id` and/or `data_record` both mean "display the detail
    // of this record". 
    
    if(result.detail_handler_name) {
        // TODO: make sure that result.detail_handler_name is secure
        var detail_handler = eval("Lino." + result.detail_handler_name);
    }
    var ns = {};  // new status
    if (result.close_window) {
        
        // Subsequent processing expects that `panel` is "the current
        // panel". But if we close the window, `panel` must point
        // to the previous window. Note the case of an insert window
        // that has been invoked by double-clicking on the phantom row
        // of a slave table in a detail window. In that case we want
        // `panel` to become the grid panel of the slave table who
        // called the insert window, not the master's detail form
        // panel.  When the insert window has been called by an action
        // link (e.g. generated using ar.insert_button), then
        // Lino.close_window can return `undefined`.

        if(result.record_id || result.data_record) {
            var ww = Lino.calling_window();
            if (ww && ww.window.main_item instanceof Lino.FormPanel) {
                if (ww.window.main_item.ls_detail_handler == detail_handler) {
                    ns.record_id = result.record_id;
                    ns.data_record = result.data_record;
                    // console.log("20150514 use new status.");
                }
            }
        }

        panel = Lino.close_window(
            function(ww) { Ext.apply(ww.status, ns) }); 
        if (!panel) 
            // console.log("20150514 close_window returned no panel.");
            if (Lino.current_window)
                panel = Lino.current_window.main_item;

    }

    if(result.record_id || result.data_record) {
        if (! (ns.record_id || ns.data_record)) {
          // no close_window, so we must update record data in current
          // panel (if it is the detail_handler for this record) or
          // open the detail handler.
          var st = {
              record_id: result.record_id,
              data_record: result.data_record
          };
          if (result.active_tab) st.active_tab = result.active_tab;
          if (panel instanceof Lino.FormPanel 
              && panel.ls_detail_handler == detail_handler) 
            {
              // console.log("20150514 use panel.set_status().");
              panel.set_status(st);
          } else {
              // console.log("20150514 run detail_handler.");
              if (panel !== undefined && panel.ls_detail_handler == detail_handler){st.base_params = panel.get_base_params();}
              detail_handler.run(null, st);
          }

          // if (panel instanceof Lino.FormPanel 
          //     && panel.ls_url == result.actor_url) {
          //     // console.log("20140506 case 2 it's a FormPanel:", panel);
          //     panel.set_status({
          //         record_id: result.record_id,
          //         data_record: result.data_record});
          // } else if (panel.ls_detail_handler 
          //            && panel.ls_url == result.actor_url) {
          //     // console.log("20140506 case 4");
          //     panel.ls_detail_handler.run(null, {
          //         record_id: result.record_id,
          //         data_record: result.data_record,
          //         base_params: panel.get_base_params()});
          // } else {
          //     result.refresh_all = true;
          //     console.log("20140604 case 6", result.actor_url);
          // }
        }
    }

    // `eval_js` must get handled after `close_window` because it
    // might ask to open a new window (and we don't want to close that
    // new window).  It must execute *before* any MessageBox,
    // otherwise the box would get hidden by a window that opens
    // afterwards.

    if (result.eval_js) {
        //~ console.log(20120618,result.eval_js);
        eval(result.eval_js);
    }
    
    if (on_success && result.success) {
        // console.log("20140430 handle_action_result calls on_success", 
        //             on_success);
        on_success(result);
    }
    
    if (result.info_message) {
        console.log(result.info_message);
    }
    
    if (result.warning_message) {
        if (!result.alert) result.alert = "Warning";
        Ext.MessageBox.alert(result.alert, result.warning_message);
    }
    
    if (result.message) {
        //~ if (result.alert && ! gridmode) {
        if (result.alert) { // 20120628b 
            //~ Ext.MessageBox.alert('Alert',result.alert_msg);
            if (result.alert === true) result.alert = "Alert";
            Ext.MessageBox.alert(result.alert, result.message, function(){eval(result.alert_eval_js)});
        } else {
            Lino.notify(result.message);
        }
    }

    if(result.record_deleted && panel.ls_detail_handler == detail_handler) {
        panel.after_delete();
    }
    
    if (result.refresh_all) {
        var cw = Lino.current_window;
        // var cw = panel.get_containing_window();
        if (cw) {
            // console.log("20140917 refresh_all calls refresh on", cw.main_item);
            cw.main_item.refresh();
        } else { Lino.viewport.refresh(); }
        // else console.log("20140917 cannot refresh_all because ",
        //                  "there is no current_window");
    } else {
        if (result.refresh) {
            // console.log("20140917 Gonna call panel.refresh()", panel);
            panel.refresh();
            panel.focus();
        }
    }if (result.open_url) {
        //~ console.log(20111126,result.open_url);
        //~ if (!result.message)
            //~ Lino.notify('Open new window <a href="'+result.open_url+'" target="_blank">'+result.open_url+'</a>');
        window.open(result.open_url,'foo',"");
        //~ document.location = result.open_url;
    }
};

// obsolete but still used for deleting records.
Lino.do_action = function(caller,action) { 
  action.success = function(response) {
    if (caller.loadMask) caller.loadMask.hide();
    //~ console.log('Lino.do_action()',action,'action success',response);
    if (action.after_success) {
        //~ console.log('Lino.do_action() calling after_success');
        action.after_success();
    }
    if (response.responseText) {
      var result = Ext.decode(response.responseText);
      //~ console.log('Lino.do_action()',action.name,'result is',result);
      if (result.message) {
          if (result.alert) {
              //~ Ext.MessageBox.alert('Alert',result.alert_msg);
              Ext.MessageBox.alert('Alert',result.message);
          } else {
              Lino.notify(result.message);
          }
      }
      
      //~ if (result.alert_msg) Ext.MessageBox.alert('Alert',result.alert_msg);
      //~ if (result.message) Lino.notify(result.message);
      if (result.notify_msg) Lino.notify(result.notify_msg);
      if (result.js_code) { 
        //~ console.log('Lino.do_action()',action,'gonna call js_code in',result);
        var jsr = result.js_code(caller);
        //~ console.log('Lino.do_action()',action,'returned from js_code in',result);
        if (action.after_js_code) {
          //~ console.log('Lino.do_action()',action,'gonna call after_js_code');
          action.after_js_code(jsr);
          //~ console.log('Lino.do_action()',action,'returned from after_js_code');
        //~ } else {
          //~ console.log('Lino.do_action()',action,' : after_js_code is false');
        }
      };
    }
  };
  Ext.applyIf(action,{
    waitMsg: "Please wait...",
    failure: Lino.ajax_error_handler(caller),
    params: {}
  });
  //~ action.params.su = Lino.subst_user;
  Lino.insert_subst_user(action.params);
  
  Ext.Ajax.request(action);
};

//~ Lino.gup = function( name )
//~ {
  //~ // Thanks to http://www.netlobo.com/url_query_string_javascript.html
  //~ name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  //~ var regexS = "[\\?&]"+name+"=([^&#]*)";
  //~ var regex = new RegExp( regexS );
  //~ var results = regex.exec( window.location.href );
  //~ if( results == null )
    //~ return "";
  //~ else
    //~ return results[1];
//~ };

//~ Lino.refresh_handler = function (ww) {
  //~ return function() { 
      //~ console.log('refresh',ww);
      //~ ww.main_item.doLayout(false,true);
      //~ ww.main_item.syncSize();
  //~ }
//~ };

//~ Lino.tools_close_handler = function (ww) {
  //~ return function() { 
      //~ ww.close();
  //~ }
//~ };
Lino.permalink_handler = function (ww) {
  return function() { 
    //~ document.location = ww.main_item.get_permalink();
    //~ console.log('20130723 Lino.permalink_handler',ww);
    
    /* Uncaught TypeError: Cannot read property 'main_item' of null  */
    if (ww) {
        var url = ww.main_item.get_permalink();
    } else {
        var url = Lino.viewport.get_permalink();
    }
    Lino.load_url(url);
  }
};
//~ Lino.run_permalink = function() {
  //~ var plink = Lino.gup('permalink');
  //~ if(plink) { eval('Lino.'+plink); }
//~ }

Lino.close_and_save_handler =  function (ww){
    return function(){
    if (ww) {
        ww.main_item.do_when_clean(true,function() {
        Lino.close_window(); });
        }
    }
};

Lino.ajax_error_handler = function(panel) {
  return function(response,options) {
    console.log('Ajax failure:', response, options);
    if (panel.loadMask) panel.loadMask.hide();
    if (response.responseText) {
      var lines = response.responseText.split('\n');
      if (lines.length > 10) {
          line = lines.splice(5, lines.length-10, "(...)");
      }
      //~ console.log(20131005, response.statusText.toCamel());
      Ext.MessageBox.alert(
        response.statusText.toCamel(),
        lines.join('<br/>')
        //~ response.responseText.replace(/\n/g,'<br/>'))
      )
    } else {
      Ext.MessageBox.alert('Action failed',
        'Lino server did not respond to Ajax request');
    }
  }
}
// Ext.Ajax.on('requestexception',Lino.ajax_error_handler)
 


Ext.QuickTips.init();

/* setting QuickTips dismissDelay to 0 */
// Apply a set of config properties to the singleton
//~ Ext.apply(Ext.QuickTips.getQuickTip(), {
//~ Ext.apply(Ext.ToolTip, {
    //~ dismissDelay: 0
    //~ autoHide: false,
    //~ closable: true,
    //~ maxWidth: 200,
    //~ minWidth: 100,
    //~ showDelay: 50      // Show 50ms after entering target
    //~ ,trackMouse: true
//~ });


// Ext.apply(Ext.QuickTips.getQuickTip(), {
//     dismissDelay: 500,
//     showDelay: 20      // Show 10ms after entering target
// });
  
Lino.quicktip_renderer = function(title, body) {
  return function(c) {
    //~ if (c instanceof Ext.Panel) var t = c.bwrap; else // 20130129
      if (c instanceof Ext.Panel) {
          var t = c.header;
      } else if (c instanceof Ext.Button) {
          var t = c.btnEl;
      } else  {
          var t = c.getEl();
      }
    // console.log(20171024, c, t, body);
    //~ t.dismissDelay = 0;
    Ext.QuickTips.register({
      target: t,
      //~ cls: 'lino-quicktip-classical',
      dismissDelay: 10000,
      //~ autoHide: false,
      showDelay: 30,      // Show X ms after entering target
      //~ title: title,
      text: body
    });
  }
};


  
Lino.help_text_editor = function() {
  //~ var bp = {
      //~ mk:this.content_type,
      //~ mt:1
    //~ };
    //~ console.log(20120202,bp);
  //~ Lino.lino.ContentTypes.detail({},{base_params:bp});
  //~ Lino.lino.ContentTypes.detail.run(null,{record_id:this.content_type});
  Lino.lino.ContentTypes.detail.run(null,{record_id:this.content_type});
}

// Path to the blank image should point to a valid location on your server
//~ Ext.BLANK_IMAGE_URL = MEDIA_URL + '/extjs/resources/images/default/s.gif'; 


// used as Ext.grid.Column.renderer for id columns in order to hide the special id value -99999
Lino.id_renderer = function(value, metaData, record, rowIndex, colIndex, store) {
  //~ if (record.phantom) return '';
  return value;
}

Lino.raw_renderer = function(value, metaData, record, rowIndex, colIndex, store) {
  return value;
}

Lino.text_renderer = function(value, metaData, record, rowIndex, colIndex, store) {
  //~ return "not implemented"; 
  return value;
}

Lino.NullNumberColumn = Ext.extend(Ext.grid.Column, {
    align : 'right', 
    format : '0,000.00/i', 
    renderer : function(value, metaData, record, rowIndex, colIndex, store) {
        // if( colIndex == 3)
        //     console.log(20130128,"NullNumberColumn.renderer",value);
        if (value === null) return '';
        return Ext.util.Format.number(value, this.format);
    }
});


Lino.link_button = function(url) {
    // return '<a href="' + url + '"><img src="/media/lino/extjs/images/xsite/link.png" alt="link_button"></a>'
    return '<a href="' + url + '" style="text-decoration:none;">&#10138;</a>'
}

Lino.fk_renderer = function(fkname,handlername) {
  //~ console.log('Lino.fk_renderer handler=',handler);
  return function(value, metaData, record, rowIndex, colIndex, store) {
    //~ console.log('Lino.fk_renderer',fkname,rowIndex,colIndex,record,metaData,store);
    //~ if (record.phantom) return '';
    if (value) {
        return Lino.link_button('javascript:'+handlername + '.run(null,{record_id:\'' + String(record.data[fkname]) + '\'})")') + value;
        // until 20140822 (clickable foreign keys):
        // var s = '<a href="javascript:' ;
        // s += handlername + '.run(null,{record_id:\'' + String(record.data[fkname]) + '\'})">';
        // s += value + '</a>';
        // return s
    }
    return '';
  }
};

Lino.lfk_renderer = function(panel,fkname) {
  //~ console.log('Lino.fk_renderer handler=',handler);
  var handlername = 'console.log';
  return function(value, metaData, record, rowIndex, colIndex, store) {
    //~ console.log('Lino.fk_renderer',fkname,rowIndex,colIndex,record,metaData,store);
    if (record.phantom) return '';
    if (value) {
        var s = '<a href="javascript:' ;
        s += handlername + '({},{record_id:\'' + String(record.data[fkname]) + '\'})">';
        s += value + '</a>';
        //~ console.log('Lino.fk_renderer',value,'-->',s);
        return s
    }
    return '';
  }
};

//~ Lino.gfk_renderer = function() {
  //~ return function(value, metaData, record, rowIndex, colIndex, store) {
    //~ if (record.phantom) return '';
    //~ console.log('Lino.gfk_renderer',value,colIndex,record,metaData,store);
    //~ return value;
  //~ }
//~ };


Lino.build_buttons = function(panel,actions) {
  //~ console.log("20121006 Lino.build_buttons",actions);
  if (actions) {
    var buttons = Array(actions.length);
    var cmenu = Array(actions.length);
    var keyhandlers = [];
    for (var i=0; i < actions.length; i++) { 
      var a = actions[i];
      if (a.menu) a.menu = Lino.build_buttons(panel,a.menu).bbar;
      buttons[i] = a;
      cmenu[i] = {
            text : a.menu_item_text,
            iconCls : a.iconCls,
            menu : a.menu,
            itemId : a.itemId
          };
      if (a.panel_btn_handler) {
          var h = a.panel_btn_handler.createCallback(panel);
          if (a.auto_save == true) {
              h = panel.do_when_clean.createDelegate(panel,[true,h]);
          } else if (a.auto_save == null) {
              h = panel.do_when_clean.createDelegate(panel,[false,h]);
          } else if (a.auto_save == false) {
              // h = h;
          } else {
              console.log("20120703 unhandled auto_save value",a)
          }
          buttons[i].handler = h;
          cmenu[i].handler = h;
          if (a.keycode) {
                keyhandlers.push({
                key : a.keycode,
                fn : h});
//              keyhandlers[a.keycode] = h;
          }
          //~ if (buttons[i].xtype == 'splitbutton') {
              //~ cmenu[i].menu = a.menu;
          //~ } else {
              //~ cmenu[i].handler = h;
          //~ }
      } else {
          console.log("action without panel_btn_handler",a)
          // cmenu[i].handler = a.handler;
      }
    }
//    if (keyhandlers.length > 0){
//        var keys = new Ext.KeyMap(panel,keyhandlers);
//    }
    return {
        bbar:buttons, 
        cmenu:new Ext.menu.Menu(cmenu),
        keyhandlers: keyhandlers
    };
  }
}

Lino.do_when_visible = function(cmp,todo) {
  //~ if (cmp.el && cmp.el.dom) 
  if (cmp.isVisible()) { 
    // 'visible' means 'rendered and not hidden'
    //~ console.log(cmp.title,'-> cmp is visible now');
    todo(); 
  //~ } else {
      //~ cmp.on('resize',todo,cmp,{single:true});
  //~ }
  //~ if (false) { // 20120213
  } else { 
    //~ console.log('Lino.do_when_visible() must defer because not isVisible()',todo,cmp);
    if (cmp.rendered) {
      //~ console.log(cmp,'-> cmp is rendered but not visible: and now?');
      //~ console.log(cmp.title,'-> cmp is rendered but not visible: try again in a moment...');
      //~ var fn = function() {Lino.do_when_visible(cmp,todo)};
      //~ fn.defer(100);
      
      Lino.do_when_visible.defer(50,this,[cmp,todo]);
      //~ Lino.do_when_visible.defer(100,this,[cmp,todo]);
      
    } else {
      //~ console.log(cmp.title,'-> after render');
      cmp.on('afterrender',todo,cmp,{single:true});
    }
  }
  
};    

/*
*/
Lino.do_on_current_record = function(panel, fn, phantom_fn) {
  // console.log('20140930 do_on_current_record', arguments);
  var rec = panel.get_current_record();
  if (rec == undefined) {
    Lino.notify("There's no selected record.");
    return;
  }
  // 20120307 A VirtualTable with a Detail (lino.Models) has only "phantom" records.
  if (rec.phantom) {
    //~ if (!panel.editable) { console.log("20120312 not editable:",panel)}
    if (phantom_fn) {
      phantom_fn(panel);
    } else {
      Lino.notify("Action not available on phantom record.");
    }
    return;
  }
  return fn(rec);
};


Lino.call_ajax_action = function(
    panel, method, url, p, actionName, step, on_confirm, on_success) {
  p.an = actionName;
  if (!panel || !panel.isVisible()) {
  //~ if (true) { // 20131026 : workflow_actions of a newly created record detail executed but did't refresh the screen because their requesting panel was the insert (not the detail) formpanel.
      if (Lino.current_window) 
          panel = Lino.current_window.main_item;
      else panel = Lino.viewport;
  }
  // console.log("20150130 a", p.pv);
  // Ext.apply(p, panel.get_base_params());
  // console.log("20150130 b", p.pv);

  if (panel.get_selected && p.sr === undefined) {
      var selected_recs = panel.get_selected();
      //~ console.log("20130831",selected_recs);
      var rs = Array(selected_recs.length);
      for(var i=0; i < selected_recs.length;i++) {
          rs[i] = selected_recs[i].data[panel.ls_id_property];
      };
      p.sr = rs;
  }
  
  // console.log("20170731 Lino.call_ajax_action", Ext.Ajax, p, actionName, step);
  
  if (panel.loadMask) panel.loadMask.show(); 
  Lino.insert_linoweb_version(p)
  // Ext.Ajax.params = {}; 
  Ext.Ajax.request({
    method: method
    ,url: url
    ,params: p
    ,success: Lino.action_handler(panel, on_success, on_confirm)
    ,failure: Lino.ajax_error_handler(panel)
  });
};




Lino.row_action_handler = function(actionName, hm, pp) {
  var fn = function(panel, btn, step) {
      var p = {};
      // console.log('20150514 row_action_handler');
      if (pp) { p = pp(panel); if (! p) return; }
      
      if (!panel || panel.get_current_record == undefined) { // AFTER_20130725
        // console.log('20140930 row_action_handler 2', panel);
        panel = Ext.getCmp(panel);
        if (panel == undefined) {
          console.log("20160410 Invalid panel spec.", actionName, hm, pp);
          Lino.notify("Invalid panel spec.");
          return;
        }
      }
      
      Lino.do_on_current_record(panel, function(rec) {
          //~ console.log(panel);
          panel.add_param_values(p, true);
          Ext.apply(p, panel.get_base_params());
          Lino.call_ajax_action(
              panel, hm, panel.get_record_url(rec.id), 
              p, actionName, step, fn);
      });
  };
  return fn;
};

Lino.list_action_handler = function(ls_url,actionName,hm,pp) {
  var url = '/api' + ls_url
  var fn = function(panel,btn,step) {
      var p = {};
      //~ console.log("20121210 Lino.list_action_handler",arguments);
      if (pp) { p = pp(panel);  if (! p) return; }
      if (panel) { // may be undefined when called e.g. from quicklink
          panel.add_param_values(p, true);
          Ext.apply(p, panel.get_base_params());
      }
      Lino.call_ajax_action(panel, hm,url, p, actionName, step, fn);
  };
  return fn;
};

Lino.param_action_handler = function(window_action) { // 20121012
  var fn = function(panel,btn,step) {
    Lino.do_on_current_record(panel,function(rec) {
      window_action.run(panel.getId(),{}); 
    });
  };
  return fn;
};


Lino.run_row_action = function(
    requesting_panel, is_on_main_actor, url, meth, pk,
    actionName, params, preprocessor) {
  //~ var panel = action.get_window().main_item;
  // console.log("20140930 Lino.run_row_action", params);
  url = '/api' + url  + '/' + pk;
  var panel = Ext.getCmp(requesting_panel);
  // var params = {}
  // if (init_params) Ext.apply(params, init_params);
  if (!params) params = {};
  if (preprocessor) {
      var p = preprocessor(); 
      Ext.apply(params, p);
  }
  if (panel && is_on_main_actor) {
      Ext.apply(params, panel.get_base_params())
  }else {
     params.sr = pk
  }
  Lino.insert_subst_user(params);

  var fn = function(panel, btn, step) {
    Lino.call_ajax_action(panel, meth, url, params, actionName, step, fn);
  }
  fn(panel, null, null);
}


Lino.show_detail = function(panel, btn) {
  Lino.do_on_current_record(panel, 
    function(rec) {
      //~ panel.loadMask.show();
      Lino.run_detail_handler(panel, rec.id);
    },
    Lino.show_insert
  );
};

Lino.run_detail_handler = function(panel,pk) {
  var bp = panel.get_base_params();
  panel.add_param_values(bp); // 20120918
  var status = {
    record_id:pk,
    base_params:bp
  }
  //~ console.log("20120918 Lino.show_detail",status);
  panel.ls_detail_handler.run(null,status);
}

Lino.show_fk_detail = function(combo,detail_action,insert_action) {
    //~ console.log("Lino.show_fk_detail",combo,handler);
    pk = combo.getValue();
    if (pk) {
        detail_action.run(null,{record_id: pk})
      } else {
        insert_action.run(null);
        //~ Lino.notify("Cannot show detail for empty foreign key.");
      }
};

Lino.show_insert = function(panel,btn) {
  var bp = panel.get_base_params();
  //~ console.log('20120125 Lino.show_insert',bp)
  //~ panel.ls_insert_handler.run(null,{record_id:-99999,base_params:bp});
  panel.ls_insert_handler.run(panel.getId(),{base_params:bp});
};



if (Ext.ux.grid !== undefined) {
    Lino.GridFilters = Ext.extend(Ext.ux.grid.GridFilters,{
      encode:true,
      local:false
    });
} else {
    Lino.GridFilters = function() {}; // dummy
    Ext.override(Lino.GridFilters,{
      init : function() {}
    });
};



Lino.FieldBoxMixin = {
  before_init : function(config,params) {
    if (params) Ext.apply(config,params);
    var actions = Lino.build_buttons(this, config.ls_bbar_actions);
    if (actions) config.bbar = actions.bbar;
  },
  //~ constructor : function(ww,config,params){
    //~ this.containing_window = ww;
    //~ if (params) Ext.apply(config,params);
    //~ var actions = Lino.build_buttons(this,config.ls_bbar_actions);
    //~ if (actions) config.bbar = actions.bbar;
    //~ Lino.FieldBoxMixin.superclass.constructor.call(this, config);
  //~ },
  do_when_clean : function(auto_save,todo) { todo() },
  //~ format_data : function(html) { return '<div class="htmlText">' + html + '</div>' },
  format_data : function(html) { return html },
  get_base_params : function() {
    // needed for insert action
    var p = Ext.apply({}, this.base_params);
    Lino.insert_subst_user(p);
    return p;
  },
  set_base_params : function(p) {
    this.base_params = Ext.apply({},p);
    //~ if (p.param_values) this.set_param_values(p.param_values);  
  },
  clear_base_params : function() {
      this.base_params = {};
      Lino.insert_subst_user(this.base_params);
  },
  set_base_param : function(k,v) {
    this.base_params[k] = v;
  }
};

Ext.override(Ext.form.HtmlEditor, {
    fixKeys : function(){
        if(Ext.isIE){
            return function(e){
                var k = e.getKey(),
                    doc = this.getDoc(),
                        r;
                if(k == e.TAB){
                    e.stopEvent();
                    r = doc.selection.createRange();
                    if(r){
                        r.collapse(true);
                        r.pasteHTML('&nbsp;&nbsp;&nbsp;&nbsp;');
                        this.deferFocus();
                    }
                }else if(k == e.ENTER){
                    r = doc.selection.createRange();
                    if(r){
                        var target = r.parentElement();
                        if(!target || target.tagName.toLowerCase() != 'li'){
                            e.stopEvent();
                            r.pasteHTML('<br />');
                            r.collapse(false);
                            r.select();
                        }
                    }
                }
            };
        }else if(Ext.isOpera){
            return function(e){
                var k = e.getKey();
                if(k == e.TAB){
                    e.stopEvent();
                    this.win.focus();
                    this.execCmd('InsertHTML','&nbsp;&nbsp;&nbsp;&nbsp;');
                    this.deferFocus();
                }
            };
        }else if(Ext.isWebKit){
            // HKC : this is probably our most used case.
            return function(e){
                var k = e.getKey();
                if(k == e.TAB){
                    e.stopEvent();
                    this.execCmd('InsertText','\t');
                    this.deferFocus();
                }else if(k == e.ENTER){
                    e.stopEvent();
                    this.execCmd('InsertHtml','<br /><br />');
                    this.deferFocus();
                }
             //   HKC
               else if (k == e.S && e.ctrlKey){
                    e.stopEvent();
                    e.preventDefault();
                    //this.getWin.fireEvent('keyup');
                    // this.fireKey(e);
                    console.log('HTMLEditor is saving...');
                }
             };
        }
    }(),
    // bubbleEvents : ['keypress']
    // initComponent : function() {
    //     Ext.form.HtmlEditor.superclass.initComponent.call(this);
    //     this.addEvents('submit');
    // },
    // submit : function (event) {
    //     console.log("rrrrr");
    // },
    // initEditor : function() {
    //     Ext.form.HtmlEditor.superclass.initEditor.call(this);
    //     if (Ext.isGecko) {
    //         Ext.EventManager.on(this, 'keypress', this.fireSubmit, this);
    //     }
    //     if (Ext.isIE || Ext.isWebKit || Ext.isOpera) {
    //         Ext.EventManager.on(this, 'keydown', this.fireSubmit,
    //             this);
    //     }
    // },
    fireSubmit : function(e) {
        console.log("fireSubmit ...");
    }
});

Lino.HtmlBoxPanel = Ext.extend(Ext.Panel, Lino.PanelMixin);
Lino.HtmlBoxPanel = Ext.extend(Lino.HtmlBoxPanel, Lino.FieldBoxMixin);
Lino.HtmlBoxPanel = Ext.extend(Lino.HtmlBoxPanel, {
  disabled_in_insert_window : true,
  constructor : function(config,params) {
    this.before_init(config,params);
    Lino.HtmlBoxPanel.superclass.constructor.call(this, config);
  },
  //~ constructor : function(ww,config,params){
    //~ this.ww = ww;
    //~ if (params) Ext.apply(config,params);
    //~ var actions = Lino.build_buttons(this,config.ls_bbar_actions);
    //~ if (actions) config.bbar = actions.bbar;
    //~ Lino.FieldBoxMixin.constructor.call(this, ww,config,params);
  //~ },
  //~ constructor : function(ww,config,params){
    //~ this.ww = ww;
    //~ if (params) Ext.apply(config,params);
    //~ var actions = Lino.build_buttons(this,config.ls_bbar_actions);
    //~ if (actions) config.bbar = actions.bbar;
    //~ Lino.FieldBoxMixin.superclass.constructor.call(this, config);
  //~ },
  //~ disable : function() { var tb = this.getBottomToolbar(); if(tb) tb.disable()},
  //~ enable : function() { var tb = this.getBottomToolbar(); if(tb) tb.enable()},
  onRender : function(ct, position){
    Lino.HtmlBoxPanel.superclass.onRender.call(this, ct, position);
    Ext.getDoc().addKeyListener(Ext.EventObject.ESC, function(k,e) {
      // this.get_containing_window().close();
      this.get_containing_window().main_item.do_when_clean(false,function() { 
        if (Lino.current_window ) {
          Lino.close_window();
        }
      });
    },this);
    //~ console.log(20111125,this.containing_window);
    if (this.containing_panel) {
      this.containing_panel.on('enable',this.enable,this);
      this.containing_panel.on('disable',this.disable,this);
    }
    this.el.on({
      dragenter:function(event){
        event.browserEvent.dataTransfer.dropEffect = 'move';
        return true;
      }
      ,dragover:function(event){
        event.browserEvent.dataTransfer.dropEffect = 'move';
        event.stopEvent();
        return true;
      }
      ,drop:{
        scope:this
        ,fn:function(event){
          event.stopEvent();
          //~ console.log(20110516);
          var files = event.browserEvent.dataTransfer.files;
          if(files === undefined){
            return true;
          }
          var len = files.length;
          while(--len >= 0){
            console.log(files[len]);
            //~ this.processDragAndDropFileUpload(files[len]);
          }
          Lino.show_insert(this);
        }
      }
    });
  },
  refresh : function(unused) { 
      // this.containing_panel.refresh();
      this.refresh_with_after();
  },
  /* HtmlBoxPanel */
  refresh_with_after : function(after) {
      // var todo = this.containing_panel.refresh();
      var box = this.items.get(0);
      var todo = function() {
        if (this.disabled) { return; }
        this.set_base_params(this.containing_panel.get_master_params());

        var el = box.getEl();
        if (el) {
            var record = this.containing_panel.get_current_record();
            var newcontent = record ? 
                this.format_data(record.data[this.name]) : '';
            // console.log('20140917 HtmlBox.refresh()',
            //             this.name, record.data.LinksByHuman);
            el.update(newcontent, true);
        // } else {
        //     console.log('20140502 cannot HtmlBox.refresh()',this.name);
        }
      };

      Lino.do_when_visible(box, todo.createDelegate(this));
  }
});
//~ Ext.override(Lino.HtmlBoxPanel,Lino.FieldBoxMixin);


Lino.ActionFormPanel = Ext.extend(Ext.form.FormPanel,Lino.MainPanel);
Lino.ActionFormPanel = Ext.extend(Lino.ActionFormPanel, Lino.PanelMixin);
Lino.ActionFormPanel = Ext.extend(Lino.ActionFormPanel, Lino.FieldBoxMixin);
Lino.ActionFormPanel = Ext.extend(Lino.ActionFormPanel, {
  //~ layout:'fit'
  //~ ,autoHeight: true
  //~ ,frame: true
  window_title : "Action Parameters",
  cls : "l-ActionFormPanel",
  constructor : function(config){
    config.buttons = [
        {text: 'OK', handler: this.on_ok, scope: this, cls:"l-ok"},
        {text: 'Cancel', handler: this.on_cancel, scope: this, cls:"l-cancel"}
    ];
    Lino.ActionFormPanel.superclass.constructor.call(this, config);
  }
  ,initComponent : function(){
      this.on('render',function(){
          this.loadMask = new Ext.LoadMask(
              this.bwrap,{msg:"Please wait..."});
      },this);
      Lino.ActionFormPanel.superclass.initComponent.call(this);
  }
  ,on_cancel : function() { 
    this.get_containing_window().close();
  }
  ,on_ok : function() { 
    var panel = this.requesting_panel;
    // var panel = this.get_containing_window().main_item;
    // console.log("20131004 on_ok",this,panel,arguments);
    var actionName = this.action_name;
    var pk = this.record_id || this.default_record_id;
    if (pk == undefined && this.base_params) { pk = this.base_params.mk; }
    if (pk == undefined && panel) {
        pk = panel.get_current_record().id;
    }
    if (pk == undefined) {
        // 20170101 VerifyUser action
        pk = '-99998';
        // Lino.alert("Sorry, dialog action without base_params.mk");
        // return;
    }
    var self = this;
    // self.loadMask.show();  // 20180727
    // function on_success() { self.get_containing_window().close(); };
    // see 20131004 and 20140430
    var url = '/api';

    // 20150119 : The OK button on AgentsByClient.create_visit went to
    // /api/pcsw/Clients/ instead of /api/pcsw/Coachings/
    // if (panel) 
    //     url += panel.ls_url;
    // else 
    //     url += this.ls_url;

    if (this.ls_url) 
        url += this.ls_url;
    else 
        url += panel.ls_url;
    url += '/' + pk;
    // wrap into function to prepare possible recursive call
    var fn = function(panel, btn, step) {
      var p = {};
      self.add_field_values(p)
      if (panel) Ext.apply(p, panel.get_base_params());
      delete p.pv;
      // console.log("20150130", p.pv);
      Lino.call_ajax_action(
          self, self.http_method || "GET", url, p, actionName, step, fn); //  , on_success);
        // panel, 'GET', url, p, actionName, step, fn); //  , on_success);
        // 20180802 : passing self instead of panel fixes #2474
    }
    fn(panel, null, null);
    
    
  }
  /* ActionFormPanel*/
  ,set_status : function(status, rp){
    this.requesting_panel = Ext.getCmp(rp);
    //~ console.log('20120918 ActionFormPanel.set_status()',status,rp,this.requesting_panel);
    this.clear_base_params();
    // this.loadMask.hide();  // 20180727
    if (status == undefined) status = {};
    //~ if (status.param_values)
    // 20180725 : do not set field values and record id if status
    // doesn't have them.
    if (status.field_values) this.set_field_values(status.field_values);
    if (status.base_params) this.set_base_params(status.base_params);
    if (status.record_id) this.record_id = status.record_id;
  }
  
  ,before_row_edit : function(record) {}
  ,add_field_values : function (p) { // similar to add_param_values()
      /* LS 20160517 : Until now Lino tested whether the form is
       dirty, and if not, submitted only the values which had been set
       by set_status. But now status_field_values can be empty because
       Action.keep_user_values is True. In that case we must submit
       the current values even if the form is not dirty.  I don't
       remember why we had this feature of not submitting unmodified
       field values, so I remove this feature for now. */
      p.fv = this.get_field_values();
      // if (this.form.isDirty()) {
      //   p.fv = this.get_field_values();
      // }else{
      //   // console.log("20160517 add_param_values not dirty, status_field_values",
      //   //             this.status_field_values);
      //   if (this.status_field_values) 
      //     p.fv = Lino.fields2array(
      //         this.fields, this.status_field_values);
      // }
      //~ console.log("20120203 add_param_values added pv",pv,"to",p);
  }
  ,get_field_values : function() {
      return Lino.fields2array(this.fields);
  }
  ,set_field_values : function(pv) {
      // console.log('20160516 MainPanel.set_param_values', pv);
      // if Action.keep_user_values, we receive an empty dict ({})
      this.status_field_values = pv;
      if (pv) {
          this.form.my_loadRecord(pv);
          var record = { data: pv };
          this.before_row_edit(record);
      } else {
          this.form.reset(); 
          this.before_row_edit();
      }
  }
  ,config_containing_window : function(wincfg) { 
      wincfg.title = this.window_title;
      wincfg.keys = [
        { key: Ext.EventObject.ENTER, fn: this.on_ok, scope: this }
        ,{ key: 's', ctrl: true, fn: this.on_ok, scope: this, stopEvent: true  }
      ];

      if (!wincfg.defaultButton) this.getForm().items.each(function(f){
          if(f.isFormField){ 
              wincfg.defaultButton = f;
              return false;
          }
      });

  }
});

    
Lino.fields2array = function(fields, values) {
    // console.log('20160517 fields2array gonna loop on', fields, values);
    var pv = Array(fields.length);
    for(var i=0; i < fields.length;i++) {
        var f = fields[i]
        if (values) 
          var v = values[f.name];
        else 
          var v = f.getValue();
        if (f.formatDate) {
            pv[i] = f.formatDate(v); 
        } else {
            pv[i] = v; // f.getValue(); 
        }
    }
    // console.log('20160517 fields2array returns', pv);
    return pv;
}


Lino.FormPanel = Ext.extend(Ext.form.FormPanel,Lino.MainPanel);
Lino.FormPanel = Ext.extend(Lino.FormPanel,Lino.PanelMixin);
Lino.FormPanel = Ext.extend(Lino.FormPanel,{
  params_panel_hidden : false,
  save_action_name : null, 
  //~ base_params : {},
  //~ trackResetOnLoad : true,
  //~ query_params : {},
  //~ 20110119b quick_search_text : '',
  constructor : function(config,params){
    if (params) Ext.apply(config,params);
    this.base_params = {};
    //~ ww.config.base_params.query = ''; // 20111018
    //~ console.log(config);
    //~ console.log('FormPanel.constructor() 1',config)
    //~ Ext.applyIf(config,{base_params:{}});
    //~ console.log('FormPanel.constructor() 2',config)
      
    config.trackResetOnLoad = true;
  
    Lino.FormPanel.superclass.constructor.call(this, config);

    //~ this.set_base_param('$URL_PARAM_FILTER',null); // 20111018
    //~ this.set_base_param('$URL_PARAM_FILTER',''); // 20111018
      
  },
  initComponent : function(){
    
    this.containing_panel = this;

    //~ console.log("20111201 containing_window",this.containing_window,this);
    var actions = Lino.build_buttons(this, this.ls_bbar_actions);
    if (actions) {
        this.bbar = actions.bbar;
        // console.log("20160829 tooltip", actions.bbar);
    //~ } else {
        //~ this.bbar = [];
    }
    //~ Ext.apply(config,Lino.build_buttons(this,config.ls_bbar_actions));
    //~ config.bbar = Lino.build_buttons(this,config.ls_bbar_actions);
    //~ var config = this;
    
    //~ if (this.containing_window instanceof Lino.DetailWrapper) {
    
    //~ console.log('20120121 initComponent', this.action_name);
    //~ if (this.action_name == 'detail' | this.action_name == 'show') {
    //~ if (this.action_name != 'insert') {
    if (! this.hide_top_toolbar) {
      this.tbar = [];
      // 20111015    
      if (! this.hide_navigator) {
        this.record_selector = new Lino.RemoteComboFieldElement({
          store: new Lino.ComplexRemoteComboStore({
            //~ baseParams: this.containing_window.config.base_params,
            baseParams: this.get_base_params(),
            //~ value: this.containing_window.config.base_params.query,
            proxy: new Ext.data.HttpProxy({
              url: '/choices' + this.ls_url,
              method:'GET'
            })
          }),
          pageSize:25,
          listeners: { 
            scope:this, 
            select:function(combo,record,index) {
                // console.log('20180719 select', combo);
                this.set_base_param('query',
                                    combo.lastQuery); 
              this.goto_record_id(record.id);
            }
          },
          emptyText: "Go to record"
        })
        this.tbar = this.tbar.concat([this.record_selector]);
        
        this.tbar = this.tbar.concat([
          this.first = new Ext.Toolbar.Button({
              tooltip:"First",disabled:true,
              handler:this.moveFirst,scope:this,iconCls:'x-tbar-page-first'}),
          this.prev = new Ext.Toolbar.Button({
              tooltip:"Previous",disabled:true,
              handler:this.movePrev,scope:this,iconCls:'x-tbar-page-prev'}),
          this.next = new Ext.Toolbar.Button({
              tooltip:"Next",disabled:true,
              handler:this.moveNext,scope:this,iconCls:'x-tbar-page-next'}),
          this.last = new Ext.Toolbar.Button({
              tooltip:"Last",disabled:true,
              handler:this.moveLast,scope:this,iconCls:'x-tbar-page-last'})
        ]);
      }
      this.tbar = this.add_params_panel(this.tbar);
      
      this.tbar = this.tbar.concat([
        {
            handler:function(){ this.do_when_clean(
                false, this.refresh.createDelegate(this)) },
          iconCls: 'x-tbar-loading',
          tooltip:"Reload current record",
          scope:this}
      ]);
          
      if (this.bbar) { // since 20121016
        if (this.tbar) {
            this.tbar = this.tbar.concat(['-']) ;
        } else {
          this.tbar = [];
        }
        this.tbar = this.tbar.concat(this.bbar) ;
        this.bbar = undefined;
      }
    
      this.tbar = this.tbar.concat([
          '->',
          this.displayItem = new Ext.Toolbar.TextItem({})
      ]);
          
    }
    //~ if (this.content_type && this.action_name != 'insert') {
      //~ this.bbar = this.bbar.concat([
        //~ '->',
        //~ { text: "[$_('Help Text Editor')]",
          //~ handler: Lino.help_text_editor,
          //~ qtip: "$_('Edit help texts for fields on this model.')",
          //~ scope: this}
      //~ ])
    //~ }
    //~ this.before_row_edit = config.before_row_edit.createDelegate(this);
      
    //~ if (this.master_panel) {
        //~ this.set_base_params(this.master_panel.get_master_params());
    //~ }
      
    Lino.FormPanel.superclass.initComponent.call(this);

    // this.on('show',
    //         function(){ this.init_focus();}, 
    //         this);
    
    this.on('render',function(){
      this.loadMask = new Ext.LoadMask(this.bwrap,{msg:"Please wait..."});
    },this);
    
    
    if (this.action_name == 'insert') {
      this.cascade(function(cmp){
        if (cmp.disabled_in_insert_window) {
            // console.log('20110613 disabled_in_insert_window', cmp);
            //~ cmp.disable();
            cmp.hide();
        }
      });
      
    }
    
  },
  
  unused_init_focus : function(){ 
    // set focus to the first field
    console.log("20140205 Lino.FormPanel.init_focus");
    // Lino.FormPanel.superclass.focus.call(this);
    this.getForm().items.each(function(f){
        if(f.isFormField && f.rendered){ 
            f.focus();
            console.log("20140205 focus", f);
            return false;
        }
    });
  },

  /* FormPanel */
  get_status : function(){
      var st = {
        base_params: this.get_base_params(),
        // data_record : this.get_current_record()
      }
      var rec = this.get_current_record();
      if (rec) st.record_id = rec.id;
      // 20140917 : get_status must not store the whole data_record
      // because that would prevent the form to actually reload
      // when set_status is called after a child window closed.
      
      var tp = this.items.get(0);
      if (tp instanceof Ext.TabPanel) {
        st.active_tab = tp.getActiveTab();
      }
      st.param_values = this.status_param_values;
      return st;
  },

  /* FormPanel */
  set_status : function(status, rp){
    this.requesting_panel = Ext.getCmp(rp);
    // console.log('20140917 FormPanel.set_status()', status);
    this.clear_base_params();
    if (status == undefined) status = {};
    //~ if (status.param_values) 
    this.set_param_values(status.param_values);
    if (status.base_params) this.set_base_params(status.base_params);
    var tp = this.items.get(0);
    if (tp instanceof Ext.TabPanel) {
      if (status.active_tab) {
        //~ console.log('20111201 active_tab',this.active_tab,this.items.get(0));
        //~ tp.activeTab = status.active_tab;
        tp.setActiveTab(status.active_tab);
        //~ this.main_item.items.get(0).activate(status.active_tab);
      } else {
        if (! status.data_record) {  // 20141206
            tp.setActiveTab(0);
        }
      }
    }
    
    if (status.data_record) {
      /* defer because set_window_title() didn't work otherwise */
      // 20140421 removed defer for bughunting to simplify side effects
      // this.set_current_record.createDelegate(
      //     this, [status.data_record]).defer(100);
      this.set_current_record(status.data_record);
      //~ return;
    } else {
        var record_id = status.record_id != undefined ? status.record_id : this.default_record_id;
        if (record_id != undefined) { 
          /* possible values include 0 and null, 0 being a valid record id, 
          null the equivalent of undefined
          */
          this.load_record_id(record_id);
        } else {
            this.set_current_record(undefined);
        }
    }
    // this.init_focus()
  }
  ,get_base_params : function() {  /* FormPanel */
    // needed for insert_action
    var p = Ext.apply({}, this.base_params);
    Lino.insert_subst_user(p);
    return p;
  }
  ,set_base_params : function(p) {
    //~ this.base_params = Ext.apply({},this.base_params); // make sure it is an instance variable
    delete p['query'] // 20120725
    Ext.apply(this.base_params,p);
    if (this.record_selector) {
        var store = this.record_selector.getStore();
        for (k in p) store.setBaseParam(k,p[k]);
        delete this.record_selector.lastQuery;
        //~ console.log("20120725 record_selector.setBaseParam",p)
    }
  }
  ,clear_base_params : function() {
      this.base_params = {};
      Lino.insert_subst_user(this.base_params);
  }
  ,set_base_param : function(k,v) {
    this.base_params[k] = v;
  }
  ,after_delete : function() {
    if (this.current_record.navinfo.next)
      this.moveNext();
    else if (this.current_record.navinfo.prev)
      this.movePrev();
    else 
      this.abandon();
  }
  ,moveFirst : function() {this.goto_record_id(
      this.current_record.navinfo.first)}
  ,movePrev : function() {this.goto_record_id(
      this.current_record.navinfo.prev)}
  ,moveNext : function() {this.goto_record_id(
      this.current_record.navinfo.next)}
  ,moveLast : function() {this.goto_record_id(
      this.current_record.navinfo.last)}
  
  ,refresh : function(unused) { 
      this.refresh_with_after();
  }
  /* FormPanel */
  ,refresh_with_after : function(after) { 
    // console.log('20140917 Lino.FormPanel.refresh_with_after()',this);
    if (this.current_record) {
        this.load_record_id(this.current_record.id, after);
    } else {
        this.set_current_record(undefined, after);
    }
  }
  
  ,do_when_clean : function(auto_save, todo) {
    var this_ = this;
    if (this.form.isDirty()) {
        // console.log('20140421 do_when_clean : form is dirty')
        if (auto_save) {
            this_.save(todo);
        } else {
          //~ console.log('20111217 do_when_clean() form is dirty',this.form);
          var config = {cls:"l-confirmation", title:"Confirmation"};
          config.buttons = Ext.MessageBox.YESNOCANCEL;
          config.msg = "Save changes to current record ?";
          config.fn = function(buttonId,text,opt) {
            //~ console.log('do_when_clean',buttonId)
            if (buttonId == "yes") {
                //~ Lino.submit_detail(this_,undefined,todo);
                //~ this_.containing_window.save(todo);
                this_.save(todo);
            } else if (buttonId == "no") { 
              todo();
            }
          }
          Ext.MessageBox.show(config);
        }
    }else{
      // console.log('20140421 do_when_clean : now!')
      todo();
    }
  }
  
  ,goto_record_id : function(record_id) {
    // console.log('20140917 Lino.FormPanel.goto_record_id()',record_id);
    //~ var this_ = this;
    //~ this.do_when_clean(function() { this_.load_record_id(record_id) }
    this.do_when_clean(
        true, this.load_record_id.createDelegate(this, [record_id]));
  }
  
  ,load_record_id : function(record_id, after) {
    var this_ = this;
    var p = Ext.apply({}, this.get_base_params());
    if (this.action_name)
        p.an = this.action_name;
    p.rp = this.getId();
    p.fmt = 'json';
    this.add_param_values(p);
    Lino.insert_linoweb_version(p);
    if (this.loadMask) this.loadMask.show();
    Ext.Ajax.request({ 
      waitMsg: 'Loading record...',
      method: 'GET',
      params: p,
      scope: this,
      url: this.get_record_url(record_id),
      success: function(response) {   
        // todo: convert to Lino.action_handler.... but result 
        if (this.loadMask) this.loadMask.hide();
        if (response.responseText) {
          var rec = Ext.decode(response.responseText);
          // console.log('20150905 load_record_id success', rec);
          this.set_param_values(rec.param_values);
          this.set_current_record(rec, after);
          if (rec.message) {
            //~ if (rec.alert && ! gridmode) {
            if (rec.alert) { // 20120628b
                //~ Ext.MessageBox.alert('Alert',rec.alert_msg);
                if (rec.alert === true) rec.alert = "Alert";
                Ext.MessageBox.alert(rec.alert, rec.message, function(){eval(rec.alert_eval_js)});
            } else {
                Lino.notify(rec.message);
            }
          }
        }
      },
      failure: Lino.ajax_error_handler(this)
    });
  }

  ,abandon : function () {
    Ext.MessageBox.alert('Note',
      "No more records to display. Detail window has been closed.");
    Lino.close_window();
  }
  
  ,set_current_record : function(record, after) {
    // console.log('20160825 set_current_record', record);
    if (this.record_selector) {
        this.record_selector.clearValue();
        // e.g. InsertWrapper FormPanel doesn't have a record_selector
    }
    this.current_record = record;
    if (record && record.data) {
      this.enable();
      // After this method focus is moved to the panel.
      this.form.my_loadRecord(record.data);
      this.set_window_title(record.title);
      //~ this.getBottomToolbar().enable();
      var da = record.data.disabled_fields;
      if (da) {
          //~ console.log('20120528 disabled_fields =',da,this.getBottomToolbar());
          //~ 20121016 this.getBottomToolbar().items.each(function(item,index,length){
          if(this.hide_top_toolbar) {
              var tb = this.getBottomToolbar();
          } else {
              var tb = this.getTopToolbar();
          }
          if (tb) tb.items.each(function(item,index,length){
              //~ console.log('20120528 ',item.itemId,'-->',da[item.itemId]);
              // if (da[item.itemId]) item.disable(); else item.enable();
              if (da[item.itemId]) item.hide(); else item.show();
          });
      };
      if (this.disable_editing | record.data.disable_editing) {
          //~ console.log("20120202 disable_editing",record.title);
          this.form.items.each(function(cmp){
            if (!cmp.always_enabled) cmp.disable();
          },this);
      } else {
          this.form.items.each(function(cmp){
            //~ console.log("20120202",cmp);
            if (record.data.disabled_fields[cmp.name]) cmp.disable();
            else cmp.enable();
          },this);
        
          //~ if (record.data.disabled_fields) {
              //~ for (i = 0; i < record.data.disabled_fields.length; i++) {
                  //~ var flds = this.find('name',record.data.disabled_fields[i]);
                  //~ if (flds.length == 1) { 
                    //~ flds[0].disable(); 
                  //~ }
              //~ }
          //~ }
      };
      if (this.first) {
        if (record.navinfo  && ! this.hide_navigator) {
          this.first.setDisabled(record.navinfo.first == null);
          this.prev.setDisabled(record.navinfo.prev == null);
          this.next.setDisabled(record.navinfo.next == null);
          this.last.setDisabled(record.navinfo.last == null);
          this.displayItem.setText(record.navinfo.message);
        } else {
          this.first.setDisabled(true);
          this.prev.setDisabled(true);
          this.next.setDisabled(true);
          this.last.setDisabled(true);
        }
      }
    } else {
      if (this.form.rendered) 
        this.form.reset(); /* FileUploadField would fail when resetting a non-rendered form */
      //~ this.disable();
      //~ this.getBottomToolbar().disable();
      this.form.items.each(function(cmp){
        cmp.disable();
      },this);
      this.set_window_title(this.empty_title);
      //~ this.containing_window.window.setTitle(this.empty_title);
      if (!this.hide_navigator) {
        this.first.disable();
        this.prev.disable();
        this.next.disable();
        this.last.disable();
      }
    }
    // console.log('20140917 gonna call before_row_edit', record);
        var current_focus_fields = false;
        for (var i = 0; i < this.form.items.items.length;i++) {
            if (this.form.items.items[i].hasFocus) current_focus_fields = i;
        }
    this.before_row_edit(record);
        if (current_focus_fields != false){
            this.form.items.items[current_focus_fields].focus();
        }
    // console.log('20140917 gonna call after', after);
    this.containing_window.focus(); // ticket: 2509 regain focus on reload
    if (after) after();
  },
  
  /* FormPanel */
  before_row_edit : function(record) {},
  search_change : function(field,oldValue,newValue) {
    //~ console.log('search_change',field.getValue(),oldValue,newValue)
    this.set_base_param('query',field.getValue()); 
    this.refresh();
  },
  
//  get_selected : function() { return [ this.current_record ] },
  get_current_record : function() {  
    //~ console.log(20100714,this.current_record);
    return this.current_record 
  },
  
  get_permalink_url : function() {
      var rec = this.get_current_record();
      if (rec && ! rec.phantom && rec.id != -99998)
          return '/api' 
              + this.ls_url + '/' + rec.id;
      return '/api' + this.ls_url;
    
  },
  add_param_tab : function(p) {
    var main = this.items.get(0);
    if (main.activeTab) {
      var tab = main.items.indexOf(main.activeTab);
      // console.log('20150130 main.activeTab', tab, main.activeTab);
      if (tab) p.tab = tab;
    // } else {
    //   console.log('20150130 no main.activeTab');
    }
  },
  get_permalink_params : function() {
    var p = {};
    //~ var p = {an:'detail'};
    if (this.action_name)
        p.an = this.action_name;
    this.add_param_tab(p)
    this.add_param_values(p)
    return p;
  }
  
  ,validate_form : function() {  // not used. see actions.ValidateForm
      // var ov = {};
      // this.form.items.each(function(f){
      //     ov[f.name] = f.originalValue
      // });

      // console.log('20140509 FormPanel.validate_form', ov);
      // var after = function() { 
      //     this.form.items.each(function(f){
      //         f.originalValue = ov[f.name];
      //     });
      // }
      // this.save2(null, 'validate', after);
      this.save2(null, 'validate');
  }

  /* Lino.FormPanel */
  ,save : function(after) {
    var action_name = this.save_action_name;
    if (!action_name) 
        action_name = this.action_name;
    // console.log('20140503 FormPanel.save', action_name);
    this.save2(after, action_name);
  }

  ,save2 : function(after, action_name) {
    var rec = this.get_current_record();
    var p = {};
    var panel = this;

    if (!rec) {
        Lino.notify("Sorry, no current record."); 
        return; 
    }
    if (this.has_file_upload) {
        p.csrfmiddlewaretoken = Ext.util.Cookies.get('csrftoken');
        document.domain = document.domain;
        p._document_domain = document.domain;
        this.form.fileUpload = true;
    }
    this.loadMask.show();
    Ext.apply(p, this.get_base_params());
    p.rp = this.getId();
    p.an = action_name;
    this.add_param_tab(p)
    // console.log('20150216 FormPanel.save()', rec, this.form);
    var submit_config = {
        params: p, 
        scope: this,
        success: function(form, action) {
          this.loadMask.hide();
          Lino.notify(action.result.message);
          Lino.handle_action_result(this, action.result, after);
        },
        failure: function(form,action) { 
          this.loadMask.hide();
          Lino.on_submit_failure(form, action);
        },
        clientValidation: true
    };
    if (rec.phantom) {  // it's a new record
      Ext.apply(submit_config, {
        url: '/api' + this.ls_url,
        method: 'POST'
      });
      // panel.refresh();
      // temporarily disabled. See 20151002
    } else {  // submit on existing row
      Ext.apply(submit_config, {
        url: '/api' 
              + this.ls_url + '/' + rec.id,
        method: 'PUT'
      })
    }
    this.form.submit(submit_config);
  }
  
  ,on_cancel : function() { 
    this.get_containing_window().close();
  }
  ,on_ok : function() { 
      // console.log("20140424");
      // this.save(null, true, this.save_action_name);
      this.save();
  }
  ,run_action_hotkeys : function(k ,e){
    var result = this.actions_hotkeys.filter(obj => {
      return obj.key.toUpperCase() === String.fromCharCode(k).toUpperCase()
    })
    if (result != undefined){
      if (result.length != undefined){
        result = result[0];
      }
      // this.actions_hotkeys[i].ba
      var pk = this.current_record.id || this.default_record_id;
      if (pk == undefined && this.base_params) { pk = this.base_params.mk; }
//          if (pk == undefined && this.containing_panel) {
//             pk = this.containing_panel.get_current_record().id;
//          }
      if (pk == undefined) {
        // 20170101 VerifyUser action
        pk = '-99998';
        // Lino.alert("Sorry, dialog action without base_params.mk");
        // return;
        }
        eval(result.ba)(this.containing_panel,
                                              this.is_main_window,
                                              pk, {});
                                            }  
      e.stopEvent();
      e.stopPropagation();

  }
  ,config_containing_window : function(wincfg) { 

      // Note that defaultButton means: which component should receive
      // focus when Window is focussed.  If no defaultButton set,
      // specify the first form field.

      if (!wincfg.defaultButton) this.getForm().items.each(function(f){
          if(f.isFormField){ 
              wincfg.defaultButton = f;
              // console.log("20140205 defaultButton", f);
              return false;
          }
      });

      wincfg.keys = [];

      wincfg.keys.push({
          key: Ext.EventObject.ESCAPE,
          // this is not called sometimes.
          handler: this.on_cancel, scope:this });
      wincfg.keys.push({
          key: 's', ctrl: true, 
             stopEvent: true, handler: this.on_ok, scope:this });
      if (this.actions_hotkeys) {
          for (var i = 0; i < this.actions_hotkeys.length;i++) {
            wincfg.keys.push({
              key: this.actions_hotkeys[i].key,
              ctrl: this.actions_hotkeys[i].ctrl,
              shift : this.actions_hotkeys[i].shift,
              stopEvent: true,
              handler:
                function(k, e){
                  this.run_action_hotkeys(k,e);
                },
              scope:this });
          }
      }
  }

});



Lino.getRowClass = function(record, rowIndex, rowParams, store) {
    //~ console.log(20130816,record);
    //~ return 'x-grid3-row-green';
    //~ return record.data.row_class + ' auto-height';
    return record.data.row_class;
  //~ if (true) {
      //~ return 'x-grid3-row-red';
  //~ }
  //~ if (record.phantom) {
    //~ console.log(20101009,record);
    //~ rowParams.bodyStyle = "color:red;background-color:blue";
    //~ return 'lino-phantom-row';
    //~ }
  //~ console.log('20101009 not a phantom:',record);
  //~ return '';
}

//~ FOO = 0;



Lino.GridStore = Ext.extend(Ext.data.ArrayStore,{ 
  autoLoad: false
  ,load: function(options) {
    //~ foo.bar = baz; // 20120213
    if (!options) options = {};
    if (!options.params) options.params = {};
    options.params.fmt = 'json';
    options.params.rp = this.grid_panel.getId();
    Lino.insert_subst_user(options.params); // since 20121016
      
    var start = this.grid_panel.start_at_bottom ? -1 : 0;
    if (this.grid_panel.hide_top_toolbar) {
        //~ console.log("20120206 GridStore.load() toolbar is hidden");
        options.params.start = start;
        if (this.grid_panel.preview_limit) {
          options.params.limit = this.grid_panel.preview_limit;
        }
    } else {
        var ps = this.grid_panel.calculatePageSize();
        if (!ps) {
          // console.log("GridStore.load() failed to calculate pagesize");
          return false;
        } 
        options.params.limit = ps;
      
        this.grid_panel.getTopToolbar().pageSize =  ps;
        if (options.params.start == undefined)
            // if (start != -1) 
            //     start = this.grid_panel.getTopToolbar().cursor
            options.params.start = start;
      
        // console.log("20141108 GridStore.load() ", options.params);
    }
      
    this.grid_panel.add_param_values(options.params);
    //~ Lino.insert_subst_user(options.params);
    //~ console.log("20120814 GridStore.load()",options.params,this.baseParams);
    return Lino.GridStore.superclass.load.call(this, options);
  }
  // ,insert : function(index, records) {
  //   return Ext.data.Store.prototype.insert.call(this, index, records)
    // return Lino.GridStore.superclass.insert.call(this, index, records);
  // }
});

Lino.get_current_grid_config = function(panel) {
    return panel.get_current_grid_config();
}


// Like the default value for GridView.cellTpl but adds a class "lino-auto-height"
Lino.auto_height_cell_template = new Ext.Template(
'<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} {css}" style="{style}" tabIndex="0" {cellAttr}>',
    '<div class="lino-auto-height x-grid3-cell-inner x-grid3-col-{id}" unselectable="on" {attr}>{value}</div>',
'</td>'
);

Lino.GridPanel = Ext.extend(Ext.grid.EditorGridPanel, Lino.MainPanel);
Lino.GridPanel = Ext.extend(Lino.GridPanel, Lino.PanelMixin);
Lino.GridPanel = Ext.extend(Lino.GridPanel, {
  quick_search_text : '',
  start_at_bottom : false,
  is_searching : false,
  disabled_in_insert_window : true,
  clicksToEdit:2,
  enableColLock: false,
  autoHeight: false,
  params_panel_hidden : false,
  preview_limit : undefined, 
  // fake_row_content: '<br>',
  row_height: 1,
  //~ loadMask: true,
  //~ viewConfig: {
          //~ getRowClass: Lino.getRowClass,
          //~ emptyText:"$_('No data to display.')"
        //~ },
        
        
  loadMask: {msg:"Please wait..."},
  
  constructor : function(config){

    config.plugins = [new Lino.GridFilters()];
    
    
    Lino.GridPanel.superclass.constructor.call(this,config);
    
    //~ if (this.containing_window) {
        //~ console.log("20111206 install refresh");
        //~ this.containing_window.on('show',this.refresh,this);
    //~ }
    
  },

  // private
  initEvents : function(){
    Ext.grid.GridPanel.superclass.initEvents.call(this);

    // modifed from Ext.grid.GridPanel
    // Override the function to replace the element to be covered by the mask to the body.
    if(this.loadMask){
        this.loadMask = new Ext.LoadMask(this.body,
                Ext.apply({store:this.store}, this.loadMask));
    }
      
    // unmodified from Ext.grid.EditorGridPanel
    this.getGridEl().on('mousewheel', this.stopEditing.createDelegate(this, [true]), this);
    this.on('columnresize', this.stopEditing, this, [true]);

    if(this.clicksToEdit == 1){
        this.on("cellclick", this.onCellDblClick, this);
    }else {
        var view = this.getView();
        if(this.clicksToEdit == 'auto' && view.mainBody){
            view.mainBody.on('mousedown', this.onAutoEditClick, this);
        }
        this.on('celldblclick', this.onCellDblClick, this);
    }
},
  
  init_containing_window : function(win) { 
    //~ console.log("20111206 install refresh");
    //~ win.on('show',this.refresh,this);
  }

  ,handle_key_event : function(e) {
    // console.log("20140514 handle_key_event", e, this.keyhandlers);
    if (this.keyhandlers){
        var h = this.keyhandlers[e.keyCode];
        }
    else if (this.keys !== undefined){
        var h = this.keys[e.keyCode];
        }
    if (h) {
        h(this);
        e.stopEvent();
    }
  }
  
  ,initComponent : function(){
    
    /* 
    Problem 20111206:
    When a GridPanel is the main item of the window, then it doesn't 
    have it's own header but uses the window's header bar.
    We must do this in initComponent because e.g. in beforerender 
    it's already to late: a header element has been created because 
    there was a title.
    But Lino.Window adds itself as `this.containing_window` 
    only after the GridPanel has been initialized.
    Workaround is to generate a line "params.containing_window = true;" 
    in the handler function.
    */ 
    if (this.is_main_window) {
        //~ console.log(20111206, 'delete title',this.title,'from',this);
        this.tools = undefined;  
        this.title = undefined;  /* simply deleting it 
          isn't enough because that would only 
          unhide the title defined in some base class. */
    } 
    //~ else console.log(20111206, 'dont delete title',this.title,'from',this);
    
    /* e.g. when slave gridwindow called from a permalink */
    //~ if (this.base_params) Ext.apply(bp,this.base_params);  
    
    var proxy = new Ext.data.HttpProxy({ 
      // 20120814 
      url: '/api' + this.ls_url
      ,method: "GET"
      //~ ,url: ADMIN_URL + '/restful' + this.ls_url
      //~ ,restful: true
      ,listeners: {load: function (proxy, req, optps) {
            var result = req.reader.arrayData;
            // Used for lino version validation
            if (result.message) { //
                if (result.alert) { // 20120628b
                    if (result.alert === true) result.alert = "Alert";
                    Ext.MessageBox.alert(result.alert, result.message, function(){eval(result.alert_eval_js)});
                } else {
                    Lino.notify(result.message);
                }
            }
            } }
      //~ ,listeners: {write:on_proxy_write} 
    });
    //~ config.store = new Ext.data.JsonStore({ 
    //~ this.store = new Ext.data.ArrayStore({ 
    this.store = new Lino.GridStore({ 
      grid_panel: this
      ,listeners: { exception: Lino.on_store_exception }
      ,remoteSort: true
      ,totalProperty: "count"
      ,root: "rows"
      //~ ,id: "id" 
      ,proxy: proxy
      //~ autoLoad: this.containing_window ? true : false
      ,idIndex: this.pk_index
      //~ ,baseParams: bp
      ,fields: this.ls_store_fields
      ,idProperty: this.ls_id_property 
      // 20120814
      //~ ,writer : new Ext.data.JsonWriter({
        //~ writeAllFields: false
        //~ ,listful: true
      //~ })
      //~ ,restful : true
    });
      
    //~ console.log('config.pk_index',config.pk_index,config.store),
    delete this.ls_store_fields;
      
    var this_ = this;
    //~ var grid = this;
    this.store.on('load', function() {
        //~ console.log('20120814 GridStore.on(load)',this_.store);
        this_.set_param_values(this_.store.reader.arrayData.param_values);
        //~ this_.set_status(this_.store.reader.arrayData.status);
        //~ 20120918
        this.getView().getRowClass = Lino.getRowClass;
        
        if (this_.store.reader.arrayData.no_data_text) {
            //~ this.viewConfig.emptyText = this_.store.reader.arrayData.no_data_text;
            this.getView().emptyText = this_.store.reader.arrayData.no_data_text;
            this.getView().refresh();
        }
        if (this_.containing_window)
            this_.set_window_title(this_.store.reader.arrayData.title);
            //~ this_.containing_window.setTitle(this_.store.reader.arrayData.title);
        // 20190704 add open_in_own_window button after title of slave panel
        // else if (! (this_ instanceof Ext.TabPanel)) this_.setTitle(this_.store.reader.arrayData.title);

        if (!this.is_searching) { // disabled 20121025: quick_search_field may not lose focus
          this.is_searching = false;
          if (this_.selModel.getSelectedCell){
              if (this_.getStore().getCount()) // there may be no data
                  this_.selModel.select(0,0); 
          } else {
              this_.selModel.selectFirstRow();
              this_.getView().focusEl.focus();
          }
        } 
        //~ else console.log("is_searching -> no focussing");
        //~ var t = this.getTopToolbar();
        //~ var activePage = Math.ceil((t.cursor + t.pageSize) / t.pageSize);
        //~ this.quick_search_field.focus(); // 20121024
      }, this
    );
    var actions = Lino.build_buttons(this, this.ls_bbar_actions);
    //~ Ext.apply(config,Lino.build_buttons(this,config.ls_bbar_actions));
    //~ config.bbar, this.cmenu = Lino.build_buttons(this,config.ls_bbar_actions);
    //~ this.cmenu = new Ext.menu.Menu({items: config.bbar});
    delete this.ls_bbar_actions
    if (actions) {
        this.cmenu = actions.cmenu;
//        this.keyhandlers = actions.keyhandlers;
        this.keys = new Ext.KeyMap(this.elements,actions.keyhandlers);
    }
    
    if (!this.hide_top_toolbar) {  
      var tbar = [ 
        this.quick_search_field = new Ext.form.TextField({ 
            //~ fieldLabel: "Search"
          emptyText: "Quick search",
          listeners: { 
            scope:this_
            //~ ,change:this_.search_change
            
            ,render: Lino.quicktip_renderer("Quick Search","Enter a text to use as quick search filter")
            
            //~ ,keypress: this.search_keypress 
            ,blur: function() { this.is_searching = false}
            ,afterrender: function(field) {
                if (this.focus_on_quick_search){
                    field.focus(false, 1000);
                    }
              }
          }
          ,validator:function(value) { return this_.search_validate(value) }
          //~ ,tooltip: "Enter a quick search text, then press TAB"
          //~ value: text
          //~ scope:this, 
          //~ ,enableKeyEvents: true
          //~ listeners: { keypress: this.search_keypress }, 
          //~ id: "seachString" 
      })];
      tbar = this.add_params_panel(tbar);
      var menu = [];
      var set_gc = function(index) {
        return function() {
          //~ console.log('set_gc() 20100812');
          this.getColumnModel().setConfig(
              this.apply_grid_config(index,this.ls_grid_configs,this.ls_columns));
        }
      }
      for (var i = 0; i < this.ls_grid_configs.length;i++) {
        var gc = this.ls_grid_configs[i];
        menu.push({text:gc.label,handler:set_gc(i),scope:this})
      }
      if(menu.length > 1) {
        tbar = tbar.concat([
          { text:"View",
            menu: menu,
            tooltip:"Select another view of this report"
          }
        ]);
      }
      
      if (actions) {
        tbar = tbar.concat(actions.bbar);
          //~ this.bbar = actions.bbar;
      }
      
      this.tbar = new Ext.PagingToolbar({ 
        store: this.store, 
        prependButtons: true, 
        //~ pageSize: this.page_length, 
        pageSize: 1, 
        displayInfo: true, 
        beforePageText: "Page",
        afterPageText: "of {0}",
        displayMsg: "Displaying {0} - {1} of {2}",
        firstText: "First page",
        lastText: "Last page",
        prevText: "Previous page",
        nextText: "Next page",
        items: tbar
      });
    }
      
    if (this.cell_edit) {
      this.selModel = new Ext.grid.CellSelectionModel()
      this.get_selected = function() {
        //~ console.log(this.getSelectionModel().selection);
        if (this.selModel.selection)
            return [ this.selModel.selection.record ];
        return [this.store.getAt(0)];
      };
      this.get_current_record = function() { 
        if (this.getSelectionModel().selection) 
          return this.selModel.selection.record;
        return this.store.getAt(0);
      };
    } else { 
      this.selModel = new Ext.grid.RowSelectionModel() 
      this.get_selected = function() {
        var sels = this.selModel.getSelections();
        if (sels.length == 0) sels = [this.store.getAt(0)];
        return sels
      };
      this.get_current_record = function() { 
        var rec = this.selModel.getSelected();
        if (rec == undefined) rec = this.store.getAt(0);
        return rec
      };
    };
    this.columns  = this.apply_grid_config(this.gc_name,this.ls_grid_configs,this.ls_columns);
    
    Lino.GridPanel.superclass.initComponent.call(this);
    
    this.on('resize', function(){
      //~ console.log("20120213 resize",arguments)
      this.refresh();
      },this);
    this.on('viewready', function(){
      //~ console.log("20120213 resize",arguments);
      this.view_is_ready = true;
      this.refresh(); // removed 20130911
      },this);
    this.on('afteredit', this.on_afteredit); // 20120814
    this.on('beforeedit', this.on_beforeedit);
    this.on('beforeedit',function(e) { this.before_row_edit(e.record)},this);
    if (this.cell_edit) {
        this.on('cellcontextmenu', Lino.cell_context_menu, this);
    } else {
        this.on('rowcontextmenu', Lino.row_context_menu, this);
    }
    //~ this.on('contextmenu', Lino.grid_context_menu, this);
    
    delete this.cell_edit;
    
  },
  
  //~ onResize : function(){
      //~ console.log("20120206 GridPanel.onResize",arguments);
      //~ Lino.GridPanel.superclass.onResize.apply(this, arguments);
      //~ this.refresh();
  //~ },
  
  
  get_status : function(){
    var st = { base_params : this.get_base_params()};
    if (!this.hide_top_toolbar) {
        // #866
        if (this.getStore().lastOptions != undefined && this.getStore().lastOptions.params != undefined){
            st.current_page = Math.round(this.getStore().lastOptions.params.start / this.getStore().lastOptions.params.limit ) + 1 ;
        }
    }
    st.param_values = this.status_param_values;
    //~ console.log("20120213 GridPanel.get_status",st);
    return st;
  },
  
  /* 
  Lino.GridPanel.set_status() 
  */
  set_status : function(status, rp){
    this.requesting_panel = Ext.getCmp(rp);
    // console.log("20140527 GridPanel.set_status", status);
    this.clear_base_params();
    if (status == undefined) status = {base_params:{}};
    this.set_param_values(status.param_values);
    if (status.base_params) { 
      this.set_base_params(status.base_params);
    }
    if (status.show_params_panel != undefined) {
        if (this.toggle_params_panel_btn) {
            //~ this.toggle_params_panel_btn.toggle(status.show_params_panel=='true');
            this.toggle_params_panel_btn.toggle(status.show_params_panel);
        }
    }
    if (!this.hide_top_toolbar) {
      //~ console.log("20120213 GridPanel.getTopToolbar().changePage",
          //~ status.current_page || 1);
      this.getTopToolbar().changePage(status.current_page || 1);
    }
    //~ this.fireEvent('resize');
    //~ this.refresh.defer(100,this); 
    //~ this.onResize.defer(100,this); 
    //~ this.refresh(); 
    //~ this.doLayout(); 
    //~ this.onResize(); 
    //~ this.store.load();
  },
  
  refresh : function(unused) { 
    this.refresh_with_after();
  },
  /* GridPanel */
  refresh_with_after : function(after) { 
    // console.log('20140504 Lino.GridPanel.refresh '+ this.store.proxy.url);
    //~ var bp = { fmt:'json' }
    if (! this.view_is_ready) return;
    
    if (this.containing_panel) {
        //~ Ext.apply(p,this.master_panel.get_master_params());
        //~ Ext.apply(options.params,this.containing_panel.get_master_params());
        this.set_base_params(this.containing_panel.get_master_params());
        // 20130911
        if (this.store.baseParams.mk === undefined ) {
            return;
        }
    }
    
    //~ console.log('20130911 Lino.GridPanel.refresh_with_after',this.containing_panel.get_master_params());
    
    var options = {};
    if (after) {
        options.callback = function(r,options,success) {if(success) after()}
    }
      
    //~ if (!this.rendered) {
        //~ console.log("20120206 GridPanel.refresh() must wait until rendered",options);
        //~ this.grid_panel.on('render',this.load.createDelegate(this,options))
        //~ return;
    //~ }
    // Ticket 802
    if (this.store.lastOptions != undefined){
        var params = {};
        params.limit = this.store.lastOptions.params.limit;
        params.start = this.store.lastOptions.params.start;
        options.params = params;
    }
    this.store.load(options);
  },
  
  /* pageSize depends on grid height (Trying to remove scrollbar)
  Thanks to 
  - Christophe Badoit on http://www.sencha.com/forum/showthread.php?82647
  - http://www.sencha.com/forum/archive/index.php/t-37231.html
  */
  calculatePageSize : function(second_attempt) {
    //~ if (!this.rendered) { 
    if (!this.view_is_ready) { 
      //~ console.log('Cannot calculatePageSize() : not rendered');
      return false; }
    //~ if (!this.isVisible()) { 
      //~ console.log('calculatePageSize : not visible');
      //~ return false; }
      
    //~ console.log('getFrameHeight() is',this.getFrameHeight());
    //~ console.log('getView().scroller.getHeight() is',this.getView().scroller.getHeight());
    //~ console.log('mainBody.getHeight() is',this.getView().mainBody.getHeight());
    //~ console.log('getInnerHeight() is',this.getInnerHeight());
    //~ console.log('getHeight() is',this.getHeight());
    //~ console.log('el.getHeight() is',this.getEl().getHeight());
    //~ console.log('getGridEl().getHeight() is',this.getGridEl().getHeight());
    //~ console.log('getOuterSize().height is',this.getOuterSize().height);
    //~ console.log('getBox().height is',this.getBox().height);
    //~ console.log('getResizeEl.getHeight() is',this.getResizeEl().getHeight());
    //~ console.log('getLayoutTarget().getHeight() is',this.getLayoutTarget().getHeight());
      
    // var rowHeight = this.row_height * 11; experimental value 11
    // same as in ext_renderer.py that's not enough because it is the
    // height of one text line. But here we need the outer height of a
    // grid row containing that many text lines.

    var row_content = '&nbsp;'
    for (var i = 0; i < this.row_height;i++) {
        row_content += '<br>';
    }

    var Element = Ext.Element;
    var gv = this.view;
    var fakeBody = new Element(Element.fly(gv.scroller).child('div.x-grid3-body'));
    var rowTemplate = gv.templates.row;
    var cellTemplate = gv.templates.cell;
    var tstyle  = 'width:' + gv.getGridInnerWidth() + 'px;';
    // console.log("20160615", this.fake_row_content);
    var cells = cellTemplate.apply({value:row_content});
    var markup = rowTemplate.apply({
            tstyle: tstyle,
            cols  : 1,
            cells : cells,
            alt   : ''
        });        
    fakeBody.dom.innerHTML = gv.templates.body.apply({rows: markup});
    var row = fakeBody.dom.childNodes[0];
    var rowHeight = Ext.get(row).getHeight();

    //~ console.log('rowHeight is ',rowHeight,this,caller);
    //~ this.getView().syncScroll();
    //~ this.getView().initTemplates();
    var height = this.getView().scroller.getHeight();

    //~ console.log('getView().scroller.getHeight() is',this.getView().scroller.getHeight());
    //~ console.log('getInnerHeight() - getFrameHeight() is',
      //~ this.getInnerHeight(), '-',
      //~ this.getFrameHeight(), '=',
      //~ this.getInnerHeight() - this.getFrameHeight());
    //~ var height = this.getView().mainBody.getHeight();
    //~ var height = this.getView().mainWrap.getHeight();
    //~ var height = this.getView().resizeMarker.getHeight();
    //~ this.syncSize();
    //~ var height = this.getInnerHeight() - this.getFrameHeight();
    //~ var height = this.getHeight() - this.getFrameHeight();
    height -= Ext.getScrollBarWidth(); // leave room for a possible horizontal scrollbar... 
    //~ height -= this.getView().scrollOffset;
    var ps = Math.floor(height / rowHeight);
    //~ console.log('20130816 calculatePageSize():',height,'/',rowHeight,'->',ps);
    ps -= 1; // leave room for a possible phantom row
    //~ return (ps > 1 ? ps : false);
    if (ps > 1) return ps;
    //~ console.log('calculatePageSize() found less than 1 row:',height,'/',rowHeight,'->',ps);
    //~ foo.bar = baz; // 20120213
    return 5; // preview_limit
    //~ if (second_attempt) {
        //~ console.log('calculatePageSize() abandons after second attempt:',
          //~ height,'/',rowHeight,'->',ps);
      //~ return 5;
    //~ }
    //~ return this.calculatePageSize.defer(500,this,[true]);
  },
  
  onCellDblClick : function(grid, row, col){
      //~ console.log("20120307 onCellDblClick",this,grid, row, col);
      if (this.ls_detail_handler) {
          //~ Lino.notify('show detail');
          Lino.show_detail(this);
          return false;
      }else{
        //~ console.log('startEditing');
        this.startEditing(row,col);
      }
  },
  get_base_params : function() {  /* Lino.GridPanel */
    var p = Ext.apply({}, this.store.baseParams);
    Lino.insert_subst_user(p);
    // if (this.quick_search_field)
    //     if (this.quick_search_field.getValue())
    //         p.query = this.quick_search_field.getValue();
    return p;
  },
  set_base_params : function(p) {
    // console.log('20130911 GridPanel.set_base_params',p)
    for (k in p) this.store.setBaseParam(k,p[k]);
    //~ this.store.baseParams = p;
    if (this.quick_search_field)
      this.quick_search_field.setValue(p.query || "");
    //~ if (p.param_values) 
        //~ this.set_param_values(p.param_values);  
  },
  clear_base_params : function() {
      this.store.baseParams = {};
      Lino.insert_subst_user(this.store.baseParams);
  },
  set_base_param : function(k,v) {
    this.store.setBaseParam(k,v);
  },
  
  //~ get_permalink_params : function() {
    //~ var p = {};
    //~ return p;
  //~ },
  
  before_row_edit : function(record) {},
    
  //~ search_keypress : function(){
    //~ console.log("2012124 search_keypress",arguments);
  //~ },
  search_validate : function(value) {
      if (value == this.quick_search_text) return true;

      /**
      *  Cancel the previous request when do a new load request.
      *  Prevents Ajax race conditions. Ticket #2136
      **/
      var c = this.store.proxy.getConnection();
      c.abort(c.transId);

      
    this.is_searching = true;
    //~ console.log('search_validate',value)
    this.quick_search_text = value;
    this.set_base_param('query',value); 
    //~ this.getTopToolbar().changePage(1);
    this.getTopToolbar().moveFirst();
    //~ this.refresh();
    return true;
  },
  
  search_change : function(field,oldValue,newValue) {
    //~ console.log('search_change',field.getValue(),oldValue,newValue)
    this.set_base_param('query',field.getValue()); 
    this.getTopToolbar().moveFirst();
    //~ this.refresh();
  },
  
  apply_grid_config : function(index,grid_configs,rpt_columns) {
    //~ var rpt_columns = this.ls_columns;
    var gc = grid_configs[index];    
    //~ console.log('apply_grid_config() 20100812',name,gc);
    this.gc_name = index;
    if (gc == undefined) {
      return rpt_columns;
      //~ config.columns = config.ls_columns;
      //~ return;
    } 
    //~ delete config.ls_filters
    
    //~ console.log(20100805,config.ls_columns);
    var columns = Array(gc.columns.length);
    for (var j = 0; j < rpt_columns.length;j++) {
      var col = rpt_columns[j];
      for (var i = 0; i < gc.columns.length; i++) {
        if (col.dataIndex == gc.ci[i]) {
          col.width = gc.cw[i];
          col.hidden = gc.ch[i];
          columns[i] = col;
          break;
        }
      }
    }
    
    //~ var columns = Array(rpt_columns.length);
    //~ for (var i = 0; i < rpt_columns.length; i++) {
      //~ columns[i] = rpt_columns[gc.columns[i]];
      //~ columns[i].width = gc.widths[i];
    //~ }
    
    //~ if (gc.hidden_cols) {
      //~ for (var i = 0; i < gc.hidden_cols.length; i++) {
        //~ var hc = gc.hidden_cols[i];
        //~ for (var j = 0; j < columns.length;j++) {
          //~ var col = columns[j];
          //~ if (col.dataIndex == hc) {
            //~ col.hidden = true;
            //~ break
          //~ }
        //~ }
      //~ }
    //~ }
    if (gc.filters) {
      //~ console.log(20100811,'config.ls_filters',config.ls_filters);
      //~ console.log(20100811,'config.ls_grid_config.filters',config.ls_grid_config.filters);
      for (var i = 0; i < gc.filters.length; i++) {
        var fv = gc.filters[i];
        for (var j = 0; j < columns.length;j++) {
          var col = columns[j];
          if (col.dataIndex == fv.field) {
            //~ console.log(20100811, f,' == ',fv);
            if (fv.type == 'string') {
              col.filter.value = fv.value;
              //~ if (fv.comparison !== undefined) f.comparison = fv.comparison;
            } else {
              //~ console.log(20100811, fv);
              col.filter.value = {};
              col.filter.value[fv.comparison] = fv.value;
            }
            break;
          }
        };
      }
    }
    
    return columns;
    //~ config.columns = cols;
    //~ delete config.ls_columns
  },
  
  get_current_grid_config : function () {
    var cm = this.getColumnModel();
    var widths = Array(cm.config.length);
    var hiddens = Array(cm.config.length);
    //~ var hiddens = Array(cm.config.length);
    var columns = Array(cm.config.length);
    //~ var columns = Array(cm.config.length);
    //~ var hidden_cols = [];
    //~ var filters = this.filters.getFilterValues();
    var p = this.filters.buildQuery(this.filters.getFilterData())
    for (var i = 0; i < cm.config.length; i++) {
      var col = cm.config[i];
      columns[i] = col.dataIndex;
      //~ hiddens[i] = col.hidden;
      widths[i] = col.width;
      hiddens[i] = col.hidden;
      //~ if (col.hidden) hidden_cols.push(col.dataIndex);
    }
    //~ p['hidden_cols'] = hidden_cols;
    p.cw = widths;
    p.ch = hiddens;
    p.ci = columns;
    //~ p['widths'] = widths;
    //~ p['hiddens'] = hiddens;
    //~ p['columns'] = columns;
    p['name'] = this.gc_name;
    //~ var gc = this.ls_grid_configs[this.gc_name];
    //~ if (gc !== undefined) 
        //~ p['label'] = gc.label
    //~ console.log('20100810 save_grid_config',p);
    return p;
  },
  
  unused_manage_grid_configs : function() {
    var data = [];
    for (k in this.ls_grid_configs) {
      var v = this.ls_grid_configs[k];
      var i = [k,String(v.columns),String(v.hidden_cols),String(v.filters)];
      data.push(i)
    }
    if (this.ls_grid_configs[this.gc_name] == undefined) {
      var v = this.get_current_grid_config();
      var i = [k,String(v.columns),String(v.hidden_cols),String(v.filters)];
      data.push(i);
    }
    //~ console.log(20100811, data);
    var main = new Ext.grid.GridPanel({
      store: new Ext.data.ArrayStore({
        idIndex:0,
        fields:['name','columns','hidden_cols','filters'],
        autoDestroy:true,
        data: data}),
      //~ autoHeight:true,
      selModel: new Ext.grid.RowSelectionModel(),
      listeners: { 
        rowdblclick: function(grid,rowIndex,e) {
          console.log('row doubleclicked',grid, rowIndex,e);
        },
        rowclick: function(grid,rowIndex,e) {
          console.log('row clicked',grid, rowIndex,e);
        }
      },
      columns: [ 
        {dataIndex:'name',header:'Name'}, 
        {dataIndex:'columns',header:'columns'}, 
        {dataIndex:'hidden_cols',header:'hidden columns'}, 
        {dataIndex:'filters',header:'filters'} 
      ]
    });
    var win = new Ext.Window({title:'GridConfigs Manager',layout:'fit',items:main,height:200});
    win.show();
  },
  
  unused_edit_grid_config : function(name) {
    gc = this.ls_grid_configs[name];
    var win = new Ext.Window({
      title:'Edit Grid Config',layout:'vbox', 
      //~ layoutConfig:'stretch'
      items:[
        {xtype:'text', value: gc.name},
        {xtype:'text', value: gc.columns},
        {xtype:'text', value: gc.hidden_cols},
        {xtype:'text', value: gc.filters}
      ]
    });
    win.show();
  },
  
  unused_save_grid_config : function () {
    //~ console.log('TODO: save_grid_config',this);
    //~ p.column_widths = Ext.pluck(this.colModel.columns,'width');
    var a = { 
      params:this.get_current_grid_config(), 
      method:'PUT',
      url:'/grid_config' + this.ls_url,
      success: Lino.action_handler(this),
      scope: this,
      failure: Lino.ajax_error_handler(this)
    };
    this.loadMask.show(); // 20120211
    Ext.Ajax.request(a);
    //~ Lino.do_action(this,a);
  },
  
  on_beforeedit : function(e) {
    //~ console.log('20130128 GridPanel.on_beforeedit()',e,e.record.data.disable_editing);
    if(this.disable_editing | e.record.data.disable_editing) {
      e.cancel = true;
      Lino.notify("This record is disabled");
      return;
    }
    if(e.record.data.disabled_fields && e.record.data.disabled_fields[e.field]) {
      e.cancel = true;
      Lino.notify("This field is disabled");
      return;
    }
    //~ if (e.record.data.disabled_fields) {
      //~ for (i in e.record.data.disabled_fields) {
        //~ if(e.record.data.disabled_fields[i] == e.field) {
          //~ e.cancel = true;
          //~ Lino.notify(String.format('Field "{0}" is disabled for this record',e.field));
          //~ return
        //~ }
      //~ }
    //~ }
  },
  save_grid_data : function() {
      //~ console.log("20120814 save_grid_data");
      this.getStore().commitChanges();
  },
  on_afteredit : function(e) {
    /*
    e.grid - The grid that fired the event
    e.record - The record being edited
    e.field - The field name being edited
    e.value - The value being set
    e.originalValue - The original value for the field, before the edit.
    e.row - The grid row index
    e.column - The grid column index
    */
    var p = {};
    // console.log('20140403 afteredit: ',e.record);
    //~ console.log('20101130 value: ',e.value);
    //~ var p = e.record.getChanges();
    //~ console.log('20101130 getChanges: ',e.record.getChanges());
    //~ this.before_row_edit(e.record);

    for(k in e.record.getChanges()) {
        var v = e.record.get(k);
    //~ for(k in e.record.modified) {
        //~ console.log('20101130',k,'=',v);
        //~ var cm = e.grid.getColumnModel();
        //~ var di = cm.getDataIndex(k);
        var f = e.record.fields.get(k);
        //~ console.log('20101130 f = ',f);
        //~ var v = e.record.get(di);
        if (f.type.type == 'date') {
            p[k] = Ext.util.Format.date(v, f.dateFormat);
        }else{
            p[k] = v;
            var v = e.record.get(k+'Hidden');
            if (v !== undefined) {
              p[k+'Hidden'] = v;
            }
        }
    }
    // add value used by ForeignKeyStoreField CHOICES_HIDDEN_SUFFIX
    // not sure whether this is still needed:
    p[e.field+'Hidden'] = e.value;
    //~ p.su = Lino.subst_user;
    Lino.insert_subst_user(p);
    // this one is needed so that this field can serve as choice context:
    e.record.data[e.field+'Hidden'] = e.value;
    // p[pk] = e.record.data[pk];
    // console.log("grid_afteredit:",e.field,'=',e.value);
    Ext.apply(p, this.get_base_params()); // needed for POST, ignored for PUT
    //~ Ext.apply(p,this.containing_window.config.base_params);
    //~ 20121109 p['$constants.URL_PARAM_ACTION_NAME'] = 'grid';
    var self = this;
    var req = {
        params: p,
        waitMsg: 'Saving your data...',
        success: Lino.action_handler(this, function (result) {
            // console.log("20140728 afteredit.success got ", result);
            //~ if (result.data_record) {
            if (result.refresh_all) {
                var cw = self.get_containing_window();
                if (cw) {
                    cw.main_item.refresh();
                }
                else console.log("20120123 cannot refresh_all", self);
            } else if (result.rows) {
                //~ self.getStore().loadData(result,true);
                var r = self.getStore().reader.readRecords(result);
                var cell = e.grid.getSelectionModel().selection.cell; // post insert cord for edit / selection
                if (e.record.phantom) {
                    var was_editing = false;
                    // console.log("20140728 gonna call Store.insert()", self.getStore(), e.row, r.records);
                    if (e.grid.editing && e.grid.activeEditor) {
                        cell = [e.grid.activeEditor.row, e.grid.activeEditor.col];
                        console.log("was editing", cell);
                        e.grid.activeEditor.cancelEdit();
                        was_editing = true;
                    }

                    self.getStore().insert(e.row, r.records);
                    if (was_editing) {
                        e.grid.startEditing(cell[0], cell[1]);
                    }

                } else {
                    // console.log("20140728 afteredit.success doUpdate", r.records[0]);
                    self.getStore().doUpdate(r.records[0]);
                }
                self.getStore().rejectChanges();
                /*
            get rid of the red triangles without saving the record again
            */
                e.grid.getSelectionModel().select(cell[0], cell[1]);

                //~ self.getStore().commitChanges(); // get rid of the red triangles
            } else {
                self.getStore().commitChanges(); // get rid of the red triangles
                self.getStore().reload();        // reload our datastore.
            }
        }),
        scope: this,
        failure: Lino.ajax_error_handler(this)
    };
    if (e.record.phantom) {
      req.params.an = 'grid_post'; // CreateRow.action_name
      Ext.apply(req,{
        method: 'POST',
        url: '/api' + this.ls_url
      });
    } else {
      req.params.an = 'grid_put'; // SaveRow.action_name
      Ext.apply(req,{
        method: 'PUT',
        url: '/api' + this.ls_url + '/' + e.record.id
      });
    }
    //~ console.log('20110406 on_afteredit',req);
    this.loadMask.show(); // 20120211
    Ext.Ajax.request(req);
  },

  afterRender : function() {
    Lino.GridPanel.superclass.afterRender.call(this);
    // this.getView().mainBody.focus();
    // console.log(20100114,this.getView().getRows());
    // if (this.getView().getRows().length > 0) {
    //  this.getView().focusRow(1);
    // }
    //~ this.my_load_mask = new Ext.LoadMask(this.getEl(), {
        //~ msg:'$_("Please wait...")',
        //~ store:this.store});
      
    var tbar = this.getTopToolbar();
    // tbar.on('change',function() {this.getView().focusRow(1);},this);
    // tbar.on('change',function() {this.getSelectionModel().selectFirstRow();this.getView().mainBody.focus();},this);
    // tbar.on('change',function() {this.getView().mainBody.focus();},this);
    // tbar.on('change',function() {this.getView().focusRow(1);},this);
    this.nav = new Ext.KeyNav(this.getEl(),{
      pageUp: function() {tbar.movePrevious(); },
      pageDown: function() {tbar.moveNext(); },
      home: function() {tbar.moveFirst(); },
      end: function() {tbar.moveLast(); },
      scope: this
    });

  },
  after_delete : function() {
    //~ console.log('Lino.GridPanel.after_delete');
    this.refresh();
  },
  add_row_listener : function(fn,scope) {
    this.getSelectionModel().addListener('rowselect',fn,scope);
  },
  postEditValue : function(value, originalValue, r, field){
    value = Lino.GridPanel.superclass.postEditValue.call(this,value,originalValue,r,field);
    //~ console.log('GridPanel.postEdit()',value, originalValue, r, field);
    return value;
  },
  
  set_start_value : function(v) {
      this.start_value = v;
  },
  preEditValue : function(r, field){
      if (this.start_value) {
        var v = this.start_value;
        delete this.start_value;
        this.activeEditor.selectOnFocus = false;
        return v;
      }
      var value = r.data[field];
      return this.autoEncode && Ext.isString(value) ? Ext.util.Format.htmlDecode(value) : value;
  },
  
  on_master_changed : function() {
    //~ if (! this.enabled) return;
    //~ cmp = this;
    //~ console.log('20130911 Lino.GridPanel.on_master_changed()',this.title,this.rendered);
    if (! this.rendered) return; // 20120213
    var todo = function() {
      if (this.disabled) return;
      //~ if (this.disabled) return;
      //~ if (this.enabled) {
          //~ var src = caller.config.url_data + "/" + record.id + ".jpg"
          //~ console.log(20111125, this.containing_window);
          //~ for (k in p) this.getStore().setBaseParam(k,p[k]);
          //~ console.log('Lino.GridPanel.on_master_changed()',this.title,p);
          this.refresh();
          //~ this.set_base_params(this.master_panel.get_master_params());
          //~ this.getStore().load(); 
      //~ }
    };
    Lino.do_when_visible(this,todo.createDelegate(this));
  },
  load_record_id : function(record_id,after) {
      Lino.run_detail_handler(this,record_id)
  }
  
});
  

//~ Lino.MainPanelMixin = {
  //~ tbar_items : function() {
      //~ return ;
  //~ }
//~ };

//~ Ext.override(Lino.GridPanel,Lino.MainPanelMixin);
//~ Ext.override(Lino.FormPanel,Lino.MainPanelMixin);

//~ Lino.grid_context_menu = function(e) {
  //~ console.log('contextmenu',arguments);
//~ }

Lino.row_context_menu = function(grid,row,col,e) {
  console.log('20130927 rowcontextmenu',grid,row,col,e,grid.store.reader.arrayData.rows[row]);
}

Lino.cell_context_menu = function(grid,row,col,e) {
  //~ console.log('20120531 cellcontextmenu',grid,row,col,e,grid.store.reader.arrayData.rows[row]);
  e.stopEvent();
  //~ grid.getView().focusCell(row,col);
  grid.getSelectionModel().select(row,col);
  //~ console.log(grid.store.getAt(row));
  //~ grid.getView().focusRow(row);
  //~ return;
  if(!grid.cmenu.el){grid.cmenu.render(); }
  //~ if(e.record.data.disabled_fields) {

  if (grid.disabled_fields_index) {
      var da = grid.store.reader.arrayData.rows[row][grid.disabled_fields_index];
      if (da) {
          this.cmenu.cascade(function(item){ 
            //~ console.log(20120531, item.itemId, da[item.itemId]);
            if (da[item.itemId]) item.disable(); else item.enable();
          });
      }
  };
  
  var xy = e.getXY();
  xy[1] -= grid.cmenu.el.getHeight();
  grid.cmenu.showAt(xy);
}


Lino.chooser_handler = function(combo,name) {
  return function(cmp, newValue, oldValue) {
    //~ console.log('Lino.chooser_handler()',cmp,oldValue,newValue);
    combo.setContextValue(name, newValue);
  }
};



Lino.ComboBox = Ext.extend(Ext.form.ComboBox,{
  forceSelection: "yes but select on tab",
  // forceSelection: true,
  triggerAction: 'all',
  minListWidth:280, // 20131022
  autoSelect: true,
//  lazyRender:true,
//  lazyInit:false,
//  validationDelay :0,
//  typeAhead : true,
//  typeAheadDelay :false,
  selectOnFocus: true, // select any existing text in the field immediately on focus.
  submitValue: true,
  queryDelay:0,
  minChars: 0,
  displayField: 'text', // 'text',
  valueField: 'value', // 'value',
  
  //~ initComponent : Ext.form.ComboBox.prototype.initComponent.createSequence(function() {
  initComponent : function(){
      this.contextParams = {};
      this.on('expand',function(){
        // console.log("expand",this.store.getRange());
        if (this.store.getRange().length > 1){
            // Auto selection the first choices in the dropdown list.
            this.select(this.store.getRange()[0].id);
        }
      },this);
      //~ Ext.form.ComboBox.initComponent(this);
      Lino.ComboBox.superclass.initComponent.call(this);
      this.queryDelay = 0;
  },
  //Override this to accept DELETE key as not a specialkey and show choices.
  onKeyUp : function(e){
    var k = e.getKey();
    if(this.editable !== false && this.readOnly !== true && (k == e.BACKSPACE || k == e.DELETE || !e.isSpecialKey())){

        this.lastKey = k;
        this.dqTask.delay(this.queryDelay);
    }
    Ext.form.ComboBox.superclass.onKeyUp.call(this, e);
    },
  setValue : function(v, record_data){
      /*
      Based on feature request developed in http://extjs.net/forum/showthread.php?t=75751
      */
      /* `record_data` is used to get the text corresponding to this value */
      //~ if(this.name == 'city') 
      //~ console.log('20120203', this.name,'.setValue(', v ,') this=', this,'record_data=',record_data);
      var text = v;
      if(this.valueField){
        if(v == null || v == '') { 
            //~ if (this.name == 'birth_country') 
                //~ console.log(this.name,'.setValue',v,'no lookup needed, value is empty');
            //~ v = undefined;
            v = '';
            //~ text = '';
        } else if (Ext.isDefined(record_data)) {
          text = record_data[this.name];
          //~ if (this.name == 'birth_country') 
          this.original_record_data = record_data;
            //~ console.log(this.name,'.setValue',v,'got text ',text,' from record ',record);
        } else if (Ext.isDefined(this.original_record_data) && this.original_record_data[this.hiddenName] === v) {
            // Fix for ticket #2628
            text = this.original_record_data[this.name];
        } else {
          // if(this.mode == 'remote' && !Ext.isDefined(this.store.totalLength)){
          if(this.mode == 'remote' && ( this.lastQuery === null || (!Ext.isDefined(this.store.totalLength)))){
              //~ if (this.name == 'birth_country') console.log(this.name,'.setValue',v,'store not yet loaded');
              this.store.on('load', this.setValue.createDelegate(this, arguments), null, {single: true});
              if(this.store.lastOptions === null || this.lastQuery === null){
                  var params;
                  if(this.valueParam){
                      params = {};
                      params[this.valueParam] = v;
                  }else{
                      var q = this.allQuery;
                      this.lastQuery = q;
                      this.store.setBaseParam(this.queryParam, q);
                      params = this.getParams(q);
                  }
                  //~ if (this.name == 'birth_country') 
                    //~ console.log(this.name,'.setValue',v,' : call load() with params ',params);
                  this.store.load({params: params});
              //~ }else{
                  //~ if (this.name == 'birth_country') 
                    //~ console.log(this.name,'.setValue',v,' : but store is loading',this.store.lastOptions);
              }
              return;
          //~ }else{
              //~ if (this.name == 'birth_country') 
                //~ console.log(this.name,'.setValue',v,' : store is loaded, lastQuery is "',this.lastQuery,'"');
          }
          var r = this.findRecord(this.valueField, v);
          if(r){
              text = r.data[this.displayField];
          }else if(this.valueNotFoundText !== undefined){
              text = this.valueNotFoundText;
          }
        }
      }
      this.lastSelectionText = text;
      //~ this.lastSelectionText = v;
      if(this.hiddenField){
          //~ this.hiddenField.originalValue = v;
          this.hiddenField.value = v;
      }
      Ext.form.ComboBox.superclass.setValue.call(this, text);
      this.value = v; // needed for grid.afteredit
  },
  
  getParams : function(q){
    // p = Ext.form.ComboBox.superclass.getParams.call(this, q);
    // causes "Ext.form.ComboBox.superclass.getParams is undefined"
    var p = {};
    if(this.pageSize){
        p['start'] = 0;
        p['limit'] = this.pageSize;
    }
    // now my code:
    if(this.contextParams) Ext.apply(p, this.contextParams);
    return p;
  },
  setContextValue : function(name,value) {
    //~ console.log('setContextValue',this,this.name,':',name,'=',value);
    //~ if (this.contextValues === undefined) {
        //~ this.contextValues = Array(); // this.contextParams.length);
    //~ }
    if ((this.contextParams[name] != value) || (this.contextParams[name] == undefined)) {
      //~ console.log('setContextValue 1',this.contextParams);
      this.contextParams[name] = value;
      this.lastQuery = null;
      //~ console.log('setContextValue 2',this.contextParams);
    }
  }
});

Lino.ChoicesFieldElement = Ext.extend(Lino.ComboBox,{
  mode: 'local'
});


Lino.SimpleRemoteComboStore = Ext.extend(Ext.data.JsonStore,{
  // forceSelection: true,  20140206 why was this here?
  constructor: function(config){
      Lino.SimpleRemoteComboStore.superclass.constructor.call(this, Ext.apply(config, {
          totalProperty: 'count',
          root: 'rows',
          id: 'value', // 'value'
          fields: ['value' ], 
          listeners: { exception: Lino.on_store_exception }
      }));
  }
});

Lino.ComplexRemoteComboStore = Ext.extend(Ext.data.JsonStore,{
  constructor: function(config){
      Lino.ComplexRemoteComboStore.superclass.constructor.call(this, Ext.apply(config, {
          totalProperty: 'count',
          root: 'rows',
          id: 'value', // constants.CHOICES_VALUE_FIELD
          fields: ['value','text'], // constants.CHOICES_VALUE_FIELD, // constants.CHOICES_TEXT_FIELD
          listeners: { exception: Lino.on_store_exception }
      }));
  }
});

Lino.RemoteComboFieldElement = Ext.extend(Lino.ComboBox,{
  mode: 'remote',
  //~ forceSelection:false,
  minChars: 0, // default 4 is too much
//  queryDelay: 300, // default 500 is maybe slow
  queryParam: 'query', 
  //~ typeAhead: true,
  //~ selectOnFocus: true, // select any existing text in the field immediately on focus.
  resizable: true
  ,initList : function() {
      Lino.RemoteComboFieldElement.superclass.initList.call(this);
      if (this.pageTb) {
          
          var me = this;
          this.pageTb.on("beforechange", function(toolbar, o){
              if(me.contextParams)
                  Ext.apply(o, me.contextParams);
          });
          
          //~ 
          //~ var btn = ls_buttons
          //~ this.pageTb.items = this.pageTb.items.concat([btn]);
          //~ console.log("20131022 pageTb.items is", this.pageTb.items)
      }
  }
});

/*
Thanks to Animal for posting the basic idea:
http://www.sencha.com/forum/showthread.php?15842-2.0-SOLVED-Combobox-twintrigger-clear&p=76130&viewfull=1#post76130

*/
Lino.TwinCombo = Ext.extend(Lino.RemoteComboFieldElement,{
    trigger2Class : 'x-form-search-trigger',
    //~ trigger2Class : 'x-tbar-detail',
    initComponent : function() {
        //~ Lino.TwinCombo.superclass.initComponent.call(this);
        Lino.ComboBox.prototype.initComponent.call(this);
        Ext.form.TwinTriggerField.prototype.initComponent.call(this);
    },
    onTrigger2Click : function() {
        //~ console.log('onTrigger2Click',this,arguments);
    }
  });
//~ Lino.TwinCombo.prototype.initComponent = Ext.form.TwinTriggerField.prototype.initComponent;
Lino.TwinCombo.prototype.getTrigger = Ext.form.TwinTriggerField.prototype.getTrigger;
Lino.TwinCombo.prototype.getOuterSize = Ext.form.TwinTriggerField.prototype.getOuterSize;
Lino.TwinCombo.prototype.initTrigger = Ext.form.TwinTriggerField.prototype.initTrigger;
Lino.TwinCombo.prototype.onTrigger1Click = Ext.form.ComboBox.prototype.onTriggerClick;
//~ Lino.TwinCombo.prototype.onTrigger2Click = function() {
    //~ console.log('onTrigger2Click',arguments);
//~ };



Lino.SimpleRemoteComboFieldElement = Ext.extend(Lino.RemoteComboFieldElement,{
  displayField: 'value', 
  valueField: null,
  forceSelection: false
});




Lino.Window = Ext.extend(Ext.Window,{
  //~ layout: "fit", 
  closeAction : 'hide',
  renderTo: 'main_area', 
  constrain: true,
  maximized: true,
  draggable: false,
  width: 700,
  height: 500,
  maximizable: false,
  constructor : function (config) {
    if (config.main_item.params_panel) {
        config.layout = 'border';
        config.main_item.region = 'center';
        config.main_item.params_panel.region = 'north';
        //~ config.main_item.params_panel.autoHeight = false; // 20130924
        config.main_item.params_panel.hidden = config.main_item.params_panel_hidden;
        config.items = [config.main_item.params_panel, config.main_item];
        //~ 20130923b
    } else {
        config.layout = 'fit';
        config.items = config.main_item;
    }
    this.main_item = config.main_item; 

    if (typeof config.width == "string" && config.width.slice(-1) == "%") {
        config.width = Lino.perc2width(parseInt(config.width.slice(0, -1)));
    }
    
    delete config.main_item;
    //~ delete config.params_item;
    
    //~ this.main_item = config.items.get(0);
    this.main_item.containing_window = this;
    
    //~ console.log('20120110 Lino.Window.constructor() 1');
    //~ if (Lino.current_window) { // all windows except the top are closable
    if (this.main_item.hide_window_title) { 
      config.closable = false;
      config.frame = false;
      config.shadow = false;
      //~ config.border = true;
      //~ config.title = undefined;
      //~ config.tools = null;
      delete config.title;
      delete config.tools;
    } else {
      config.title = this.main_item.empty_title;
      config.closable = true;
      config.tools = [ 
        { qtip: 'permalink',
         handler: Lino.permalink_handler(this),
          id: "pin" },
        { qtip: "Save and close the window."
        , handler: Lino.close_and_save_handler(this),
         id: "save" }
      ];
      if (this.main_item.content_type && this.main_item.action_name != 'insert') {
        config.tools = [ {
          handler: Lino.help_text_editor,
          qtip: "Edit help texts for fields on this model.",
          scope: this.main_item,
          id: "gear"
        }].concat(config.tools);
      }
        
    //~ { qtip: '', handler: Lino.save_wc_handler(this), id: "save" }, 
    //~ { qtip: this.config.qtip, handler: Lino.save_wc_handler(this), id: "save" }, 
    //~ { qtip: 'Call doLayout() on main Container.', handler: Lino.refresh_handler(this), id: "refresh" },
    //~ if (this.main_item.params_panel) {
        //~ config.tools = config.tools.concat([ 
          //~ { qtip: 'Show/hide parameter panel', handler: this.toggle_params_panel, id: "gear", scope:this } 
        //~ ]);
    //~ }
    //~ if (config.closable !== false) {
      // if undefined, will take default behaviour
      //~ config.tools = config.tools.concat([ 
        //~ { qtip: 'close', handler: this.hide, id: "close", scope:this } 
      //~ ]);
    }
    
    this.main_item.config_containing_window(config);
    
    // console.log('20150514 Lino.Window.constructor() 2');
    Lino.Window.superclass.constructor.call(this, config);
    
    //~ console.log('20120110 Lino.Window.constructor() 3');
    
  },
  initComponent : function() {
    this.main_item.init_containing_window(this);
    Lino.Window.superclass.initComponent.call(this);
  
  },
  hide : function() { 
      this.main_item.do_when_clean(false,function() { 
        if (Lino.current_window){
          Lino.close_window(); 
        }
        });
          
  },
  hide_really : function() { 
    Lino.Window.superclass.hide.call(this);
  },
  onRender : function(ct, position){
    // console.log('20140829 Lino.Window.onRender() 1');
    Lino.Window.superclass.onRender.call(this, ct, position);
    var main_area = Ext.getCmp('main_area')
    //~ console.log('20120110 Lino.Window.onRender() 2');
  
    this.on('show', function(win) {
        // console.log('20140829 Lino.Window.on(show) : add resize handler');
        main_area.on('resize', win.onWindowResize, win);
    });
    this.on('hide', function(win) {
        // console.log('20140829 Lino.Window.on(hide) : remove resize handler');
        main_area.un('resize', win.onWindowResize, win);
    });
    // console.log('20140829 Lino.Window.onRender() 3');
  }
});


Ext.override(Ext.form.BasicForm,{
    my_loadRecord : function(record_data){
    //~ loadRecord : function(record){
        /* Same as ExtJS's loadRecord() (setValues()), except that we
        forward also the record_data to field.setValue(). This second
        parameter is used by Lino.Combobox.
        */
        // console.log('20181102 my_loadRecord', record_data)
        if(Ext.isArray(record_data)){ 
            for(var i = 0, len = record_data.length; i < len; i++){
                var v = record_data[i];
                var f = this.findField(v.id);
                if(f){
                    f.setValue(v.value, record_data);
                    if(this.trackResetOnLoad){
                        f.originalValue = f.getValue();
                    }
                }
            }
        }else{ 
            var field, id;
            for(id in record_data){
                if(!Ext.isFunction(record_data[id]) && (field = this.findField(id))){
                    // console.log('20181102 setValue', field, record_data[id]);
                    field.setValue(record_data[id], record_data);
                    if(this.trackResetOnLoad){
                        field.originalValue = field.getValue();
                        //~ if (field.hiddenField) {
                          //~ field.hiddenField.originalValue = field.hiddenField.value;
                        //~ }
                    }
                } // else console.log('20181102 not for ', id);
            }
        }
        return this;
    }
});




function initializeFooBarDropZone(cmp) {
    //~ console.log('initializeFooBarDropZone',cmp);
    cmp.dropTarget = new Ext.dd.DropTarget(cmp.bwrap, {
      //~ ddGroup     : 'gridDDGroup',
      notifyEnter : function(ddSource, e, data) {
        console.log('notifyEnter',ddSource,e,data);
        //Add some flare to invite drop.
        cmp.body.stopFx();
        cmp.body.highlight();
      },
      notifyDrop  : function(ddSource, e, data){
        console.log('notifyDrop',ddSource,e,data);
        // Reference the record (single selection) for readability
        //~ var selectedRecord = ddSource.dragData.selections[0];


        // Load the record into the form
        //~ formPanel.getForm().my_loadRecord(selectedRecord);


        // Delete record from the grid.  not really required.
        //~ ddSource.grid.store.remove(selectedRecord);

        return(true);
      }
    })
}



Lino.show_mti_child = function(fieldname,detail_handler) {
  //~ console.log('show_mti_child',this);
  //~ console.log('show_mti_child',panel.find("main_area"));
  rec = Lino.current_window.main_item.get_current_record();
  //~ rec = panel.get_current_record();
  if (rec) {
    //~ console.log('show_mti_child',Lino.current_window,rec);
    if (rec.phantom) {
      Lino.notify('Not allowed on phantom record.');
    }else if (rec.data[fieldname]) {
      //~ console.log('show_mti_child',rec.id);
      //~ detail_handler(Lino.current_window.main_item,{},{record_id:rec.id});
      detail_handler.run(null,{record_id:rec.id});
      //~ window.open(urlroot + '/' + rec.id);
      //~ document.location = urlroot + '/' + rec.id;
      //~ window.open(urlroot + '/' + rec.id,'_blank');
    } else {
      Lino.alert("Cannot show MTI child if checkbox is off.");
    }
  } else {
    Lino.notify('No current record.');
  }
};


/*
captureEvents utility by Aaron Conran
<http://www.sencha.com/learn/grid-faq/>

Ext.onReady(function(){
    var grid = new Ext.grid.GridPanel({
        ... 
    });
    captureEvents(grid);
});
*/
function captureEvents(observable) {
    Ext.util.Observable.capture(
        observable,
        function(eventName) {
            console.info(eventName);
        },
        this
    );		
}

// settings.SITE.get_plugin_snippets()




// from lino_xl.lib.sepa:iban/uppercasetextfield.js

Lino.UppercaseTextField = Ext.extend(Ext.form.TextField,{
  style: 'text-transform:uppercase;',
  listeners:{
    change: function(field, newValue, oldValue){
      // console.log("20140403 UppercaseTextField",newValue, newValue.toUpperCase());
      field.setRawValue(newValue.toUpperCase());
    }
  }
});


Lino.iban_renderer = function(
    value, metaData, record, rowIndex, colIndex, store) 
{
    var reg = new RegExp(".{4}", "g");
    if(value) {
        return value.replace(reg, function (a) { return a + ' '; });
    }
    return value;
}




// from lino.modlib.tinymce (media_name=tinymce-3.5.11):tinymce/tinymce.js

/* Copyright 2009-2018 Rumma & Ko Ltd */


Lino.edit_tinymce_text = function(panel, tinymce_options) {
  // edit the text in own window.
  // `panel` is the RichTextPanel
  // console.log(20150520, panel);
  //~ var rec = panel.get_current_record();
  var rec = panel.containing_panel.get_current_record();
  var value = rec ? rec.data[panel.editor.name] : '';
  var saving = false;
  var todo_after_save = false;
  var discard_changes = false;
  
  
  function save() {
    if (saving) {alert('tried to save again'); return; }
    var url = panel.containing_panel.get_record_url(rec.id);
    var params = Ext.apply({}, panel.containing_panel.get_base_params());
    params[panel.editor.name] = editor.getValue();
    //~ params.su = Lino.subst_user;
    //~ Lino.insert_subst_user(params);

    // 20150325 http://trac.lino-framework.org/ticket/131
    var action_name = panel.containing_panel.save_action_name;
    if (!action_name) 
        action_name = panel.containing_panel.action_name;
    params.an = action_name;

    var a = { 
      params: params, 
      method: 'PUT',
      url: url,
      failure: function() {
          //~ if (editor.ed.getContainer()) 
          editor.ed.setProgressState(0);
          todo_after_save = false;
          saving = false;
          console.log('tinymce.save() failed. sorry.',arguments);
        },
      success: function() {
        saving = false;
        //~ if (editor.ed.getContainer()) 
        editor.ed.setProgressState(0);
        rec.data[panel.editor.name] = editor.getValue();
        if(todo_after_save) {
            var fn = todo_after_save;
            todo_after_save = false;
            fn();
        }
        //~ panel.containing_window.set_current_record(rec);
        panel.refresh();
      }
    };
    //~ if (editor.ed.getContainer()) 
    editor.ed.setProgressState(1); // Show progress
    saving = true;
    //~ console.log(a);
    Ext.Ajax.request(a);
  };
  function save_callback() {
      save();
      //~ save(function(){editor.ed.setDirty(false);})
      /* return true have the save button disabled.  
      That's not perfect because the PUT is asynchronous 
      and the response is not yet known.
      */
      return true;
  }
  //~ var actions = [
    //~ {text:"Save",handler:save}
  //~ ]; 
  //~ console.log(20110610,panel.editor.disabled);
  var settings = {};
  Ext.apply(settings,{
        readonly: panel.editor.disabled,
        //~ language: "de",
        plugins : "save,emotions,spellchecker,advhr,insertdatetime,preview,table,searchreplace,template", 
        // Theme options - button# indicated the row# only
        theme_advanced_buttons1 : "save,cancel,|,bold,italic,underline,|,justifyleft,justifycenter,justifyright,fontselect,fontsizeselect,formatselect,|,search,replace",
        theme_advanced_buttons2 : "cut,copy,paste,template,|,bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,|,code,preview,|,forecolor,backcolor",
        theme_advanced_buttons3 : "insertdate,inserttime,|,spellchecker,advhr,,removeformat,|,sub,sup,|,charmap,emotions,|,tablecontrols",
        theme_advanced_resizing : false,
        convert_urls : false,
        save_onsavecallback : save_callback,
        save_enablewhendirty : true
        //~ save_oncancelcallback: on_cancel
  });
  Ext.apply(settings, tinymce_options);
  var editor = new Ext.ux.TinyMCE({
      value : value,
      tinymceSettings: settings
    });
  var win = new Ext.Window({
    title: rec.title, 
    //~ bbar: actions,
    layout: 'fit',
    items: editor,
    width: 500, 
    height: 400,
    minWidth: 100,
    minHeight: 100,
    modal: true,
    resizable: true,
    maximizable: true,
    //~ maximized: true,
    //~ closeAction: "close"
    closeAction: "hide"
    //~ hideMode: "offsets",
    //~ constrainHeader: true,
    //~ bodyStyle: 'padding: 10px'
  });

  //~ win.on('beforeclose',function() {
  win.on('beforehide',function() {
    if (todo_after_save) return false;
    if (discard_changes) return true;
    if (editor.isDirty()) {
        //~ var ok = false;
        //~ var allowClose = true;
        var config = {title:"Confirmation"};
        config.buttons = Ext.MessageBox.YESNOCANCEL;
        config.msg = "Save changes to text ?";
        config.modal = true;
        config.fn = function(buttonId,text,opt) {
          //~ console.log('do_when_clean',buttonId)
          if (buttonId == "yes") {
              /* we cancel this close, but save()'s onSuccess will call again.*/
              //~ allowClose = false;
              todo_after_save = function(){win.hide();}
              editor.ed.execCommand('mceSave');
              //~ editor.ed.save(function(){win.close();});
          } else if (buttonId == "no") { 
              discard_changes = true;
              win.hide()
          //~ } else if (buttonId == "cancel") { 
            //~ ok = true;
              //~ allowClose = false;
          //~ } else { 
            //~ console.log('unknwon buttonId:',buttonId);
          }
        }
        Ext.MessageBox.show(config);
        return false;
        //~ return allowClose;
    }
  });
  win.show();
}


Lino.RichTextPanel = Ext.extend(Ext.Panel,Lino.PanelMixin);
Lino.RichTextPanel = Ext.extend(Lino.RichTextPanel,Lino.FieldBoxMixin);
Lino.RichTextPanel = Ext.extend(Lino.RichTextPanel,{
    
  //~ initComponent : function(){
    //~ Lino.RichTextPanel.superclass.initComponent.call(this);
  //~ },
  constructor : function(config, params) {
      // console.log('20150520a Lino.RichTextPanel.initComponent', this);
    //~ var url = TEMPLATES_URL + config.ls_url + "/" + String(rec.id) + "/" + config.name;
    //~ var url = TEMPLATES_URL + config.ls_url + "/" + config.name;
    var t = this;
    var tinymce_options = {
        theme : "advanced",
        content_css: '/static/extjs/lino.css,/static/tinymce_content.css',

        theme_advanced_font_sizes : "12px,13px,14px,16px,18px,20px,24px",
        font_size_style_values : "12px,13px,14px,16px,18px,20px,24px",
        language: 'en',
        //~ template_external_list_url : url,
        theme_advanced_toolbar_location : "top",
        theme_advanced_toolbar_align : "left",
        theme_advanced_statusbar_location : "bottom",
        template_popup_width : 500,
        template_popup_height : 400,
        template_replace_values : { 
            data_field : function(element){ 
                //~ console.log(20110722,fieldName,t.containing_window.get_current_record()); 
                var fieldName = element.innerHTML;
                element.innerHTML = t.containing_panel.get_current_record().data[fieldName];
            } 
        }
      };
      
    var editorConfig = {
      tinymceSettings: {
        plugins : "noneditable,template", 
        // Theme options - button# indicated the row# only
        theme_advanced_buttons1 : "bold,italic,underline,|,justifyleft,justifycenter,justifyright,|,bullist,numlist,|,outdent,indent,|,undo,redo,|,removeformat,template",
        theme_advanced_buttons2 : "",
        theme_advanced_buttons3 : "", // ,|,sub,sup,|,charmap",      
        theme_advanced_resizing : false
        //~ save_onsavecallback : save_callback,
        //~ save_enablewhendirty : true
        //~ save_oncancelcallback: on_cancel
        
    }};
    Ext.apply(editorConfig.tinymceSettings, tinymce_options);
    //~ editorConfig.name = config.action_name;
    editorConfig.name = config.name;
    delete config.name;
    //~ config.title = config.label;
    //~ delete config.label;
    this.before_init(config,params);
    
    // console.log('20150520b Lino.RichTextPanel.initComponent', this);

    this.editor = new Ext.ux.TinyMCE(editorConfig);
    var t = this;
    function save_cmd() { 
        // console.log("20150902 save_cmd()", arguments);            
        var cw = t.get_containing_window();
        if (cw) {
            cw.main_item.save();
        }
    }
    this.editor.withEd(function(){
        if (!t.editor.ed.addShortcut(
            'ctrl+s', 'Save the content', save_cmd)) {
            console.log("20150902 addShortcut() failed");            
        };
        // t.editor.ed.onKeyDown.add(function(ed, e) {
        //     if (e.keyCode == 13 && e.ctrlKey) {
        //         save_cmd(); 
        //         return tinymce.dom.Event.cancel(e); 
        //         // e.preventDefault();
        //         // http://stackoverflow.com/questions/18971284/event-preventdefault-vs-return-false-no-jquery
        //     }
        // });
    });
    config.tools = [{
                      qtip: "Edit text in own window", 
                      id: "up",
                      handler: function(){
                        if(t.editor.isDirty()) {
                            var record = t.containing_panel.get_current_record();
                            record.data[t.editor.name] = t.editor.getValue();
                        }
                        Lino.edit_tinymce_text(t, tinymce_options)
                      }
                    }];
    
    config.items = this.editor;
    config.layout = "fit";
    // console.log('20150520c Lino.RichTextPanel.initComponent', this);
    Lino.RichTextPanel.superclass.constructor.call(this, config);
    // console.log('20150520d Lino.RichTextPanel.initComponent', this);
  },
  getValue : function(v) {
      return this.editor.getValue(v);
  },
  refresh : function(unused) { 
      this.refresh_with_after();
  },
  /* RichTextPanel */
  refresh_with_after : function(after) {
    // when called from the dashboard:    
    if (!this.containing_panel.get_current_record) { return; }
    var record = this.containing_panel.get_current_record();
    // console.log('20140504 RichTextPanel.refresh()',
    //             this.title,record.title, record);
    var todo = function() {
      if (record) {
        var url = '/tinymce/templates' 
              + this.containing_panel.ls_url + "/" 
              + String(record.id) + "/" + this.editor.name;
        // console.log('20150415 RichTextPanel.refresh()',url);
        if (this.editor.ed)
            this.editor.ed.settings.template_external_list_url = url;
            // else {console.log("20150415 no editor")}
        this.set_base_params(this.containing_panel.get_master_params());
        //~ var v = record ? this.format_data(record.data[this.editor.name]) : ''
        var v = this.format_data(record.data[this.editor.name])
        this.editor.setValue(v);
      } else {
        this.editor.setValue('(no data)');
      }
    };
    Lino.do_when_visible(this,todo.createDelegate(this));
  }
});
//~ Ext.override(Lino.RichTextPanel,Lino.FieldBoxMixin);


// from lino.modlib.comments:comments/comments.js

function toggle_visibility(id) {
   var e = document.getElementById(id);
   if(e.style.display == 'block'|| (e.style.display != 'block' && e.style.display != 'none'))
      e.style.display = 'none';
   else
      e.style.display = 'block';
}
Lino.main_menu = [ { "menu": { "items": [ { "handler": function() {Lino.about.About.show.run(null,{ "record_id": -99998 })}, "listeners": { "render": Lino.quicktip_renderer("Foo","A dialog window which displays some information about the site.") }, "text": "About" } ] }, "text": "Site" }, { "handler": function() {Lino.handle_home_button()}, "text": "Home" } ];
Ext.namespace('Lino.system.SiteConfigs')
Ext.namespace('Lino.countries.Countries')
Ext.namespace('Lino.countries.Places')
Ext.namespace('Lino.contacts.Partners')
Ext.namespace('Lino.contacts.Persons')
Ext.namespace('Lino.contacts.CompanyTypes')
Ext.namespace('Lino.contacts.Companies')
Ext.namespace('Lino.contacts.RoleTypes')
Ext.namespace('Lino.contacts.Roles')
Ext.namespace('Lino.gfks.ContentTypes')
Ext.namespace('Lino.gfks.HelpTexts')
Ext.namespace('Lino.checkdata.Problems')
Ext.namespace('Lino.checkdata.AllProblems')
Ext.namespace('Lino.checkdata.MyProblems')
Ext.namespace('Lino.cal.RemoteCalendars')
Ext.namespace('Lino.cal.Rooms')
Ext.namespace('Lino.cal.AllRooms')
Ext.namespace('Lino.cal.Calendars')
Ext.namespace('Lino.cal.Subscriptions')
Ext.namespace('Lino.cal.Tasks')
Ext.namespace('Lino.cal.MyTasks')
Ext.namespace('Lino.cal.GuestRoles')
Ext.namespace('Lino.cal.Guests')
Ext.namespace('Lino.cal.AllGuests')
Ext.namespace('Lino.cal.MyPresences')
Ext.namespace('Lino.cal.MyPendingPresences')
Ext.namespace('Lino.cal.MyGuests')
Ext.namespace('Lino.cal.EventTypes')
Ext.namespace('Lino.cal.RecurrentEvents')
Ext.namespace('Lino.cal.Events')
Ext.namespace('Lino.cal.AllEntries')
Ext.namespace('Lino.cal.PublicEntries')
Ext.namespace('Lino.cal.EntriesByDay')
Ext.namespace('Lino.cal.OneEvent')
Ext.namespace('Lino.cal.MyEntries')
Ext.namespace('Lino.cal.MyEntriesToday')
Ext.namespace('Lino.cal.MyAssignedEvents')
Ext.namespace('Lino.cal.OverdueAppointments')
Ext.namespace('Lino.cal.MyOverdueAppointments')
Ext.namespace('Lino.cal.MyUnconfirmedAppointments')
Ext.namespace('Lino.cal.EventPolicies')
Ext.namespace('Lino.cal.DailyPlannerRows')
Ext.namespace('Lino.cal.DailyPlanner')
Ext.namespace('Lino.cal.WeeklyPlanner')
Ext.namespace('Lino.uploads.Volumes')
Ext.namespace('Lino.uploads.UploadTypes')
Ext.namespace('Lino.uploads.Uploads')
Ext.namespace('Lino.uploads.AllUploads')
Ext.namespace('Lino.uploads.MyUploads')
Ext.namespace('Lino.uploads.AreaUploads')
Ext.namespace('Lino.ledger.Accounts')
Ext.namespace('Lino.ledger.Journals')
Ext.namespace('Lino.ledger.AccountingPeriods')
Ext.namespace('Lino.ledger.PaymentTerms')
Ext.namespace('Lino.ledger.Vouchers')
Ext.namespace('Lino.ledger.AllVouchers')
Ext.namespace('Lino.ledger.MatchRules')
Ext.namespace('Lino.ledger.PartnerVouchers')
Ext.namespace('Lino.ledger.GeneralAccountBalances')
Ext.namespace('Lino.ledger.PartnerBalancesByTradeType')
Ext.namespace('Lino.ledger.Movements')
Ext.namespace('Lino.ledger.AllMovements')
Ext.namespace('Lino.ledger.FiscalYears')
Ext.namespace('Lino.sepa.Accounts')
Ext.namespace('Lino.addresses.Addresses')
Ext.namespace('Lino.phones.ContactDetails')
Ext.namespace('Lino.households.Types')
Ext.namespace('Lino.households.Households')
Ext.namespace('Lino.households.Members')
Ext.namespace('Lino.humanlinks.Links')
Ext.namespace('Lino.topics.Topics')
Ext.namespace('Lino.topics.AllTopics')
Ext.namespace('Lino.topics.Interests')
Ext.namespace('Lino.topics.AllInterests')
Ext.namespace('Lino.lists.ListTypes')
Ext.namespace('Lino.lists.Lists')
Ext.namespace('Lino.lists.Members')
Ext.namespace('Lino.lists.AllMembers')
Ext.namespace('Lino.blogs.EntryTypes')
Ext.namespace('Lino.blogs.Entries')
Ext.namespace('Lino.blogs.MyEntries')
Ext.namespace('Lino.blogs.AllEntries')
Ext.namespace('Lino.blogs.LatestEntries')
Ext.namespace('Lino.excerpts.ExcerptTypes')
Ext.namespace('Lino.excerpts.Excerpts')
Ext.namespace('Lino.excerpts.AllExcerpts')
Ext.namespace('Lino.excerpts.MyExcerpts')
Ext.namespace('Lino.tinymce.TextFieldTemplates')
Ext.namespace('Lino.tinymce.MyTextFieldTemplates')
Ext.namespace('Lino.comments.CommentTypes')
Ext.namespace('Lino.comments.Comments')
Ext.namespace('Lino.comments.MyComments')
Ext.namespace('Lino.comments.AllComments')
Ext.namespace('Lino.comments.CommentsByX')
Ext.namespace('Lino.comments.RecentComments')
Ext.namespace('Lino.dashboard.Widgets')
Ext.namespace('Lino.dashboard.AllWidgets')
Ext.namespace('Lino.users.Users')
Ext.namespace('Lino.users.AllUsers')
Ext.namespace('Lino.users.UsersOverview')
Ext.namespace('Lino.users.MySettings')
Ext.namespace('Lino.users.Authorities')
Ext.namespace('Lino.ledger.LedgerInfoTable')
Ext.namespace('Lino.sessions.SessionTable')
Ext.namespace('Lino.countries.PlacesByPlace')
Ext.namespace('Lino.countries.PlacesByCountry')
Ext.namespace('Lino.contacts.PartnersByCity')
Ext.namespace('Lino.contacts.PartnersByCountry')
Ext.namespace('Lino.contacts.RolesByCompany')
Ext.namespace('Lino.contacts.RolesByPerson')
Ext.namespace('Lino.contacts.CompaniesByCompany')
Ext.namespace('Lino.checkdata.ProblemsByChecker')
Ext.namespace('Lino.cal.SubscriptionsByUser')
Ext.namespace('Lino.cal.SubscriptionsByCalendar')
Ext.namespace('Lino.cal.TasksByUser')
Ext.namespace('Lino.cal.GuestsByEvent')
Ext.namespace('Lino.cal.GuestsByRole')
Ext.namespace('Lino.cal.GuestsByPartner')
Ext.namespace('Lino.cal.EntriesByType')
Ext.namespace('Lino.cal.ConflictingEvents')
Ext.namespace('Lino.cal.EntriesByRoom')
Ext.namespace('Lino.cal.EntriesByGuest')
Ext.namespace('Lino.cal.PlannerByDay')
Ext.namespace('Lino.uploads.UploadsByType')
Ext.namespace('Lino.ledger.MatchRulesByAccount')
Ext.namespace('Lino.ledger.MatchRulesByJournal')
Ext.namespace('Lino.ledger.MovementsByVoucher')
Ext.namespace('Lino.ledger.MovementsByPartner')
Ext.namespace('Lino.ledger.MovementsByAccount')
Ext.namespace('Lino.ledger.MovementsByMatch')
Ext.namespace('Lino.sepa.AccountsByPartner')
Ext.namespace('Lino.addresses.AddressesByPartner')
Ext.namespace('Lino.addresses.AddressesByCity')
Ext.namespace('Lino.phones.ContactDetailsByPartner')
Ext.namespace('Lino.households.HouseholdsByType')
Ext.namespace('Lino.households.MembersByHousehold')
Ext.namespace('Lino.households.SiblingsByPerson')
Ext.namespace('Lino.households.MembersByPerson')
Ext.namespace('Lino.humanlinks.LinksByHuman')
Ext.namespace('Lino.topics.InterestsByPartner')
Ext.namespace('Lino.topics.InterestsByTopic')
Ext.namespace('Lino.lists.MembersByList')
Ext.namespace('Lino.lists.MembersByPartner')
Ext.namespace('Lino.blogs.EntriesByType')
Ext.namespace('Lino.excerpts.ExcerptsByType')
Ext.namespace('Lino.comments.CommentsByType')
Ext.namespace('Lino.dashboard.WidgetsByUser')
Ext.namespace('Lino.users.AuthoritiesGiven')
Ext.namespace('Lino.users.AuthoritiesTaken')
Ext.namespace('Lino.gfks.HelpTextsByModel')
Ext.namespace('Lino.checkdata.ProblemsByOwner')
Ext.namespace('Lino.cal.TasksByController')
Ext.namespace('Lino.cal.EntriesByController')
Ext.namespace('Lino.uploads.UploadsByController')
Ext.namespace('Lino.topics.InterestsByController')
Ext.namespace('Lino.blogs.EntriesByController')
Ext.namespace('Lino.excerpts.ExcerptsByOwner')
Ext.namespace('Lino.comments.CommentsByRFC')
Ext.namespace('Lino.about.SiteSearch')
Ext.namespace('Lino.gfks.BrokenGFKs')
Ext.namespace('Lino.gfks.BrokenGFKsByModel')
Ext.namespace('Lino.cal.DailyView')
Ext.namespace('Lino.cal.WeeklyView')
Ext.namespace('Lino.cal.MonthlyPlanner')
Ext.namespace('Lino.cal.MonthlyView')
Ext.namespace('Lino.ledger.VouchersByPartnerBase')
Ext.namespace('Lino.ledger.ExpectedMovements')
Ext.namespace('Lino.ledger.DebtsByAccount')
Ext.namespace('Lino.ledger.DebtsByPartner')
Ext.namespace('Lino.ledger.Debtors')
Ext.namespace('Lino.ledger.Creditors')
Ext.namespace('Lino.users.UserRoles')
Ext.namespace('Lino.about.About')
Ext.namespace('Lino.ledger.Situation')
Ext.namespace('Lino.system.YesNo')
Ext.namespace('Lino.system.Genders')
Ext.namespace('Lino.system.PeriodEvents')
Ext.namespace('Lino.checkdata.Checkers')
Ext.namespace('Lino.printing.BuildMethods')
Ext.namespace('Lino.users.UserTypes')
Ext.namespace('Lino.about.TimeZones')
Ext.namespace('Lino.xl.Priorities')
Ext.namespace('Lino.countries.PlaceTypes')
Ext.namespace('Lino.contacts.PartnerEvents')
Ext.namespace('Lino.contacts.CivilStates')
Ext.namespace('Lino.uploads.Shortcuts')
Ext.namespace('Lino.uploads.UploadAreas')
Ext.namespace('Lino.cal.DisplayColors')
Ext.namespace('Lino.cal.Weekdays')
Ext.namespace('Lino.cal.YearMonths')
Ext.namespace('Lino.cal.DurationUnits')
Ext.namespace('Lino.cal.Recurrencies')
Ext.namespace('Lino.cal.AccessClasses')
Ext.namespace('Lino.cal.PlannerColumns')
Ext.namespace('Lino.cal.TaskStates')
Ext.namespace('Lino.cal.GuestStates')
Ext.namespace('Lino.cal.EventEvents')
Ext.namespace('Lino.cal.EntryStates')
Ext.namespace('Lino.cal.ReservationStates')
Ext.namespace('Lino.ledger.JournalGroups')
Ext.namespace('Lino.ledger.PeriodStates')
Ext.namespace('Lino.ledger.CommonAccounts')
Ext.namespace('Lino.ledger.VoucherTypes')
Ext.namespace('Lino.ledger.TradeTypes')
Ext.namespace('Lino.ledger.VoucherStates')
Ext.namespace('Lino.addresses.AddressTypes')
Ext.namespace('Lino.addresses.DataSources')
Ext.namespace('Lino.phones.ContactDetailTypes')
Ext.namespace('Lino.households.MemberDependencies')
Ext.namespace('Lino.households.MemberRoles')
Ext.namespace('Lino.humanlinks.LinkTypes')
Ext.namespace('Lino.excerpts.Shortcuts')
Ext.namespace('Lino.comments.CommentEvents')

// ChoiceLists: 
Lino.system.YesNo = [ [ "y", "Yes" ], [ "n", "No" ] ];
Lino.system.Genders = [ [ "M", "Male" ], [ "F", "Female" ] ];
Lino.system.PeriodEvents = [ [ "10", "Starts" ], [ "20", "Is active" ], [ "30", "Ends" ] ];
Lino.checkdata.Checkers = [ [ "addresses.AddressOwnerChecker", "Check for missing or non-primary address records" ], [ "cal.ConflictingEventsChecker", "Check for conflicting calendar entries" ], [ "cal.EventGuestChecker", "Entries without participants" ], [ "cal.LongEntryChecker", "Too long-lasting calendar entries" ], [ "cal.ObsoleteEventTypeChecker", "Obsolete generated calendar entries" ], [ "countries.PlaceChecker", "Check data of geographical places." ], [ "ledger.VoucherChecker", "Check integrity of ledger vouchers" ], [ "phones.ContactDetailsOwnerChecker", "Check for mismatches between contact details and owner" ], [ "printing.CachedPrintableChecker", "Check for missing target files" ], [ "system.BleachChecker", "Find unbleached html content" ] ];
Lino.printing.BuildMethods = [ [ "appydoc", "AppyDocBuildMethod" ], [ "appyodt", "AppyOdtBuildMethod" ], [ "appypdf", "AppyPdfBuildMethod" ], [ "appyrtf", "AppyRtfBuildMethod" ], [ "latex", "LatexBuildMethod" ], [ "rtf", "RtfBuildMethod" ], [ "weasy2html", "WeasyHtmlBuildMethod" ], [ "weasy2pdf", "WeasyPdfBuildMethod" ], [ "xml", "XmlBuildMethod" ] ];
Lino.users.UserTypes = [ [ "000", "000 (000 (Anonymous))" ], [ "100", "100 (100 (User))" ], [ "200", "200 (200 (Collector))" ], [ "300", "300 (300 (Project manager))" ], [ "800", "800 (800 (Staff))" ], [ "900", "900 (900 (Administrator))" ] ];
Lino.about.TimeZones = [ [ "01", "UTC" ] ];
Lino.xl.Priorities = [ [ "10", "Critical" ], [ "20", "High" ], [ "30", "Normal" ], [ "40", "Low" ], [ "50", "Very Low" ] ];
Lino.countries.PlaceTypes = [ [ "10", "Member State" ], [ "11", "Division" ], [ "12", "Region" ], [ "13", "Community" ], [ "14", "Territory" ], [ "20", "County" ], [ "21", "Province" ], [ "22", "Shire" ], [ "23", "Subregion" ], [ "24", "Department" ], [ "25", "Arrondissement" ], [ "26", "Prefecture" ], [ "27", "District" ], [ "28", "Sector" ], [ "50", "City" ], [ "51", "Town" ], [ "52", "Municipality" ], [ "54", "Parish" ], [ "55", "Township" ], [ "56", "Quarter" ], [ "61", "Borough" ], [ "62", "Small borough" ], [ "70", "Village" ] ];
Lino.contacts.PartnerEvents = [ [ "has_open_movements", "Has open movements" ] ];
Lino.contacts.CivilStates = [ [ "10", "Single" ], [ "20", "Married" ], [ "30", "Widowed" ], [ "40", "Divorced" ], [ "50", "Separated" ], [ "51", "De facto separated" ], [ "60", "Cohabitating" ] ];
Lino.uploads.Shortcuts = [  ];
Lino.uploads.UploadAreas = [ [ "90", "Uploads" ] ];
Lino.cal.DisplayColors = [ [ "White", "White" ], [ "Silver", "Silver" ], [ "Gray", "Gray" ], [ "Black", "Black" ], [ "Red", "Red" ], [ "Maroon", "Maroon" ], [ "Yellow", "Yellow" ], [ "Olive", "Olive" ], [ "Lime", "Lime" ], [ "Green", "Green" ], [ "Aqua", "Aqua" ], [ "Teal", "Teal" ], [ "Blue", "Blue" ], [ "Navy", "Navy" ], [ "Fuchsia", "Fuchsia" ], [ "Purple", "Purple" ] ];
Lino.cal.Weekdays = [ [ "1", "Monday" ], [ "2", "Tuesday" ], [ "3", "Wednesday" ], [ "4", "Thursday" ], [ "5", "Friday" ], [ "6", "Saturday" ], [ "7", "Sunday" ] ];
Lino.cal.YearMonths = [ [ "1", "January" ], [ "2", "February" ], [ "3", "March" ], [ "4", "April" ], [ "5", "May" ], [ "6", "June" ], [ "7", "July" ], [ "8", "August" ], [ "9", "September" ], [ "10", "October" ], [ "11", "November" ], [ "12", "December" ] ];
Lino.cal.DurationUnits = [ [ "s", "seconds" ], [ "m", "minutes" ], [ "h", "hours" ], [ "D", "days" ], [ "W", "weeks" ], [ "M", "months" ], [ "Y", "years" ] ];
Lino.cal.Recurrencies = [ [ "O", "once" ], [ "D", "daily" ], [ "W", "weekly" ], [ "M", "monthly" ], [ "Y", "yearly" ], [ "P", "per weekday" ], [ "E", "Relative to Easter" ] ];
Lino.cal.AccessClasses = [ [ "10", "Private" ], [ "20", "Show busy" ], [ "30", "Public" ] ];
Lino.cal.PlannerColumns = [ [ "10", "External" ], [ "20", "Internal" ] ];
Lino.cal.TaskStates = [ [ "10", "To do" ], [ "15", "Important" ], [ "20", "Started" ], [ "30", "Done" ], [ "50", "Cancelled" ] ];
Lino.cal.GuestStates = [ [ "10", "Invited" ], [ "40", "Present" ], [ "50", "Missing" ], [ "60", "Excused" ] ];
Lino.cal.EventEvents = [ [ "10", "Stable" ], [ "20", "Unstable" ] ];
Lino.cal.EntryStates = [ [ "10", "Suggested" ], [ "20", "Draft" ], [ "50", "Took place" ], [ "70", "Cancelled" ] ];
Lino.cal.ReservationStates = [  ];
Lino.ledger.JournalGroups = [ [ "10", "Sales" ], [ "20", "Purchases" ], [ "30", "Wages" ], [ "40", "Financial" ], [ "50", "VAT" ], [ "60", "Miscellaneous transactions" ] ];
Lino.ledger.PeriodStates = [ [ "10", "Open" ], [ "20", "Closed" ] ];
Lino.ledger.CommonAccounts = [ [ "1000", "Net income (loss)" ], [ "4000", "Customers" ], [ "4300", "Pending Payment Orders" ], [ "4400", "Suppliers" ], [ "4500", "Employees" ], [ "4510", "VAT due" ], [ "4511", "VAT returnable" ], [ "4512", "VAT deductible" ], [ "4513", "VAT declared" ], [ "4550", "Internal clearings" ], [ "4600", "Tax Offices" ], [ "4900", "Waiting account" ], [ "5500", "BestBank" ], [ "5700", "Cash" ], [ "6010", "Purchase of services" ], [ "6020", "Purchase of investments" ], [ "6040", "Purchase of goods" ], [ "6300", "Wages" ], [ "6900", "Net income" ], [ "7000", "Sales" ], [ "7900", "Net loss" ] ];
Lino.ledger.VoucherTypes = [  ];
Lino.ledger.TradeTypes = [ [ "S", "Sales" ], [ "P", "Purchases" ], [ "W", "Wages" ], [ "T", "Taxes" ], [ "C", "Clearings" ], [ "B", "Bank payment orders" ] ];
Lino.ledger.VoucherStates = [ [ "10", "Draft" ], [ "20", "Registered" ], [ "30", "Signed" ], [ "40", "Cancelled" ] ];
Lino.addresses.AddressTypes = [ [ "01", "Official address" ], [ "02", "Unverified address" ], [ "03", "Declared address" ], [ "04", "Reference address" ], [ "98", "Obsolete" ], [ "99", "Other" ] ];
Lino.addresses.DataSources = [ [ "01", "Manually entered" ], [ "02", "Read from eID" ] ];
Lino.phones.ContactDetailTypes = [ [ "010", "E-Mail" ], [ "020", "Mobile" ], [ "030", "Phone" ], [ "040", "Website" ], [ "050", "Fax" ], [ "090", "Other" ] ];
Lino.households.MemberDependencies = [ [ "01", "At full charge" ], [ "02", "Not at charge" ], [ "03", "At shared charge" ] ];
Lino.households.MemberRoles = [ [ "01", "Head of household" ], [ "02", "Spouse" ], [ "03", "Partner" ], [ "04", "Cohabitant" ], [ "05", "Child" ], [ "06", "Relative" ], [ "07", "Adopted child" ], [ "08", "Foster-child" ], [ "10", "Other" ] ];
Lino.humanlinks.LinkTypes = [ [ "01", "Father(Mother)" ], [ "02", "Adoptive father(Adoptive mother)" ], [ "03", "Grandfather(Grandmother)" ], [ "05", "Husband(Wife)" ], [ "06", "Friend(Friend)" ], [ "07", "Partner(Partner)" ], [ "08", "Stepfather(Stepmother)" ], [ "09", "Foster father(Foster mother)" ], [ "10", "Brother(Sister)" ], [ "11", "Cousin(Cousin)" ], [ "12", "Uncle(Aunt)" ], [ "80", "Relative(Relative)" ], [ "90", "Other(Other)" ] ];
Lino.excerpts.Shortcuts = [  ];
Lino.comments.CommentEvents = [ [ "10", "Created" ], [ "20", "Modified" ] ];

Lino.excerpts.Excerpts.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var start_date1 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Date from</span>", "listeners": { "render": Lino.quicktip_renderer("Date from","(excerpts.Excerpts.start_date) Start of observed date range") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date2 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">until</span>", "listeners": { "render": Lino.quicktip_renderer("until","(excerpts.Excerpts.end_date) End of observed date range") }, "name": "end_date", "selectOnFocus": true, "value": null });
    var pcertifying3 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Certifying excerpts", "forceSelection": true, "hiddenName": "pcertifyingHidden", "listeners": { "render": Lino.quicktip_renderer("Certifying excerpts","(excerpts.Excerpts.pcertifying) ") }, "name": "pcertifying", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.YesNo) });
    var main_1_panel4 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 31, "items": start_date1, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 31, "items": end_date2, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 36, "items": pcertifying3, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var user8 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Author</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(excerpts.Excerpts.user) The author of this object.\nA pointer to lino.modlib.users.models.User.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/user" }) }), "value": null });
    var excerpt_type9 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Excerpt Type...", "fieldLabel": "Excerpt Type", "hiddenName": "excerpt_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Excerpt Type","(excerpts.Excerpts.excerpt_type) ") }, "name": "excerpt_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.excerpts.ExcerptTypes.detail,Lino.excerpts.ExcerptTypes.insert)}, "pageSize": 20, "related_actor_id": "excerpts.ExcerptTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/excerpt_type" }) }) });
    var main_2_panel10 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": user8, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": excerpt_type9, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    this.items = [ main_1_panel4, main_2_panel10 ];
    this.fields = [ start_date1, end_date2, pcertifying3, user8, excerpt_type9 ];
    Lino.excerpts.Excerpts.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.MyEntries.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var start_date14 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Date from</span>", "listeners": { "render": Lino.quicktip_renderer("Date from","(cal.MyEntries.start_date) Start of observed date range") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date15 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">until</span>", "listeners": { "render": Lino.quicktip_renderer("until","(cal.MyEntries.end_date) End of observed date range") }, "name": "end_date", "selectOnFocus": true, "value": null });
    var observed_event16 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Observed event", "forceSelection": true, "hiddenName": "observed_eventHidden", "listeners": { "render": Lino.quicktip_renderer("Observed event","(cal.MyEntries.observed_event) ") }, "name": "observed_event", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.cal.EventEvents) });
    var state17 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">State</span>", "forceSelection": true, "hiddenName": "stateHidden", "listeners": { "render": Lino.quicktip_renderer("State","(cal.MyEntries.state) Show only entries having this state.") }, "name": "state", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.cal.EntryStates) });
    var main_1_panel18 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 32, "items": start_date14, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 32, "items": end_date15, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 17, "items": observed_event16, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 17, "items": state17, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var user23 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Managed by</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Managed by","(cal.MyEntries.user) Show only entries having this user as author.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/MyEntries/user" }) }) });
    var assigned_to24 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Assigned to</span>", "hiddenName": "assigned_toHidden", "listeners": { "render": Lino.quicktip_renderer("Assigned to","(cal.MyEntries.assigned_to) Show only entries assigned to this user.") }, "name": "assigned_to", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/MyEntries/assigned_to" }) }) });
    var event_type25 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Calendar entry type...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Calendar entry type</span>", "hiddenName": "event_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Calendar entry type","(cal.MyEntries.event_type) Show only entries having this type.") }, "name": "event_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.EventTypes.detail,Lino.cal.EventTypes.insert)}, "pageSize": 20, "related_actor_id": "cal.EventTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/MyEntries/event_type" }) }) });
    var room26 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Room...", "fieldLabel": "Room", "hiddenName": "roomHidden", "listeners": { "render": Lino.quicktip_renderer("Room","(cal.MyEntries.room) ") }, "name": "room", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.Rooms.detail,Lino.cal.Rooms.insert)}, "pageSize": 20, "related_actor_id": "cal.Rooms", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/MyEntries/room" }) }) });
    var show_appointments27 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Appointments</span>", "forceSelection": true, "hiddenName": "show_appointmentsHidden", "listeners": { "render": Lino.quicktip_renderer("Appointments","(cal.MyEntries.show_appointments) Whether only appointments should be shown.  \"Yes\" means only\nappointments, \"No\" means no appointments and leaving it to\nblank shows both types of events.") }, "name": "show_appointments", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.YesNo) });
    var main_2_panel28 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 21, "items": user23, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": assigned_to24, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": event_type25, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": room26, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 15, "items": show_appointments27, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    this.items = [ main_1_panel18, main_2_panel28 ];
    this.fields = [ start_date14, end_date15, observed_event16, state17, user23, assigned_to24, event_type25, room26, show_appointments27 ];
    Lino.cal.MyEntries.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.PartnerBalancesByTradeType.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var start_period35 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Accounting period...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Period from</span>", "hiddenName": "start_periodHidden", "listeners": { "render": Lino.quicktip_renderer("Period from","(ledger.PartnerBalancesByTradeType.start_period) Start of observed period range") }, "name": "start_period", "pageSize": 20, "preferred_width": 10, "related_actor_id": "ledger.AccountingPeriods", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/PartnerBalancesByTradeType/start_period" }) }) });
    var end_period36 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Accounting period...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">until</span>", "hiddenName": "end_periodHidden", "listeners": { "render": Lino.quicktip_renderer("until","(ledger.PartnerBalancesByTradeType.end_period) Optional end of observed period range. Leave empty to consider only the Start period.") }, "name": "end_period", "pageSize": 20, "preferred_width": 10, "related_actor_id": "ledger.AccountingPeriods", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/PartnerBalancesByTradeType/end_period" }) }) });
    this.items = [ { "autoHeight": true, "flex": 50, "items": start_period35, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": end_period36, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ start_period35, end_period36 ];
    Lino.ledger.PartnerBalancesByTradeType.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.checkdata.Problems.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var user40 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Responsible</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Responsible","(checkdata.Problems.user) The user reponsible\nfor fixing this problem.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/checkdata/Problems/user" }) }), "value": null });
    var checker41 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Checker</span>", "forceSelection": true, "hiddenName": "checkerHidden", "listeners": { "render": Lino.quicktip_renderer("Checker","(checkdata.Problems.checker) The Checker which reported\nthis problem.") }, "name": "checker", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.checkdata.Checkers), "value": null });
    this.items = [ { "autoHeight": true, "flex": 50, "items": user40, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": checker41, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user40, checker41 ];
    Lino.checkdata.Problems.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.tinymce.TextFieldTemplates.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var user45 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Author</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(tinymce.TextFieldTemplates.user) The author of this object.\nA pointer to lino.modlib.users.models.User.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tinymce/TextFieldTemplates/user" }) }), "value": null });
    this.items = [ { "autoHeight": true, "items": user45, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user45 ];
    Lino.tinymce.TextFieldTemplates.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.Vouchers.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var journal48 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Journal...", "fieldLabel": "Journal", "hiddenName": "journalHidden", "listeners": { "render": Lino.quicktip_renderer("Journal","(ledger.Vouchers.journal) ") }, "name": "journal", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.ledger.Journals.detail,Lino.ledger.Journals.insert)}, "pageSize": 20, "related_actor_id": "ledger.Journals", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/Vouchers/journal" }) }) });
    var start_period49 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Accounting period...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Period from</span>", "hiddenName": "start_periodHidden", "listeners": { "render": Lino.quicktip_renderer("Period from","(ledger.Vouchers.start_period) Start of observed period range") }, "name": "start_period", "pageSize": 20, "preferred_width": 10, "related_actor_id": "ledger.AccountingPeriods", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/Vouchers/start_period" }) }) });
    var end_period50 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Accounting period...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Period until</span>", "hiddenName": "end_periodHidden", "listeners": { "render": Lino.quicktip_renderer("Period until","(ledger.Vouchers.end_period) Optional end of observed period range. Leave empty to consider only the Start period.") }, "name": "end_period", "pageSize": 20, "preferred_width": 10, "related_actor_id": "ledger.AccountingPeriods", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/Vouchers/end_period" }) }) });
    var state51 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">State</span>", "forceSelection": true, "hiddenName": "stateHidden", "listeners": { "render": Lino.quicktip_renderer("State","(ledger.Vouchers.state) The workflow state of this voucher. Choices are defined in\nVoucherStates") }, "name": "state", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.ledger.VoucherStates), "value": null });
    var user52 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Author</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(ledger.Vouchers.user) The author of this object.\nA pointer to lino.modlib.users.models.User.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/Vouchers/user" }) }), "value": null });
    this.items = [ { "autoHeight": true, "flex": 22, "items": journal48, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 22, "items": start_period49, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 22, "items": end_period50, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 8, "items": state51, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 22, "items": user52, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ journal48, start_period49, end_period50, state51, user52 ];
    Lino.ledger.Vouchers.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.blogs.Entries.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var user59 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Author</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(blogs.Entries.user) The author of this object.\nA pointer to lino.modlib.users.models.User.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/blogs/Entries/user" }) }), "value": null });
    this.items = [ { "autoHeight": true, "items": user59, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user59 ];
    Lino.blogs.Entries.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.GeneralAccountBalances.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var start_period62 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Accounting period...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Period from</span>", "hiddenName": "start_periodHidden", "listeners": { "render": Lino.quicktip_renderer("Period from","(ledger.GeneralAccountBalances.start_period) Start of observed period range") }, "name": "start_period", "pageSize": 20, "preferred_width": 10, "related_actor_id": "ledger.AccountingPeriods", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/GeneralAccountBalances/start_period" }) }) });
    var end_period63 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Accounting period...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">until</span>", "hiddenName": "end_periodHidden", "listeners": { "render": Lino.quicktip_renderer("until","(ledger.GeneralAccountBalances.end_period) Optional end of observed period range. Leave empty to consider only the Start period.") }, "name": "end_period", "pageSize": 20, "preferred_width": 10, "related_actor_id": "ledger.AccountingPeriods", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/GeneralAccountBalances/end_period" }) }) });
    this.items = [ { "autoHeight": true, "flex": 50, "items": start_period62, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": end_period63, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ start_period62, end_period63 ];
    Lino.ledger.GeneralAccountBalances.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.Situation.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var today67 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Situation on</span>", "listeners": { "render": Lino.quicktip_renderer("Situation on","(ledger.Situation.today) Date of observation") }, "name": "today", "selectOnFocus": true });
    this.items = [ { "autoHeight": true, "items": today67, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ today67 ];
    Lino.ledger.Situation.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.Movements.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var start_period70 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Accounting period...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Period from</span>", "hiddenName": "start_periodHidden", "listeners": { "render": Lino.quicktip_renderer("Period from","(ledger.Movements.start_period) Start of observed period range") }, "name": "start_period", "pageSize": 20, "preferred_width": 10, "related_actor_id": "ledger.AccountingPeriods", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/Movements/start_period" }) }) });
    var end_period71 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Accounting period...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Period until</span>", "hiddenName": "end_periodHidden", "listeners": { "render": Lino.quicktip_renderer("Period until","(ledger.Movements.end_period) Optional end of observed period range. Leave empty to consider only the Start period.") }, "name": "end_period", "pageSize": 20, "preferred_width": 10, "related_actor_id": "ledger.AccountingPeriods", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/Movements/end_period" }) }) });
    var start_date72 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Date from</span>", "listeners": { "render": Lino.quicktip_renderer("Date from","(ledger.Movements.start_date) Start of observed date range") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date73 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">until</span>", "listeners": { "render": Lino.quicktip_renderer("until","(ledger.Movements.end_date) End of observed date range") }, "name": "end_date", "selectOnFocus": true, "value": null });
    var cleared74 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Show cleared movements", "forceSelection": true, "hiddenName": "clearedHidden", "listeners": { "render": Lino.quicktip_renderer("Show cleared movements","(ledger.Movements.cleared) ") }, "name": "cleared", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.YesNo) });
    var main_1_panel75 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 24, "items": start_period70, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 24, "items": end_period71, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": start_date72, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": end_date73, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 18, "items": cleared74, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var journal_group81 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Journal group", "forceSelection": true, "hiddenName": "journal_groupHidden", "listeners": { "render": Lino.quicktip_renderer("Journal group","(ledger.Movements.journal_group) ") }, "name": "journal_group", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.ledger.JournalGroups) });
    var journal82 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Journal...", "fieldLabel": "Journal", "hiddenName": "journalHidden", "listeners": { "render": Lino.quicktip_renderer("Journal","(ledger.Movements.journal) ") }, "name": "journal", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.ledger.Journals.detail,Lino.ledger.Journals.insert)}, "pageSize": 20, "related_actor_id": "ledger.Journals", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/Movements/journal" }) }) });
    var year83 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Fiscal year...", "fieldLabel": "Fiscal year", "hiddenName": "yearHidden", "listeners": { "render": Lino.quicktip_renderer("Fiscal year","(ledger.Movements.year) ") }, "name": "year", "pageSize": 20, "preferred_width": 10, "related_actor_id": "ledger.FiscalYears", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/Movements/year" }) }) });
    var partner84 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Partner...", "fieldLabel": "Partner", "hiddenName": "partnerHidden", "listeners": { "render": Lino.quicktip_renderer("Partner","(ledger.Movements.partner) ") }, "name": "partner", "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Partners", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/Movements/partner" }) }) });
    var account85 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Account...", "fieldLabel": "Account", "hiddenName": "accountHidden", "listeners": { "render": Lino.quicktip_renderer("Account","(ledger.Movements.account) ") }, "name": "account", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.ledger.Accounts.detail,Lino.ledger.Accounts.insert)}, "pageSize": 20, "related_actor_id": "ledger.Accounts", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/Movements/account" }) }) });
    var main_2_panel86 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 8, "items": journal_group81, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 22, "items": journal82, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 22, "items": year83, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 22, "items": partner84, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 22, "items": account85, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    this.items = [ main_1_panel75, main_2_panel86 ];
    this.fields = [ start_period70, end_period71, start_date72, end_date73, cleared74, journal_group81, journal82, year83, partner84, account85 ];
    Lino.ledger.Movements.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.ExpectedMovements.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var trade_type93 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Trade type", "forceSelection": true, "hiddenName": "trade_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Trade type","(ledger.ExpectedMovements.trade_type) ") }, "name": "trade_type", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.ledger.TradeTypes) });
    var date_until94 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Date until", "listeners": { "render": Lino.quicktip_renderer("Date until","(ledger.ExpectedMovements.date_until) ") }, "name": "date_until", "selectOnFocus": true });
    var from_journal95 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Journal...", "fieldLabel": "Journal", "hiddenName": "from_journalHidden", "listeners": { "render": Lino.quicktip_renderer("Journal","(ledger.ExpectedMovements.from_journal) ") }, "name": "from_journal", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.ledger.Journals.detail,Lino.ledger.Journals.insert)}, "pageSize": 20, "related_actor_id": "ledger.Journals", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/ExpectedMovements/from_journal" }) }) });
    var for_journal96 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Journal...", "fieldLabel": "Clearable by", "hiddenName": "for_journalHidden", "listeners": { "render": Lino.quicktip_renderer("Clearable by","(ledger.ExpectedMovements.for_journal) ") }, "name": "for_journal", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.ledger.Journals.detail,Lino.ledger.Journals.insert)}, "pageSize": 20, "related_actor_id": "ledger.Journals", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/ExpectedMovements/for_journal" }) }) });
    var partner97 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Partner...", "fieldLabel": "Partner", "hiddenName": "partnerHidden", "listeners": { "render": Lino.quicktip_renderer("Partner","(ledger.ExpectedMovements.partner) ") }, "name": "partner", "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Partners", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/ExpectedMovements/partner" }) }) });
    var account98 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Account...", "fieldLabel": "Account", "hiddenName": "accountHidden", "listeners": { "render": Lino.quicktip_renderer("Account","(ledger.ExpectedMovements.account) ") }, "name": "account", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.ledger.Accounts.detail,Lino.ledger.Accounts.insert)}, "pageSize": 20, "related_actor_id": "ledger.Accounts", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/ExpectedMovements/account" }) }) });
    var show_sepa99 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "show sepa", "forceSelection": true, "hiddenName": "show_sepaHidden", "listeners": { "render": Lino.quicktip_renderer("show sepa","(ledger.ExpectedMovements.show_sepa) ") }, "name": "show_sepa", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.YesNo) });
    this.items = [ { "autoHeight": true, "flex": 6, "items": trade_type93, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 11, "items": date_until94, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 17, "items": from_journal95, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 17, "items": for_journal96, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 17, "items": partner97, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 17, "items": account98, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 13, "items": show_sepa99, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ trade_type93, date_until94, from_journal95, for_journal96, partner97, account98, show_sepa99 ];
    Lino.ledger.ExpectedMovements.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.Guests.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var start_date108 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Date from</span>", "listeners": { "render": Lino.quicktip_renderer("Date from","(cal.Guests.start_date) Start of observed date range") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date109 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">until</span>", "listeners": { "render": Lino.quicktip_renderer("until","(cal.Guests.end_date) End of observed date range") }, "name": "end_date", "selectOnFocus": true, "value": null });
    var user110 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Responsible user</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Responsible user","(cal.Guests.user) Only rows managed by this user.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Guests/user" }) }) });
    var event_state111 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Event state</span>", "forceSelection": true, "hiddenName": "event_stateHidden", "listeners": { "render": Lino.quicktip_renderer("Event state","(cal.Guests.event_state) Only rows on calendar entries having this state.") }, "name": "event_state", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.cal.EntryStates) });
    var guest_state112 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Guest state</span>", "forceSelection": true, "hiddenName": "guest_stateHidden", "listeners": { "render": Lino.quicktip_renderer("Guest state","(cal.Guests.guest_state) Only rows having this guest state.") }, "name": "guest_state", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.cal.GuestStates) });
    var main_1_panel113 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 21, "items": start_date108, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": end_date109, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": user110, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 11, "items": event_state111, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 11, "items": guest_state112, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var partner119 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "Person", "hiddenName": "partnerHidden", "listeners": { "render": Lino.quicktip_renderer("Person","(cal.Guests.partner) ") }, "name": "partner", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Guests/partner" }) }) });
    this.items = [ main_1_panel113, { "anchor": "-20", "autoHeight": true, "items": partner119, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ start_date108, end_date109, user110, event_state111, guest_state112, partner119 ];
    Lino.cal.Guests.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.contacts.Partners.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var start_date122 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Date from</span>", "listeners": { "render": Lino.quicktip_renderer("Date from","(contacts.Partners.start_date) Start of observed date range") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date123 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">until</span>", "listeners": { "render": Lino.quicktip_renderer("until","(contacts.Partners.end_date) End of observed date range") }, "name": "end_date", "selectOnFocus": true, "value": null });
    var observed_event124 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Observed event</span>", "forceSelection": true, "hiddenName": "observed_eventHidden", "listeners": { "render": Lino.quicktip_renderer("Observed event","(contacts.Partners.observed_event) Extended filter criteria") }, "name": "observed_event", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.contacts.PartnerEvents) });
    var company125 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Organization...", "fieldLabel": "Organization", "hiddenName": "companyHidden", "listeners": { "render": Lino.quicktip_renderer("Organization","(contacts.Partners.company) ") }, "name": "company", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Companies.detail,Lino.contacts.Companies.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Companies", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Partners/company" }) }) });
    var function126 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Function...", "fieldLabel": "Function", "hiddenName": "functionHidden", "listeners": { "render": Lino.quicktip_renderer("Function","(contacts.Partners.function) ") }, "name": "function", "pageSize": 20, "related_actor_id": "contacts.RoleTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Partners/function" }) }) });
    var topic127 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Topic...", "fieldLabel": "Topic", "hiddenName": "topicHidden", "listeners": { "render": Lino.quicktip_renderer("Topic","(contacts.Partners.topic) ") }, "name": "topic", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.topics.Topics.detail,Lino.topics.Topics.insert)}, "pageSize": 20, "related_actor_id": "topics.Topics", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Partners/topic" }) }) });
    var aged_from128 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Aged from</span>", "listeners": { "render": Lino.quicktip_renderer("Aged from","(contacts.Partners.aged_from) Select only persons aged at least the given number of years.") }, "name": "aged_from", "selectOnFocus": true });
    var aged_to129 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Aged to</span>", "listeners": { "render": Lino.quicktip_renderer("Aged to","(contacts.Partners.aged_to) Select only persons aged at most the given number of years.") }, "name": "aged_to", "selectOnFocus": true });
    var gender130 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Gender</span>", "forceSelection": true, "hiddenName": "genderHidden", "listeners": { "render": Lino.quicktip_renderer("Gender","(contacts.Partners.gender) The sex of this person (male or female).") }, "name": "gender", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.Genders), "value": null });
    this.items = [ { "autoHeight": true, "flex": 11, "items": start_date122, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 11, "items": end_date123, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 6, "items": observed_event124, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 18, "items": company125, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 18, "items": function126, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 18, "items": topic127, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 4, "items": aged_from128, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 4, "items": aged_to129, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 6, "items": gender130, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ start_date122, end_date123, observed_event124, company125, function126, topic127, aged_from128, aged_to129, gender130 ];
    Lino.contacts.Partners.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.households.Members.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var start_date141 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Period from</span>", "listeners": { "render": Lino.quicktip_renderer("Period from","(households.Members.start_date) Start date of observed period") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date142 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">until</span>", "listeners": { "render": Lino.quicktip_renderer("until","(households.Members.end_date) End date of observed period") }, "name": "end_date", "selectOnFocus": true, "value": null });
    var aged_from143 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Aged from</span>", "listeners": { "render": Lino.quicktip_renderer("Aged from","(households.Members.aged_from) Select only persons aged at least the given number of years.") }, "name": "aged_from", "selectOnFocus": true });
    var aged_to144 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Aged to</span>", "listeners": { "render": Lino.quicktip_renderer("Aged to","(households.Members.aged_to) Select only persons aged at most the given number of years.") }, "name": "aged_to", "selectOnFocus": true });
    var gender145 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Gender</span>", "forceSelection": true, "hiddenName": "genderHidden", "listeners": { "render": Lino.quicktip_renderer("Gender","(households.Members.gender) The sex of this person (male or female).") }, "name": "gender", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.Genders), "value": null });
    this.items = [ { "autoHeight": true, "flex": 30, "items": start_date141, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": end_date142, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 11, "items": aged_from143, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 11, "items": aged_to144, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": gender145, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ start_date141, end_date142, aged_from143, aged_to144, gender145 ];
    Lino.households.Members.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.Debtors.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var today152 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Situation on</span>", "listeners": { "render": Lino.quicktip_renderer("Situation on","(ledger.Debtors.today) Date of observation") }, "name": "today", "selectOnFocus": true });
    this.items = [ { "autoHeight": true, "items": today152, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ today152 ];
    Lino.ledger.Debtors.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.dashboard.Widgets.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var user155 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Author</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(dashboard.Widgets.user) The author of this object.\nA pointer to lino.modlib.users.models.User.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/dashboard/Widgets/user" }) }), "value": null });
    this.items = [ { "autoHeight": true, "items": user155, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user155 ];
    Lino.dashboard.Widgets.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.phones.ContactDetails.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var partner158 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Partner...", "fieldLabel": "Partner", "hiddenName": "partnerHidden", "listeners": { "render": Lino.quicktip_renderer("Partner","(phones.ContactDetails.partner) ") }, "name": "partner", "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Partners", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/phones/ContactDetails/partner" }) }), "value": null });
    var detail_type159 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Contact detail type", "forceSelection": true, "hiddenName": "detail_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Contact detail type","(phones.ContactDetails.detail_type) ") }, "name": "detail_type", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.phones.ContactDetailTypes), "value": null });
    this.items = [ { "autoHeight": true, "flex": 74, "items": partner158, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": detail_type159, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ partner158, detail_type159 ];
    Lino.phones.ContactDetails.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.PlannerByDay.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var user163 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "Managed by", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Managed by","(cal.PlannerByDay.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/PlannerByDay/user" }) }) });
    var event_type164 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Calendar entry type...", "fieldLabel": "Calendar entry type", "hiddenName": "event_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Calendar entry type","(cal.PlannerByDay.event_type) ") }, "name": "event_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.EventTypes.detail,Lino.cal.EventTypes.insert)}, "pageSize": 20, "related_actor_id": "cal.EventTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/PlannerByDay/event_type" }) }) });
    var room165 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Room...", "fieldLabel": "Room", "hiddenName": "roomHidden", "listeners": { "render": Lino.quicktip_renderer("Room","(cal.PlannerByDay.room) ") }, "name": "room", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.Rooms.detail,Lino.cal.Rooms.insert)}, "pageSize": 20, "related_actor_id": "cal.Rooms", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/PlannerByDay/room" }) }) });
    var presence_guest166 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "Guest", "hiddenName": "presence_guestHidden", "listeners": { "render": Lino.quicktip_renderer("Guest","(cal.PlannerByDay.presence_guest) ") }, "name": "presence_guest", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/PlannerByDay/presence_guest" }) }) });
    this.items = [ { "autoHeight": true, "flex": 25, "items": user163, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": event_type164, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": room165, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": presence_guest166, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user163, event_type164, room165, presence_guest166 ];
    Lino.cal.PlannerByDay.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.DailyPlanner.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var user172 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "Managed by", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Managed by","(cal.DailyPlanner.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/DailyPlanner/user" }) }) });
    var event_type173 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Calendar entry type...", "fieldLabel": "Calendar entry type", "hiddenName": "event_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Calendar entry type","(cal.DailyPlanner.event_type) ") }, "name": "event_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.EventTypes.detail,Lino.cal.EventTypes.insert)}, "pageSize": 20, "related_actor_id": "cal.EventTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/DailyPlanner/event_type" }) }) });
    var room174 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Room...", "fieldLabel": "Room", "hiddenName": "roomHidden", "listeners": { "render": Lino.quicktip_renderer("Room","(cal.DailyPlanner.room) ") }, "name": "room", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.Rooms.detail,Lino.cal.Rooms.insert)}, "pageSize": 20, "related_actor_id": "cal.Rooms", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/DailyPlanner/room" }) }) });
    var presence_guest175 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "Guest", "hiddenName": "presence_guestHidden", "listeners": { "render": Lino.quicktip_renderer("Guest","(cal.DailyPlanner.presence_guest) ") }, "name": "presence_guest", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/DailyPlanner/presence_guest" }) }) });
    this.items = [ { "autoHeight": true, "flex": 25, "items": user172, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": event_type173, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": room174, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": presence_guest175, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user172, event_type173, room174, presence_guest175 ];
    Lino.cal.DailyPlanner.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.DailyPlannerRows.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var user181 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "Managed by", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Managed by","(cal.DailyPlannerRows.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/DailyPlannerRows/user" }) }) });
    var event_type182 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Calendar entry type...", "fieldLabel": "Calendar entry type", "hiddenName": "event_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Calendar entry type","(cal.DailyPlannerRows.event_type) ") }, "name": "event_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.EventTypes.detail,Lino.cal.EventTypes.insert)}, "pageSize": 20, "related_actor_id": "cal.EventTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/DailyPlannerRows/event_type" }) }) });
    var room183 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Room...", "fieldLabel": "Room", "hiddenName": "roomHidden", "listeners": { "render": Lino.quicktip_renderer("Room","(cal.DailyPlannerRows.room) ") }, "name": "room", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.Rooms.detail,Lino.cal.Rooms.insert)}, "pageSize": 20, "related_actor_id": "cal.Rooms", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/DailyPlannerRows/room" }) }) });
    var presence_guest184 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "Guest", "hiddenName": "presence_guestHidden", "listeners": { "render": Lino.quicktip_renderer("Guest","(cal.DailyPlannerRows.presence_guest) ") }, "name": "presence_guest", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/DailyPlannerRows/presence_guest" }) }) });
    this.items = [ { "autoHeight": true, "flex": 25, "items": user181, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": event_type182, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": room183, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": presence_guest184, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user181, event_type182, room183, presence_guest184 ];
    Lino.cal.DailyPlannerRows.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.Creditors.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var today190 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Situation on</span>", "listeners": { "render": Lino.quicktip_renderer("Situation on","(ledger.Creditors.today) Date of observation") }, "name": "today", "selectOnFocus": true });
    this.items = [ { "autoHeight": true, "items": today190, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ today190 ];
    Lino.ledger.Creditors.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.AllEntries.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var start_date193 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Date from</span>", "listeners": { "render": Lino.quicktip_renderer("Date from","(cal.AllEntries.start_date) Start of observed date range") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date194 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">until</span>", "listeners": { "render": Lino.quicktip_renderer("until","(cal.AllEntries.end_date) End of observed date range") }, "name": "end_date", "selectOnFocus": true, "value": null });
    var observed_event195 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Observed event", "forceSelection": true, "hiddenName": "observed_eventHidden", "listeners": { "render": Lino.quicktip_renderer("Observed event","(cal.AllEntries.observed_event) ") }, "name": "observed_event", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.cal.EventEvents) });
    var state196 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">State</span>", "forceSelection": true, "hiddenName": "stateHidden", "listeners": { "render": Lino.quicktip_renderer("State","(cal.AllEntries.state) Show only entries having this state.") }, "name": "state", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.cal.EntryStates) });
    var main_1_panel197 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 32, "items": start_date193, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 32, "items": end_date194, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 17, "items": observed_event195, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 17, "items": state196, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var user202 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Managed by</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Managed by","(cal.AllEntries.user) Show only entries having this user as author.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/AllEntries/user" }) }) });
    var assigned_to203 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Assigned to</span>", "hiddenName": "assigned_toHidden", "listeners": { "render": Lino.quicktip_renderer("Assigned to","(cal.AllEntries.assigned_to) Show only entries assigned to this user.") }, "name": "assigned_to", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/AllEntries/assigned_to" }) }) });
    var event_type204 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Calendar entry type...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Calendar entry type</span>", "hiddenName": "event_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Calendar entry type","(cal.AllEntries.event_type) Show only entries having this type.") }, "name": "event_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.EventTypes.detail,Lino.cal.EventTypes.insert)}, "pageSize": 20, "related_actor_id": "cal.EventTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/AllEntries/event_type" }) }) });
    var room205 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Room...", "fieldLabel": "Room", "hiddenName": "roomHidden", "listeners": { "render": Lino.quicktip_renderer("Room","(cal.AllEntries.room) ") }, "name": "room", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.Rooms.detail,Lino.cal.Rooms.insert)}, "pageSize": 20, "related_actor_id": "cal.Rooms", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/AllEntries/room" }) }) });
    var show_appointments206 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Appointments</span>", "forceSelection": true, "hiddenName": "show_appointmentsHidden", "listeners": { "render": Lino.quicktip_renderer("Appointments","(cal.AllEntries.show_appointments) Whether only appointments should be shown.  \"Yes\" means only\nappointments, \"No\" means no appointments and leaving it to\nblank shows both types of events.") }, "name": "show_appointments", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.YesNo) });
    var main_2_panel207 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 21, "items": user202, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": assigned_to203, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": event_type204, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": room205, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 15, "items": show_appointments206, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    this.items = [ main_1_panel197, main_2_panel207 ];
    this.fields = [ start_date193, end_date194, observed_event195, state196, user202, assigned_to203, event_type204, room205, show_appointments206 ];
    Lino.cal.AllEntries.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.Tasks.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  labelAlign: "top",
  autoScroll: false,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var start_date214 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Date from</span>", "listeners": { "render": Lino.quicktip_renderer("Date from","(cal.Tasks.start_date) Start of observed date range") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date215 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">until</span>", "listeners": { "render": Lino.quicktip_renderer("until","(cal.Tasks.end_date) End of observed date range") }, "name": "end_date", "selectOnFocus": true, "value": null });
    var user216 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Managed by</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Managed by","(cal.Tasks.user) Only rows managed by this user.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Tasks/user" }) }) });
    var state217 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">State</span>", "forceSelection": true, "hiddenName": "stateHidden", "listeners": { "render": Lino.quicktip_renderer("State","(cal.Tasks.state) Only rows having this state.") }, "name": "state", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.cal.TaskStates) });
    var main_1_panel218 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 24, "items": start_date214, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 24, "items": end_date215, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 37, "items": user216, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 13, "items": state217, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    this.items = [ main_1_panel218 ];
    this.fields = [ start_date214, end_date215, user216, state217 ];
    Lino.cal.Tasks.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.Events.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var user224 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Managed by</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Managed by","(cal.Events.user) Show only entries having this user as author.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Events/user" }) }) });
    var event_type225 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Calendar entry type...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Calendar entry type</span>", "hiddenName": "event_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Calendar entry type","(cal.Events.event_type) Show only entries having this type.") }, "name": "event_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.EventTypes.detail,Lino.cal.EventTypes.insert)}, "pageSize": 20, "related_actor_id": "cal.EventTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Events/event_type" }) }) });
    var room226 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Room...", "fieldLabel": "Room", "hiddenName": "roomHidden", "listeners": { "render": Lino.quicktip_renderer("Room","(cal.Events.room) ") }, "name": "room", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.Rooms.detail,Lino.cal.Rooms.insert)}, "pageSize": 20, "related_actor_id": "cal.Rooms", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Events/room" }) }) });
    var presence_guest227 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Guest</span>", "hiddenName": "presence_guestHidden", "listeners": { "render": Lino.quicktip_renderer("Guest","(cal.Events.presence_guest) Show only entries that have a presence for the specified guest.") }, "name": "presence_guest", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Events/presence_guest" }) }) });
    this.items = [ { "autoHeight": true, "flex": 25, "items": user224, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": event_type225, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": room226, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": presence_guest227, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user224, event_type225, room226, presence_guest227 ];
    Lino.cal.Events.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.OneEvent.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var user233 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Managed by</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Managed by","(cal.OneEvent.user) Show only entries having this user as author.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/OneEvent/user" }) }) });
    var event_type234 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Calendar entry type...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Calendar entry type</span>", "hiddenName": "event_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Calendar entry type","(cal.OneEvent.event_type) Show only entries having this type.") }, "name": "event_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.EventTypes.detail,Lino.cal.EventTypes.insert)}, "pageSize": 20, "related_actor_id": "cal.EventTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/OneEvent/event_type" }) }) });
    var room235 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Room...", "fieldLabel": "Room", "hiddenName": "roomHidden", "listeners": { "render": Lino.quicktip_renderer("Room","(cal.OneEvent.room) ") }, "name": "room", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.Rooms.detail,Lino.cal.Rooms.insert)}, "pageSize": 20, "related_actor_id": "cal.Rooms", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/OneEvent/room" }) }) });
    var presence_guest236 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Guest</span>", "hiddenName": "presence_guestHidden", "listeners": { "render": Lino.quicktip_renderer("Guest","(cal.OneEvent.presence_guest) Show only entries that have a presence for the specified guest.") }, "name": "presence_guest", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/OneEvent/presence_guest" }) }) });
    this.items = [ { "autoHeight": true, "flex": 25, "items": user233, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": event_type234, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": room235, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": presence_guest236, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user233, event_type234, room235, presence_guest236 ];
    Lino.cal.OneEvent.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.users.Authorities.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var user242 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Author</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(users.Authorities.user) The user who gives the right of representation. author of this\nauthority") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/users/Authorities/user" }) }), "value": null });
    this.items = [ { "autoHeight": true, "items": user242, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user242 ];
    Lino.users.Authorities.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.PartnerVouchers.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var partner245 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Partner...", "fieldLabel": "Partner", "hiddenName": "partnerHidden", "listeners": { "render": Lino.quicktip_renderer("Partner","(ledger.PartnerVouchers.partner) ") }, "name": "partner", "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Partners", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/PartnerVouchers/partner" }) }) });
    var state246 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "State", "forceSelection": true, "hiddenName": "stateHidden", "listeners": { "render": Lino.quicktip_renderer("State","(ledger.PartnerVouchers.state) ") }, "name": "state", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.ledger.VoucherStates) });
    var journal247 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Journal...", "fieldLabel": "Journal", "hiddenName": "journalHidden", "listeners": { "render": Lino.quicktip_renderer("Journal","(ledger.PartnerVouchers.journal) ") }, "name": "journal", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.ledger.Journals.detail,Lino.ledger.Journals.insert)}, "pageSize": 20, "related_actor_id": "ledger.Journals", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/PartnerVouchers/journal" }) }) });
    var start_period248 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Accounting period...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Period from</span>", "hiddenName": "start_periodHidden", "listeners": { "render": Lino.quicktip_renderer("Period from","(ledger.PartnerVouchers.start_period) Start of observed period range") }, "name": "start_period", "pageSize": 20, "preferred_width": 10, "related_actor_id": "ledger.AccountingPeriods", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/PartnerVouchers/start_period" }) }) });
    var end_period249 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Accounting period...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Period until</span>", "hiddenName": "end_periodHidden", "listeners": { "render": Lino.quicktip_renderer("Period until","(ledger.PartnerVouchers.end_period) Optional end of observed period range. Leave empty to consider only the Start period.") }, "name": "end_period", "pageSize": 20, "preferred_width": 10, "related_actor_id": "ledger.AccountingPeriods", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/PartnerVouchers/end_period" }) }) });
    var cleared250 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Show cleared vouchers", "forceSelection": true, "hiddenName": "clearedHidden", "listeners": { "render": Lino.quicktip_renderer("Show cleared vouchers","(ledger.PartnerVouchers.cleared) ") }, "name": "cleared", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.YesNo) });
    this.items = [ { "autoHeight": true, "flex": 19, "items": partner245, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 6, "items": state246, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": journal247, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": start_period248, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": end_period249, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 14, "items": cleared250, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ partner245, state246, journal247, start_period248, end_period249, cleared250 ];
    Lino.ledger.PartnerVouchers.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.FiscalYears.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var start_date258 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Period from</span>", "listeners": { "render": Lino.quicktip_renderer("Period from","(ledger.FiscalYears.start_date) Start date of observed period") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date259 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">until</span>", "listeners": { "render": Lino.quicktip_renderer("until","(ledger.FiscalYears.end_date) End date of observed period") }, "name": "end_date", "selectOnFocus": true, "value": null });
    this.items = [ { "autoHeight": true, "flex": 50, "items": start_date258, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": end_date259, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ start_date258, end_date259 ];
    Lino.ledger.FiscalYears.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.contacts.Persons.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var observed_event263 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Observed event</span>", "forceSelection": true, "hiddenName": "observed_eventHidden", "listeners": { "render": Lino.quicktip_renderer("Observed event","(contacts.Persons.observed_event) Extended filter criteria") }, "name": "observed_event", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.contacts.PartnerEvents) });
    var start_date264 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Date from</span>", "listeners": { "render": Lino.quicktip_renderer("Date from","(contacts.Persons.start_date) Start of observed date range") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date265 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">until</span>", "listeners": { "render": Lino.quicktip_renderer("until","(contacts.Persons.end_date) End of observed date range") }, "name": "end_date", "selectOnFocus": true, "value": null });
    var company266 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Organization...", "fieldLabel": "Organization", "hiddenName": "companyHidden", "listeners": { "render": Lino.quicktip_renderer("Organization","(contacts.Persons.company) ") }, "name": "company", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Companies.detail,Lino.contacts.Companies.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Companies", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Persons/company" }) }) });
    var function267 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Function...", "fieldLabel": "Function", "hiddenName": "functionHidden", "listeners": { "render": Lino.quicktip_renderer("Function","(contacts.Persons.function) ") }, "name": "function", "pageSize": 20, "related_actor_id": "contacts.RoleTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Persons/function" }) }) });
    var topic268 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Topic...", "fieldLabel": "Topic", "hiddenName": "topicHidden", "listeners": { "render": Lino.quicktip_renderer("Topic","(contacts.Persons.topic) ") }, "name": "topic", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.topics.Topics.detail,Lino.topics.Topics.insert)}, "pageSize": 20, "related_actor_id": "topics.Topics", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Persons/topic" }) }) });
    this.items = [ { "autoHeight": true, "flex": 7, "items": observed_event263, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 13, "items": start_date264, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 13, "items": end_date265, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": company266, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": function267, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": topic268, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ observed_event263, start_date264, end_date265, company266, function267, topic268 ];
    Lino.contacts.Persons.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.MonthlyView.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var user276 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "Managed by", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Managed by","(cal.MonthlyView.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/MonthlyView/user" }) }) });
    var event_type277 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Calendar entry type...", "fieldLabel": "Calendar entry type", "hiddenName": "event_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Calendar entry type","(cal.MonthlyView.event_type) ") }, "name": "event_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.EventTypes.detail,Lino.cal.EventTypes.insert)}, "pageSize": 20, "related_actor_id": "cal.EventTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/MonthlyView/event_type" }) }) });
    var room278 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Room...", "fieldLabel": "Room", "hiddenName": "roomHidden", "listeners": { "render": Lino.quicktip_renderer("Room","(cal.MonthlyView.room) ") }, "name": "room", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.Rooms.detail,Lino.cal.Rooms.insert)}, "pageSize": 20, "related_actor_id": "cal.Rooms", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/MonthlyView/room" }) }) });
    var presence_guest279 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "Guest", "hiddenName": "presence_guestHidden", "listeners": { "render": Lino.quicktip_renderer("Guest","(cal.MonthlyView.presence_guest) ") }, "name": "presence_guest", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/MonthlyView/presence_guest" }) }) });
    this.items = [ { "autoHeight": true, "flex": 25, "items": user276, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": event_type277, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": room278, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": presence_guest279, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user276, event_type277, room278, presence_guest279 ];
    Lino.cal.MonthlyView.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.users.Users.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var user_type285 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "User type", "forceSelection": true, "hiddenName": "user_typeHidden", "listeners": { "render": Lino.quicktip_renderer("User type","(users.Users.user_type) ") }, "name": "user_type", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.users.UserTypes) });
    var start_date286 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Period from</span>", "listeners": { "render": Lino.quicktip_renderer("Period from","(users.Users.start_date) Start date of observed period") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date287 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">until</span>", "listeners": { "render": Lino.quicktip_renderer("until","(users.Users.end_date) End date of observed period") }, "name": "end_date", "selectOnFocus": true, "value": null });
    this.items = [ { "autoHeight": true, "flex": 21, "items": user_type285, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 39, "items": start_date286, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 39, "items": end_date287, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user_type285, start_date286, end_date287 ];
    Lino.users.Users.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.WeeklyView.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var user292 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "Managed by", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Managed by","(cal.WeeklyView.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/WeeklyView/user" }) }) });
    var event_type293 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Calendar entry type...", "fieldLabel": "Calendar entry type", "hiddenName": "event_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Calendar entry type","(cal.WeeklyView.event_type) ") }, "name": "event_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.EventTypes.detail,Lino.cal.EventTypes.insert)}, "pageSize": 20, "related_actor_id": "cal.EventTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/WeeklyView/event_type" }) }) });
    var room294 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Room...", "fieldLabel": "Room", "hiddenName": "roomHidden", "listeners": { "render": Lino.quicktip_renderer("Room","(cal.WeeklyView.room) ") }, "name": "room", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.Rooms.detail,Lino.cal.Rooms.insert)}, "pageSize": 20, "related_actor_id": "cal.Rooms", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/WeeklyView/room" }) }) });
    var presence_guest295 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "Guest", "hiddenName": "presence_guestHidden", "listeners": { "render": Lino.quicktip_renderer("Guest","(cal.WeeklyView.presence_guest) ") }, "name": "presence_guest", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/WeeklyView/presence_guest" }) }) });
    this.items = [ { "autoHeight": true, "flex": 25, "items": user292, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": event_type293, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": room294, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": presence_guest295, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user292, event_type293, room294, presence_guest295 ];
    Lino.cal.WeeklyView.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.DailyView.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var user301 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "Managed by", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Managed by","(cal.DailyView.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/DailyView/user" }) }) });
    var event_type302 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Calendar entry type...", "fieldLabel": "Calendar entry type", "hiddenName": "event_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Calendar entry type","(cal.DailyView.event_type) ") }, "name": "event_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.EventTypes.detail,Lino.cal.EventTypes.insert)}, "pageSize": 20, "related_actor_id": "cal.EventTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/DailyView/event_type" }) }) });
    var room303 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Room...", "fieldLabel": "Room", "hiddenName": "roomHidden", "listeners": { "render": Lino.quicktip_renderer("Room","(cal.DailyView.room) ") }, "name": "room", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.Rooms.detail,Lino.cal.Rooms.insert)}, "pageSize": 20, "related_actor_id": "cal.Rooms", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/DailyView/room" }) }) });
    var presence_guest304 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "Guest", "hiddenName": "presence_guestHidden", "listeners": { "render": Lino.quicktip_renderer("Guest","(cal.DailyView.presence_guest) ") }, "name": "presence_guest", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/DailyView/presence_guest" }) }) });
    this.items = [ { "autoHeight": true, "flex": 25, "items": user301, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": event_type302, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": room303, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": presence_guest304, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user301, event_type302, room303, presence_guest304 ];
    Lino.cal.DailyView.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.uploads.Uploads.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var start_date310 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Date from</span>", "listeners": { "render": Lino.quicktip_renderer("Date from","(uploads.Uploads.start_date) Start of observed date range") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date311 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">until</span>", "listeners": { "render": Lino.quicktip_renderer("until","(uploads.Uploads.end_date) End of observed date range") }, "name": "end_date", "selectOnFocus": true, "value": null });
    var user312 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Uploaded by</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Uploaded by","(uploads.Uploads.user) The author of this object.\nA pointer to lino.modlib.users.models.User.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/uploads/Uploads/user" }) }), "value": null });
    var upload_type313 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Upload Type...", "fieldLabel": "Upload Type", "hiddenName": "upload_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Upload Type","(uploads.Uploads.upload_type) ") }, "name": "upload_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.uploads.UploadTypes.detail,Lino.uploads.UploadTypes.insert)}, "pageSize": 20, "related_actor_id": "uploads.UploadTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/uploads/Uploads/upload_type" }) }) });
    this.items = [ { "autoHeight": true, "flex": 19, "items": start_date310, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": end_date311, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": user312, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": upload_type313, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ start_date310, end_date311, user312, upload_type313 ];
    Lino.uploads.Uploads.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.RecurrentEvents.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var user319 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Author</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(cal.RecurrentEvents.user) The author of this object.\nA pointer to lino.modlib.users.models.User.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/RecurrentEvents/user" }) }), "value": null });
    this.items = [ { "autoHeight": true, "items": user319, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user319 ];
    Lino.cal.RecurrentEvents.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.Subscriptions.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var user322 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Author</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(cal.Subscriptions.user) The author of this object.\nA pointer to lino.modlib.users.models.User.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Subscriptions/user" }) }), "value": null });
    this.items = [ { "autoHeight": true, "items": user322, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user322 ];
    Lino.cal.Subscriptions.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.AccountingPeriods.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var start_date325 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Period from</span>", "listeners": { "render": Lino.quicktip_renderer("Period from","(ledger.AccountingPeriods.start_date) Start date of observed period") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date326 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">until</span>", "listeners": { "render": Lino.quicktip_renderer("until","(ledger.AccountingPeriods.end_date) End date of observed period") }, "name": "end_date", "selectOnFocus": true, "value": null });
    this.items = [ { "autoHeight": true, "flex": 50, "items": start_date325, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": end_date326, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ start_date325, end_date326 ];
    Lino.ledger.AccountingPeriods.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.WeeklyPlanner.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var user330 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "Managed by", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Managed by","(cal.WeeklyPlanner.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/WeeklyPlanner/user" }) }) });
    var event_type331 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Calendar entry type...", "fieldLabel": "Calendar entry type", "hiddenName": "event_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Calendar entry type","(cal.WeeklyPlanner.event_type) ") }, "name": "event_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.EventTypes.detail,Lino.cal.EventTypes.insert)}, "pageSize": 20, "related_actor_id": "cal.EventTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/WeeklyPlanner/event_type" }) }) });
    var room332 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Room...", "fieldLabel": "Room", "hiddenName": "roomHidden", "listeners": { "render": Lino.quicktip_renderer("Room","(cal.WeeklyPlanner.room) ") }, "name": "room", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.Rooms.detail,Lino.cal.Rooms.insert)}, "pageSize": 20, "related_actor_id": "cal.Rooms", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/WeeklyPlanner/room" }) }) });
    var presence_guest333 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "Guest", "hiddenName": "presence_guestHidden", "listeners": { "render": Lino.quicktip_renderer("Guest","(cal.WeeklyPlanner.presence_guest) ") }, "name": "presence_guest", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/WeeklyPlanner/presence_guest" }) }) });
    this.items = [ { "autoHeight": true, "flex": 25, "items": user330, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": event_type331, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": room332, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": presence_guest333, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user330, event_type331, room332, presence_guest333 ];
    Lino.cal.WeeklyPlanner.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.comments.Comments.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var start_date339 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Period from</span>", "listeners": { "render": Lino.quicktip_renderer("Period from","(comments.Comments.start_date) Start date of observed period") }, "name": "start_date", "selectOnFocus": true });
    var end_date340 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">until</span>", "listeners": { "render": Lino.quicktip_renderer("until","(comments.Comments.end_date) The date range to filter.") }, "name": "end_date", "selectOnFocus": true });
    var observed_event341 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Observed event</span>", "forceSelection": true, "hiddenName": "observed_eventHidden", "listeners": { "render": Lino.quicktip_renderer("Observed event","(comments.Comments.observed_event) Which event (created, modified or published) to consider when\napplying the date range given by start_date and\nend_date.") }, "name": "observed_event", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.comments.CommentEvents) });
    var user342 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Author</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(comments.Comments.user) The author of the comment.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/comments/Comments/user" }) }), "value": null });
    this.items = [ { "autoHeight": true, "flex": 24, "items": start_date339, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 24, "items": end_date340, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 13, "items": observed_event341, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 37, "items": user342, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ start_date339, end_date340, observed_event341, user342 ];
    Lino.comments.Comments.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.MonthlyPlanner.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  hideCheckBoxLabels: true,
  autoHeight: true,
  layoutConfig: { "align": "stretchmax" },
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var user348 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "Managed by", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Managed by","(cal.MonthlyPlanner.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/MonthlyPlanner/user" }) }) });
    var event_type349 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Calendar entry type...", "fieldLabel": "Calendar entry type", "hiddenName": "event_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Calendar entry type","(cal.MonthlyPlanner.event_type) ") }, "name": "event_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.EventTypes.detail,Lino.cal.EventTypes.insert)}, "pageSize": 20, "related_actor_id": "cal.EventTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/MonthlyPlanner/event_type" }) }) });
    var room350 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Room...", "fieldLabel": "Room", "hiddenName": "roomHidden", "listeners": { "render": Lino.quicktip_renderer("Room","(cal.MonthlyPlanner.room) ") }, "name": "room", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.Rooms.detail,Lino.cal.Rooms.insert)}, "pageSize": 20, "related_actor_id": "cal.Rooms", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/MonthlyPlanner/room" }) }) });
    var presence_guest351 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "Guest", "hiddenName": "presence_guestHidden", "listeners": { "render": Lino.quicktip_renderer("Guest","(cal.MonthlyPlanner.presence_guest) ") }, "name": "presence_guest", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/MonthlyPlanner/presence_guest" }) }) });
    this.items = [ { "autoHeight": true, "flex": 25, "items": user348, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": event_type349, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": room350, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": presence_guest351, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user348, event_type349, room350, presence_guest351 ];
    Lino.cal.MonthlyPlanner.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.uploads.Volumes.merge_row_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  hideCheckBoxLabels: true,
  layout: "form",
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  action_name: 'merge_row',
  ls_url: "/uploads/Volumes",
  window_title: "Merge",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.merge_to416 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Library volume...", "fieldLabel": "into...", "hiddenName": "merge_toHidden", "listeners": { "render": Lino.quicktip_renderer("into...","(Merge.merge_to) ") }, "name": "merge_to", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.uploads.Volumes.detail,Lino.uploads.Volumes.insert)}, "pageSize": 20, "preferred_width": 5, "related_actor_id": "uploads.Volumes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/apchoices/uploads/Volumes/merge_row/merge_to" }) }) });
    this.reason417 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Reason", "listeners": { "render": Lino.quicktip_renderer("Reason","(Merge.reason) ") }, "maxLength": 100, "name": "reason", "selectOnFocus": true });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.merge_to416, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.reason417, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.merge_to416, this.reason417 ];
    this.http_method = "GET"
    Lino.uploads.Volumes.merge_row_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.PaymentTerms.merge_row_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  hideCheckBoxLabels: true,
  layout: "form",
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  action_name: 'merge_row',
  ls_url: "/ledger/PaymentTerms",
  window_title: "Merge",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.merge_to438 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Payment term...", "fieldLabel": "into...", "hiddenName": "merge_toHidden", "listeners": { "render": Lino.quicktip_renderer("into...","(Merge.merge_to) ") }, "name": "merge_to", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.ledger.PaymentTerms.detail,null)}, "pageSize": 20, "related_actor_id": "ledger.PaymentTerms", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/apchoices/ledger/PaymentTerms/merge_row/merge_to" }) }) });
    this.reason439 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Reason", "listeners": { "render": Lino.quicktip_renderer("Reason","(Merge.reason) ") }, "maxLength": 100, "name": "reason", "selectOnFocus": true });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.merge_to438, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.reason439, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.merge_to438, this.reason439 ];
    this.http_method = "GET"
    Lino.ledger.PaymentTerms.merge_row_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.contacts.Persons.create_household_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  hideCheckBoxLabels: true,
  layout: "form",
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  action_name: 'create_household',
  ls_url: "/contacts/Persons",
  window_title: "Create Household",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.head386 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "Head of household", "hiddenName": "headHidden", "listeners": { "render": Lino.quicktip_renderer("Head of household","(Create Household.head) ") }, "name": "head", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/apchoices/contacts/Persons/create_household/head" }) }) });
    this.type387 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Household Type...", "fieldLabel": "Household Type", "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Household Type","(Create Household.type) ") }, "name": "type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.households.Types.detail,null)}, "pageSize": 20, "related_actor_id": "households.Types", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/apchoices/contacts/Persons/create_household/type" }) }) });
    this.partner388 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "Partner", "hiddenName": "partnerHidden", "listeners": { "render": Lino.quicktip_renderer("Partner","(Create Household.partner) ") }, "name": "partner", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/apchoices/contacts/Persons/create_household/partner" }) }) });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.head386, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.type387, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.partner388, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.head386, this.type387, this.partner388 ];
    this.http_method = "GET"
    Lino.contacts.Persons.create_household_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.FiscalYears.merge_row_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  hideCheckBoxLabels: true,
  layout: "form",
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  action_name: 'merge_row',
  ls_url: "/ledger/FiscalYears",
  window_title: "Merge",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.merge_to443 = new Lino.RemoteComboFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Fiscal year...", "fieldLabel": "into...", "hiddenName": "merge_toHidden", "listeners": { "render": Lino.quicktip_renderer("into...","(Merge.merge_to) ") }, "name": "merge_to", "pageSize": 20, "preferred_width": 10, "related_actor_id": "ledger.FiscalYears", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/apchoices/ledger/FiscalYears/merge_row/merge_to" }) }) });
    this.reason444 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Reason", "listeners": { "render": Lino.quicktip_renderer("Reason","(Merge.reason) ") }, "maxLength": 100, "name": "reason", "selectOnFocus": true });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.merge_to443, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.reason444, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.merge_to443, this.reason444 ];
    this.http_method = "GET"
    Lino.ledger.FiscalYears.merge_row_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.households.Households.merge_row_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  hideCheckBoxLabels: true,
  layout: "form",
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  action_name: 'merge_row',
  ls_url: "/households/Households",
  window_title: "Merge",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.merge_to448 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Household...", "fieldLabel": "into...", "hiddenName": "merge_toHidden", "listeners": { "render": Lino.quicktip_renderer("into...","(Merge.merge_to) ") }, "name": "merge_to", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.households.Households.detail,Lino.households.Households.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "households.Households", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/apchoices/households/Households/merge_row/merge_to" }) }) });
    this.households_Member449 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Household Members", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Household Members","(Merge.households_Member) ") }, "name": "households_Member", "selectOnFocus": true });
    this.phones_ContactDetail450 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Contact details", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Contact details","(Merge.phones_ContactDetail) ") }, "name": "phones_ContactDetail", "selectOnFocus": true });
    var keep_volatiles_1_panel451 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": this.households_Member449, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": this.phones_ContactDetail450, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    this.sepa_Account454 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Bank accounts", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Bank accounts","(Merge.sepa_Account) ") }, "name": "sepa_Account", "selectOnFocus": true });
    this.topics_Interest455 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Interests", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Interests","(Merge.topics_Interest) ") }, "name": "topics_Interest", "selectOnFocus": true });
    var keep_volatiles_2_panel456 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": this.sepa_Account454, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": this.topics_Interest455, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var keep_volatiles_panel459 = new Ext.form.FieldSet({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ keep_volatiles_1_panel451, keep_volatiles_2_panel456 ], "labelAlign": "top", "layout": "form", "title": "Also reassign volatile related objects" });
    this.reason460 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Reason", "listeners": { "render": Lino.quicktip_renderer("Reason","(Merge.reason) ") }, "maxLength": 100, "name": "reason", "selectOnFocus": true });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.merge_to448, "labelAlign": "top", "layout": "form", "xtype": "panel" }, keep_volatiles_panel459, { "anchor": "-20", "autoHeight": true, "items": this.reason460, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.merge_to448, this.households_Member449, this.phones_ContactDetail450, this.sepa_Account454, this.topics_Interest455, this.reason460 ];
    this.http_method = "GET"
    Lino.households.Households.merge_row_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.contacts.Companies.merge_row_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  hideCheckBoxLabels: true,
  layout: "form",
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  action_name: 'merge_row',
  ls_url: "/contacts/Companies",
  window_title: "Merge",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.merge_to393 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Organization...", "fieldLabel": "into...", "hiddenName": "merge_toHidden", "listeners": { "render": Lino.quicktip_renderer("into...","(Merge.merge_to) ") }, "name": "merge_to", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Companies.detail,Lino.contacts.Companies.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Companies", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/apchoices/contacts/Companies/merge_row/merge_to" }) }) });
    this.phones_ContactDetail394 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Contact details", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Contact details","(Merge.phones_ContactDetail) ") }, "name": "phones_ContactDetail", "selectOnFocus": true });
    this.sepa_Account395 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Bank accounts", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Bank accounts","(Merge.sepa_Account) ") }, "name": "sepa_Account", "selectOnFocus": true });
    var keep_volatiles_1_panel396 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": this.phones_ContactDetail394, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": this.sepa_Account395, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    this.topics_Interest399 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Interests", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Interests","(Merge.topics_Interest) ") }, "name": "topics_Interest", "selectOnFocus": true });
    var keep_volatiles_panel400 = new Ext.form.FieldSet({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ keep_volatiles_1_panel396, { "anchor": "-20", "autoHeight": true, "items": this.topics_Interest399, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form", "title": "Also reassign volatile related objects" });
    this.reason402 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Reason", "listeners": { "render": Lino.quicktip_renderer("Reason","(Merge.reason) ") }, "maxLength": 100, "name": "reason", "selectOnFocus": true });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.merge_to393, "labelAlign": "top", "layout": "form", "xtype": "panel" }, keep_volatiles_panel400, { "anchor": "-20", "autoHeight": true, "items": this.reason402, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.merge_to393, this.phones_ContactDetail394, this.sepa_Account395, this.topics_Interest399, this.reason402 ];
    this.http_method = "GET"
    Lino.contacts.Companies.merge_row_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.users.Users.change_password_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  hideCheckBoxLabels: true,
  layout: "form",
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  action_name: 'change_password',
  ls_url: "/users/Users",
  window_title: "Change password",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.current474 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Current password</span>", "inputType": "password", "listeners": { "render": Lino.quicktip_renderer("Current password","(Change password.current) The current password. Leave empty if the user has no password\nyet. And SiteAdmin users don't need to specify this at all.") }, "maxLength": null, "name": "current", "selectOnFocus": true });
    this.new1475 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">New password</span>", "inputType": "password", "listeners": { "render": Lino.quicktip_renderer("New password","(Change password.new1) The new password.") }, "maxLength": null, "name": "new1", "selectOnFocus": true });
    this.new2476 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">New password again</span>", "inputType": "password", "listeners": { "render": Lino.quicktip_renderer("New password again","(Change password.new2) The new password a second time. Both passwords must match.") }, "maxLength": null, "name": "new2", "selectOnFocus": true });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.current474, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.new1475, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.new2476, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.current474, this.new1475, this.new2476 ];
    this.http_method = "GET"
    Lino.users.Users.change_password_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.Accounts.merge_row_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  hideCheckBoxLabels: true,
  layout: "form",
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  action_name: 'merge_row',
  ls_url: "/ledger/Accounts",
  window_title: "Merge",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.merge_to421 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Account...", "fieldLabel": "into...", "hiddenName": "merge_toHidden", "listeners": { "render": Lino.quicktip_renderer("into...","(Merge.merge_to) ") }, "name": "merge_to", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.ledger.Accounts.detail,Lino.ledger.Accounts.insert)}, "pageSize": 20, "related_actor_id": "ledger.Accounts", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/apchoices/ledger/Accounts/merge_row/merge_to" }) }) });
    this.reason422 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Reason", "listeners": { "render": Lino.quicktip_renderer("Reason","(Merge.reason) ") }, "maxLength": 100, "name": "reason", "selectOnFocus": true });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.merge_to421, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.reason422, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.merge_to421, this.reason422 ];
    this.http_method = "GET"
    Lino.ledger.Accounts.merge_row_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.contacts.Persons.merge_row_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  hideCheckBoxLabels: true,
  layout: "form",
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  action_name: 'merge_row',
  ls_url: "/contacts/Persons",
  window_title: "Merge",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.merge_to370 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "into...", "hiddenName": "merge_toHidden", "listeners": { "render": Lino.quicktip_renderer("into...","(Merge.merge_to) ") }, "name": "merge_to", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/apchoices/contacts/Persons/merge_row/merge_to" }) }) });
    this.addresses_Address371 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Addresses", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Addresses","(Merge.addresses_Address) ") }, "name": "addresses_Address", "selectOnFocus": true });
    this.phones_ContactDetail372 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Contact details", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Contact details","(Merge.phones_ContactDetail) ") }, "name": "phones_ContactDetail", "selectOnFocus": true });
    var keep_volatiles_1_panel373 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": this.addresses_Address371, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": this.phones_ContactDetail372, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    this.sepa_Account376 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Bank accounts", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Bank accounts","(Merge.sepa_Account) ") }, "name": "sepa_Account", "selectOnFocus": true });
    this.topics_Interest377 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Interests", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Interests","(Merge.topics_Interest) ") }, "name": "topics_Interest", "selectOnFocus": true });
    var keep_volatiles_2_panel378 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": this.sepa_Account376, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": this.topics_Interest377, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var keep_volatiles_panel381 = new Ext.form.FieldSet({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ keep_volatiles_1_panel373, keep_volatiles_2_panel378 ], "labelAlign": "top", "layout": "form", "title": "Also reassign volatile related objects" });
    this.reason382 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Reason", "listeners": { "render": Lino.quicktip_renderer("Reason","(Merge.reason) ") }, "maxLength": 100, "name": "reason", "selectOnFocus": true });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.merge_to370, "labelAlign": "top", "layout": "form", "xtype": "panel" }, keep_volatiles_panel381, { "anchor": "-20", "autoHeight": true, "items": this.reason382, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.merge_to370, this.addresses_Address371, this.phones_ContactDetail372, this.sepa_Account376, this.topics_Interest377, this.reason382 ];
    this.http_method = "GET"
    Lino.contacts.Persons.merge_row_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.topics.Topics.merge_row_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  hideCheckBoxLabels: true,
  layout: "form",
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  action_name: 'merge_row',
  ls_url: "/topics/Topics",
  window_title: "Merge",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.merge_to464 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Topic...", "fieldLabel": "into...", "hiddenName": "merge_toHidden", "listeners": { "render": Lino.quicktip_renderer("into...","(Merge.merge_to) ") }, "name": "merge_to", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.topics.Topics.detail,Lino.topics.Topics.insert)}, "pageSize": 20, "related_actor_id": "topics.Topics", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/apchoices/topics/Topics/merge_row/merge_to" }) }) });
    this.reason465 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Reason", "listeners": { "render": Lino.quicktip_renderer("Reason","(Merge.reason) ") }, "maxLength": 100, "name": "reason", "selectOnFocus": true });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.merge_to464, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.reason465, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.merge_to464, this.reason465 ];
    this.http_method = "GET"
    Lino.topics.Topics.merge_row_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.EventTypes.merge_row_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  hideCheckBoxLabels: true,
  layout: "form",
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  action_name: 'merge_row',
  ls_url: "/cal/EventTypes",
  window_title: "Merge",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.merge_to411 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Calendar entry type...", "fieldLabel": "into...", "hiddenName": "merge_toHidden", "listeners": { "render": Lino.quicktip_renderer("into...","(Merge.merge_to) ") }, "name": "merge_to", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.EventTypes.detail,Lino.cal.EventTypes.insert)}, "pageSize": 20, "related_actor_id": "cal.EventTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/apchoices/cal/EventTypes/merge_row/merge_to" }) }) });
    this.reason412 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Reason", "listeners": { "render": Lino.quicktip_renderer("Reason","(Merge.reason) ") }, "maxLength": 100, "name": "reason", "selectOnFocus": true });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.merge_to411, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.reason412, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.merge_to411, this.reason412 ];
    this.http_method = "GET"
    Lino.cal.EventTypes.merge_row_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.Journals.merge_row_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  hideCheckBoxLabels: true,
  layout: "form",
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  action_name: 'merge_row',
  ls_url: "/ledger/Journals",
  window_title: "Merge",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.merge_to426 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Journal...", "fieldLabel": "into...", "hiddenName": "merge_toHidden", "listeners": { "render": Lino.quicktip_renderer("into...","(Merge.merge_to) ") }, "name": "merge_to", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.ledger.Journals.detail,Lino.ledger.Journals.insert)}, "pageSize": 20, "related_actor_id": "ledger.Journals", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/apchoices/ledger/Journals/merge_row/merge_to" }) }) });
    this.ledger_MatchRule427 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Also reassign volatile related objects", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Match rules","(Merge.ledger_MatchRule) ") }, "name": "ledger_MatchRule", "selectOnFocus": true });
    this.reason428 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Reason", "listeners": { "render": Lino.quicktip_renderer("Reason","(Merge.reason) ") }, "maxLength": 100, "name": "reason", "selectOnFocus": true });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.merge_to426, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.ledger_MatchRule427, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.reason428, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.merge_to426, this.ledger_MatchRule427, this.reason428 ];
    this.http_method = "GET"
    Lino.ledger.Journals.merge_row_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.lists.Lists.merge_row_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  hideCheckBoxLabels: true,
  layout: "form",
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  action_name: 'merge_row',
  ls_url: "/lists/Lists",
  window_title: "Merge",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.merge_to469 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Partner List...", "fieldLabel": "into...", "hiddenName": "merge_toHidden", "listeners": { "render": Lino.quicktip_renderer("into...","(Merge.merge_to) ") }, "name": "merge_to", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.lists.Lists.detail,Lino.lists.Lists.insert)}, "pageSize": 20, "related_actor_id": "lists.Lists", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/apchoices/lists/Lists/merge_row/merge_to" }) }) });
    this.reason470 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Reason", "listeners": { "render": Lino.quicktip_renderer("Reason","(Merge.reason) ") }, "maxLength": 100, "name": "reason", "selectOnFocus": true });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.merge_to469, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.reason470, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.merge_to469, this.reason470 ];
    this.http_method = "GET"
    Lino.lists.Lists.merge_row_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.users.AllUsers.send_welcome_email_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  hideCheckBoxLabels: true,
  layout: "form",
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  action_name: 'send_welcome_email',
  ls_url: "/users/AllUsers",
  window_title: "Welcome mail",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.email481 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "e-mail address", "listeners": { "render": Lino.quicktip_renderer("e-mail address","(Welcome mail.email) ") }, "maxLength": 254, "name": "email", "selectOnFocus": true });
    this.subject482 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Subject", "listeners": { "render": Lino.quicktip_renderer("Subject","(Welcome mail.subject) ") }, "maxLength": 250, "name": "subject", "selectOnFocus": true });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.email481, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.subject482, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.email481, this.subject482 ];
    this.http_method = "GET"
    Lino.users.AllUsers.send_welcome_email_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.contacts.Partners.merge_row_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  hideCheckBoxLabels: true,
  layout: "form",
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  action_name: 'merge_row',
  ls_url: "/contacts/Partners",
  window_title: "Merge",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.merge_to357 = new Lino.RemoteComboFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Partner...", "fieldLabel": "into...", "hiddenName": "merge_toHidden", "listeners": { "render": Lino.quicktip_renderer("into...","(Merge.merge_to) ") }, "name": "merge_to", "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Partners", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/apchoices/contacts/Partners/merge_row/merge_to" }) }) });
    this.phones_ContactDetail358 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Contact details", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Contact details","(Merge.phones_ContactDetail) ") }, "name": "phones_ContactDetail", "selectOnFocus": true });
    this.sepa_Account359 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Bank accounts", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Bank accounts","(Merge.sepa_Account) ") }, "name": "sepa_Account", "selectOnFocus": true });
    var keep_volatiles_1_panel360 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": this.phones_ContactDetail358, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": this.sepa_Account359, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    this.topics_Interest363 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Interests", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Interests","(Merge.topics_Interest) ") }, "name": "topics_Interest", "selectOnFocus": true });
    var keep_volatiles_panel364 = new Ext.form.FieldSet({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ keep_volatiles_1_panel360, { "anchor": "-20", "autoHeight": true, "items": this.topics_Interest363, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form", "title": "Also reassign volatile related objects" });
    this.reason366 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Reason", "listeners": { "render": Lino.quicktip_renderer("Reason","(Merge.reason) ") }, "maxLength": 100, "name": "reason", "selectOnFocus": true });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.merge_to357, "labelAlign": "top", "layout": "form", "xtype": "panel" }, keep_volatiles_panel364, { "anchor": "-20", "autoHeight": true, "items": this.reason366, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.merge_to357, this.phones_ContactDetail358, this.sepa_Account359, this.topics_Interest363, this.reason366 ];
    this.http_method = "GET"
    Lino.contacts.Partners.merge_row_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.GuestRoles.merge_row_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  hideCheckBoxLabels: true,
  layout: "form",
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  action_name: 'merge_row',
  ls_url: "/cal/GuestRoles",
  window_title: "Merge",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.merge_to406 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Guest role...", "fieldLabel": "into...", "hiddenName": "merge_toHidden", "listeners": { "render": Lino.quicktip_renderer("into...","(Merge.merge_to) ") }, "name": "merge_to", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.GuestRoles.detail,null)}, "pageSize": 20, "related_actor_id": "cal.GuestRoles", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/apchoices/cal/GuestRoles/merge_row/merge_to" }) }) });
    this.reason407 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Reason", "listeners": { "render": Lino.quicktip_renderer("Reason","(Merge.reason) ") }, "maxLength": 100, "name": "reason", "selectOnFocus": true });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.merge_to406, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.reason407, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.merge_to406, this.reason407 ];
    this.http_method = "GET"
    Lino.cal.GuestRoles.merge_row_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.AccountingPeriods.merge_row_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  hideCheckBoxLabels: true,
  layout: "form",
  autoHeight: true,
  labelAlign: "top",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  action_name: 'merge_row',
  ls_url: "/ledger/AccountingPeriods",
  window_title: "Merge",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.merge_to433 = new Lino.RemoteComboFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Accounting period...", "fieldLabel": "into...", "hiddenName": "merge_toHidden", "listeners": { "render": Lino.quicktip_renderer("into...","(Merge.merge_to) ") }, "name": "merge_to", "pageSize": 20, "preferred_width": 10, "related_actor_id": "ledger.AccountingPeriods", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/apchoices/ledger/AccountingPeriods/merge_row/merge_to" }) }) });
    this.reason434 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Reason", "listeners": { "render": Lino.quicktip_renderer("Reason","(Merge.reason) ") }, "maxLength": 100, "name": "reason", "selectOnFocus": true });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.merge_to433, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.reason434, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.merge_to433, this.reason434 ];
    this.http_method = "GET"
    Lino.ledger.AccountingPeriods.merge_row_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.users.UsersOverview.sign_in_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  hideCheckBoxLabels: true,
  layout: "form",
  autoHeight: true,
  labelAlign: "left",
  autoScroll: false,
  labelWidth: 0,
  frame: true,
  bodyBorder: false,
  border: false,
  action_name: 'sign_in',
  ls_url: "/users/UsersOverview",
  window_title: "Sign in",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.username486 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Username", "listeners": { "render": Lino.quicktip_renderer("Username","(Sign in.username) ") }, "maxLength": null, "name": "username", "selectOnFocus": true });
    this.password487 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Password", "inputType": "password", "listeners": { "render": Lino.quicktip_renderer("Password","(Sign in.password) ") }, "maxLength": null, "name": "password", "selectOnFocus": true });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.username486, "labelAlign": "left", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.password487, "labelAlign": "left", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.username486, this.password487 ];
    this.http_method = "POST"
    Lino.users.UsersOverview.sign_in_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.users.Users.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel users-Users",
  layout: 'fit',
  auto_save: true,
  content_type: 2,
  initComponent : function() {
    var username491 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Username</span>", "listeners": { "render": Lino.quicktip_renderer("Username","(users.Users.username) Must be unique and cannot be empty.") }, "maxLength": 30, "name": "username", "selectOnFocus": true });
    var user_type492 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">User type</span>", "forceSelection": true, "hiddenName": "user_typeHidden", "listeners": { "render": Lino.quicktip_renderer("User type","(users.Users.user_type) The user_type of a user is what defines her or his permissions.") }, "name": "user_type", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.users.UserTypes) });
    var partner493 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Partner...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Partner</span>", "hiddenName": "partnerHidden", "listeners": { "render": Lino.quicktip_renderer("Partner","(users.Users.partner) Pointer to the Partner instance related to\nthis user.") }, "name": "partner", "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Partners", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/users/Users/partner" }) }) });
    var box1_1_panel494 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 34, "items": username491, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 32, "items": user_type492, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 32, "items": partner493, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var first_name498 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "First name", "listeners": { "render": Lino.quicktip_renderer("First name","(users.Users.first_name) ") }, "maxLength": 30, "name": "first_name", "selectOnFocus": true });
    var last_name499 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Last name", "listeners": { "render": Lino.quicktip_renderer("Last name","(users.Users.last_name) ") }, "maxLength": 30, "name": "last_name", "selectOnFocus": true });
    var initials500 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Initials</span>", "listeners": { "render": Lino.quicktip_renderer("Initials","(users.Users.initials) The nickname or initials of this user. This does not need to\nbe unique but should provide a reasonably identifying\nfunction.") }, "maxLength": 10, "name": "initials", "selectOnFocus": true });
    var box1_2_panel501 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 39, "items": first_name498, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 39, "items": last_name499, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 20, "items": initials500, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var email505 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "e-mail address", "listeners": { "render": Lino.quicktip_renderer("e-mail address","(users.Users.email) ") }, "maxLength": 254, "name": "email", "selectOnFocus": true });
    var language506 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Language", "hiddenName": "languageHidden", "listeners": { "render": Lino.quicktip_renderer("Language","(users.Users.language) ") }, "name": "language", "selectOnFocus": true, "store": [ [ "en", "English" ], [ "fr", "French" ] ] });
    var box1_3_panel507 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 51, "items": email505, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 48, "items": language506, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var id510 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(users.Users.id) ") }, "name": "id", "selectOnFocus": true });
    var created511 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Created</span>", "listeners": { "render": Lino.quicktip_renderer("Created","(users.Users.created) The time when this object was created.") }, "name": "created", "value": "<br>" });
    var modified512 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Modified</span>", "listeners": { "render": Lino.quicktip_renderer("Modified","(users.Users.modified) The time when this database object was last modified.") }, "name": "modified", "value": "<br>" });
    var box1_4_panel513 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 13, "items": id510, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 43, "items": created511, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 43, "items": modified512, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var box1_panel517 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ box1_1_panel494, box1_2_panel501, box1_3_panel507, box1_4_panel513 ], "labelAlign": "top", "layout": "form" });
    var remarks518 = new Lino.RichTextPanel({ "containing_panel": this, "fieldLabel": "Remarks", "flex": 66, "name": "remarks", "region": "center", "selectOnFocus": true, "title": "Remarks" });
    var general_2_panel522 = new Ext.Panel({ "autoScroll": false, "border": false, "flex": 55, "frame": false, "hideCheckBoxLabels": true, "items": [ remarks518 ], "labelAlign": "top", "labelWidth": 72, "layout": "hbox", "layoutConfig": { "align": "stretch" } });
    var general_panel523 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ box1_panel517, general_2_panel522 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" }, "listeners": { "activate": Lino.on_tab_activate }, "region": "center", "title": "General" });
    var main_panel551 = new Ext.TabPanel({ "activeTab": 0, "autoScroll": false, "bodyBorder": false, "border": false, "enableTabScroll": true, "frame": true, "hideCheckBoxLabels": true, "items": [ general_panel523 ], "labelAlign": "top", "split": true });
    this.items = main_panel551;
    this.before_row_edit = function(record) {
      remarks518.refresh();
    }
    Lino.users.Users.DetailFormPanel.superclass.initComponent.call(this);
    // active_fields:
    partner493.on("change", function(){ this.save() }, this);
  }
});


Lino.uploads.UploadsByController.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel uploads-UploadsByController",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 29,
  initComponent : function() {
    var file552 = Lino.file_field_handler(this,{ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">File</span>", "listeners": { "render": Lino.quicktip_renderer("File","(uploads.UploadsByController.file) Pointer to the uploaded file. See\nlino.mixins.uploadable.Uploadable.file") }, "maxLength": 100, "name": "file", "selectOnFocus": true });
    var volume553 = new Lino.TwinCombo({ "emptyText": "Select a Library volume...", "fieldLabel": "Library volume", "flex": 66, "hidden": true, "hiddenName": "volumeHidden", "listeners": { "render": Lino.quicktip_renderer("Library volume","(uploads.UploadsByController.volume) ") }, "name": "volume", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.uploads.Volumes.detail,Lino.uploads.Volumes.insert)}, "pageSize": 20, "preferred_width": 5, "related_actor_id": "uploads.Volumes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/uploads/UploadsByController/volume" }) }) });
    var library_file554 = new Lino.SimpleRemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Library file", "listeners": { "render": Lino.quicktip_renderer("Library file","(uploads.UploadsByController.library_file) ") }, "name": "library_file", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/uploads/UploadsByController/library_file" }) }) });
    var main_2_panel555 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ volume553, { "autoHeight": true, "flex": 33, "items": library_file554, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 135, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var type557 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Upload Type...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Upload Type</span>", "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Upload Type","(uploads.UploadsByController.type) The type of this upload.") }, "name": "type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.uploads.UploadTypes.detail,Lino.uploads.UploadTypes.insert)}, "pageSize": 20, "related_actor_id": "uploads.UploadTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/uploads/UploadsByController/type" }) }) });
    var description558 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Description</span>", "listeners": { "render": Lino.quicktip_renderer("Description","(uploads.UploadsByController.description) A short description entered manually by the user.") }, "maxLength": 200, "name": "description", "selectOnFocus": true });
    var main_panel559 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": file552, "labelAlign": "top", "layout": "form", "xtype": "panel" }, main_2_panel555, { "anchor": "-20", "autoHeight": true, "items": type557, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": description558, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel559;
    this.before_row_edit = function(record) {
      library_file554.setContextValue('volume', record ? record.data['volumeHidden'] : undefined);
      type557.setContextValue('upload_area', record ? record.data['upload_areaHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      typeof volume553 !== 'undefined' && volume553.on('change',Lino.chooser_handler(library_file554,'volume'));
      Lino.uploads.UploadsByController.InsertFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.uploads.UploadsByController.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.users.Users.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel users-Users",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 2,
  initComponent : function() {
    var username563 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Username</span>", "listeners": { "render": Lino.quicktip_renderer("Username","(users.Users.username) Must be unique and cannot be empty.") }, "maxLength": 30, "name": "username", "selectOnFocus": true });
    var email564 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "e-mail address", "listeners": { "render": Lino.quicktip_renderer("e-mail address","(users.Users.email) ") }, "maxLength": 254, "name": "email", "selectOnFocus": true });
    var main_1_panel565 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": username563, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": email564, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var first_name568 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "First name", "listeners": { "render": Lino.quicktip_renderer("First name","(users.Users.first_name) ") }, "maxLength": 30, "name": "first_name", "selectOnFocus": true });
    var last_name569 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Last name", "listeners": { "render": Lino.quicktip_renderer("Last name","(users.Users.last_name) ") }, "maxLength": 30, "name": "last_name", "selectOnFocus": true });
    var main_2_panel570 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": first_name568, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": last_name569, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var partner573 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Partner...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Partner</span>", "hiddenName": "partnerHidden", "listeners": { "render": Lino.quicktip_renderer("Partner","(users.Users.partner) Pointer to the Partner instance related to\nthis user.") }, "name": "partner", "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Partners", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/users/Users/partner" }) }) });
    var language574 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Language", "hiddenName": "languageHidden", "listeners": { "render": Lino.quicktip_renderer("Language","(users.Users.language) ") }, "name": "language", "selectOnFocus": true, "store": [ [ "en", "English" ], [ "fr", "French" ] ] });
    var user_type575 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">User type</span>", "forceSelection": true, "hiddenName": "user_typeHidden", "listeners": { "render": Lino.quicktip_renderer("User type","(users.Users.user_type) The user_type of a user is what defines her or his permissions.") }, "name": "user_type", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.users.UserTypes) });
    var main_4_panel576 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 74, "items": language574, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": user_type575, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel579 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel565, main_2_panel570, { "anchor": "-20", "autoHeight": true, "items": partner573, "labelAlign": "top", "layout": "form", "xtype": "panel" }, main_4_panel576 ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel579;
    this.before_row_edit = function(record) {
    }
    Lino.users.Users.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.countries.Countries.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel countries-Countries",
  layout: 'fit',
  auto_save: true,
  content_type: 4,
  initComponent : function() {
    var isocode581 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(4), "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">ISO code</span>", "listeners": { "render": Lino.quicktip_renderer("ISO code","(countries.Countries.isocode) The two-letter code for this country as defined by ISO 3166-1.\nFor countries that no longer exist it may be a 4-letter code.") }, "maxLength": 4, "name": "isocode", "selectOnFocus": true });
    var name582 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Designation</span>", "listeners": { "render": Lino.quicktip_renderer("Designation","(countries.Countries.name) The designation of this country.") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr583 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(countries.Countries.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var short_code584 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(4), "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Short code</span>", "listeners": { "render": Lino.quicktip_renderer("Short code","(countries.Countries.short_code) A short abbreviation for regional usage. Obsolete.") }, "maxLength": 4, "name": "short_code", "selectOnFocus": true });
    var main_1_panel585 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 16, "items": isocode581, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": name582, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": name_fr583, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": short_code584, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel757 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel585 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel757;
    this.before_row_edit = function(record) {
    }
    Lino.countries.Countries.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.PaymentTerms.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel ledger-PaymentTerms",
  layout: 'fit',
  auto_save: true,
  content_type: 34,
  initComponent : function() {
    var ref758 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Reference</span>", "listeners": { "render": Lino.quicktip_renderer("Reference","(ledger.PaymentTerms.ref) The reference. This must be either empty or unique.") }, "maxLength": 200, "name": "ref", "selectOnFocus": true });
    var months759 = new Ext.form.NumberField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Months</span>", "listeners": { "render": Lino.quicktip_renderer("Months","(ledger.PaymentTerms.months) Number of months to add to voucher_date.") }, "name": "months", "selectOnFocus": true, "value": 0 });
    var days760 = new Ext.form.NumberField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Days</span>", "listeners": { "render": Lino.quicktip_renderer("Days","(ledger.PaymentTerms.days) Number of days to add to voucher_date.") }, "name": "days", "selectOnFocus": true, "value": 0 });
    var end_of_month761 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "End of month", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("End of month","(ledger.PaymentTerms.end_of_month) Whether to move voucher_date to the end of month.") }, "name": "end_of_month", "selectOnFocus": true });
    var main_1_panel762 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 20, "items": ref758, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 20, "items": months759, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 20, "items": days760, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 40, "items": end_of_month761, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var name767 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation", "listeners": { "render": Lino.quicktip_renderer("Designation","(ledger.PaymentTerms.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr768 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(ledger.PaymentTerms.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_2_panel769 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": name767, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": name_fr768, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var printed_text772 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Printed text</span>", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Printed text","(ledger.PaymentTerms.printed_text) Used in sales/VatProductInvoice/trailer.html as\nfollows:") }, "name": "printed_text", "selectOnFocus": true });
    var printed_text_fr773 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Printed text (fr)", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Printed text (fr)","(ledger.PaymentTerms.printed_text_fr) ") }, "name": "printed_text_fr", "selectOnFocus": true });
    var main_3_panel774 = new Ext.Panel({ "autoScroll": false, "border": false, "flex": 71, "frame": false, "hideCheckBoxLabels": true, "items": [ { "flex": 50, "items": printed_text772, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "flex": 50, "items": printed_text_fr773, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretch" } });
    var main_panel777 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel762, main_2_panel769, main_3_panel774 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel777;
    this.before_row_edit = function(record) {
    }
    Lino.ledger.PaymentTerms.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.countries.Countries.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel countries-Countries",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 4,
  initComponent : function() {
    var isocode778 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(4), "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">ISO code</span>", "listeners": { "render": Lino.quicktip_renderer("ISO code","(countries.Countries.isocode) The two-letter code for this country as defined by ISO 3166-1.\nFor countries that no longer exist it may be a 4-letter code.") }, "maxLength": 4, "name": "isocode", "selectOnFocus": true });
    var short_code779 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(4), "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Short code</span>", "listeners": { "render": Lino.quicktip_renderer("Short code","(countries.Countries.short_code) A short abbreviation for regional usage. Obsolete.") }, "maxLength": 4, "name": "short_code", "selectOnFocus": true });
    var main_1_panel780 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": isocode778, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": short_code779, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var name783 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Designation</span>", "listeners": { "render": Lino.quicktip_renderer("Designation","(countries.Countries.name) The designation of this country.") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr784 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(countries.Countries.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_2_panel785 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": name783, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": name_fr784, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel788 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel780, main_2_panel785 ], "labelAlign": "top", "layout": "form" });
    this.items = main_panel788;
    this.before_row_edit = function(record) {
    }
    Lino.countries.Countries.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.phones.ContactDetails.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel phones-ContactDetails",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 41,
  initComponent : function() {
    var detail_type789 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Contact detail type", "forceSelection": true, "hiddenName": "detail_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Contact detail type","(phones.ContactDetails.detail_type) ") }, "name": "detail_type", "selectOnFocus": true, "store": Lino.phones.ContactDetailTypes });
    var value790 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Value", "listeners": { "render": Lino.quicktip_renderer("Value","(phones.ContactDetails.value) ") }, "maxLength": 200, "name": "value", "selectOnFocus": true });
    var remark791 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Remark", "listeners": { "render": Lino.quicktip_renderer("Remark","(phones.ContactDetails.remark) ") }, "maxLength": 200, "name": "remark", "selectOnFocus": true });
    var main_panel792 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": detail_type789, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": value790, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": remark791, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel792;
    this.before_row_edit = function(record) {
    }
    Lino.phones.ContactDetails.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.Events.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel cal-Events",
  layout: 'fit',
  auto_save: true,
  content_type: 25,
  initComponent : function() {
    var event_type796 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Calendar entry type...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Calendar entry type</span>", "hiddenName": "event_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Calendar entry type","(cal.Events.event_type) The type of this calendar entry.") }, "name": "event_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.EventTypes.detail,Lino.cal.EventTypes.insert)}, "pageSize": 20, "related_actor_id": "cal.EventTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Events/event_type" }) }) });
    var summary797 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Short description</span>", "listeners": { "render": Lino.quicktip_renderer("Short description","(cal.Events.summary) A one-line descriptive text.") }, "maxLength": 200, "name": "summary", "selectOnFocus": true });
    var user798 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Responsible user</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Responsible user","(cal.Events.user) The responsible user.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Events/user" }) }) });
    var main_1_panel799 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 32, "items": event_type796, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 34, "items": summary797, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 32, "items": user798, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var start_date803 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Start date</span>", "listeners": { "render": Lino.quicktip_renderer("Start date","(cal.Events.start_date) The starting date of this entry.  May not be empty.") }, "name": "start_date", "selectOnFocus": true });
    var start_time804 = new Lino.TimeField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Start time</span>", "listeners": { "render": Lino.quicktip_renderer("Start time","(cal.Events.start_time) The starting time.  If this is empty, the entry is considered a all-day entry.") }, "maxValue": "9:00 PM", "minValue": "7:00", "name": "start_time", "selectOnFocus": true });
    var start_panel805 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "flex": 33, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 61, "items": start_date803, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 38, "items": start_time804, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var end_date808 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">End Date</span>", "listeners": { "render": Lino.quicktip_renderer("End Date","(cal.Events.end_date) The ending date of this entry. Leave empty for same-day entries.") }, "name": "end_date", "selectOnFocus": true });
    var end_time809 = new Lino.TimeField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">End Time</span>", "listeners": { "render": Lino.quicktip_renderer("End Time","(cal.Events.end_time) The ending time.  If this is before the starting time, and no ending date\nis given, the entry ends the day after.") }, "maxValue": "9:00 PM", "minValue": "7:00", "name": "end_time", "selectOnFocus": true });
    var end_panel810 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "flex": 33, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 61, "items": end_date808, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 38, "items": end_time809, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var assigned_to813 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Assigned to</span>", "hiddenName": "assigned_toHidden", "listeners": { "render": Lino.quicktip_renderer("Assigned to","(cal.Events.assigned_to) Another user who is expected to take responsibility for this\nentry.") }, "name": "assigned_to", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Events/assigned_to" }) }) });
    var main_2_panel814 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ start_panel805, end_panel810, { "autoHeight": true, "flex": 32, "items": assigned_to813, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var room816 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Room...", "fieldLabel": "Room", "hiddenName": "roomHidden", "listeners": { "render": Lino.quicktip_renderer("Room","(cal.Events.room) ") }, "name": "room", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.Rooms.detail,Lino.cal.Rooms.insert)}, "pageSize": 20, "related_actor_id": "cal.Rooms", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Events/room" }) }) });
    var owner_disp817 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Controlled by", "name": "owner" });
    var workflow_buttons_disp818 = new Ext.form.DisplayField({ "always_enabled": true, "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Workflow", "listeners": { "render": Lino.quicktip_renderer("Workflow","(cal.Events.workflow_buttons) ") }, "name": "workflow_buttons", "value": "<br/>" });
    var main_3_panel819 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 33, "items": room816, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": owner_disp817, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": workflow_buttons_disp818, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var description823 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Description</span>", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Description","(cal.Events.description) A longer descriptive text.") }, "name": "description", "region": "center", "selectOnFocus": true });
    var main_4_panel858 = new Ext.Panel({ "autoScroll": false, "border": false, "flex": 50, "frame": false, "hideCheckBoxLabels": true, "items": [ { "flex": 33, "items": description823, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretch" } });
    var main_panel860 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel799, main_2_panel814, main_3_panel819, main_4_panel858 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel860;
    this.before_row_edit = function(record) {
    }
    Lino.cal.Events.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.contacts.Persons.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel contacts-Persons",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 10,
  initComponent : function() {
    var first_name861 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">First name</span>", "listeners": { "render": Lino.quicktip_renderer("First name","(contacts.Persons.first_name) The first name, also known as given name.") }, "maxLength": 200, "name": "first_name", "selectOnFocus": true });
    var last_name862 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Last name</span>", "listeners": { "render": Lino.quicktip_renderer("Last name","(contacts.Persons.last_name) The last name, also known as family name.") }, "maxLength": 200, "name": "last_name", "selectOnFocus": true });
    var main_1_panel863 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": first_name861, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": last_name862, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var gender866 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Gender</span>", "forceSelection": true, "hiddenName": "genderHidden", "listeners": { "render": Lino.quicktip_renderer("Gender","(contacts.Persons.gender) The sex of this person (male or female).") }, "name": "gender", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.Genders) });
    var email867 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">e-mail address</span>", "listeners": { "render": Lino.quicktip_renderer("e-mail address","(contacts.Persons.email) The primary email address.") }, "maxLength": 254, "name": "email", "selectOnFocus": true });
    var main_2_panel868 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 25, "items": gender866, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 75, "items": email867, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel871 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel863, main_2_panel868 ], "labelAlign": "top", "layout": "form" });
    this.items = main_panel871;
    this.before_row_edit = function(record) {
    }
    Lino.contacts.Persons.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.blogs.Entries.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel blogs-Entries",
  layout: 'fit',
  auto_save: true,
  content_type: 52,
  initComponent : function() {
    var title872 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Heading", "listeners": { "render": Lino.quicktip_renderer("Heading","(blogs.Entries.title) ") }, "maxLength": 200, "name": "title", "selectOnFocus": true });
    var entry_type873 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Blog Entry Type...", "fieldLabel": "Blog Entry Type", "hiddenName": "entry_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Blog Entry Type","(blogs.Entries.entry_type) ") }, "name": "entry_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.blogs.EntryTypes.detail,null)}, "pageSize": 20, "related_actor_id": "blogs.EntryTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/blogs/Entries/entry_type" }) }) });
    var id874 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(blogs.Entries.id) ") }, "name": "id", "selectOnFocus": true });
    var main_1_panel875 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 55, "items": title872, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 31, "items": entry_type873, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 13, "items": id874, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var pub_date879 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Publication date", "listeners": { "render": Lino.quicktip_renderer("Publication date","(blogs.Entries.pub_date) ") }, "name": "pub_date", "selectOnFocus": true });
    var pub_time880 = new Lino.TimeField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Publication time", "listeners": { "render": Lino.quicktip_renderer("Publication time","(blogs.Entries.pub_time) ") }, "maxValue": "9:00 PM", "minValue": "7:00", "name": "pub_time", "selectOnFocus": true });
    var user881 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Author</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(blogs.Entries.user) The author of this object.\nA pointer to lino.modlib.users.models.User.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/blogs/Entries/user" }) }) });
    var language882 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Language", "hiddenName": "languageHidden", "listeners": { "render": Lino.quicktip_renderer("Language","(blogs.Entries.language) ") }, "name": "language", "selectOnFocus": true, "store": [ [ "en", "English" ], [ "fr", "French" ] ] });
    var owner_disp883 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Controlled by", "name": "owner" });
    var add_interest884 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Topic...", "fieldLabel": "Add interest", "hiddenName": "add_interestHidden", "listeners": { "render": Lino.quicktip_renderer("Add interest","(blogs.Entries.add_interest) ") }, "name": "add_interest", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.topics.Topics.detail,Lino.topics.Topics.insert)}, "pageSize": 20, "related_actor_id": "topics.Topics", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/blogs/Entries/add_interest" }) }) });
    var main_2_panel885 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 18, "items": pub_date879, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 11, "items": pub_time880, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 14, "items": user881, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 14, "items": language882, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 14, "items": owner_disp883, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 28, "items": add_interest884, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var body892 = new Lino.RichTextPanel({ "containing_panel": this, "fieldLabel": "Body", "flex": 75, "name": "body", "region": "center", "selectOnFocus": true, "title": "Body" });
    var main_3_panel894 = new Ext.Panel({ "autoScroll": false, "border": false, "flex": 71, "frame": false, "hideCheckBoxLabels": true, "items": [ body892 ], "labelAlign": "top", "labelWidth": 90, "layout": "hbox", "layoutConfig": { "align": "stretch" } });
    var main_panel895 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel875, main_2_panel885, main_3_panel894 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel895;
    this.before_row_edit = function(record) {
      body892.refresh();
    }
    Lino.blogs.Entries.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.households.Types.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel households-Types",
  layout: 'fit',
  auto_save: true,
  content_type: 42,
  initComponent : function() {
    var name896 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation", "listeners": { "render": Lino.quicktip_renderer("Designation","(households.Types.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr897 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(households.Types.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel898 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": name896, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": name_fr897, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1001 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel898 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1001;
    this.before_row_edit = function(record) {
    }
    Lino.households.Types.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.tinymce.TextFieldTemplates.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel tinymce-TextFieldTemplates",
  layout: 'fit',
  auto_save: true,
  content_type: 55,
  initComponent : function() {
    var id1002 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(tinymce.TextFieldTemplates.id) ") }, "name": "id", "selectOnFocus": true });
    var name1003 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation", "listeners": { "render": Lino.quicktip_renderer("Designation","(tinymce.TextFieldTemplates.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var user1004 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Author</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(tinymce.TextFieldTemplates.user) The author of this object.\nA pointer to lino.modlib.users.models.User.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tinymce/TextFieldTemplates/user" }) }) });
    var main_1_panel1005 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 10, "items": id1002, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 45, "items": name1003, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 43, "items": user1004, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" }, "region": "north", "split": true });
    var description1009 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Description", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Description","(tinymce.TextFieldTemplates.description) ") }, "name": "description", "selectOnFocus": true });
    var text1010 = new Lino.RichTextPanel({ "containing_panel": this, "fieldLabel": "Template Text", "flex": 5, "name": "text", "region": "south", "selectOnFocus": true, "split": true, "title": "Template Text" });
    var main_panel1011 = new Lino.VBorderPanel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1005, { "flex": 5, "items": description1009, "labelAlign": "top", "layout": "form", "region": "center", "split": true, "xtype": "panel" }, text1010 ], "labelAlign": "top", "labelWidth": 126 });
    this.items = main_panel1011;
    this.before_row_edit = function(record) {
      text1010.refresh();
    }
    Lino.tinymce.TextFieldTemplates.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.comments.Comments.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel comments-Comments",
  layout: 'fit',
  auto_save: true,
  content_type: 57,
  initComponent : function() {
    var reply_to1013 = new Lino.TwinCombo({ "emptyText": "Select a Comment...", "fieldLabel": "Reply to", "flex": 33, "hidden": true, "hiddenName": "reply_toHidden", "listeners": { "render": Lino.quicktip_renderer("Reply to","(comments.Comments.reply_to) ") }, "name": "reply_to", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.comments.Comments.detail,Lino.comments.Comments.insert)}, "pageSize": 20, "related_actor_id": "comments.Comments", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/comments/Comments/reply_to" }) }) });
    var owner_disp1014 = new Ext.form.DisplayField({ "disabled": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Controlled by</span>", "flex": 16, "hidden": true, "name": "owner" });
    var owner_type1015 = new Lino.TwinCombo({ "emptyText": "Select a content type...", "fieldLabel": "Controlled by (type)", "flex": 33, "hidden": true, "hiddenName": "owner_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Controlled by (type)","(comments.Comments.owner_type) ") }, "name": "owner_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.gfks.ContentTypes.detail,null)}, "pageSize": 20, "related_actor_id": "gfks.ContentTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/comments/Comments/owner_type" }) }) });
    var owner_id1016 = new Lino.RemoteComboFieldElement({ "fieldLabel": "Controlled by (object)", "flex": 16, "hidden": true, "hiddenName": "owner_idHidden", "listeners": { "render": Lino.quicktip_renderer("Controlled by (object)","(comments.Comments.owner_id) ") }, "name": "owner_id", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/comments/Comments/owner_id" }) }) });
    var main_1_panel1017 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hidden": true, "hideCheckBoxLabels": true, "items": [ reply_to1013, owner_disp1014, owner_type1015, owner_id1016 ], "labelAlign": "top", "labelWidth": 207, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var body1018 = new Lino.RichTextPanel({ "containing_panel": this, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Body</span>", "flex": 83, "name": "body", "selectOnFocus": true, "title": "Body" });
    var main_panel1019 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1017, body1018 ], "labelAlign": "top", "labelWidth": 45, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1019;
    this.before_row_edit = function(record) {
      owner_id1016.setContextValue('owner_type', record ? record.data['owner_typeHidden'] : undefined);
      body1018.refresh();
    }
    this.onRender = function(ct, position) {
      typeof owner_type1015 !== 'undefined' && owner_type1015.on('change',Lino.chooser_handler(owner_id1016,'owner_type'));
      Lino.comments.Comments.InsertFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.comments.Comments.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.households.Households.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel households-Households",
  layout: 'fit',
  auto_save: true,
  content_type: 44,
  initComponent : function() {
    var type931 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Household Type...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Household Type</span>", "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Household Type","(households.Households.type) The type of this household.  See household types") }, "name": "type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.households.Types.detail,null)}, "pageSize": 20, "related_actor_id": "households.Types", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/households/Households/type" }) }) });
    var prefix932 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Name prefix</span>", "listeners": { "render": Lino.quicktip_renderer("Name prefix","(households.Households.prefix) An optional name prefix. For organisations this is inserted\nbefore the name, for persons this is inserted between first\nname and last name.") }, "maxLength": 200, "name": "prefix", "selectOnFocus": true });
    var name933 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Name</span>", "listeners": { "render": Lino.quicktip_renderer("Name","(households.Households.name) The full name of this partner. Used for alphabetic sorting.") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var language934 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Language</span>", "hiddenName": "languageHidden", "listeners": { "render": Lino.quicktip_renderer("Language","(households.Households.language) The language to use when communicating with this partner.") }, "name": "language", "selectOnFocus": true, "store": [ [ "en", "English" ], [ "fr", "French" ] ] });
    var id935 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(households.Households.id) ") }, "name": "id", "selectOnFocus": true });
    var main_1_panel936 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 25, "items": type931, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 27, "items": prefix932, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 27, "items": name933, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 12, "items": language934, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 6, "items": id935, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var country942 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Country...", "fieldLabel": "Country", "hiddenName": "countryHidden", "listeners": { "render": Lino.quicktip_renderer("Country","(households.Households.country) ") }, "name": "country", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Countries.detail,Lino.countries.Countries.insert)}, "pageSize": 20, "related_actor_id": "countries.Countries", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/households/Households/country" }) }) });
    var region943 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Place...", "fieldLabel": "County", "hiddenName": "regionHidden", "listeners": { "render": Lino.quicktip_renderer("County","(households.Households.region) ") }, "name": "region", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Places.detail,null)}, "pageSize": 20, "related_actor_id": "countries.Places", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/households/Households/region" }) }) });
    var box3_1_panel944 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": country942, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": region943, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var city947 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Place...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Locality</span>", "forceSelection": false, "hiddenName": "cityHidden", "listeners": { "render": Lino.quicktip_renderer("Locality","(households.Households.city) The locality, i.e. usually a village, city or town.") }, "name": "city", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Places.detail,null)}, "pageSize": 20, "related_actor_id": "countries.Places", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/households/Households/city" }) }) });
    var zip_code948 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "Zip code", "listeners": { "render": Lino.quicktip_renderer("Zip code","(households.Households.zip_code) ") }, "maxLength": 10, "name": "zip_code", "selectOnFocus": true });
    var box3_2_panel949 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 66, "items": city947, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": zip_code948, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var street_prefix952 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Street prefix</span>", "listeners": { "render": Lino.quicktip_renderer("Street prefix","(households.Households.street_prefix) Text to print before name of street, but to ignore for sorting.") }, "maxLength": 200, "name": "street_prefix", "selectOnFocus": true });
    var street953 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Street</span>", "listeners": { "render": Lino.quicktip_renderer("Street","(households.Households.street) Name of street, without house number.") }, "maxLength": 200, "name": "street", "selectOnFocus": true });
    var street_no954 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">No.</span>", "listeners": { "render": Lino.quicktip_renderer("No.","(households.Households.street_no) House number.") }, "maxLength": 10, "name": "street_no", "selectOnFocus": true });
    var street_box955 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Box</span>", "listeners": { "render": Lino.quicktip_renderer("Box","(households.Households.street_box) Text to print after street number on the same line.") }, "maxLength": 10, "name": "street_box", "selectOnFocus": true });
    var box3_3_panel956 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 30, "items": street_prefix952, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 36, "items": street953, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": street_no954, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": street_box955, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var addr2961 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Address line after street</span>", "listeners": { "render": Lino.quicktip_renderer("Address line after street","(households.Households.addr2) Address line to print below street line.") }, "maxLength": 200, "name": "addr2", "selectOnFocus": true });
    var box3_panel962 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "flex": 62, "frame": true, "hideCheckBoxLabels": true, "items": [ box3_1_panel944, box3_2_panel949, box3_3_panel956, { "anchor": "-20", "autoHeight": true, "items": addr2961, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    var phone964 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Phone</span>", "listeners": { "render": Lino.quicktip_renderer("Phone","(households.Households.phone) The primary phone number.") }, "maxLength": 200, "name": "phone", "selectOnFocus": true });
    var gsm965 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">GSM</span>", "listeners": { "render": Lino.quicktip_renderer("GSM","(households.Households.gsm) The primary mobile phone number.") }, "maxLength": 200, "name": "gsm", "selectOnFocus": true });
    var email966 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">e-mail address</span>", "listeners": { "render": Lino.quicktip_renderer("e-mail address","(households.Households.email) The primary email address.") }, "maxLength": 254, "name": "email", "selectOnFocus": true });
    var url967 = new Lino.URLField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "URL", "listeners": { "render": Lino.quicktip_renderer("URL","(households.Households.url) ") }, "maxLength": 200, "name": "url", "selectOnFocus": true });
    var box4_panel968 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "flex": 37, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": phone964, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": gsm965, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": email966, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": url967, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    var address_box_panel973 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ box3_panel962, box4_panel968 ], "labelAlign": "top", "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel994 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel936, address_box_panel973 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel994;
    this.before_row_edit = function(record) {
      region943.setContextValue('country', record ? record.data['countryHidden'] : undefined);
      city947.setContextValue('country', record ? record.data['countryHidden'] : undefined);
      city947.setContextValue('region', record ? record.data['regionHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      typeof country942 !== 'undefined' && country942.on('change',Lino.chooser_handler(region943,'country'));
      typeof country942 !== 'undefined' && country942.on('change',Lino.chooser_handler(city947,'country'));
      typeof region943 !== 'undefined' && region943.on('change',Lino.chooser_handler(city947,'region'));
      Lino.households.Households.DetailFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.households.Households.DetailFormPanel.superclass.initComponent.call(this);
    // active_fields:
    city947.on("change", function(){ this.save() }, this);
    zip_code948.on("change", function(){ this.save() }, this);
  }
});


Lino.households.Households.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel households-Households",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 44,
  initComponent : function() {
    var type1020 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Household Type...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Household Type</span>", "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Household Type","(households.Households.type) The type of this household.  See household types") }, "name": "type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.households.Types.detail,null)}, "pageSize": 20, "related_actor_id": "households.Types", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/households/Households/type" }) }) });
    var name1021 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Name</span>", "listeners": { "render": Lino.quicktip_renderer("Name","(households.Households.name) The full name of this partner. Used for alphabetic sorting.") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var main_1_panel1022 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 48, "items": type1020, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 51, "items": name1021, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var language1025 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Language</span>", "hiddenName": "languageHidden", "listeners": { "render": Lino.quicktip_renderer("Language","(households.Households.language) The language to use when communicating with this partner.") }, "name": "language", "selectOnFocus": true, "store": [ [ "en", "English" ], [ "fr", "French" ] ] });
    var main_panel1026 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1022, { "anchor": "-20", "autoHeight": true, "items": language1025, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1026;
    this.before_row_edit = function(record) {
    }
    Lino.households.Households.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.Events.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel cal-Events",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 25,
  initComponent : function() {
    var start_date1028 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Start date</span>", "listeners": { "render": Lino.quicktip_renderer("Start date","(cal.Events.start_date) The starting date of this entry.  May not be empty.") }, "name": "start_date", "selectOnFocus": true });
    var start_time1029 = new Lino.TimeField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Start time</span>", "listeners": { "render": Lino.quicktip_renderer("Start time","(cal.Events.start_time) The starting time.  If this is empty, the entry is considered a all-day entry.") }, "maxValue": "9:00 PM", "minValue": "7:00", "name": "start_time", "selectOnFocus": true });
    var end_date1030 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">End Date</span>", "listeners": { "render": Lino.quicktip_renderer("End Date","(cal.Events.end_date) The ending date of this entry. Leave empty for same-day entries.") }, "name": "end_date", "selectOnFocus": true });
    var end_time1031 = new Lino.TimeField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">End Time</span>", "listeners": { "render": Lino.quicktip_renderer("End Time","(cal.Events.end_time) The ending time.  If this is before the starting time, and no ending date\nis given, the entry ends the day after.") }, "maxValue": "9:00 PM", "minValue": "7:00", "name": "end_time", "selectOnFocus": true });
    var main_1_panel1032 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 30, "items": start_date1028, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": start_time1029, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": end_date1030, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": end_time1031, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var summary1037 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Short description</span>", "listeners": { "render": Lino.quicktip_renderer("Short description","(cal.Events.summary) A one-line descriptive text.") }, "maxLength": 200, "name": "summary", "selectOnFocus": true });
    var main_panel1038 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1032, { "anchor": "-20", "autoHeight": true, "items": summary1037, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1038;
    this.before_row_edit = function(record) {
    }
    Lino.cal.Events.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.topics.Topics.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel topics-Topics",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 47,
  initComponent : function() {
    var ref1040 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Reference</span>", "listeners": { "render": Lino.quicktip_renderer("Reference","(topics.Topics.ref) The reference.") }, "maxLength": 200, "name": "ref", "selectOnFocus": true });
    var name1041 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Designation</span>", "listeners": { "render": Lino.quicktip_renderer("Designation","(topics.Topics.name) The designation in different languages.") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr1042 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(topics.Topics.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_2_panel1043 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": name1041, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": name_fr1042, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1046 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": ref1040, "labelAlign": "top", "layout": "form", "xtype": "panel" }, main_2_panel1043 ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1046;
    this.before_row_edit = function(record) {
    }
    Lino.topics.Topics.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.uploads.Volumes.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel uploads-Volumes",
  layout: 'fit',
  auto_save: true,
  content_type: 27,
  initComponent : function() {
    var ref1048 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Reference</span>", "listeners": { "render": Lino.quicktip_renderer("Reference","(uploads.Volumes.ref) The reference. This must be either empty or unique.") }, "maxLength": 200, "name": "ref", "selectOnFocus": true });
    var description1049 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Description", "listeners": { "render": Lino.quicktip_renderer("Description","(uploads.Volumes.description) ") }, "maxLength": 255, "name": "description", "selectOnFocus": true });
    var main_1_panel1050 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 65, "items": ref1048, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 34, "items": description1049, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var root_dir1053 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Root directory", "listeners": { "render": Lino.quicktip_renderer("Root directory","(uploads.Volumes.root_dir) ") }, "maxLength": 255, "name": "root_dir", "selectOnFocus": true });
    var base_url1054 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Base URL", "listeners": { "render": Lino.quicktip_renderer("Base URL","(uploads.Volumes.base_url) ") }, "maxLength": 255, "name": "base_url", "selectOnFocus": true });
    var main_2_panel1055 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": root_dir1053, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": base_url1054, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var overview_htmlbox1058 = new Lino.HtmlBoxPanel({ "always_enabled": true, "bodyStyle": "overflow-x:hidden;", "containing_panel": this, "flex": 60, "items": new Ext.BoxComponent({autoScroll:true}), "layout": "fit", "listeners": { "render": Lino.quicktip_renderer(null,"(uploads.Volumes.overview) ") }, "name": "overview", "value": "<br/>" });
    var main_panel1059 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1050, main_2_panel1055, overview_htmlbox1058 ], "labelAlign": "top", "labelWidth": 0, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1059;
    this.before_row_edit = function(record) {
      overview_htmlbox1058.refresh();
    }
    Lino.uploads.Volumes.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.Situation.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel utils-Report",
  layout: 'fit',
  auto_save: true,
  disable_editing: true,
  initComponent : function() {
    var body_htmlbox1060 = new Lino.HtmlBoxPanel({ "always_enabled": true, "bodyStyle": "overflow-x:hidden;", "containing_panel": this, "items": new Ext.BoxComponent({autoScroll:true}), "layout": "fit", "listeners": { "render": Lino.quicktip_renderer(null,"(utils.Report.body) ") }, "name": "body", "region": "center", "value": "<br/>" });
    var main_panel1061 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ body_htmlbox1060 ], "labelAlign": "top", "labelWidth": 0, "layout": "fit" });
    this.items = main_panel1061;
    this.before_row_edit = function(record) {
      body_htmlbox1060.refresh();
    }
    Lino.ledger.Situation.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.countries.Places.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel countries-Places",
  layout: 'fit',
  auto_save: true,
  content_type: 5,
  initComponent : function() {
    var name603 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation", "listeners": { "render": Lino.quicktip_renderer("Designation","(countries.Places.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr604 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(countries.Places.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var country605 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Country...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Country</span>", "hiddenName": "countryHidden", "listeners": { "render": Lino.quicktip_renderer("Country","(countries.Places.country) The country this place is in.") }, "name": "country", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Countries.detail,Lino.countries.Countries.insert)}, "pageSize": 20, "related_actor_id": "countries.Countries", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/countries/Places/country" }) }) });
    var main_1_panel606 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 33, "items": name603, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": name_fr604, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 32, "items": country605, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var type610 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Place Type</span>", "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Place Type","(countries.Places.type) The type of this place (whether it's a city. a village, a province...)") }, "name": "type", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/countries/Places/type" }) }) });
    var parent611 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Place...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Part of</span>", "hiddenName": "parentHidden", "listeners": { "render": Lino.quicktip_renderer("Part of","(countries.Places.parent) The superordinate geographic place of which this place is a part.") }, "name": "parent", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Places.detail,null)}, "pageSize": 20, "related_actor_id": "countries.Places", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/countries/Places/parent" }) }) });
    var zip_code612 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(8), "fieldLabel": "zip code", "listeners": { "render": Lino.quicktip_renderer("zip code","(countries.Places.zip_code) ") }, "maxLength": 8, "name": "zip_code", "selectOnFocus": true });
    var id613 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(countries.Places.id) ") }, "name": "id", "selectOnFocus": true });
    var main_2_panel614 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 22, "items": type610, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 45, "items": parent611, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 20, "items": zip_code612, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 11, "items": id613, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel755 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel606, main_2_panel614 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel755;
    this.before_row_edit = function(record) {
      type610.setContextValue('country', record ? record.data['countryHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      typeof country605 !== 'undefined' && country605.on('change',Lino.chooser_handler(type610,'country'));
      Lino.countries.Places.DetailFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.countries.Places.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.checkdata.Checkers.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel checkdata-Checkers",
  layout: 'fit',
  auto_save: true,
  disable_editing: true,
  initComponent : function() {
    var value1062 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "value", "listeners": { "render": Lino.quicktip_renderer("value","(checkdata.Checkers.value) ") }, "maxLength": 20, "name": "value" });
    var text1063 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "text", "listeners": { "render": Lino.quicktip_renderer("text","(checkdata.Checkers.text) ") }, "maxLength": 50, "name": "text" });
    var main_1_panel1064 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": value1062, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": text1063, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1091 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1064 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1091;
    this.before_row_edit = function(record) {
    }
    Lino.checkdata.Checkers.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.uploads.Volumes.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel uploads-Volumes",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 27,
  initComponent : function() {
    var ref1092 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Reference</span>", "listeners": { "render": Lino.quicktip_renderer("Reference","(uploads.Volumes.ref) The reference. This must be either empty or unique.") }, "maxLength": 200, "name": "ref", "selectOnFocus": true });
    var description1093 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Description", "listeners": { "render": Lino.quicktip_renderer("Description","(uploads.Volumes.description) ") }, "maxLength": 255, "name": "description", "selectOnFocus": true });
    var main_1_panel1094 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 65, "items": ref1092, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 34, "items": description1093, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var root_dir1097 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Root directory", "listeners": { "render": Lino.quicktip_renderer("Root directory","(uploads.Volumes.root_dir) ") }, "maxLength": 255, "name": "root_dir", "selectOnFocus": true });
    var base_url1098 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Base URL", "listeners": { "render": Lino.quicktip_renderer("Base URL","(uploads.Volumes.base_url) ") }, "maxLength": 255, "name": "base_url", "selectOnFocus": true });
    var main_panel1099 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1094, { "anchor": "-20", "autoHeight": true, "items": root_dir1097, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": base_url1098, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1099;
    this.before_row_edit = function(record) {
    }
    Lino.uploads.Volumes.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.uploads.Uploads.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel uploads-Uploads",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 29,
  initComponent : function() {
    var file1102 = Lino.file_field_handler(this,{ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">File</span>", "listeners": { "render": Lino.quicktip_renderer("File","(uploads.Uploads.file) Pointer to the uploaded file. See\nlino.mixins.uploadable.Uploadable.file") }, "maxLength": 100, "name": "file", "selectOnFocus": true });
    var user1103 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Uploaded by</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Uploaded by","(uploads.Uploads.user) The author of this object.\nA pointer to lino.modlib.users.models.User.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/uploads/Uploads/user" }) }) });
    var main_1_panel1104 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 51, "items": file1102, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 48, "items": user1103, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var volume1107 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Library volume...", "fieldLabel": "Library volume", "hiddenName": "volumeHidden", "listeners": { "render": Lino.quicktip_renderer("Library volume","(uploads.Uploads.volume) ") }, "name": "volume", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.uploads.Volumes.detail,Lino.uploads.Volumes.insert)}, "pageSize": 20, "preferred_width": 5, "related_actor_id": "uploads.Volumes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/uploads/Uploads/volume" }) }) });
    var library_file1108 = new Lino.SimpleRemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Library file", "listeners": { "render": Lino.quicktip_renderer("Library file","(uploads.Uploads.library_file) ") }, "name": "library_file", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/uploads/Uploads/library_file" }) }) });
    var main_2_panel1109 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 20, "items": volume1107, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 80, "items": library_file1108, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var upload_area1112 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Upload Area", "forceSelection": true, "hiddenName": "upload_areaHidden", "listeners": { "render": Lino.quicktip_renderer("Upload Area","(uploads.Uploads.upload_area) ") }, "name": "upload_area", "selectOnFocus": true, "store": Lino.uploads.UploadAreas });
    var type1113 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Upload Type...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Upload Type</span>", "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Upload Type","(uploads.Uploads.type) The type of this upload.") }, "name": "type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.uploads.UploadTypes.detail,Lino.uploads.UploadTypes.insert)}, "pageSize": 20, "related_actor_id": "uploads.UploadTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/uploads/Uploads/type" }) }) });
    var description1114 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Description</span>", "listeners": { "render": Lino.quicktip_renderer("Description","(uploads.Uploads.description) A short description entered manually by the user.") }, "maxLength": 200, "name": "description", "selectOnFocus": true });
    var main_3_panel1115 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 14, "items": upload_area1112, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 41, "items": type1113, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 43, "items": description1114, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var owner_disp1119 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Controlled by", "name": "owner" });
    var main_panel1120 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1104, main_2_panel1109, main_3_panel1115, { "anchor": "-20", "autoHeight": true, "items": owner_disp1119, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1120;
    this.before_row_edit = function(record) {
      library_file1108.setContextValue('volume', record ? record.data['volumeHidden'] : undefined);
      type1113.setContextValue('upload_area', record ? record.data['upload_areaHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      typeof volume1107 !== 'undefined' && volume1107.on('change',Lino.chooser_handler(library_file1108,'volume'));
      typeof upload_area1112 !== 'undefined' && upload_area1112.on('change',Lino.chooser_handler(type1113,'upload_area'));
      Lino.uploads.Uploads.DetailFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.uploads.Uploads.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.Accounts.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel ledger-Accounts",
  layout: 'fit',
  auto_save: true,
  content_type: 35,
  initComponent : function() {
    var ref1122 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Reference</span>", "listeners": { "render": Lino.quicktip_renderer("Reference","(ledger.Accounts.ref) An optional unique name which can be used to reference a given\naccount.") }, "maxLength": 200, "name": "ref", "selectOnFocus": true });
    var common_account1123 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Common account", "forceSelection": true, "hiddenName": "common_accountHidden", "listeners": { "render": Lino.quicktip_renderer("Common account","(ledger.Accounts.common_account) ") }, "name": "common_account", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.ledger.CommonAccounts) });
    var id1124 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(ledger.Accounts.id) ") }, "name": "id", "selectOnFocus": true });
    var main_1_panel1125 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 25, "items": ref1122, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 43, "items": common_account1123, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 31, "items": id1124, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var name1129 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Designation</span>", "listeners": { "render": Lino.quicktip_renderer("Designation","(ledger.Accounts.name) The multilingual designation of this account, as the users see\nit.") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr1130 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(ledger.Accounts.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_2_panel1131 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": name1129, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": name_fr1130, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var needs_partner1134 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Needs partner", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Needs partner","(ledger.Accounts.needs_partner) Whether bookings to this account need a partner specified.") }, "name": "needs_partner", "selectOnFocus": true });
    var clearable1135 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Clearable", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Clearable","(ledger.Accounts.clearable) ") }, "name": "clearable", "selectOnFocus": true });
    var default_amount1136 = new Ext.form.NumberField({ "allowBlank": true, "anchor": "-20", "autoHeight": true, "decimalPrecision": 2, "decimalSeparator": ",", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Default amount</span>", "listeners": { "render": Lino.quicktip_renderer("Default amount","(ledger.Accounts.default_amount) The default amount to book in bank statements or journal\nentries when this account has been selected manually. The\ndefault booking direction is that of the type.") }, "name": "default_amount", "selectOnFocus": true });
    var main_3_panel1137 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 42, "items": needs_partner1134, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 42, "items": clearable1135, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 14, "items": default_amount1136, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1142 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1125, main_2_panel1131, main_3_panel1137 ], "labelAlign": "top", "labelWidth": 90, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1142;
    this.before_row_edit = function(record) {
    }
    Lino.ledger.Accounts.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.Journals.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel ledger-Journals",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 31,
  initComponent : function() {
    var ref1143 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Reference</span>", "listeners": { "render": Lino.quicktip_renderer("Reference","(ledger.Journals.ref) The reference. This must be either empty or unique.") }, "maxLength": 200, "name": "ref", "selectOnFocus": true });
    var name1144 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation", "listeners": { "render": Lino.quicktip_renderer("Designation","(ledger.Journals.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr1145 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(ledger.Journals.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel1146 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 10, "items": ref1143, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 44, "items": name1144, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 44, "items": name_fr1145, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var journal_group1150 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Journal group</span>", "forceSelection": true, "hiddenName": "journal_groupHidden", "listeners": { "render": Lino.quicktip_renderer("Journal group","(ledger.Journals.journal_group) Pointer to an item of JournalGroups.") }, "name": "journal_group", "selectOnFocus": true, "store": Lino.ledger.JournalGroups });
    var voucher_type1151 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Voucher type</span>", "listeners": { "render": Lino.quicktip_renderer("Voucher type","(ledger.Journals.voucher_type) Pointer to an item of VoucherTypes.") }, "maxLength": 100, "name": "voucher_type", "selectOnFocus": true });
    var main_panel1152 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1146, { "anchor": "-20", "autoHeight": true, "items": journal_group1150, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": voucher_type1151, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1152;
    this.before_row_edit = function(record) {
    }
    Lino.ledger.Journals.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.topics.Topics.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel topics-Topics",
  layout: 'fit',
  auto_save: true,
  content_type: 47,
  initComponent : function() {
    var id1155 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(topics.Topics.id) ") }, "name": "id", "selectOnFocus": true });
    var ref1156 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Reference</span>", "listeners": { "render": Lino.quicktip_renderer("Reference","(topics.Topics.ref) The reference.") }, "maxLength": 200, "name": "ref", "selectOnFocus": true });
    var name1157 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Designation</span>", "listeners": { "render": Lino.quicktip_renderer("Designation","(topics.Topics.name) The designation in different languages.") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr1158 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(topics.Topics.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel1159 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 9, "items": id1155, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 9, "items": ref1156, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 40, "items": name1157, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 40, "items": name_fr1158, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" }, "region": "north", "split": true });
    var description_text1164 = new Lino.RichTextPanel({ "containing_panel": this, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Long description</span>", "flex": 50, "name": "description_text", "selectOnFocus": true, "title": "Long description" });
    var description_text_fr1165 = new Lino.RichTextPanel({ "containing_panel": this, "fieldLabel": "Long description (fr)", "flex": 50, "name": "description_text_fr", "selectOnFocus": true, "title": "Long description (fr)" });
    var main_2_panel1166 = new Ext.Panel({ "autoScroll": false, "border": false, "flex": 5, "frame": false, "hideCheckBoxLabels": true, "items": [ description_text1164, description_text_fr1165 ], "labelAlign": "top", "labelWidth": 198, "layout": "hbox", "layoutConfig": { "align": "stretch" }, "region": "center", "split": true });
    var main_panel1189 = new Lino.VBorderPanel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1159, main_2_panel1166 ], "labelAlign": "top" });
    this.items = main_panel1189;
    this.before_row_edit = function(record) {
      description_text1164.refresh();
      description_text_fr1165.refresh();
    }
    Lino.topics.Topics.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.Accounts.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel ledger-Accounts",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 35,
  initComponent : function() {
    var ref1190 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Reference</span>", "listeners": { "render": Lino.quicktip_renderer("Reference","(ledger.Accounts.ref) An optional unique name which can be used to reference a given\naccount.") }, "maxLength": 200, "name": "ref", "selectOnFocus": true });
    var name1191 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Designation</span>", "listeners": { "render": Lino.quicktip_renderer("Designation","(ledger.Accounts.name) The multilingual designation of this account, as the users see\nit.") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr1192 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(ledger.Accounts.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_2_panel1193 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": name1191, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": name_fr1192, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1196 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": ref1190, "labelAlign": "top", "layout": "form", "xtype": "panel" }, main_2_panel1193 ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1196;
    this.before_row_edit = function(record) {
    }
    Lino.ledger.Accounts.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.excerpts.Excerpts.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel excerpts-Excerpts",
  layout: 'fit',
  auto_save: true,
  content_type: 54,
  initComponent : function() {
    var id1198 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(excerpts.Excerpts.id) ") }, "name": "id", "selectOnFocus": true });
    var excerpt_type1199 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Excerpt Type...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Excerpt Type</span>", "hiddenName": "excerpt_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Excerpt Type","(excerpts.Excerpts.excerpt_type) The type of this excerpt (ForeignKey to ExcerptType).") }, "name": "excerpt_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.excerpts.ExcerptTypes.detail,Lino.excerpts.ExcerptTypes.insert)}, "pageSize": 20, "related_actor_id": "excerpts.ExcerptTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/excerpt_type" }) }) });
    var main_1_panel1200 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 16, "items": id1198, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 83, "items": excerpt_type1199, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var user1203 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Author</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(excerpts.Excerpts.user) The author of this object.\nA pointer to lino.modlib.users.models.User.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/user" }) }) });
    var build_method1204 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Print method", "forceSelection": true, "hiddenName": "build_methodHidden", "listeners": { "render": Lino.quicktip_renderer("Print method","(excerpts.Excerpts.build_method) ") }, "name": "build_method", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.printing.BuildMethods) });
    var main_2_panel1205 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 58, "items": user1203, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 41, "items": build_method1204, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var company1208 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Organization...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Recipient (Organization)</span>", "hiddenName": "companyHidden", "listeners": { "render": Lino.quicktip_renderer("Recipient (Organization)","(excerpts.Excerpts.company) The optional company of the recipient of this\nexcerpt.  See ContactRelated.company.") }, "name": "company", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Companies.detail,Lino.contacts.Companies.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Companies", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/company" }) }) });
    var contact_person1209 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Recipient (Person)</span>", "hiddenName": "contact_personHidden", "listeners": { "render": Lino.quicktip_renderer("Recipient (Person)","(excerpts.Excerpts.contact_person) The optional contact person of the recipient of this\nexcerpt.  See ContactRelated.contact_person.") }, "name": "contact_person", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/contact_person" }) }) });
    var language1210 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Language</span>", "hiddenName": "languageHidden", "listeners": { "render": Lino.quicktip_renderer("Language","(excerpts.Excerpts.language) The language used for printing this excerpt.") }, "name": "language", "selectOnFocus": true, "store": [ [ "en", "English" ], [ "fr", "French" ] ] });
    var main_3_panel1211 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 33, "items": company1208, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": contact_person1209, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": language1210, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var owner_disp1215 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Controlled by</span>", "name": "owner" });
    var build_time1216 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">build time</span>", "listeners": { "render": Lino.quicktip_renderer("build time","(excerpts.Excerpts.build_time) Timestamp of the built target file. Contains None\nif no build hasn't been called yet.") }, "name": "build_time", "value": "<br>" });
    var main_4_panel1217 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 38, "items": owner_disp1215, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 61, "items": build_time1216, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1220 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1200, main_2_panel1205, main_3_panel1211, main_4_panel1217 ], "labelAlign": "top", "layout": "form" });
    this.items = main_panel1220;
    this.before_row_edit = function(record) {
      excerpt_type1199.setContextValue('owner', record ? record.data['owner'] : undefined);
      contact_person1209.setContextValue('company', record ? record.data['companyHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      typeof owner_disp1215 !== 'undefined' && owner_disp1215.on('change',Lino.chooser_handler(excerpt_type1199,'owner'));
      typeof company1208 !== 'undefined' && company1208.on('change',Lino.chooser_handler(contact_person1209,'company'));
      Lino.excerpts.Excerpts.DetailFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.excerpts.Excerpts.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.gfks.ContentTypes.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel gfks-ContentTypes",
  layout: 'fit',
  auto_save: true,
  content_type: 12,
  initComponent : function() {
    var id1221 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(gfks.ContentTypes.id) ") }, "name": "id", "selectOnFocus": true });
    var app_label1222 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "app label", "listeners": { "render": Lino.quicktip_renderer("app label","(gfks.ContentTypes.app_label) ") }, "maxLength": 100, "name": "app_label", "selectOnFocus": true });
    var model1223 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "python model class name", "listeners": { "render": Lino.quicktip_renderer("python model class name","(gfks.ContentTypes.model) ") }, "maxLength": 100, "name": "model", "selectOnFocus": true });
    var base_classes_disp1224 = new Ext.form.DisplayField({ "always_enabled": true, "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Base classes", "listeners": { "render": Lino.quicktip_renderer("Base classes","(gfks.ContentTypes.base_classes) ") }, "name": "base_classes", "value": "<br/>" });
    var main_1_panel1225 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 6, "items": id1221, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 27, "items": app_label1222, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 27, "items": model1223, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 38, "items": base_classes_disp1224, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" }, "region": "north", "split": true });
    var main_panel1242 = new Lino.VBorderPanel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1225 ], "labelAlign": "top" });
    this.items = main_panel1242;
    this.before_row_edit = function(record) {
    }
    Lino.gfks.ContentTypes.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.lists.Lists.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel lists-Lists",
  layout: 'fit',
  auto_save: true,
  content_type: 49,
  initComponent : function() {
    var ref1243 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Reference</span>", "listeners": { "render": Lino.quicktip_renderer("Reference","(lists.Lists.ref) The reference. This must be either empty or unique.") }, "maxLength": 200, "name": "ref", "selectOnFocus": true });
    var list_type1244 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a List Type...", "fieldLabel": "List Type", "hiddenName": "list_typeHidden", "listeners": { "render": Lino.quicktip_renderer("List Type","(lists.Lists.list_type) ") }, "name": "list_type", "pageSize": 20, "related_actor_id": "lists.ListTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/lists/Lists/list_type" }) }) });
    var main_1_panel1245 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 66, "items": ref1243, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": list_type1244, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var designation1248 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation", "listeners": { "render": Lino.quicktip_renderer("Designation","(lists.Lists.designation) ") }, "maxLength": 200, "name": "designation", "selectOnFocus": true });
    var designation_fr1249 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(lists.Lists.designation_fr) ") }, "maxLength": 200, "name": "designation_fr", "selectOnFocus": true });
    var main_2_panel1250 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": designation1248, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": designation_fr1249, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var remarks1253 = new Lino.RichTextPanel({ "containing_panel": this, "fieldLabel": "Remarks", "flex": 71, "name": "remarks", "selectOnFocus": true, "title": "Remarks" });
    var main_panel1254 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1245, main_2_panel1250, remarks1253 ], "labelAlign": "top", "labelWidth": 72, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1254;
    this.before_row_edit = function(record) {
      remarks1253.refresh();
    }
    Lino.lists.Lists.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.sepa.AccountsByPartner.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel sepa-AccountsByPartner",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 39,
  initComponent : function() {
    var iban1255 = new Lino.UppercaseTextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "IBAN", "listeners": { "render": Lino.quicktip_renderer("IBAN","(sepa.AccountsByPartner.iban) ") }, "maxLength": 34, "name": "iban", "selectOnFocus": true });
    var bic1256 = new Lino.UppercaseTextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "BIC", "listeners": { "render": Lino.quicktip_renderer("BIC","(sepa.AccountsByPartner.bic) ") }, "maxLength": 11, "name": "bic", "selectOnFocus": true });
    var main_1_panel1257 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 63, "items": iban1255, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 36, "items": bic1256, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var remark1260 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Remark", "listeners": { "render": Lino.quicktip_renderer("Remark","(sepa.AccountsByPartner.remark) ") }, "maxLength": 200, "name": "remark", "selectOnFocus": true });
    var main_panel1261 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1257, { "anchor": "-20", "autoHeight": true, "items": remark1260, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1261;
    this.before_row_edit = function(record) {
    }
    Lino.sepa.AccountsByPartner.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.comments.CommentTypes.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel comments-CommentTypes",
  layout: 'fit',
  auto_save: true,
  content_type: 56,
  initComponent : function() {
    var id1263 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(comments.CommentTypes.id) ") }, "name": "id", "selectOnFocus": true });
    var name1264 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation", "listeners": { "render": Lino.quicktip_renderer("Designation","(comments.CommentTypes.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr1265 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(comments.CommentTypes.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel1266 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 10, "items": id1263, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 44, "items": name1264, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 44, "items": name_fr1265, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1271 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1266 ], "labelAlign": "top", "labelWidth": 81, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1271;
    this.before_row_edit = function(record) {
    }
    Lino.comments.CommentTypes.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.comments.CommentTypes.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel comments-CommentTypes",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 56,
  initComponent : function() {
    var name1272 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation", "listeners": { "render": Lino.quicktip_renderer("Designation","(comments.CommentTypes.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr1273 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(comments.CommentTypes.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel1274 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": name1272, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": name_fr1273, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var id1277 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(comments.CommentTypes.id) ") }, "name": "id", "selectOnFocus": true });
    var main_panel1278 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1274, { "anchor": "-20", "autoHeight": true, "items": id1277, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1278;
    this.before_row_edit = function(record) {
    }
    Lino.comments.CommentTypes.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.WeeklyView.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel cal-WeeklyView",
  layout: 'fit',
  auto_save: true,
  disable_editing: true,
  initComponent : function() {
    var navigation_panel_htmlbox1280 = new Lino.HtmlBoxPanel({ "always_enabled": true, "bodyStyle": "overflow-x:hidden;", "containing_panel": this, "flex": 15, "items": new Ext.BoxComponent({autoScroll:true}), "layout": "fit", "listeners": { "render": Lino.quicktip_renderer(null,"(cal.WeeklyView.navigation_panel) ") }, "name": "navigation_panel", "region": "center", "value": "<br/>" });
    var body_panel1291 = new Ext.Panel({ "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ navigation_panel_htmlbox1280 ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretch" }, "region": "center" });
    var main_panel1292 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ body_panel1291 ], "labelAlign": "top", "layout": "fit" });
    this.items = main_panel1292;
    this.before_row_edit = function(record) {
      navigation_panel_htmlbox1280.refresh();
    }
    Lino.cal.WeeklyView.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.MonthlyView.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel cal-MonthlyView",
  layout: 'fit',
  auto_save: true,
  disable_editing: true,
  initComponent : function() {
    var navigation_panel_htmlbox1293 = new Lino.HtmlBoxPanel({ "always_enabled": true, "bodyStyle": "overflow-x:hidden;", "containing_panel": this, "flex": 15, "items": new Ext.BoxComponent({autoScroll:true}), "layout": "fit", "listeners": { "render": Lino.quicktip_renderer(null,"(cal.MonthlyView.navigation_panel) ") }, "name": "navigation_panel", "region": "center", "value": "<br/>" });
    var body_panel1304 = new Ext.Panel({ "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ navigation_panel_htmlbox1293 ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretch" }, "region": "center" });
    var main_panel1305 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ body_panel1304 ], "labelAlign": "top", "layout": "fit" });
    this.items = main_panel1305;
    this.before_row_edit = function(record) {
      navigation_panel_htmlbox1293.refresh();
    }
    Lino.cal.MonthlyView.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.phones.ContactDetails.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel phones-ContactDetails",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 41,
  initComponent : function() {
    var partner1306 = new Lino.RemoteComboFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Partner...", "fieldLabel": "Partner", "hiddenName": "partnerHidden", "listeners": { "render": Lino.quicktip_renderer("Partner","(phones.ContactDetails.partner) ") }, "name": "partner", "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Partners", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/phones/ContactDetails/partner" }) }) });
    var detail_type1307 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Contact detail type", "forceSelection": true, "hiddenName": "detail_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Contact detail type","(phones.ContactDetails.detail_type) ") }, "name": "detail_type", "selectOnFocus": true, "store": Lino.phones.ContactDetailTypes });
    var value1308 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Value", "listeners": { "render": Lino.quicktip_renderer("Value","(phones.ContactDetails.value) ") }, "maxLength": 200, "name": "value", "selectOnFocus": true });
    var remark1309 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Remark", "listeners": { "render": Lino.quicktip_renderer("Remark","(phones.ContactDetails.remark) ") }, "maxLength": 200, "name": "remark", "selectOnFocus": true });
    var main_panel1310 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": partner1306, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": detail_type1307, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": value1308, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": remark1309, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1310;
    this.before_row_edit = function(record) {
    }
    Lino.phones.ContactDetails.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.topics.Interests.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel topics-Interests",
  layout: 'fit',
  auto_save: true,
  content_type: 46,
  initComponent : function() {
    var partner1178 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Partner...", "fieldLabel": "Partner", "hiddenName": "partnerHidden", "listeners": { "render": Lino.quicktip_renderer("Partner","(topics.Interests.partner) ") }, "name": "partner", "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Partners", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/topics/Interests/partner" }) }) });
    var topic1179 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Topic...", "fieldLabel": "Topic", "hiddenName": "topicHidden", "listeners": { "render": Lino.quicktip_renderer("Topic","(topics.Interests.topic) ") }, "name": "topic", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.topics.Topics.detail,Lino.topics.Topics.insert)}, "pageSize": 20, "related_actor_id": "topics.Topics", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/topics/Interests/topic" }) }) });
    var owner_disp1180 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Controlled by", "name": "owner" });
    var main_2_panel1181 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 66, "items": topic1179, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": owner_disp1180, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var remark1184 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Remark", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Remark","(topics.Interests.remark) ") }, "name": "remark", "selectOnFocus": true });
    var main_panel1185 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "items": partner1178, "labelAlign": "top", "layout": "form", "xtype": "panel" }, main_2_panel1181, { "flex": 71, "items": remark1184, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1185;
    this.before_row_edit = function(record) {
    }
    Lino.topics.Interests.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.blogs.Entries.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel blogs-Entries",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 52,
  initComponent : function() {
    var title1315 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Heading", "listeners": { "render": Lino.quicktip_renderer("Heading","(blogs.Entries.title) ") }, "maxLength": 200, "name": "title", "selectOnFocus": true });
    var entry_type1316 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Blog Entry Type...", "fieldLabel": "Blog Entry Type", "hiddenName": "entry_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Blog Entry Type","(blogs.Entries.entry_type) ") }, "name": "entry_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.blogs.EntryTypes.detail,null)}, "pageSize": 20, "related_actor_id": "blogs.EntryTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/blogs/Entries/entry_type" }) }) });
    var main_panel1317 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": title1315, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": entry_type1316, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1317;
    this.before_row_edit = function(record) {
    }
    Lino.blogs.Entries.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.uploads.UploadTypes.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel uploads-UploadTypes",
  layout: 'fit',
  auto_save: true,
  content_type: 28,
  initComponent : function() {
    var id1320 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(uploads.UploadTypes.id) ") }, "name": "id", "selectOnFocus": true });
    var upload_area1321 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Upload Area", "forceSelection": true, "hiddenName": "upload_areaHidden", "listeners": { "render": Lino.quicktip_renderer("Upload Area","(uploads.UploadTypes.upload_area) ") }, "name": "upload_area", "selectOnFocus": true, "store": Lino.uploads.UploadAreas });
    var wanted1322 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Wanted", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Wanted","(uploads.UploadTypes.wanted) Add a (+) button when there is no upload of this type.") }, "name": "wanted", "selectOnFocus": true });
    var max_number1323 = new Ext.form.NumberField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Max. number</span>", "listeners": { "render": Lino.quicktip_renderer("Max. number","(uploads.UploadTypes.max_number) No need to upload more uploads than N of this type.\n-1 means no limit.") }, "name": "max_number", "selectOnFocus": true, "value": -1 });
    var shortcut1324 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Upload shortcut</span>", "listeners": { "render": Lino.quicktip_renderer("Upload shortcut","(uploads.UploadTypes.shortcut) Optional pointer to a virtual upload shortcut field.  If\nthis is not empty, then the given shortcut field will manage\nuploads of this type.  See also Shortcuts.") }, "maxLength": 50, "name": "shortcut", "selectOnFocus": true });
    var main_1_panel1325 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 10, "items": id1320, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 14, "items": upload_area1321, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 20, "items": wanted1322, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 10, "items": max_number1323, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 43, "items": shortcut1324, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var name1331 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation", "listeners": { "render": Lino.quicktip_renderer("Designation","(uploads.UploadTypes.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr1332 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(uploads.UploadTypes.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_2_panel1333 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": name1331, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": name_fr1332, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1368 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1325, main_2_panel1333 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1368;
    this.before_row_edit = function(record) {
    }
    Lino.uploads.UploadTypes.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.tinymce.TextFieldTemplates.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel tinymce-TextFieldTemplates",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 55,
  initComponent : function() {
    var name1369 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation", "listeners": { "render": Lino.quicktip_renderer("Designation","(tinymce.TextFieldTemplates.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var user1370 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Author</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(tinymce.TextFieldTemplates.user) The author of this object.\nA pointer to lino.modlib.users.models.User.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tinymce/TextFieldTemplates/user" }) }) });
    var main_panel1371 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": name1369, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": user1370, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1371;
    this.before_row_edit = function(record) {
    }
    Lino.tinymce.TextFieldTemplates.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.Tasks.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel cal-Tasks",
  layout: 'fit',
  auto_save: true,
  content_type: 22,
  initComponent : function() {
    var start_date1374 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Start date", "listeners": { "render": Lino.quicktip_renderer("Start date","(cal.Tasks.start_date) ") }, "name": "start_date", "selectOnFocus": true });
    var priority1375 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Priority</span>", "forceSelection": true, "hiddenName": "priorityHidden", "listeners": { "render": Lino.quicktip_renderer("Priority","(cal.Tasks.priority) How urgent this task is.") }, "name": "priority", "selectOnFocus": true, "store": Lino.xl.Priorities });
    var due_date1376 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Due date", "listeners": { "render": Lino.quicktip_renderer("Due date","(cal.Tasks.due_date) ") }, "name": "due_date", "selectOnFocus": true });
    var id1377 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(cal.Tasks.id) ") }, "name": "id", "selectOnFocus": true });
    var workflow_buttons_disp1378 = new Ext.form.DisplayField({ "always_enabled": true, "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Workflow", "listeners": { "render": Lino.quicktip_renderer("Workflow","(cal.Tasks.workflow_buttons) ") }, "name": "workflow_buttons", "value": "<br/>" });
    var main_1_panel1379 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 19, "items": start_date1374, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 10, "items": priority1375, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": due_date1376, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 7, "items": id1377, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 44, "items": workflow_buttons_disp1378, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var summary1385 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Short description", "listeners": { "render": Lino.quicktip_renderer("Short description","(cal.Tasks.summary) ") }, "maxLength": 200, "name": "summary", "selectOnFocus": true });
    var user1386 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Author</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(cal.Tasks.user) The author of this object.\nA pointer to lino.modlib.users.models.User.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Tasks/user" }) }) });
    var owner_disp1387 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Controlled by", "name": "owner" });
    var created1388 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Created</span>", "listeners": { "render": Lino.quicktip_renderer("Created","(cal.Tasks.created) The time when this object was created.") }, "name": "created", "value": "<br>" });
    var modified1389 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Modified</span>", "listeners": { "render": Lino.quicktip_renderer("Modified","(cal.Tasks.modified) The time when this database object was last modified.") }, "name": "modified", "value": "<br>" });
    var main_4_panel1390 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 20, "items": owner_disp1387, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 40, "items": created1388, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 40, "items": modified1389, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var description1394 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Description", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Description","(cal.Tasks.description) ") }, "name": "description", "selectOnFocus": true });
    var main_panel1395 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1379, { "autoHeight": true, "items": summary1385, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "items": user1386, "labelAlign": "top", "layout": "form", "xtype": "panel" }, main_4_panel1390, { "flex": 45, "items": description1394, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1395;
    this.before_row_edit = function(record) {
    }
    Lino.cal.Tasks.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.humanlinks.Links.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel humanlinks-Links",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 45,
  initComponent : function() {
    var parent1399 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Who is...</span>", "hiddenName": "parentHidden", "listeners": { "render": Lino.quicktip_renderer("Who is...","(humanlinks.Links.parent) Pointer to the person who is \"parent\".") }, "name": "parent", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/humanlinks/Links/parent" }) }) });
    var type1400 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Parency type</span>", "forceSelection": true, "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Parency type","(humanlinks.Links.type) The type of link.  Pointer to LinkTypes.") }, "name": "type", "selectOnFocus": true, "store": Lino.humanlinks.LinkTypes });
    var child1401 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">To whom...</span>", "hiddenName": "childHidden", "listeners": { "render": Lino.quicktip_renderer("To whom...","(humanlinks.Links.child) Pointer to the person who is \"child\".") }, "name": "child", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/humanlinks/Links/child" }) }) });
    var main_panel1402 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": parent1399, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": type1400, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": child1401, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1402;
    this.before_row_edit = function(record) {
    }
    Lino.humanlinks.Links.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.contacts.Companies.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel contacts-Companies",
  layout: 'fit',
  auto_save: true,
  content_type: 11,
  initComponent : function() {
    var overview_htmlbox1406 = new Lino.HtmlBoxPanel({ "always_enabled": true, "bodyStyle": "overflow-x:hidden;", "containing_panel": this, "flex": 27, "items": new Ext.BoxComponent({autoScroll:true}), "layout": "fit", "listeners": { "render": Lino.quicktip_renderer(null,"(contacts.Companies.overview) ") }, "name": "overview", "value": "<br/>" });
    var id1407 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(contacts.Companies.id) ") }, "name": "id", "selectOnFocus": true });
    var language1408 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Language</span>", "hiddenName": "languageHidden", "listeners": { "render": Lino.quicktip_renderer("Language","(contacts.Companies.language) The language to use when communicating with this partner.") }, "name": "language", "selectOnFocus": true, "store": [ [ "en", "English" ], [ "fr", "French" ] ] });
    var type1409 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Organization type...", "fieldLabel": "Organization type", "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Organization type","(contacts.Companies.type) ") }, "name": "type", "pageSize": 20, "related_actor_id": "contacts.CompanyTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Companies/type" }) }) });
    var general_middle_panel1410 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "flex": 18, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": id1407, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": language1408, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": type1409, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    var name1414 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Name</span>", "listeners": { "render": Lino.quicktip_renderer("Name","(contacts.Companies.name) The full name of this partner. Used for alphabetic sorting.") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var type1409 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Organization type...", "fieldLabel": "Organization type", "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Organization type","(contacts.Companies.type) ") }, "name": "type", "pageSize": 20, "related_actor_id": "contacts.CompanyTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Companies/type" }) }) });
    var name_box_panel1415 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 66, "items": name1414, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": type1409, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var country1418 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Country...", "fieldLabel": "Country", "hiddenName": "countryHidden", "listeners": { "render": Lino.quicktip_renderer("Country","(contacts.Companies.country) ") }, "name": "country", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Countries.detail,Lino.countries.Countries.insert)}, "pageSize": 20, "related_actor_id": "countries.Countries", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Companies/country" }) }) });
    var city1419 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Place...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Locality</span>", "forceSelection": false, "hiddenName": "cityHidden", "listeners": { "render": Lino.quicktip_renderer("Locality","(contacts.Companies.city) The locality, i.e. usually a village, city or town.") }, "name": "city", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Places.detail,null)}, "pageSize": 20, "related_actor_id": "countries.Places", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Companies/city" }) }) });
    var zip_code1420 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "Zip code", "listeners": { "render": Lino.quicktip_renderer("Zip code","(contacts.Companies.zip_code) ") }, "maxLength": 10, "name": "zip_code", "selectOnFocus": true });
    var address_box_2_panel1421 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 40, "items": country1418, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 40, "items": city1419, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 20, "items": zip_code1420, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var street1425 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Street</span>", "listeners": { "render": Lino.quicktip_renderer("Street","(contacts.Companies.street) Name of street, without house number.") }, "maxLength": 200, "name": "street", "selectOnFocus": true });
    var street_no1426 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">No.</span>", "listeners": { "render": Lino.quicktip_renderer("No.","(contacts.Companies.street_no) House number.") }, "maxLength": 10, "name": "street_no", "selectOnFocus": true });
    var street_box1427 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Box</span>", "listeners": { "render": Lino.quicktip_renderer("Box","(contacts.Companies.street_box) Text to print after street number on the same line.") }, "maxLength": 10, "name": "street_box", "selectOnFocus": true });
    var address_box_4_panel1428 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 53, "items": street1425, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 23, "items": street_no1426, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 23, "items": street_box1427, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var address_box_panel1432 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "flex": 54, "frame": true, "hideCheckBoxLabels": true, "items": [ name_box_panel1415, address_box_2_panel1421, address_box_4_panel1428 ], "labelAlign": "top", "layout": "form" });
    var general_1_panel1433 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ overview_htmlbox1406, general_middle_panel1410, address_box_panel1432 ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var general_panel1458 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ general_1_panel1433 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" }, "listeners": { "activate": Lino.on_tab_activate }, "title": "General" });
    var remarks1471 = new Lino.RichTextPanel({ "containing_panel": this, "fieldLabel": "Remarks", "flex": 5, "name": "remarks", "region": "center", "selectOnFocus": true, "split": true, "title": "Remarks" });
    var contact_panel1472 = new Lino.VBorderPanel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ remarks1471 ], "labelAlign": "top", "labelWidth": 72, "listeners": { "activate": Lino.on_tab_activate }, "title": "Contact" });
    var main_panel1560 = new Ext.TabPanel({ "activeTab": 0, "autoScroll": false, "bodyBorder": false, "border": false, "enableTabScroll": true, "frame": true, "hideCheckBoxLabels": true, "items": [ general_panel1458, contact_panel1472 ], "labelAlign": "top", "split": true });
    this.items = main_panel1560;
    this.before_row_edit = function(record) {
      overview_htmlbox1406.refresh();
      city1419.setContextValue('country', record ? record.data['countryHidden'] : undefined);
      city1419.setContextValue('region', record ? record.data['regionHidden'] : undefined);
      remarks1471.refresh();
    }
    this.onRender = function(ct, position) {
      typeof country1418 !== 'undefined' && country1418.on('change',Lino.chooser_handler(city1419,'country'));
      Lino.contacts.Companies.DetailFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.contacts.Companies.DetailFormPanel.superclass.initComponent.call(this);
    // active_fields:
    city1419.on("change", function(){ this.save() }, this);
    zip_code1420.on("change", function(){ this.save() }, this);
  }
});


Lino.uploads.UploadTypes.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel uploads-UploadTypes",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 28,
  initComponent : function() {
    var name1561 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation", "listeners": { "render": Lino.quicktip_renderer("Designation","(uploads.UploadTypes.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr1562 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(uploads.UploadTypes.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel1563 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": name1561, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": name_fr1562, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var upload_area1566 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Upload Area", "forceSelection": true, "hiddenName": "upload_areaHidden", "listeners": { "render": Lino.quicktip_renderer("Upload Area","(uploads.UploadTypes.upload_area) ") }, "name": "upload_area", "selectOnFocus": true, "store": Lino.uploads.UploadAreas });
    var main_panel1567 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1563, { "anchor": "-20", "autoHeight": true, "items": upload_area1566, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1567;
    this.before_row_edit = function(record) {
    }
    Lino.uploads.UploadTypes.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.humanlinks.Links.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel humanlinks-Links",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 45,
  initComponent : function() {
    var parent1569 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Who is...</span>", "hiddenName": "parentHidden", "listeners": { "render": Lino.quicktip_renderer("Who is...","(humanlinks.Links.parent) Pointer to the person who is \"parent\".") }, "name": "parent", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/humanlinks/Links/parent" }) }) });
    var type1570 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Parency type</span>", "forceSelection": true, "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Parency type","(humanlinks.Links.type) The type of link.  Pointer to LinkTypes.") }, "name": "type", "selectOnFocus": true, "store": Lino.humanlinks.LinkTypes });
    var child1571 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">To whom...</span>", "hiddenName": "childHidden", "listeners": { "render": Lino.quicktip_renderer("To whom...","(humanlinks.Links.child) Pointer to the person who is \"child\".") }, "name": "child", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/humanlinks/Links/child" }) }) });
    var main_panel1572 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": parent1569, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": type1570, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": child1571, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1572;
    this.before_row_edit = function(record) {
    }
    Lino.humanlinks.Links.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.contacts.Companies.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel contacts-Companies",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 11,
  initComponent : function() {
    var name1548 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Name</span>", "listeners": { "render": Lino.quicktip_renderer("Name","(contacts.Companies.name) The full name of this partner. Used for alphabetic sorting.") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var email1549 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">e-mail address</span>", "listeners": { "render": Lino.quicktip_renderer("e-mail address","(contacts.Companies.email) The primary email address.") }, "maxLength": 254, "name": "email", "selectOnFocus": true });
    var type1550 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Organization type...", "fieldLabel": "Organization type", "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Organization type","(contacts.Companies.type) ") }, "name": "type", "pageSize": 20, "related_actor_id": "contacts.CompanyTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Companies/type" }) }) });
    var main_panel1551 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": name1548, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": email1549, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": type1550, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1551;
    this.before_row_edit = function(record) {
    }
    Lino.contacts.Companies.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.excerpts.ExcerptTypes.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel excerpts-ExcerptTypes",
  layout: 'fit',
  auto_save: true,
  content_type: 53,
  initComponent : function() {
    var id1576 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(excerpts.ExcerptTypes.id) ") }, "name": "id", "selectOnFocus": true });
    var name1577 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Designation</span>", "listeners": { "render": Lino.quicktip_renderer("Designation","(excerpts.ExcerptTypes.name) The designation of this excerpt type.\nOne field for every language.") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr1578 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(excerpts.ExcerptTypes.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel1579 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 10, "items": id1576, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 44, "items": name1577, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 44, "items": name_fr1578, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var content_type1583 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a content type...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Model</span>", "hiddenName": "content_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Model","(excerpts.ExcerptTypes.content_type) The database model for which this excerpt type is to be used.") }, "name": "content_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.gfks.ContentTypes.detail,null)}, "pageSize": 20, "related_actor_id": "gfks.ContentTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/ExcerptTypes/content_type" }) }) });
    var build_method1584 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Print method</span>", "forceSelection": true, "hiddenName": "build_methodHidden", "listeners": { "render": Lino.quicktip_renderer("Print method","(excerpts.ExcerptTypes.build_method) See lino.modlib.printing.mixins.PrintableType.build_method.") }, "name": "build_method", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.printing.BuildMethods) });
    var template1585 = new Lino.SimpleRemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Template</span>", "listeners": { "render": Lino.quicktip_renderer("Template","(excerpts.ExcerptTypes.template) The main template to be used when printing an excerpt of this type.") }, "name": "template", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/ExcerptTypes/template" }) }) });
    var body_template1586 = new Lino.SimpleRemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Body template</span>", "listeners": { "render": Lino.quicktip_renderer("Body template","(excerpts.ExcerptTypes.body_template) The body template to use when printing an excerpt of this type.") }, "name": "body_template", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/ExcerptTypes/body_template" }) }) });
    var email_template1587 = new Lino.SimpleRemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Email template</span>", "listeners": { "render": Lino.quicktip_renderer("Email template","(excerpts.ExcerptTypes.email_template) The template to use when sending this an excerpt of this type\nby email.") }, "name": "email_template", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/ExcerptTypes/email_template" }) }) });
    var shortcut1588 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Excerpt shortcut</span>", "listeners": { "render": Lino.quicktip_renderer("Excerpt shortcut","(excerpts.ExcerptTypes.shortcut) Optional pointer to a shortcut field.  If this is not empty, then\nthe given shortcut field will manage excerpts of this type.") }, "maxLength": 50, "name": "shortcut", "selectOnFocus": true });
    var main_2_panel1589 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 15, "items": content_type1583, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 15, "items": build_method1584, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 15, "items": template1585, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 15, "items": body_template1586, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 15, "items": email_template1587, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": shortcut1588, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var primary1596 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Primary", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Primary","(excerpts.ExcerptTypes.primary) Whether this is the default type to use for this model. There's at most one primary type per model. Enabling this field will automatically make the other types non-primary.") }, "name": "primary", "selectOnFocus": true });
    var print_directly1597 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Print directly", "checked": true, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Print directly","(excerpts.ExcerptTypes.print_directly) ") }, "name": "print_directly", "selectOnFocus": true });
    var certifying1598 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Certifying", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Certifying","(excerpts.ExcerptTypes.certifying) Whether an excerpt of this type is a unique printout.") }, "name": "certifying", "selectOnFocus": true });
    var print_recipient1599 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Print recipient", "checked": true, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Print recipient","(excerpts.ExcerptTypes.print_recipient) Whether to print a recipient field in document.") }, "name": "print_recipient", "selectOnFocus": true });
    var backward_compat1600 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Backward compatible", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Backward compatible","(excerpts.ExcerptTypes.backward_compat) Check this to have `this` in template context point to owner instead of excerpt.") }, "name": "backward_compat", "selectOnFocus": true });
    var attach_to_email1601 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Attach to email", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Attach to email","(excerpts.ExcerptTypes.attach_to_email) Whether the printable file should be attached to the email\nwhen creating an email from a mailable of this type.\n") }, "name": "attach_to_email", "selectOnFocus": true });
    var main_3_panel1602 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 16, "items": primary1596, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": print_directly1597, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": certifying1598, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": print_recipient1599, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": backward_compat1600, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": attach_to_email1601, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1636 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1579, main_2_panel1589, main_3_panel1602 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1636;
    this.before_row_edit = function(record) {
      template1585.setContextValue('build_method', record ? record.data['build_methodHidden'] : undefined);
      template1585.setContextValue('content_type', record ? record.data['content_typeHidden'] : undefined);
      body_template1586.setContextValue('content_type', record ? record.data['content_typeHidden'] : undefined);
      email_template1587.setContextValue('content_type', record ? record.data['content_typeHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      typeof build_method1584 !== 'undefined' && build_method1584.on('change',Lino.chooser_handler(template1585,'build_method'));
      typeof content_type1583 !== 'undefined' && content_type1583.on('change',Lino.chooser_handler(template1585,'content_type'));
      typeof content_type1583 !== 'undefined' && content_type1583.on('change',Lino.chooser_handler(body_template1586,'content_type'));
      typeof content_type1583 !== 'undefined' && content_type1583.on('change',Lino.chooser_handler(email_template1587,'content_type'));
      Lino.excerpts.ExcerptTypes.DetailFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.excerpts.ExcerptTypes.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.excerpts.ExcerptTypes.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel excerpts-ExcerptTypes",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 53,
  initComponent : function() {
    var name1637 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Designation</span>", "listeners": { "render": Lino.quicktip_renderer("Designation","(excerpts.ExcerptTypes.name) The designation of this excerpt type.\nOne field for every language.") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr1638 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(excerpts.ExcerptTypes.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel1639 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": name1637, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": name_fr1638, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var content_type1642 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a content type...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Model</span>", "hiddenName": "content_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Model","(excerpts.ExcerptTypes.content_type) The database model for which this excerpt type is to be used.") }, "name": "content_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.gfks.ContentTypes.detail,null)}, "pageSize": 20, "related_actor_id": "gfks.ContentTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/ExcerptTypes/content_type" }) }) });
    var primary1643 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Primary", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Primary","(excerpts.ExcerptTypes.primary) Whether this is the default type to use for this model. There's at most one primary type per model. Enabling this field will automatically make the other types non-primary.") }, "name": "primary", "selectOnFocus": true });
    var certifying1644 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Certifying", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Certifying","(excerpts.ExcerptTypes.certifying) Whether an excerpt of this type is a unique printout.") }, "name": "certifying", "selectOnFocus": true });
    var main_2_panel1645 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": content_type1642, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": primary1643, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": certifying1644, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var build_method1649 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Print method</span>", "forceSelection": true, "hiddenName": "build_methodHidden", "listeners": { "render": Lino.quicktip_renderer("Print method","(excerpts.ExcerptTypes.build_method) See lino.modlib.printing.mixins.PrintableType.build_method.") }, "name": "build_method", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.printing.BuildMethods) });
    var template1650 = new Lino.SimpleRemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Template</span>", "listeners": { "render": Lino.quicktip_renderer("Template","(excerpts.ExcerptTypes.template) The main template to be used when printing an excerpt of this type.") }, "name": "template", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/ExcerptTypes/template" }) }) });
    var body_template1651 = new Lino.SimpleRemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Body template</span>", "listeners": { "render": Lino.quicktip_renderer("Body template","(excerpts.ExcerptTypes.body_template) The body template to use when printing an excerpt of this type.") }, "name": "body_template", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/ExcerptTypes/body_template" }) }) });
    var main_3_panel1652 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 25, "items": build_method1649, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 37, "items": template1650, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 37, "items": body_template1651, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1656 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1639, main_2_panel1645, main_3_panel1652 ], "labelAlign": "top", "layout": "form" });
    this.items = main_panel1656;
    this.before_row_edit = function(record) {
      template1650.setContextValue('build_method', record ? record.data['build_methodHidden'] : undefined);
      template1650.setContextValue('content_type', record ? record.data['content_typeHidden'] : undefined);
      body_template1651.setContextValue('content_type', record ? record.data['content_typeHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      typeof build_method1649 !== 'undefined' && build_method1649.on('change',Lino.chooser_handler(template1650,'build_method'));
      typeof content_type1642 !== 'undefined' && content_type1642.on('change',Lino.chooser_handler(template1650,'content_type'));
      typeof content_type1642 !== 'undefined' && content_type1642.on('change',Lino.chooser_handler(body_template1651,'content_type'));
      Lino.excerpts.ExcerptTypes.InsertFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.excerpts.ExcerptTypes.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.topics.InterestsByPartner.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel topics-InterestsByPartner",
  layout: 'fit',
  auto_save: true,
  content_type: 46,
  initComponent : function() {
    var topic1657 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Topic...", "fieldLabel": "Topic", "hiddenName": "topicHidden", "listeners": { "render": Lino.quicktip_renderer("Topic","(topics.InterestsByPartner.topic) ") }, "name": "topic", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.topics.Topics.detail,Lino.topics.Topics.insert)}, "pageSize": 20, "related_actor_id": "topics.Topics", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/topics/InterestsByPartner/topic" }) }) });
    var remark1658 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Remark", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Remark","(topics.InterestsByPartner.remark) ") }, "name": "remark", "selectOnFocus": true });
    var main_panel1659 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "items": topic1657, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "flex": 83, "items": remark1658, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1659;
    this.before_row_edit = function(record) {
    }
    Lino.topics.InterestsByPartner.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.checkdata.Problems.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel checkdata-Problems",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 14,
  disable_editing: true,
  initComponent : function() {
    var checker1078 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Checker</span>", "forceSelection": true, "hiddenName": "checkerHidden", "listeners": { "render": Lino.quicktip_renderer("Checker","(checkdata.Problems.checker) The Checker which reported\nthis problem.") }, "name": "checker", "selectOnFocus": true, "store": Lino.checkdata.Checkers });
    var owner_disp1079 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Database object", "name": "owner" });
    var message1080 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Message</span>", "listeners": { "render": Lino.quicktip_renderer("Message","(checkdata.Problems.message) The message text. This is a concatenation of all messages that\nwere yeld by the checker.") }, "maxLength": 250, "name": "message", "selectOnFocus": true });
    var user1081 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Responsible</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Responsible","(checkdata.Problems.user) The user reponsible\nfor fixing this problem.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/checkdata/Problems/user" }) }) });
    var id1082 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(checkdata.Problems.id) ") }, "name": "id", "selectOnFocus": true });
    var main_4_panel1083 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 66, "items": user1081, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": id1082, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1086 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": checker1078, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": owner_disp1079, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": message1080, "labelAlign": "top", "layout": "form", "xtype": "panel" }, main_4_panel1083 ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1086;
    this.before_row_edit = function(record) {
    }
    Lino.checkdata.Problems.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.comments.CommentsByRFC.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel comments-CommentsByRFC",
  layout: 'fit',
  auto_save: true,
  content_type: 57,
  initComponent : function() {
    var reply_to1662 = new Lino.TwinCombo({ "emptyText": "Select a Comment...", "fieldLabel": "Reply to", "hidden": true, "hiddenName": "reply_toHidden", "listeners": { "render": Lino.quicktip_renderer("Reply to","(comments.CommentsByRFC.reply_to) ") }, "name": "reply_to", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.comments.Comments.detail,Lino.comments.Comments.insert)}, "pageSize": 20, "related_actor_id": "comments.Comments", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/comments/CommentsByRFC/reply_to" }) }) });
    var body1663 = new Lino.RichTextPanel({ "containing_panel": this, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Body</span>", "flex": 83, "name": "body", "selectOnFocus": true, "title": "Body" });
    var main_panel1664 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ reply_to1662, body1663 ], "labelAlign": "top", "labelWidth": 81, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1664;
    this.before_row_edit = function(record) {
      body1663.refresh();
    }
    Lino.comments.CommentsByRFC.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.ledger.Journals.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel ledger-Journals",
  layout: 'fit',
  auto_save: true,
  content_type: 31,
  initComponent : function() {
    var name1665 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation", "listeners": { "render": Lino.quicktip_renderer("Designation","(ledger.Journals.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr1666 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(ledger.Journals.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var ref1667 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Reference</span>", "listeners": { "render": Lino.quicktip_renderer("Reference","(ledger.Journals.ref) The reference. This must be either empty or unique.") }, "maxLength": 200, "name": "ref", "selectOnFocus": true });
    var main_1_panel1668 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 44, "items": name1665, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 44, "items": name_fr1666, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 10, "items": ref1667, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var journal_group1672 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Journal group</span>", "forceSelection": true, "hiddenName": "journal_groupHidden", "listeners": { "render": Lino.quicktip_renderer("Journal group","(ledger.Journals.journal_group) Pointer to an item of JournalGroups.") }, "name": "journal_group", "selectOnFocus": true, "store": Lino.ledger.JournalGroups });
    var voucher_type1673 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Voucher type</span>", "listeners": { "render": Lino.quicktip_renderer("Voucher type","(ledger.Journals.voucher_type) Pointer to an item of VoucherTypes.") }, "maxLength": 100, "name": "voucher_type", "selectOnFocus": true });
    var trade_type1674 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Trade type</span>", "forceSelection": true, "hiddenName": "trade_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Trade type","(ledger.Journals.trade_type) Pointer to TradeTypes.") }, "name": "trade_type", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.ledger.TradeTypes) });
    var seqno1675 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">No.</span>", "listeners": { "render": Lino.quicktip_renderer("No.","(ledger.Journals.seqno) The sequence number of this item with its parent.") }, "name": "seqno", "selectOnFocus": true });
    var id1676 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(ledger.Journals.id) ") }, "name": "id", "selectOnFocus": true });
    var main_2_panel1677 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 23, "items": journal_group1672, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": voucher_type1673, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": trade_type1674, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 7, "items": seqno1675, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 7, "items": id1676, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var account1683 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Account...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Account</span>", "hiddenName": "accountHidden", "listeners": { "render": Lino.quicktip_renderer("Account","(ledger.Journals.account) The account to use for the counter-movements generated by\nvouchers in this journal.") }, "name": "account", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.ledger.Accounts.detail,Lino.ledger.Accounts.insert)}, "pageSize": 20, "related_actor_id": "ledger.Accounts", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/Journals/account" }) }) });
    var partner1684 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Organization...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Organization</span>", "hiddenName": "partnerHidden", "listeners": { "render": Lino.quicktip_renderer("Organization","(ledger.Journals.partner) The partner to use as default partner for all vouchers in this\njournal.") }, "name": "partner", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Companies.detail,Lino.contacts.Companies.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Companies", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/Journals/partner" }) }) });
    var build_method1685 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Print method</span>", "forceSelection": true, "hiddenName": "build_methodHidden", "listeners": { "render": Lino.quicktip_renderer("Print method","(ledger.Journals.build_method) A pointer to an item of\nlino.modlib.printing.choicelists.BuildMethods.") }, "name": "build_method", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.printing.BuildMethods) });
    var template1686 = new Lino.SimpleRemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Template</span>", "listeners": { "render": Lino.quicktip_renderer("Template","(ledger.Journals.template) See PrintableType.template.") }, "name": "template", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/Journals/template" }) }) });
    var uploads_volume1687 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Library volume...", "fieldLabel": "Library volume", "hiddenName": "uploads_volumeHidden", "listeners": { "render": Lino.quicktip_renderer("Library volume","(ledger.Journals.uploads_volume) ") }, "name": "uploads_volume", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.uploads.Volumes.detail,Lino.uploads.Volumes.insert)}, "pageSize": 20, "preferred_width": 5, "related_actor_id": "uploads.Volumes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/ledger/Journals/uploads_volume" }) }) });
    var main_3_panel1688 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 20, "items": account1683, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 20, "items": partner1684, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 20, "items": build_method1685, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 20, "items": template1686, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 20, "items": uploads_volume1687, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var dc1694 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Primary booking direction", "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Primary booking direction","(ledger.Journals.dc) The primary booking direction (checked means Credit, unchecked Debit).") }, "name": "dc", "selectOnFocus": true });
    var force_sequence1695 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Force chronological sequence", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Force chronological sequence","(ledger.Journals.force_sequence) ") }, "name": "force_sequence", "selectOnFocus": true });
    var yearly_numbering1696 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Yearly numbering", "checked": true, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Yearly numbering","(ledger.Journals.yearly_numbering) Whether the\nnumber of\nvouchers should restart at 1 every year.") }, "name": "yearly_numbering", "selectOnFocus": true });
    var auto_fill_suggestions1697 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Fill suggestions", "checked": true, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Fill suggestions","(ledger.Journals.auto_fill_suggestions) Whether to automatically fill voucher item from due payments\nof the partner when entering a financial voucher.") }, "name": "auto_fill_suggestions", "selectOnFocus": true });
    var auto_check_clearings1698 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Check clearing", "checked": true, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Check clearing","(ledger.Journals.auto_check_clearings) Whether to automatically check and update the 'cleared' status\nof involved transactions when (de)registering a voucher of\nthis journal.") }, "name": "auto_check_clearings", "selectOnFocus": true });
    var must_declare1699 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "must declare", "checked": true, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("must declare","(ledger.Journals.must_declare) ") }, "name": "must_declare", "selectOnFocus": true });
    var main_4_panel1700 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 16, "items": dc1694, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": force_sequence1695, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": yearly_numbering1696, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": auto_fill_suggestions1697, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": auto_check_clearings1698, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": must_declare1699, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var printed_name1707 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Printed document designation", "listeners": { "render": Lino.quicktip_renderer("Printed document designation","(ledger.Journals.printed_name) ") }, "maxLength": 100, "name": "printed_name", "selectOnFocus": true });
    var printed_name_fr1708 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Printed document designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Printed document designation (fr)","(ledger.Journals.printed_name_fr) ") }, "maxLength": 100, "name": "printed_name_fr", "selectOnFocus": true });
    var main_5_panel1709 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": printed_name1707, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": printed_name_fr1708, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1720 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1668, main_2_panel1677, main_3_panel1688, main_4_panel1700, main_5_panel1709 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1720;
    this.before_row_edit = function(record) {
      template1686.setContextValue('build_method', record ? record.data['build_methodHidden'] : undefined);
      template1686.setContextValue('voucher_type', record ? record.data['voucher_type'] : undefined);
    }
    this.onRender = function(ct, position) {
      typeof build_method1685 !== 'undefined' && build_method1685.on('change',Lino.chooser_handler(template1686,'build_method'));
      typeof voucher_type1673 !== 'undefined' && voucher_type1673.on('change',Lino.chooser_handler(template1686,'voucher_type'));
      Lino.ledger.Journals.DetailFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.ledger.Journals.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.EventTypes.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel cal-EventTypes",
  layout: 'fit',
  auto_save: true,
  content_type: 18,
  initComponent : function() {
    var ref1721 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Reference</span>", "listeners": { "render": Lino.quicktip_renderer("Reference","(cal.EventTypes.ref) The reference. This must be either empty or unique.") }, "maxLength": 200, "name": "ref", "selectOnFocus": true });
    var id1722 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(cal.EventTypes.id) ") }, "name": "id", "selectOnFocus": true });
    var planner_column1723 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Planner column", "forceSelection": true, "hiddenName": "planner_columnHidden", "listeners": { "render": Lino.quicktip_renderer("Planner column","(cal.EventTypes.planner_column) ") }, "name": "planner_column", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.cal.PlannerColumns) });
    var default_duration1724 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(6), "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Default duration</span>", "listeners": { "render": Lino.quicktip_renderer("Default duration","(cal.EventTypes.default_duration) An optional default duration for calendar entries of this type.") }, "maxLength": 6, "name": "default_duration", "selectOnFocus": true });
    var main_1_panel1725 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 17, "items": ref1721, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": id1722, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": planner_column1723, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": default_duration1724, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var name1730 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation", "listeners": { "render": Lino.quicktip_renderer("Designation","(cal.EventTypes.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr1731 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(cal.EventTypes.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_2_panel1732 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": name1730, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": name_fr1731, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var event_label1735 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Entry label</span>", "listeners": { "render": Lino.quicktip_renderer("Entry label","(cal.EventTypes.event_label) Default text for summary of new entries.") }, "maxLength": 200, "name": "event_label", "selectOnFocus": true });
    var event_label_fr1736 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Entry label (fr)", "listeners": { "render": Lino.quicktip_renderer("Entry label (fr)","(cal.EventTypes.event_label_fr) ") }, "maxLength": 200, "name": "event_label_fr", "selectOnFocus": true });
    var main_3_panel1737 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": event_label1735, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": event_label_fr1736, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var start_date1740 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Start date", "listeners": { "render": Lino.quicktip_renderer("Start date","(cal.EventTypes.start_date) ") }, "name": "start_date", "selectOnFocus": true });
    var max_days1741 = new Ext.form.NumberField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Maximum days</span>", "listeners": { "render": Lino.quicktip_renderer("Maximum days","(cal.EventTypes.max_days) The maximal number of days allowed as duration. 0 means no limit.") }, "name": "max_days", "selectOnFocus": true, "value": 1 });
    var max_conflicting1742 = new Ext.form.NumberField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Simultaneous entries</span>", "listeners": { "render": Lino.quicktip_renderer("Simultaneous entries","(cal.EventTypes.max_conflicting) How many conflicting events should be tolerated.") }, "name": "max_conflicting", "selectOnFocus": true, "value": 1 });
    var email_template1743 = new Lino.SimpleRemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Email template</span>", "listeners": { "render": Lino.quicktip_renderer("Email template","(cal.EventTypes.email_template) The name of the file to be used as template when creating an email from a mailable of this type.") }, "name": "email_template", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/EventTypes/email_template" }) }) });
    var attach_to_email1744 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Attach to email", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Attach to email","(cal.EventTypes.attach_to_email) Whether the printable file should be attached to the email\nwhen creating an email from a mailable of this type.\n") }, "name": "attach_to_email", "selectOnFocus": true });
    var main_4_panel1745 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 30, "items": start_date1740, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 11, "items": max_days1741, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 11, "items": max_conflicting1742, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 23, "items": email_template1743, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 23, "items": attach_to_email1744, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var is_appointment1751 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Appointment", "checked": true, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Appointment","(cal.EventTypes.is_appointment) Whether entries of this type are considered \"appointments\" (i.e. whose\ntime and place have been agreed upon with other users or external\nparties).") }, "name": "is_appointment", "selectOnFocus": true });
    var force_guest_states1752 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Automatic presences", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Automatic presences","(cal.EventTypes.force_guest_states) Whether presence states should be forced to those defined by the\nentry state.") }, "name": "force_guest_states", "selectOnFocus": true });
    var fill_presences1753 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Fill presences", "checked": true, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Fill presences","(cal.EventTypes.fill_presences) Whether presences should be automatically filled for entries of this\ntype.") }, "name": "fill_presences", "selectOnFocus": true });
    var all_rooms1754 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Locks all rooms", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Locks all rooms","(cal.EventTypes.all_rooms) ") }, "name": "all_rooms", "selectOnFocus": true });
    var locks_user1755 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Locks the user", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Locks the user","(cal.EventTypes.locks_user) Whether calendar entries of this type make the user\nunavailable for other locking events at the same time.") }, "name": "locks_user", "selectOnFocus": true });
    var transparent1756 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Transparent", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Transparent","(cal.EventTypes.transparent) Allow entries of this type to conflict with other events.") }, "name": "transparent", "selectOnFocus": true });
    var main_5_panel1757 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 16, "items": is_appointment1751, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": force_guest_states1752, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": fill_presences1753, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": all_rooms1754, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": locks_user1755, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": transparent1756, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1801 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1725, main_2_panel1732, main_3_panel1737, main_4_panel1745, main_5_panel1757 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1801;
    this.before_row_edit = function(record) {
    }
    Lino.cal.EventTypes.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.households.HouseholdsByType.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel households-HouseholdsByType",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 44,
  initComponent : function() {
    var name995 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Name</span>", "listeners": { "render": Lino.quicktip_renderer("Name","(households.HouseholdsByType.name) The full name of this partner. Used for alphabetic sorting.") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var language996 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Language</span>", "hiddenName": "languageHidden", "listeners": { "render": Lino.quicktip_renderer("Language","(households.HouseholdsByType.language) The language to use when communicating with this partner.") }, "name": "language", "selectOnFocus": true, "store": [ [ "en", "English" ], [ "fr", "French" ] ] });
    var main_panel997 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": name995, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": language996, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel997;
    this.before_row_edit = function(record) {
    }
    Lino.households.HouseholdsByType.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.addresses.Addresses.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel addresses-Addresses",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 40,
  initComponent : function() {
    var country669 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Country...", "fieldLabel": "Country", "hiddenName": "countryHidden", "listeners": { "render": Lino.quicktip_renderer("Country","(addresses.Addresses.country) ") }, "name": "country", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Countries.detail,Lino.countries.Countries.insert)}, "pageSize": 20, "related_actor_id": "countries.Countries", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/addresses/Addresses/country" }) }) });
    var city670 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Place...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Locality</span>", "forceSelection": false, "hiddenName": "cityHidden", "listeners": { "render": Lino.quicktip_renderer("Locality","(addresses.Addresses.city) The locality, i.e. usually a village, city or town.") }, "name": "city", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Places.detail,null)}, "pageSize": 20, "related_actor_id": "countries.Places", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/addresses/Addresses/city" }) }) });
    var main_1_panel671 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": country669, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": city670, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var street674 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Street</span>", "listeners": { "render": Lino.quicktip_renderer("Street","(addresses.Addresses.street) Name of street, without house number.") }, "maxLength": 200, "name": "street", "selectOnFocus": true });
    var street_no675 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">No.</span>", "listeners": { "render": Lino.quicktip_renderer("No.","(addresses.Addresses.street_no) House number.") }, "maxLength": 10, "name": "street_no", "selectOnFocus": true });
    var street_box676 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Box</span>", "listeners": { "render": Lino.quicktip_renderer("Box","(addresses.Addresses.street_box) Text to print after street number on the same line.") }, "maxLength": 10, "name": "street_box", "selectOnFocus": true });
    var main_2_panel677 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 48, "items": street674, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": street_no675, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": street_box676, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var address_type681 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Address type", "forceSelection": true, "hiddenName": "address_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Address type","(addresses.Addresses.address_type) ") }, "name": "address_type", "selectOnFocus": true, "store": Lino.addresses.AddressTypes });
    var remark682 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Remark", "listeners": { "render": Lino.quicktip_renderer("Remark","(addresses.Addresses.remark) ") }, "maxLength": 50, "name": "remark", "selectOnFocus": true });
    var main_3_panel683 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 25, "items": address_type681, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 75, "items": remark682, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel686 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel671, main_2_panel677, main_3_panel683 ], "labelAlign": "top", "layout": "form" });
    this.items = main_panel686;
    this.before_row_edit = function(record) {
      city670.setContextValue('country', record ? record.data['countryHidden'] : undefined);
      city670.setContextValue('region', record ? record.data['regionHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      typeof country669 !== 'undefined' && country669.on('change',Lino.chooser_handler(city670,'country'));
      Lino.addresses.Addresses.InsertFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.addresses.Addresses.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.DailyView.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel cal-CalendarView",
  layout: 'fit',
  auto_save: true,
  disable_editing: true,
  initComponent : function() {
    var navigation_panel_htmlbox1802 = new Lino.HtmlBoxPanel({ "always_enabled": true, "bodyStyle": "overflow-x:hidden;", "containing_panel": this, "flex": 15, "items": new Ext.BoxComponent({autoScroll:true}), "layout": "fit", "listeners": { "render": Lino.quicktip_renderer(null,"(cal.CalendarView.navigation_panel) ") }, "name": "navigation_panel", "region": "center", "value": "<br/>" });
    var body_panel1808 = new Ext.Panel({ "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ navigation_panel_htmlbox1802 ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretch" }, "region": "center" });
    var main_panel1809 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ body_panel1808 ], "labelAlign": "top", "layout": "fit" });
    this.items = main_panel1809;
    this.before_row_edit = function(record) {
      navigation_panel_htmlbox1802.refresh();
    }
    Lino.cal.DailyView.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.Guests.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel cal-Guests",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 26,
  initComponent : function() {
    var event835 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Calendar entry...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Calendar entry</span>", "hiddenName": "eventHidden", "listeners": { "render": Lino.quicktip_renderer("Calendar entry","(cal.Guests.event) The calendar event to which this presence applies.") }, "name": "event", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.OneEvent.detail,Lino.cal.OneEvent.insert)}, "pageSize": 20, "related_actor_id": "cal.OneEvent", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Guests/event" }) }) });
    var partner836 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Person</span>", "hiddenName": "partnerHidden", "listeners": { "render": Lino.quicktip_renderer("Person","(cal.Guests.partner) The partner to which this presence applies.") }, "name": "partner", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Guests/partner" }) }) });
    var role837 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Guest role...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Role</span>", "hiddenName": "roleHidden", "listeners": { "render": Lino.quicktip_renderer("Role","(cal.Guests.role) The role of this partner in this presence.") }, "name": "role", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.GuestRoles.detail,null)}, "pageSize": 20, "related_actor_id": "cal.GuestRoles", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Guests/role" }) }) });
    var main_1_panel838 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 33, "items": event835, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": partner836, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": role837, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var state842 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">State</span>", "forceSelection": true, "hiddenName": "stateHidden", "listeners": { "render": Lino.quicktip_renderer("State","(cal.Guests.state) The state of this presence.  See GuestStates.") }, "name": "state", "selectOnFocus": true, "store": Lino.cal.GuestStates });
    var workflow_buttons_disp843 = new Ext.form.DisplayField({ "always_enabled": true, "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Workflow", "listeners": { "render": Lino.quicktip_renderer("Workflow","(cal.Guests.workflow_buttons) ") }, "name": "workflow_buttons", "value": "<br/>" });
    var main_2_panel844 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 18, "items": state842, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 81, "items": workflow_buttons_disp843, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var remark847 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Remark", "listeners": { "render": Lino.quicktip_renderer("Remark","(cal.Guests.remark) ") }, "maxLength": 200, "name": "remark", "selectOnFocus": true });
    var main_panel848 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel838, main_2_panel844, { "anchor": "-20", "autoHeight": true, "items": remark847, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel848;
    this.before_row_edit = function(record) {
    }
    Lino.cal.Guests.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.EventTypes.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel cal-EventTypes",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 18,
  initComponent : function() {
    var name1810 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation", "listeners": { "render": Lino.quicktip_renderer("Designation","(cal.EventTypes.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr1811 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(cal.EventTypes.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var ref1812 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Reference</span>", "listeners": { "render": Lino.quicktip_renderer("Reference","(cal.EventTypes.ref) The reference. This must be either empty or unique.") }, "maxLength": 200, "name": "ref", "selectOnFocus": true });
    var main_1_panel1813 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 45, "items": name1810, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 45, "items": name_fr1811, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 8, "items": ref1812, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var event_label1817 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Entry label</span>", "listeners": { "render": Lino.quicktip_renderer("Entry label","(cal.EventTypes.event_label) Default text for summary of new entries.") }, "maxLength": 200, "name": "event_label", "selectOnFocus": true });
    var event_label_fr1818 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Entry label (fr)", "listeners": { "render": Lino.quicktip_renderer("Entry label (fr)","(cal.EventTypes.event_label_fr) ") }, "maxLength": 200, "name": "event_label_fr", "selectOnFocus": true });
    var main_2_panel1819 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": event_label1817, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": event_label_fr1818, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1822 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1813, main_2_panel1819 ], "labelAlign": "top", "layout": "form" });
    this.items = main_panel1822;
    this.before_row_edit = function(record) {
    }
    Lino.cal.EventTypes.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.Rooms.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel cal-Rooms",
  layout: 'fit',
  auto_save: true,
  content_type: 17,
  initComponent : function() {
    var id1823 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(cal.Rooms.id) ") }, "name": "id", "selectOnFocus": true });
    var name1824 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Designation</span>", "listeners": { "render": Lino.quicktip_renderer("Designation","(cal.Rooms.name) The designation of the room. This is not required to be unique.") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr1825 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(cal.Rooms.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel1826 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 10, "items": id1823, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 44, "items": name1824, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 44, "items": name_fr1825, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var company1830 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Organization...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Responsible</span>", "hiddenName": "companyHidden", "listeners": { "render": Lino.quicktip_renderer("Responsible","(cal.Rooms.company) Pointer to Company.") }, "name": "company", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Companies.detail,Lino.contacts.Companies.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Companies", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Rooms/company" }) }) });
    var contact_person1831 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Contact person</span>", "hiddenName": "contact_personHidden", "listeners": { "render": Lino.quicktip_renderer("Contact person","(cal.Rooms.contact_person) Pointer to Person.") }, "name": "contact_person", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Rooms/contact_person" }) }) });
    var display_color1832 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Color</span>", "forceSelection": true, "hiddenName": "display_colorHidden", "listeners": { "render": Lino.quicktip_renderer("Color","(cal.Rooms.display_color) The color to use when displaying entries in this room in the calendar\nview.") }, "name": "display_color", "selectOnFocus": true, "store": Lino.cal.DisplayColors });
    var main_2_panel1833 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 42, "items": company1830, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 42, "items": contact_person1831, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 14, "items": display_color1832, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var description1837 = new Lino.RichTextPanel({ "containing_panel": this, "fieldLabel": "Description", "flex": 41, "name": "description", "selectOnFocus": true, "title": "Description" });
    var main_panel1875 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1826, main_2_panel1833, description1837 ], "labelAlign": "top", "labelWidth": 108, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1875;
    this.before_row_edit = function(record) {
      contact_person1831.setContextValue('company', record ? record.data['companyHidden'] : undefined);
      description1837.refresh();
    }
    this.onRender = function(ct, position) {
      typeof company1830 !== 'undefined' && company1830.on('change',Lino.chooser_handler(contact_person1831,'company'));
      Lino.cal.Rooms.DetailFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.cal.Rooms.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.comments.Comments.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel comments-Comments",
  layout: 'fit',
  auto_save: true,
  content_type: 57,
  initComponent : function() {
    var id1876 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(comments.Comments.id) ") }, "name": "id", "selectOnFocus": true });
    var user1877 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "disabled": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Author</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(comments.Comments.user) The author of the comment.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users" });
    var created1878 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Created</span>", "listeners": { "render": Lino.quicktip_renderer("Created","(comments.Comments.created) The time when this object was created.") }, "name": "created", "value": "<br>" });
    var modified1879 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Modified</span>", "listeners": { "render": Lino.quicktip_renderer("Modified","(comments.Comments.modified) The time when this database object was last modified.") }, "name": "modified", "value": "<br>" });
    var main_1_panel1880 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 8, "items": id1876, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 35, "items": user1877, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 28, "items": created1878, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 28, "items": modified1879, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var reply_to1885 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Comment...", "fieldLabel": "Reply to", "hiddenName": "reply_toHidden", "listeners": { "render": Lino.quicktip_renderer("Reply to","(comments.Comments.reply_to) ") }, "name": "reply_to", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.comments.Comments.detail,Lino.comments.Comments.insert)}, "pageSize": 20, "related_actor_id": "comments.Comments", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/comments/Comments/reply_to" }) }) });
    var owner_disp1886 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Controlled by</span>", "name": "owner" });
    var owner_type1887 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a content type...", "fieldLabel": "Controlled by (type)", "hiddenName": "owner_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Controlled by (type)","(comments.Comments.owner_type) ") }, "name": "owner_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.gfks.ContentTypes.detail,null)}, "pageSize": 20, "related_actor_id": "gfks.ContentTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/comments/Comments/owner_type" }) }) });
    var owner_id1888 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Controlled by (object)", "hiddenName": "owner_idHidden", "listeners": { "render": Lino.quicktip_renderer("Controlled by (object)","(comments.Comments.owner_id) ") }, "name": "owner_id", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/comments/Comments/owner_id" }) }) });
    var comment_type1889 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Comment Type...", "fieldLabel": "Comment Type", "hiddenName": "comment_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Comment Type","(comments.Comments.comment_type) ") }, "name": "comment_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.comments.CommentTypes.detail,Lino.comments.CommentTypes.insert)}, "pageSize": 20, "related_actor_id": "comments.CommentTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/comments/Comments/comment_type" }) }) });
    var main_2_panel1890 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 25, "items": reply_to1885, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 12, "items": owner_disp1886, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": owner_type1887, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 12, "items": owner_id1888, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": comment_type1889, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var body1896 = new Lino.RichTextPanel({ "containing_panel": this, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Body</span>", "flex": 71, "name": "body", "selectOnFocus": true, "title": "Body" });
    var main_panel1897 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1880, main_2_panel1890, body1896 ], "labelAlign": "top", "labelWidth": 45, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1897;
    this.before_row_edit = function(record) {
      owner_id1888.setContextValue('owner_type', record ? record.data['owner_typeHidden'] : undefined);
      body1896.refresh();
    }
    this.onRender = function(ct, position) {
      typeof owner_type1887 !== 'undefined' && owner_type1887.on('change',Lino.chooser_handler(owner_id1888,'owner_type'));
      Lino.comments.Comments.DetailFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.comments.Comments.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.system.SiteConfigs.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel system-SiteConfigs",
  layout: 'fit',
  auto_save: true,
  content_type: 1,
  initComponent : function() {
    var site_company1898 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Organization...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Site owner</span>", "hiddenName": "site_companyHidden", "listeners": { "render": Lino.quicktip_renderer("Site owner","(system.SiteConfigs.site_company) The organisation who runs this site.  This is used e.g. when\nprinting your address in certain documents or reports.  Or\nnewly created partners inherit the country of the site owner.") }, "name": "site_company", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Companies.detail,Lino.contacts.Companies.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Companies", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/system/SiteConfigs/site_company" }) }) });
    var next_partner_id1899 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Next partner id</span>", "listeners": { "render": Lino.quicktip_renderer("Next partner id","(system.SiteConfigs.next_partner_id) The next automatic id for any new partner.") }, "name": "next_partner_id", "selectOnFocus": true, "value": 100 });
    var default_build_method1900 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Default build method</span>", "forceSelection": true, "hiddenName": "default_build_methodHidden", "listeners": { "render": Lino.quicktip_renderer("Default build method","(system.SiteConfigs.default_build_method) The default build method to use when rendering printable documents.") }, "name": "default_build_method", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.printing.BuildMethods) });
    var main_1_panel1901 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 54, "items": site_company1898, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 27, "items": next_partner_id1899, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 18, "items": default_build_method1900, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1905 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1901 ], "labelAlign": "top", "layout": "fit" });
    this.items = main_panel1905;
    this.before_row_edit = function(record) {
    }
    Lino.system.SiteConfigs.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.Rooms.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel cal-Rooms",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 17,
  initComponent : function() {
    var id1906 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(cal.Rooms.id) ") }, "name": "id", "selectOnFocus": true });
    var name1907 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Designation</span>", "listeners": { "render": Lino.quicktip_renderer("Designation","(cal.Rooms.name) The designation of the room. This is not required to be unique.") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr1908 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(cal.Rooms.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var display_color1909 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Color</span>", "forceSelection": true, "hiddenName": "display_colorHidden", "listeners": { "render": Lino.quicktip_renderer("Color","(cal.Rooms.display_color) The color to use when displaying entries in this room in the calendar\nview.") }, "name": "display_color", "selectOnFocus": true, "store": Lino.cal.DisplayColors });
    var main_1_panel1910 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 9, "items": id1906, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 38, "items": name1907, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 38, "items": name_fr1908, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 12, "items": display_color1909, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var company1915 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Organization...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Responsible</span>", "hiddenName": "companyHidden", "listeners": { "render": Lino.quicktip_renderer("Responsible","(cal.Rooms.company) Pointer to Company.") }, "name": "company", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Companies.detail,Lino.contacts.Companies.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Companies", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Rooms/company" }) }) });
    var contact_person1916 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Contact person</span>", "hiddenName": "contact_personHidden", "listeners": { "render": Lino.quicktip_renderer("Contact person","(cal.Rooms.contact_person) Pointer to Person.") }, "name": "contact_person", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Rooms/contact_person" }) }) });
    var main_panel1917 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1910, { "anchor": "-20", "autoHeight": true, "items": company1915, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": contact_person1916, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1917;
    this.before_row_edit = function(record) {
      contact_person1916.setContextValue('company', record ? record.data['companyHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      typeof company1915 !== 'undefined' && company1915.on('change',Lino.chooser_handler(contact_person1916,'company'));
      Lino.cal.Rooms.InsertFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.cal.Rooms.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.Tasks.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel cal-Tasks",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 22,
  initComponent : function() {
    var summary1920 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Short description", "listeners": { "render": Lino.quicktip_renderer("Short description","(cal.Tasks.summary) ") }, "maxLength": 200, "name": "summary", "selectOnFocus": true });
    var user1921 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Author</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(cal.Tasks.user) The author of this object.\nA pointer to lino.modlib.users.models.User.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Tasks/user" }) }) });
    var main_panel1922 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": summary1920, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": user1921, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1922;
    this.before_row_edit = function(record) {
    }
    Lino.cal.Tasks.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.addresses.Addresses.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel addresses-Addresses",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 40,
  initComponent : function() {
    var country640 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Country...", "fieldLabel": "Country", "hiddenName": "countryHidden", "listeners": { "render": Lino.quicktip_renderer("Country","(addresses.Addresses.country) ") }, "name": "country", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Countries.detail,Lino.countries.Countries.insert)}, "pageSize": 20, "related_actor_id": "countries.Countries", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/addresses/Addresses/country" }) }) });
    var city641 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Place...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Locality</span>", "forceSelection": false, "hiddenName": "cityHidden", "listeners": { "render": Lino.quicktip_renderer("Locality","(addresses.Addresses.city) The locality, i.e. usually a village, city or town.") }, "name": "city", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Places.detail,null)}, "pageSize": 20, "related_actor_id": "countries.Places", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/addresses/Addresses/city" }) }) });
    var zip_code642 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "Zip code", "listeners": { "render": Lino.quicktip_renderer("Zip code","(addresses.Addresses.zip_code) ") }, "maxLength": 10, "name": "zip_code", "selectOnFocus": true });
    var main_1_panel643 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 39, "items": country640, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 39, "items": city641, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": zip_code642, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var addr1647 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Address line before street</span>", "listeners": { "render": Lino.quicktip_renderer("Address line before street","(addresses.Addresses.addr1) Address line before street") }, "maxLength": 200, "name": "addr1", "selectOnFocus": true });
    var street648 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Street</span>", "listeners": { "render": Lino.quicktip_renderer("Street","(addresses.Addresses.street) Name of street, without house number.") }, "maxLength": 200, "name": "street", "selectOnFocus": true });
    var street_no649 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">No.</span>", "listeners": { "render": Lino.quicktip_renderer("No.","(addresses.Addresses.street_no) House number.") }, "maxLength": 10, "name": "street_no", "selectOnFocus": true });
    var street_box650 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Box</span>", "listeners": { "render": Lino.quicktip_renderer("Box","(addresses.Addresses.street_box) Text to print after street number on the same line.") }, "maxLength": 10, "name": "street_box", "selectOnFocus": true });
    var main_3_panel651 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 48, "items": street648, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": street_no649, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": street_box650, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var addr2655 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Address line after street</span>", "listeners": { "render": Lino.quicktip_renderer("Address line after street","(addresses.Addresses.addr2) Address line to print below street line.") }, "maxLength": 200, "name": "addr2", "selectOnFocus": true });
    var address_type656 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Address type", "forceSelection": true, "hiddenName": "address_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Address type","(addresses.Addresses.address_type) ") }, "name": "address_type", "selectOnFocus": true, "store": Lino.addresses.AddressTypes });
    var remark657 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Remark", "listeners": { "render": Lino.quicktip_renderer("Remark","(addresses.Addresses.remark) ") }, "maxLength": 50, "name": "remark", "selectOnFocus": true });
    var main_5_panel658 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 25, "items": address_type656, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 75, "items": remark657, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var data_source661 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Data source</span>", "forceSelection": true, "hiddenName": "data_sourceHidden", "listeners": { "render": Lino.quicktip_renderer("Data source","(addresses.Addresses.data_source) Pointer to choicelists.DataSources.") }, "name": "data_source", "store": Lino.addresses.DataSources });
    var partner662 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "Person", "hiddenName": "partnerHidden", "listeners": { "render": Lino.quicktip_renderer("Person","(addresses.Addresses.partner) ") }, "name": "partner", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/addresses/Addresses/partner" }) }) });
    var main_6_panel663 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 25, "items": data_source661, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 74, "items": partner662, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel666 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel643, { "anchor": "-20", "autoHeight": true, "items": addr1647, "labelAlign": "top", "layout": "form", "xtype": "panel" }, main_3_panel651, { "anchor": "-20", "autoHeight": true, "items": addr2655, "labelAlign": "top", "layout": "form", "xtype": "panel" }, main_5_panel658, main_6_panel663 ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel666;
    this.before_row_edit = function(record) {
      city641.setContextValue('country', record ? record.data['countryHidden'] : undefined);
      city641.setContextValue('region', record ? record.data['regionHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      typeof country640 !== 'undefined' && country640.on('change',Lino.chooser_handler(city641,'country'));
      Lino.addresses.Addresses.DetailFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.addresses.Addresses.DetailFormPanel.superclass.initComponent.call(this);
    // active_fields:
    city641.on("change", function(){ this.save() }, this);
    zip_code642.on("change", function(){ this.save() }, this);
  }
});


Lino.lists.Lists.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel lists-Lists",
  layout: 'fit',
  auto_save: true,
  content_type: 49,
  initComponent : function() {
    var id1925 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(lists.Lists.id) ") }, "name": "id", "selectOnFocus": true });
    var ref1926 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Reference</span>", "listeners": { "render": Lino.quicktip_renderer("Reference","(lists.Lists.ref) The reference. This must be either empty or unique.") }, "maxLength": 200, "name": "ref", "selectOnFocus": true });
    var list_type1927 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a List Type...", "fieldLabel": "List Type", "hiddenName": "list_typeHidden", "listeners": { "render": Lino.quicktip_renderer("List Type","(lists.Lists.list_type) ") }, "name": "list_type", "pageSize": 20, "related_actor_id": "lists.ListTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/lists/Lists/list_type" }) }) });
    var print_actions_disp1928 = new Ext.form.DisplayField({ "always_enabled": true, "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Print", "listeners": { "render": Lino.quicktip_renderer("Print","(lists.Lists.print_actions) ") }, "name": "print_actions", "value": "<br/>" });
    var main_1_panel1929 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 5, "items": id1925, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 42, "items": ref1926, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": list_type1927, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 31, "items": print_actions_disp1928, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var designation1934 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation", "listeners": { "render": Lino.quicktip_renderer("Designation","(lists.Lists.designation) ") }, "maxLength": 200, "name": "designation", "selectOnFocus": true });
    var designation_fr1935 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(lists.Lists.designation_fr) ") }, "maxLength": 200, "name": "designation_fr", "selectOnFocus": true });
    var main_2_panel1936 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": designation1934, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": designation_fr1935, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var remarks1939 = new Lino.RichTextPanel({ "containing_panel": this, "fieldLabel": "Remarks", "flex": 35, "name": "remarks", "selectOnFocus": true, "title": "Remarks" });
    var main_panel1951 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1929, main_2_panel1936, remarks1939 ], "labelAlign": "top", "labelWidth": 72, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1951;
    this.before_row_edit = function(record) {
      remarks1939.refresh();
    }
    Lino.lists.Lists.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.topics.InterestsByController.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel topics-InterestsByController",
  layout: 'fit',
  auto_save: true,
  content_type: 46,
  initComponent : function() {
    var topic1952 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Topic...", "fieldLabel": "Topic", "hiddenName": "topicHidden", "listeners": { "render": Lino.quicktip_renderer("Topic","(topics.InterestsByController.topic) ") }, "name": "topic", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.topics.Topics.detail,Lino.topics.Topics.insert)}, "pageSize": 20, "related_actor_id": "topics.Topics", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/topics/InterestsByController/topic" }) }) });
    var partner1953 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Partner...", "fieldLabel": "Partner", "hiddenName": "partnerHidden", "listeners": { "render": Lino.quicktip_renderer("Partner","(topics.InterestsByController.partner) ") }, "name": "partner", "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Partners", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/topics/InterestsByController/partner" }) }) });
    var main_1_panel1954 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": topic1952, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": partner1953, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var remark1957 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Remark", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Remark","(topics.InterestsByController.remark) ") }, "name": "remark", "selectOnFocus": true });
    var main_panel1958 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1954, { "flex": 83, "items": remark1957, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1958;
    this.before_row_edit = function(record) {
    }
    Lino.topics.InterestsByController.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.about.About.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel about-About",
  layout: 'fit',
  auto_save: true,
  disable_editing: true,
  initComponent : function() {
    var server_status_disp1961 = new Ext.form.DisplayField({ "always_enabled": true, "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Server status", "listeners": { "render": Lino.quicktip_renderer("Server status","(about.About.server_status) ") }, "name": "server_status", "value": "<br/>" });
    var main_panel1962 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "flex": 25, "html": "<div class=\"htmlText\"><span>This is <a href=\"http://amici.lino-framework.org/\" target=\"_blank\">Lino Amici</a> 18.8.0 using <a href=\"http://www.lino-framework.org\" target=\"_blank\">Lino</a> 19.9.0, <a href=\"http://www.djangoproject.com\" target=\"_blank\">Django</a> 2.2.5, <a href=\"http://www.python.org/\" target=\"_blank\">Python</a> 3.6.8, <a href=\"http://babel.edgewall.org/\" target=\"_blank\">Babel</a> 2.7.0, <a href=\"http://jinja.pocoo.org/\" target=\"_blank\">Jinja</a> 2.10.1, <a href=\"http://labix.org/python-dateutil\" target=\"_blank\">python-dateutil</a> 2.8.0, <a href=\"http://getbootstrap.com\" target=\"_blank\">Bootstrap</a> 3.3.4, <a href=\"http://www.sencha.com\" target=\"_blank\">ExtJS</a> <a href=\"#\" onclick=\"alert('ExtJS client version is ' + Ext.version);\" title=\"Click to see ExtJS client version\">(version)</a>, <a href=\"http://www.famfamfam.com/lab/icons/silk/\" target=\"_blank\">Silk Icons</a> 1.3, <a href=\"http://www.tinymce.com/\" target=\"_blank\">TinyMCE</a> 3.5.11, <a href=\"http://www.byte-force.com\" target=\"_blank\">Ext.ux.TinyMCE</a> 0.8.4, <a href=\"http://appyframework.org/pod.html\" target=\"_blank\">Appy</a> (not installed)</span><p>Languages: en, fr</p><p>Server uptime : <b>19/09/2019 at 15:57</b> (UTC)</p><p>This is a Lino demo site.</p><p>We are running with simulated date set to Thursday, 16 March 2017.</p><p>Source timestamps:</p><ul><li>lino_amici : <b>13/07/2019 at 19:51</b></li><li>atelier : <b>09/08/2019 at 11:43</b></li><li>django : <b>18/09/2019 at 04:46</b></li><li>lino : <b>19/09/2019 at 15:30</b></li><li>lino_xl : <b>19/09/2019 at 15:30</b></li></ul><p>Complexity factors : 37 plugins, 59 models, 2 users, 19 user roles, 6 user types, 217 views, 18 dialog actions</p></div>", "xtype": "label" }, { "autoHeight": true, "items": server_status_disp1961, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1962;
    this.before_row_edit = function(record) {
    }
    Lino.about.About.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.households.MembersByPerson.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel households-MembersByPerson",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 43,
  initComponent : function() {
    var person1964 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "Person", "hiddenName": "personHidden", "listeners": { "render": Lino.quicktip_renderer("Person","(households.MembersByPerson.person) ") }, "name": "person", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/households/MembersByPerson/person" }) }) });
    var role1965 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Role", "forceSelection": true, "hiddenName": "roleHidden", "listeners": { "render": Lino.quicktip_renderer("Role","(households.MembersByPerson.role) ") }, "name": "role", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.households.MemberRoles) });
    var household1966 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Household...", "fieldLabel": "Household", "hiddenName": "householdHidden", "listeners": { "render": Lino.quicktip_renderer("Household","(households.MembersByPerson.household) ") }, "name": "household", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.households.Households.detail,Lino.households.Households.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "households.Households", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/households/MembersByPerson/household" }) }) });
    var primary1967 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Primary", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Primary","(households.MembersByPerson.primary) Whether this is the primary household of this person.\nChecking this field will automatically disable any other primary memberships.") }, "name": "primary", "selectOnFocus": true });
    var main_panel1968 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": person1964, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": role1965, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": household1966, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": primary1967, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1968;
    this.before_row_edit = function(record) {
    }
    Lino.households.MembersByPerson.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.excerpts.Excerpts.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel excerpts-Excerpts",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 54,
  initComponent : function() {
    var excerpt_type1627 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Excerpt Type...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Excerpt Type</span>", "hiddenName": "excerpt_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Excerpt Type","(excerpts.Excerpts.excerpt_type) The type of this excerpt (ForeignKey to ExcerptType).") }, "name": "excerpt_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.excerpts.ExcerptTypes.detail,Lino.excerpts.ExcerptTypes.insert)}, "pageSize": 20, "related_actor_id": "excerpts.ExcerptTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/excerpt_type" }) }) });
    var company1628 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Organization...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Recipient (Organization)</span>", "hiddenName": "companyHidden", "listeners": { "render": Lino.quicktip_renderer("Recipient (Organization)","(excerpts.Excerpts.company) The optional company of the recipient of this\nexcerpt.  See ContactRelated.company.") }, "name": "company", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Companies.detail,Lino.contacts.Companies.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Companies", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/company" }) }) });
    var contact_person1629 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Recipient (Person)</span>", "hiddenName": "contact_personHidden", "listeners": { "render": Lino.quicktip_renderer("Recipient (Person)","(excerpts.Excerpts.contact_person) The optional contact person of the recipient of this\nexcerpt.  See ContactRelated.contact_person.") }, "name": "contact_person", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/contact_person" }) }) });
    var main_2_panel1630 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": company1628, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": contact_person1629, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1633 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": excerpt_type1627, "labelAlign": "top", "layout": "form", "xtype": "panel" }, main_2_panel1630 ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1633;
    this.before_row_edit = function(record) {
      excerpt_type1627.setContextValue('owner', record ? record.data['owner'] : undefined);
      contact_person1629.setContextValue('company', record ? record.data['companyHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      typeof company1628 !== 'undefined' && company1628.on('change',Lino.chooser_handler(contact_person1629,'company'));
      Lino.excerpts.Excerpts.InsertFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.excerpts.Excerpts.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.uploads.Uploads.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel uploads-Uploads",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 29,
  initComponent : function() {
    var type1353 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Upload Type...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Upload Type</span>", "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Upload Type","(uploads.Uploads.type) The type of this upload.") }, "name": "type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.uploads.UploadTypes.detail,Lino.uploads.UploadTypes.insert)}, "pageSize": 20, "related_actor_id": "uploads.UploadTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/uploads/Uploads/type" }) }) });
    var description1354 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Description</span>", "listeners": { "render": Lino.quicktip_renderer("Description","(uploads.Uploads.description) A short description entered manually by the user.") }, "maxLength": 200, "name": "description", "selectOnFocus": true });
    var file1355 = Lino.file_field_handler(this,{ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">File</span>", "listeners": { "render": Lino.quicktip_renderer("File","(uploads.Uploads.file) Pointer to the uploaded file. See\nlino.mixins.uploadable.Uploadable.file") }, "maxLength": 100, "name": "file", "selectOnFocus": true });
    var volume1356 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Library volume...", "fieldLabel": "Library volume", "hiddenName": "volumeHidden", "listeners": { "render": Lino.quicktip_renderer("Library volume","(uploads.Uploads.volume) ") }, "name": "volume", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.uploads.Volumes.detail,Lino.uploads.Volumes.insert)}, "pageSize": 20, "preferred_width": 5, "related_actor_id": "uploads.Volumes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/uploads/Uploads/volume" }) }) });
    var library_file1357 = new Lino.SimpleRemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Library file", "listeners": { "render": Lino.quicktip_renderer("Library file","(uploads.Uploads.library_file) ") }, "name": "library_file", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/uploads/Uploads/library_file" }) }) });
    var main_4_panel1358 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 66, "items": volume1356, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": library_file1357, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var user1361 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Uploaded by</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Uploaded by","(uploads.Uploads.user) The author of this object.\nA pointer to lino.modlib.users.models.User.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/uploads/Uploads/user" }) }) });
    var main_panel1362 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": type1353, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": description1354, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": file1355, "labelAlign": "top", "layout": "form", "xtype": "panel" }, main_4_panel1358, { "anchor": "-20", "autoHeight": true, "items": user1361, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel1362;
    this.before_row_edit = function(record) {
      type1353.setContextValue('upload_area', record ? record.data['upload_areaHidden'] : undefined);
      library_file1357.setContextValue('volume', record ? record.data['volumeHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      typeof volume1356 !== 'undefined' && volume1356.on('change',Lino.chooser_handler(library_file1357,'volume'));
      Lino.uploads.Uploads.InsertFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.uploads.Uploads.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.RecurrentEvents.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel cal-RecurrentEvents",
  layout: 'fit',
  auto_save: true,
  content_type: 24,
  initComponent : function() {
    var name1973 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Designation</span>", "listeners": { "render": Lino.quicktip_renderer("Designation","(cal.RecurrentEvents.name) See lino.utils.mldbc.mixins.BabelNamed.name.") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr1974 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(cal.RecurrentEvents.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel1975 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": name1973, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": name_fr1974, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var id1978 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(cal.RecurrentEvents.id) ") }, "name": "id", "selectOnFocus": true });
    var user1979 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a User...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Author</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(cal.RecurrentEvents.user) The author of this object.\nA pointer to lino.modlib.users.models.User.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "related_actor_id": "users.Users", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/RecurrentEvents/user" }) }) });
    var event_type1980 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Calendar entry type...", "fieldLabel": "Calendar entry type", "hiddenName": "event_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Calendar entry type","(cal.RecurrentEvents.event_type) ") }, "name": "event_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.EventTypes.detail,Lino.cal.EventTypes.insert)}, "pageSize": 20, "related_actor_id": "cal.EventTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/RecurrentEvents/event_type" }) }) });
    var main_2_panel1981 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 11, "items": id1978, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 44, "items": user1979, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 44, "items": event_type1980, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var start_date1985 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Start date", "listeners": { "render": Lino.quicktip_renderer("Start date","(cal.RecurrentEvents.start_date) ") }, "name": "start_date", "selectOnFocus": true });
    var start_time1986 = new Lino.TimeField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Start time", "listeners": { "render": Lino.quicktip_renderer("Start time","(cal.RecurrentEvents.start_time) ") }, "maxValue": "9:00 PM", "minValue": "7:00", "name": "start_time", "selectOnFocus": true });
    var end_date1987 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "End Date", "listeners": { "render": Lino.quicktip_renderer("End Date","(cal.RecurrentEvents.end_date) ") }, "name": "end_date", "selectOnFocus": true });
    var end_time1988 = new Lino.TimeField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "End Time", "listeners": { "render": Lino.quicktip_renderer("End Time","(cal.RecurrentEvents.end_time) ") }, "maxValue": "9:00 PM", "minValue": "7:00", "name": "end_time", "selectOnFocus": true });
    var main_3_panel1989 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 30, "items": start_date1985, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": start_time1986, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": end_date1987, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": end_time1988, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var every_unit1994 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Recurrency</span>", "forceSelection": true, "hiddenName": "every_unitHidden", "listeners": { "render": Lino.quicktip_renderer("Recurrency","(cal.RecurrentEvents.every_unit) Inherited from RecurrentSet.every_unit.") }, "name": "every_unit", "selectOnFocus": true, "store": Lino.cal.Recurrencies });
    var every1995 = new Ext.form.NumberField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Repeat every", "listeners": { "render": Lino.quicktip_renderer("Repeat every","(cal.RecurrentEvents.every) ") }, "name": "every", "selectOnFocus": true, "value": 1 });
    var max_events1996 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Number of events</span>", "listeners": { "render": Lino.quicktip_renderer("Number of events","(cal.RecurrentEvents.max_events) Maximum number of calendar entries to generate.") }, "name": "max_events", "selectOnFocus": true });
    var main_4_panel1997 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 41, "items": every_unit1994, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 29, "items": every1995, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 29, "items": max_events1996, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var monday2001 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Monday", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Monday","(cal.RecurrentEvents.monday) ") }, "name": "monday", "selectOnFocus": true });
    var tuesday2002 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Tuesday", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Tuesday","(cal.RecurrentEvents.tuesday) ") }, "name": "tuesday", "selectOnFocus": true });
    var wednesday2003 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Wednesday", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Wednesday","(cal.RecurrentEvents.wednesday) ") }, "name": "wednesday", "selectOnFocus": true });
    var thursday2004 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Thursday", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Thursday","(cal.RecurrentEvents.thursday) ") }, "name": "thursday", "selectOnFocus": true });
    var friday2005 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Friday", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Friday","(cal.RecurrentEvents.friday) ") }, "name": "friday", "selectOnFocus": true });
    var saturday2006 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Saturday", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Saturday","(cal.RecurrentEvents.saturday) ") }, "name": "saturday", "selectOnFocus": true });
    var sunday2007 = new Ext.form.Checkbox({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "boxLabel": "Sunday", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Sunday","(cal.RecurrentEvents.sunday) ") }, "name": "sunday", "selectOnFocus": true });
    var main_5_panel2008 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 14, "items": monday2001, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 14, "items": tuesday2002, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 14, "items": wednesday2003, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 14, "items": thursday2004, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 14, "items": friday2005, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 14, "items": saturday2006, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 14, "items": sunday2007, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var description2016 = new Lino.RichTextPanel({ "containing_panel": this, "fieldLabel": "Description", "flex": 66, "name": "description", "region": "center", "selectOnFocus": true, "title": "Description" });
    var main_6_panel2018 = new Ext.Panel({ "autoScroll": false, "border": false, "flex": 50, "frame": false, "hideCheckBoxLabels": true, "items": [ description2016 ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretch" } });
    var main_panel2019 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1975, main_2_panel1981, main_3_panel1989, main_4_panel1997, main_5_panel2008, main_6_panel2018 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel2019;
    this.before_row_edit = function(record) {
      description2016.refresh();
    }
    Lino.cal.RecurrentEvents.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.contacts.Persons.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel contacts-Persons",
  layout: 'fit',
  auto_save: true,
  content_type: 10,
  initComponent : function() {
    var overview_htmlbox2020 = new Lino.HtmlBoxPanel({ "always_enabled": true, "bodyStyle": "overflow-x:hidden;", "containing_panel": this, "flex": 45, "items": new Ext.BoxComponent({autoScroll:true}), "layout": "fit", "listeners": { "render": Lino.quicktip_renderer(null,"(contacts.Persons.overview) ") }, "name": "overview", "value": "<br/>" });
    var last_name2021 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Last name</span>", "listeners": { "render": Lino.quicktip_renderer("Last name","(contacts.Persons.last_name) The last name, also known as family name.") }, "maxLength": 200, "name": "last_name", "selectOnFocus": true });
    var first_name2022 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">First name</span>", "listeners": { "render": Lino.quicktip_renderer("First name","(contacts.Persons.first_name) The first name, also known as given name.") }, "maxLength": 200, "name": "first_name", "selectOnFocus": true });
    var contact_box_1_panel2023 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 58, "items": last_name2021, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 41, "items": first_name2022, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var gender2026 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Gender</span>", "forceSelection": true, "hiddenName": "genderHidden", "listeners": { "render": Lino.quicktip_renderer("Gender","(contacts.Persons.gender) The sex of this person (male or female).") }, "name": "gender", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.Genders) });
    var language2027 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Language</span>", "hiddenName": "languageHidden", "listeners": { "render": Lino.quicktip_renderer("Language","(contacts.Persons.language) The language to use when communicating with this partner.") }, "name": "language", "selectOnFocus": true, "store": [ [ "en", "English" ], [ "fr", "French" ] ] });
    var contact_box_2_panel2028 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 41, "items": gender2026, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 58, "items": language2027, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var birth_date2031 = new Lino.IncompleteDateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Birth date</span>", "listeners": { "render": Lino.quicktip_renderer("Birth date","(contacts.Persons.birth_date) Uncomplete dates are allowed, e.g. \n\"00.00.1980\" means \"some day in 1980\", \n\"00.07.1980\" means \"in July 1980\"\nor \"23.07.0000\" means \"on a 23th of July\".") }, "name": "birth_date", "selectOnFocus": true });
    var age_disp2032 = new Ext.form.DisplayField({ "always_enabled": true, "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Age", "listeners": { "render": Lino.quicktip_renderer("Age","(contacts.Persons.age) ") }, "name": "age", "value": "<br/>" });
    var id2033 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(contacts.Persons.id) ") }, "name": "id", "selectOnFocus": true });
    var contact_box_3_panel2034 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 42, "items": birth_date2031, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 35, "items": age_disp2032, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": id2033, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var contact_box_panel2038 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "flex": 54, "frame": true, "hideCheckBoxLabels": true, "items": [ contact_box_1_panel2023, contact_box_2_panel2028, contact_box_3_panel2034 ], "labelAlign": "top", "layout": "form" });
    var general_1_panel2039 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ overview_htmlbox2020, contact_box_panel2038 ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var general_panel2054 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ general_1_panel2039 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" }, "listeners": { "activate": Lino.on_tab_activate }, "title": "General" });
    var remarks2079 = new Lino.RichTextPanel({ "containing_panel": this, "fieldLabel": "Remarks", "flex": 5, "name": "remarks", "region": "center", "selectOnFocus": true, "split": true, "title": "Remarks" });
    var more_left_panel2084 = new Lino.VBorderPanel({ "autoScroll": false, "bodyBorder": false, "border": false, "flex": 66, "frame": true, "hideCheckBoxLabels": true, "items": [ remarks2079 ], "labelAlign": "top", "labelWidth": 72, "region": "center" });
    var more_1_panel2086 = new Ext.Panel({ "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ more_left_panel2084 ], "labelAlign": "top", "labelWidth": 81, "layout": "hbox", "layoutConfig": { "align": "stretch" }, "listeners": { "activate": Lino.on_tab_activate }, "title": "More" });
    var main_panel2087 = new Ext.TabPanel({ "activeTab": 0, "autoScroll": false, "bodyBorder": false, "border": false, "enableTabScroll": true, "frame": true, "hideCheckBoxLabels": true, "items": [ general_panel2054, more_1_panel2086 ], "labelAlign": "top", "split": true });
    this.items = main_panel2087;
    this.before_row_edit = function(record) {
      overview_htmlbox2020.refresh();
      remarks2079.refresh();
    }
    Lino.contacts.Persons.DetailFormPanel.superclass.initComponent.call(this);
    // active_fields:
  }
});


Lino.cal.Calendars.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel cal-Calendars",
  layout: 'fit',
  auto_save: true,
  content_type: 20,
  initComponent : function() {
    var name2088 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation", "listeners": { "render": Lino.quicktip_renderer("Designation","(cal.Calendars.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr2089 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(cal.Calendars.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var color2090 = new Ext.form.NumberField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">color</span>", "listeners": { "render": Lino.quicktip_renderer("color","(cal.Calendars.color) The color to use for entries of this calendar (in\nlino_xl.lib.extensible).") }, "name": "color", "selectOnFocus": true });
    var id2091 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(cal.Calendars.id) ") }, "name": "id", "selectOnFocus": true });
    var main_1_panel2092 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 40, "items": name2088, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 40, "items": name_fr2089, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 9, "items": color2090, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 9, "items": id2091, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var description2097 = new Lino.RichTextPanel({ "containing_panel": this, "fieldLabel": "Description", "flex": 33, "name": "description", "region": "center", "selectOnFocus": true, "title": "Description" });
    var main_2_panel2107 = new Ext.Panel({ "autoScroll": false, "border": false, "flex": 83, "frame": false, "hideCheckBoxLabels": true, "items": [ description2097 ], "labelAlign": "top", "labelWidth": 108, "layout": "hbox", "layoutConfig": { "align": "stretch" } });
    var main_panel2108 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel2092, main_2_panel2107 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel2108;
    this.before_row_edit = function(record) {
      description2097.refresh();
    }
    Lino.cal.Calendars.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.RecurrentEvents.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel cal-RecurrentEvents",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 24,
  initComponent : function() {
    var name2109 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Designation</span>", "listeners": { "render": Lino.quicktip_renderer("Designation","(cal.RecurrentEvents.name) See lino.utils.mldbc.mixins.BabelNamed.name.") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr2110 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(cal.RecurrentEvents.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel2111 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": name2109, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": name_fr2110, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var start_date2114 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Start date", "listeners": { "render": Lino.quicktip_renderer("Start date","(cal.RecurrentEvents.start_date) ") }, "name": "start_date", "selectOnFocus": true });
    var end_date2115 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "End Date", "listeners": { "render": Lino.quicktip_renderer("End Date","(cal.RecurrentEvents.end_date) ") }, "name": "end_date", "selectOnFocus": true });
    var every_unit2116 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Recurrency</span>", "forceSelection": true, "hiddenName": "every_unitHidden", "listeners": { "render": Lino.quicktip_renderer("Recurrency","(cal.RecurrentEvents.every_unit) Inherited from RecurrentSet.every_unit.") }, "name": "every_unit", "selectOnFocus": true, "store": Lino.cal.Recurrencies });
    var event_type2117 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Calendar entry type...", "fieldLabel": "Calendar entry type", "hiddenName": "event_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Calendar entry type","(cal.RecurrentEvents.event_type) ") }, "name": "event_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.EventTypes.detail,Lino.cal.EventTypes.insert)}, "pageSize": 20, "related_actor_id": "cal.EventTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/RecurrentEvents/event_type" }) }) });
    var main_2_panel2118 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 24, "items": start_date2114, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 24, "items": end_date2115, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 13, "items": every_unit2116, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 37, "items": event_type2117, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel2123 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel2111, main_2_panel2118 ], "labelAlign": "top", "layout": "form" });
    this.items = main_panel2123;
    this.before_row_edit = function(record) {
    }
    Lino.cal.RecurrentEvents.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.Guests.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel cal-Guests",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 26,
  initComponent : function() {
    var event850 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Calendar entry...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Calendar entry</span>", "hiddenName": "eventHidden", "listeners": { "render": Lino.quicktip_renderer("Calendar entry","(cal.Guests.event) The calendar event to which this presence applies.") }, "name": "event", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.OneEvent.detail,Lino.cal.OneEvent.insert)}, "pageSize": 20, "related_actor_id": "cal.OneEvent", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Guests/event" }) }) });
    var partner851 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Select a Person...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Person</span>", "hiddenName": "partnerHidden", "listeners": { "render": Lino.quicktip_renderer("Person","(cal.Guests.partner) The partner to which this presence applies.") }, "name": "partner", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "related_actor_id": "contacts.Persons", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Guests/partner" }) }) });
    var role852 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Guest role...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Role</span>", "hiddenName": "roleHidden", "listeners": { "render": Lino.quicktip_renderer("Role","(cal.Guests.role) The role of this partner in this presence.") }, "name": "role", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.GuestRoles.detail,null)}, "pageSize": 20, "related_actor_id": "cal.GuestRoles", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/Guests/role" }) }) });
    var main_panel853 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": event850, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": partner851, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": role852, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel853;
    this.before_row_edit = function(record) {
    }
    Lino.cal.Guests.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.Calendars.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel cal-Calendars",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 20,
  initComponent : function() {
    var name2124 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation", "listeners": { "render": Lino.quicktip_renderer("Designation","(cal.Calendars.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr2125 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(cal.Calendars.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel2126 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": name2124, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": name_fr2125, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var color2129 = new Ext.form.NumberField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">color</span>", "listeners": { "render": Lino.quicktip_renderer("color","(cal.Calendars.color) The color to use for entries of this calendar (in\nlino_xl.lib.extensible).") }, "name": "color", "selectOnFocus": true });
    var main_panel2130 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel2126, { "anchor": "-20", "autoHeight": true, "items": color2129, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel2130;
    this.before_row_edit = function(record) {
    }
    Lino.cal.Calendars.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.EntriesByGuest.InsertFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-InsertFormPanel cal-EntriesByGuest",
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 25,
  initComponent : function() {
    var start_date2132 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Start date</span>", "listeners": { "render": Lino.quicktip_renderer("Start date","(cal.EntriesByGuest.start_date) The starting date of this entry.  May not be empty.") }, "name": "start_date", "selectOnFocus": true });
    var start_time2133 = new Lino.TimeField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Start time</span>", "listeners": { "render": Lino.quicktip_renderer("Start time","(cal.EntriesByGuest.start_time) The starting time.  If this is empty, the entry is considered a all-day entry.") }, "maxValue": "9:00 PM", "minValue": "7:00", "name": "start_time", "selectOnFocus": true });
    var end_time2134 = new Lino.TimeField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">End Time</span>", "listeners": { "render": Lino.quicktip_renderer("End Time","(cal.EntriesByGuest.end_time) The ending time.  If this is before the starting time, and no ending date\nis given, the entry ends the day after.") }, "maxValue": "9:00 PM", "minValue": "7:00", "name": "end_time", "selectOnFocus": true });
    var main_1_panel2135 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 44, "items": start_date2132, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 27, "items": start_time2133, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 27, "items": end_time2134, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var summary2139 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Short description</span>", "listeners": { "render": Lino.quicktip_renderer("Short description","(cal.EntriesByGuest.summary) A one-line descriptive text.") }, "maxLength": 200, "name": "summary", "selectOnFocus": true });
    var event_type2140 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Select a Calendar entry type...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Calendar entry type</span>", "hiddenName": "event_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Calendar entry type","(cal.EntriesByGuest.event_type) The type of this calendar entry.") }, "name": "event_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.cal.EventTypes.detail,Lino.cal.EventTypes.insert)}, "pageSize": 20, "related_actor_id": "cal.EventTypes", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/cal/EntriesByGuest/event_type" }) }) });
    var main_panel2141 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel2135, { "anchor": "-20", "autoHeight": true, "items": summary2139, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": event_type2140, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "form" });
    this.items = main_panel2141;
    this.before_row_edit = function(record) {
    }
    Lino.cal.EntriesByGuest.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.blogs.EntryTypes.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel blogs-EntryTypes",
  layout: 'fit',
  auto_save: true,
  content_type: 51,
  initComponent : function() {
    var id2144 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(blogs.EntryTypes.id) ") }, "name": "id", "selectOnFocus": true });
    var name2145 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation", "listeners": { "render": Lino.quicktip_renderer("Designation","(blogs.EntryTypes.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr2146 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(blogs.EntryTypes.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel2147 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 10, "items": id2144, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 44, "items": name2145, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 44, "items": name_fr2146, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" }, "region": "north", "split": true });
    var remark2151 = new Lino.RichTextPanel({ "containing_panel": this, "fieldLabel": "Remark", "flex": 5, "name": "remark", "region": "center", "selectOnFocus": true, "split": true, "title": "Remark" });
    var main_panel2171 = new Lino.VBorderPanel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel2147, remark2151 ], "labelAlign": "top", "labelWidth": 63 });
    this.items = main_panel2171;
    this.before_row_edit = function(record) {
      remark2151.refresh();
    }
    Lino.blogs.EntryTypes.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.cal.GuestRoles.DetailFormPanel = Ext.extend(Lino.FormPanel,{
cls: "l-DetailFormPanel cal-GuestRoles",
  layout: 'fit',
  auto_save: true,
  content_type: 19,
  initComponent : function() {
    var ref2172 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Reference</span>", "listeners": { "render": Lino.quicktip_renderer("Reference","(cal.GuestRoles.ref) The reference. This must be either empty or unique.") }, "maxLength": 200, "name": "ref", "selectOnFocus": true });
    var name2173 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation", "listeners": { "render": Lino.quicktip_renderer("Designation","(cal.GuestRoles.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_fr2174 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Designation (fr)", "listeners": { "render": Lino.quicktip_renderer("Designation (fr)","(cal.GuestRoles.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var id2175 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(cal.GuestRoles.id) ") }, "name": "id", "selectOnFocus": true });
    var main_1_panel2176 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 7, "items": ref2172, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 41, "items": name2173, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 41, "items": name_fr2174, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 9, "items": id2175, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 0, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel2193 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel2176 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel2193;
    this.before_row_edit = function(record) {
    }
    Lino.cal.GuestRoles.DetailFormPanel.superclass.initComponent.call(this);
  }
});

Lino.users.Users.change_password = new Lino.WindowAction({ "autoHeight": true, "draggable": true, "maximizable": true, "maximized": false, "modal": true, "width": Lino.chars2width(50) }, function(){
  var p = { "hide_top_toolbar": true, "is_main_window": true };
  return new Lino.users.Users.change_password_ActionFormPanel({});
});
Lino.users.UsersOverview.sign_in = new Lino.WindowAction({ "autoHeight": true, "draggable": true, "maximizable": true, "maximized": false, "modal": true, "width": Lino.chars2width(50) }, function(){
  var p = { "hide_top_toolbar": true, "is_main_window": true };
  return new Lino.users.UsersOverview.sign_in_ActionFormPanel({});
});

// js_render_GridPanel_class users.UsersOverview
Lino.users.UsersOverview.GridPanel = Ext.extend(Lino.GridPanel,{
  ls_url : "/users/UsersOverview",
  ls_store_fields : [ { "name": "username" }, { "name": "user_type" }, 'user_typeHidden', { "name": "language" }, 'languageHidden', { "name": "id", "type": "int" }, { "name": "disabled_fields" }, { "name": "disable_editing" } ],
  ls_id_property : "id",
  pk_index : 5,
  content_type : 2,
  cell_edit : true,
  focus_on_quick_search : false,
  ls_bbar_actions : [ { "auto_save": true, "iconCls": "x-tbar-html", "itemId": "show_as_html", "menu_item_text": "HTML", "overflowText": "HTML", "panel_btn_handler": Lino.list_action_handler('/users/UsersOverview','show_as_html','GET',Lino.get_current_grid_config), "tooltip": "Show this table in Bootstrap3 interface" }, { "iconCls": "x-tbar-page_white_acrobat", "menu": [ { "auto_save": true, "itemId": "as_pdf", "menu_item_text": "Table (landscape)", "overflowText": "Table (landscape)", "panel_btn_handler": Lino.list_action_handler('/users/UsersOverview','as_pdf','GET',Lino.get_current_grid_config), "text": "Table (landscape)", "tooltip": "Show this table as a pdf document." }, { "auto_save": true, "itemId": "as_pdf_p", "menu_item_text": "Table (portrait)", "overflowText": "Table (portrait)", "panel_btn_handler": Lino.list_action_handler('/users/UsersOverview','as_pdf_p','GET',Lino.get_current_grid_config), "text": "Table (portrait)", "tooltip": "Show this table as a pdf document." } ], "menu_item_text": "Table (landscape)", "panel_btn_handler": Lino.list_action_handler('/users/UsersOverview','as_pdf','GET',Lino.get_current_grid_config), "text": null, "xtype": "splitbutton" }, { "auto_save": true, "iconCls": "x-tbar-page_excel", "itemId": "export_excel", "menu_item_text": "Export to .xls", "overflowText": "Export to .xls", "panel_btn_handler": Lino.list_action_handler('/users/UsersOverview','export_excel','GET',Lino.get_current_grid_config), "tooltip": "Export this table as an .xls document" }, { "auto_save": true, "iconCls": "x-tbar-application_form", "itemId": "detail", "menu_item_text": "Detail", "overflowText": "Detail", "panel_btn_handler": Lino.show_detail, "tooltip": "Detail" }, { "auto_save": true, "itemId": "change_password", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Change the password of this user.") }, "menu_item_text": "Change password", "overflowText": "Change password", "panel_btn_handler": Lino.param_action_handler(Lino.users.Users.change_password), "text": " <font size=\"4\">\u2731</font>" }, { "auto_save": true, "itemId": "sign_in", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Open a window which asks for username and password and which\nauthenticates as this user when submitted.") }, "menu_item_text": "Sign in", "overflowText": "Sign in", "panel_btn_handler": Lino.param_action_handler(Lino.users.UsersOverview.sign_in), "text": "Sign in" }, { "auto_save": true, "itemId": "sign_out", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Sign out the current user and return to the welcome screen for\nanonymous visitors.") }, "menu_item_text": "Sign out", "overflowText": "Sign out", "panel_btn_handler": Lino.list_action_handler('/users/UsersOverview','sign_out','GET',null), "text": "Sign out" }, { "auto_save": true, "itemId": "update_widgets", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Create or update the dashboard widgets for this user.") }, "menu_item_text": "Update widgets", "overflowText": "Update widgets", "panel_btn_handler": Lino.row_action_handler('update_widgets','GET',null), "text": "\u00a0\u26a1\u00a0" } ],
  ls_grid_configs : [  ],
  gc_name : 0,
  viewConfig : { "emptyText": "No data to display.", "forceFit": true, "getRowClass": Lino.getRowClass },
  params_panel_hidden : true,
  page_length : 20,
  stripeRows : true,
  title : "Users",
  disabled_fields_index : 6,
  initComponent : function() {
    this.ls_detail_handler = Lino.users.UsersOverview.detail;
    this.ls_insert_handler = Lino.users.UsersOverview.insert;
    var ww = this.containing_window;
    var username2194 = new Ext.form.TextField({ "allowBlank": false, "maxLength": 30, "selectOnFocus": true });
    var user_type2195 = new Lino.ChoicesFieldElement({ "forceSelection": true, "selectOnFocus": true, "store": [['','<br>']].concat(Lino.users.UserTypes) });
    var language2196 = new Lino.ChoicesFieldElement({ "selectOnFocus": true, "store": [ [ "en", "English" ], [ "fr", "French" ] ] });
    this.before_row_edit = function(record) {
    };
    this.ls_columns = [ { "colIndex": 0, "dataIndex": "username", "editable": true, "editor": username2194, "filter": { "type": "string" }, "header": "Username", "listeners": { "render": Lino.quicktip_renderer("","(users.UsersOverview.username) Must be unique and cannot be empty.") }, "sortable": true, "tooltip": "Must be unique and cannot be empty.", "width": Lino.chars2width(22) }, { "colIndex": 1, "dataIndex": "user_type", "editable": true, "editor": user_type2195, "filter": { "options": [ "000 (000 (Anonymous))", "100 (100 (User))", "200 (200 (Collector))", "300 (300 (Project manager))", "800 (800 (Staff))", "900 (900 (Administrator))" ], "type": "list" }, "header": "User type", "listeners": { "render": Lino.quicktip_renderer("","(users.UsersOverview.user_type) The user_type of a user is what defines her or his permissions.") }, "sortable": false, "tooltip": "The user_type of a user is what defines her or his permissions.", "width": Lino.chars2width(8) }, { "colIndex": 2, "dataIndex": "language", "editable": true, "editor": language2196, "filter": { "type": "string" }, "header": "Language", "listeners": { "render": Lino.quicktip_renderer("","(users.UsersOverview.language) ") }, "sortable": false, "tooltip": "", "width": Lino.chars2width(21) } ];
    Lino.users.UsersOverview.GridPanel.superclass.initComponent.call(this);
  }
});

Lino.users.UsersOverview.show_as_html = function(rp, is_main, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, is_main, "/users/UsersOverview", "GET", pk, "show_as_html", params, Lino.get_current_grid_config);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.UsersOverview.as_pdf = function(rp, is_main, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, is_main, "/users/UsersOverview", "GET", pk, "as_pdf", params, Lino.get_current_grid_config);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.UsersOverview.as_pdf_p = function(rp, is_main, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, is_main, "/users/UsersOverview", "GET", pk, "as_pdf_p", params, Lino.get_current_grid_config);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.UsersOverview.export_excel = function(rp, is_main, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, is_main, "/users/UsersOverview", "GET", pk, "export_excel", params, Lino.get_current_grid_config);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.users.UsersOverview.insertPanel = Ext.extend(Lino.users.Users.InsertFormPanel,{
  empty_title: "New",
  hide_navigator: true,
  params_panel_hidden: true,
  save_action_name: "submit_insert",
  ls_bbar_actions: [  ],
  ls_url: "/users/UsersOverview",
  action_name: "insert",
  default_record_id: -99999,
  initComponent : function() {
    this.ls_detail_handler = Lino.users.UsersOverview.detail;
    this.ls_insert_handler = Lino.users.UsersOverview.insert;
    Lino.users.UsersOverview.insertPanel.superclass.initComponent.call(this);
  }
});

Lino.users.UsersOverview.insert = new Lino.WindowAction({ "autoHeight": true, "draggable": true, "maximizable": true, "maximized": false, "modal": true, "width": Lino.chars2width(60) }, function(){
  var p = { "hide_top_toolbar": true, "is_main_window": true };
  return new Lino.users.UsersOverview.insertPanel(p);
});
Lino.users.UsersOverview.submit_insert = function(rp, is_main, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, is_main, "/users/UsersOverview", "POST", pk, "submit_insert", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.users.UsersOverview.detailPanel = Ext.extend(Lino.users.Users.DetailFormPanel,{
  empty_title: "Detail",
  params_panel_hidden: true,
  save_action_name: "submit_detail",
  ls_bbar_actions: [ { "auto_save": true, "itemId": "change_password", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Change the password of this user.") }, "menu_item_text": "Change password", "overflowText": "Change password", "panel_btn_handler": Lino.param_action_handler(Lino.users.Users.change_password), "text": " <font size=\"4\">\u2731</font>" }, { "auto_save": true, "itemId": "sign_in", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Open a window which asks for username and password and which\nauthenticates as this user when submitted.") }, "menu_item_text": "Sign in", "overflowText": "Sign in", "panel_btn_handler": Lino.param_action_handler(Lino.users.UsersOverview.sign_in), "text": "Sign in" }, { "auto_save": true, "itemId": "sign_out", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Sign out the current user and return to the welcome screen for\nanonymous visitors.") }, "menu_item_text": "Sign out", "overflowText": "Sign out", "panel_btn_handler": Lino.list_action_handler('/users/UsersOverview','sign_out','GET',null), "text": "Sign out" }, { "auto_save": true, "itemId": "update_widgets", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Create or update the dashboard widgets for this user.") }, "menu_item_text": "Update widgets", "overflowText": "Update widgets", "panel_btn_handler": Lino.row_action_handler('update_widgets','GET',null), "text": "\u00a0\u26a1\u00a0" } ],
  ls_url: "/users/UsersOverview",
  action_name: "detail",
  initComponent : function() {
    this.ls_detail_handler = Lino.users.UsersOverview.detail;
    this.ls_insert_handler = Lino.users.UsersOverview.insert;
    Lino.users.UsersOverview.detailPanel.superclass.initComponent.call(this);
  }
});

Lino.users.UsersOverview.detail = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  return new Lino.users.UsersOverview.detailPanel(p);
});
Lino.users.UsersOverview.delete_selected = function(rp, is_main, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, is_main, "/users/UsersOverview", "GET", pk, "delete_selected", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.UsersOverview.grid = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  p.params_panel = new Lino.users.Users.ParamsPanel({});
  return new Lino.users.UsersOverview.GridPanel(p);
});
Lino.users.UsersOverview.sign_out = function(rp, is_main, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, is_main, "/users/UsersOverview", "GET", pk, "sign_out", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.UsersOverview.update_widgets = function(rp, is_main, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, is_main, "/users/UsersOverview", "GET", pk, "update_widgets", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.UsersOverview.submit_detail = function(rp, is_main, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, is_main, "/users/UsersOverview", "PUT", pk, "submit_detail", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.about.About.showPanel = Ext.extend(Lino.about.About.DetailFormPanel,{
  empty_title: "About",
  hide_navigator: true,
  params_panel_hidden: true,
  save_action_name: "submit_detail",
  ls_bbar_actions: [  ],
  ls_url: "/about/About",
  initComponent : function() {
    this.ls_detail_handler = Lino.about.About.show;
    Lino.about.About.showPanel.superclass.initComponent.call(this);
  }
});

Lino.about.About.show = new Lino.WindowAction({ "draggable": true, "height": Lino.rows2height(20), "maximizable": true, "maximized": false, "modal": true, "width": Lino.chars2width(60) }, function(){
  var p = { "hide_top_toolbar": true, "is_main_window": true };
  return new Lino.about.About.showPanel(p);
});
