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

// lino.js --- generated Thu Mar 16 14:56:12 2017 by Lino Care 2017.2.0 for Anonym.
Ext.BLANK_IMAGE_URL = '/static/ext-3.3.1/resources/images/default/s.gif';
LANGUAGE_CHOICES = [ [ "en", "Englisch" ], [ "de", "Deutsch" ], [ "fr", "Franz\u00f6sisch" ] ];
MEDIA_URL = "/media/";

// 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();});
};


// 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);  


/**
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('20120203 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.extend({'X-CSRFToken': Ext.util.Cookies.get('csrftoken')});
     }                        
   }
}, this);


/*
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("20120224 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.subst_user_field = new Ext.form.ComboBox({});
//~ Lino.subst_user = null;
Lino.insert_subst_user = function(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.show_login_window = function(on_login, username, password) {
  // console.log('20121103 show_login_window',arguments);
  //~ var current_window = Lino.current_window;
  if (typeof username != 'string') username = '';
  if (typeof password != 'string') password = '';
  if (Lino.login_window == null) {
    
      function do_login() { 
            Lino.viewport.loadMask.show()
            login_panel.getForm().submit({ 
                method:'POST', 
                waitTitle:'Connecting', 
                waitMsg:'Sending data...',
                success:function(){ 
                  Lino.login_window.hide();
                  Lino.handle_home_button();
                  Lino.viewport.loadMask.hide();
                  if (typeof on_login == 'string') {
                      Lino.load_url(on_login);
                  } 
                },
                failure: function(form,action) { 
                  Lino.on_submit_failure(form, action);
                  Lino.viewport.loadMask.hide()
                }
            }); 
      };
    
      var login_button = new Ext.Button({ 
        text:"Anmelden",
        formBind: true,	 
        // Function that fires when user clicks the button 
        handler: do_login});
    
      var login_panel = new Ext.FormPanel({ 
        //~ inspired by http://www.sencha.com/learn/a-basic-login/
        autoHeight:true,
        labelWidth:90,
        url:'/auth', 
        frame:true, 
        defaultType:'textfield',
        monitorValid:true,
        items:[{ 
            fieldLabel:"Benutzername", 
            id: 'username',
            name:'username', 
            value: username, 
            autoHeight:true,
            allowBlank:false 
        },{ 
            fieldLabel:"Passwort", 
            id:'password', 
            name:'password', 
            value: password, 
            inputType:'password', 
            autoHeight:true,
            allowBlank:false 
        }],        
        buttons:[ login_button ]});
        
      Lino.login_window = new Ext.Window({
          layout:'fit',
          defaultButton: 'username',
          width:300,
          title:"Anmelden", 
          autoHeight:true,
          modal: true,
          closeAction: "hide",
          keys: {
            key: Ext.EventObject.ENTER,
            fn: function() { do_login()}
          },
          items: [login_panel] });
  } else {
      var fld = Lino.login_window.items.first().form.findField('username');
      fld.setValue(username);
      var fld = Lino.login_window.items.first().form.findField('password');
      fld.setValue(password);
  };
  Lino.login_window.show();
};

Lino.logout = function(id,name) {
    Lino.call_ajax_action(
        Lino.viewport, 'GET', 
        '/auth',
        {}, 'logout', undefined, undefined,
        function(){Lino.reload();})
}

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.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,
  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;
    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);
    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:"Parameter-Panel ein- bzw. ausblenden",
          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]);
        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);
          } 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);
    }
  },
  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:"Bitte warten..."});
      //~ 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) {
                  //~ Ext.MessageBox.alert('Alert',result.alert_msg);
                  Ext.MessageBox.alert('Alert',result.message);
              } 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 action = {
        url : '/api/main_html',
        waitMsg: "Bitte warten...",
        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 used 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);
        ww.window.main_item.set_status(ww.status , cw.id);
    }
    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 2016.12.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("Dieses Feld ist deaktiviert");
          //~ 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',
  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: 'Datum im Format JJJJ-MM-TT eingeben (Nullen für unbekannte Teile)'
  });


//~ 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,{
    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 = {

    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;

        switch(k){
            case e.ESC:
            case e.PAGE_UP:
            case e.PAGE_DOWN:
                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);
                }else{
                    newCell = walk(r, c + 1, 1);
                }
                break;
            case e.HOME:
                if (! (g.isEditor && g.editing)) {
                  if (!e.hasModifier()){
                      newCell = [r, 0];
                      //~ console.log('home',newCell);
                      break;
                  }else if(e.ctrlKey){
                      var t = g.getTopToolbar();
                      var activePage = Math.ceil((t.cursor + t.pageSize) / t.pageSize);
                      if (activePage > 1) {
                          e.stopEvent();
                          t.moveFirst();
                          return;
                      }
                      newCell = [0, c];
                      break;
                  }
                }
            case e.END:
                if (! (g.isEditor && g.editing)) {
                  c = g.colModel.getColumnCount()-1;
                  if (!e.hasModifier()) {
                      newCell = [r, c];
                      //~ console.log('end',newCell);
                      break;
                  }else if(e.ctrlKey){
                      var t = g.getTopToolbar();
                      var d = t.getPageData();
                      if (d.activePage < d.pages) {
                          e.stopEvent();
                          var self = this;
                          t.on('change',function(tb,pageData) {
                              var r = g.store.getCount()-2;
                              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.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);
            //             return;
            //         }
            //         break;
            //     }

            case e.ENTER:
                e.stopEvent();
                g.onCellDblClick(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) { console.log(arg.stack)};
};

//~ 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', 'Form fields may not be submitted with invalid values');
            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: "Dieses Panel in eigenem Fenster öffnen", 
    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.xcallback) {
        //~ var config = {title:"Bestätigung"};
        var config = {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,
            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.");
              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 = "Warnung";
        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 = "Alarm";
            Ext.MessageBox.alert(result.alert, result.message);
        } 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();
        }
    }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: "Bitte warten...",
    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.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.QuickTip, {
    //~ dismissDelay: 0,
//~ });
  
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 // 20130129
          var t = c.getEl();
    // if (title == 'a2btn') console.log(20160829, c, t, body);
    //~ t.dismissDelay = 0;
    Ext.QuickTips.register({
      target: t,
      //~ cls: 'lino-quicktip-classical',
      dismissDelay: 0,
      //~ autoHide: false,
      showDelay: 50,      // Show 50ms 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,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
          };
      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[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;
      }
    }
    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("Aktion nicht verfügbar auf dem 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) {
      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.id;
      };
      p.sr = rs;
  }
  
  // console.log("20140516 Lino.call_ajax_action", p, actionName, step);
  
  if (panel.loadMask) panel.loadMask.show(); 
    
  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 p = {};
  var fn = function(panel, btn, step) {
      // 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 p = {};
  var url = '/api' + ls_url
  var fn = function(panel,btn,step) {
      //~ 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, 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);
  if (!params) params = {};
  if (preprocessor) {
      var p = preprocessor(); 
      Ext.apply(params, p);
  }
  if (panel) 
      Ext.apply(params, panel.get_base_params());
  var fn = function(panel, btn, step) {
    Lino.call_ajax_action(panel, meth, url, params, actionName, step, fn);
  }
  fn(panel, null, null);
}

Lino.put = function(requesting_panel, pk, data) {
    var panel = Ext.getCmp(requesting_panel);
    //~ var panel = null; // 20131026
    var p = {};
    p.an = 'put'; // SubmitDetail.action_name

    Ext.apply(p,data);
    var req = {
        params:p
        ,waitMsg: 'Saving your data...'
        ,scope: panel
        ,success: Lino.action_handler( panel, function(result) { 
            panel.refresh();
        })
        ,failure: Lino.ajax_error_handler(panel)
    };
    req.method = 'PUT';
    req.url = '/api' + panel.ls_url + '/' + pk;
    if (panel.loadMask) panel.loadMask.show(); 
    Ext.Ajax.request(req);
}



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);
    //~ 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",
  constructor : function(config){
    config.bbar = [
        {text: 'OK', handler: this.on_ok, scope: this},
        {text: 'Cancel', handler: this.on_cancel, scope: this}
    ];
    Lino.ActionFormPanel.superclass.constructor.call(this, config);
  }
  //~ ,initComponent : function(){
    //~ 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;
    // 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(
          panel, 'GET', url, p, actionName, step, fn); //  , on_success);
    }
    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();
    if (status == undefined) status = {};
    //~ if (status.param_values) 
    this.set_field_values(status.field_values);
    if (status.base_params) this.set_base_params(status.base_params);
    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 }
      ]
      
      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('jumpto_select',arguments);
              this.goto_record_id(record.id);
            }
          },
          emptyText: "Gehe zu Datensatz"
        })
        this.tbar = this.tbar.concat([this.record_selector]);
        
        this.tbar = this.tbar.concat([
          this.first = new Ext.Toolbar.Button({
              tooltip:"Erster",disabled:true,
              handler:this.moveFirst,scope:this,iconCls:'x-tbar-page-first'}),
          this.prev = new Ext.Toolbar.Button({
              tooltip:"Voriger",disabled:true,
              handler:this.movePrev,scope:this,iconCls:'x-tbar-page-prev'}),
          this.next = new Ext.Toolbar.Button({
              tooltip:"Nächster",disabled:true,
              handler:this.moveNext,scope:this,iconCls:'x-tbar-page-next'}),
          this.last = new Ext.Toolbar.Button({
              tooltip:"Letzter",disabled:true,
              handler:this.moveLast,scope:this,iconCls:'x-tbar-page-last'})
        ]);
      }
      this.tbar = this.add_params_panel(this.tbar);
      
      //~ console.log(20101117,this.containing_window.refresh);
      this.tbar = this.tbar.concat([
        {
          //~ text:'Refresh',
          handler:function(){ this.do_when_clean(false,this.refresh.createDelegate(this)) },
          iconCls: 'x-tbar-loading',
          tooltip:"Datensatz neu laden",
          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:"Bitte warten..."});
    },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 || 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 = {title:"Bestätigung"};
          config.buttons = Ext.MessageBox.YESNOCANCEL;
          config.msg = "Änderungen in diesem Datensatz speichern?";
          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);
    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);
        }
      },
      failure: Lino.ajax_error_handler(this)
    });
  }

  ,abandon : function () {
    Ext.MessageBox.alert('Note',
      "Keine weiteren Datensätze zu sehen. Detail-Fenster wird geschlossen.");
    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();
      this.form.my_loadRecord(record.data);
      this.set_window_title(record.title);
      //~ this.getBottomToolbar().enable();
      var da = record.data.disabled_actions;
      if (da) {
          //~ console.log('20120528 disabled_actions =',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 (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);
          this.prev.setDisabled(!record.navinfo.prev);
          this.next.setDisabled(!record.navinfo.next);
          this.last.setDisabled(!record.navinfo.last);
          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);
    this.before_row_edit(record);
    // console.log('20140917 gonna call after', after);
    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();
    if (!rec) { 
        Lino.notify("Sorry, no current record."); 
        return; 
    }
    var panel = this;
    if (this.has_file_upload) this.form.fileUpload = true;
    this.loadMask.show();
    var p = {};
    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();
  }
  ,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, 
          handler: this.on_cancel, scope:this });
      wincfg.keys.push({
          key: 's', ctrl: true, 
             stopEvent: true, handler: this.on_ok, 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:"Bitte warten..."},
  
  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);
    //~ }
    
  },
  
  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);
    var h = this.keyhandlers[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:on_proxy_load} 
      //~ ,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);
        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;
    }
    
    if (!this.hide_top_toolbar) {  
      var tbar = [ 
        this.quick_search_field = new Ext.form.TextField({ 
          //~ fieldLabel: "Search"
          listeners: { 
            scope:this_
            //~ ,change:this_.search_change
            
            ,render: Lino.quicktip_renderer("Schnellsuche","Hier Text eingeben für Schnellsuche.")
            
            //~ ,keypress: this.search_keypress 
            ,blur: function() { this.is_searching = false}
          }
          ,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:"Ansicht",
            menu: menu,
            tooltip:"Andere Ansicht auswählen"
          }
        ]);
      }
      
      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: "Seite",
        afterPageText: "von {0}",
        displayMsg: "Zeilen {0} bis {1} von {2}",
        firstText: "Erste Seite",
        lastText: "Letzte Seite",
        prevText: "Vorige Seite",
        nextText: "Nächste Seite",
        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) {  
            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;
    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("Dieser Datensatz ist deaktiviert");
      return;
    }
    if(e.record.data.disabled_fields && e.record.data.disabled_fields[e.field]) {
      e.cancel = true;
      Lino.notify("Dieses Feld ist deaktiviert");
      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);
              if (e.record.phantom) {
                  // console.log("20140728 gonna call Store.insert()", self.getStore(), e.row, r.records);
                  self.getStore().insert(e.row, r.records);
              }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
              */
              //~ 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) {
  
  var da = grid.store.reader.arrayData.rows[row][grid.disabled_actions_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: false,
  selectOnFocus: true, // select any existing text in the field immediately on focus.
  submitValue: true,
  displayField: 'text', // 'text', 
  valueField: 'value', // 'value',
  
  //~ initComponent : Ext.form.ComboBox.prototype.initComponent.createSequence(function() {
  initComponent : function(){
      this.contextParams = {};
      //~ Ext.form.ComboBox.initComponent(this);
      Lino.ComboBox.superclass.initComponent.call(this);
  },
  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') 
            //~ console.log(this.name,'.setValue',v,'got text ',text,' from record ',record);
        } 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) {
      //~ 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: 2, // 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" }
      ];
      if (this.main_item.content_type && this.main_item.action_name != 'insert') {
        config.tools = [ {
          handler: Lino.help_text_editor,
          qtip: "Hilfetexte der Eingabefelder dieser Tabelle bearbeiten",
          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() { 
        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('20120918 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))){
                    field.setValue(record_data[id], record_data);
                    if(this.trackResetOnLoad){
                        field.originalValue = field.getValue();
                        //~ if (field.hiddenField) {
                          //~ field.hiddenField.originalValue = field.hiddenField.value;
                        //~ }
                    }
                }
            }
        }
        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("Kann MTI-Kind nicht anzeigen wenn Checkbox abgeschlatet ist.");
    }
  } 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.modlib.comments (needed_by=lino_noi.projects.care.lib.tickets):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","Zeigt Informationen \u00fcber diese Site an.") }, "text": "Info" } ] }, "text": "Site" }, { "handler": function() {Lino.handle_home_button()}, "text": "Startseite" } ];
Ext.namespace('Lino.system.SiteConfigs')
Ext.namespace('Lino.gfks.ContentTypes')
Ext.namespace('Lino.gfks.HelpTexts')
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.topics.TopicGroups')
Ext.namespace('Lino.topics.Topics')
Ext.namespace('Lino.topics.AllTopics')
Ext.namespace('Lino.topics.Interests')
Ext.namespace('Lino.topics.AllInterests')
Ext.namespace('Lino.votes.Votes')
Ext.namespace('Lino.votes.AllVotes')
Ext.namespace('Lino.votes.MyVotes')
Ext.namespace('Lino.votes.MyOffers')
Ext.namespace('Lino.votes.MyTasks')
Ext.namespace('Lino.votes.MyWatched')
Ext.namespace('Lino.excerpts.ExcerptTypes')
Ext.namespace('Lino.excerpts.Excerpts')
Ext.namespace('Lino.excerpts.AllExcerpts')
Ext.namespace('Lino.excerpts.MyExcerpts')
Ext.namespace('Lino.comments.CommentTypes')
Ext.namespace('Lino.comments.Comments')
Ext.namespace('Lino.comments.MyComments')
Ext.namespace('Lino.comments.CommentsByX')
Ext.namespace('Lino.comments.AllComments')
Ext.namespace('Lino.comments.RecentComments')
Ext.namespace('Lino.tickets.ProjectTypes')
Ext.namespace('Lino.tickets.TicketTypes')
Ext.namespace('Lino.tickets.Projects')
Ext.namespace('Lino.tickets.AllProjects')
Ext.namespace('Lino.tickets.TopLevelProjects')
Ext.namespace('Lino.tickets.Competences')
Ext.namespace('Lino.tickets.AllCompetences')
Ext.namespace('Lino.tickets.MyCompetences')
Ext.namespace('Lino.tickets.Links')
Ext.namespace('Lino.tickets.Tickets')
Ext.namespace('Lino.tickets.AllTickets')
Ext.namespace('Lino.tickets.SuggestedTickets')
Ext.namespace('Lino.tickets.UnassignedTickets')
Ext.namespace('Lino.tickets.PublicTickets')
Ext.namespace('Lino.tickets.TicketsToTriage')
Ext.namespace('Lino.tickets.TicketsToTalk')
Ext.namespace('Lino.tickets.ActiveTickets')
Ext.namespace('Lino.tickets.MyTickets')
Ext.namespace('Lino.tickets.Sites')
Ext.namespace('Lino.tickets.AllSites')
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.faculties.SkillTypes')
Ext.namespace('Lino.faculties.Skills')
Ext.namespace('Lino.faculties.AllSkills')
Ext.namespace('Lino.faculties.TopLevelSkills')
Ext.namespace('Lino.faculties.Offers')
Ext.namespace('Lino.faculties.MyOffers')
Ext.namespace('Lino.faculties.Demands')
Ext.namespace('Lino.changes.Changes')
Ext.namespace('Lino.notify.Messages')
Ext.namespace('Lino.notify.AllMessages')
Ext.namespace('Lino.notify.MyMessages')
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.dashboard.Widgets')
Ext.namespace('Lino.dashboard.AllWidgets')
Ext.namespace('Lino.users.OtherUsers')
Ext.namespace('Lino.users.Register')
Ext.namespace('Lino.users.NewUsers')
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.topics.TopicsByGroup')
Ext.namespace('Lino.topics.InterestsByPartner')
Ext.namespace('Lino.topics.InterestsByTopic')
Ext.namespace('Lino.votes.VotesByVotable')
Ext.namespace('Lino.excerpts.ExcerptsByType')
Ext.namespace('Lino.excerpts.ExcerptsByProject')
Ext.namespace('Lino.comments.CommentsByType')
Ext.namespace('Lino.comments.CommentsByRFC')
Ext.namespace('Lino.tickets.ProjectsByParent')
Ext.namespace('Lino.tickets.ProjectsByType')
Ext.namespace('Lino.tickets.ProjectsByCompany')
Ext.namespace('Lino.tickets.CompetencesByProject')
Ext.namespace('Lino.tickets.LinksByTicket')
Ext.namespace('Lino.tickets.DuplicatesByTicket')
Ext.namespace('Lino.tickets.TicketsByProject')
Ext.namespace('Lino.tickets.TicketsByEndUser')
Ext.namespace('Lino.tickets.TicketsByType')
Ext.namespace('Lino.tickets.TicketsByTopic')
Ext.namespace('Lino.tickets.TicketsByReporter')
Ext.namespace('Lino.tickets.SitesByPartner')
Ext.namespace('Lino.tickets.TicketsBySite')
Ext.namespace('Lino.tickets.TicketsByCompetence')
Ext.namespace('Lino.users.AuthoritiesGiven')
Ext.namespace('Lino.users.AuthoritiesTaken')
Ext.namespace('Lino.faculties.SkillsByParent')
Ext.namespace('Lino.faculties.SkillsByType')
Ext.namespace('Lino.faculties.OffersBySupplier')
Ext.namespace('Lino.faculties.OffersBySkill')
Ext.namespace('Lino.faculties.DemandsByDemander')
Ext.namespace('Lino.faculties.OffersByDemander')
Ext.namespace('Lino.faculties.AssignableWorkersByTicket')
Ext.namespace('Lino.uploads.UploadsByType')
Ext.namespace('Lino.dashboard.WidgetsByUser')
Ext.namespace('Lino.uploads.UploadsByController')
Ext.namespace('Lino.changes.ChangesByObject')
Ext.namespace('Lino.changes.ChangesByMaster')
Ext.namespace('Lino.excerpts.ExcerptsByOwner')
Ext.namespace('Lino.gfks.HelpTextsByModel')
Ext.namespace('Lino.about.Models')
Ext.namespace('Lino.about.FieldsByModel')
Ext.namespace('Lino.about.Inspector')
Ext.namespace('Lino.about.SourceFiles')
Ext.namespace('Lino.gfks.BrokenGFKs')
Ext.namespace('Lino.gfks.BrokenGFKsByModel')
Ext.namespace('Lino.about.About')
Ext.namespace('Lino.notify.MailModes')
Ext.namespace('Lino.changes.ChangeTypes')
Ext.namespace('Lino.uploads.UploadAreas')
Ext.namespace('Lino.excerpts.Shortcuts')
Ext.namespace('Lino.system.PeriodEvents')
Ext.namespace('Lino.printing.BuildMethods')
Ext.namespace('Lino.tickets.LinkTypes')
Ext.namespace('Lino.system.Genders')
Ext.namespace('Lino.uploads.Shortcuts')
Ext.namespace('Lino.tickets.ProjectEvents')
Ext.namespace('Lino.votes.Ratings')
Ext.namespace('Lino.votes.VoteStates')
Ext.namespace('Lino.notify.MessageTypes')
Ext.namespace('Lino.tickets.TicketEvents')
Ext.namespace('Lino.system.YesNo')
Ext.namespace('Lino.votes.VoteEvents')
Ext.namespace('Lino.users.UserTypes')
Ext.namespace('Lino.tickets.TicketStates')
Ext.namespace('Lino.contacts.PartnerEvents')
Ext.namespace('Lino.countries.PlaceTypes')
Ext.namespace('Lino.users.UserStates')

// ChoiceLists: 
Lino.notify.MailModes = [ [ "never", "Nie" ], [ "immediately", "Sofort" ], [ "often", "H\u00e4ufig" ], [ "daily", "T\u00e4glich" ], [ "weekly", "W\u00f6chentlich" ] ];
Lino.changes.ChangeTypes = [ [ "C", "Erstellen" ], [ "U", "Aktualisierung" ], [ "D", "L\u00f6schen" ], [ "R", "Remove child" ], [ "A", "Add child" ], [ "M", "Fusionieren" ] ];
Lino.uploads.UploadAreas = [ [ "90", "Uploads" ] ];
Lino.excerpts.Shortcuts = [  ];
Lino.system.PeriodEvents = [ [ "10", "Beginnt" ], [ "20", "Ist aktiv" ], [ "30", "Ended" ] ];
Lino.printing.BuildMethods = [ [ "latex", "LatexBuildMethod" ], [ "pisa", "PisaBuildMethod" ], [ "rtf", "RtfBuildMethod" ], [ "weasy2html", "WeasyHtmlBuildMethod" ], [ "weasy2pdf", "WeasyPdfBuildMethod" ], [ "appyodt", "AppyOdtBuildMethod" ], [ "appydoc", "AppyDocBuildMethod" ], [ "appypdf", "AppyPdfBuildMethod" ], [ "appyrtf", "AppyRtfBuildMethod" ] ];
Lino.tickets.LinkTypes = [ [ "10", "Ben\u00f6tigt" ], [ "20", "L\u00f6st aus" ], [ "30", "Suggeriert" ], [ "40", "Ersetzt" ] ];
Lino.system.Genders = [ [ "M", "M\u00e4nnlich" ], [ "F", "Weiblich" ] ];
Lino.uploads.Shortcuts = [  ];
Lino.tickets.ProjectEvents = [ [ "started", "Beginnt" ], [ "active", "Ist aktiv" ], [ "ended", "Ended" ], [ "modified", "Bearbeitet" ] ];
Lino.votes.Ratings = [ [ "10", "Sehr gut" ], [ "20", "Gut" ], [ "30", "Ausreichend" ], [ "40", "Mangelhaft" ], [ "50", "Ungen\u00fcgend" ], [ "90", "Nicht bewertbar" ] ];
Lino.votes.VoteStates = [ [ "00", "Autor" ], [ "10", "Interesse" ], [ "20", "Kandidat" ], [ "30", "Zugewiesen" ], [ "40", "Erledigt" ], [ "50", "Bewertet" ], [ "60", "Storniert" ] ];
Lino.notify.MessageTypes = [ [ "100", "Systemereignis" ], [ "200", "\u00c4nderung" ], [ "300", "Action" ] ];
Lino.tickets.TicketEvents = [ [ "created", "Erstellt" ], [ "modified", "Bearbeitet" ] ];
Lino.system.YesNo = [ [ "y", "Ja" ], [ "n", "Nein" ] ];
Lino.votes.VoteEvents = [ [ "created", "Erstellt" ] ];
Lino.users.UserTypes = [ [ "000", "000 (Anonym)" ], [ "100", "100 (Benutzer)" ], [ "500", "500 (Vermittler)" ], [ "900", "900 (Verwalter)" ] ];
Lino.tickets.TicketStates = [ [ "10", "Neu" ], [ "15", "Besprechen" ], [ "20", "Open" ], [ "22", "Gestartet" ], [ "30", "Schl\u00e4ft" ], [ "40", "Bereit" ], [ "50", "Abgeschlossen" ], [ "60", "Storniert" ] ];
Lino.contacts.PartnerEvents = [  ];
Lino.countries.PlaceTypes = [ [ "10", "Bundesland" ], [ "11", "Division" ], [ "12", "Region" ], [ "13", "Gemeinschaft" ], [ "14", "Territorium" ], [ "20", "Regierungsbezirk" ], [ "21", "Provinz" ], [ "22", "Grafschaft" ], [ "23", "Unterregion" ], [ "24", "Departement" ], [ "25", "Arrondissement" ], [ "26", "Pr\u00e4fektur" ], [ "27", "Distrikt" ], [ "28", "Sektor" ], [ "50", "Stadt" ], [ "51", "Kleinstadt" ], [ "52", "Gemeinde" ], [ "54", "Pfarre" ], [ "55", "Stadtteil" ], [ "56", "Viertel" ], [ "61", "Ortschaft" ], [ "62", "Kleine Ortschaft" ], [ "70", "Dorf" ] ];
Lino.users.UserStates = [ [ "10", "Neu" ], [ "20", "Aktiv" ], [ "30", "Inaktiv" ] ];

Lino.tickets.Competences.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  autoScroll: false,
  border: false,
  labelWidth: 63,
  hideCheckBoxLabels: true,
  frame: true,
  bodyBorder: false,
  labelAlign: "top",
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var user1 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "Autor", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(tickets.Competences.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Competences/user" }) }) });
    this.items = [ { "autoHeight": true, "items": user1, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user1 ];
    Lino.tickets.Competences.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.votes.Votes.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  autoScroll: false,
  autoHeight: true,
  border: false,
  hideCheckBoxLabels: true,
  frame: true,
  bodyBorder: false,
  labelAlign: "top",
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var user4 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "Abstimmender", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Voter","(votes.Votes.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/votes/Votes/user" }) }) });
    var mail_mode5 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Benachrichtigungen per E-Mail</span>", "forceSelection": true, "hiddenName": "mail_modeHidden", "listeners": { "render": Lino.quicktip_renderer("Email notification mode","(votes.Votes.mail_mode) Only rows having this mail mode.") }, "name": "mail_mode", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.notify.MailModes) });
    var state6 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Zustand</span>", "forceSelection": true, "hiddenName": "stateHidden", "listeners": { "render": Lino.quicktip_renderer("State","(votes.Votes.state) Only rows having this state.") }, "name": "state", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.votes.VoteStates) });
    var votable_state7 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Ticket-Zustand</span>", "forceSelection": true, "hiddenName": "votable_stateHidden", "listeners": { "render": Lino.quicktip_renderer("Ticket state","(votes.Votes.votable_state) Only rows whose Ticket has this state.") }, "name": "votable_state", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.tickets.TicketStates) });
    var ticket_user8 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Autor</span>", "hiddenName": "ticket_userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(votes.Votes.ticket_user) Only rows on votables whose author is this user.") }, "name": "ticket_user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/votes/Votes/ticket_user" }) }) });
    var main_1_panel9 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 25, "items": user4, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 17, "items": mail_mode5, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 15, "items": state6, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 15, "items": votable_state7, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": ticket_user8, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 216, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var start_date15 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Periode vom</span>", "listeners": { "render": Lino.quicktip_renderer("Period from","(votes.Votes.start_date) Start date of observed period") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date16 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">bis</span>", "listeners": { "render": Lino.quicktip_renderer("until","(votes.Votes.end_date) End date of observed period") }, "name": "end_date", "selectOnFocus": true, "value": null });
    var observed_event17 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Beobachtungskriterium</span>", "forceSelection": true, "hiddenName": "observed_eventHidden", "listeners": { "render": Lino.quicktip_renderer("Observed event","(votes.Votes.observed_event) There are two class attributes for defining a filter conditions\nwhich canot be removed by the user:") }, "name": "observed_event", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.votes.VoteEvents) });
    var exclude_ticket_user18 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Exclude author</span>", "hiddenName": "exclude_ticket_userHidden", "listeners": { "render": Lino.quicktip_renderer("Exclude author","(votes.Votes.exclude_ticket_user) Only rows on votables whose author is not this user.") }, "name": "exclude_ticket_user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/votes/Votes/exclude_ticket_user" }) }) });
    var main_2_panel19 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 23, "items": start_date15, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 23, "items": end_date16, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 17, "items": observed_event17, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 35, "items": exclude_ticket_user18, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 135, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    this.items = [ main_1_panel9, main_2_panel19 ];
    this.fields = [ user4, mail_mode5, state6, votable_state7, ticket_user8, start_date15, end_date16, observed_event17, exclude_ticket_user18 ];
    Lino.votes.Votes.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.comments.Comments.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  autoScroll: false,
  border: false,
  labelWidth: 63,
  hideCheckBoxLabels: true,
  frame: true,
  bodyBorder: false,
  labelAlign: "top",
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var user25 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "Autor", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(comments.Comments.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/comments/Comments/user" }) }) });
    this.items = [ { "autoHeight": true, "items": user25, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user25 ];
    Lino.comments.Comments.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.contacts.Partners.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  autoHeight: true,
  frame: true,
  layoutConfig: { "align": "stretchmax" },
  hideCheckBoxLabels: true,
  autoScroll: false,
  labelWidth: 135,
  border: false,
  bodyBorder: false,
  labelAlign: "top",
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var observed_event28 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Beobachtungskriterium</span>", "listeners": { "render": Lino.quicktip_renderer("Observed event","(contacts.Partners.observed_event) Extended filter criteria") }, "maxLength": 50, "name": "observed_event", "selectOnFocus": true });
    var start_date29 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Periode vom</span>", "listeners": { "render": Lino.quicktip_renderer("Period from","(contacts.Partners.start_date) Start date of observed period") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date30 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">bis</span>", "listeners": { "render": Lino.quicktip_renderer("until","(contacts.Partners.end_date) End date of observed period") }, "name": "end_date", "selectOnFocus": true, "value": null });
    this.items = [ { "autoHeight": true, "flex": 44, "items": observed_event28, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 27, "items": start_date29, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 27, "items": end_date30, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ observed_event28, start_date29, end_date30 ];
    Lino.contacts.Partners.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.users.Authorities.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  autoScroll: false,
  border: false,
  labelWidth: 63,
  hideCheckBoxLabels: true,
  frame: true,
  bodyBorder: false,
  labelAlign: "top",
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var user35 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "Autor", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(users.Authorities.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/users/Authorities/user" }) }) });
    this.items = [ { "autoHeight": true, "items": user35, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user35 ];
    Lino.users.Authorities.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.dashboard.Widgets.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  autoScroll: false,
  border: false,
  labelWidth: 63,
  hideCheckBoxLabels: true,
  frame: true,
  bodyBorder: false,
  labelAlign: "top",
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var user38 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "Autor", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(dashboard.Widgets.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/dashboard/Widgets/user" }) }) });
    this.items = [ { "autoHeight": true, "items": user38, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user38 ];
    Lino.dashboard.Widgets.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.tickets.MyTickets.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  autoScroll: false,
  autoHeight: true,
  border: false,
  hideCheckBoxLabels: true,
  frame: true,
  bodyBorder: false,
  labelAlign: "top",
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var user41 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "Autor", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(tickets.MyTickets.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/MyTickets/user" }) }) });
    var end_user42 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Person ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">End user</span>", "hiddenName": "end_userHidden", "listeners": { "render": Lino.quicktip_renderer("End user","(tickets.MyTickets.end_user) Only rows concerning this end user.") }, "name": "end_user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/MyTickets/end_user" }) }) });
    var site43 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Umfeld ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Umfeld</span>", "hiddenName": "siteHidden", "listeners": { "render": Lino.quicktip_renderer("Site","(tickets.MyTickets.site) Select a site if you want to see only tickets for this site.") }, "name": "site", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.tickets.Sites.detail,Lino.tickets.Sites.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/MyTickets/site" }) }) });
    var project44 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Projekt ausw\u00e4hlen...", "fieldLabel": "Projekt", "hiddenName": "projectHidden", "listeners": { "render": Lino.quicktip_renderer("Project","(tickets.MyTickets.project) ") }, "name": "project", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.tickets.Projects.detail,Lino.tickets.Projects.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/MyTickets/project" }) }) });
    var state45 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Zustand</span>", "forceSelection": true, "hiddenName": "stateHidden", "listeners": { "render": Lino.quicktip_renderer("State","(tickets.MyTickets.state) Only rows having this state.") }, "name": "state", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.tickets.TicketStates) });
    var main_1_panel46 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 21, "items": user41, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": end_user42, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": site43, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": project44, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 13, "items": state45, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 81, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var start_date52 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Periode vom</span>", "listeners": { "render": Lino.quicktip_renderer("Period from","(tickets.MyTickets.start_date) Start date of observed period") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date53 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">bis</span>", "listeners": { "render": Lino.quicktip_renderer("until","(tickets.MyTickets.end_date) End date of observed period") }, "name": "end_date", "selectOnFocus": true, "value": null });
    var observed_event54 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Beobachtungskriterium", "forceSelection": true, "hiddenName": "observed_eventHidden", "listeners": { "render": Lino.quicktip_renderer("Observed event","(tickets.MyTickets.observed_event) ") }, "name": "observed_event", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.tickets.TicketEvents) });
    var topic55 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Thema ausw\u00e4hlen...", "fieldLabel": "Thema", "hiddenName": "topicHidden", "listeners": { "render": Lino.quicktip_renderer("Topic","(tickets.MyTickets.topic) ") }, "name": "topic", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.topics.Topics.detail,Lino.topics.Topics.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/MyTickets/topic" }) }) });
    var feasable_by56 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Machbar durch</span>", "hiddenName": "feasable_byHidden", "listeners": { "render": Lino.quicktip_renderer("Feasable by","(tickets.MyTickets.feasable_by) Show only tickets for which I am competent.") }, "name": "feasable_by", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/MyTickets/feasable_by" }) }) });
    var show_active57 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Aktiv</span>", "forceSelection": true, "hiddenName": "show_activeHidden", "listeners": { "render": Lino.quicktip_renderer("Active","(tickets.MyTickets.show_active) Whether to show active tickets") }, "name": "show_active", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.YesNo) });
    var main_2_panel58 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 15, "items": start_date52, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 15, "items": end_date53, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 13, "items": observed_event54, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 23, "items": topic55, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 23, "items": feasable_by56, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 8, "items": show_active57, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 135, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    this.items = [ main_1_panel46, main_2_panel58 ];
    this.fields = [ user41, end_user42, site43, project44, state45, start_date52, end_date53, observed_event54, topic55, feasable_by56, show_active57 ];
    Lino.tickets.MyTickets.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.tickets.Tickets.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  autoScroll: false,
  autoHeight: true,
  border: false,
  hideCheckBoxLabels: true,
  frame: true,
  bodyBorder: false,
  labelAlign: "top",
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var user66 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "Autor", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(tickets.Tickets.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/user" }) }) });
    var end_user67 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Person ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">End user</span>", "hiddenName": "end_userHidden", "listeners": { "render": Lino.quicktip_renderer("End user","(tickets.Tickets.end_user) Only rows concerning this end user.") }, "name": "end_user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/end_user" }) }) });
    var assigned_to68 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Voted by</span>", "hiddenName": "assigned_toHidden", "listeners": { "render": Lino.quicktip_renderer("Voted by","(tickets.Tickets.assigned_to) Only tickets having a vote by 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, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/assigned_to" }) }) });
    var not_assigned_to69 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Not voted by</span>", "hiddenName": "not_assigned_toHidden", "listeners": { "render": Lino.quicktip_renderer("Not voted by","(tickets.Tickets.not_assigned_to) Only tickets having no vote by this user.") }, "name": "not_assigned_to", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/not_assigned_to" }) }) });
    var interesting_for70 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Partner ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Interesting for</span>", "hiddenName": "interesting_forHidden", "listeners": { "render": Lino.quicktip_renderer("Interesting for","(tickets.Tickets.interesting_for) Only tickets interesting for this partner.") }, "name": "interesting_for", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Partners.detail,Lino.contacts.Partners.insert)}, "pageSize": 20, "preferred_width": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/interesting_for" }) }) });
    var site71 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Umfeld ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Umfeld</span>", "hiddenName": "siteHidden", "listeners": { "render": Lino.quicktip_renderer("Site","(tickets.Tickets.site) Select a site if you want to see only tickets for this site.") }, "name": "site", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.tickets.Sites.detail,Lino.tickets.Sites.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/site" }) }) });
    var project72 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Projekt ausw\u00e4hlen...", "fieldLabel": "Projekt", "hiddenName": "projectHidden", "listeners": { "render": Lino.quicktip_renderer("Project","(tickets.Tickets.project) ") }, "name": "project", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.tickets.Projects.detail,Lino.tickets.Projects.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/project" }) }) });
    var state73 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Zustand</span>", "forceSelection": true, "hiddenName": "stateHidden", "listeners": { "render": Lino.quicktip_renderer("State","(tickets.Tickets.state) Only rows having this state.") }, "name": "state", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.tickets.TicketStates) });
    var has_project74 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Hat Projekt</span>", "forceSelection": true, "hiddenName": "has_projectHidden", "listeners": { "render": Lino.quicktip_renderer("Has project","(tickets.Tickets.has_project) Show only (or hide) tickets which have a project assigned.") }, "name": "has_project", "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": 12, "items": user66, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 12, "items": end_user67, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 12, "items": assigned_to68, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 12, "items": not_assigned_to69, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 12, "items": interesting_for70, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 12, "items": site71, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 12, "items": project72, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 7, "items": state73, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 4, "items": has_project74, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 144, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var show_assigned85 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Zugewiesen</span>", "forceSelection": true, "hiddenName": "show_assignedHidden", "listeners": { "render": Lino.quicktip_renderer("Assigned","(tickets.Tickets.show_assigned) Whether to show assigned tickets") }, "name": "show_assigned", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.YesNo) });
    var show_active86 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Aktiv</span>", "forceSelection": true, "hiddenName": "show_activeHidden", "listeners": { "render": Lino.quicktip_renderer("Active","(tickets.Tickets.show_active) Whether to show active tickets") }, "name": "show_active", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.YesNo) });
    var show_todo87 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Zu tun</span>", "forceSelection": true, "hiddenName": "show_todoHidden", "listeners": { "render": Lino.quicktip_renderer("To do","(tickets.Tickets.show_todo) Show only (or hide) tickets which are todo (i.e. state is New\nor ToDo).") }, "name": "show_todo", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.YesNo) });
    var show_private88 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Privat</span>", "forceSelection": true, "hiddenName": "show_privateHidden", "listeners": { "render": Lino.quicktip_renderer("Private","(tickets.Tickets.show_private) Show only (or hide) tickets that are marked private.") }, "name": "show_private", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.YesNo) });
    var start_date89 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Periode vom</span>", "listeners": { "render": Lino.quicktip_renderer("Period from","(tickets.Tickets.start_date) Start date of observed period") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date90 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">bis</span>", "listeners": { "render": Lino.quicktip_renderer("until","(tickets.Tickets.end_date) End date of observed period") }, "name": "end_date", "selectOnFocus": true, "value": null });
    var observed_event91 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Beobachtungskriterium", "forceSelection": true, "hiddenName": "observed_eventHidden", "listeners": { "render": Lino.quicktip_renderer("Observed event","(tickets.Tickets.observed_event) ") }, "name": "observed_event", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.tickets.TicketEvents) });
    var topic92 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Thema ausw\u00e4hlen...", "fieldLabel": "Thema", "hiddenName": "topicHidden", "listeners": { "render": Lino.quicktip_renderer("Topic","(tickets.Tickets.topic) ") }, "name": "topic", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.topics.Topics.detail,Lino.topics.Topics.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/topic" }) }) });
    var feasable_by93 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Machbar durch</span>", "hiddenName": "feasable_byHidden", "listeners": { "render": Lino.quicktip_renderer("Feasable by","(tickets.Tickets.feasable_by) Show only tickets for which I am competent.") }, "name": "feasable_by", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/feasable_by" }) }) });
    var main_2_panel94 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 6, "items": show_assigned85, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 6, "items": show_active86, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 6, "items": show_todo87, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 6, "items": show_private88, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 12, "items": start_date89, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 12, "items": end_date90, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 10, "items": observed_event91, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": topic92, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": feasable_by93, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 135, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    this.items = [ main_1_panel75, main_2_panel94 ];
    this.fields = [ user66, end_user67, assigned_to68, not_assigned_to69, interesting_for70, site71, project72, state73, has_project74, show_assigned85, show_active86, show_todo87, show_private88, start_date89, end_date90, observed_event91, topic92, feasable_by93 ];
    Lino.tickets.Tickets.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.notify.Messages.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  autoHeight: true,
  frame: true,
  layoutConfig: { "align": "stretchmax" },
  hideCheckBoxLabels: true,
  autoScroll: false,
  labelWidth: 108,
  border: false,
  bodyBorder: false,
  labelAlign: "top",
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var user105 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "Benutzer", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("User","(notify.Messages.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/notify/Messages/user" }) }) });
    var show_seen106 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Gelesen", "forceSelection": true, "hiddenName": "show_seenHidden", "listeners": { "render": Lino.quicktip_renderer("Seen","(notify.Messages.show_seen) ") }, "name": "show_seen", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.YesNo) });
    var start_date107 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Periode vom</span>", "listeners": { "render": Lino.quicktip_renderer("Period from","(notify.Messages.start_date) Start date of observed period") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date108 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">bis</span>", "listeners": { "render": Lino.quicktip_renderer("until","(notify.Messages.end_date) End date of observed period") }, "name": "end_date", "selectOnFocus": true, "value": null });
    this.items = [ { "autoHeight": true, "flex": 37, "items": user105, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 13, "items": show_seen106, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 24, "items": start_date107, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 24, "items": end_date108, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user105, show_seen106, start_date107, end_date108 ];
    Lino.notify.Messages.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.tickets.Projects.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  autoHeight: true,
  frame: true,
  layoutConfig: { "align": "stretchmax" },
  hideCheckBoxLabels: true,
  autoScroll: false,
  labelWidth: 144,
  border: false,
  bodyBorder: false,
  labelAlign: "top",
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var interesting_for114 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Partner ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Interesting for</span>", "hiddenName": "interesting_forHidden", "listeners": { "render": Lino.quicktip_renderer("Interesting for","(tickets.Projects.interesting_for) Only projects interesting for this partner.") }, "name": "interesting_for", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Partners.detail,Lino.contacts.Partners.insert)}, "pageSize": 20, "preferred_width": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Projects/interesting_for" }) }) });
    var start_date115 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Periode vom</span>", "listeners": { "render": Lino.quicktip_renderer("Period from","(tickets.Projects.start_date) Start date of observed period") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date116 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">bis</span>", "listeners": { "render": Lino.quicktip_renderer("until","(tickets.Projects.end_date) End date of observed period") }, "name": "end_date", "selectOnFocus": true, "value": null });
    var observed_event117 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Beobachtungskriterium", "forceSelection": true, "hiddenName": "observed_eventHidden", "listeners": { "render": Lino.quicktip_renderer("Observed event","(tickets.Projects.observed_event) ") }, "name": "observed_event", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.tickets.ProjectEvents) });
    this.items = [ { "autoHeight": true, "flex": 34, "items": interesting_for114, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 22, "items": start_date115, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 22, "items": end_date116, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 20, "items": observed_event117, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ interesting_for114, start_date115, end_date116, observed_event117 ];
    Lino.tickets.Projects.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.uploads.Uploads.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  autoHeight: true,
  frame: true,
  layoutConfig: { "align": "stretchmax" },
  hideCheckBoxLabels: true,
  autoScroll: false,
  labelWidth: 108,
  border: false,
  bodyBorder: false,
  labelAlign: "top",
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var start_date123 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Periode vom</span>", "listeners": { "render": Lino.quicktip_renderer("Period from","(uploads.Uploads.start_date) Start date of observed period") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date124 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">bis</span>", "listeners": { "render": Lino.quicktip_renderer("until","(uploads.Uploads.end_date) End date of observed period") }, "name": "end_date", "selectOnFocus": true, "value": null });
    var user125 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "Hochgeladen durch", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Uploaded by","(uploads.Uploads.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/uploads/Uploads/user" }) }) });
    var upload_type126 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Upload-Art ausw\u00e4hlen...", "fieldLabel": "Upload-Art", "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, "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_date123, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": end_date124, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": user125, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": upload_type126, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ start_date123, end_date124, user125, upload_type126 ];
    Lino.uploads.Uploads.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.tickets.SuggestedTickets.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  autoScroll: false,
  autoHeight: true,
  border: false,
  hideCheckBoxLabels: true,
  frame: true,
  bodyBorder: false,
  labelAlign: "top",
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var end_user132 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Person ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">End user</span>", "hiddenName": "end_userHidden", "listeners": { "render": Lino.quicktip_renderer("End user","(tickets.SuggestedTickets.end_user) Only rows concerning this end user.") }, "name": "end_user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/SuggestedTickets/end_user" }) }) });
    var feasable_by133 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Machbar durch</span>", "hiddenName": "feasable_byHidden", "listeners": { "render": Lino.quicktip_renderer("Feasable by","(tickets.SuggestedTickets.feasable_by) Show only tickets for which I am competent.") }, "name": "feasable_by", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/SuggestedTickets/feasable_by" }) }) });
    var site134 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Umfeld ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Umfeld</span>", "hiddenName": "siteHidden", "listeners": { "render": Lino.quicktip_renderer("Site","(tickets.SuggestedTickets.site) Select a site if you want to see only tickets for this site.") }, "name": "site", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.tickets.Sites.detail,Lino.tickets.Sites.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/SuggestedTickets/site" }) }) });
    var project135 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Projekt ausw\u00e4hlen...", "fieldLabel": "Projekt", "hiddenName": "projectHidden", "listeners": { "render": Lino.quicktip_renderer("Project","(tickets.SuggestedTickets.project) ") }, "name": "project", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.tickets.Projects.detail,Lino.tickets.Projects.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/SuggestedTickets/project" }) }) });
    var state136 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Zustand</span>", "forceSelection": true, "hiddenName": "stateHidden", "listeners": { "render": Lino.quicktip_renderer("State","(tickets.SuggestedTickets.state) Only rows having this state.") }, "name": "state", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.tickets.TicketStates) });
    var main_1_panel137 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 21, "items": end_user132, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": feasable_by133, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": site134, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": project135, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 13, "items": state136, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 108, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var show_assigned143 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Zugewiesen</span>", "forceSelection": true, "hiddenName": "show_assignedHidden", "listeners": { "render": Lino.quicktip_renderer("Assigned","(tickets.SuggestedTickets.show_assigned) Whether to show assigned tickets") }, "name": "show_assigned", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.YesNo) });
    var show_active144 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Aktiv</span>", "forceSelection": true, "hiddenName": "show_activeHidden", "listeners": { "render": Lino.quicktip_renderer("Active","(tickets.SuggestedTickets.show_active) Whether to show active tickets") }, "name": "show_active", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.YesNo) });
    var topic145 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Thema ausw\u00e4hlen...", "fieldLabel": "Thema", "hiddenName": "topicHidden", "listeners": { "render": Lino.quicktip_renderer("Topic","(tickets.SuggestedTickets.topic) ") }, "name": "topic", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.topics.Topics.detail,Lino.topics.Topics.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/SuggestedTickets/topic" }) }) });
    var main_2_panel146 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 20, "items": show_assigned143, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 20, "items": show_active144, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 58, "items": topic145, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 81, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    this.items = [ main_1_panel137, main_2_panel146 ];
    this.fields = [ end_user132, feasable_by133, site134, project135, state136, show_assigned143, show_active144, topic145 ];
    Lino.tickets.SuggestedTickets.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.faculties.Offers.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  autoScroll: false,
  border: false,
  labelWidth: 45,
  hideCheckBoxLabels: true,
  frame: true,
  bodyBorder: false,
  labelAlign: "top",
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var user151 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "Benutzer", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("User","(faculties.Offers.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/faculties/Offers/user" }) }) });
    this.items = [ { "autoHeight": true, "items": user151, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ user151 ];
    Lino.faculties.Offers.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.about.Inspector.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  autoHeight: true,
  frame: true,
  layoutConfig: { "align": "stretchmax" },
  hideCheckBoxLabels: true,
  autoScroll: false,
  labelWidth: 153,
  border: false,
  bodyBorder: false,
  labelAlign: "top",
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var inspected154 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Inspected object", "listeners": { "render": Lino.quicktip_renderer("Inspected object","(about.Inspector.inspected) ") }, "maxLength": 100, "name": "inspected", "selectOnFocus": true });
    var show_callables155 = new Ext.form.Checkbox({ "anchor": "-20", "autoHeight": true, "boxLabel": "show callables", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("show callables","(about.Inspector.show_callables) ") }, "name": "show_callables", "selectOnFocus": true });
    this.items = [ { "autoHeight": true, "flex": 67, "items": inspected154, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 32, "items": show_callables155, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ inspected154, show_callables155 ];
    Lino.about.Inspector.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.changes.Changes.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  autoScroll: false,
  border: false,
  hideCheckBoxLabels: true,
  frame: true,
  bodyBorder: false,
  labelAlign: "top",
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var date159 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Only changes from", "listeners": { "render": Lino.quicktip_renderer("Only changes from","(changes.Changes.date) ") }, "name": "date", "selectOnFocus": true });
    var user160 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "Benutzer", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("User","(changes.Changes.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/changes/Changes/user" }) }) });
    var change_type161 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "\u00c4nderungsart", "forceSelection": false, "hiddenName": "change_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Change Type","(changes.Changes.change_type) ") }, "name": "change_type", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.changes.ChangeTypes) });
    var object_type162 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Datenbankmodell ausw\u00e4hlen...", "fieldLabel": "Object type", "hiddenName": "object_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Object type","(changes.Changes.object_type) ") }, "name": "object_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.gfks.ContentTypes.detail,Lino.gfks.ContentTypes.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/changes/Changes/object_type" }) }) });
    var object_id163 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Object ID", "hiddenName": "object_idHidden", "listeners": { "render": Lino.quicktip_renderer("Object ID","(changes.Changes.object_id) ") }, "name": "object_id", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/changes/Changes/object_id" }) }) });
    var main_1_panel164 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 16, "items": date159, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": user160, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": change_type161, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": object_type162, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 12, "items": object_id163, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 162, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    this.items = [ main_1_panel164 ];
    this.fields = [ date159, user160, change_type161, object_type162, object_id163 ];
    Lino.changes.Changes.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.excerpts.Excerpts.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  autoScroll: false,
  autoHeight: true,
  border: false,
  hideCheckBoxLabels: true,
  frame: true,
  bodyBorder: false,
  labelAlign: "top",
  layout: 'form',
  autoHeight: true,
  initComponent : function() {
    var start_date171 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Periode vom</span>", "listeners": { "render": Lino.quicktip_renderer("Period from","(excerpts.Excerpts.start_date) Start date of observed period") }, "name": "start_date", "selectOnFocus": true, "value": null });
    var end_date172 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">bis</span>", "listeners": { "render": Lino.quicktip_renderer("until","(excerpts.Excerpts.end_date) End date of observed period") }, "name": "end_date", "selectOnFocus": true, "value": null });
    var pcertifying173 = 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_panel174 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 39, "items": start_date171, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 39, "items": end_date172, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": pcertifying173, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 180, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var user178 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "Autor", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Author","(excerpts.Excerpts.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/user" }) }) });
    var excerpt_type179 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Auszugsart ausw\u00e4hlen...", "fieldLabel": "Auszugsart", "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, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/excerpt_type" }) }) });
    var main_2_panel180 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": user178, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": excerpt_type179, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 117, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    this.items = [ main_1_panel174, main_2_panel180 ];
    this.fields = [ start_date171, end_date172, pcertifying173, user178, excerpt_type179 ];
    Lino.excerpts.Excerpts.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.users.Users.ParamsPanel = Ext.extend(Ext.form.FormPanel, {
  autoHeight: true,
  frame: true,
  layoutConfig: { "align": "stretchmax" },
  hideCheckBoxLabels: true,
  autoScroll: false,
  labelWidth: 135,
  border: false,
  bodyBorder: false,
  labelAlign: "top",
  layout: 'hbox',
  autoHeight: true,
  initComponent : function() {
    var profile184 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Benutzerart", "forceSelection": true, "hiddenName": "profileHidden", "listeners": { "render": Lino.quicktip_renderer("User type","(users.Users.profile) ") }, "name": "profile", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.users.UserTypes) });
    var end_date185 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">bis</span>", "listeners": { "render": Lino.quicktip_renderer("until","(users.Users.end_date) End date of observed period") }, "name": "end_date", "selectOnFocus": true, "value": null });
    var gender186 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Geschlecht</span>", "forceSelection": true, "hiddenName": "genderHidden", "listeners": { "render": Lino.quicktip_renderer("Gender","(users.Users.gender) Show only persons with the given gender.") }, "name": "gender", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.Genders) });
    var observed_event187 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Beobachtungskriterium</span>", "listeners": { "render": Lino.quicktip_renderer("Observed event","(users.Users.observed_event) Extended filter criteria") }, "maxLength": 50, "name": "observed_event", "selectOnFocus": true });
    var aged_from188 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Alter von</span>", "listeners": { "render": Lino.quicktip_renderer("Aged from","(users.Users.aged_from) Select only persons aged at least the given number of years.") }, "name": "aged_from", "selectOnFocus": true });
    var user_state189 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "User state", "forceSelection": true, "hiddenName": "user_stateHidden", "listeners": { "render": Lino.quicktip_renderer("User state","(users.Users.user_state) ") }, "name": "user_state", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.users.UserStates) });
    var start_date190 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Periode vom</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 aged_to191 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Alter bis</span>", "listeners": { "render": Lino.quicktip_renderer("Aged to","(users.Users.aged_to) Select only persons aged at most the given number of years.") }, "name": "aged_to", "selectOnFocus": true });
    this.items = [ { "autoHeight": true, "flex": 22, "items": profile184, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 13, "items": end_date185, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 9, "items": gender186, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": observed_event187, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 5, "items": aged_from188, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 11, "items": user_state189, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 13, "items": start_date190, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 5, "items": aged_to191, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ profile184, end_date185, gender186, observed_event187, aged_from188, user_state189, start_date190, aged_to191 ];
    Lino.users.Users.ParamsPanel.superclass.initComponent.call(this);
  }
});


Lino.users.Users.verify_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  autoScroll: false,
  autoHeight: true,
  border: false,
  layout: "form",
  labelWidth: 162,
  hideCheckBoxLabels: true,
  frame: true,
  bodyBorder: false,
  labelAlign: "top",
  action_name: 'verify',
  ls_url: "/users/Users",
  window_title: "Verify",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.email206 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "E-Mail-Adresse", "listeners": { "render": Lino.quicktip_renderer("e-mail address","(Verify.email) ") }, "maxLength": 254, "name": "email", "selectOnFocus": true });
    this.verification_code207 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Verification code", "listeners": { "render": Lino.quicktip_renderer("Verification code","(Verify.verification_code) ") }, "maxLength": 50, "name": "verification_code", "selectOnFocus": true });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.email206, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.verification_code207, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.email206, this.verification_code207 ];
    Lino.users.Users.verify_ActionFormPanel.superclass.initComponent.call(this);
  }
});


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


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


Lino.votes.Votes.wf5_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  autoScroll: false,
  border: false,
  layout: "vbox",
  labelWidth: 72,
  hideCheckBoxLabels: true,
  frame: true,
  layoutConfig: { "align": "stretch" },
  bodyBorder: false,
  labelAlign: "top",
  action_name: 'wf5',
  ls_url: "/votes/Votes",
  window_title: "Bewerten",
  before_row_edit : function(record) {
  },
  initComponent : function() {
    this.rating201 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Bewertung", "forceSelection": true, "hiddenName": "ratingHidden", "listeners": { "render": Lino.quicktip_renderer("Rating","(Rate.rating) ") }, "name": "rating", "selectOnFocus": true, "store": Lino.votes.Ratings });
    this.comment202 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Kommentar", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Comment","(Rate.comment) ") }, "name": "comment", "selectOnFocus": true });
    this.items = [ { "autoHeight": true, "items": this.rating201, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "flex": 83, "items": this.comment202, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.rating201, this.comment202 ];
    Lino.votes.Votes.wf5_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.users.Users.change_password_ActionFormPanel = Ext.extend(Lino.ActionFormPanel,{
  autoScroll: false,
  autoHeight: true,
  border: false,
  layout: "form",
  labelWidth: 171,
  hideCheckBoxLabels: true,
  frame: true,
  bodyBorder: false,
  labelAlign: "top",
  action_name: 'change_password',
  ls_url: "/users/Users",
  window_title: "Passwort \u00e4ndern",
  before_row_edit : function(record) {
  },
  autoHeight: true,
  initComponent : function() {
    this.current211 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Aktuelles Passwort", "inputType": "password", "listeners": { "render": Lino.quicktip_renderer("Current password","(Change password.current) ") }, "maxLength": null, "name": "current", "selectOnFocus": true });
    this.new1212 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Neues Passwort", "inputType": "password", "listeners": { "render": Lino.quicktip_renderer("New password","(Change password.new1) ") }, "maxLength": null, "name": "new1", "selectOnFocus": true });
    this.new2213 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Neues Passwort nochmal", "inputType": "password", "listeners": { "render": Lino.quicktip_renderer("New password again","(Change password.new2) ") }, "maxLength": null, "name": "new2", "selectOnFocus": true });
    this.items = [ { "anchor": "-20", "autoHeight": true, "items": this.current211, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.new1212, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": this.new2213, "labelAlign": "top", "layout": "form", "xtype": "panel" } ];
    this.fields = [ this.current211, this.new1212, this.new2213 ];
    Lino.users.Users.change_password_ActionFormPanel.superclass.initComponent.call(this);
  }
});


Lino.tickets.CompetencesByProject.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 27,
  initComponent : function() {
    var user345 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Autor</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Autor","(tickets.CompetencesByProject.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, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/CompetencesByProject/user" }) }) });
    var priority346 = new Ext.form.NumberField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Priorit\u00e4t", "listeners": { "render": Lino.quicktip_renderer("Priorit\u00e4t","(tickets.CompetencesByProject.priority) ") }, "name": "priority", "selectOnFocus": true, "value": 100 });
    var remark347 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bemerkung", "listeners": { "render": Lino.quicktip_renderer("Bemerkung","(tickets.CompetencesByProject.remark) ") }, "maxLength": 200, "name": "remark", "selectOnFocus": true });
    var main_panel348 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": user345, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": priority346, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": remark347, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 90, "layout": "form" });
    this.items = main_panel348;
    this.before_row_edit = function(record) {
    }
    Lino.tickets.CompetencesByProject.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.tickets.Links.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 25,
  initComponent : function() {
    var parent352 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Ticket ausw\u00e4hlen...", "fieldLabel": "Vater/Mutter", "hiddenName": "parentHidden", "listeners": { "render": Lino.quicktip_renderer("Vater/Mutter","(tickets.Links.parent) ") }, "name": "parent", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.tickets.Tickets.detail,Lino.tickets.Tickets.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Links/parent" }) }) });
    var type353 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Verkn\u00fcpgungsart", "forceSelection": true, "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Verkn\u00fcpgungsart","(tickets.Links.type) ") }, "name": "type", "selectOnFocus": true, "store": Lino.tickets.LinkTypes });
    var child354 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Ticket ausw\u00e4hlen...", "fieldLabel": "Kind", "hiddenName": "childHidden", "listeners": { "render": Lino.quicktip_renderer("Kind","(tickets.Links.child) ") }, "name": "child", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.tickets.Tickets.detail,Lino.tickets.Tickets.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Links/child" }) }) });
    var main_panel355 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": parent352, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": type353, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": child354, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 144, "layout": "form" });
    this.items = main_panel355;
    this.before_row_edit = function(record) {
    }
    Lino.tickets.Links.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.tickets.Tickets.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 26,
  initComponent : function() {
    var summary258 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Zusammenfassung</span>", "listeners": { "render": Lino.quicktip_renderer("Zusammenfassung","(tickets.Tickets.summary) Short summary of the problem.") }, "maxLength": 200, "name": "summary", "selectOnFocus": true });
    var id259 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(tickets.Tickets.id) ") }, "name": "id", "selectOnFocus": true });
    var deadline260 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Deadline", "listeners": { "render": Lino.quicktip_renderer("Deadline","(tickets.Tickets.deadline) ") }, "name": "deadline", "selectOnFocus": true });
    var general1_1_panel261 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 67, "items": summary258, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 10, "items": id259, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 22, "items": deadline260, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 144, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var user265 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Autor</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Autor","(tickets.Tickets.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, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/user" }) }) });
    var end_user266 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Person ausw\u00e4hlen...", "fieldLabel": "End user", "hiddenName": "end_userHidden", "listeners": { "render": Lino.quicktip_renderer("End user","(tickets.Tickets.end_user) ") }, "name": "end_user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/end_user" }) }) });
    var general1_2_panel267 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": user265, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": end_user266, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 81, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var site270 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Umfeld ausw\u00e4hlen...", "fieldLabel": "Umfeld", "hiddenName": "siteHidden", "listeners": { "render": Lino.quicktip_renderer("Umfeld","(tickets.Tickets.site) ") }, "name": "site", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.tickets.Sites.detail,Lino.tickets.Sites.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/site" }) }) });
    var workflow_buttons_disp271 = new Ext.form.DisplayField({ "always_enabled": true, "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Aktionen", "listeners": { "render": Lino.quicktip_renderer("Aktionen","(tickets.Tickets.workflow_buttons) ") }, "name": "workflow_buttons", "value": "<br/>" });
    var general1_3_panel272 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 40, "items": site270, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 60, "items": workflow_buttons_disp271, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 81, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var general1_panel275 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "flex": 54, "frame": true, "hideCheckBoxLabels": true, "items": [ general1_1_panel261, general1_2_panel267, general1_3_panel272 ], "labelAlign": "top", "layout": "form" });
    var general_1_panel278 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ general1_panel275 ], "labelAlign": "top", "labelWidth": 117, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var description279 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Beschreibung", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Beschreibung","(tickets.Tickets.description) ") }, "name": "description", "selectOnFocus": true });
    var general_2_panel282 = new Ext.Panel({ "autoScroll": false, "border": false, "flex": 50, "frame": false, "hideCheckBoxLabels": true, "items": [ { "flex": 33, "items": description279, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 117, "layout": "hbox", "layoutConfig": { "align": "stretch" } });
    var general_panel284 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ general_1_panel278, general_2_panel282 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" }, "listeners": { "activate": Lino.on_tab_activate }, "title": "Allgemein" });
    var main_panel339 = new Ext.TabPanel({ "activeTab": 0, "autoScroll": false, "bodyBorder": false, "border": false, "enableTabScroll": true, "frame": true, "hideCheckBoxLabels": true, "items": [ general_panel284 ], "labelAlign": "top", "split": true });
    this.items = main_panel339;
    this.before_row_edit = function(record) {
    }
    Lino.tickets.Tickets.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.excerpts.ExcerptTypes.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 18,
  initComponent : function() {
    var id359 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(excerpts.ExcerptTypes.id) ") }, "name": "id", "selectOnFocus": true });
    var name360 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Bezeichnung</span>", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(excerpts.ExcerptTypes.name) The designation of this excerpt type.\nOne field for every language.") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_de361 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (de)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (de)","(excerpts.ExcerptTypes.name_de) ") }, "maxLength": 200, "name": "name_de", "selectOnFocus": true });
    var name_fr362 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (fr)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (fr)","(excerpts.ExcerptTypes.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel363 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 7, "items": id359, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name360, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name_de361, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name_fr362, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var content_type368 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Datenbankmodell ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Modell</span>", "hiddenName": "content_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Modell","(excerpts.ExcerptTypes.content_type) The model that can issue printouts of this type.") }, "name": "content_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.gfks.ContentTypes.detail,Lino.gfks.ContentTypes.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/ExcerptTypes/content_type" }) }) });
    var build_method369 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Konstruktionsmethode</span>", "forceSelection": true, "hiddenName": "build_methodHidden", "listeners": { "render": Lino.quicktip_renderer("Konstruktionsmethode","(excerpts.ExcerptTypes.build_method) See lino.modlib.printing.mixins.PrintableType.build_method.") }, "name": "build_method", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.printing.BuildMethods) });
    var template370 = new Lino.SimpleRemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Vorlage</span>", "listeners": { "render": Lino.quicktip_renderer("Vorlage","(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_template371 = new Lino.SimpleRemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Textk\u00f6rper-Vorlage</span>", "listeners": { "render": Lino.quicktip_renderer("Textk\u00f6rper-Vorlage","(excerpts.ExcerptTypes.body_template) The body template to be used when         rendering a printable of this type. This is a list of files         with extension `.body.html`.") }, "name": "body_template", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/ExcerptTypes/body_template" }) }) });
    var email_template372 = new Lino.SimpleRemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">E-Mail-Vorlage</span>", "listeners": { "render": Lino.quicktip_renderer("E-Mail-Vorlage","(excerpts.ExcerptTypes.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/excerpts/ExcerptTypes/email_template" }) }) });
    var shortcut373 = 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_panel374 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 15, "items": content_type368, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 15, "items": build_method369, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 15, "items": template370, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 15, "items": body_template371, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 15, "items": email_template372, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 21, "items": shortcut373, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 189, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var primary381 = new Ext.form.Checkbox({ "anchor": "-20", "autoHeight": true, "boxLabel": "Prim\u00e4r", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Prim\u00e4r","(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_directly382 = new Ext.form.Checkbox({ "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 certifying383 = new Ext.form.Checkbox({ "anchor": "-20", "autoHeight": true, "boxLabel": "Bescheinigend", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Bescheinigend","(excerpts.ExcerptTypes.certifying) Ob Ausz\u00fcge dieser Art als einmalige Ausdrucke behandelt werden sollen.") }, "name": "certifying", "selectOnFocus": true });
    var print_recipient384 = new Ext.form.Checkbox({ "anchor": "-20", "autoHeight": true, "boxLabel": "Empf\u00e4nger drucken", "checked": true, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Empf\u00e4nger drucken","(excerpts.ExcerptTypes.print_recipient) Whether to print a recipient field in document.") }, "name": "print_recipient", "selectOnFocus": true });
    var backward_compat385 = new Ext.form.Checkbox({ "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_email386 = new Ext.form.Checkbox({ "anchor": "-20", "autoHeight": true, "boxLabel": "als Anhang per E-Mail", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("als Anhang per E-Mail","(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_panel387 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 16, "items": primary381, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": print_directly382, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": certifying383, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": print_recipient384, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": backward_compat385, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": attach_to_email386, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 198, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel450 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel363, main_2_panel374, main_3_panel387 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel450;
    this.before_row_edit = function(record) {
      template370.setContextValue('build_method', record ? record.data['build_methodHidden'] : undefined);
      template370.setContextValue('content_type', record ? record.data['content_typeHidden'] : undefined);
      body_template371.setContextValue('content_type', record ? record.data['content_typeHidden'] : undefined);
      email_template372.setContextValue('content_type', record ? record.data['content_typeHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      build_method369.on('change',Lino.chooser_handler(template370,'build_method'));
      content_type368.on('change',Lino.chooser_handler(template370,'content_type'));
      content_type368.on('change',Lino.chooser_handler(body_template371,'content_type'));
      content_type368.on('change',Lino.chooser_handler(email_template372,'content_type'));
      Lino.excerpts.ExcerptTypes.DetailFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.excerpts.ExcerptTypes.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.about.Models.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  disable_editing: true,
  initComponent : function() {
    var app_disp451 = new Ext.form.DisplayField({ "always_enabled": true, "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "app_label", "listeners": { "render": Lino.quicktip_renderer("app_label","(about.Models.app) ") }, "name": "app", "value": "<br/>" });
    var name_disp452 = new Ext.form.DisplayField({ "always_enabled": true, "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "name", "listeners": { "render": Lino.quicktip_renderer("name","(about.Models.name) ") }, "name": "name", "value": "<br/>" });
    var docstring_disp453 = new Ext.form.DisplayField({ "always_enabled": true, "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "docstring", "listeners": { "render": Lino.quicktip_renderer("docstring","(about.Models.docstring) ") }, "name": "docstring", "value": "<br/>" });
    var rows454 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Zeilen", "listeners": { "render": Lino.quicktip_renderer("Zeilen","(about.Models.rows) ") }, "name": "rows" });
    var main_1_panel455 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 31, "items": app_disp451, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 31, "items": name_disp452, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 31, "items": docstring_disp453, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 5, "items": rows454, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 90, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel465 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel455 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel465;
    this.before_row_edit = function(record) {
    }
    Lino.about.Models.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.contacts.Partners.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 15,
  initComponent : function() {
    var name466 = 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.Partners.name) The full name of this partner. Used for alphabetic sorting.\nSubclasses may hide this field and fill it automatically,\ne.g. saving a Person will automatically set her\nname field to \"last_name, first_name\".") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var language467 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Sprache</span>", "hiddenName": "languageHidden", "listeners": { "render": Lino.quicktip_renderer("Sprache","(contacts.Partners.language) The language to use when communicating with this partner.") }, "name": "language", "selectOnFocus": true, "store": [ [ "en", "Englisch" ], [ "de", "Deutsch" ], [ "fr", "Franz\u00f6sisch" ] ] });
    var email468 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">E-Mail-Adresse</span>", "listeners": { "render": Lino.quicktip_renderer("E-Mail-Adresse","(contacts.Partners.email) The primary email address.") }, "maxLength": 254, "name": "email", "selectOnFocus": true });
    var main_2_panel469 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 48, "items": language467, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 51, "items": email468, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 135, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel472 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": name466, "labelAlign": "top", "layout": "form", "xtype": "panel" }, main_2_panel469 ], "labelAlign": "top", "labelWidth": 45, "layout": "form" });
    this.items = main_panel472;
    this.before_row_edit = function(record) {
    }
    Lino.contacts.Partners.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.contacts.Persons.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 13,
  initComponent : function() {
    var last_name474 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Familienname</span>", "listeners": { "render": Lino.quicktip_renderer("Familienname","(contacts.Persons.last_name) The last name, also known as family name.") }, "maxLength": 200, "name": "last_name", "selectOnFocus": true });
    var first_name475 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Vorname</span>", "listeners": { "render": Lino.quicktip_renderer("Vorname","(contacts.Persons.first_name) The first name, also known as given name.") }, "maxLength": 200, "name": "first_name", "selectOnFocus": true });
    var gender476 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Geschlecht</span>", "forceSelection": true, "hiddenName": "genderHidden", "listeners": { "render": Lino.quicktip_renderer("Geschlecht","(contacts.Persons.gender) The sex of this person (male or female).") }, "name": "gender", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.Genders) });
    var title477 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Titel</span>", "listeners": { "render": Lino.quicktip_renderer("Titel","(contacts.Persons.title) An optional name prefix like \"Dr.\" or \"PhD\", used to specify a\nprofessional position or academic qualification.") }, "maxLength": 200, "name": "title", "selectOnFocus": true });
    var name_box_panel478 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 38, "items": last_name474, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 27, "items": first_name475, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": gender476, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 18, "items": title477, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 117, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var country483 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Land ausw\u00e4hlen...", "fieldLabel": "Land", "hiddenName": "countryHidden", "listeners": { "render": Lino.quicktip_renderer("Land","(contacts.Persons.country) ") }, "name": "country", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Countries.detail,Lino.countries.Countries.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Persons/country" }) }) });
    var region484 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Ort ausw\u00e4hlen...", "fieldLabel": "Regierungsbezirk", "hiddenName": "regionHidden", "listeners": { "render": Lino.quicktip_renderer("Regierungsbezirk","(contacts.Persons.region) ") }, "name": "region", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Places.detail,Lino.countries.Places.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Persons/region" }) }) });
    var city485 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Ort ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Stadt</span>", "forceSelection": false, "hiddenName": "cityHidden", "listeners": { "render": Lino.quicktip_renderer("Stadt","(contacts.Persons.city) A pointer to Place.") }, "name": "city", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Places.detail,Lino.countries.Places.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Persons/city" }) }) });
    var zip_code486 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "Postleitzahl", "listeners": { "render": Lino.quicktip_renderer("Postleitzahl","(contacts.Persons.zip_code) ") }, "maxLength": 10, "name": "zip_code", "selectOnFocus": true });
    var address_box_2_panel487 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 28, "items": country483, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 28, "items": region484, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 28, "items": city485, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 14, "items": zip_code486, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var addr1492 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Adresszeile vor Stra\u00dfe</span>", "listeners": { "render": Lino.quicktip_renderer("Adresszeile vor Stra\u00dfe","(contacts.Persons.addr1) Adresszeile vor Stra\u00dfe") }, "maxLength": 200, "name": "addr1", "selectOnFocus": true });
    var street_prefix493 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Pr\u00e4fix Stra\u00dfe</span>", "listeners": { "render": Lino.quicktip_renderer("Pr\u00e4fix Stra\u00dfe","(contacts.Persons.street_prefix) Text to print before name of street, but to ignore for sorting.") }, "maxLength": 200, "name": "street_prefix", "selectOnFocus": true });
    var street494 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Stra\u00dfe</span>", "listeners": { "render": Lino.quicktip_renderer("Stra\u00dfe","(contacts.Persons.street) Name der Stra\u00dfe, ohne Hausnummer") }, "maxLength": 200, "name": "street", "selectOnFocus": true });
    var street_no495 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Nr.</span>", "listeners": { "render": Lino.quicktip_renderer("Nr.","(contacts.Persons.street_no) Hausnummer") }, "maxLength": 10, "name": "street_no", "selectOnFocus": true });
    var street_box496 = 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.Persons.street_box) Text to print after street nuber on the same line.") }, "maxLength": 10, "name": "street_box", "selectOnFocus": true });
    var address_box_4_panel497 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 30, "items": street_prefix493, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 36, "items": street494, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": street_no495, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": street_box496, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 126, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var addr2502 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Adresszeile nach Stra\u00dfe</span>", "listeners": { "render": Lino.quicktip_renderer("Adresszeile nach Stra\u00dfe","(contacts.Persons.addr2) Adresszeile nach Stra\u00dfe") }, "maxLength": 200, "name": "addr2", "selectOnFocus": true });
    var address_box_panel503 = new Ext.form.FieldSet({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "flex": 50, "frame": true, "hideCheckBoxLabels": true, "items": [ name_box_panel478, address_box_2_panel487, { "anchor": "-20", "autoHeight": true, "items": addr1492, "labelAlign": "top", "layout": "form", "xtype": "panel" }, address_box_4_panel497, { "anchor": "-20", "autoHeight": true, "items": addr2502, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 216, "layout": "form", "title": "Adresse" });
    var id506 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(contacts.Persons.id) ") }, "name": "id", "selectOnFocus": true });
    var language507 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Sprache</span>", "hiddenName": "languageHidden", "listeners": { "render": Lino.quicktip_renderer("Sprache","(contacts.Persons.language) The language to use when communicating with this partner.") }, "name": "language", "selectOnFocus": true, "store": [ [ "en", "Englisch" ], [ "de", "Deutsch" ], [ "fr", "Franz\u00f6sisch" ] ] });
    var info_box_panel508 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 33, "items": id506, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 66, "items": language507, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 72, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var email511 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">E-Mail-Adresse</span>", "listeners": { "render": Lino.quicktip_renderer("E-Mail-Adresse","(contacts.Persons.email) The primary email address.") }, "maxLength": 254, "name": "email", "selectOnFocus": true });
    var url512 = new Lino.URLField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Adresse (URL)", "listeners": { "render": Lino.quicktip_renderer("Adresse (URL)","(contacts.Persons.url) ") }, "maxLength": 200, "name": "url", "selectOnFocus": true });
    var phone513 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Telefon</span>", "listeners": { "render": Lino.quicktip_renderer("Telefon","(contacts.Persons.phone) The primary phone number.  Note that Lino does not ignore\nformatting characters in phone numbers when searching.  For\nexample, if you enter \"087/12.34.56\" as a phone number, then a\nsearch for phone number containing \"1234\" will not find it.") }, "maxLength": 200, "name": "phone", "selectOnFocus": true });
    var gsm514 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">GSM</span>", "listeners": { "render": Lino.quicktip_renderer("GSM","(contacts.Persons.gsm) The primary mobile phone number.") }, "maxLength": 200, "name": "gsm", "selectOnFocus": true });
    var fax515 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Fax", "listeners": { "render": Lino.quicktip_renderer("Fax","(contacts.Persons.fax) ") }, "maxLength": 200, "name": "fax", "selectOnFocus": true });
    var contact_box_5_panel516 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": gsm514, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": fax515, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 36, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var contact_box_panel519 = new Ext.form.FieldSet({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "flex": 25, "frame": true, "hideCheckBoxLabels": true, "items": [ info_box_panel508, { "anchor": "-20", "autoHeight": true, "items": email511, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": url512, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": phone513, "labelAlign": "top", "layout": "form", "xtype": "panel" }, contact_box_5_panel516 ], "labelAlign": "top", "labelWidth": 135, "layout": "form", "title": "Kontakt" });
    var overview_disp523 = new Ext.form.DisplayField({ "always_enabled": true, "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Beschreibung", "listeners": { "render": Lino.quicktip_renderer("Beschreibung","(contacts.Persons.overview) ") }, "name": "overview", "value": "<br/>" });
    var general_1_panel524 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ address_box_panel503, contact_box_panel519, { "autoHeight": true, "flex": 25, "items": overview_disp523, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 117, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var remarks526 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Bemerkungen", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Bemerkungen","(contacts.Persons.remarks) ") }, "name": "remarks", "selectOnFocus": true });
    var bottom_box_panel536 = new Ext.Panel({ "autoScroll": false, "border": false, "flex": 50, "frame": false, "hideCheckBoxLabels": true, "items": [ { "flex": 33, "items": remarks526, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 108, "layout": "hbox", "layoutConfig": { "align": "stretch" } });
    var general_panel538 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ general_1_panel524, bottom_box_panel536 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" }, "listeners": { "activate": Lino.on_tab_activate }, "title": "Allgemein" });
    var main_panel574 = new Ext.TabPanel({ "activeTab": 0, "autoScroll": false, "bodyBorder": false, "border": false, "enableTabScroll": true, "frame": true, "hideCheckBoxLabels": true, "items": [ general_panel538 ], "labelAlign": "top", "split": true });
    this.items = main_panel574;
    this.before_row_edit = function(record) {
      region484.setContextValue('country', record ? record.data['countryHidden'] : undefined);
      city485.setContextValue('country', record ? record.data['countryHidden'] : undefined);
      city485.setContextValue('region', record ? record.data['regionHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      country483.on('change',Lino.chooser_handler(region484,'country'));
      country483.on('change',Lino.chooser_handler(city485,'country'));
      region484.on('change',Lino.chooser_handler(city485,'region'));
      Lino.contacts.Persons.DetailFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.contacts.Persons.DetailFormPanel.superclass.initComponent.call(this);
    // active_fields:
    city485.on("change", function(){ this.save() }, this);
    zip_code486.on("change", function(){ this.save() }, this);
  }
});


Lino.users.Register.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 6,
  initComponent : function() {
    var first_name575 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Vorname</span>", "listeners": { "render": Lino.quicktip_renderer("Vorname","(users.Register.first_name) The first name, also known as given name.") }, "maxLength": 200, "name": "first_name", "selectOnFocus": true });
    var last_name576 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Familienname</span>", "listeners": { "render": Lino.quicktip_renderer("Familienname","(users.Register.last_name) The last name, also known as family name.") }, "maxLength": 200, "name": "last_name", "selectOnFocus": true });
    var main_1_panel577 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": first_name575, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": last_name576, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 117, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var email580 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">E-Mail-Adresse</span>", "listeners": { "render": Lino.quicktip_renderer("E-Mail-Adresse","(users.Register.email) The primary email address.") }, "maxLength": 254, "name": "email", "selectOnFocus": true });
    var language581 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Sprache</span>", "hiddenName": "languageHidden", "listeners": { "render": Lino.quicktip_renderer("Sprache","(users.Register.language) The language to use when communicating with this partner.") }, "name": "language", "selectOnFocus": true, "store": [ [ "en", "Englisch" ], [ "de", "Deutsch" ], [ "fr", "Franz\u00f6sisch" ] ] });
    var main_2_panel582 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 51, "items": email580, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 48, "items": language581, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 135, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var gsm585 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">GSM</span>", "listeners": { "render": Lino.quicktip_renderer("GSM","(users.Register.gsm) The primary mobile phone number.") }, "maxLength": 200, "name": "gsm", "selectOnFocus": true });
    var phone586 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Telefon</span>", "listeners": { "render": Lino.quicktip_renderer("Telefon","(users.Register.phone) The primary phone number.  Note that Lino does not ignore\nformatting characters in phone numbers when searching.  For\nexample, if you enter \"087/12.34.56\" as a phone number, then a\nsearch for phone number containing \"1234\" will not find it.") }, "maxLength": 200, "name": "phone", "selectOnFocus": true });
    var main_3_panel587 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": gsm585, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": phone586, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 72, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var country590 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Land ausw\u00e4hlen...", "fieldLabel": "Land", "hiddenName": "countryHidden", "listeners": { "render": Lino.quicktip_renderer("Land","(users.Register.country) ") }, "name": "country", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Countries.detail,Lino.countries.Countries.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/users/Register/country" }) }) });
    var city591 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Ort ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Stadt</span>", "forceSelection": false, "hiddenName": "cityHidden", "listeners": { "render": Lino.quicktip_renderer("Stadt","(users.Register.city) A pointer to Place.") }, "name": "city", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Places.detail,Lino.countries.Places.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/users/Register/city" }) }) });
    var main_4_panel592 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": country590, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": city591, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 54, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var street595 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Stra\u00dfe</span>", "listeners": { "render": Lino.quicktip_renderer("Stra\u00dfe","(users.Register.street) Name der Stra\u00dfe, ohne Hausnummer") }, "maxLength": 200, "name": "street", "selectOnFocus": true });
    var street_no596 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Nr.</span>", "listeners": { "render": Lino.quicktip_renderer("Nr.","(users.Register.street_no) Hausnummer") }, "maxLength": 10, "name": "street_no", "selectOnFocus": true });
    var main_5_panel597 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 65, "items": street595, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 34, "items": street_no596, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 63, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var username600 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Benutzername</span>", "listeners": { "render": Lino.quicktip_renderer("Benutzername","(users.Register.username) Must be unique. Leaving this empty means that the user cannot log in.") }, "maxLength": 30, "name": "username", "selectOnFocus": true });
    var main_panel601 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel577, main_2_panel582, main_3_panel587, main_4_panel592, main_5_panel597, { "anchor": "-20", "autoHeight": true, "items": username600, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 117, "layout": "form" });
    this.items = main_panel601;
    this.before_row_edit = function(record) {
      city591.setContextValue('country', record ? record.data['countryHidden'] : undefined);
      city591.setContextValue('region', record ? record.data['regionHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      country590.on('change',Lino.chooser_handler(city591,'country'));
      Lino.users.Register.InsertFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.users.Register.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.changes.Changes.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 33,
  disable_editing: true,
  initComponent : function() {
    var time301 = new Ext.form.DisplayField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "time", "listeners": { "render": Lino.quicktip_renderer("time","(changes.Changes.time) ") }, "name": "time", "selectOnFocus": true, "value": "<br>" });
    var user302 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "Benutzer", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Benutzer","(changes.Changes.user) ") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/changes/Changes/user" }) }) });
    var type303 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "\u00c4nderungsart", "forceSelection": true, "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("\u00c4nderungsart","(changes.Changes.type) ") }, "name": "type", "selectOnFocus": true, "store": Lino.changes.ChangeTypes });
    var master_disp304 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Stammdaten</span>", "name": "master" });
    var object_disp305 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Object</span>", "name": "object" });
    var id306 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(changes.Changes.id) ") }, "name": "id", "selectOnFocus": true });
    var main_1_panel307 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 21, "items": time301, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 26, "items": user302, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": type303, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 13, "items": master_disp304, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 13, "items": object_disp305, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 6, "items": id306, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 117, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var diff314 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "\u00c4nderungen", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("\u00c4nderungen","(changes.Changes.diff) ") }, "name": "diff", "selectOnFocus": true });
    var main_panel315 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel307, { "flex": 83, "items": diff314, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 99, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel315;
    this.before_row_edit = function(record) {
    }
    Lino.changes.Changes.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.votes.Votes.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 17,
  initComponent : function() {
    var user603 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Abstimmender</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Abstimmender","(votes.Votes.user) The user who is voting.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/votes/Votes/user" }) }) });
    var votable604 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Ticket ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Ticket</span>", "hiddenName": "votableHidden", "listeners": { "render": Lino.quicktip_renderer("Ticket","(votes.Votes.votable) The ticket (or other votable) being voted.") }, "name": "votable", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.tickets.Tickets.detail,Lino.tickets.Tickets.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/votes/Votes/votable" }) }) });
    var main_1_panel605 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": user603, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": votable604, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 117, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var mail_mode608 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Benachrichtigungen per E-Mail", "forceSelection": true, "hiddenName": "mail_modeHidden", "listeners": { "render": Lino.quicktip_renderer("Benachrichtigungen per E-Mail","(votes.Votes.mail_mode) ") }, "name": "mail_mode", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.notify.MailModes) });
    var priority609 = new Ext.form.NumberField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Priorit\u00e4t</span>", "listeners": { "render": Lino.quicktip_renderer("Priorit\u00e4t","(votes.Votes.priority) My personal priority for this ticket.") }, "name": "priority", "selectOnFocus": true, "value": 0 });
    var nickname610 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Rufname</span>", "listeners": { "render": Lino.quicktip_renderer("Rufname","(votes.Votes.nickname) My nickname for this ticket. Optional.") }, "maxLength": 50, "name": "nickname", "selectOnFocus": true });
    var main_4_panel611 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 19, "items": priority609, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 80, "items": nickname610, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 90, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var state614 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Zustand</span>", "forceSelection": true, "hiddenName": "stateHidden", "listeners": { "render": Lino.quicktip_renderer("Zustand","(votes.Votes.state) The state of this vote.  Pointer to VoteStates.") }, "name": "state", "selectOnFocus": true, "store": Lino.votes.VoteStates });
    var rating615 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Bewertung</span>", "forceSelection": true, "hiddenName": "ratingHidden", "listeners": { "render": Lino.quicktip_renderer("Bewertung","(votes.Votes.rating) How the ticket author rates my help on this ticket.") }, "name": "rating", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.votes.Ratings) });
    var main_panel616 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel605, { "anchor": "-20", "autoHeight": true, "items": mail_mode608, "labelAlign": "top", "layout": "form", "xtype": "panel" }, main_4_panel611, { "anchor": "-20", "autoHeight": true, "items": state614, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": rating615, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 270, "layout": "form" });
    this.items = main_panel616;
    this.before_row_edit = function(record) {
    }
    Lino.votes.Votes.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.contacts.Companies.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 12,
  initComponent : function() {
    var prefix620 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Name prefix", "listeners": { "render": Lino.quicktip_renderer("Name prefix","(contacts.Companies.prefix) ") }, "maxLength": 200, "name": "prefix", "selectOnFocus": true });
    var name621 = 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.\nSubclasses may hide this field and fill it automatically,\ne.g. saving a Person will automatically set her\nname field to \"last_name, first_name\".") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var type622 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Organisationsart ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Organisationsart</span>", "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Organisationsart","(contacts.Companies.type) Pointer to the CompanyType.") }, "name": "type", "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Companies/type" }) }) });
    var name_box_panel623 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 16, "items": prefix620, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 34, "items": name621, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 49, "items": type622, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var country627 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Land ausw\u00e4hlen...", "fieldLabel": "Land", "hiddenName": "countryHidden", "listeners": { "render": Lino.quicktip_renderer("Land","(contacts.Companies.country) ") }, "name": "country", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Countries.detail,Lino.countries.Countries.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Companies/country" }) }) });
    var region628 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Ort ausw\u00e4hlen...", "fieldLabel": "Regierungsbezirk", "hiddenName": "regionHidden", "listeners": { "render": Lino.quicktip_renderer("Regierungsbezirk","(contacts.Companies.region) ") }, "name": "region", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Places.detail,Lino.countries.Places.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Companies/region" }) }) });
    var city629 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Ort ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Stadt</span>", "forceSelection": false, "hiddenName": "cityHidden", "listeners": { "render": Lino.quicktip_renderer("Stadt","(contacts.Companies.city) A pointer to Place.") }, "name": "city", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Places.detail,Lino.countries.Places.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Companies/city" }) }) });
    var zip_code630 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "Postleitzahl", "listeners": { "render": Lino.quicktip_renderer("Postleitzahl","(contacts.Companies.zip_code) ") }, "maxLength": 10, "name": "zip_code", "selectOnFocus": true });
    var address_box_2_panel631 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 28, "items": country627, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 28, "items": region628, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 28, "items": city629, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 14, "items": zip_code630, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var addr1636 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Adresszeile vor Stra\u00dfe</span>", "listeners": { "render": Lino.quicktip_renderer("Adresszeile vor Stra\u00dfe","(contacts.Companies.addr1) Adresszeile vor Stra\u00dfe") }, "maxLength": 200, "name": "addr1", "selectOnFocus": true });
    var street_prefix637 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Pr\u00e4fix Stra\u00dfe</span>", "listeners": { "render": Lino.quicktip_renderer("Pr\u00e4fix Stra\u00dfe","(contacts.Companies.street_prefix) Text to print before name of street, but to ignore for sorting.") }, "maxLength": 200, "name": "street_prefix", "selectOnFocus": true });
    var street638 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Stra\u00dfe</span>", "listeners": { "render": Lino.quicktip_renderer("Stra\u00dfe","(contacts.Companies.street) Name der Stra\u00dfe, ohne Hausnummer") }, "maxLength": 200, "name": "street", "selectOnFocus": true });
    var street_no639 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Nr.</span>", "listeners": { "render": Lino.quicktip_renderer("Nr.","(contacts.Companies.street_no) Hausnummer") }, "maxLength": 10, "name": "street_no", "selectOnFocus": true });
    var street_box640 = 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 nuber on the same line.") }, "maxLength": 10, "name": "street_box", "selectOnFocus": true });
    var address_box_4_panel641 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 30, "items": street_prefix637, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 36, "items": street638, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": street_no639, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": street_box640, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 126, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var addr2646 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Adresszeile nach Stra\u00dfe</span>", "listeners": { "render": Lino.quicktip_renderer("Adresszeile nach Stra\u00dfe","(contacts.Companies.addr2) Adresszeile nach Stra\u00dfe") }, "maxLength": 200, "name": "addr2", "selectOnFocus": true });
    var address_box_panel647 = new Ext.form.FieldSet({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "flex": 66, "frame": true, "hideCheckBoxLabels": true, "items": [ name_box_panel623, address_box_2_panel631, { "anchor": "-20", "autoHeight": true, "items": addr1636, "labelAlign": "top", "layout": "form", "xtype": "panel" }, address_box_4_panel641, { "anchor": "-20", "autoHeight": true, "items": addr2646, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 216, "layout": "form", "title": "Adresse" });
    var id650 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(contacts.Companies.id) ") }, "name": "id", "selectOnFocus": true });
    var language651 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Sprache</span>", "hiddenName": "languageHidden", "listeners": { "render": Lino.quicktip_renderer("Sprache","(contacts.Companies.language) The language to use when communicating with this partner.") }, "name": "language", "selectOnFocus": true, "store": [ [ "en", "Englisch" ], [ "de", "Deutsch" ], [ "fr", "Franz\u00f6sisch" ] ] });
    var info_box_panel652 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 20, "items": id650, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 80, "items": language651, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 72, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var email655 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">E-Mail-Adresse</span>", "listeners": { "render": Lino.quicktip_renderer("E-Mail-Adresse","(contacts.Companies.email) The primary email address.") }, "maxLength": 254, "name": "email", "selectOnFocus": true });
    var url656 = new Lino.URLField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Adresse (URL)", "listeners": { "render": Lino.quicktip_renderer("Adresse (URL)","(contacts.Companies.url) ") }, "maxLength": 200, "name": "url", "selectOnFocus": true });
    var phone657 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Telefon</span>", "listeners": { "render": Lino.quicktip_renderer("Telefon","(contacts.Companies.phone) The primary phone number.  Note that Lino does not ignore\nformatting characters in phone numbers when searching.  For\nexample, if you enter \"087/12.34.56\" as a phone number, then a\nsearch for phone number containing \"1234\" will not find it.") }, "maxLength": 200, "name": "phone", "selectOnFocus": true });
    var gsm658 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">GSM</span>", "listeners": { "render": Lino.quicktip_renderer("GSM","(contacts.Companies.gsm) The primary mobile phone number.") }, "maxLength": 200, "name": "gsm", "selectOnFocus": true });
    var fax659 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Fax", "listeners": { "render": Lino.quicktip_renderer("Fax","(contacts.Companies.fax) ") }, "maxLength": 200, "name": "fax", "selectOnFocus": true });
    var contact_box_5_panel660 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": gsm658, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": fax659, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 36, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var contact_box_panel663 = new Ext.form.FieldSet({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "flex": 33, "frame": true, "hideCheckBoxLabels": true, "items": [ info_box_panel652, { "anchor": "-20", "autoHeight": true, "items": email655, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": url656, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": phone657, "labelAlign": "top", "layout": "form", "xtype": "panel" }, contact_box_5_panel660 ], "labelAlign": "top", "labelWidth": 135, "layout": "form", "title": "Kontakt" });
    var general_1_panel667 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ address_box_panel647, contact_box_panel663 ], "labelAlign": "top", "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var remarks668 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Bemerkungen", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Bemerkungen","(contacts.Companies.remarks) ") }, "name": "remarks", "selectOnFocus": true });
    var bottom_box_1_panel678 = new Ext.Panel({ "autoScroll": false, "border": false, "flex": 50, "frame": false, "hideCheckBoxLabels": true, "items": [ { "flex": 33, "items": remarks668, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 108, "layout": "hbox", "layoutConfig": { "align": "stretch" } });
    var general_panel680 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ general_1_panel667, bottom_box_1_panel678 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" }, "listeners": { "activate": Lino.on_tab_activate }, "title": "Allgemein" });
    var main_panel885 = new Ext.TabPanel({ "activeTab": 0, "autoScroll": false, "bodyBorder": false, "border": false, "enableTabScroll": true, "frame": true, "hideCheckBoxLabels": true, "items": [ general_panel680 ], "labelAlign": "top", "split": true });
    this.items = main_panel885;
    this.before_row_edit = function(record) {
      region628.setContextValue('country', record ? record.data['countryHidden'] : undefined);
      city629.setContextValue('country', record ? record.data['countryHidden'] : undefined);
      city629.setContextValue('region', record ? record.data['regionHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      country627.on('change',Lino.chooser_handler(region628,'country'));
      country627.on('change',Lino.chooser_handler(city629,'country'));
      region628.on('change',Lino.chooser_handler(city629,'region'));
      Lino.contacts.Companies.DetailFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.contacts.Companies.DetailFormPanel.superclass.initComponent.call(this);
    // active_fields:
    city629.on("change", function(){ this.save() }, this);
    zip_code630.on("change", function(){ this.save() }, this);
  }
});


Lino.topics.TopicGroups.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 8,
  initComponent : function() {
    var id886 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(topics.TopicGroups.id) ") }, "name": "id", "selectOnFocus": true });
    var name887 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(topics.TopicGroups.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_de888 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (de)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (de)","(topics.TopicGroups.name_de) ") }, "maxLength": 200, "name": "name_de", "selectOnFocus": true });
    var name_fr889 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (fr)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (fr)","(topics.TopicGroups.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel890 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 7, "items": id886, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name887, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name_de888, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name_fr889, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" }, "region": "north", "split": true });
    var description895 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Beschreibung", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Beschreibung","(topics.TopicGroups.description) ") }, "name": "description", "selectOnFocus": true });
    var main_panel981 = new Lino.VBorderPanel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel890, { "flex": 5, "items": description895, "labelAlign": "top", "layout": "form", "region": "center", "split": true, "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 117 });
    this.items = main_panel981;
    this.before_row_edit = function(record) {
    }
    Lino.topics.TopicGroups.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.users.Users.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 6,
  initComponent : function() {
    var username983 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Benutzername</span>", "listeners": { "render": Lino.quicktip_renderer("Benutzername","(users.Users.username) Must be unique. Leaving this empty means that the user cannot log in.") }, "maxLength": 30, "name": "username", "selectOnFocus": true });
    var profile984 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Benutzerart</span>", "forceSelection": true, "hiddenName": "profileHidden", "listeners": { "render": Lino.quicktip_renderer("Benutzerart","(users.Users.profile) The profile of a user is what defines her or his permissions.") }, "name": "profile", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.users.UserTypes) });
    var box1_1_panel985 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 51, "items": username983, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 48, "items": profile984, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 117, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var language988 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Sprache</span>", "hiddenName": "languageHidden", "listeners": { "render": Lino.quicktip_renderer("Sprache","(users.Users.language) The language to use when communicating with this partner.") }, "name": "language", "selectOnFocus": true, "store": [ [ "en", "Englisch" ], [ "de", "Deutsch" ], [ "fr", "Franz\u00f6sisch" ] ] });
    var id989 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(users.Users.id) ") }, "name": "id", "selectOnFocus": true });
    var created990 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Erstellt</span>", "listeners": { "render": Lino.quicktip_renderer("Erstellt","(users.Users.created) The timestame when this object was created.") }, "name": "created", "value": "<br>" });
    var modified991 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Bearbeitet", "listeners": { "render": Lino.quicktip_renderer("Bearbeitet","(users.Users.modified) ") }, "name": "modified", "value": "<br>" });
    var box1_2_panel992 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 35, "items": language988, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 8, "items": id989, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 28, "items": created990, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 28, "items": modified991, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 99, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var callme_mode997 = new Ext.form.Checkbox({ "anchor": "-20", "autoHeight": true, "boxLabel": "Andere d\u00fcrfen mich kontaktieren", "checked": true, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Andere d\u00fcrfen mich kontaktieren","(users.Users.callme_mode) Whether other users can see my contact data.") }, "name": "callme_mode", "selectOnFocus": true });
    var mail_mode998 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Benachrichtigungen per E-Mail", "forceSelection": true, "hiddenName": "mail_modeHidden", "listeners": { "render": Lino.quicktip_renderer("Benachrichtigungen per E-Mail","(users.Users.mail_mode) ") }, "name": "mail_mode", "selectOnFocus": true, "store": Lino.notify.MailModes });
    var notify_myself999 = new Ext.form.Checkbox({ "anchor": "-20", "autoHeight": true, "boxLabel": "Benachrichtigungen an mich selbst", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Benachrichtigungen an mich selbst","(users.Users.notify_myself) ") }, "name": "notify_myself", "selectOnFocus": true });
    var box1_3_panel1000 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 29, "items": callme_mode997, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 41, "items": mail_mode998, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 29, "items": notify_myself999, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 306, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var box1_panel1004 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ box1_1_panel985, box1_2_panel992, box1_3_panel1000 ], "labelAlign": "top", "layout": "form" });
    var general_panel1006 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ box1_panel1004 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" }, "listeners": { "activate": Lino.on_tab_activate }, "title": "Allgemein" });
    var first_name1007 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Vorname</span>", "listeners": { "render": Lino.quicktip_renderer("Vorname","(users.Users.first_name) The first name, also known as given name.") }, "maxLength": 200, "name": "first_name", "selectOnFocus": true });
    var last_name1008 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Familienname</span>", "listeners": { "render": Lino.quicktip_renderer("Familienname","(users.Users.last_name) The last name, also known as family name.") }, "maxLength": 200, "name": "last_name", "selectOnFocus": true });
    var address_box_1_panel1009 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": first_name1007, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": last_name1008, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 117, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var country1012 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Land ausw\u00e4hlen...", "fieldLabel": "Land", "hiddenName": "countryHidden", "listeners": { "render": Lino.quicktip_renderer("Land","(users.Users.country) ") }, "name": "country", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Countries.detail,Lino.countries.Countries.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/users/Users/country" }) }) });
    var region1013 = new Lino.TwinCombo({ "emptyText": "Ort ausw\u00e4hlen...", "fieldLabel": "Regierungsbezirk", "flex": 28, "hidden": true, "hiddenName": "regionHidden", "listeners": { "render": Lino.quicktip_renderer("Regierungsbezirk","(users.Users.region) ") }, "name": "region", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Places.detail,Lino.countries.Places.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/users/Users/region" }) }) });
    var city1014 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Ort ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Stadt</span>", "forceSelection": false, "hiddenName": "cityHidden", "listeners": { "render": Lino.quicktip_renderer("Stadt","(users.Users.city) A pointer to Place.") }, "name": "city", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Places.detail,Lino.countries.Places.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/users/Users/city" }) }) });
    var zip_code1015 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "Postleitzahl", "listeners": { "render": Lino.quicktip_renderer("Postleitzahl","(users.Users.zip_code) ") }, "maxLength": 10, "name": "zip_code", "selectOnFocus": true });
    var address_box_2_panel1016 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 28, "items": country1012, "labelAlign": "top", "layout": "form", "xtype": "panel" }, region1013, { "autoHeight": true, "flex": 28, "items": city1014, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 14, "items": zip_code1015, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var street1020 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Stra\u00dfe</span>", "listeners": { "render": Lino.quicktip_renderer("Stra\u00dfe","(users.Users.street) Name der Stra\u00dfe, ohne Hausnummer") }, "maxLength": 200, "name": "street", "selectOnFocus": true });
    var street_no1021 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Nr.</span>", "listeners": { "render": Lino.quicktip_renderer("Nr.","(users.Users.street_no) Hausnummer") }, "maxLength": 10, "name": "street_no", "selectOnFocus": true });
    var address_box_4_panel1022 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 69, "items": street1020, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": street_no1021, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 63, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var address_box_panel1025 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "flex": 63, "frame": true, "hideCheckBoxLabels": true, "items": [ address_box_1_panel1009, address_box_2_panel1016, address_box_4_panel1022 ], "labelAlign": "top", "layout": "form" });
    var email1026 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">E-Mail-Adresse</span>", "listeners": { "render": Lino.quicktip_renderer("E-Mail-Adresse","(users.Users.email) The primary email address.") }, "maxLength": 254, "name": "email", "selectOnFocus": true });
    var phone1027 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Telefon</span>", "listeners": { "render": Lino.quicktip_renderer("Telefon","(users.Users.phone) The primary phone number.  Note that Lino does not ignore\nformatting characters in phone numbers when searching.  For\nexample, if you enter \"087/12.34.56\" as a phone number, then a\nsearch for phone number containing \"1234\" will not find it.") }, "maxLength": 200, "name": "phone", "selectOnFocus": true });
    var gsm1028 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">GSM</span>", "listeners": { "render": Lino.quicktip_renderer("GSM","(users.Users.gsm) The primary mobile phone number.") }, "maxLength": 200, "name": "gsm", "selectOnFocus": true });
    var info_box_panel1029 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "flex": 36, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": email1026, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": phone1027, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": gsm1028, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 135, "layout": "form" });
    var contact_1_panel1033 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ address_box_panel1025, info_box_panel1029 ], "labelAlign": "top", "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var remarks1034 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Bemerkungen", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Bemerkungen","(users.Users.remarks) ") }, "name": "remarks", "selectOnFocus": true });
    var contact_2_panel1038 = new Ext.Panel({ "autoScroll": false, "border": false, "flex": 62, "frame": false, "hideCheckBoxLabels": true, "items": [ { "flex": 66, "items": remarks1034, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 108, "layout": "hbox", "layoutConfig": { "align": "stretch" } });
    var contact_panel1040 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ contact_1_panel1033, contact_2_panel1038 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" }, "listeners": { "activate": Lino.on_tab_activate }, "title": "Kontakt" });
    var main_panel1053 = new Ext.TabPanel({ "activeTab": 0, "autoScroll": false, "bodyBorder": false, "border": false, "enableTabScroll": true, "frame": true, "hideCheckBoxLabels": true, "items": [ general_panel1006, contact_panel1040 ], "labelAlign": "top", "split": true });
    this.items = main_panel1053;
    this.before_row_edit = function(record) {
      region1013.setContextValue('country', record ? record.data['countryHidden'] : undefined);
      city1014.setContextValue('country', record ? record.data['countryHidden'] : undefined);
      city1014.setContextValue('region', record ? record.data['regionHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      country1012.on('change',Lino.chooser_handler(region1013,'country'));
      country1012.on('change',Lino.chooser_handler(city1014,'country'));
      region1013.on('change',Lino.chooser_handler(city1014,'region'));
      Lino.users.Users.DetailFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.users.Users.DetailFormPanel.superclass.initComponent.call(this);
    // active_fields:
    city1014.on("change", function(){ this.save() }, this);
    zip_code1015.on("change", function(){ this.save() }, this);
  }
});


Lino.votes.MyVotes.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 17,
  initComponent : function() {
    var user1054 = new Lino.TwinCombo({ "anchor": "-20", "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Abstimmender</span>", "hidden": true, "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Abstimmender","(votes.MyVotes.user) The user who is voting.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/votes/MyVotes/user" }) }) });
    var workflow_buttons_disp1055 = new Ext.form.DisplayField({ "always_enabled": true, "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Aktionen", "listeners": { "render": Lino.quicktip_renderer("Aktionen","(votes.MyVotes.workflow_buttons) ") }, "name": "workflow_buttons", "value": "<br/>" });
    var mail_mode1056 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Benachrichtigungen per E-Mail", "forceSelection": true, "hiddenName": "mail_modeHidden", "listeners": { "render": Lino.quicktip_renderer("Benachrichtigungen per E-Mail","(votes.MyVotes.mail_mode) ") }, "name": "mail_mode", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.notify.MailModes) });
    var priority1057 = new Ext.form.NumberField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Priorit\u00e4t</span>", "listeners": { "render": Lino.quicktip_renderer("Priorit\u00e4t","(votes.MyVotes.priority) My personal priority for this ticket.") }, "name": "priority", "selectOnFocus": true, "value": 0 });
    var nickname1058 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Rufname</span>", "listeners": { "render": Lino.quicktip_renderer("Rufname","(votes.MyVotes.nickname) My nickname for this ticket. Optional.") }, "maxLength": 50, "name": "nickname", "selectOnFocus": true });
    var main_4_panel1059 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 19, "items": priority1057, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 80, "items": nickname1058, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 90, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1062 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ user1054, { "anchor": "-20", "autoHeight": true, "items": workflow_buttons_disp1055, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": mail_mode1056, "labelAlign": "top", "layout": "form", "xtype": "panel" }, main_4_panel1059 ], "labelAlign": "top", "labelWidth": 270, "layout": "form" });
    this.items = main_panel1062;
    this.before_row_edit = function(record) {
    }
    Lino.votes.MyVotes.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.tickets.TicketTypes.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 28,
  initComponent : function() {
    var id1065 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(tickets.TicketTypes.id) ") }, "name": "id", "selectOnFocus": true });
    var name1066 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(tickets.TicketTypes.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_de1067 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (de)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (de)","(tickets.TicketTypes.name_de) ") }, "maxLength": 200, "name": "name_de", "selectOnFocus": true });
    var name_fr1068 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (fr)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (fr)","(tickets.TicketTypes.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel1069 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 7, "items": id1065, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name1066, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name_de1067, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name_fr1068, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var TicketsByType_grid1104 = new Lino.tickets.TicketsByType.GridPanel({ "containing_panel": this, "flex": 83, "hide_top_toolbar": true, "listeners": { "render": Lino.quicktip_renderer("Anfragen","(tickets.tickets.TicketsByType) Global list of all tickets.") }, "master_panel": this, "preview_limit": 15, "tools": [ Lino.show_in_own_window_button(Lino.tickets.TicketsByType.grid) ] });
    var main_panel1105 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1069, TicketsByType_grid1104 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1105;
    this.before_row_edit = function(record) {
      TicketsByType_grid1104.on_master_changed();
    }
    Lino.tickets.TicketTypes.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.uploads.Uploads.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 36,
  initComponent : function() {
    var file1106 = Lino.file_field_handler(this,{ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Datei</span>", "listeners": { "render": Lino.quicktip_renderer("Datei","(uploads.Uploads.file) Pointer to the uploaded file. See\nlino.mixins.uploadable.Uploadable.file") }, "maxLength": 100, "name": "file", "selectOnFocus": true });
    var user1107 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Hochgeladen durch</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Hochgeladen durch","(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, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/uploads/Uploads/user" }) }) });
    var main_1_panel1108 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 51, "items": file1106, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 48, "items": user1107, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 162, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var upload_area1111 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Upload-Bereich", "forceSelection": true, "hiddenName": "upload_areaHidden", "listeners": { "render": Lino.quicktip_renderer("Upload-Bereich","(uploads.Uploads.upload_area) ") }, "name": "upload_area", "selectOnFocus": true, "store": Lino.uploads.UploadAreas });
    var type1112 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Upload-Art ausw\u00e4hlen...", "fieldLabel": "Upload-Art", "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Upload-Art","(uploads.Uploads.type) ") }, "name": "type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.uploads.UploadTypes.detail,Lino.uploads.UploadTypes.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/uploads/Uploads/type" }) }) });
    var description1113 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Beschreibung</span>", "listeners": { "render": Lino.quicktip_renderer("Beschreibung","(uploads.Uploads.description) A short description entered manually by the user.") }, "maxLength": 200, "name": "description", "selectOnFocus": true });
    var main_2_panel1114 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 19, "items": upload_area1111, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 39, "items": type1112, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 41, "items": description1113, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 135, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var owner_disp1118 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Verkn\u00fcpft mit", "name": "owner" });
    var main_panel1119 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1108, main_2_panel1114, { "anchor": "-20", "autoHeight": true, "items": owner_disp1118, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 126, "layout": "form" });
    this.items = main_panel1119;
    this.before_row_edit = function(record) {
      type1112.setContextValue('upload_area', record ? record.data['upload_areaHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      upload_area1111.on('change',Lino.chooser_handler(type1112,'upload_area'));
      Lino.uploads.Uploads.DetailFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.uploads.Uploads.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.contacts.Partners.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 15,
  initComponent : function() {
    var name1121 = 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.Partners.name) The full name of this partner. Used for alphabetic sorting.\nSubclasses may hide this field and fill it automatically,\ne.g. saving a Person will automatically set her\nname field to \"last_name, first_name\".") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var country1122 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Land ausw\u00e4hlen...", "fieldLabel": "Land", "hiddenName": "countryHidden", "listeners": { "render": Lino.quicktip_renderer("Land","(contacts.Partners.country) ") }, "name": "country", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Countries.detail,Lino.countries.Countries.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Partners/country" }) }) });
    var region1123 = new Lino.TwinCombo({ "emptyText": "Ort ausw\u00e4hlen...", "fieldLabel": "Regierungsbezirk", "flex": 28, "hidden": true, "hiddenName": "regionHidden", "listeners": { "render": Lino.quicktip_renderer("Regierungsbezirk","(contacts.Partners.region) ") }, "name": "region", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Places.detail,Lino.countries.Places.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Partners/region" }) }) });
    var city1124 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Ort ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Stadt</span>", "forceSelection": false, "hiddenName": "cityHidden", "listeners": { "render": Lino.quicktip_renderer("Stadt","(contacts.Partners.city) A pointer to Place.") }, "name": "city", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Places.detail,Lino.countries.Places.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Partners/city" }) }) });
    var zip_code1125 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "Postleitzahl", "listeners": { "render": Lino.quicktip_renderer("Postleitzahl","(contacts.Partners.zip_code) ") }, "maxLength": 10, "name": "zip_code", "selectOnFocus": true });
    var address_box_2_panel1126 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 28, "items": country1122, "labelAlign": "top", "layout": "form", "xtype": "panel" }, region1123, { "autoHeight": true, "flex": 28, "items": city1124, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 14, "items": zip_code1125, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var addr11130 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Adresszeile vor Stra\u00dfe</span>", "listeners": { "render": Lino.quicktip_renderer("Adresszeile vor Stra\u00dfe","(contacts.Partners.addr1) Adresszeile vor Stra\u00dfe") }, "maxLength": 200, "name": "addr1", "selectOnFocus": true });
    var street_prefix1131 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Pr\u00e4fix Stra\u00dfe</span>", "listeners": { "render": Lino.quicktip_renderer("Pr\u00e4fix Stra\u00dfe","(contacts.Partners.street_prefix) Text to print before name of street, but to ignore for sorting.") }, "maxLength": 200, "name": "street_prefix", "selectOnFocus": true });
    var street1132 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Stra\u00dfe</span>", "listeners": { "render": Lino.quicktip_renderer("Stra\u00dfe","(contacts.Partners.street) Name der Stra\u00dfe, ohne Hausnummer") }, "maxLength": 200, "name": "street", "selectOnFocus": true });
    var street_no1133 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "boxMinWidth": Lino.chars2width(10), "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Nr.</span>", "listeners": { "render": Lino.quicktip_renderer("Nr.","(contacts.Partners.street_no) Hausnummer") }, "maxLength": 10, "name": "street_no", "selectOnFocus": true });
    var street_box1134 = 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.Partners.street_box) Text to print after street nuber on the same line.") }, "maxLength": 10, "name": "street_box", "selectOnFocus": true });
    var address_box_4_panel1135 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 30, "items": street_prefix1131, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 36, "items": street1132, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": street_no1133, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": street_box1134, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 126, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var addr21140 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Adresszeile nach Stra\u00dfe</span>", "listeners": { "render": Lino.quicktip_renderer("Adresszeile nach Stra\u00dfe","(contacts.Partners.addr2) Adresszeile nach Stra\u00dfe") }, "maxLength": 200, "name": "addr2", "selectOnFocus": true });
    var address_box_panel1141 = new Ext.form.FieldSet({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "flex": 50, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": name1121, "labelAlign": "top", "layout": "form", "xtype": "panel" }, address_box_2_panel1126, { "anchor": "-20", "autoHeight": true, "items": addr11130, "labelAlign": "top", "layout": "form", "xtype": "panel" }, address_box_4_panel1135, { "anchor": "-20", "autoHeight": true, "items": addr21140, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 216, "layout": "form", "title": "Adresse" });
    var id1145 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(contacts.Partners.id) ") }, "name": "id", "selectOnFocus": true });
    var language1146 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Sprache</span>", "hiddenName": "languageHidden", "listeners": { "render": Lino.quicktip_renderer("Sprache","(contacts.Partners.language) The language to use when communicating with this partner.") }, "name": "language", "selectOnFocus": true, "store": [ [ "en", "Englisch" ], [ "de", "Deutsch" ], [ "fr", "Franz\u00f6sisch" ] ] });
    var info_box_panel1147 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 20, "items": id1145, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 80, "items": language1146, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 72, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var email1150 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">E-Mail-Adresse</span>", "listeners": { "render": Lino.quicktip_renderer("E-Mail-Adresse","(contacts.Partners.email) The primary email address.") }, "maxLength": 254, "name": "email", "selectOnFocus": true });
    var url1151 = new Lino.URLField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Adresse (URL)", "listeners": { "render": Lino.quicktip_renderer("Adresse (URL)","(contacts.Partners.url) ") }, "maxLength": 200, "name": "url", "selectOnFocus": true });
    var phone1152 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Telefon</span>", "listeners": { "render": Lino.quicktip_renderer("Telefon","(contacts.Partners.phone) The primary phone number.  Note that Lino does not ignore\nformatting characters in phone numbers when searching.  For\nexample, if you enter \"087/12.34.56\" as a phone number, then a\nsearch for phone number containing \"1234\" will not find it.") }, "maxLength": 200, "name": "phone", "selectOnFocus": true });
    var gsm1153 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">GSM</span>", "listeners": { "render": Lino.quicktip_renderer("GSM","(contacts.Partners.gsm) The primary mobile phone number.") }, "maxLength": 200, "name": "gsm", "selectOnFocus": true });
    var fax1154 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Fax", "listeners": { "render": Lino.quicktip_renderer("Fax","(contacts.Partners.fax) ") }, "maxLength": 200, "name": "fax", "selectOnFocus": true });
    var contact_box_5_panel1155 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": gsm1153, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": fax1154, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 36, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var contact_box_panel1158 = new Ext.form.FieldSet({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "flex": 25, "frame": true, "hideCheckBoxLabels": true, "items": [ info_box_panel1147, { "anchor": "-20", "autoHeight": true, "items": email1150, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": url1151, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": phone1152, "labelAlign": "top", "layout": "form", "xtype": "panel" }, contact_box_5_panel1155 ], "labelAlign": "top", "labelWidth": 135, "layout": "form", "title": "Kontakt" });
    var overview_disp1162 = new Ext.form.DisplayField({ "always_enabled": true, "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Beschreibung", "listeners": { "render": Lino.quicktip_renderer("Beschreibung","(contacts.Partners.overview) ") }, "name": "overview", "value": "<br/>" });
    var main_1_panel1163 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ address_box_panel1141, contact_box_panel1158, { "autoHeight": true, "flex": 25, "items": overview_disp1162, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 117, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var remarks1165 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Bemerkungen", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Bemerkungen","(contacts.Partners.remarks) ") }, "name": "remarks", "selectOnFocus": true });
    var main_panel1166 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1163, { "flex": 50, "items": remarks1165, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 108, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1166;
    this.before_row_edit = function(record) {
      region1123.setContextValue('country', record ? record.data['countryHidden'] : undefined);
      city1124.setContextValue('country', record ? record.data['countryHidden'] : undefined);
      city1124.setContextValue('region', record ? record.data['regionHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      country1122.on('change',Lino.chooser_handler(region1123,'country'));
      country1122.on('change',Lino.chooser_handler(city1124,'country'));
      region1123.on('change',Lino.chooser_handler(city1124,'region'));
      Lino.contacts.Partners.DetailFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.contacts.Partners.DetailFormPanel.superclass.initComponent.call(this);
    // active_fields:
    city1124.on("change", function(){ this.save() }, this);
    zip_code1125.on("change", function(){ this.save() }, this);
  }
});


Lino.tickets.ProjectTypes.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 22,
  initComponent : function() {
    var id1168 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(tickets.ProjectTypes.id) ") }, "name": "id", "selectOnFocus": true });
    var name1169 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(tickets.ProjectTypes.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_de1170 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (de)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (de)","(tickets.ProjectTypes.name_de) ") }, "maxLength": 200, "name": "name_de", "selectOnFocus": true });
    var name_fr1171 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (fr)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (fr)","(tickets.ProjectTypes.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel1172 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 7, "items": id1168, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name1169, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name_de1170, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name_fr1171, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1201 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1172 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1201;
    this.before_row_edit = function(record) {
    }
    Lino.tickets.ProjectTypes.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.tickets.Sites.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 23,
  initComponent : function() {
    var name1202 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(tickets.Sites.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var remark1203 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bemerkung", "listeners": { "render": Lino.quicktip_renderer("Bemerkung","(tickets.Sites.remark) ") }, "maxLength": 200, "name": "remark", "selectOnFocus": true });
    var main_panel1204 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": name1202, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": remark1203, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 108, "layout": "form" });
    this.items = main_panel1204;
    this.before_row_edit = function(record) {
    }
    Lino.tickets.Sites.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.excerpts.Excerpts.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 19,
  initComponent : function() {
    var excerpt_type438 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Auszugsart ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Auszugsart</span>", "hiddenName": "excerpt_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Auszugsart","(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, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/excerpt_type" }) }) });
    var project439 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Projekt ausw\u00e4hlen...", "fieldLabel": "Projekt", "hiddenName": "projectHidden", "listeners": { "render": Lino.quicktip_renderer("Projekt","(excerpts.Excerpts.project) ") }, "name": "project", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.tickets.Projects.detail,Lino.tickets.Projects.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/project" }) }) });
    var main_1_panel440 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": excerpt_type438, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": project439, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 99, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var company443 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Organisation ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Empf\u00e4nger (Organisation)</span>", "hiddenName": "companyHidden", "listeners": { "render": Lino.quicktip_renderer("Empf\u00e4nger (Organisation)","(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, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/company" }) }) });
    var contact_person444 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Person ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Empf\u00e4nger (Person)</span>", "hiddenName": "contact_personHidden", "listeners": { "render": Lino.quicktip_renderer("Empf\u00e4nger (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, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/contact_person" }) }) });
    var main_2_panel445 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": company443, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": contact_person444, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 225, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel448 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel440, main_2_panel445 ], "labelAlign": "top", "layout": "form" });
    this.items = main_panel448;
    this.before_row_edit = function(record) {
      excerpt_type438.setContextValue('owner', record ? record.data['owner'] : undefined);
      contact_person444.setContextValue('company', record ? record.data['companyHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      company443.on('change',Lino.chooser_handler(contact_person444,'company'));
      Lino.excerpts.Excerpts.InsertFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.excerpts.Excerpts.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.excerpts.ExcerptTypes.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 18,
  initComponent : function() {
    var name1207 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Bezeichnung</span>", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(excerpts.ExcerptTypes.name) The designation of this excerpt type.\nOne field for every language.") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_de1208 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (de)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (de)","(excerpts.ExcerptTypes.name_de) ") }, "maxLength": 200, "name": "name_de", "selectOnFocus": true });
    var name_fr1209 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (fr)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (fr)","(excerpts.ExcerptTypes.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel1210 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 33, "items": name1207, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": name_de1208, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": name_fr1209, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var content_type1214 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Datenbankmodell ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Modell</span>", "hiddenName": "content_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Modell","(excerpts.ExcerptTypes.content_type) The model that can issue printouts of this type.") }, "name": "content_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.gfks.ContentTypes.detail,Lino.gfks.ContentTypes.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/ExcerptTypes/content_type" }) }) });
    var primary1215 = new Ext.form.Checkbox({ "anchor": "-20", "autoHeight": true, "boxLabel": "Prim\u00e4r", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Prim\u00e4r","(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 certifying1216 = new Ext.form.Checkbox({ "anchor": "-20", "autoHeight": true, "boxLabel": "Bescheinigend", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Bescheinigend","(excerpts.ExcerptTypes.certifying) Ob Ausz\u00fcge dieser Art als einmalige Ausdrucke behandelt werden sollen.") }, "name": "certifying", "selectOnFocus": true });
    var main_2_panel1217 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": content_type1214, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": primary1215, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": certifying1216, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 126, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var build_method1221 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Konstruktionsmethode</span>", "forceSelection": true, "hiddenName": "build_methodHidden", "listeners": { "render": Lino.quicktip_renderer("Konstruktionsmethode","(excerpts.ExcerptTypes.build_method) See lino.modlib.printing.mixins.PrintableType.build_method.") }, "name": "build_method", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.printing.BuildMethods) });
    var template1222 = new Lino.SimpleRemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Vorlage</span>", "listeners": { "render": Lino.quicktip_renderer("Vorlage","(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_template1223 = new Lino.SimpleRemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Textk\u00f6rper-Vorlage</span>", "listeners": { "render": Lino.quicktip_renderer("Textk\u00f6rper-Vorlage","(excerpts.ExcerptTypes.body_template) The body template to be used when         rendering a printable of this type. This is a list of files         with extension `.body.html`.") }, "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_panel1224 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 53, "items": build_method1221, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 23, "items": template1222, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 23, "items": body_template1223, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 189, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1228 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1210, main_2_panel1217, main_3_panel1224 ], "labelAlign": "top", "layout": "form" });
    this.items = main_panel1228;
    this.before_row_edit = function(record) {
      template1222.setContextValue('build_method', record ? record.data['build_methodHidden'] : undefined);
      template1222.setContextValue('content_type', record ? record.data['content_typeHidden'] : undefined);
      body_template1223.setContextValue('content_type', record ? record.data['content_typeHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      build_method1221.on('change',Lino.chooser_handler(template1222,'build_method'));
      content_type1214.on('change',Lino.chooser_handler(template1222,'content_type'));
      content_type1214.on('change',Lino.chooser_handler(body_template1223,'content_type'));
      Lino.excerpts.ExcerptTypes.InsertFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.excerpts.ExcerptTypes.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.users.Users.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 6,
  initComponent : function() {
    var username1229 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Benutzername</span>", "listeners": { "render": Lino.quicktip_renderer("Benutzername","(users.Users.username) Must be unique. Leaving this empty means that the user cannot log in.") }, "maxLength": 30, "name": "username", "selectOnFocus": true });
    var email1230 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">E-Mail-Adresse</span>", "listeners": { "render": Lino.quicktip_renderer("E-Mail-Adresse","(users.Users.email) The primary email address.") }, "maxLength": 254, "name": "email", "selectOnFocus": true });
    var main_1_panel1231 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": username1229, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": email1230, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 135, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var first_name1234 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Vorname</span>", "listeners": { "render": Lino.quicktip_renderer("Vorname","(users.Users.first_name) The first name, also known as given name.") }, "maxLength": 200, "name": "first_name", "selectOnFocus": true });
    var last_name1235 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Familienname</span>", "listeners": { "render": Lino.quicktip_renderer("Familienname","(users.Users.last_name) The last name, also known as family name.") }, "maxLength": 200, "name": "last_name", "selectOnFocus": true });
    var main_2_panel1236 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": first_name1234, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": last_name1235, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 117, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var language1239 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Sprache</span>", "hiddenName": "languageHidden", "listeners": { "render": Lino.quicktip_renderer("Sprache","(users.Users.language) The language to use when communicating with this partner.") }, "name": "language", "selectOnFocus": true, "store": [ [ "en", "Englisch" ], [ "de", "Deutsch" ], [ "fr", "Franz\u00f6sisch" ] ] });
    var profile1240 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Benutzerart</span>", "forceSelection": true, "hiddenName": "profileHidden", "listeners": { "render": Lino.quicktip_renderer("Benutzerart","(users.Users.profile) The profile of a user is what defines her or his permissions.") }, "name": "profile", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.users.UserTypes) });
    var main_4_panel1241 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 47, "items": language1239, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 52, "items": profile1240, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 108, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1244 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1231, main_2_panel1236, main_4_panel1241 ], "labelAlign": "top", "layout": "form" });
    this.items = main_panel1244;
    this.before_row_edit = function(record) {
    }
    Lino.users.Users.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.topics.Topics.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 9,
  initComponent : function() {
    var id909 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(topics.Topics.id) ") }, "name": "id", "selectOnFocus": true });
    var ref910 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Referenz</span>", "listeners": { "render": Lino.quicktip_renderer("Referenz","(topics.Topics.ref) The reference. This must be either empty or unique.") }, "maxLength": 40, "name": "ref", "selectOnFocus": true });
    var name911 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(topics.Topics.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_de912 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (de)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (de)","(topics.Topics.name_de) ") }, "maxLength": 200, "name": "name_de", "selectOnFocus": true });
    var name_fr913 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (fr)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (fr)","(topics.Topics.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var topic_group914 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Themengruppe ausw\u00e4hlen...", "fieldLabel": "Themengruppe", "hiddenName": "topic_groupHidden", "listeners": { "render": Lino.quicktip_renderer("Themengruppe","(topics.Topics.topic_group) ") }, "name": "topic_group", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.topics.TopicGroups.detail,Lino.topics.TopicGroups.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/topics/Topics/topic_group" }) }) });
    var main_1_panel915 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 4, "items": id909, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": ref910, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": name911, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": name_de912, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": name_fr913, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 18, "items": topic_group914, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" }, "region": "north", "split": true });
    var description922 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Long description", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Long description","(topics.Topics.description) ") }, "name": "description", "selectOnFocus": true });
    var description_de923 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Long description (de)", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Long description (de)","(topics.Topics.description_de) ") }, "name": "description_de", "selectOnFocus": true });
    var description_fr924 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Long description (fr)", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Long description (fr)","(topics.Topics.description_fr) ") }, "name": "description_fr", "selectOnFocus": true });
    var main_2_panel925 = new Ext.Panel({ "autoScroll": false, "border": false, "flex": 5, "frame": false, "hideCheckBoxLabels": true, "items": [ { "flex": 33, "items": description922, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "flex": 33, "items": description_de923, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "flex": 33, "items": description_fr924, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 198, "layout": "hbox", "layoutConfig": { "align": "stretch" }, "region": "center", "split": true });
    var tickets_TicketsByTopic_grid959 = new Lino.tickets.TicketsByTopic.GridPanel({ "containing_panel": this, "flex": 50, "hide_top_toolbar": true, "listeners": { "render": Lino.quicktip_renderer("Anfragen","(tickets.tickets.TicketsByTopic) Global list of all tickets.") }, "master_panel": this, "preview_limit": 15, "tools": [ Lino.show_in_own_window_button(Lino.tickets.TicketsByTopic.grid) ] });
    var main_3_panel968 = new Ext.Panel({ "autoScroll": false, "border": false, "flex": 5, "frame": false, "hideCheckBoxLabels": true, "items": [ tickets_TicketsByTopic_grid959 ], "labelAlign": "top", "layout": "hbox", "layoutConfig": { "align": "stretch" }, "region": "south", "split": true });
    var main_panel969 = new Lino.VBorderPanel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel915, main_2_panel925, main_3_panel968 ], "labelAlign": "top" });
    this.items = main_panel969;
    this.before_row_edit = function(record) {
      tickets_TicketsByTopic_grid959.on_master_changed();
    }
    Lino.topics.Topics.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.users.OtherUsers.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 6,
  disable_editing: true,
  initComponent : function() {
    var first_name1245 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Vorname</span>", "listeners": { "render": Lino.quicktip_renderer("Vorname","(users.OtherUsers.first_name) The first name, also known as given name.") }, "maxLength": 200, "name": "first_name", "selectOnFocus": true });
    var last_name1246 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Familienname</span>", "listeners": { "render": Lino.quicktip_renderer("Familienname","(users.OtherUsers.last_name) The last name, also known as family name.") }, "maxLength": 200, "name": "last_name", "selectOnFocus": true });
    var city1247 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Ort ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Stadt</span>", "forceSelection": false, "hiddenName": "cityHidden", "listeners": { "render": Lino.quicktip_renderer("Stadt","(users.OtherUsers.city) A pointer to Place.") }, "name": "city", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Places.detail,Lino.countries.Places.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/users/OtherUsers/city" }) }) });
    var main_1_panel1248 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 33, "items": first_name1245, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": last_name1246, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 32, "items": city1247, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 117, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var phone1252 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Telefon</span>", "listeners": { "render": Lino.quicktip_renderer("Telefon","(users.OtherUsers.phone) The primary phone number.  Note that Lino does not ignore\nformatting characters in phone numbers when searching.  For\nexample, if you enter \"087/12.34.56\" as a phone number, then a\nsearch for phone number containing \"1234\" will not find it.") }, "maxLength": 200, "name": "phone", "selectOnFocus": true });
    var gsm1253 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">GSM</span>", "listeners": { "render": Lino.quicktip_renderer("GSM","(users.OtherUsers.gsm) The primary mobile phone number.") }, "maxLength": 200, "name": "gsm", "selectOnFocus": true });
    var main_2_panel1254 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": phone1252, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": gsm1253, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 72, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var about_me_htmlbox1257 = 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("\u00dcber mich","(users.OtherUsers.about_me) ") }, "name": "about_me", "title": "\u00dcber mich", "value": "<br/>" });
    var main_panel1258 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1248, main_2_panel1254, about_me_htmlbox1257 ], "labelAlign": "top", "labelWidth": 90, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1258;
    this.before_row_edit = function(record) {
      about_me_htmlbox1257.refresh();
    }
    Lino.users.OtherUsers.DetailFormPanel.superclass.initComponent.call(this);
    // active_fields:
    city1247.on("change", function(){ this.save() }, this);
  }
});


Lino.system.SiteConfigs.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 1,
  initComponent : function() {
    var default_build_method1259 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Standard-Konstruktionsmethode</span>", "forceSelection": true, "hiddenName": "default_build_methodHidden", "listeners": { "render": Lino.quicktip_renderer("Standard-Konstruktionsmethode","(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_panel1260 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "items": default_build_method1259, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 270, "layout": "fit" });
    this.items = main_panel1260;
    this.before_row_edit = function(record) {
    }
    Lino.system.SiteConfigs.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.votes.VotesByVotable.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 17,
  initComponent : function() {
    var mail_mode1262 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Benachrichtigungen per E-Mail", "forceSelection": true, "hiddenName": "mail_modeHidden", "listeners": { "render": Lino.quicktip_renderer("Benachrichtigungen per E-Mail","(votes.VotesByVotable.mail_mode) ") }, "name": "mail_mode", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.notify.MailModes) });
    var workflow_buttons_disp1263 = new Ext.form.DisplayField({ "always_enabled": true, "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Aktionen", "listeners": { "render": Lino.quicktip_renderer("Aktionen","(votes.VotesByVotable.workflow_buttons) ") }, "name": "workflow_buttons", "value": "<br/>" });
    var rating1264 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Bewertung</span>", "forceSelection": true, "hiddenName": "ratingHidden", "listeners": { "render": Lino.quicktip_renderer("Bewertung","(votes.VotesByVotable.rating) How the ticket author rates my help on this ticket.") }, "name": "rating", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.votes.Ratings) });
    var main_panel1265 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": mail_mode1262, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": workflow_buttons_disp1263, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": rating1264, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 270, "layout": "form" });
    this.items = main_panel1265;
    this.before_row_edit = function(record) {
    }
    Lino.votes.VotesByVotable.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.faculties.SkillTypes.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 31,
  initComponent : function() {
    var id1269 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(faculties.SkillTypes.id) ") }, "name": "id", "selectOnFocus": true });
    var name1270 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(faculties.SkillTypes.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_de1271 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (de)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (de)","(faculties.SkillTypes.name_de) ") }, "maxLength": 200, "name": "name_de", "selectOnFocus": true });
    var name_fr1272 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (fr)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (fr)","(faculties.SkillTypes.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_2_panel1273 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 33, "items": name1270, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": name_de1271, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": name_fr1272, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1277 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": id1269, "labelAlign": "top", "layout": "form", "xtype": "panel" }, main_2_panel1273 ], "labelAlign": "top", "labelWidth": 27, "layout": "form" });
    this.items = main_panel1277;
    this.before_row_edit = function(record) {
    }
    Lino.faculties.SkillTypes.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.faculties.Skills.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 32,
  initComponent : function() {
    var id1279 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(faculties.Skills.id) ") }, "name": "id", "selectOnFocus": true });
    var name1280 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(faculties.Skills.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_de1281 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (de)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (de)","(faculties.Skills.name_de) ") }, "maxLength": 200, "name": "name_de", "selectOnFocus": true });
    var name_fr1282 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (fr)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (fr)","(faculties.Skills.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel1283 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 7, "items": id1279, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name1280, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name_de1281, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name_fr1282, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var skill_type1288 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "F\u00e4higkeitsart ausw\u00e4hlen...", "fieldLabel": "F\u00e4higkeitsart", "hiddenName": "skill_typeHidden", "listeners": { "render": Lino.quicktip_renderer("F\u00e4higkeitsart","(faculties.Skills.skill_type) ") }, "name": "skill_type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.faculties.SkillTypes.detail,Lino.faculties.SkillTypes.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/faculties/Skills/skill_type" }) }) });
    var parent1289 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "F\u00e4higkeit ausw\u00e4hlen...", "fieldLabel": "\u00dcbergeordnete F\u00e4higkeit", "hiddenName": "parentHidden", "listeners": { "render": Lino.quicktip_renderer("\u00dcbergeordnete F\u00e4higkeit","(faculties.Skills.parent) ") }, "name": "parent", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.faculties.Skills.detail,Lino.faculties.Skills.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/faculties/Skills/parent" }) }) });
    var affinity1290 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Affinit\u00e4t</span>", "listeners": { "render": Lino.quicktip_renderer("Affinit\u00e4t","(faculties.Skills.affinity) How much workers enjoy to get a new ticket requiring this skill.A number between -100 and +100.") }, "name": "affinity", "selectOnFocus": true, "value": 100 });
    var main_2_panel1291 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 44, "items": skill_type1288, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 44, "items": parent1289, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 11, "items": affinity1290, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 216, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var remarks1295 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Bemerkungen", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Bemerkungen","(faculties.Skills.remarks) ") }, "name": "remarks", "selectOnFocus": true });
    var main_panel1358 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1283, main_2_panel1291, { "flex": 41, "items": remarks1295, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 108, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1358;
    this.before_row_edit = function(record) {
    }
    Lino.faculties.Skills.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.countries.Countries.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 4,
  initComponent : function() {
    var isocode1360 = 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.\n        For countries that no longer exist it may be a 4-letter code.") }, "maxLength": 4, "name": "isocode", "selectOnFocus": true });
    var short_code1361 = 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_panel1362 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": isocode1360, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": short_code1361, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 99, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var name1365 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(countries.Countries.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_de1366 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (de)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (de)","(countries.Countries.name_de) ") }, "maxLength": 200, "name": "name_de", "selectOnFocus": true });
    var name_fr1367 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (fr)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (fr)","(countries.Countries.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_2_panel1368 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 33, "items": name1365, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": name_de1366, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": name_fr1367, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1372 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1362, main_2_panel1368 ], "labelAlign": "top", "layout": "form" });
    this.items = main_panel1372;
    this.before_row_edit = function(record) {
    }
    Lino.countries.Countries.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.faculties.DemandsByDemander.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 29,
  initComponent : function() {
    var skill1373 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "F\u00e4higkeit ausw\u00e4hlen...", "fieldLabel": "F\u00e4higkeit", "hiddenName": "skillHidden", "listeners": { "render": Lino.quicktip_renderer("F\u00e4higkeit","(faculties.DemandsByDemander.skill) ") }, "name": "skill", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.faculties.Skills.detail,Lino.faculties.Skills.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/faculties/DemandsByDemander/skill" }) }) });
    var importance1374 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Importance</span>", "listeners": { "render": Lino.quicktip_renderer("Importance","(faculties.DemandsByDemander.importance) How important this skill is for this demand. A number between -100 and +100.") }, "name": "importance", "selectOnFocus": true, "value": 100 });
    var main_panel1375 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": skill1373, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": importance1374, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 99, "layout": "form" });
    this.items = main_panel1375;
    this.before_row_edit = function(record) {
    }
    Lino.faculties.DemandsByDemander.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.uploads.Uploads.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 36,
  initComponent : function() {
    var type1378 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Upload-Art ausw\u00e4hlen...", "fieldLabel": "Upload-Art", "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Upload-Art","(uploads.Uploads.type) ") }, "name": "type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.uploads.UploadTypes.detail,Lino.uploads.UploadTypes.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/uploads/Uploads/type" }) }) });
    var description1379 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Beschreibung</span>", "listeners": { "render": Lino.quicktip_renderer("Beschreibung","(uploads.Uploads.description) A short description entered manually by the user.") }, "maxLength": 200, "name": "description", "selectOnFocus": true });
    var file1380 = Lino.file_field_handler(this,{ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Datei</span>", "listeners": { "render": Lino.quicktip_renderer("Datei","(uploads.Uploads.file) Pointer to the uploaded file. See\nlino.mixins.uploadable.Uploadable.file") }, "maxLength": 100, "name": "file", "selectOnFocus": true });
    var user1381 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Hochgeladen durch</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Hochgeladen durch","(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, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/uploads/Uploads/user" }) }) });
    var main_panel1382 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": type1378, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": description1379, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": file1380, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": user1381, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 162, "layout": "form" });
    this.items = main_panel1382;
    this.before_row_edit = function(record) {
      type1378.setContextValue('upload_area', record ? record.data['upload_areaHidden'] : undefined);
    }
    Lino.uploads.Uploads.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.topics.Topics.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 9,
  initComponent : function() {
    var topic_group970 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Themengruppe ausw\u00e4hlen...", "fieldLabel": "Themengruppe", "hiddenName": "topic_groupHidden", "listeners": { "render": Lino.quicktip_renderer("Themengruppe","(topics.Topics.topic_group) ") }, "name": "topic_group", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.topics.TopicGroups.detail,Lino.topics.TopicGroups.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/topics/Topics/topic_group" }) }) });
    var name971 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(topics.Topics.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_de972 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (de)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (de)","(topics.Topics.name_de) ") }, "maxLength": 200, "name": "name_de", "selectOnFocus": true });
    var name_fr973 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (fr)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (fr)","(topics.Topics.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_2_panel974 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 33, "items": name971, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": name_de972, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": name_fr973, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel978 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": topic_group970, "labelAlign": "top", "layout": "form", "xtype": "panel" }, main_2_panel974 ], "labelAlign": "top", "labelWidth": 117, "layout": "form" });
    this.items = main_panel978;
    this.before_row_edit = function(record) {
    }
    Lino.topics.Topics.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.tickets.MyCompetences.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 27,
  initComponent : function() {
    var project1387 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Projekt ausw\u00e4hlen...", "fieldLabel": "Projekt", "hiddenName": "projectHidden", "listeners": { "render": Lino.quicktip_renderer("Projekt","(tickets.MyCompetences.project) ") }, "name": "project", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.tickets.Projects.detail,Lino.tickets.Projects.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/MyCompetences/project" }) }) });
    var priority1388 = new Ext.form.NumberField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Priorit\u00e4t", "listeners": { "render": Lino.quicktip_renderer("Priorit\u00e4t","(tickets.MyCompetences.priority) ") }, "name": "priority", "selectOnFocus": true, "value": 100 });
    var remark1389 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bemerkung", "listeners": { "render": Lino.quicktip_renderer("Bemerkung","(tickets.MyCompetences.remark) ") }, "maxLength": 200, "name": "remark", "selectOnFocus": true });
    var main_panel1390 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": project1387, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": priority1388, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": remark1389, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 90, "layout": "form" });
    this.items = main_panel1390;
    this.before_row_edit = function(record) {
    }
    Lino.tickets.MyCompetences.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.uploads.UploadTypes.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 35,
  initComponent : function() {
    var name1394 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(uploads.UploadTypes.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_de1395 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (de)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (de)","(uploads.UploadTypes.name_de) ") }, "maxLength": 200, "name": "name_de", "selectOnFocus": true });
    var name_fr1396 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (fr)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (fr)","(uploads.UploadTypes.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel1397 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 33, "items": name1394, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": name_de1395, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": name_fr1396, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var upload_area1401 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Upload-Bereich", "forceSelection": true, "hiddenName": "upload_areaHidden", "listeners": { "render": Lino.quicktip_renderer("Upload-Bereich","(uploads.UploadTypes.upload_area) ") }, "name": "upload_area", "selectOnFocus": true, "store": Lino.uploads.UploadAreas });
    var main_panel1402 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1397, { "anchor": "-20", "autoHeight": true, "items": upload_area1401, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 135, "layout": "form" });
    this.items = main_panel1402;
    this.before_row_edit = function(record) {
    }
    Lino.uploads.UploadTypes.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.uploads.UploadsByController.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 36,
  initComponent : function() {
    var file1404 = Lino.file_field_handler(this,{ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Datei</span>", "listeners": { "render": Lino.quicktip_renderer("Datei","(uploads.UploadsByController.file) Pointer to the uploaded file. See\nlino.mixins.uploadable.Uploadable.file") }, "maxLength": 100, "name": "file", "selectOnFocus": true });
    var type1405 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Upload-Art ausw\u00e4hlen...", "fieldLabel": "Upload-Art", "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Upload-Art","(uploads.UploadsByController.type) ") }, "name": "type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.uploads.UploadTypes.detail,Lino.uploads.UploadTypes.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/uploads/UploadsByController/type" }) }) });
    var description1406 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Beschreibung</span>", "listeners": { "render": Lino.quicktip_renderer("Beschreibung","(uploads.UploadsByController.description) A short description entered manually by the user.") }, "maxLength": 200, "name": "description", "selectOnFocus": true });
    var main_panel1407 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": file1404, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": type1405, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": description1406, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 117, "layout": "form" });
    this.items = main_panel1407;
    this.before_row_edit = function(record) {
      type1405.setContextValue('upload_area', record ? record.data['upload_areaHidden'] : undefined);
    }
    Lino.uploads.UploadsByController.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.comments.CommentTypes.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 21,
  initComponent : function() {
    var id1411 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(comments.CommentTypes.id) ") }, "name": "id", "selectOnFocus": true });
    var name1412 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(comments.CommentTypes.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_de1413 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (de)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (de)","(comments.CommentTypes.name_de) ") }, "maxLength": 200, "name": "name_de", "selectOnFocus": true });
    var name_fr1414 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (fr)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (fr)","(comments.CommentTypes.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel1415 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 7, "items": id1411, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name1412, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name_de1413, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name_fr1414, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1421 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1415 ], "labelAlign": "top", "labelWidth": 99, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1421;
    this.before_row_edit = function(record) {
    }
    Lino.comments.CommentTypes.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.faculties.DemandsByDemander.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 29,
  initComponent : function() {
    var skill1422 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "F\u00e4higkeit ausw\u00e4hlen...", "fieldLabel": "F\u00e4higkeit", "hiddenName": "skillHidden", "listeners": { "render": Lino.quicktip_renderer("F\u00e4higkeit","(faculties.DemandsByDemander.skill) ") }, "name": "skill", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.faculties.Skills.detail,Lino.faculties.Skills.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/faculties/DemandsByDemander/skill" }) }) });
    var importance1423 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Importance</span>", "listeners": { "render": Lino.quicktip_renderer("Importance","(faculties.DemandsByDemander.importance) How important this skill is for this demand. A number between -100 and +100.") }, "name": "importance", "selectOnFocus": true, "value": 100 });
    var main_panel1424 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": skill1422, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": importance1423, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 99, "layout": "form" });
    this.items = main_panel1424;
    this.before_row_edit = function(record) {
    }
    Lino.faculties.DemandsByDemander.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.tickets.Competences.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 27,
  initComponent : function() {
    var project720 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Projekt ausw\u00e4hlen...", "fieldLabel": "Projekt", "hiddenName": "projectHidden", "listeners": { "render": Lino.quicktip_renderer("Projekt","(tickets.Competences.project) ") }, "name": "project", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.tickets.Projects.detail,Lino.tickets.Projects.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Competences/project" }) }) });
    var user721 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Autor</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Autor","(tickets.Competences.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, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Competences/user" }) }) });
    var priority722 = new Ext.form.NumberField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Priorit\u00e4t", "listeners": { "render": Lino.quicktip_renderer("Priorit\u00e4t","(tickets.Competences.priority) ") }, "name": "priority", "selectOnFocus": true, "value": 100 });
    var main_1_panel723 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 44, "items": project720, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 44, "items": user721, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 11, "items": priority722, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 90, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var remark727 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bemerkung", "listeners": { "render": Lino.quicktip_renderer("Bemerkung","(tickets.Competences.remark) ") }, "maxLength": 200, "name": "remark", "selectOnFocus": true });
    var main_panel759 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel723, { "autoHeight": true, "items": remark727, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 90, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel759;
    this.before_row_edit = function(record) {
    }
    Lino.tickets.Competences.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.gfks.ContentTypes.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 2,
  initComponent : function() {
    var id1427 = 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_label1428 = 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 model1429 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Python Modell-Klassenname", "listeners": { "render": Lino.quicktip_renderer("Python Modell-Klassenname","(gfks.ContentTypes.model) ") }, "maxLength": 100, "name": "model", "selectOnFocus": true });
    var base_classes_disp1430 = 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_panel1431 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 6, "items": id1427, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 27, "items": app_label1428, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 27, "items": model1429, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 38, "items": base_classes_disp1430, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 234, "layout": "hbox", "layoutConfig": { "align": "stretchmax" }, "region": "north", "split": true });
    var main_panel1448 = new Lino.VBorderPanel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1431 ], "labelAlign": "top" });
    this.items = main_panel1448;
    this.before_row_edit = function(record) {
    }
    Lino.gfks.ContentTypes.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.faculties.Offers.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 30,
  initComponent : function() {
    var user551 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Benutzer</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Benutzer","(faculties.Offers.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, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/faculties/Offers/user" }) }) });
    var supplier552 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Person ausw\u00e4hlen...", "fieldLabel": "Anbieter", "hiddenName": "supplierHidden", "listeners": { "render": Lino.quicktip_renderer("Anbieter","(faculties.Offers.supplier) ") }, "name": "supplier", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/faculties/Offers/supplier" }) }) });
    var main_1_panel553 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": user551, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": supplier552, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 81, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var faculty556 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "F\u00e4higkeit ausw\u00e4hlen...", "fieldLabel": "F\u00e4higkeit", "hiddenName": "facultyHidden", "listeners": { "render": Lino.quicktip_renderer("F\u00e4higkeit","(faculties.Offers.faculty) ") }, "name": "faculty", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.faculties.Skills.detail,Lino.faculties.Skills.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/faculties/Offers/faculty" }) }) });
    var affinity557 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Affinit\u00e4t</span>", "listeners": { "render": Lino.quicktip_renderer("Affinit\u00e4t","(faculties.Offers.affinity) How much this user likes to get a new ticket in this faculty.A number between -100 and +100.") }, "name": "affinity", "selectOnFocus": true, "value": 100 });
    var main_2_panel558 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 80, "items": faculty556, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 20, "items": affinity557, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 90, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var description561 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Beschreibung", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Beschreibung","(faculties.Offers.description) ") }, "name": "description", "selectOnFocus": true });
    var main_panel562 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel553, main_2_panel558, { "flex": 71, "items": description561, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 117, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel562;
    this.before_row_edit = function(record) {
    }
    Lino.faculties.Offers.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.countries.Countries.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 4,
  initComponent : function() {
    var isocode1449 = 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.\n        For countries that no longer exist it may be a 4-letter code.") }, "maxLength": 4, "name": "isocode", "selectOnFocus": true });
    var name1450 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(countries.Countries.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_de1451 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (de)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (de)","(countries.Countries.name_de) ") }, "maxLength": 200, "name": "name_de", "selectOnFocus": true });
    var name_fr1452 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (fr)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (fr)","(countries.Countries.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var short_code1453 = 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_panel1454 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 12, "items": isocode1449, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": name1450, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": name_de1451, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": name_fr1452, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 12, "items": short_code1453, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1555 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1454 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1555;
    this.before_row_edit = function(record) {
    }
    Lino.countries.Countries.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.about.About.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  disable_editing: true,
  initComponent : function() {
    var server_status_disp1557 = 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_panel1558 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "flex": 25, "html": "<div class=\"htmlText\"><span>Dies ist <a href=\"http://noi.lino-framework.org/\" target=\"_blank\">Lino Care</a> 2017.2.0 unter <a href=\"http://www.lino-framework.org\" target=\"_blank\">Lino</a> 2016.12.0, <a href=\"http://www.djangoproject.com\" target=\"_blank\">Django</a> 1.9.12, <a href=\"http://www.python.org/\" target=\"_blank\">Python</a> 2.7.12, <a href=\"http://babel.edgewall.org/\" target=\"_blank\">Babel</a> 2.3.4, <a href=\"http://jinja.pocoo.org/\" target=\"_blank\">Jinja</a> 2.9.5, <a href=\"http://labix.org/python-dateutil\" target=\"_blank\">python-dateutil</a> 2.6.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=\"https://github.com/django/channels\" target=\"_blank\">Channels (inactive)</a> 1.0.3, <a href=\"http://appyframework.org/pod.html\" target=\"_blank\">Appy</a> 0.9.5 (2017/03/01 08:14)</span><p>Sprachen: en, de, fr</p><p>Server l&#228;uft seit : <b>16.03.17 um 14:55</b> (UTC)</p><p>Dies ist eine Demo-Anwendung.</p><p>Simuliertes Tagesdatum Samstag, 23. Mai 2015.</p><p>Source timestamps:</p><ul><li>django : <b>09.03.17 um 05:04</b></li><li>rest_framework : <b>09.03.17 um 05:39</b></li><li>atelier : <b>15.03.17 um 16:14</b></li><li>lino : <b>16.03.17 um 13:42</b></li><li>lino_xl : <b>16.03.17 um 13:42</b></li><li>lino_noi : <b>16.03.17 um 14:54</b></li></ul></div>", "xtype": "label" }, { "autoHeight": true, "items": server_status_disp1557, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 126, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1558;
    this.before_row_edit = function(record) {
    }
    Lino.about.About.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.excerpts.Excerpts.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 19,
  initComponent : function() {
    var id413 = 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_type414 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Auszugsart ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Auszugsart</span>", "hiddenName": "excerpt_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Auszugsart","(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, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/excerpt_type" }) }) });
    var project415 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Projekt ausw\u00e4hlen...", "fieldLabel": "Projekt", "hiddenName": "projectHidden", "listeners": { "render": Lino.quicktip_renderer("Projekt","(excerpts.Excerpts.project) ") }, "name": "project", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.tickets.Projects.detail,Lino.tickets.Projects.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/project" }) }) });
    var main_1_panel416 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 10, "items": id413, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": excerpt_type414, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 40, "items": project415, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 99, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var user420 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Autor</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Autor","(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, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/user" }) }) });
    var build_method421 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Konstruktionsmethode", "forceSelection": true, "hiddenName": "build_methodHidden", "listeners": { "render": Lino.quicktip_renderer("Konstruktionsmethode","(excerpts.Excerpts.build_method) ") }, "name": "build_method", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.printing.BuildMethods) });
    var main_2_panel422 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 30, "items": user420, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 69, "items": build_method421, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 189, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var company425 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Organisation ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Empf\u00e4nger (Organisation)</span>", "hiddenName": "companyHidden", "listeners": { "render": Lino.quicktip_renderer("Empf\u00e4nger (Organisation)","(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, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/company" }) }) });
    var contact_person426 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Person ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Empf\u00e4nger (Person)</span>", "hiddenName": "contact_personHidden", "listeners": { "render": Lino.quicktip_renderer("Empf\u00e4nger (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, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/excerpts/Excerpts/contact_person" }) }) });
    var language427 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Sprache</span>", "hiddenName": "languageHidden", "listeners": { "render": Lino.quicktip_renderer("Sprache","(excerpts.Excerpts.language) The language used for printing this excerpt.") }, "name": "language", "selectOnFocus": true, "store": [ [ "en", "Englisch" ], [ "de", "Deutsch" ], [ "fr", "Franz\u00f6sisch" ] ] });
    var main_3_panel428 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 33, "items": company425, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": contact_person426, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": language427, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 225, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var owner_disp432 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Verkn\u00fcpft mit</span>", "name": "owner" });
    var build_time433 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Druckdatum</span>", "listeners": { "render": Lino.quicktip_renderer("Druckdatum","(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_panel434 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 38, "items": owner_disp432, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 61, "items": build_time433, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 126, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel437 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel416, main_2_panel422, main_3_panel428, main_4_panel434 ], "labelAlign": "top", "layout": "form" });
    this.items = main_panel437;
    this.before_row_edit = function(record) {
      excerpt_type414.setContextValue('owner', record ? record.data['owner'] : undefined);
      contact_person426.setContextValue('company', record ? record.data['companyHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      owner_disp432.on('change',Lino.chooser_handler(excerpt_type414,'owner'));
      company425.on('change',Lino.chooser_handler(contact_person426,'company'));
      Lino.excerpts.Excerpts.DetailFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.excerpts.Excerpts.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.faculties.Skills.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 32,
  initComponent : function() {
    var name1345 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(faculties.Skills.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_de1346 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (de)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (de)","(faculties.Skills.name_de) ") }, "maxLength": 200, "name": "name_de", "selectOnFocus": true });
    var name_fr1347 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (fr)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (fr)","(faculties.Skills.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel1348 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 33, "items": name1345, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": name_de1346, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": name_fr1347, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var parent1352 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "F\u00e4higkeit ausw\u00e4hlen...", "fieldLabel": "\u00dcbergeordnete F\u00e4higkeit", "hiddenName": "parentHidden", "listeners": { "render": Lino.quicktip_renderer("\u00dcbergeordnete F\u00e4higkeit","(faculties.Skills.parent) ") }, "name": "parent", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.faculties.Skills.detail,Lino.faculties.Skills.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/faculties/Skills/parent" }) }) });
    var main_panel1353 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1348, { "anchor": "-20", "autoHeight": true, "items": parent1352, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 216, "layout": "form" });
    this.items = main_panel1353;
    this.before_row_edit = function(record) {
    }
    Lino.faculties.Skills.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.contacts.Companies.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 12,
  initComponent : function() {
    var name1560 = 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.\nSubclasses may hide this field and fill it automatically,\ne.g. saving a Person will automatically set her\nname field to \"last_name, first_name\".") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var language1561 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Sprache</span>", "hiddenName": "languageHidden", "listeners": { "render": Lino.quicktip_renderer("Sprache","(contacts.Companies.language) The language to use when communicating with this partner.") }, "name": "language", "selectOnFocus": true, "store": [ [ "en", "Englisch" ], [ "de", "Deutsch" ], [ "fr", "Franz\u00f6sisch" ] ] });
    var email1562 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">E-Mail-Adresse</span>", "listeners": { "render": Lino.quicktip_renderer("E-Mail-Adresse","(contacts.Companies.email) The primary email address.") }, "maxLength": 254, "name": "email", "selectOnFocus": true });
    var main_2_panel1563 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 33, "items": language1561, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 66, "items": email1562, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 135, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var type1566 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "emptyText": "Organisationsart ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Organisationsart</span>", "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Organisationsart","(contacts.Companies.type) Pointer to the CompanyType.") }, "name": "type", "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/contacts/Companies/type" }) }) });
    var id1567 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(contacts.Companies.id) ") }, "name": "id", "selectOnFocus": true });
    var main_3_panel1568 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 80, "items": type1566, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 20, "items": id1567, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1571 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": name1560, "labelAlign": "top", "layout": "form", "xtype": "panel" }, main_2_panel1563, main_3_panel1568 ], "labelAlign": "top", "labelWidth": 45, "layout": "form" });
    this.items = main_panel1571;
    this.before_row_edit = function(record) {
    }
    Lino.contacts.Companies.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.contacts.Persons.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 13,
  initComponent : function() {
    var first_name1573 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Vorname</span>", "listeners": { "render": Lino.quicktip_renderer("Vorname","(contacts.Persons.first_name) The first name, also known as given name.") }, "maxLength": 200, "name": "first_name", "selectOnFocus": true });
    var last_name1574 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Familienname</span>", "listeners": { "render": Lino.quicktip_renderer("Familienname","(contacts.Persons.last_name) The last name, also known as family name.") }, "maxLength": 200, "name": "last_name", "selectOnFocus": true });
    var main_1_panel1575 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": first_name1573, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": last_name1574, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 117, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var gender1578 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Geschlecht</span>", "forceSelection": true, "hiddenName": "genderHidden", "listeners": { "render": Lino.quicktip_renderer("Geschlecht","(contacts.Persons.gender) The sex of this person (male or female).") }, "name": "gender", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.Genders) });
    var language1579 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Sprache</span>", "hiddenName": "languageHidden", "listeners": { "render": Lino.quicktip_renderer("Sprache","(contacts.Persons.language) The language to use when communicating with this partner.") }, "name": "language", "selectOnFocus": true, "store": [ [ "en", "Englisch" ], [ "de", "Deutsch" ], [ "fr", "Franz\u00f6sisch" ] ] });
    var main_2_panel1580 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 31, "items": gender1578, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 68, "items": language1579, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 99, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1583 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1575, main_2_panel1580 ], "labelAlign": "top", "layout": "form" });
    this.items = main_panel1583;
    this.before_row_edit = function(record) {
    }
    Lino.contacts.Persons.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.tickets.Sites.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 23,
  initComponent : function() {
    var id1584 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(tickets.Sites.id) ") }, "name": "id", "selectOnFocus": true });
    var name1585 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(tickets.Sites.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var partner1586 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Partner ausw\u00e4hlen...", "fieldLabel": "Partner", "hiddenName": "partnerHidden", "listeners": { "render": Lino.quicktip_renderer("Partner","(tickets.Sites.partner) ") }, "name": "partner", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Partners.detail,Lino.contacts.Partners.insert)}, "pageSize": 20, "preferred_width": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Sites/partner" }) }) });
    var main_1_panel1587 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 10, "items": id1584, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 45, "items": name1585, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 43, "items": partner1586, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 108, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var remark1591 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bemerkung", "listeners": { "render": Lino.quicktip_renderer("Bemerkung","(tickets.Sites.remark) ") }, "maxLength": 200, "name": "remark", "selectOnFocus": true });
    var TicketsBySite_grid1622 = new Lino.tickets.TicketsBySite.GridPanel({ "containing_panel": this, "flex": 71, "hide_top_toolbar": true, "listeners": { "render": Lino.quicktip_renderer("Known problems","(tickets.tickets.TicketsBySite) Global list of all tickets.") }, "master_panel": this, "preview_limit": 15, "tools": [ Lino.show_in_own_window_button(Lino.tickets.TicketsBySite.grid) ] });
    var main_panel1623 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1587, { "autoHeight": true, "items": remark1591, "labelAlign": "top", "layout": "form", "xtype": "panel" }, TicketsBySite_grid1622 ], "labelAlign": "top", "labelWidth": 90, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1623;
    this.before_row_edit = function(record) {
      TicketsBySite_grid1622.on_master_changed();
    }
    Lino.tickets.Sites.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.comments.CommentTypes.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 21,
  initComponent : function() {
    var name1625 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(comments.CommentTypes.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_de1626 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (de)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (de)","(comments.CommentTypes.name_de) ") }, "maxLength": 200, "name": "name_de", "selectOnFocus": true });
    var name_fr1627 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (fr)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (fr)","(comments.CommentTypes.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel1628 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 33, "items": name1625, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": name_de1626, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": name_fr1627, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var id1632 = 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_panel1633 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1628, { "anchor": "-20", "autoHeight": true, "items": id1632, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 27, "layout": "form" });
    this.items = main_panel1633;
    this.before_row_edit = function(record) {
    }
    Lino.comments.CommentTypes.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.comments.Comments.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 20,
  initComponent : function() {
    var reply_to1635 = new Lino.TwinCombo({ "emptyText": "Kommentar ausw\u00e4hlen...", "fieldLabel": "Reply to", "flex": 50, "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, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/comments/Comments/reply_to" }) }) });
    var owner1636 = new Lino.TwinCombo({ "emptyText": "Ticket ausw\u00e4hlen...", "fieldLabel": "Ticket", "flex": 50, "hidden": true, "hiddenName": "ownerHidden", "listeners": { "render": Lino.quicktip_renderer("Ticket","(comments.Comments.owner) ") }, "name": "owner", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.tickets.Tickets.detail,Lino.tickets.Tickets.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/comments/Comments/owner" }) }) });
    var main_1_panel1637 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hidden": true, "hideCheckBoxLabels": true, "items": [ reply_to1635, owner1636 ], "labelAlign": "top", "labelWidth": 81, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var comment_type1638 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Kommentar-Art ausw\u00e4hlen...", "fieldLabel": "Kommentar-Art", "hiddenName": "comment_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Kommentar-Art","(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, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/comments/Comments/comment_type" }) }) });
    var short_text1639 = new Ext.form.TextArea({ "allowBlank": false, "anchor": "-20 -10", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Text</span>", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Text","(comments.Comments.short_text) A short \"abstract\" of your comment. This should not be more\nthan one paragraph.") }, "name": "short_text", "selectOnFocus": true });
    var main_panel1640 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1637, { "autoHeight": true, "items": comment_type1638, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "flex": 71, "items": short_text1639, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 126, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1640;
    this.before_row_edit = function(record) {
    }
    Lino.comments.Comments.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.comments.Comments.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 20,
  initComponent : function() {
    var id1643 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(comments.Comments.id) ") }, "name": "id", "selectOnFocus": true });
    var user1644 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "disabled": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Autor</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Autor","(comments.Comments.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, "store": new Lino.ComplexRemoteComboStore({  }) });
    var created1645 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Erstellt</span>", "listeners": { "render": Lino.quicktip_renderer("Erstellt","(comments.Comments.created) The timestame when this object was created.") }, "name": "created", "value": "<br>" });
    var modified1646 = new Ext.form.DisplayField({ "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Bearbeitet", "listeners": { "render": Lino.quicktip_renderer("Bearbeitet","(comments.Comments.modified) ") }, "name": "modified", "value": "<br>" });
    var main_1_panel1647 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 8, "items": id1643, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 35, "items": user1644, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 28, "items": created1645, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 28, "items": modified1646, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 99, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var reply_to1652 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Kommentar ausw\u00e4hlen...", "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, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/comments/Comments/reply_to" }) }) });
    var owner1653 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Ticket ausw\u00e4hlen...", "fieldLabel": "Ticket", "hiddenName": "ownerHidden", "listeners": { "render": Lino.quicktip_renderer("Ticket","(comments.Comments.owner) ") }, "name": "owner", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.tickets.Tickets.detail,Lino.tickets.Tickets.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/comments/Comments/owner" }) }) });
    var comment_type1654 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Kommentar-Art ausw\u00e4hlen...", "fieldLabel": "Kommentar-Art", "hiddenName": "comment_typeHidden", "listeners": { "render": Lino.quicktip_renderer("Kommentar-Art","(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, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/comments/Comments/comment_type" }) }) });
    var main_2_panel1655 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 33, "items": reply_to1652, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": owner1653, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": comment_type1654, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 126, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var short_text1659 = new Ext.form.TextArea({ "allowBlank": false, "anchor": "-20 -10", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Text</span>", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Text","(comments.Comments.short_text) A short \"abstract\" of your comment. This should not be more\nthan one paragraph.") }, "name": "short_text", "selectOnFocus": true });
    var more_text1660 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Mehr Text", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Mehr Text","(comments.Comments.more_text) ") }, "name": "more_text", "selectOnFocus": true });
    var main_panel1661 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1647, main_2_panel1655, { "flex": 41, "items": short_text1659, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "flex": 41, "items": more_text1660, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 90, "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1661;
    this.before_row_edit = function(record) {
    }
    Lino.comments.Comments.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.tickets.Projects.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 24,
  initComponent : function() {
    var ref704 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Referenz</span>", "listeners": { "render": Lino.quicktip_renderer("Referenz","(tickets.Projects.ref) The reference. This must be either empty or unique.") }, "maxLength": 40, "name": "ref", "selectOnFocus": true });
    var name705 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Name", "listeners": { "render": Lino.quicktip_renderer("Name","(tickets.Projects.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var general_1_panel706 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": ref704, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": name705, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 81, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var description709 = new Ext.form.TextArea({ "anchor": "-20 -10", "fieldLabel": "Beschreibung", "growMax": 2000, "listeners": { "render": Lino.quicktip_renderer("Beschreibung","(tickets.Projects.description) ") }, "name": "description", "selectOnFocus": true });
    var general_2_panel762 = new Ext.Panel({ "autoScroll": false, "border": false, "flex": 83, "frame": false, "hideCheckBoxLabels": true, "items": [ { "flex": 33, "items": description709, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 117, "layout": "hbox", "layoutConfig": { "align": "stretch" } });
    var general_panel764 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ general_1_panel706, general_2_panel762 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" }, "listeners": { "activate": Lino.on_tab_activate }, "title": "Allgemein" });
    var parent796 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Projekt ausw\u00e4hlen...", "fieldLabel": "Vater/Mutter", "hiddenName": "parentHidden", "listeners": { "render": Lino.quicktip_renderer("Vater/Mutter","(tickets.Projects.parent) ") }, "name": "parent", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.tickets.Projects.detail,Lino.tickets.Projects.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Projects/parent" }) }) });
    var type797 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Project Type ausw\u00e4hlen...", "fieldLabel": "Project Type", "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Project Type","(tickets.Projects.type) ") }, "name": "type", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.tickets.ProjectTypes.detail,Lino.tickets.ProjectTypes.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Projects/type" }) }) });
    var more_1_panel798 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": parent796, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": type797, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 117, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var company801 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Organisation ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Organisation</span>", "hiddenName": "companyHidden", "listeners": { "render": Lino.quicktip_renderer("Organisation","(tickets.Projects.company) Pointer to lino_xl.lib.contacts.models.Company.") }, "name": "company", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Companies.detail,Lino.contacts.Companies.insert)}, "pageSize": 20, "preferred_width": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Projects/company" }) }) });
    var assign_to802 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Assign tickets to</span>", "hiddenName": "assign_toHidden", "listeners": { "render": Lino.quicktip_renderer("Assign tickets to","(tickets.Projects.assign_to) The user to whom new tickets will be assigned.") }, "name": "assign_to", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Projects/assign_to" }) }) });
    var private803 = new Ext.form.Checkbox({ "anchor": "-20", "autoHeight": true, "boxLabel": "Privat", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Privat","(tickets.Projects.private) Whether this investment is private, i.e. should not be\npublicly visible anywhere.") }, "name": "private", "selectOnFocus": true });
    var closed804 = new Ext.form.Checkbox({ "anchor": "-20", "autoHeight": true, "boxLabel": "Abgeschlossen", "checked": false, "hideLabel": true, "listeners": { "render": Lino.quicktip_renderer("Abgeschlossen","(tickets.Projects.closed) Whether this investment is closed, i.e. certain things should\nnot change anymore.") }, "name": "closed", "selectOnFocus": true });
    var more_2_panel805 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 33, "items": company801, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": assign_to802, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": private803, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 16, "items": closed804, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 162, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var start_date810 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Beginnt am", "listeners": { "render": Lino.quicktip_renderer("Beginnt am","(tickets.Projects.start_date) ") }, "name": "start_date", "selectOnFocus": true });
    var end_date811 = new Lino.DateField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Enddatum", "listeners": { "render": Lino.quicktip_renderer("Enddatum","(tickets.Projects.end_date) ") }, "name": "end_date", "selectOnFocus": true });
    var srcref_url_template812 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "srcref url template", "listeners": { "render": Lino.quicktip_renderer("srcref url template","(tickets.Projects.srcref_url_template) ") }, "maxLength": 200, "name": "srcref_url_template", "selectOnFocus": true });
    var changeset_url_template813 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "changeset url template", "listeners": { "render": Lino.quicktip_renderer("changeset url template","(tickets.Projects.changeset_url_template) ") }, "maxLength": 200, "name": "changeset_url_template", "selectOnFocus": true });
    var more_3_panel814 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 19, "items": start_date810, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": end_date811, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": srcref_url_template812, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": changeset_url_template813, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 207, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var more_panel880 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ more_1_panel798, more_2_panel805, more_3_panel814 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" }, "listeners": { "activate": Lino.on_tab_activate }, "title": "Mehr" });
    var main_panel881 = new Ext.TabPanel({ "activeTab": 0, "autoScroll": false, "bodyBorder": false, "border": false, "enableTabScroll": true, "frame": true, "hideCheckBoxLabels": true, "items": [ general_panel764, more_panel880 ], "labelAlign": "top", "split": true });
    this.items = main_panel881;
    this.before_row_edit = function(record) {
    }
    Lino.tickets.Projects.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.tickets.Tickets.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 26,
  initComponent : function() {
    var summary340 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Zusammenfassung</span>", "listeners": { "render": Lino.quicktip_renderer("Zusammenfassung","(tickets.Tickets.summary) Short summary of the problem.") }, "maxLength": 200, "name": "summary", "selectOnFocus": true });
    var end_user341 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Person ausw\u00e4hlen...", "fieldLabel": "End user", "hiddenName": "end_userHidden", "listeners": { "render": Lino.quicktip_renderer("End user","(tickets.Tickets.end_user) ") }, "name": "end_user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.contacts.Persons.detail,Lino.contacts.Persons.insert)}, "pageSize": 20, "preferred_width": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/end_user" }) }) });
    var main_panel342 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": summary340, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": end_user341, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 144, "layout": "form" });
    this.items = main_panel342;
    this.before_row_edit = function(record) {
    }
    Lino.tickets.Tickets.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.votes.VotesByVotable.InsertFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 17,
  initComponent : function() {
    var user1664 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Benutzer ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Abstimmender</span>", "hiddenName": "userHidden", "listeners": { "render": Lino.quicktip_renderer("Abstimmender","(votes.VotesByVotable.user) The user who is voting.") }, "name": "user", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.users.Users.detail,Lino.users.Users.insert)}, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/votes/VotesByVotable/user" }) }) });
    var mail_mode1665 = new Lino.ChoicesFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Benachrichtigungen per E-Mail", "forceSelection": true, "hiddenName": "mail_modeHidden", "listeners": { "render": Lino.quicktip_renderer("Benachrichtigungen per E-Mail","(votes.VotesByVotable.mail_mode) ") }, "name": "mail_mode", "selectOnFocus": true, "store": [['','<br>']].concat(Lino.notify.MailModes) });
    var workflow_buttons_disp1666 = new Ext.form.DisplayField({ "always_enabled": true, "anchor": "-20", "autoHeight": true, "disabled": true, "fieldLabel": "Aktionen", "listeners": { "render": Lino.quicktip_renderer("Aktionen","(votes.VotesByVotable.workflow_buttons) ") }, "name": "workflow_buttons", "value": "<br/>" });
    var main_panel1667 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": user1664, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": mail_mode1665, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": workflow_buttons_disp1666, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 270, "layout": "form" });
    this.items = main_panel1667;
    this.before_row_edit = function(record) {
    }
    Lino.votes.VotesByVotable.InsertFormPanel.superclass.initComponent.call(this);
  }
});


Lino.countries.Places.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 5,
  initComponent : function() {
    var name1473 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(countries.Places.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_de1474 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (de)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (de)","(countries.Places.name_de) ") }, "maxLength": 200, "name": "name_de", "selectOnFocus": true });
    var name_fr1475 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (fr)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (fr)","(countries.Places.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var country1476 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "Land ausw\u00e4hlen...", "fieldLabel": "Land", "hiddenName": "countryHidden", "listeners": { "render": Lino.quicktip_renderer("Land","(countries.Places.country) ") }, "name": "country", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.countries.Countries.detail,Lino.countries.Countries.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/countries/Places/country" }) }) });
    var main_1_panel1477 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 25, "items": name1473, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": name_de1474, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 25, "items": name_fr1475, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 24, "items": country1476, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var type1482 = new Lino.RemoteComboFieldElement({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Ortsart", "hiddenName": "typeHidden", "listeners": { "render": Lino.quicktip_renderer("Ortsart","(countries.Places.type) ") }, "name": "type", "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/countries/Places/type" }) }) });
    var parent1483 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Ort ausw\u00e4hlen...", "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Teil von</span>", "hiddenName": "parentHidden", "listeners": { "render": Lino.quicktip_renderer("Teil von","(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,Lino.countries.Places.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/countries/Places/parent" }) }) });
    var zip_code1484 = 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 id1485 = 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_panel1486 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 22, "items": type1482, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 45, "items": parent1483, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 20, "items": zip_code1484, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 11, "items": id1485, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 81, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1553 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1477, main_2_panel1486 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1553;
    this.before_row_edit = function(record) {
      type1482.setContextValue('country', record ? record.data['countryHidden'] : undefined);
    }
    this.onRender = function(ct, position) {
      country1476.on('change',Lino.chooser_handler(type1482,'country'));
      Lino.countries.Places.DetailFormPanel.superclass.onRender.call(this, ct, position);
    }
    Lino.countries.Places.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.faculties.Demands.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  autoHeight: true,
  content_type: 29,
  initComponent : function() {
    var demander1671 = new Lino.TwinCombo({ "anchor": "-20", "autoHeight": true, "emptyText": "Ticket ausw\u00e4hlen...", "fieldLabel": "Anfrager", "hiddenName": "demanderHidden", "listeners": { "render": Lino.quicktip_renderer("Anfrager","(faculties.Demands.demander) ") }, "name": "demander", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.tickets.Tickets.detail,Lino.tickets.Tickets.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/faculties/Demands/demander" }) }) });
    var skill1672 = new Lino.TwinCombo({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "emptyText": "F\u00e4higkeit ausw\u00e4hlen...", "fieldLabel": "F\u00e4higkeit", "hiddenName": "skillHidden", "listeners": { "render": Lino.quicktip_renderer("F\u00e4higkeit","(faculties.Demands.skill) ") }, "name": "skill", "onTrigger2Click": function(e){ Lino.show_fk_detail(this,Lino.faculties.Skills.detail,Lino.faculties.Skills.insert)}, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/faculties/Demands/skill" }) }) });
    var importance1673 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "<span style=\"border-bottom: 1px dotted #000000;\">Importance</span>", "listeners": { "render": Lino.quicktip_renderer("Importance","(faculties.Demands.importance) How important this skill is for this demand. A number between -100 and +100.") }, "name": "importance", "selectOnFocus": true, "value": 100 });
    var id1674 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(faculties.Demands.id) ") }, "name": "id", "selectOnFocus": true });
    var main_3_panel1675 = new Ext.Panel({ "anchor": "-20", "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 50, "items": importance1673, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 50, "items": id1674, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 99, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1678 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ { "anchor": "-20", "autoHeight": true, "items": demander1671, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "anchor": "-20", "autoHeight": true, "items": skill1672, "labelAlign": "top", "layout": "form", "xtype": "panel" }, main_3_panel1675 ], "labelAlign": "top", "labelWidth": 90, "layout": "form" });
    this.items = main_panel1678;
    this.before_row_edit = function(record) {
    }
    Lino.faculties.Demands.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.faculties.SkillTypes.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 31,
  initComponent : function() {
    var id1681 = new Ext.form.NumberField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "ID", "listeners": { "render": Lino.quicktip_renderer("ID","(faculties.SkillTypes.id) ") }, "name": "id", "selectOnFocus": true });
    var name1682 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(faculties.SkillTypes.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_de1683 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (de)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (de)","(faculties.SkillTypes.name_de) ") }, "maxLength": 200, "name": "name_de", "selectOnFocus": true });
    var name_fr1684 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (fr)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (fr)","(faculties.SkillTypes.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_1_panel1685 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 7, "items": id1681, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name1682, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name_de1683, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 30, "items": name_fr1684, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1706 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1685 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1706;
    this.before_row_edit = function(record) {
    }
    Lino.faculties.SkillTypes.DetailFormPanel.superclass.initComponent.call(this);
  }
});


Lino.uploads.UploadTypes.DetailFormPanel = Ext.extend(Lino.FormPanel,{
  layout: 'fit',
  auto_save: true,
  content_type: 35,
  initComponent : function() {
    var id1707 = 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_area1708 = new Lino.ChoicesFieldElement({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Upload-Bereich", "forceSelection": true, "hiddenName": "upload_areaHidden", "listeners": { "render": Lino.quicktip_renderer("Upload-Bereich","(uploads.UploadTypes.upload_area) ") }, "name": "upload_area", "selectOnFocus": true, "store": Lino.uploads.UploadAreas });
    var wanted1709 = new Ext.form.Checkbox({ "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_number1710 = 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 shortcut1711 = 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_panel1712 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 9, "items": id1707, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": upload_area1708, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 19, "items": wanted1709, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 9, "items": max_number1710, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 41, "items": shortcut1711, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 144, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var name1718 = new Ext.form.TextField({ "allowBlank": false, "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung","(uploads.UploadTypes.name) ") }, "maxLength": 200, "name": "name", "selectOnFocus": true });
    var name_de1719 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (de)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (de)","(uploads.UploadTypes.name_de) ") }, "maxLength": 200, "name": "name_de", "selectOnFocus": true });
    var name_fr1720 = new Ext.form.TextField({ "anchor": "-20", "autoHeight": true, "fieldLabel": "Bezeichnung (fr)", "listeners": { "render": Lino.quicktip_renderer("Bezeichnung (fr)","(uploads.UploadTypes.name_fr) ") }, "maxLength": 200, "name": "name_fr", "selectOnFocus": true });
    var main_2_panel1721 = new Ext.Panel({ "autoHeight": true, "autoScroll": false, "border": false, "frame": false, "hideCheckBoxLabels": true, "items": [ { "autoHeight": true, "flex": 33, "items": name1718, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": name_de1719, "labelAlign": "top", "layout": "form", "xtype": "panel" }, { "autoHeight": true, "flex": 33, "items": name_fr1720, "labelAlign": "top", "layout": "form", "xtype": "panel" } ], "labelAlign": "top", "labelWidth": 153, "layout": "hbox", "layoutConfig": { "align": "stretchmax" } });
    var main_panel1741 = new Ext.Panel({ "autoScroll": false, "bodyBorder": false, "border": false, "frame": true, "hideCheckBoxLabels": true, "items": [ main_1_panel1712, main_2_panel1721 ], "labelAlign": "top", "layout": "vbox", "layoutConfig": { "align": "stretch" } });
    this.items = main_panel1741;
    this.before_row_edit = function(record) {
    }
    Lino.uploads.UploadTypes.DetailFormPanel.superclass.initComponent.call(this);
  }
});

Lino.users.Users.verify = 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.verify_ActionFormPanel({});
});
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({});
});

// js_render_GridPanel_class tickets.Tickets
Lino.tickets.Tickets.GridPanel = Ext.extend(Lino.GridPanel,{
  viewConfig : { "emptyText": "Keine Daten anzuzeigen.", "forceFit": true, "getRowClass": Lino.getRowClass },
  ls_url : "/tickets/Tickets",
  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('/tickets/Tickets','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": "Tabelle (Querformat)", "overflowText": "Tabelle (Querformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/Tickets','as_pdf','GET',Lino.get_current_grid_config), "text": "Tabelle (Querformat)", "tooltip": "Diese Tabelle in eine .pdf-Datei exportieren" }, { "auto_save": true, "itemId": "as_pdf_p", "menu_item_text": "Tabelle (Hochformat)", "overflowText": "Tabelle (Hochformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/Tickets','as_pdf_p','GET',Lino.get_current_grid_config), "text": "Tabelle (Hochformat)", "tooltip": "Diese Tabelle in eine .pdf-Datei exportieren" } ], "menu_item_text": "Tabelle (Querformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/Tickets','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('/tickets/Tickets','export_excel','GET',Lino.get_current_grid_config), "tooltip": "Export this table as an .xls document" }, { "auto_save": true, "iconCls": "x-tbar-add", "itemId": "insert", "keycode": 44, "menu_item_text": "Neu", "overflowText": "Neu", "panel_btn_handler": Lino.show_insert, "tooltip": "Neuen Datensatz erstellen" }, { "auto_save": true, "iconCls": "x-tbar-application_form", "itemId": "detail", "menu_item_text": "Detail", "overflowText": "Detail", "panel_btn_handler": Lino.show_detail, "tooltip": "Detail-Fenster auf diesem Datensatz \u00f6ffnen" }, { "auto_save": false, "iconCls": "x-tbar-delete", "itemId": "delete_selected", "keycode": 46, "menu_item_text": "L\u00f6schen", "overflowText": "L\u00f6schen", "panel_btn_handler": Lino.row_action_handler('delete_selected','GET',null), "tooltip": "Diesen Datensatz l\u00f6schen" } ],
  cell_edit : true,
  title : "Anfragen",
  page_length : 20,
  stripeRows : true,
  disabled_actions_index : 39,
  ls_store_fields : [ { "name": "id", "type": "int" }, { "name": "summary" }, { "name": "user" }, 'userHidden', { "name": "topic" }, 'topicHidden', { "name": "workflow_buttons" }, { "name": "project" }, 'projectHidden', { "name": "modified" }, { "name": "created" }, { "name": "private", "type": "boolean" }, { "name": "priority", "type": "int", "useNull": true }, { "name": "closed", "type": "boolean" }, { "name": "planned_time" }, { "name": "site" }, 'siteHidden', { "name": "description" }, { "name": "upgrade_notes" }, { "name": "ticket_type" }, 'ticket_typeHidden', { "name": "duplicate_of" }, 'duplicate_ofHidden', { "name": "reporter" }, 'reporterHidden', { "name": "end_user" }, 'end_userHidden', { "name": "state" }, 'stateHidden', { "dateFormat": "d.m.Y", "name": "deadline", "type": "date" }, { "name": "waiting_for" }, { "name": "feedback", "type": "boolean" }, { "name": "standby", "type": "boolean" }, { "name": "needed_skills" }, { "name": "suppliers" }, { "name": "overview" }, { "name": "description_column" }, { "name": "created_natural" }, { "name": "disabled_fields" }, { "name": "disabled_actions" }, { "name": "disable_editing" } ],
  pk_index : 0,
  ls_grid_configs : [  ],
  content_type : 26,
  ls_id_property : "id",
  gc_name : 0,
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.Tickets.detail;
    this.ls_insert_handler = Lino.tickets.Tickets.insert;
    var ww = this.containing_window;
    var id1742 = new Ext.form.NumberField({ "selectOnFocus": true });
    var summary1743 = new Ext.form.TextField({ "maxLength": 200, "selectOnFocus": true });
    var user1744 = new Lino.RemoteComboFieldElement({ "emptyText": "Benutzer ausw\u00e4hlen...", "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/user" }) }) });
    var topic1745 = new Lino.RemoteComboFieldElement({ "emptyText": "Thema ausw\u00e4hlen...", "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/topic" }) }) });
    var workflow_buttons_disp1746 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "value": "<br/>" });
    var project1747 = new Lino.RemoteComboFieldElement({ "emptyText": "Projekt ausw\u00e4hlen...", "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/project" }) }) });
    var modified1748 = new Ext.form.DisplayField({ "disabled": true, "hidden": true, "value": "<br>" });
    var created1749 = new Ext.form.DisplayField({ "disabled": true, "hidden": true, "value": "<br>" });
    var private1750 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var priority1751 = new Ext.form.NumberField({ "allowBlank": false, "hidden": true, "selectOnFocus": true, "value": 100 });
    var closed1752 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var planned_time1753 = new Lino.TimeField({ "hidden": true, "selectOnFocus": true });
    var site1754 = new Lino.RemoteComboFieldElement({ "emptyText": "Umfeld ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/site" }) }) });
    var description1755 = new Ext.form.TextArea({ "growMax": 2000, "hidden": true, "selectOnFocus": true });
    var upgrade_notes1756 = new Ext.form.TextArea({ "growMax": 2000, "hidden": true, "selectOnFocus": true });
    var ticket_type1757 = new Lino.RemoteComboFieldElement({ "emptyText": "Ticket type ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/ticket_type" }) }) });
    var duplicate_of1758 = new Lino.RemoteComboFieldElement({ "emptyText": "Ticket ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/duplicate_of" }) }) });
    var reporter1759 = new Lino.RemoteComboFieldElement({ "emptyText": "Benutzer ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/reporter" }) }) });
    var end_user1760 = new Lino.RemoteComboFieldElement({ "emptyText": "Person ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/Tickets/end_user" }) }) });
    var state1761 = new Lino.ChoicesFieldElement({ "allowBlank": false, "forceSelection": true, "hidden": true, "selectOnFocus": true, "store": Lino.tickets.TicketStates });
    var deadline1762 = new Lino.DateField({ "hidden": true, "selectOnFocus": true });
    var waiting_for1763 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var feedback1764 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var standby1765 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var needed_skills_disp1766 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var suppliers_disp1767 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var overview_disp1768 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var description_column_disp1769 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var created_natural_disp1770 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    this.before_row_edit = function(record) {
    };
    this.ls_columns = [ { "align": "right", "colIndex": 0, "dataIndex": "id", "editable": true, "editor": id1742, "filter": { "type": "numeric" }, "format": "0", "header": "ID", "sortable": true, "tooltip": "(tickets.Tickets.id) ", "width": Lino.chars2width(6) }, { "colIndex": 1, "dataIndex": "summary", "editable": true, "editor": summary1743, "filter": { "type": "string" }, "header": "Zusammenfassung", "sortable": true, "tooltip": "(tickets.Tickets.summary) Short summary of the problem.", "width": Lino.chars2width(51) }, { "colIndex": 2, "dataIndex": "user", "editable": true, "editor": user1744, "filter": { "type": "string" }, "header": "Autor", "sortable": false, "tooltip": "(tickets.Tickets.user) The author of this object.\nA pointer to lino.modlib.users.models.User.", "width": Lino.chars2width(11) }, { "colIndex": 3, "dataIndex": "topic", "editable": true, "editor": topic1745, "filter": { "type": "string" }, "header": "Thema", "sortable": false, "tooltip": "(tickets.Tickets.topic) ", "width": Lino.chars2width(21) }, { "colIndex": 4, "dataIndex": "workflow_buttons", "editable": false, "header": "Aktionen", "sortable": false, "tooltip": "(tickets.Tickets.workflow_buttons) ", "width": Lino.chars2width(31) }, { "colIndex": 5, "dataIndex": "project", "editable": true, "editor": project1747, "filter": { "type": "string" }, "header": "Projekt", "sortable": false, "tooltip": "(tickets.Tickets.project) ", "width": Lino.chars2width(11) }, { "colIndex": 6, "dataIndex": "modified", "editable": false, "header": "Bearbeitet", "hidden": true, "sortable": true, "tooltip": "(tickets.Tickets.modified) ", "width": Lino.chars2width(17) }, { "colIndex": 7, "dataIndex": "created", "editable": false, "header": "Erstellt", "hidden": true, "sortable": true, "tooltip": "(tickets.Tickets.created) The timestame when this object was created.", "width": Lino.chars2width(17) }, { "colIndex": 8, "dataIndex": "private", "editable": true, "filter": { "type": "boolean" }, "header": "Privat", "hidden": true, "sortable": false, "tooltip": "(tickets.Tickets.private) Whether this investment is private, i.e. should not be\npublicly visible anywhere.", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "align": "right", "colIndex": 9, "dataIndex": "priority", "editable": true, "editor": priority1751, "filter": { "type": "numeric" }, "format": "0", "header": "Priorit\u00e4t", "hidden": true, "sortable": true, "tooltip": "(tickets.Tickets.priority) ", "width": Lino.chars2width(6) }, { "colIndex": 10, "dataIndex": "closed", "editable": true, "filter": { "type": "boolean" }, "header": "Abgeschlossen", "hidden": true, "sortable": false, "tooltip": "(tickets.Tickets.closed) Whether this investment is closed, i.e. certain things should\nnot change anymore.", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 11, "dataIndex": "planned_time", "editable": true, "editor": planned_time1753, "header": "Planned time", "hidden": true, "sortable": true, "tooltip": "(tickets.Tickets.planned_time) The time (in hours) we plan to work on this project or ticket.", "width": Lino.chars2width(9) }, { "colIndex": 12, "dataIndex": "site", "editable": true, "editor": site1754, "filter": { "type": "string" }, "header": "Umfeld", "hidden": true, "sortable": false, "tooltip": "(tickets.Tickets.site) ", "width": Lino.chars2width(21) }, { "colIndex": 13, "dataIndex": "description", "editable": true, "editor": description1755, "filter": { "type": "string" }, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.Tickets.description) ", "width": Lino.chars2width(61) }, { "colIndex": 14, "dataIndex": "upgrade_notes", "editable": true, "editor": upgrade_notes1756, "filter": { "type": "string" }, "header": "L\u00f6sung", "hidden": true, "sortable": false, "tooltip": "(tickets.Tickets.upgrade_notes) ", "width": Lino.chars2width(61) }, { "colIndex": 15, "dataIndex": "ticket_type", "editable": true, "editor": ticket_type1757, "filter": { "type": "string" }, "header": "Ticket type", "hidden": true, "sortable": false, "tooltip": "(tickets.Tickets.ticket_type) ", "width": Lino.chars2width(21) }, { "colIndex": 16, "dataIndex": "duplicate_of", "editable": true, "editor": duplicate_of1758, "filter": { "type": "string" }, "header": "Dublette von", "hidden": true, "renderer": Lino.fk_renderer('duplicate_ofHidden','Lino.tickets.Tickets.detail'), "sortable": false, "tooltip": "(tickets.Tickets.duplicate_of) ", "width": Lino.chars2width(21) }, { "colIndex": 17, "dataIndex": "reporter", "editable": true, "editor": reporter1759, "filter": { "type": "string" }, "header": "Anfrager", "hidden": true, "sortable": false, "tooltip": "(tickets.Tickets.reporter) ", "width": Lino.chars2width(21) }, { "colIndex": 18, "dataIndex": "end_user", "editable": true, "editor": end_user1760, "filter": { "type": "string" }, "header": "End user", "hidden": true, "sortable": false, "tooltip": "(tickets.Tickets.end_user) ", "width": Lino.chars2width(21) }, { "colIndex": 19, "dataIndex": "state", "editable": true, "editor": state1761, "filter": { "type": "string" }, "header": "Zustand", "hidden": true, "sortable": false, "tooltip": "(tickets.Tickets.state) ", "width": Lino.chars2width(13) }, { "colIndex": 20, "dataIndex": "deadline", "editable": true, "editor": deadline1762, "filter": { "dateFormat": "d.m.Y", "type": "date" }, "format": "d.m.Y", "header": "Deadline", "hidden": true, "sortable": true, "tooltip": "(tickets.Tickets.deadline) ", "width": Lino.chars2width(14), "xtype": "datecolumn" }, { "colIndex": 21, "dataIndex": "waiting_for", "editable": true, "editor": waiting_for1763, "filter": { "type": "string" }, "header": "Waiting for", "hidden": true, "sortable": true, "tooltip": "(tickets.Tickets.waiting_for) ", "width": Lino.chars2width(22) }, { "colIndex": 22, "dataIndex": "feedback", "editable": true, "filter": { "type": "boolean" }, "header": "Feedback", "hidden": true, "sortable": false, "tooltip": "(tickets.Tickets.feedback) ", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 23, "dataIndex": "standby", "editable": true, "filter": { "type": "boolean" }, "header": "Standby", "hidden": true, "sortable": false, "tooltip": "(tickets.Tickets.standby) ", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 24, "dataIndex": "needed_skills", "editable": false, "header": "Needed skills", "hidden": true, "sortable": false, "tooltip": "(tickets.Tickets.needed_skills) ", "width": Lino.chars2width(31) }, { "colIndex": 25, "dataIndex": "suppliers", "editable": false, "header": "Suppliers", "hidden": true, "sortable": false, "tooltip": "(tickets.Tickets.suppliers) ", "width": Lino.chars2width(31) }, { "colIndex": 26, "dataIndex": "overview", "editable": false, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.Tickets.overview) ", "width": Lino.chars2width(31) }, { "colIndex": 27, "dataIndex": "description_column", "editable": false, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.Tickets.description_column) ", "width": Lino.chars2width(31) }, { "colIndex": 28, "dataIndex": "created_natural", "editable": false, "header": "Erstellt", "hidden": true, "sortable": false, "tooltip": "(tickets.Tickets.created_natural) ", "width": Lino.chars2width(31) } ];
    Lino.tickets.Tickets.GridPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.Tickets.show_as_html = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/Tickets", "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.tickets.Tickets.as_pdf = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/Tickets", "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.tickets.Tickets.as_pdf_p = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/Tickets", "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.tickets.Tickets.export_excel = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/Tickets", "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.tickets.Tickets.submit_detail = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/Tickets", "GET", pk, "submit_detail", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.tickets.Tickets.insertPanel = Ext.extend(Lino.tickets.Tickets.InsertFormPanel,{
  empty_title: "Neu",
  hide_navigator: true,
  save_action_name: "submit_insert",
  ls_bbar_actions: [ { "auto_save": false, "itemId": "submit_insert", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Datensatz erstellen und dann im Detail-Fenster \u00f6ffnen") }, "menu_item_text": "Erstellen", "overflowText": "Erstellen", "panel_btn_handler": function(panel){panel.save()}, "text": "Erstellen" } ],
  ls_url: "/tickets/Tickets",
  action_name: "insert",
  default_record_id: -99999,
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.Tickets.detail;
    this.ls_insert_handler = Lino.tickets.Tickets.insert;
    Lino.tickets.Tickets.insertPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.Tickets.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.tickets.Tickets.insertPanel(p);
});
Lino.tickets.Tickets.grid_put = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/Tickets", "GET", pk, "grid_put", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.Tickets.grid_post = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/Tickets", "GET", pk, "grid_post", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.Tickets.submit_insert = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/Tickets", "GET", pk, "submit_insert", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.tickets.Tickets.detailPanel = Ext.extend(Lino.tickets.Tickets.DetailFormPanel,{
  empty_title: "Detail",
  save_action_name: "submit_detail",
  ls_bbar_actions: [ { "auto_save": false, "iconCls": "x-tbar-disk", "itemId": "submit_detail", "menu_item_text": "Speichern", "overflowText": "Speichern", "panel_btn_handler": function(panel){panel.save()}, "tooltip": "\u00c4nderungen in diesem Formular speichern" }, { "auto_save": true, "iconCls": "x-tbar-add", "itemId": "insert", "keycode": 44, "menu_item_text": "Neu", "overflowText": "Neu", "panel_btn_handler": Lino.show_insert, "tooltip": "Neuen Datensatz erstellen" }, { "auto_save": false, "iconCls": "x-tbar-delete", "itemId": "delete_selected", "keycode": 46, "menu_item_text": "L\u00f6schen", "overflowText": "L\u00f6schen", "panel_btn_handler": Lino.row_action_handler('delete_selected','GET',null), "tooltip": "Diesen Datensatz l\u00f6schen" } ],
  ls_url: "/tickets/Tickets",
  action_name: "detail",
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.Tickets.detail;
    this.ls_insert_handler = Lino.tickets.Tickets.insert;
    Lino.tickets.Tickets.detailPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.Tickets.detail = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  return new Lino.tickets.Tickets.detailPanel(p);
});
Lino.tickets.Tickets.delete_selected = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/Tickets", "GET", pk, "delete_selected", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.Tickets.grid = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  p.params_panel = new Lino.tickets.Tickets.ParamsPanel({});
  return new Lino.tickets.Tickets.GridPanel(p);
});
Lino.tickets.Tickets.validate = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/Tickets", "GET", pk, "validate", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.Tickets.spawn_triggered = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/Tickets", "GET", pk, "spawn_triggered", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.Tickets.create_vote = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/Tickets", "GET", pk, "create_vote", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.Tickets.edit_vote = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/Tickets", "GET", pk, "edit_vote", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.Tickets.wf1 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/Tickets", "GET", pk, "wf1", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.Tickets.wf2 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/Tickets", "GET", pk, "wf2", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.Tickets.wf3 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/Tickets", "GET", pk, "wf3", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.Tickets.wf4 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/Tickets", "GET", pk, "wf4", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.Tickets.wf5 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/Tickets", "GET", pk, "wf5", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.Tickets.wf6 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/Tickets", "GET", pk, "wf6", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

// js_render_GridPanel_class tickets.PublicTickets
Lino.tickets.PublicTickets.GridPanel = Ext.extend(Lino.GridPanel,{
  viewConfig : { "emptyText": "Keine Daten anzuzeigen.", "forceFit": true, "getRowClass": Lino.getRowClass },
  ls_url : "/tickets/PublicTickets",
  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('/tickets/PublicTickets','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": "Tabelle (Querformat)", "overflowText": "Tabelle (Querformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/PublicTickets','as_pdf','GET',Lino.get_current_grid_config), "text": "Tabelle (Querformat)", "tooltip": "Diese Tabelle in eine .pdf-Datei exportieren" }, { "auto_save": true, "itemId": "as_pdf_p", "menu_item_text": "Tabelle (Hochformat)", "overflowText": "Tabelle (Hochformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/PublicTickets','as_pdf_p','GET',Lino.get_current_grid_config), "text": "Tabelle (Hochformat)", "tooltip": "Diese Tabelle in eine .pdf-Datei exportieren" } ], "menu_item_text": "Tabelle (Querformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/PublicTickets','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('/tickets/PublicTickets','export_excel','GET',Lino.get_current_grid_config), "tooltip": "Export this table as an .xls document" }, { "auto_save": true, "iconCls": "x-tbar-add", "itemId": "insert", "keycode": 44, "menu_item_text": "Neu", "overflowText": "Neu", "panel_btn_handler": Lino.show_insert, "tooltip": "Neuen Datensatz erstellen" }, { "auto_save": true, "iconCls": "x-tbar-application_form", "itemId": "detail", "menu_item_text": "Detail", "overflowText": "Detail", "panel_btn_handler": Lino.show_detail, "tooltip": "Detail-Fenster auf diesem Datensatz \u00f6ffnen" }, { "auto_save": false, "iconCls": "x-tbar-delete", "itemId": "delete_selected", "keycode": 46, "menu_item_text": "L\u00f6schen", "overflowText": "L\u00f6schen", "panel_btn_handler": Lino.row_action_handler('delete_selected','GET',null), "tooltip": "Diesen Datensatz l\u00f6schen" } ],
  cell_edit : true,
  title : "\u00d6ffentliche Tickets",
  page_length : 20,
  stripeRows : true,
  disabled_actions_index : 39,
  ls_store_fields : [ { "name": "overview" }, { "name": "ticket_type" }, 'ticket_typeHidden', { "name": "topic" }, 'topicHidden', { "name": "priority", "type": "int", "useNull": true }, { "name": "id", "type": "int" }, { "name": "modified" }, { "name": "created" }, { "name": "user" }, 'userHidden', { "name": "private", "type": "boolean" }, { "name": "closed", "type": "boolean" }, { "name": "planned_time" }, { "name": "project" }, 'projectHidden', { "name": "site" }, 'siteHidden', { "name": "summary" }, { "name": "description" }, { "name": "upgrade_notes" }, { "name": "duplicate_of" }, 'duplicate_ofHidden', { "name": "reporter" }, 'reporterHidden', { "name": "end_user" }, 'end_userHidden', { "name": "state" }, 'stateHidden', { "dateFormat": "d.m.Y", "name": "deadline", "type": "date" }, { "name": "waiting_for" }, { "name": "feedback", "type": "boolean" }, { "name": "standby", "type": "boolean" }, { "name": "needed_skills" }, { "name": "suppliers" }, { "name": "workflow_buttons" }, { "name": "description_column" }, { "name": "created_natural" }, { "name": "disabled_fields" }, { "name": "disabled_actions" }, { "name": "disable_editing" } ],
  pk_index : 6,
  ls_grid_configs : [  ],
  content_type : 26,
  ls_id_property : "id",
  gc_name : 0,
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.PublicTickets.detail;
    this.ls_insert_handler = Lino.tickets.PublicTickets.insert;
    var ww = this.containing_window;
    var overview_disp1772 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "value": "<br/>" });
    var ticket_type1773 = new Lino.RemoteComboFieldElement({ "emptyText": "Ticket type ausw\u00e4hlen...", "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/PublicTickets/ticket_type" }) }) });
    var topic1774 = new Lino.RemoteComboFieldElement({ "emptyText": "Thema ausw\u00e4hlen...", "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/PublicTickets/topic" }) }) });
    var priority1775 = new Ext.form.NumberField({ "allowBlank": false, "selectOnFocus": true, "value": 100 });
    var id1776 = new Ext.form.NumberField({ "hidden": true, "selectOnFocus": true });
    var modified1777 = new Ext.form.DisplayField({ "disabled": true, "hidden": true, "value": "<br>" });
    var created1778 = new Ext.form.DisplayField({ "disabled": true, "hidden": true, "value": "<br>" });
    var user1779 = new Lino.RemoteComboFieldElement({ "emptyText": "Benutzer ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/PublicTickets/user" }) }) });
    var private1780 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var closed1781 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var planned_time1782 = new Lino.TimeField({ "hidden": true, "selectOnFocus": true });
    var project1783 = new Lino.RemoteComboFieldElement({ "emptyText": "Projekt ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/PublicTickets/project" }) }) });
    var site1784 = new Lino.RemoteComboFieldElement({ "emptyText": "Umfeld ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/PublicTickets/site" }) }) });
    var summary1785 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var description1786 = new Ext.form.TextArea({ "growMax": 2000, "hidden": true, "selectOnFocus": true });
    var upgrade_notes1787 = new Ext.form.TextArea({ "growMax": 2000, "hidden": true, "selectOnFocus": true });
    var duplicate_of1788 = new Lino.RemoteComboFieldElement({ "emptyText": "Ticket ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/PublicTickets/duplicate_of" }) }) });
    var reporter1789 = new Lino.RemoteComboFieldElement({ "emptyText": "Benutzer ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/PublicTickets/reporter" }) }) });
    var end_user1790 = new Lino.RemoteComboFieldElement({ "emptyText": "Person ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/PublicTickets/end_user" }) }) });
    var state1791 = new Lino.ChoicesFieldElement({ "allowBlank": false, "forceSelection": true, "hidden": true, "selectOnFocus": true, "store": Lino.tickets.TicketStates });
    var deadline1792 = new Lino.DateField({ "hidden": true, "selectOnFocus": true });
    var waiting_for1793 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var feedback1794 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var standby1795 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var needed_skills_disp1796 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var suppliers_disp1797 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var workflow_buttons_disp1798 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var description_column_disp1799 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var created_natural_disp1800 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    this.before_row_edit = function(record) {
    };
    this.ls_columns = [ { "colIndex": 0, "dataIndex": "overview", "editable": false, "header": "Beschreibung", "sortable": false, "tooltip": "(tickets.PublicTickets.overview) ", "width": Lino.chars2width(51) }, { "colIndex": 1, "dataIndex": "ticket_type", "editable": true, "editor": ticket_type1773, "filter": { "type": "string" }, "header": "Ticket type", "sortable": false, "tooltip": "(tickets.PublicTickets.ticket_type) ", "width": Lino.chars2width(11) }, { "colIndex": 2, "dataIndex": "topic", "editable": true, "editor": topic1774, "filter": { "type": "string" }, "header": "Thema", "sortable": false, "tooltip": "(tickets.PublicTickets.topic) ", "width": Lino.chars2width(11) }, { "align": "right", "colIndex": 3, "dataIndex": "priority", "editable": true, "editor": priority1775, "filter": { "type": "numeric" }, "format": "0", "header": "Priorit\u00e4t", "sortable": true, "tooltip": "(tickets.PublicTickets.priority) ", "width": Lino.chars2width(4) }, { "align": "right", "colIndex": 4, "dataIndex": "id", "editable": true, "editor": id1776, "filter": { "type": "numeric" }, "format": "0", "header": "ID", "hidden": true, "sortable": true, "tooltip": "(tickets.PublicTickets.id) ", "width": Lino.chars2width(6) }, { "colIndex": 5, "dataIndex": "modified", "editable": false, "header": "Bearbeitet", "hidden": true, "sortable": true, "tooltip": "(tickets.PublicTickets.modified) ", "width": Lino.chars2width(17) }, { "colIndex": 6, "dataIndex": "created", "editable": false, "header": "Erstellt", "hidden": true, "sortable": true, "tooltip": "(tickets.PublicTickets.created) The timestame when this object was created.", "width": Lino.chars2width(17) }, { "colIndex": 7, "dataIndex": "user", "editable": true, "editor": user1779, "filter": { "type": "string" }, "header": "Autor", "hidden": true, "sortable": false, "tooltip": "(tickets.PublicTickets.user) The author of this object.\nA pointer to lino.modlib.users.models.User.", "width": Lino.chars2width(21) }, { "colIndex": 8, "dataIndex": "private", "editable": true, "filter": { "type": "boolean" }, "header": "Privat", "hidden": true, "sortable": false, "tooltip": "(tickets.PublicTickets.private) Whether this investment is private, i.e. should not be\npublicly visible anywhere.", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 9, "dataIndex": "closed", "editable": true, "filter": { "type": "boolean" }, "header": "Abgeschlossen", "hidden": true, "sortable": false, "tooltip": "(tickets.PublicTickets.closed) Whether this investment is closed, i.e. certain things should\nnot change anymore.", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 10, "dataIndex": "planned_time", "editable": true, "editor": planned_time1782, "header": "Planned time", "hidden": true, "sortable": true, "tooltip": "(tickets.PublicTickets.planned_time) The time (in hours) we plan to work on this project or ticket.", "width": Lino.chars2width(9) }, { "colIndex": 11, "dataIndex": "project", "editable": true, "editor": project1783, "filter": { "type": "string" }, "header": "Projekt", "hidden": true, "sortable": false, "tooltip": "(tickets.PublicTickets.project) ", "width": Lino.chars2width(21) }, { "colIndex": 12, "dataIndex": "site", "editable": true, "editor": site1784, "filter": { "type": "string" }, "header": "Umfeld", "hidden": true, "sortable": false, "tooltip": "(tickets.PublicTickets.site) ", "width": Lino.chars2width(21) }, { "colIndex": 13, "dataIndex": "summary", "editable": true, "editor": summary1785, "filter": { "type": "string" }, "header": "Zusammenfassung", "hidden": true, "sortable": true, "tooltip": "(tickets.PublicTickets.summary) Short summary of the problem.", "width": Lino.chars2width(22) }, { "colIndex": 14, "dataIndex": "description", "editable": true, "editor": description1786, "filter": { "type": "string" }, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.PublicTickets.description) ", "width": Lino.chars2width(61) }, { "colIndex": 15, "dataIndex": "upgrade_notes", "editable": true, "editor": upgrade_notes1787, "filter": { "type": "string" }, "header": "L\u00f6sung", "hidden": true, "sortable": false, "tooltip": "(tickets.PublicTickets.upgrade_notes) ", "width": Lino.chars2width(61) }, { "colIndex": 16, "dataIndex": "duplicate_of", "editable": true, "editor": duplicate_of1788, "filter": { "type": "string" }, "header": "Dublette von", "hidden": true, "renderer": Lino.fk_renderer('duplicate_ofHidden','Lino.tickets.Tickets.detail'), "sortable": false, "tooltip": "(tickets.PublicTickets.duplicate_of) ", "width": Lino.chars2width(21) }, { "colIndex": 17, "dataIndex": "reporter", "editable": true, "editor": reporter1789, "filter": { "type": "string" }, "header": "Anfrager", "hidden": true, "sortable": false, "tooltip": "(tickets.PublicTickets.reporter) ", "width": Lino.chars2width(21) }, { "colIndex": 18, "dataIndex": "end_user", "editable": true, "editor": end_user1790, "filter": { "type": "string" }, "header": "End user", "hidden": true, "sortable": false, "tooltip": "(tickets.PublicTickets.end_user) ", "width": Lino.chars2width(21) }, { "colIndex": 19, "dataIndex": "state", "editable": true, "editor": state1791, "filter": { "type": "string" }, "header": "Zustand", "hidden": true, "sortable": false, "tooltip": "(tickets.PublicTickets.state) ", "width": Lino.chars2width(13) }, { "colIndex": 20, "dataIndex": "deadline", "editable": true, "editor": deadline1792, "filter": { "dateFormat": "d.m.Y", "type": "date" }, "format": "d.m.Y", "header": "Deadline", "hidden": true, "sortable": true, "tooltip": "(tickets.PublicTickets.deadline) ", "width": Lino.chars2width(14), "xtype": "datecolumn" }, { "colIndex": 21, "dataIndex": "waiting_for", "editable": true, "editor": waiting_for1793, "filter": { "type": "string" }, "header": "Waiting for", "hidden": true, "sortable": true, "tooltip": "(tickets.PublicTickets.waiting_for) ", "width": Lino.chars2width(22) }, { "colIndex": 22, "dataIndex": "feedback", "editable": true, "filter": { "type": "boolean" }, "header": "Feedback", "hidden": true, "sortable": false, "tooltip": "(tickets.PublicTickets.feedback) ", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 23, "dataIndex": "standby", "editable": true, "filter": { "type": "boolean" }, "header": "Standby", "hidden": true, "sortable": false, "tooltip": "(tickets.PublicTickets.standby) ", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 24, "dataIndex": "needed_skills", "editable": false, "header": "Needed skills", "hidden": true, "sortable": false, "tooltip": "(tickets.PublicTickets.needed_skills) ", "width": Lino.chars2width(31) }, { "colIndex": 25, "dataIndex": "suppliers", "editable": false, "header": "Suppliers", "hidden": true, "sortable": false, "tooltip": "(tickets.PublicTickets.suppliers) ", "width": Lino.chars2width(31) }, { "colIndex": 26, "dataIndex": "workflow_buttons", "editable": false, "header": "Aktionen", "hidden": true, "sortable": false, "tooltip": "(tickets.PublicTickets.workflow_buttons) ", "width": Lino.chars2width(31) }, { "colIndex": 27, "dataIndex": "description_column", "editable": false, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.PublicTickets.description_column) ", "width": Lino.chars2width(31) }, { "colIndex": 28, "dataIndex": "created_natural", "editable": false, "header": "Erstellt", "hidden": true, "sortable": false, "tooltip": "(tickets.PublicTickets.created_natural) ", "width": Lino.chars2width(31) } ];
    Lino.tickets.PublicTickets.GridPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.PublicTickets.show_as_html = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/PublicTickets", "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.tickets.PublicTickets.as_pdf = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/PublicTickets", "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.tickets.PublicTickets.as_pdf_p = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/PublicTickets", "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.tickets.PublicTickets.export_excel = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/PublicTickets", "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.tickets.PublicTickets.submit_detail = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/PublicTickets", "GET", pk, "submit_detail", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.tickets.PublicTickets.insertPanel = Ext.extend(Lino.tickets.Tickets.InsertFormPanel,{
  empty_title: "Neu",
  hide_navigator: true,
  save_action_name: "submit_insert",
  ls_bbar_actions: [ { "auto_save": false, "itemId": "submit_insert", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Datensatz erstellen und dann im Detail-Fenster \u00f6ffnen") }, "menu_item_text": "Erstellen", "overflowText": "Erstellen", "panel_btn_handler": function(panel){panel.save()}, "text": "Erstellen" } ],
  ls_url: "/tickets/PublicTickets",
  action_name: "insert",
  default_record_id: -99999,
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.PublicTickets.detail;
    this.ls_insert_handler = Lino.tickets.PublicTickets.insert;
    Lino.tickets.PublicTickets.insertPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.PublicTickets.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.tickets.PublicTickets.insertPanel(p);
});
Lino.tickets.PublicTickets.grid_put = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/PublicTickets", "GET", pk, "grid_put", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.PublicTickets.grid_post = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/PublicTickets", "GET", pk, "grid_post", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.PublicTickets.submit_insert = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/PublicTickets", "GET", pk, "submit_insert", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.tickets.PublicTickets.detailPanel = Ext.extend(Lino.tickets.Tickets.DetailFormPanel,{
  empty_title: "Detail",
  save_action_name: "submit_detail",
  ls_bbar_actions: [ { "auto_save": false, "iconCls": "x-tbar-disk", "itemId": "submit_detail", "menu_item_text": "Speichern", "overflowText": "Speichern", "panel_btn_handler": function(panel){panel.save()}, "tooltip": "\u00c4nderungen in diesem Formular speichern" }, { "auto_save": true, "iconCls": "x-tbar-add", "itemId": "insert", "keycode": 44, "menu_item_text": "Neu", "overflowText": "Neu", "panel_btn_handler": Lino.show_insert, "tooltip": "Neuen Datensatz erstellen" }, { "auto_save": false, "iconCls": "x-tbar-delete", "itemId": "delete_selected", "keycode": 46, "menu_item_text": "L\u00f6schen", "overflowText": "L\u00f6schen", "panel_btn_handler": Lino.row_action_handler('delete_selected','GET',null), "tooltip": "Diesen Datensatz l\u00f6schen" } ],
  ls_url: "/tickets/PublicTickets",
  action_name: "detail",
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.PublicTickets.detail;
    this.ls_insert_handler = Lino.tickets.PublicTickets.insert;
    Lino.tickets.PublicTickets.detailPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.PublicTickets.detail = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  return new Lino.tickets.PublicTickets.detailPanel(p);
});
Lino.tickets.PublicTickets.delete_selected = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/PublicTickets", "GET", pk, "delete_selected", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.PublicTickets.grid = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  p.params_panel = new Lino.tickets.Tickets.ParamsPanel({});
  return new Lino.tickets.PublicTickets.GridPanel(p);
});
Lino.tickets.PublicTickets.validate = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/PublicTickets", "GET", pk, "validate", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.PublicTickets.spawn_triggered = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/PublicTickets", "GET", pk, "spawn_triggered", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.PublicTickets.create_vote = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/PublicTickets", "GET", pk, "create_vote", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.PublicTickets.edit_vote = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/PublicTickets", "GET", pk, "edit_vote", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.PublicTickets.wf1 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/PublicTickets", "GET", pk, "wf1", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.PublicTickets.wf2 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/PublicTickets", "GET", pk, "wf2", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.PublicTickets.wf3 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/PublicTickets", "GET", pk, "wf3", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.PublicTickets.wf4 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/PublicTickets", "GET", pk, "wf4", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.PublicTickets.wf5 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/PublicTickets", "GET", pk, "wf5", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.PublicTickets.wf6 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/PublicTickets", "GET", pk, "wf6", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

// js_render_GridPanel_class users.Register
Lino.users.Register.GridPanel = Ext.extend(Lino.GridPanel,{
  viewConfig : { "emptyText": "Keine Daten anzuzeigen.", "forceFit": true, "getRowClass": Lino.getRowClass },
  ls_url : "/users/Register",
  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/Register','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": "Tabelle (Querformat)", "overflowText": "Tabelle (Querformat)", "panel_btn_handler": Lino.list_action_handler('/users/Register','as_pdf','GET',Lino.get_current_grid_config), "text": "Tabelle (Querformat)", "tooltip": "Diese Tabelle in eine .pdf-Datei exportieren" }, { "auto_save": true, "itemId": "as_pdf_p", "menu_item_text": "Tabelle (Hochformat)", "overflowText": "Tabelle (Hochformat)", "panel_btn_handler": Lino.list_action_handler('/users/Register','as_pdf_p','GET',Lino.get_current_grid_config), "text": "Tabelle (Hochformat)", "tooltip": "Diese Tabelle in eine .pdf-Datei exportieren" }, { "auto_save": true, "itemId": "print_labels", "menu_item_text": "Etiketten", "overflowText": "Etiketten", "panel_btn_handler": Lino.list_action_handler('/users/Register','print_labels','GET',Lino.get_current_grid_config), "text": "Etiketten", "tooltip": "Generate mailing labels for these recipients" } ], "menu_item_text": "Tabelle (Querformat)", "panel_btn_handler": Lino.list_action_handler('/users/Register','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/Register','export_excel','GET',Lino.get_current_grid_config), "tooltip": "Export this table as an .xls document" }, { "auto_save": true, "iconCls": "x-tbar-add", "itemId": "insert", "keycode": 44, "menu_item_text": "Neu", "overflowText": "Neu", "panel_btn_handler": Lino.show_insert, "tooltip": "Neuen Datensatz erstellen" }, { "auto_save": true, "iconCls": "x-tbar-application_form", "itemId": "detail", "menu_item_text": "Detail", "overflowText": "Detail", "panel_btn_handler": Lino.show_detail, "tooltip": "Detail-Fenster auf diesem Datensatz \u00f6ffnen" }, { "auto_save": false, "iconCls": "x-tbar-delete", "itemId": "delete_selected", "keycode": 46, "menu_item_text": "L\u00f6schen", "overflowText": "L\u00f6schen", "panel_btn_handler": Lino.row_action_handler('delete_selected','GET',null), "tooltip": "Diesen Datensatz l\u00f6schen" }, { "auto_save": true, "itemId": "update_widgets", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Create or update the 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" }, { "auto_save": true, "itemId": "change_password", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Change the password of this user.") }, "menu_item_text": "Passwort \u00e4ndern", "overflowText": "Passwort \u00e4ndern", "panel_btn_handler": Lino.param_action_handler(Lino.users.Users.change_password), "text": " <font size=\"4\">\u2731</font>" } ],
  cell_edit : true,
  title : "Benutzer",
  page_length : 20,
  stripeRows : true,
  disabled_actions_index : 56,
  ls_store_fields : [ { "name": "username" }, { "name": "profile" }, 'profileHidden', { "name": "first_name" }, { "name": "last_name" }, { "name": "id", "type": "int" }, { "name": "email" }, { "name": "language" }, 'languageHidden', { "name": "url" }, { "name": "phone" }, { "name": "gsm" }, { "name": "fax" }, { "name": "country" }, 'countryHidden', { "name": "city" }, 'cityHidden', { "name": "zip_code" }, { "name": "region" }, 'regionHidden', { "name": "addr1" }, { "name": "street_prefix" }, { "name": "street" }, { "name": "street_no" }, { "name": "street_box" }, { "name": "addr2" }, { "name": "name" }, { "name": "remarks" }, { "name": "title" }, { "name": "middle_name" }, { "name": "gender" }, 'genderHidden', { "name": "birth_date" }, { "name": "modified" }, { "name": "created" }, { "name": "password" }, { "name": "last_login" }, { "name": "timezone" }, { "name": "initials" }, { "name": "callme_mode", "type": "boolean" }, { "name": "verification_code" }, { "name": "user_state" }, 'user_stateHidden', { "name": "notify_myself", "type": "boolean" }, { "name": "mail_mode" }, 'mail_modeHidden', { "name": "about_me" }, { "name": "name_column" }, { "name": "workflow_buttons" }, { "name": "overview" }, { "name": "description_column" }, { "name": "created_natural" }, { "name": "age" }, { "name": "mti_navigator" }, { "name": "address_column" }, { "name": "disabled_fields" }, { "name": "disabled_actions" }, { "name": "disable_editing" } ],
  pk_index : 5,
  ls_grid_configs : [  ],
  content_type : 15,
  ls_id_property : "id",
  gc_name : 0,
  initComponent : function() {
    this.ls_detail_handler = Lino.users.Register.detail;
    this.ls_insert_handler = Lino.users.Register.insert;
    var ww = this.containing_window;
    var username1802 = new Ext.form.TextField({ "maxLength": 30, "selectOnFocus": true });
    var profile1803 = new Lino.ChoicesFieldElement({ "forceSelection": true, "selectOnFocus": true, "store": [['','<br>']].concat(Lino.users.UserTypes) });
    var first_name1804 = new Ext.form.TextField({ "maxLength": 200, "selectOnFocus": true });
    var last_name1805 = new Ext.form.TextField({ "maxLength": 200, "selectOnFocus": true });
    var id1806 = new Ext.form.NumberField({ "hidden": true, "selectOnFocus": true });
    var email1807 = new Ext.form.TextField({ "hidden": true, "maxLength": 254, "selectOnFocus": true });
    var language1808 = new Lino.ChoicesFieldElement({ "hidden": true, "selectOnFocus": true, "store": [ [ "en", "Englisch" ], [ "de", "Deutsch" ], [ "fr", "Franz\u00f6sisch" ] ] });
    var url1809 = new Lino.URLField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var phone1810 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var gsm1811 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var fax1812 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var country1813 = new Lino.RemoteComboFieldElement({ "emptyText": "Land ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/users/Register/country" }) }) });
    var city1814 = new Lino.RemoteComboFieldElement({ "emptyText": "Ort ausw\u00e4hlen...", "forceSelection": false, "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/users/Register/city" }) }) });
    var zip_code1815 = new Ext.form.TextField({ "boxMinWidth": Lino.chars2width(10), "hidden": true, "maxLength": 10, "selectOnFocus": true });
    var region1816 = new Lino.RemoteComboFieldElement({ "emptyText": "Ort ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/users/Register/region" }) }) });
    var addr11817 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var street_prefix1818 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var street1819 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var street_no1820 = new Ext.form.TextField({ "boxMinWidth": Lino.chars2width(10), "hidden": true, "maxLength": 10, "selectOnFocus": true });
    var street_box1821 = new Ext.form.TextField({ "boxMinWidth": Lino.chars2width(10), "hidden": true, "maxLength": 10, "selectOnFocus": true });
    var addr21822 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var name1823 = new Ext.form.TextField({ "allowBlank": false, "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var remarks1824 = new Ext.form.TextArea({ "growMax": 2000, "hidden": true, "selectOnFocus": true });
    var title1825 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var middle_name1826 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var gender1827 = new Lino.ChoicesFieldElement({ "forceSelection": true, "hidden": true, "selectOnFocus": true, "store": [['','<br>']].concat(Lino.system.Genders) });
    var birth_date1828 = new Lino.IncompleteDateField({ "hidden": true, "selectOnFocus": true });
    var modified1829 = new Ext.form.DisplayField({ "disabled": true, "hidden": true, "value": "<br>" });
    var created1830 = new Ext.form.DisplayField({ "disabled": true, "hidden": true, "value": "<br>" });
    var password1831 = new Ext.form.TextField({ "allowBlank": false, "hidden": true, "maxLength": 128, "selectOnFocus": true });
    var last_login1832 = new Ext.form.DisplayField({ "hidden": true, "selectOnFocus": true, "value": "<br>" });
    var timezone1833 = new Lino.SimpleRemoteComboFieldElement({ "hidden": true, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/users/Register/timezone" }) }) });
    var initials1834 = new Ext.form.TextField({ "boxMinWidth": Lino.chars2width(10), "hidden": true, "maxLength": 10, "selectOnFocus": true });
    var callme_mode1835 = new Ext.form.Checkbox({ "checked": true, "hidden": true, "selectOnFocus": true });
    var verification_code1836 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var user_state1837 = new Lino.ChoicesFieldElement({ "allowBlank": false, "forceSelection": true, "hidden": true, "selectOnFocus": true, "store": Lino.users.UserStates });
    var notify_myself1838 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var mail_mode1839 = new Lino.ChoicesFieldElement({ "allowBlank": false, "forceSelection": true, "hidden": true, "selectOnFocus": true, "store": Lino.notify.MailModes });
    var about_me_htmlbox1840 = new Lino.HtmlBoxPanel({ "always_enabled": true, "bodyStyle": "overflow-x:hidden;", "containing_panel": this, "hidden": true, "items": new Ext.BoxComponent({autoScroll:true}), "layout": "fit", "name": "about_me", "title": "\u00dcber mich", "value": "<br/>" });
    var name_column_disp1841 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var workflow_buttons_disp1842 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var overview_disp1843 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var description_column_disp1844 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var created_natural_disp1845 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var age_disp1846 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var mti_navigator_disp1847 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var address_column_disp1848 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    this.before_row_edit = function(record) {
      city1814.setContextValue('country', record ? record.data['countryHidden'] : undefined);
      city1814.setContextValue('region', record ? record.data['regionHidden'] : undefined);
      region1816.setContextValue('country', record ? record.data['countryHidden'] : undefined);
      timezone1833.setContextValue('partner', record ? record.data['partner'] : undefined);
      about_me_htmlbox1840.refresh();
    };
    this.onRender = function(ct, position) {
      country1813.on('change',Lino.chooser_handler(city1814,'country'));
      region1816.on('change',Lino.chooser_handler(city1814,'region'));
      country1813.on('change',Lino.chooser_handler(region1816,'country'));
      Lino.users.Register.GridPanel.superclass.onRender.call(this, ct, position);
    }
    this.ls_columns = [ { "colIndex": 0, "dataIndex": "username", "editable": true, "editor": username1802, "filter": { "type": "string" }, "header": "Benutzername", "sortable": true, "tooltip": "(users.Register.username) Must be unique. Leaving this empty means that the user cannot log in.", "width": Lino.chars2width(22) }, { "colIndex": 1, "dataIndex": "profile", "editable": true, "editor": profile1803, "filter": { "type": "string" }, "header": "Benutzerart", "sortable": false, "tooltip": "(users.Register.profile) The profile of a user is what defines her or his permissions.", "width": Lino.chars2width(23) }, { "colIndex": 2, "dataIndex": "first_name", "editable": true, "editor": first_name1804, "filter": { "type": "string" }, "header": "Vorname", "sortable": true, "tooltip": "(users.Register.first_name) The first name, also known as given name.", "width": Lino.chars2width(22) }, { "colIndex": 3, "dataIndex": "last_name", "editable": true, "editor": last_name1805, "filter": { "type": "string" }, "header": "Familienname", "sortable": true, "tooltip": "(users.Register.last_name) The last name, also known as family name.", "width": Lino.chars2width(22) }, { "align": "right", "colIndex": 4, "dataIndex": "id", "editable": true, "editor": id1806, "filter": { "type": "numeric" }, "format": "0", "header": "ID", "hidden": true, "sortable": true, "tooltip": "(users.Register.id) ", "width": Lino.chars2width(6) }, { "colIndex": 5, "dataIndex": "email", "editable": true, "editor": email1807, "filter": { "type": "string" }, "header": "E-Mail-Adresse", "hidden": true, "sortable": true, "tooltip": "(users.Register.email) The primary email address.", "width": Lino.chars2width(22) }, { "colIndex": 6, "dataIndex": "language", "editable": true, "editor": language1808, "filter": { "type": "string" }, "header": "Sprache", "hidden": true, "sortable": false, "tooltip": "(users.Register.language) The language to use when communicating with this partner.", "width": Lino.chars2width(21) }, { "colIndex": 7, "dataIndex": "url", "editable": true, "editor": url1809, "filter": { "type": "string" }, "header": "Adresse (URL)", "hidden": true, "sortable": true, "tooltip": "(users.Register.url) ", "width": Lino.chars2width(22) }, { "colIndex": 8, "dataIndex": "phone", "editable": true, "editor": phone1810, "filter": { "type": "string" }, "header": "Telefon", "hidden": true, "sortable": true, "tooltip": "(users.Register.phone) The primary phone number.  Note that Lino does not ignore\nformatting characters in phone numbers when searching.  For\nexample, if you enter \"087/12.34.56\" as a phone number, then a\nsearch for phone number containing \"1234\" will not find it.", "width": Lino.chars2width(22) }, { "colIndex": 9, "dataIndex": "gsm", "editable": true, "editor": gsm1811, "filter": { "type": "string" }, "header": "GSM", "hidden": true, "sortable": true, "tooltip": "(users.Register.gsm) The primary mobile phone number.", "width": Lino.chars2width(22) }, { "colIndex": 10, "dataIndex": "fax", "editable": true, "editor": fax1812, "filter": { "type": "string" }, "header": "Fax", "hidden": true, "sortable": true, "tooltip": "(users.Register.fax) ", "width": Lino.chars2width(22) }, { "colIndex": 11, "dataIndex": "country", "editable": true, "editor": country1813, "filter": { "type": "string" }, "header": "Land", "hidden": true, "sortable": false, "tooltip": "(users.Register.country) ", "width": Lino.chars2width(21) }, { "colIndex": 12, "dataIndex": "city", "editable": true, "editor": city1814, "filter": { "type": "string" }, "header": "Stadt", "hidden": true, "sortable": false, "tooltip": "(users.Register.city) A pointer to Place.", "width": Lino.chars2width(21) }, { "colIndex": 13, "dataIndex": "zip_code", "editable": true, "editor": zip_code1815, "filter": { "type": "string" }, "header": "Postleitzahl", "hidden": true, "sortable": true, "tooltip": "(users.Register.zip_code) ", "width": Lino.chars2width(12) }, { "colIndex": 14, "dataIndex": "region", "editable": true, "editor": region1816, "filter": { "type": "string" }, "header": "Regierungsbezirk", "hidden": true, "sortable": false, "tooltip": "(users.Register.region) ", "width": Lino.chars2width(21) }, { "colIndex": 15, "dataIndex": "addr1", "editable": true, "editor": addr11817, "filter": { "type": "string" }, "header": "Adresszeile vor Stra\u00dfe", "hidden": true, "sortable": true, "tooltip": "(users.Register.addr1) Adresszeile vor Stra\u00dfe", "width": Lino.chars2width(22) }, { "colIndex": 16, "dataIndex": "street_prefix", "editable": true, "editor": street_prefix1818, "filter": { "type": "string" }, "header": "Pr\u00e4fix Stra\u00dfe", "hidden": true, "sortable": true, "tooltip": "(users.Register.street_prefix) Text to print before name of street, but to ignore for sorting.", "width": Lino.chars2width(22) }, { "colIndex": 17, "dataIndex": "street", "editable": true, "editor": street1819, "filter": { "type": "string" }, "header": "Stra\u00dfe", "hidden": true, "sortable": true, "tooltip": "(users.Register.street) Name der Stra\u00dfe, ohne Hausnummer", "width": Lino.chars2width(22) }, { "colIndex": 18, "dataIndex": "street_no", "editable": true, "editor": street_no1820, "filter": { "type": "string" }, "header": "Nr.", "hidden": true, "sortable": true, "tooltip": "(users.Register.street_no) Hausnummer", "width": Lino.chars2width(12) }, { "colIndex": 19, "dataIndex": "street_box", "editable": true, "editor": street_box1821, "filter": { "type": "string" }, "header": "Box", "hidden": true, "sortable": true, "tooltip": "(users.Register.street_box) Text to print after street nuber on the same line.", "width": Lino.chars2width(12) }, { "colIndex": 20, "dataIndex": "addr2", "editable": true, "editor": addr21822, "filter": { "type": "string" }, "header": "Adresszeile nach Stra\u00dfe", "hidden": true, "sortable": true, "tooltip": "(users.Register.addr2) Adresszeile nach Stra\u00dfe", "width": Lino.chars2width(22) }, { "colIndex": 21, "dataIndex": "name", "editable": true, "editor": name1823, "filter": { "type": "string" }, "header": "Name", "hidden": true, "sortable": true, "tooltip": "(users.Register.name) The full name of this partner. Used for alphabetic sorting.\nSubclasses may hide this field and fill it automatically,\ne.g. saving a Person will automatically set her\nname field to \"last_name, first_name\".", "width": Lino.chars2width(22) }, { "colIndex": 22, "dataIndex": "remarks", "editable": true, "editor": remarks1824, "filter": { "type": "string" }, "header": "Bemerkungen", "hidden": true, "sortable": false, "tooltip": "(users.Register.remarks) ", "width": Lino.chars2width(61) }, { "colIndex": 23, "dataIndex": "title", "editable": true, "editor": title1825, "filter": { "type": "string" }, "header": "Titel", "hidden": true, "sortable": true, "tooltip": "(users.Register.title) An optional name prefix like \"Dr.\" or \"PhD\", used to specify a\nprofessional position or academic qualification.", "width": Lino.chars2width(22) }, { "colIndex": 24, "dataIndex": "middle_name", "editable": true, "editor": middle_name1826, "filter": { "type": "string" }, "header": "Zwischenname", "hidden": true, "sortable": true, "tooltip": "(users.Register.middle_name) A space-separated list of all middle names.", "width": Lino.chars2width(22) }, { "colIndex": 25, "dataIndex": "gender", "editable": true, "editor": gender1827, "filter": { "type": "string" }, "header": "Geschlecht", "hidden": true, "sortable": false, "tooltip": "(users.Register.gender) The sex of this person (male or female).", "width": Lino.chars2width(10) }, { "colIndex": 26, "dataIndex": "birth_date", "editable": true, "editor": birth_date1828, "filter": { "type": "string" }, "header": "Geburtsdatum", "hidden": true, "sortable": true, "tooltip": "(users.Register.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\".", "width": Lino.chars2width(13) }, { "colIndex": 27, "dataIndex": "modified", "editable": false, "header": "Bearbeitet", "hidden": true, "sortable": true, "tooltip": "(users.Register.modified) ", "width": Lino.chars2width(17) }, { "colIndex": 28, "dataIndex": "created", "editable": false, "header": "Erstellt", "hidden": true, "sortable": true, "tooltip": "(users.Register.created) The timestame when this object was created.", "width": Lino.chars2width(17) }, { "colIndex": 29, "dataIndex": "password", "editable": true, "editor": password1831, "filter": { "type": "string" }, "header": "password", "hidden": true, "sortable": true, "tooltip": "(users.Register.password) ", "width": Lino.chars2width(22) }, { "colIndex": 30, "dataIndex": "last_login", "editable": true, "editor": last_login1832, "header": "last login", "hidden": true, "sortable": true, "tooltip": "(users.Register.last_login) Not used in Lino.", "width": Lino.chars2width(17) }, { "colIndex": 31, "dataIndex": "timezone", "editable": true, "editor": timezone1833, "filter": { "type": "string" }, "header": "Zeitzone", "hidden": true, "sortable": false, "tooltip": "(users.Register.timezone) The timezone.", "width": Lino.chars2width(11) }, { "colIndex": 32, "dataIndex": "initials", "editable": true, "editor": initials1834, "filter": { "type": "string" }, "header": "Initialien", "hidden": true, "sortable": true, "tooltip": "(users.Register.initials) ", "width": Lino.chars2width(12) }, { "colIndex": 33, "dataIndex": "callme_mode", "editable": true, "filter": { "type": "boolean" }, "header": "Andere d\u00fcrfen mich kontaktieren", "hidden": true, "sortable": false, "tooltip": "(users.Register.callme_mode) Whether other users can see my contact data.", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 34, "dataIndex": "verification_code", "editable": true, "editor": verification_code1836, "filter": { "type": "string" }, "header": "verification code", "hidden": true, "sortable": true, "tooltip": "(users.Register.verification_code) A random string set for every new user. Used for\nonline_registration.", "width": Lino.chars2width(22) }, { "colIndex": 35, "dataIndex": "user_state", "editable": true, "editor": user_state1837, "filter": { "type": "string" }, "header": "User state", "hidden": true, "sortable": false, "tooltip": "(users.Register.user_state) The registration state of this user.", "width": Lino.chars2width(12) }, { "colIndex": 36, "dataIndex": "notify_myself", "editable": true, "filter": { "type": "boolean" }, "header": "Benachrichtigungen an mich selbst", "hidden": true, "sortable": false, "tooltip": "(users.Register.notify_myself) ", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 37, "dataIndex": "mail_mode", "editable": true, "editor": mail_mode1839, "filter": { "type": "string" }, "header": "Benachrichtigungen per E-Mail", "hidden": true, "sortable": false, "tooltip": "(users.Register.mail_mode) ", "width": Lino.chars2width(15) }, { "colIndex": 38, "dataIndex": "about_me", "editable": false, "header": "\u00dcber mich", "hidden": true, "sortable": false, "tooltip": "(users.Register.about_me) ", "width": Lino.chars2width(31) }, { "colIndex": 39, "dataIndex": "name_column", "editable": false, "header": "Name", "hidden": true, "sortable": false, "tooltip": "(users.Register.name_column) ", "width": Lino.chars2width(16) }, { "colIndex": 40, "dataIndex": "workflow_buttons", "editable": false, "header": "Aktionen", "hidden": true, "sortable": false, "tooltip": "(users.Register.workflow_buttons) ", "width": Lino.chars2width(31) }, { "colIndex": 41, "dataIndex": "overview", "editable": false, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(users.Register.overview) ", "width": Lino.chars2width(31) }, { "colIndex": 42, "dataIndex": "description_column", "editable": false, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(users.Register.description_column) ", "width": Lino.chars2width(31) }, { "colIndex": 43, "dataIndex": "created_natural", "editable": false, "header": "Erstellt", "hidden": true, "sortable": false, "tooltip": "(users.Register.created_natural) ", "width": Lino.chars2width(31) }, { "colIndex": 44, "dataIndex": "age", "editable": false, "header": "Alter", "hidden": true, "sortable": false, "tooltip": "(users.Register.age) ", "width": Lino.chars2width(31) }, { "colIndex": 45, "dataIndex": "mti_navigator", "editable": false, "header": "Ansicht als ", "hidden": true, "sortable": false, "tooltip": "(users.Register.mti_navigator) ", "width": Lino.chars2width(31) }, { "colIndex": 46, "dataIndex": "address_column", "editable": false, "header": "Adresse", "hidden": true, "sortable": false, "tooltip": "(users.Register.address_column) ", "width": Lino.chars2width(31) } ];
    Lino.users.Register.GridPanel.superclass.initComponent.call(this);
  }
});

Lino.users.Register.show_as_html = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "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.Register.as_pdf = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "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.Register.as_pdf_p = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "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.Register.print_labels = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "GET", pk, "print_labels", params, Lino.get_current_grid_config);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.Register.export_excel = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "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.Register.submit_detail = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "GET", pk, "submit_detail", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.users.Register.insertPanel = Ext.extend(Lino.users.Register.InsertFormPanel,{
  empty_title: "Neu",
  hide_navigator: true,
  save_action_name: "submit_insert",
  ls_bbar_actions: [ { "auto_save": false, "itemId": "submit_insert", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Datensatz erstellen und dann im Detail-Fenster \u00f6ffnen") }, "menu_item_text": "Erstellen", "overflowText": "Erstellen", "panel_btn_handler": function(panel){panel.save()}, "text": "Erstellen" } ],
  ls_url: "/users/Register",
  action_name: "insert",
  default_record_id: -99999,
  initComponent : function() {
    this.ls_detail_handler = Lino.users.Register.detail;
    this.ls_insert_handler = Lino.users.Register.insert;
    Lino.users.Register.insertPanel.superclass.initComponent.call(this);
  }
});

Lino.users.Register.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.Register.insertPanel(p);
});
Lino.users.Register.grid_put = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "GET", pk, "grid_put", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.Register.grid_post = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "GET", pk, "grid_post", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.Register.submit_insert = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "GET", pk, "submit_insert", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.users.Register.detailPanel = Ext.extend(Lino.users.Users.DetailFormPanel,{
  empty_title: "Detail",
  save_action_name: "submit_detail",
  ls_bbar_actions: [ { "auto_save": false, "iconCls": "x-tbar-disk", "itemId": "submit_detail", "menu_item_text": "Speichern", "overflowText": "Speichern", "panel_btn_handler": function(panel){panel.save()}, "tooltip": "\u00c4nderungen in diesem Formular speichern" }, { "auto_save": true, "iconCls": "x-tbar-add", "itemId": "insert", "keycode": 44, "menu_item_text": "Neu", "overflowText": "Neu", "panel_btn_handler": Lino.show_insert, "tooltip": "Neuen Datensatz erstellen" }, { "auto_save": false, "iconCls": "x-tbar-delete", "itemId": "delete_selected", "keycode": 46, "menu_item_text": "L\u00f6schen", "overflowText": "L\u00f6schen", "panel_btn_handler": Lino.row_action_handler('delete_selected','GET',null), "tooltip": "Diesen Datensatz l\u00f6schen" }, { "auto_save": true, "itemId": "update_widgets", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Create or update the 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" }, { "auto_save": true, "itemId": "change_password", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Change the password of this user.") }, "menu_item_text": "Passwort \u00e4ndern", "overflowText": "Passwort \u00e4ndern", "panel_btn_handler": Lino.param_action_handler(Lino.users.Users.change_password), "text": " <font size=\"4\">\u2731</font>" } ],
  ls_url: "/users/Register",
  action_name: "detail",
  initComponent : function() {
    this.ls_detail_handler = Lino.users.Register.detail;
    this.ls_insert_handler = Lino.users.Register.insert;
    Lino.users.Register.detailPanel.superclass.initComponent.call(this);
  }
});

Lino.users.Register.detail = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  return new Lino.users.Register.detailPanel(p);
});
Lino.users.Register.delete_selected = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "GET", pk, "delete_selected", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.Register.grid = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  p.params_panel = new Lino.users.Users.ParamsPanel({});
  return new Lino.users.Register.GridPanel(p);
});
Lino.users.Register.validate = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "GET", pk, "validate", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.Register.del_company = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "GET", pk, "del_company", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.Register.ins_company = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "GET", pk, "ins_company", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.Register.update_widgets = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "GET", pk, "update_widgets", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.Register.ins_partner = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "GET", pk, "ins_partner", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.Register.ins_user = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "GET", pk, "ins_user", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.Register.del_partner = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "GET", pk, "del_partner", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.Register.ins_person = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "GET", pk, "ins_person", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.Register.del_person = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "GET", pk, "del_person", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.Register.del_user = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "GET", pk, "del_user", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.Register.wf1 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "GET", pk, "wf1", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.Register.wf2 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "GET", pk, "wf2", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.users.Register.wf3 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/users/Register", "GET", pk, "wf3", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

// js_render_GridPanel_class tickets.DuplicatesByTicket
Lino.tickets.DuplicatesByTicket.GridPanel = Ext.extend(Lino.GridPanel,{
  viewConfig : { "emptyText": "Keine Daten anzuzeigen.", "forceFit": true, "getRowClass": Lino.getRowClass },
  ls_url : "/tickets/DuplicatesByTicket",
  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('/tickets/DuplicatesByTicket','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": "Tabelle (Querformat)", "overflowText": "Tabelle (Querformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/DuplicatesByTicket','as_pdf','GET',Lino.get_current_grid_config), "text": "Tabelle (Querformat)", "tooltip": "Diese Tabelle in eine .pdf-Datei exportieren" }, { "auto_save": true, "itemId": "as_pdf_p", "menu_item_text": "Tabelle (Hochformat)", "overflowText": "Tabelle (Hochformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/DuplicatesByTicket','as_pdf_p','GET',Lino.get_current_grid_config), "text": "Tabelle (Hochformat)", "tooltip": "Diese Tabelle in eine .pdf-Datei exportieren" } ], "menu_item_text": "Tabelle (Querformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/DuplicatesByTicket','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('/tickets/DuplicatesByTicket','export_excel','GET',Lino.get_current_grid_config), "tooltip": "Export this table as an .xls document" }, { "auto_save": true, "iconCls": "x-tbar-add", "itemId": "insert", "keycode": 44, "menu_item_text": "Neu", "overflowText": "Neu", "panel_btn_handler": Lino.show_insert, "tooltip": "Neuen Datensatz erstellen" }, { "auto_save": true, "iconCls": "x-tbar-application_form", "itemId": "detail", "menu_item_text": "Detail", "overflowText": "Detail", "panel_btn_handler": Lino.show_detail, "tooltip": "Detail-Fenster auf diesem Datensatz \u00f6ffnen" }, { "auto_save": false, "iconCls": "x-tbar-delete", "itemId": "delete_selected", "keycode": 46, "menu_item_text": "L\u00f6schen", "overflowText": "L\u00f6schen", "panel_btn_handler": Lino.row_action_handler('delete_selected','GET',null), "tooltip": "Diesen Datensatz l\u00f6schen" } ],
  cell_edit : true,
  title : "Duplicates",
  page_length : 20,
  stripeRows : true,
  disabled_actions_index : 39,
  ls_store_fields : [ { "name": "id", "type": "int" }, { "name": "summary" }, { "name": "modified" }, { "name": "created" }, { "name": "user" }, 'userHidden', { "name": "private", "type": "boolean" }, { "name": "priority", "type": "int", "useNull": true }, { "name": "closed", "type": "boolean" }, { "name": "planned_time" }, { "name": "project" }, 'projectHidden', { "name": "site" }, 'siteHidden', { "name": "topic" }, 'topicHidden', { "name": "description" }, { "name": "upgrade_notes" }, { "name": "ticket_type" }, 'ticket_typeHidden', { "name": "reporter" }, 'reporterHidden', { "name": "end_user" }, 'end_userHidden', { "name": "state" }, 'stateHidden', { "dateFormat": "d.m.Y", "name": "deadline", "type": "date" }, { "name": "waiting_for" }, { "name": "feedback", "type": "boolean" }, { "name": "standby", "type": "boolean" }, { "name": "needed_skills" }, { "name": "suppliers" }, { "name": "workflow_buttons" }, { "name": "overview" }, { "name": "description_column" }, { "name": "created_natural" }, { "name": "duplicate_of" }, 'duplicate_ofHidden', { "name": "disabled_fields" }, { "name": "disabled_actions" }, { "name": "disable_editing" } ],
  pk_index : 0,
  ls_grid_configs : [  ],
  content_type : 26,
  ls_id_property : "id",
  gc_name : 0,
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.DuplicatesByTicket.detail;
    this.ls_insert_handler = Lino.tickets.DuplicatesByTicket.insert;
    var ww = this.containing_window;
    var id1850 = new Ext.form.NumberField({ "selectOnFocus": true });
    var summary1851 = new Ext.form.TextField({ "maxLength": 200, "selectOnFocus": true });
    var modified1852 = new Ext.form.DisplayField({ "disabled": true, "hidden": true, "value": "<br>" });
    var created1853 = new Ext.form.DisplayField({ "disabled": true, "hidden": true, "value": "<br>" });
    var user1854 = new Lino.RemoteComboFieldElement({ "emptyText": "Benutzer ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/DuplicatesByTicket/user" }) }) });
    var private1855 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var priority1856 = new Ext.form.NumberField({ "allowBlank": false, "hidden": true, "selectOnFocus": true, "value": 100 });
    var closed1857 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var planned_time1858 = new Lino.TimeField({ "hidden": true, "selectOnFocus": true });
    var project1859 = new Lino.RemoteComboFieldElement({ "emptyText": "Projekt ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/DuplicatesByTicket/project" }) }) });
    var site1860 = new Lino.RemoteComboFieldElement({ "emptyText": "Umfeld ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/DuplicatesByTicket/site" }) }) });
    var topic1861 = new Lino.RemoteComboFieldElement({ "emptyText": "Thema ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/DuplicatesByTicket/topic" }) }) });
    var description1862 = new Ext.form.TextArea({ "growMax": 2000, "hidden": true, "selectOnFocus": true });
    var upgrade_notes1863 = new Ext.form.TextArea({ "growMax": 2000, "hidden": true, "selectOnFocus": true });
    var ticket_type1864 = new Lino.RemoteComboFieldElement({ "emptyText": "Ticket type ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/DuplicatesByTicket/ticket_type" }) }) });
    var reporter1865 = new Lino.RemoteComboFieldElement({ "emptyText": "Benutzer ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/DuplicatesByTicket/reporter" }) }) });
    var end_user1866 = new Lino.RemoteComboFieldElement({ "emptyText": "Person ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/DuplicatesByTicket/end_user" }) }) });
    var state1867 = new Lino.ChoicesFieldElement({ "allowBlank": false, "forceSelection": true, "hidden": true, "selectOnFocus": true, "store": Lino.tickets.TicketStates });
    var deadline1868 = new Lino.DateField({ "hidden": true, "selectOnFocus": true });
    var waiting_for1869 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var feedback1870 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var standby1871 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var needed_skills_disp1872 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var suppliers_disp1873 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var workflow_buttons_disp1874 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var overview_disp1875 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var description_column_disp1876 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var created_natural_disp1877 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var duplicate_of1878 = new Lino.RemoteComboFieldElement({ "emptyText": "Ticket ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/DuplicatesByTicket/duplicate_of" }) }) });
    this.before_row_edit = function(record) {
    };
    this.ls_columns = [ { "align": "right", "colIndex": 0, "dataIndex": "id", "editable": true, "editor": id1850, "filter": { "type": "numeric" }, "format": "0", "header": "ID", "sortable": true, "tooltip": "(tickets.DuplicatesByTicket.id) ", "width": Lino.chars2width(6) }, { "colIndex": 1, "dataIndex": "summary", "editable": true, "editor": summary1851, "filter": { "type": "string" }, "header": "Zusammenfassung", "sortable": true, "tooltip": "(tickets.DuplicatesByTicket.summary) Short summary of the problem.", "width": Lino.chars2width(22) }, { "colIndex": 2, "dataIndex": "modified", "editable": false, "header": "Bearbeitet", "hidden": true, "sortable": true, "tooltip": "(tickets.DuplicatesByTicket.modified) ", "width": Lino.chars2width(17) }, { "colIndex": 3, "dataIndex": "created", "editable": false, "header": "Erstellt", "hidden": true, "sortable": true, "tooltip": "(tickets.DuplicatesByTicket.created) The timestame when this object was created.", "width": Lino.chars2width(17) }, { "colIndex": 4, "dataIndex": "user", "editable": true, "editor": user1854, "filter": { "type": "string" }, "header": "Autor", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.user) The author of this object.\nA pointer to lino.modlib.users.models.User.", "width": Lino.chars2width(21) }, { "colIndex": 5, "dataIndex": "private", "editable": true, "filter": { "type": "boolean" }, "header": "Privat", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.private) Whether this investment is private, i.e. should not be\npublicly visible anywhere.", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "align": "right", "colIndex": 6, "dataIndex": "priority", "editable": true, "editor": priority1856, "filter": { "type": "numeric" }, "format": "0", "header": "Priorit\u00e4t", "hidden": true, "sortable": true, "tooltip": "(tickets.DuplicatesByTicket.priority) ", "width": Lino.chars2width(6) }, { "colIndex": 7, "dataIndex": "closed", "editable": true, "filter": { "type": "boolean" }, "header": "Abgeschlossen", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.closed) Whether this investment is closed, i.e. certain things should\nnot change anymore.", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 8, "dataIndex": "planned_time", "editable": true, "editor": planned_time1858, "header": "Planned time", "hidden": true, "sortable": true, "tooltip": "(tickets.DuplicatesByTicket.planned_time) The time (in hours) we plan to work on this project or ticket.", "width": Lino.chars2width(9) }, { "colIndex": 9, "dataIndex": "project", "editable": true, "editor": project1859, "filter": { "type": "string" }, "header": "Projekt", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.project) ", "width": Lino.chars2width(21) }, { "colIndex": 10, "dataIndex": "site", "editable": true, "editor": site1860, "filter": { "type": "string" }, "header": "Umfeld", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.site) ", "width": Lino.chars2width(21) }, { "colIndex": 11, "dataIndex": "topic", "editable": true, "editor": topic1861, "filter": { "type": "string" }, "header": "Thema", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.topic) ", "width": Lino.chars2width(21) }, { "colIndex": 12, "dataIndex": "description", "editable": true, "editor": description1862, "filter": { "type": "string" }, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.description) ", "width": Lino.chars2width(61) }, { "colIndex": 13, "dataIndex": "upgrade_notes", "editable": true, "editor": upgrade_notes1863, "filter": { "type": "string" }, "header": "L\u00f6sung", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.upgrade_notes) ", "width": Lino.chars2width(61) }, { "colIndex": 14, "dataIndex": "ticket_type", "editable": true, "editor": ticket_type1864, "filter": { "type": "string" }, "header": "Ticket type", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.ticket_type) ", "width": Lino.chars2width(21) }, { "colIndex": 15, "dataIndex": "reporter", "editable": true, "editor": reporter1865, "filter": { "type": "string" }, "header": "Anfrager", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.reporter) ", "width": Lino.chars2width(21) }, { "colIndex": 16, "dataIndex": "end_user", "editable": true, "editor": end_user1866, "filter": { "type": "string" }, "header": "End user", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.end_user) ", "width": Lino.chars2width(21) }, { "colIndex": 17, "dataIndex": "state", "editable": true, "editor": state1867, "filter": { "type": "string" }, "header": "Zustand", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.state) ", "width": Lino.chars2width(13) }, { "colIndex": 18, "dataIndex": "deadline", "editable": true, "editor": deadline1868, "filter": { "dateFormat": "d.m.Y", "type": "date" }, "format": "d.m.Y", "header": "Deadline", "hidden": true, "sortable": true, "tooltip": "(tickets.DuplicatesByTicket.deadline) ", "width": Lino.chars2width(14), "xtype": "datecolumn" }, { "colIndex": 19, "dataIndex": "waiting_for", "editable": true, "editor": waiting_for1869, "filter": { "type": "string" }, "header": "Waiting for", "hidden": true, "sortable": true, "tooltip": "(tickets.DuplicatesByTicket.waiting_for) ", "width": Lino.chars2width(22) }, { "colIndex": 20, "dataIndex": "feedback", "editable": true, "filter": { "type": "boolean" }, "header": "Feedback", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.feedback) ", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 21, "dataIndex": "standby", "editable": true, "filter": { "type": "boolean" }, "header": "Standby", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.standby) ", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 22, "dataIndex": "needed_skills", "editable": false, "header": "Needed skills", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.needed_skills) ", "width": Lino.chars2width(31) }, { "colIndex": 23, "dataIndex": "suppliers", "editable": false, "header": "Suppliers", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.suppliers) ", "width": Lino.chars2width(31) }, { "colIndex": 24, "dataIndex": "workflow_buttons", "editable": false, "header": "Aktionen", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.workflow_buttons) ", "width": Lino.chars2width(31) }, { "colIndex": 25, "dataIndex": "overview", "editable": false, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.overview) ", "width": Lino.chars2width(31) }, { "colIndex": 26, "dataIndex": "description_column", "editable": false, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.description_column) ", "width": Lino.chars2width(31) }, { "colIndex": 27, "dataIndex": "created_natural", "editable": false, "header": "Erstellt", "hidden": true, "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.created_natural) ", "width": Lino.chars2width(31) }, { "colIndex": 28, "dataIndex": "duplicate_of", "editable": true, "editor": duplicate_of1878, "filter": { "type": "string" }, "header": "Dublette von", "hidden": true, "renderer": Lino.fk_renderer('duplicate_ofHidden','Lino.tickets.Tickets.detail'), "sortable": false, "tooltip": "(tickets.DuplicatesByTicket.duplicate_of) ", "width": Lino.chars2width(21) } ];
    Lino.tickets.DuplicatesByTicket.GridPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.DuplicatesByTicket.show_as_html = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/DuplicatesByTicket", "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.tickets.DuplicatesByTicket.as_pdf = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/DuplicatesByTicket", "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.tickets.DuplicatesByTicket.as_pdf_p = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/DuplicatesByTicket", "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.tickets.DuplicatesByTicket.export_excel = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/DuplicatesByTicket", "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.tickets.DuplicatesByTicket.submit_detail = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/DuplicatesByTicket", "GET", pk, "submit_detail", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.tickets.DuplicatesByTicket.insertPanel = Ext.extend(Lino.tickets.Tickets.InsertFormPanel,{
  empty_title: "Neu",
  hide_navigator: true,
  save_action_name: "submit_insert",
  ls_bbar_actions: [ { "auto_save": false, "itemId": "submit_insert", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Datensatz erstellen und dann im Detail-Fenster \u00f6ffnen") }, "menu_item_text": "Erstellen", "overflowText": "Erstellen", "panel_btn_handler": function(panel){panel.save()}, "text": "Erstellen" } ],
  ls_url: "/tickets/DuplicatesByTicket",
  action_name: "insert",
  default_record_id: -99999,
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.DuplicatesByTicket.detail;
    this.ls_insert_handler = Lino.tickets.DuplicatesByTicket.insert;
    Lino.tickets.DuplicatesByTicket.insertPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.DuplicatesByTicket.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.tickets.DuplicatesByTicket.insertPanel(p);
});
Lino.tickets.DuplicatesByTicket.grid_put = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/DuplicatesByTicket", "GET", pk, "grid_put", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.DuplicatesByTicket.grid_post = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/DuplicatesByTicket", "GET", pk, "grid_post", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.DuplicatesByTicket.submit_insert = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/DuplicatesByTicket", "GET", pk, "submit_insert", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.tickets.DuplicatesByTicket.detailPanel = Ext.extend(Lino.tickets.Tickets.DetailFormPanel,{
  empty_title: "Detail",
  save_action_name: "submit_detail",
  ls_bbar_actions: [ { "auto_save": false, "iconCls": "x-tbar-disk", "itemId": "submit_detail", "menu_item_text": "Speichern", "overflowText": "Speichern", "panel_btn_handler": function(panel){panel.save()}, "tooltip": "\u00c4nderungen in diesem Formular speichern" }, { "auto_save": true, "iconCls": "x-tbar-add", "itemId": "insert", "keycode": 44, "menu_item_text": "Neu", "overflowText": "Neu", "panel_btn_handler": Lino.show_insert, "tooltip": "Neuen Datensatz erstellen" }, { "auto_save": false, "iconCls": "x-tbar-delete", "itemId": "delete_selected", "keycode": 46, "menu_item_text": "L\u00f6schen", "overflowText": "L\u00f6schen", "panel_btn_handler": Lino.row_action_handler('delete_selected','GET',null), "tooltip": "Diesen Datensatz l\u00f6schen" } ],
  ls_url: "/tickets/DuplicatesByTicket",
  action_name: "detail",
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.DuplicatesByTicket.detail;
    this.ls_insert_handler = Lino.tickets.DuplicatesByTicket.insert;
    Lino.tickets.DuplicatesByTicket.detailPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.DuplicatesByTicket.detail = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  return new Lino.tickets.DuplicatesByTicket.detailPanel(p);
});
Lino.tickets.DuplicatesByTicket.delete_selected = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/DuplicatesByTicket", "GET", pk, "delete_selected", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.DuplicatesByTicket.grid = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  p.params_panel = new Lino.tickets.Tickets.ParamsPanel({});
  return new Lino.tickets.DuplicatesByTicket.GridPanel(p);
});
Lino.tickets.DuplicatesByTicket.validate = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/DuplicatesByTicket", "GET", pk, "validate", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.DuplicatesByTicket.spawn_triggered = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/DuplicatesByTicket", "GET", pk, "spawn_triggered", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.DuplicatesByTicket.create_vote = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/DuplicatesByTicket", "GET", pk, "create_vote", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.DuplicatesByTicket.edit_vote = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/DuplicatesByTicket", "GET", pk, "edit_vote", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.DuplicatesByTicket.wf1 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/DuplicatesByTicket", "GET", pk, "wf1", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.DuplicatesByTicket.wf2 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/DuplicatesByTicket", "GET", pk, "wf2", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.DuplicatesByTicket.wf3 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/DuplicatesByTicket", "GET", pk, "wf3", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.DuplicatesByTicket.wf4 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/DuplicatesByTicket", "GET", pk, "wf4", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.DuplicatesByTicket.wf5 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/DuplicatesByTicket", "GET", pk, "wf5", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.DuplicatesByTicket.wf6 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/DuplicatesByTicket", "GET", pk, "wf6", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

// js_render_GridPanel_class tickets.TicketsByEndUser
Lino.tickets.TicketsByEndUser.GridPanel = Ext.extend(Lino.GridPanel,{
  viewConfig : { "emptyText": "Keine Daten anzuzeigen.", "forceFit": true, "getRowClass": Lino.getRowClass },
  ls_url : "/tickets/TicketsByEndUser",
  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('/tickets/TicketsByEndUser','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": "Tabelle (Querformat)", "overflowText": "Tabelle (Querformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/TicketsByEndUser','as_pdf','GET',Lino.get_current_grid_config), "text": "Tabelle (Querformat)", "tooltip": "Diese Tabelle in eine .pdf-Datei exportieren" }, { "auto_save": true, "itemId": "as_pdf_p", "menu_item_text": "Tabelle (Hochformat)", "overflowText": "Tabelle (Hochformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/TicketsByEndUser','as_pdf_p','GET',Lino.get_current_grid_config), "text": "Tabelle (Hochformat)", "tooltip": "Diese Tabelle in eine .pdf-Datei exportieren" } ], "menu_item_text": "Tabelle (Querformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/TicketsByEndUser','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('/tickets/TicketsByEndUser','export_excel','GET',Lino.get_current_grid_config), "tooltip": "Export this table as an .xls document" }, { "auto_save": true, "iconCls": "x-tbar-add", "itemId": "insert", "keycode": 44, "menu_item_text": "Neu", "overflowText": "Neu", "panel_btn_handler": Lino.show_insert, "tooltip": "Neuen Datensatz erstellen" }, { "auto_save": true, "iconCls": "x-tbar-application_form", "itemId": "detail", "menu_item_text": "Detail", "overflowText": "Detail", "panel_btn_handler": Lino.show_detail, "tooltip": "Detail-Fenster auf diesem Datensatz \u00f6ffnen" }, { "auto_save": false, "iconCls": "x-tbar-delete", "itemId": "delete_selected", "keycode": 46, "menu_item_text": "L\u00f6schen", "overflowText": "L\u00f6schen", "panel_btn_handler": Lino.row_action_handler('delete_selected','GET',null), "tooltip": "Diesen Datensatz l\u00f6schen" } ],
  cell_edit : true,
  title : "Anfragen",
  page_length : 20,
  stripeRows : true,
  disabled_actions_index : 39,
  ls_store_fields : [ { "name": "overview" }, { "name": "topic" }, 'topicHidden', { "name": "user" }, 'userHidden', { "name": "workflow_buttons" }, { "name": "id", "type": "int" }, { "name": "modified" }, { "name": "created" }, { "name": "private", "type": "boolean" }, { "name": "priority", "type": "int", "useNull": true }, { "name": "closed", "type": "boolean" }, { "name": "planned_time" }, { "name": "project" }, 'projectHidden', { "name": "site" }, 'siteHidden', { "name": "summary" }, { "name": "description" }, { "name": "upgrade_notes" }, { "name": "ticket_type" }, 'ticket_typeHidden', { "name": "duplicate_of" }, 'duplicate_ofHidden', { "name": "reporter" }, 'reporterHidden', { "name": "state" }, 'stateHidden', { "dateFormat": "d.m.Y", "name": "deadline", "type": "date" }, { "name": "waiting_for" }, { "name": "feedback", "type": "boolean" }, { "name": "standby", "type": "boolean" }, { "name": "needed_skills" }, { "name": "suppliers" }, { "name": "description_column" }, { "name": "created_natural" }, { "name": "end_user" }, 'end_userHidden', { "name": "disabled_fields" }, { "name": "disabled_actions" }, { "name": "disable_editing" } ],
  pk_index : 6,
  ls_grid_configs : [  ],
  content_type : 26,
  ls_id_property : "id",
  gc_name : 0,
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.TicketsByEndUser.detail;
    this.ls_insert_handler = Lino.tickets.TicketsByEndUser.insert;
    var ww = this.containing_window;
    var overview_disp1880 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "value": "<br/>" });
    var topic1881 = new Lino.RemoteComboFieldElement({ "emptyText": "Thema ausw\u00e4hlen...", "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByEndUser/topic" }) }) });
    var user1882 = new Lino.RemoteComboFieldElement({ "emptyText": "Benutzer ausw\u00e4hlen...", "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByEndUser/user" }) }) });
    var workflow_buttons_disp1883 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "value": "<br/>" });
    var id1884 = new Ext.form.NumberField({ "hidden": true, "selectOnFocus": true });
    var modified1885 = new Ext.form.DisplayField({ "disabled": true, "hidden": true, "value": "<br>" });
    var created1886 = new Ext.form.DisplayField({ "disabled": true, "hidden": true, "value": "<br>" });
    var private1887 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var priority1888 = new Ext.form.NumberField({ "allowBlank": false, "hidden": true, "selectOnFocus": true, "value": 100 });
    var closed1889 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var planned_time1890 = new Lino.TimeField({ "hidden": true, "selectOnFocus": true });
    var project1891 = new Lino.RemoteComboFieldElement({ "emptyText": "Projekt ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByEndUser/project" }) }) });
    var site1892 = new Lino.RemoteComboFieldElement({ "emptyText": "Umfeld ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByEndUser/site" }) }) });
    var summary1893 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var description1894 = new Ext.form.TextArea({ "growMax": 2000, "hidden": true, "selectOnFocus": true });
    var upgrade_notes1895 = new Ext.form.TextArea({ "growMax": 2000, "hidden": true, "selectOnFocus": true });
    var ticket_type1896 = new Lino.RemoteComboFieldElement({ "emptyText": "Ticket type ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByEndUser/ticket_type" }) }) });
    var duplicate_of1897 = new Lino.RemoteComboFieldElement({ "emptyText": "Ticket ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByEndUser/duplicate_of" }) }) });
    var reporter1898 = new Lino.RemoteComboFieldElement({ "emptyText": "Benutzer ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByEndUser/reporter" }) }) });
    var state1899 = new Lino.ChoicesFieldElement({ "allowBlank": false, "forceSelection": true, "hidden": true, "selectOnFocus": true, "store": Lino.tickets.TicketStates });
    var deadline1900 = new Lino.DateField({ "hidden": true, "selectOnFocus": true });
    var waiting_for1901 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var feedback1902 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var standby1903 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var needed_skills_disp1904 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var suppliers_disp1905 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var description_column_disp1906 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var created_natural_disp1907 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var end_user1908 = new Lino.RemoteComboFieldElement({ "emptyText": "Person ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByEndUser/end_user" }) }) });
    this.before_row_edit = function(record) {
    };
    this.ls_columns = [ { "colIndex": 0, "dataIndex": "overview", "editable": false, "header": "Beschreibung", "sortable": false, "tooltip": "(tickets.TicketsByEndUser.overview) ", "width": Lino.chars2width(51) }, { "colIndex": 1, "dataIndex": "topic", "editable": true, "editor": topic1881, "filter": { "type": "string" }, "header": "Thema", "sortable": false, "tooltip": "(tickets.TicketsByEndUser.topic) ", "width": Lino.chars2width(11) }, { "colIndex": 2, "dataIndex": "user", "editable": true, "editor": user1882, "filter": { "type": "string" }, "header": "Autor", "sortable": false, "tooltip": "(tickets.TicketsByEndUser.user) The author of this object.\nA pointer to lino.modlib.users.models.User.", "width": Lino.chars2width(11) }, { "colIndex": 3, "dataIndex": "workflow_buttons", "editable": false, "header": "Aktionen", "sortable": false, "tooltip": "(tickets.TicketsByEndUser.workflow_buttons) ", "width": Lino.chars2width(31) }, { "align": "right", "colIndex": 4, "dataIndex": "id", "editable": true, "editor": id1884, "filter": { "type": "numeric" }, "format": "0", "header": "ID", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByEndUser.id) ", "width": Lino.chars2width(6) }, { "colIndex": 5, "dataIndex": "modified", "editable": false, "header": "Bearbeitet", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByEndUser.modified) ", "width": Lino.chars2width(17) }, { "colIndex": 6, "dataIndex": "created", "editable": false, "header": "Erstellt", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByEndUser.created) The timestame when this object was created.", "width": Lino.chars2width(17) }, { "colIndex": 7, "dataIndex": "private", "editable": true, "filter": { "type": "boolean" }, "header": "Privat", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByEndUser.private) Whether this investment is private, i.e. should not be\npublicly visible anywhere.", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "align": "right", "colIndex": 8, "dataIndex": "priority", "editable": true, "editor": priority1888, "filter": { "type": "numeric" }, "format": "0", "header": "Priorit\u00e4t", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByEndUser.priority) ", "width": Lino.chars2width(6) }, { "colIndex": 9, "dataIndex": "closed", "editable": true, "filter": { "type": "boolean" }, "header": "Abgeschlossen", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByEndUser.closed) Whether this investment is closed, i.e. certain things should\nnot change anymore.", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 10, "dataIndex": "planned_time", "editable": true, "editor": planned_time1890, "header": "Planned time", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByEndUser.planned_time) The time (in hours) we plan to work on this project or ticket.", "width": Lino.chars2width(9) }, { "colIndex": 11, "dataIndex": "project", "editable": true, "editor": project1891, "filter": { "type": "string" }, "header": "Projekt", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByEndUser.project) ", "width": Lino.chars2width(21) }, { "colIndex": 12, "dataIndex": "site", "editable": true, "editor": site1892, "filter": { "type": "string" }, "header": "Umfeld", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByEndUser.site) ", "width": Lino.chars2width(21) }, { "colIndex": 13, "dataIndex": "summary", "editable": true, "editor": summary1893, "filter": { "type": "string" }, "header": "Zusammenfassung", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByEndUser.summary) Short summary of the problem.", "width": Lino.chars2width(22) }, { "colIndex": 14, "dataIndex": "description", "editable": true, "editor": description1894, "filter": { "type": "string" }, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByEndUser.description) ", "width": Lino.chars2width(61) }, { "colIndex": 15, "dataIndex": "upgrade_notes", "editable": true, "editor": upgrade_notes1895, "filter": { "type": "string" }, "header": "L\u00f6sung", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByEndUser.upgrade_notes) ", "width": Lino.chars2width(61) }, { "colIndex": 16, "dataIndex": "ticket_type", "editable": true, "editor": ticket_type1896, "filter": { "type": "string" }, "header": "Ticket type", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByEndUser.ticket_type) ", "width": Lino.chars2width(21) }, { "colIndex": 17, "dataIndex": "duplicate_of", "editable": true, "editor": duplicate_of1897, "filter": { "type": "string" }, "header": "Dublette von", "hidden": true, "renderer": Lino.fk_renderer('duplicate_ofHidden','Lino.tickets.Tickets.detail'), "sortable": false, "tooltip": "(tickets.TicketsByEndUser.duplicate_of) ", "width": Lino.chars2width(21) }, { "colIndex": 18, "dataIndex": "reporter", "editable": true, "editor": reporter1898, "filter": { "type": "string" }, "header": "Anfrager", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByEndUser.reporter) ", "width": Lino.chars2width(21) }, { "colIndex": 19, "dataIndex": "state", "editable": true, "editor": state1899, "filter": { "type": "string" }, "header": "Zustand", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByEndUser.state) ", "width": Lino.chars2width(13) }, { "colIndex": 20, "dataIndex": "deadline", "editable": true, "editor": deadline1900, "filter": { "dateFormat": "d.m.Y", "type": "date" }, "format": "d.m.Y", "header": "Deadline", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByEndUser.deadline) ", "width": Lino.chars2width(14), "xtype": "datecolumn" }, { "colIndex": 21, "dataIndex": "waiting_for", "editable": true, "editor": waiting_for1901, "filter": { "type": "string" }, "header": "Waiting for", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByEndUser.waiting_for) ", "width": Lino.chars2width(22) }, { "colIndex": 22, "dataIndex": "feedback", "editable": true, "filter": { "type": "boolean" }, "header": "Feedback", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByEndUser.feedback) ", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 23, "dataIndex": "standby", "editable": true, "filter": { "type": "boolean" }, "header": "Standby", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByEndUser.standby) ", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 24, "dataIndex": "needed_skills", "editable": false, "header": "Needed skills", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByEndUser.needed_skills) ", "width": Lino.chars2width(31) }, { "colIndex": 25, "dataIndex": "suppliers", "editable": false, "header": "Suppliers", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByEndUser.suppliers) ", "width": Lino.chars2width(31) }, { "colIndex": 26, "dataIndex": "description_column", "editable": false, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByEndUser.description_column) ", "width": Lino.chars2width(31) }, { "colIndex": 27, "dataIndex": "created_natural", "editable": false, "header": "Erstellt", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByEndUser.created_natural) ", "width": Lino.chars2width(31) }, { "colIndex": 28, "dataIndex": "end_user", "editable": true, "editor": end_user1908, "filter": { "type": "string" }, "header": "End user", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByEndUser.end_user) ", "width": Lino.chars2width(21) } ];
    Lino.tickets.TicketsByEndUser.GridPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.TicketsByEndUser.show_as_html = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByEndUser", "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.tickets.TicketsByEndUser.as_pdf = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByEndUser", "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.tickets.TicketsByEndUser.as_pdf_p = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByEndUser", "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.tickets.TicketsByEndUser.export_excel = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByEndUser", "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.tickets.TicketsByEndUser.submit_detail = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByEndUser", "GET", pk, "submit_detail", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.tickets.TicketsByEndUser.insertPanel = Ext.extend(Lino.tickets.Tickets.InsertFormPanel,{
  empty_title: "Neu",
  hide_navigator: true,
  save_action_name: "submit_insert",
  ls_bbar_actions: [ { "auto_save": false, "itemId": "submit_insert", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Datensatz erstellen und dann im Detail-Fenster \u00f6ffnen") }, "menu_item_text": "Erstellen", "overflowText": "Erstellen", "panel_btn_handler": function(panel){panel.save()}, "text": "Erstellen" } ],
  ls_url: "/tickets/TicketsByEndUser",
  action_name: "insert",
  default_record_id: -99999,
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.TicketsByEndUser.detail;
    this.ls_insert_handler = Lino.tickets.TicketsByEndUser.insert;
    Lino.tickets.TicketsByEndUser.insertPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.TicketsByEndUser.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.tickets.TicketsByEndUser.insertPanel(p);
});
Lino.tickets.TicketsByEndUser.grid_put = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByEndUser", "GET", pk, "grid_put", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByEndUser.grid_post = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByEndUser", "GET", pk, "grid_post", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByEndUser.submit_insert = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByEndUser", "GET", pk, "submit_insert", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.tickets.TicketsByEndUser.detailPanel = Ext.extend(Lino.tickets.Tickets.DetailFormPanel,{
  empty_title: "Detail",
  save_action_name: "submit_detail",
  ls_bbar_actions: [ { "auto_save": false, "iconCls": "x-tbar-disk", "itemId": "submit_detail", "menu_item_text": "Speichern", "overflowText": "Speichern", "panel_btn_handler": function(panel){panel.save()}, "tooltip": "\u00c4nderungen in diesem Formular speichern" }, { "auto_save": true, "iconCls": "x-tbar-add", "itemId": "insert", "keycode": 44, "menu_item_text": "Neu", "overflowText": "Neu", "panel_btn_handler": Lino.show_insert, "tooltip": "Neuen Datensatz erstellen" }, { "auto_save": false, "iconCls": "x-tbar-delete", "itemId": "delete_selected", "keycode": 46, "menu_item_text": "L\u00f6schen", "overflowText": "L\u00f6schen", "panel_btn_handler": Lino.row_action_handler('delete_selected','GET',null), "tooltip": "Diesen Datensatz l\u00f6schen" } ],
  ls_url: "/tickets/TicketsByEndUser",
  action_name: "detail",
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.TicketsByEndUser.detail;
    this.ls_insert_handler = Lino.tickets.TicketsByEndUser.insert;
    Lino.tickets.TicketsByEndUser.detailPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.TicketsByEndUser.detail = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  return new Lino.tickets.TicketsByEndUser.detailPanel(p);
});
Lino.tickets.TicketsByEndUser.delete_selected = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByEndUser", "GET", pk, "delete_selected", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByEndUser.grid = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  p.params_panel = new Lino.tickets.Tickets.ParamsPanel({});
  return new Lino.tickets.TicketsByEndUser.GridPanel(p);
});
Lino.tickets.TicketsByEndUser.validate = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByEndUser", "GET", pk, "validate", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByEndUser.spawn_triggered = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByEndUser", "GET", pk, "spawn_triggered", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByEndUser.create_vote = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByEndUser", "GET", pk, "create_vote", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByEndUser.edit_vote = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByEndUser", "GET", pk, "edit_vote", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByEndUser.wf1 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByEndUser", "GET", pk, "wf1", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByEndUser.wf2 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByEndUser", "GET", pk, "wf2", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByEndUser.wf3 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByEndUser", "GET", pk, "wf3", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByEndUser.wf4 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByEndUser", "GET", pk, "wf4", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByEndUser.wf5 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByEndUser", "GET", pk, "wf5", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByEndUser.wf6 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByEndUser", "GET", pk, "wf6", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

// js_render_GridPanel_class tickets.TicketsByType
Lino.tickets.TicketsByType.GridPanel = Ext.extend(Lino.GridPanel,{
  viewConfig : { "emptyText": "Keine Daten anzuzeigen.", "forceFit": true, "getRowClass": Lino.getRowClass },
  ls_url : "/tickets/TicketsByType",
  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('/tickets/TicketsByType','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": "Tabelle (Querformat)", "overflowText": "Tabelle (Querformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/TicketsByType','as_pdf','GET',Lino.get_current_grid_config), "text": "Tabelle (Querformat)", "tooltip": "Diese Tabelle in eine .pdf-Datei exportieren" }, { "auto_save": true, "itemId": "as_pdf_p", "menu_item_text": "Tabelle (Hochformat)", "overflowText": "Tabelle (Hochformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/TicketsByType','as_pdf_p','GET',Lino.get_current_grid_config), "text": "Tabelle (Hochformat)", "tooltip": "Diese Tabelle in eine .pdf-Datei exportieren" } ], "menu_item_text": "Tabelle (Querformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/TicketsByType','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('/tickets/TicketsByType','export_excel','GET',Lino.get_current_grid_config), "tooltip": "Export this table as an .xls document" }, { "auto_save": true, "iconCls": "x-tbar-add", "itemId": "insert", "keycode": 44, "menu_item_text": "Neu", "overflowText": "Neu", "panel_btn_handler": Lino.show_insert, "tooltip": "Neuen Datensatz erstellen" }, { "auto_save": true, "iconCls": "x-tbar-application_form", "itemId": "detail", "menu_item_text": "Detail", "overflowText": "Detail", "panel_btn_handler": Lino.show_detail, "tooltip": "Detail-Fenster auf diesem Datensatz \u00f6ffnen" }, { "auto_save": false, "iconCls": "x-tbar-delete", "itemId": "delete_selected", "keycode": 46, "menu_item_text": "L\u00f6schen", "overflowText": "L\u00f6schen", "panel_btn_handler": Lino.row_action_handler('delete_selected','GET',null), "tooltip": "Diesen Datensatz l\u00f6schen" } ],
  cell_edit : true,
  title : "Anfragen",
  page_length : 20,
  stripeRows : true,
  disabled_actions_index : 39,
  ls_store_fields : [ { "name": "summary" }, { "name": "state" }, 'stateHidden', { "name": "id", "type": "int" }, { "name": "modified" }, { "name": "created" }, { "name": "user" }, 'userHidden', { "name": "private", "type": "boolean" }, { "name": "priority", "type": "int", "useNull": true }, { "name": "closed", "type": "boolean" }, { "name": "planned_time" }, { "name": "project" }, 'projectHidden', { "name": "site" }, 'siteHidden', { "name": "topic" }, 'topicHidden', { "name": "description" }, { "name": "upgrade_notes" }, { "name": "duplicate_of" }, 'duplicate_ofHidden', { "name": "reporter" }, 'reporterHidden', { "name": "end_user" }, 'end_userHidden', { "dateFormat": "d.m.Y", "name": "deadline", "type": "date" }, { "name": "waiting_for" }, { "name": "feedback", "type": "boolean" }, { "name": "standby", "type": "boolean" }, { "name": "needed_skills" }, { "name": "suppliers" }, { "name": "workflow_buttons" }, { "name": "overview" }, { "name": "description_column" }, { "name": "created_natural" }, { "name": "ticket_type" }, 'ticket_typeHidden', { "name": "disabled_fields" }, { "name": "disabled_actions" }, { "name": "disable_editing" } ],
  pk_index : 3,
  ls_grid_configs : [  ],
  content_type : 26,
  ls_id_property : "id",
  gc_name : 0,
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.TicketsByType.detail;
    this.ls_insert_handler = Lino.tickets.TicketsByType.insert;
    var ww = this.containing_window;
    var summary1074 = new Ext.form.TextField({ "maxLength": 200, "selectOnFocus": true });
    var state1075 = new Lino.ChoicesFieldElement({ "allowBlank": false, "forceSelection": true, "selectOnFocus": true, "store": Lino.tickets.TicketStates });
    var id1076 = new Ext.form.NumberField({ "hidden": true, "selectOnFocus": true });
    var modified1077 = new Ext.form.DisplayField({ "disabled": true, "hidden": true, "value": "<br>" });
    var created1078 = new Ext.form.DisplayField({ "disabled": true, "hidden": true, "value": "<br>" });
    var user1079 = new Lino.RemoteComboFieldElement({ "emptyText": "Benutzer ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByType/user" }) }) });
    var private1080 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var priority1081 = new Ext.form.NumberField({ "allowBlank": false, "hidden": true, "selectOnFocus": true, "value": 100 });
    var closed1082 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var planned_time1083 = new Lino.TimeField({ "hidden": true, "selectOnFocus": true });
    var project1084 = new Lino.RemoteComboFieldElement({ "emptyText": "Projekt ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByType/project" }) }) });
    var site1085 = new Lino.RemoteComboFieldElement({ "emptyText": "Umfeld ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByType/site" }) }) });
    var topic1086 = new Lino.RemoteComboFieldElement({ "emptyText": "Thema ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByType/topic" }) }) });
    var description1087 = new Ext.form.TextArea({ "growMax": 2000, "hidden": true, "selectOnFocus": true });
    var upgrade_notes1088 = new Ext.form.TextArea({ "growMax": 2000, "hidden": true, "selectOnFocus": true });
    var duplicate_of1089 = new Lino.RemoteComboFieldElement({ "emptyText": "Ticket ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByType/duplicate_of" }) }) });
    var reporter1090 = new Lino.RemoteComboFieldElement({ "emptyText": "Benutzer ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByType/reporter" }) }) });
    var end_user1091 = new Lino.RemoteComboFieldElement({ "emptyText": "Person ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByType/end_user" }) }) });
    var deadline1092 = new Lino.DateField({ "hidden": true, "selectOnFocus": true });
    var waiting_for1093 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var feedback1094 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var standby1095 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var needed_skills_disp1096 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var suppliers_disp1097 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var workflow_buttons_disp1098 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var overview_disp1099 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var description_column_disp1100 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var created_natural_disp1101 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var ticket_type1102 = new Lino.RemoteComboFieldElement({ "emptyText": "Ticket type ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByType/ticket_type" }) }) });
    this.before_row_edit = function(record) {
    };
    this.ls_columns = [ { "colIndex": 0, "dataIndex": "summary", "editable": true, "editor": summary1074, "filter": { "type": "string" }, "header": "Zusammenfassung", "sortable": true, "tooltip": "(tickets.TicketsByType.summary) Short summary of the problem.", "width": Lino.chars2width(22) }, { "colIndex": 1, "dataIndex": "state", "editable": true, "editor": state1075, "filter": { "type": "string" }, "header": "Zustand", "sortable": false, "tooltip": "(tickets.TicketsByType.state) ", "width": Lino.chars2width(13) }, { "align": "right", "colIndex": 2, "dataIndex": "id", "editable": true, "editor": id1076, "filter": { "type": "numeric" }, "format": "0", "header": "ID", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByType.id) ", "width": Lino.chars2width(6) }, { "colIndex": 3, "dataIndex": "modified", "editable": false, "header": "Bearbeitet", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByType.modified) ", "width": Lino.chars2width(17) }, { "colIndex": 4, "dataIndex": "created", "editable": false, "header": "Erstellt", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByType.created) The timestame when this object was created.", "width": Lino.chars2width(17) }, { "colIndex": 5, "dataIndex": "user", "editable": true, "editor": user1079, "filter": { "type": "string" }, "header": "Autor", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByType.user) The author of this object.\nA pointer to lino.modlib.users.models.User.", "width": Lino.chars2width(21) }, { "colIndex": 6, "dataIndex": "private", "editable": true, "filter": { "type": "boolean" }, "header": "Privat", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByType.private) Whether this investment is private, i.e. should not be\npublicly visible anywhere.", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "align": "right", "colIndex": 7, "dataIndex": "priority", "editable": true, "editor": priority1081, "filter": { "type": "numeric" }, "format": "0", "header": "Priorit\u00e4t", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByType.priority) ", "width": Lino.chars2width(6) }, { "colIndex": 8, "dataIndex": "closed", "editable": true, "filter": { "type": "boolean" }, "header": "Abgeschlossen", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByType.closed) Whether this investment is closed, i.e. certain things should\nnot change anymore.", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 9, "dataIndex": "planned_time", "editable": true, "editor": planned_time1083, "header": "Planned time", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByType.planned_time) The time (in hours) we plan to work on this project or ticket.", "width": Lino.chars2width(9) }, { "colIndex": 10, "dataIndex": "project", "editable": true, "editor": project1084, "filter": { "type": "string" }, "header": "Projekt", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByType.project) ", "width": Lino.chars2width(21) }, { "colIndex": 11, "dataIndex": "site", "editable": true, "editor": site1085, "filter": { "type": "string" }, "header": "Umfeld", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByType.site) ", "width": Lino.chars2width(21) }, { "colIndex": 12, "dataIndex": "topic", "editable": true, "editor": topic1086, "filter": { "type": "string" }, "header": "Thema", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByType.topic) ", "width": Lino.chars2width(21) }, { "colIndex": 13, "dataIndex": "description", "editable": true, "editor": description1087, "filter": { "type": "string" }, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByType.description) ", "width": Lino.chars2width(61) }, { "colIndex": 14, "dataIndex": "upgrade_notes", "editable": true, "editor": upgrade_notes1088, "filter": { "type": "string" }, "header": "L\u00f6sung", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByType.upgrade_notes) ", "width": Lino.chars2width(61) }, { "colIndex": 15, "dataIndex": "duplicate_of", "editable": true, "editor": duplicate_of1089, "filter": { "type": "string" }, "header": "Dublette von", "hidden": true, "renderer": Lino.fk_renderer('duplicate_ofHidden','Lino.tickets.Tickets.detail'), "sortable": false, "tooltip": "(tickets.TicketsByType.duplicate_of) ", "width": Lino.chars2width(21) }, { "colIndex": 16, "dataIndex": "reporter", "editable": true, "editor": reporter1090, "filter": { "type": "string" }, "header": "Anfrager", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByType.reporter) ", "width": Lino.chars2width(21) }, { "colIndex": 17, "dataIndex": "end_user", "editable": true, "editor": end_user1091, "filter": { "type": "string" }, "header": "End user", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByType.end_user) ", "width": Lino.chars2width(21) }, { "colIndex": 18, "dataIndex": "deadline", "editable": true, "editor": deadline1092, "filter": { "dateFormat": "d.m.Y", "type": "date" }, "format": "d.m.Y", "header": "Deadline", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByType.deadline) ", "width": Lino.chars2width(14), "xtype": "datecolumn" }, { "colIndex": 19, "dataIndex": "waiting_for", "editable": true, "editor": waiting_for1093, "filter": { "type": "string" }, "header": "Waiting for", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByType.waiting_for) ", "width": Lino.chars2width(22) }, { "colIndex": 20, "dataIndex": "feedback", "editable": true, "filter": { "type": "boolean" }, "header": "Feedback", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByType.feedback) ", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 21, "dataIndex": "standby", "editable": true, "filter": { "type": "boolean" }, "header": "Standby", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByType.standby) ", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 22, "dataIndex": "needed_skills", "editable": false, "header": "Needed skills", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByType.needed_skills) ", "width": Lino.chars2width(31) }, { "colIndex": 23, "dataIndex": "suppliers", "editable": false, "header": "Suppliers", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByType.suppliers) ", "width": Lino.chars2width(31) }, { "colIndex": 24, "dataIndex": "workflow_buttons", "editable": false, "header": "Aktionen", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByType.workflow_buttons) ", "width": Lino.chars2width(31) }, { "colIndex": 25, "dataIndex": "overview", "editable": false, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByType.overview) ", "width": Lino.chars2width(31) }, { "colIndex": 26, "dataIndex": "description_column", "editable": false, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByType.description_column) ", "width": Lino.chars2width(31) }, { "colIndex": 27, "dataIndex": "created_natural", "editable": false, "header": "Erstellt", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByType.created_natural) ", "width": Lino.chars2width(31) }, { "colIndex": 28, "dataIndex": "ticket_type", "editable": true, "editor": ticket_type1102, "filter": { "type": "string" }, "header": "Ticket type", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByType.ticket_type) ", "width": Lino.chars2width(21) } ];
    Lino.tickets.TicketsByType.GridPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.TicketsByType.show_as_html = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByType", "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.tickets.TicketsByType.as_pdf = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByType", "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.tickets.TicketsByType.as_pdf_p = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByType", "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.tickets.TicketsByType.export_excel = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByType", "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.tickets.TicketsByType.submit_detail = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByType", "GET", pk, "submit_detail", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.tickets.TicketsByType.insertPanel = Ext.extend(Lino.tickets.Tickets.InsertFormPanel,{
  empty_title: "Neu",
  hide_navigator: true,
  save_action_name: "submit_insert",
  ls_bbar_actions: [ { "auto_save": false, "itemId": "submit_insert", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Datensatz erstellen und dann im Detail-Fenster \u00f6ffnen") }, "menu_item_text": "Erstellen", "overflowText": "Erstellen", "panel_btn_handler": function(panel){panel.save()}, "text": "Erstellen" } ],
  ls_url: "/tickets/TicketsByType",
  action_name: "insert",
  default_record_id: -99999,
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.TicketsByType.detail;
    this.ls_insert_handler = Lino.tickets.TicketsByType.insert;
    Lino.tickets.TicketsByType.insertPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.TicketsByType.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.tickets.TicketsByType.insertPanel(p);
});
Lino.tickets.TicketsByType.grid_put = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByType", "GET", pk, "grid_put", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByType.grid_post = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByType", "GET", pk, "grid_post", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByType.submit_insert = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByType", "GET", pk, "submit_insert", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.tickets.TicketsByType.detailPanel = Ext.extend(Lino.tickets.Tickets.DetailFormPanel,{
  empty_title: "Detail",
  save_action_name: "submit_detail",
  ls_bbar_actions: [ { "auto_save": false, "iconCls": "x-tbar-disk", "itemId": "submit_detail", "menu_item_text": "Speichern", "overflowText": "Speichern", "panel_btn_handler": function(panel){panel.save()}, "tooltip": "\u00c4nderungen in diesem Formular speichern" }, { "auto_save": true, "iconCls": "x-tbar-add", "itemId": "insert", "keycode": 44, "menu_item_text": "Neu", "overflowText": "Neu", "panel_btn_handler": Lino.show_insert, "tooltip": "Neuen Datensatz erstellen" }, { "auto_save": false, "iconCls": "x-tbar-delete", "itemId": "delete_selected", "keycode": 46, "menu_item_text": "L\u00f6schen", "overflowText": "L\u00f6schen", "panel_btn_handler": Lino.row_action_handler('delete_selected','GET',null), "tooltip": "Diesen Datensatz l\u00f6schen" } ],
  ls_url: "/tickets/TicketsByType",
  action_name: "detail",
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.TicketsByType.detail;
    this.ls_insert_handler = Lino.tickets.TicketsByType.insert;
    Lino.tickets.TicketsByType.detailPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.TicketsByType.detail = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  return new Lino.tickets.TicketsByType.detailPanel(p);
});
Lino.tickets.TicketsByType.delete_selected = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByType", "GET", pk, "delete_selected", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByType.grid = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  p.params_panel = new Lino.tickets.Tickets.ParamsPanel({});
  return new Lino.tickets.TicketsByType.GridPanel(p);
});
Lino.tickets.TicketsByType.validate = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByType", "GET", pk, "validate", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByType.spawn_triggered = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByType", "GET", pk, "spawn_triggered", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByType.create_vote = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByType", "GET", pk, "create_vote", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByType.edit_vote = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByType", "GET", pk, "edit_vote", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByType.wf1 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByType", "GET", pk, "wf1", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByType.wf2 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByType", "GET", pk, "wf2", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByType.wf3 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByType", "GET", pk, "wf3", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByType.wf4 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByType", "GET", pk, "wf4", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByType.wf5 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByType", "GET", pk, "wf5", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByType.wf6 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByType", "GET", pk, "wf6", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

// js_render_GridPanel_class tickets.TicketsByTopic
Lino.tickets.TicketsByTopic.GridPanel = Ext.extend(Lino.GridPanel,{
  viewConfig : { "emptyText": "Keine Daten anzuzeigen.", "forceFit": true, "getRowClass": Lino.getRowClass },
  ls_url : "/tickets/TicketsByTopic",
  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('/tickets/TicketsByTopic','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": "Tabelle (Querformat)", "overflowText": "Tabelle (Querformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/TicketsByTopic','as_pdf','GET',Lino.get_current_grid_config), "text": "Tabelle (Querformat)", "tooltip": "Diese Tabelle in eine .pdf-Datei exportieren" }, { "auto_save": true, "itemId": "as_pdf_p", "menu_item_text": "Tabelle (Hochformat)", "overflowText": "Tabelle (Hochformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/TicketsByTopic','as_pdf_p','GET',Lino.get_current_grid_config), "text": "Tabelle (Hochformat)", "tooltip": "Diese Tabelle in eine .pdf-Datei exportieren" } ], "menu_item_text": "Tabelle (Querformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/TicketsByTopic','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('/tickets/TicketsByTopic','export_excel','GET',Lino.get_current_grid_config), "tooltip": "Export this table as an .xls document" }, { "auto_save": true, "iconCls": "x-tbar-add", "itemId": "insert", "keycode": 44, "menu_item_text": "Neu", "overflowText": "Neu", "panel_btn_handler": Lino.show_insert, "tooltip": "Neuen Datensatz erstellen" }, { "auto_save": true, "iconCls": "x-tbar-application_form", "itemId": "detail", "menu_item_text": "Detail", "overflowText": "Detail", "panel_btn_handler": Lino.show_detail, "tooltip": "Detail-Fenster auf diesem Datensatz \u00f6ffnen" }, { "auto_save": false, "iconCls": "x-tbar-delete", "itemId": "delete_selected", "keycode": 46, "menu_item_text": "L\u00f6schen", "overflowText": "L\u00f6schen", "panel_btn_handler": Lino.row_action_handler('delete_selected','GET',null), "tooltip": "Diesen Datensatz l\u00f6schen" } ],
  cell_edit : true,
  title : "Anfragen",
  page_length : 20,
  stripeRows : true,
  disabled_actions_index : 39,
  ls_store_fields : [ { "name": "summary" }, { "name": "state" }, 'stateHidden', { "name": "id", "type": "int" }, { "name": "modified" }, { "name": "created" }, { "name": "user" }, 'userHidden', { "name": "private", "type": "boolean" }, { "name": "priority", "type": "int", "useNull": true }, { "name": "closed", "type": "boolean" }, { "name": "planned_time" }, { "name": "project" }, 'projectHidden', { "name": "site" }, 'siteHidden', { "name": "description" }, { "name": "upgrade_notes" }, { "name": "ticket_type" }, 'ticket_typeHidden', { "name": "duplicate_of" }, 'duplicate_ofHidden', { "name": "reporter" }, 'reporterHidden', { "name": "end_user" }, 'end_userHidden', { "dateFormat": "d.m.Y", "name": "deadline", "type": "date" }, { "name": "waiting_for" }, { "name": "feedback", "type": "boolean" }, { "name": "standby", "type": "boolean" }, { "name": "needed_skills" }, { "name": "suppliers" }, { "name": "workflow_buttons" }, { "name": "overview" }, { "name": "description_column" }, { "name": "created_natural" }, { "name": "topic" }, 'topicHidden', { "name": "disabled_fields" }, { "name": "disabled_actions" }, { "name": "disable_editing" } ],
  pk_index : 3,
  ls_grid_configs : [  ],
  content_type : 26,
  ls_id_property : "id",
  gc_name : 0,
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.TicketsByTopic.detail;
    this.ls_insert_handler = Lino.tickets.TicketsByTopic.insert;
    var ww = this.containing_window;
    var summary929 = new Ext.form.TextField({ "maxLength": 200, "selectOnFocus": true });
    var state930 = new Lino.ChoicesFieldElement({ "allowBlank": false, "forceSelection": true, "selectOnFocus": true, "store": Lino.tickets.TicketStates });
    var id931 = new Ext.form.NumberField({ "hidden": true, "selectOnFocus": true });
    var modified932 = new Ext.form.DisplayField({ "disabled": true, "hidden": true, "value": "<br>" });
    var created933 = new Ext.form.DisplayField({ "disabled": true, "hidden": true, "value": "<br>" });
    var user934 = new Lino.RemoteComboFieldElement({ "emptyText": "Benutzer ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByTopic/user" }) }) });
    var private935 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var priority936 = new Ext.form.NumberField({ "allowBlank": false, "hidden": true, "selectOnFocus": true, "value": 100 });
    var closed937 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var planned_time938 = new Lino.TimeField({ "hidden": true, "selectOnFocus": true });
    var project939 = new Lino.RemoteComboFieldElement({ "emptyText": "Projekt ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByTopic/project" }) }) });
    var site940 = new Lino.RemoteComboFieldElement({ "emptyText": "Umfeld ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByTopic/site" }) }) });
    var description941 = new Ext.form.TextArea({ "growMax": 2000, "hidden": true, "selectOnFocus": true });
    var upgrade_notes942 = new Ext.form.TextArea({ "growMax": 2000, "hidden": true, "selectOnFocus": true });
    var ticket_type943 = new Lino.RemoteComboFieldElement({ "emptyText": "Ticket type ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByTopic/ticket_type" }) }) });
    var duplicate_of944 = new Lino.RemoteComboFieldElement({ "emptyText": "Ticket ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByTopic/duplicate_of" }) }) });
    var reporter945 = new Lino.RemoteComboFieldElement({ "emptyText": "Benutzer ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByTopic/reporter" }) }) });
    var end_user946 = new Lino.RemoteComboFieldElement({ "emptyText": "Person ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByTopic/end_user" }) }) });
    var deadline947 = new Lino.DateField({ "hidden": true, "selectOnFocus": true });
    var waiting_for948 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var feedback949 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var standby950 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var needed_skills_disp951 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var suppliers_disp952 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var workflow_buttons_disp953 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var overview_disp954 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var description_column_disp955 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var created_natural_disp956 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var topic957 = new Lino.RemoteComboFieldElement({ "emptyText": "Thema ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByTopic/topic" }) }) });
    this.before_row_edit = function(record) {
    };
    this.ls_columns = [ { "colIndex": 0, "dataIndex": "summary", "editable": true, "editor": summary929, "filter": { "type": "string" }, "header": "Zusammenfassung", "sortable": true, "tooltip": "(tickets.TicketsByTopic.summary) Short summary of the problem.", "width": Lino.chars2width(22) }, { "colIndex": 1, "dataIndex": "state", "editable": true, "editor": state930, "filter": { "type": "string" }, "header": "Zustand", "sortable": false, "tooltip": "(tickets.TicketsByTopic.state) ", "width": Lino.chars2width(13) }, { "align": "right", "colIndex": 2, "dataIndex": "id", "editable": true, "editor": id931, "filter": { "type": "numeric" }, "format": "0", "header": "ID", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByTopic.id) ", "width": Lino.chars2width(6) }, { "colIndex": 3, "dataIndex": "modified", "editable": false, "header": "Bearbeitet", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByTopic.modified) ", "width": Lino.chars2width(17) }, { "colIndex": 4, "dataIndex": "created", "editable": false, "header": "Erstellt", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByTopic.created) The timestame when this object was created.", "width": Lino.chars2width(17) }, { "colIndex": 5, "dataIndex": "user", "editable": true, "editor": user934, "filter": { "type": "string" }, "header": "Autor", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByTopic.user) The author of this object.\nA pointer to lino.modlib.users.models.User.", "width": Lino.chars2width(21) }, { "colIndex": 6, "dataIndex": "private", "editable": true, "filter": { "type": "boolean" }, "header": "Privat", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByTopic.private) Whether this investment is private, i.e. should not be\npublicly visible anywhere.", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "align": "right", "colIndex": 7, "dataIndex": "priority", "editable": true, "editor": priority936, "filter": { "type": "numeric" }, "format": "0", "header": "Priorit\u00e4t", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByTopic.priority) ", "width": Lino.chars2width(6) }, { "colIndex": 8, "dataIndex": "closed", "editable": true, "filter": { "type": "boolean" }, "header": "Abgeschlossen", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByTopic.closed) Whether this investment is closed, i.e. certain things should\nnot change anymore.", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 9, "dataIndex": "planned_time", "editable": true, "editor": planned_time938, "header": "Planned time", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByTopic.planned_time) The time (in hours) we plan to work on this project or ticket.", "width": Lino.chars2width(9) }, { "colIndex": 10, "dataIndex": "project", "editable": true, "editor": project939, "filter": { "type": "string" }, "header": "Projekt", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByTopic.project) ", "width": Lino.chars2width(21) }, { "colIndex": 11, "dataIndex": "site", "editable": true, "editor": site940, "filter": { "type": "string" }, "header": "Umfeld", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByTopic.site) ", "width": Lino.chars2width(21) }, { "colIndex": 12, "dataIndex": "description", "editable": true, "editor": description941, "filter": { "type": "string" }, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByTopic.description) ", "width": Lino.chars2width(61) }, { "colIndex": 13, "dataIndex": "upgrade_notes", "editable": true, "editor": upgrade_notes942, "filter": { "type": "string" }, "header": "L\u00f6sung", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByTopic.upgrade_notes) ", "width": Lino.chars2width(61) }, { "colIndex": 14, "dataIndex": "ticket_type", "editable": true, "editor": ticket_type943, "filter": { "type": "string" }, "header": "Ticket type", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByTopic.ticket_type) ", "width": Lino.chars2width(21) }, { "colIndex": 15, "dataIndex": "duplicate_of", "editable": true, "editor": duplicate_of944, "filter": { "type": "string" }, "header": "Dublette von", "hidden": true, "renderer": Lino.fk_renderer('duplicate_ofHidden','Lino.tickets.Tickets.detail'), "sortable": false, "tooltip": "(tickets.TicketsByTopic.duplicate_of) ", "width": Lino.chars2width(21) }, { "colIndex": 16, "dataIndex": "reporter", "editable": true, "editor": reporter945, "filter": { "type": "string" }, "header": "Anfrager", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByTopic.reporter) ", "width": Lino.chars2width(21) }, { "colIndex": 17, "dataIndex": "end_user", "editable": true, "editor": end_user946, "filter": { "type": "string" }, "header": "End user", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByTopic.end_user) ", "width": Lino.chars2width(21) }, { "colIndex": 18, "dataIndex": "deadline", "editable": true, "editor": deadline947, "filter": { "dateFormat": "d.m.Y", "type": "date" }, "format": "d.m.Y", "header": "Deadline", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByTopic.deadline) ", "width": Lino.chars2width(14), "xtype": "datecolumn" }, { "colIndex": 19, "dataIndex": "waiting_for", "editable": true, "editor": waiting_for948, "filter": { "type": "string" }, "header": "Waiting for", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByTopic.waiting_for) ", "width": Lino.chars2width(22) }, { "colIndex": 20, "dataIndex": "feedback", "editable": true, "filter": { "type": "boolean" }, "header": "Feedback", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByTopic.feedback) ", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 21, "dataIndex": "standby", "editable": true, "filter": { "type": "boolean" }, "header": "Standby", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByTopic.standby) ", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 22, "dataIndex": "needed_skills", "editable": false, "header": "Needed skills", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByTopic.needed_skills) ", "width": Lino.chars2width(31) }, { "colIndex": 23, "dataIndex": "suppliers", "editable": false, "header": "Suppliers", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByTopic.suppliers) ", "width": Lino.chars2width(31) }, { "colIndex": 24, "dataIndex": "workflow_buttons", "editable": false, "header": "Aktionen", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByTopic.workflow_buttons) ", "width": Lino.chars2width(31) }, { "colIndex": 25, "dataIndex": "overview", "editable": false, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByTopic.overview) ", "width": Lino.chars2width(31) }, { "colIndex": 26, "dataIndex": "description_column", "editable": false, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByTopic.description_column) ", "width": Lino.chars2width(31) }, { "colIndex": 27, "dataIndex": "created_natural", "editable": false, "header": "Erstellt", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByTopic.created_natural) ", "width": Lino.chars2width(31) }, { "colIndex": 28, "dataIndex": "topic", "editable": true, "editor": topic957, "filter": { "type": "string" }, "header": "Thema", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByTopic.topic) ", "width": Lino.chars2width(21) } ];
    Lino.tickets.TicketsByTopic.GridPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.TicketsByTopic.show_as_html = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByTopic", "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.tickets.TicketsByTopic.as_pdf = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByTopic", "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.tickets.TicketsByTopic.as_pdf_p = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByTopic", "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.tickets.TicketsByTopic.export_excel = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByTopic", "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.tickets.TicketsByTopic.submit_detail = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByTopic", "GET", pk, "submit_detail", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.tickets.TicketsByTopic.insertPanel = Ext.extend(Lino.tickets.Tickets.InsertFormPanel,{
  empty_title: "Neu",
  hide_navigator: true,
  save_action_name: "submit_insert",
  ls_bbar_actions: [ { "auto_save": false, "itemId": "submit_insert", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Datensatz erstellen und dann im Detail-Fenster \u00f6ffnen") }, "menu_item_text": "Erstellen", "overflowText": "Erstellen", "panel_btn_handler": function(panel){panel.save()}, "text": "Erstellen" } ],
  ls_url: "/tickets/TicketsByTopic",
  action_name: "insert",
  default_record_id: -99999,
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.TicketsByTopic.detail;
    this.ls_insert_handler = Lino.tickets.TicketsByTopic.insert;
    Lino.tickets.TicketsByTopic.insertPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.TicketsByTopic.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.tickets.TicketsByTopic.insertPanel(p);
});
Lino.tickets.TicketsByTopic.grid_put = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByTopic", "GET", pk, "grid_put", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByTopic.grid_post = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByTopic", "GET", pk, "grid_post", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByTopic.submit_insert = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByTopic", "GET", pk, "submit_insert", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.tickets.TicketsByTopic.detailPanel = Ext.extend(Lino.tickets.Tickets.DetailFormPanel,{
  empty_title: "Detail",
  save_action_name: "submit_detail",
  ls_bbar_actions: [ { "auto_save": false, "iconCls": "x-tbar-disk", "itemId": "submit_detail", "menu_item_text": "Speichern", "overflowText": "Speichern", "panel_btn_handler": function(panel){panel.save()}, "tooltip": "\u00c4nderungen in diesem Formular speichern" }, { "auto_save": true, "iconCls": "x-tbar-add", "itemId": "insert", "keycode": 44, "menu_item_text": "Neu", "overflowText": "Neu", "panel_btn_handler": Lino.show_insert, "tooltip": "Neuen Datensatz erstellen" }, { "auto_save": false, "iconCls": "x-tbar-delete", "itemId": "delete_selected", "keycode": 46, "menu_item_text": "L\u00f6schen", "overflowText": "L\u00f6schen", "panel_btn_handler": Lino.row_action_handler('delete_selected','GET',null), "tooltip": "Diesen Datensatz l\u00f6schen" } ],
  ls_url: "/tickets/TicketsByTopic",
  action_name: "detail",
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.TicketsByTopic.detail;
    this.ls_insert_handler = Lino.tickets.TicketsByTopic.insert;
    Lino.tickets.TicketsByTopic.detailPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.TicketsByTopic.detail = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  return new Lino.tickets.TicketsByTopic.detailPanel(p);
});
Lino.tickets.TicketsByTopic.delete_selected = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByTopic", "GET", pk, "delete_selected", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByTopic.grid = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  p.params_panel = new Lino.tickets.Tickets.ParamsPanel({});
  return new Lino.tickets.TicketsByTopic.GridPanel(p);
});
Lino.tickets.TicketsByTopic.validate = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByTopic", "GET", pk, "validate", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByTopic.spawn_triggered = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByTopic", "GET", pk, "spawn_triggered", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByTopic.create_vote = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByTopic", "GET", pk, "create_vote", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByTopic.edit_vote = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByTopic", "GET", pk, "edit_vote", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByTopic.wf1 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByTopic", "GET", pk, "wf1", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByTopic.wf2 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByTopic", "GET", pk, "wf2", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByTopic.wf3 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByTopic", "GET", pk, "wf3", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByTopic.wf4 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByTopic", "GET", pk, "wf4", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByTopic.wf5 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByTopic", "GET", pk, "wf5", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByTopic.wf6 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByTopic", "GET", pk, "wf6", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

// js_render_GridPanel_class tickets.TicketsByReporter
Lino.tickets.TicketsByReporter.GridPanel = Ext.extend(Lino.GridPanel,{
  viewConfig : { "emptyText": "Keine Daten anzuzeigen.", "forceFit": true, "getRowClass": Lino.getRowClass },
  ls_url : "/tickets/TicketsByReporter",
  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('/tickets/TicketsByReporter','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": "Tabelle (Querformat)", "overflowText": "Tabelle (Querformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/TicketsByReporter','as_pdf','GET',Lino.get_current_grid_config), "text": "Tabelle (Querformat)", "tooltip": "Diese Tabelle in eine .pdf-Datei exportieren" }, { "auto_save": true, "itemId": "as_pdf_p", "menu_item_text": "Tabelle (Hochformat)", "overflowText": "Tabelle (Hochformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/TicketsByReporter','as_pdf_p','GET',Lino.get_current_grid_config), "text": "Tabelle (Hochformat)", "tooltip": "Diese Tabelle in eine .pdf-Datei exportieren" } ], "menu_item_text": "Tabelle (Querformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/TicketsByReporter','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('/tickets/TicketsByReporter','export_excel','GET',Lino.get_current_grid_config), "tooltip": "Export this table as an .xls document" }, { "auto_save": true, "iconCls": "x-tbar-add", "itemId": "insert", "keycode": 44, "menu_item_text": "Neu", "overflowText": "Neu", "panel_btn_handler": Lino.show_insert, "tooltip": "Neuen Datensatz erstellen" }, { "auto_save": true, "iconCls": "x-tbar-application_form", "itemId": "detail", "menu_item_text": "Detail", "overflowText": "Detail", "panel_btn_handler": Lino.show_detail, "tooltip": "Detail-Fenster auf diesem Datensatz \u00f6ffnen" }, { "auto_save": false, "iconCls": "x-tbar-delete", "itemId": "delete_selected", "keycode": 46, "menu_item_text": "L\u00f6schen", "overflowText": "L\u00f6schen", "panel_btn_handler": Lino.row_action_handler('delete_selected','GET',null), "tooltip": "Diesen Datensatz l\u00f6schen" } ],
  cell_edit : true,
  title : "Eingereichte Tickets",
  page_length : 20,
  stripeRows : true,
  disabled_actions_index : 39,
  ls_store_fields : [ { "name": "id", "type": "int" }, { "name": "summary" }, { "name": "workflow_buttons" }, { "name": "modified" }, { "name": "created" }, { "name": "private", "type": "boolean" }, { "name": "priority", "type": "int", "useNull": true }, { "name": "closed", "type": "boolean" }, { "name": "planned_time" }, { "name": "project" }, 'projectHidden', { "name": "site" }, 'siteHidden', { "name": "topic" }, 'topicHidden', { "name": "description" }, { "name": "upgrade_notes" }, { "name": "ticket_type" }, 'ticket_typeHidden', { "name": "duplicate_of" }, 'duplicate_ofHidden', { "name": "reporter" }, 'reporterHidden', { "name": "end_user" }, 'end_userHidden', { "name": "state" }, 'stateHidden', { "dateFormat": "d.m.Y", "name": "deadline", "type": "date" }, { "name": "waiting_for" }, { "name": "feedback", "type": "boolean" }, { "name": "standby", "type": "boolean" }, { "name": "needed_skills" }, { "name": "suppliers" }, { "name": "overview" }, { "name": "description_column" }, { "name": "created_natural" }, { "name": "user" }, 'userHidden', { "name": "disabled_fields" }, { "name": "disabled_actions" }, { "name": "disable_editing" } ],
  pk_index : 0,
  ls_grid_configs : [  ],
  content_type : 26,
  ls_id_property : "id",
  gc_name : 0,
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.TicketsByReporter.detail;
    this.ls_insert_handler = Lino.tickets.TicketsByReporter.insert;
    var ww = this.containing_window;
    var id1910 = new Ext.form.NumberField({ "selectOnFocus": true });
    var summary1911 = new Ext.form.TextField({ "maxLength": 200, "selectOnFocus": true });
    var workflow_buttons_disp1912 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "value": "<br/>" });
    var modified1913 = new Ext.form.DisplayField({ "disabled": true, "hidden": true, "value": "<br>" });
    var created1914 = new Ext.form.DisplayField({ "disabled": true, "hidden": true, "value": "<br>" });
    var private1915 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var priority1916 = new Ext.form.NumberField({ "allowBlank": false, "hidden": true, "selectOnFocus": true, "value": 100 });
    var closed1917 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var planned_time1918 = new Lino.TimeField({ "hidden": true, "selectOnFocus": true });
    var project1919 = new Lino.RemoteComboFieldElement({ "emptyText": "Projekt ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByReporter/project" }) }) });
    var site1920 = new Lino.RemoteComboFieldElement({ "emptyText": "Umfeld ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByReporter/site" }) }) });
    var topic1921 = new Lino.RemoteComboFieldElement({ "emptyText": "Thema ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByReporter/topic" }) }) });
    var description1922 = new Ext.form.TextArea({ "growMax": 2000, "hidden": true, "selectOnFocus": true });
    var upgrade_notes1923 = new Ext.form.TextArea({ "growMax": 2000, "hidden": true, "selectOnFocus": true });
    var ticket_type1924 = new Lino.RemoteComboFieldElement({ "emptyText": "Ticket type ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByReporter/ticket_type" }) }) });
    var duplicate_of1925 = new Lino.RemoteComboFieldElement({ "emptyText": "Ticket ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByReporter/duplicate_of" }) }) });
    var reporter1926 = new Lino.RemoteComboFieldElement({ "emptyText": "Benutzer ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByReporter/reporter" }) }) });
    var end_user1927 = new Lino.RemoteComboFieldElement({ "emptyText": "Person ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByReporter/end_user" }) }) });
    var state1928 = new Lino.ChoicesFieldElement({ "allowBlank": false, "forceSelection": true, "hidden": true, "selectOnFocus": true, "store": Lino.tickets.TicketStates });
    var deadline1929 = new Lino.DateField({ "hidden": true, "selectOnFocus": true });
    var waiting_for1930 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var feedback1931 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var standby1932 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var needed_skills_disp1933 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var suppliers_disp1934 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var overview_disp1935 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var description_column_disp1936 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var created_natural_disp1937 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var user1938 = new Lino.RemoteComboFieldElement({ "emptyText": "Benutzer ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsByReporter/user" }) }) });
    this.before_row_edit = function(record) {
    };
    this.ls_columns = [ { "align": "right", "colIndex": 0, "dataIndex": "id", "editable": true, "editor": id1910, "filter": { "type": "numeric" }, "format": "0", "header": "ID", "sortable": true, "tooltip": "(tickets.TicketsByReporter.id) ", "width": Lino.chars2width(6) }, { "colIndex": 1, "dataIndex": "summary", "editable": true, "editor": summary1911, "filter": { "type": "string" }, "header": "Zusammenfassung", "sortable": true, "tooltip": "(tickets.TicketsByReporter.summary) Short summary of the problem.", "width": Lino.chars2width(61) }, { "colIndex": 2, "dataIndex": "workflow_buttons", "editable": false, "header": "Aktionen", "sortable": false, "tooltip": "(tickets.TicketsByReporter.workflow_buttons) ", "width": Lino.chars2width(21) }, { "colIndex": 3, "dataIndex": "modified", "editable": false, "header": "Bearbeitet", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByReporter.modified) ", "width": Lino.chars2width(17) }, { "colIndex": 4, "dataIndex": "created", "editable": false, "header": "Erstellt", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByReporter.created) The timestame when this object was created.", "width": Lino.chars2width(17) }, { "colIndex": 5, "dataIndex": "private", "editable": true, "filter": { "type": "boolean" }, "header": "Privat", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByReporter.private) Whether this investment is private, i.e. should not be\npublicly visible anywhere.", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "align": "right", "colIndex": 6, "dataIndex": "priority", "editable": true, "editor": priority1916, "filter": { "type": "numeric" }, "format": "0", "header": "Priorit\u00e4t", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByReporter.priority) ", "width": Lino.chars2width(6) }, { "colIndex": 7, "dataIndex": "closed", "editable": true, "filter": { "type": "boolean" }, "header": "Abgeschlossen", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByReporter.closed) Whether this investment is closed, i.e. certain things should\nnot change anymore.", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 8, "dataIndex": "planned_time", "editable": true, "editor": planned_time1918, "header": "Planned time", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByReporter.planned_time) The time (in hours) we plan to work on this project or ticket.", "width": Lino.chars2width(9) }, { "colIndex": 9, "dataIndex": "project", "editable": true, "editor": project1919, "filter": { "type": "string" }, "header": "Projekt", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByReporter.project) ", "width": Lino.chars2width(21) }, { "colIndex": 10, "dataIndex": "site", "editable": true, "editor": site1920, "filter": { "type": "string" }, "header": "Umfeld", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByReporter.site) ", "width": Lino.chars2width(21) }, { "colIndex": 11, "dataIndex": "topic", "editable": true, "editor": topic1921, "filter": { "type": "string" }, "header": "Thema", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByReporter.topic) ", "width": Lino.chars2width(21) }, { "colIndex": 12, "dataIndex": "description", "editable": true, "editor": description1922, "filter": { "type": "string" }, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByReporter.description) ", "width": Lino.chars2width(61) }, { "colIndex": 13, "dataIndex": "upgrade_notes", "editable": true, "editor": upgrade_notes1923, "filter": { "type": "string" }, "header": "L\u00f6sung", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByReporter.upgrade_notes) ", "width": Lino.chars2width(61) }, { "colIndex": 14, "dataIndex": "ticket_type", "editable": true, "editor": ticket_type1924, "filter": { "type": "string" }, "header": "Ticket type", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByReporter.ticket_type) ", "width": Lino.chars2width(21) }, { "colIndex": 15, "dataIndex": "duplicate_of", "editable": true, "editor": duplicate_of1925, "filter": { "type": "string" }, "header": "Dublette von", "hidden": true, "renderer": Lino.fk_renderer('duplicate_ofHidden','Lino.tickets.Tickets.detail'), "sortable": false, "tooltip": "(tickets.TicketsByReporter.duplicate_of) ", "width": Lino.chars2width(21) }, { "colIndex": 16, "dataIndex": "reporter", "editable": true, "editor": reporter1926, "filter": { "type": "string" }, "header": "Anfrager", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByReporter.reporter) ", "width": Lino.chars2width(21) }, { "colIndex": 17, "dataIndex": "end_user", "editable": true, "editor": end_user1927, "filter": { "type": "string" }, "header": "End user", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByReporter.end_user) ", "width": Lino.chars2width(21) }, { "colIndex": 18, "dataIndex": "state", "editable": true, "editor": state1928, "filter": { "type": "string" }, "header": "Zustand", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByReporter.state) ", "width": Lino.chars2width(13) }, { "colIndex": 19, "dataIndex": "deadline", "editable": true, "editor": deadline1929, "filter": { "dateFormat": "d.m.Y", "type": "date" }, "format": "d.m.Y", "header": "Deadline", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByReporter.deadline) ", "width": Lino.chars2width(14), "xtype": "datecolumn" }, { "colIndex": 20, "dataIndex": "waiting_for", "editable": true, "editor": waiting_for1930, "filter": { "type": "string" }, "header": "Waiting for", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsByReporter.waiting_for) ", "width": Lino.chars2width(22) }, { "colIndex": 21, "dataIndex": "feedback", "editable": true, "filter": { "type": "boolean" }, "header": "Feedback", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByReporter.feedback) ", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 22, "dataIndex": "standby", "editable": true, "filter": { "type": "boolean" }, "header": "Standby", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByReporter.standby) ", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 23, "dataIndex": "needed_skills", "editable": false, "header": "Needed skills", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByReporter.needed_skills) ", "width": Lino.chars2width(31) }, { "colIndex": 24, "dataIndex": "suppliers", "editable": false, "header": "Suppliers", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByReporter.suppliers) ", "width": Lino.chars2width(31) }, { "colIndex": 25, "dataIndex": "overview", "editable": false, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByReporter.overview) ", "width": Lino.chars2width(31) }, { "colIndex": 26, "dataIndex": "description_column", "editable": false, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByReporter.description_column) ", "width": Lino.chars2width(31) }, { "colIndex": 27, "dataIndex": "created_natural", "editable": false, "header": "Erstellt", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByReporter.created_natural) ", "width": Lino.chars2width(31) }, { "colIndex": 28, "dataIndex": "user", "editable": true, "editor": user1938, "filter": { "type": "string" }, "header": "Autor", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsByReporter.user) The author of this object.\nA pointer to lino.modlib.users.models.User.", "width": Lino.chars2width(21) } ];
    Lino.tickets.TicketsByReporter.GridPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.TicketsByReporter.show_as_html = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByReporter", "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.tickets.TicketsByReporter.as_pdf = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByReporter", "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.tickets.TicketsByReporter.as_pdf_p = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByReporter", "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.tickets.TicketsByReporter.export_excel = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByReporter", "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.tickets.TicketsByReporter.submit_detail = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByReporter", "GET", pk, "submit_detail", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.tickets.TicketsByReporter.insertPanel = Ext.extend(Lino.tickets.Tickets.InsertFormPanel,{
  empty_title: "Neu",
  hide_navigator: true,
  save_action_name: "submit_insert",
  ls_bbar_actions: [ { "auto_save": false, "itemId": "submit_insert", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Datensatz erstellen und dann im Detail-Fenster \u00f6ffnen") }, "menu_item_text": "Erstellen", "overflowText": "Erstellen", "panel_btn_handler": function(panel){panel.save()}, "text": "Erstellen" } ],
  ls_url: "/tickets/TicketsByReporter",
  action_name: "insert",
  default_record_id: -99999,
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.TicketsByReporter.detail;
    this.ls_insert_handler = Lino.tickets.TicketsByReporter.insert;
    Lino.tickets.TicketsByReporter.insertPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.TicketsByReporter.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.tickets.TicketsByReporter.insertPanel(p);
});
Lino.tickets.TicketsByReporter.grid_put = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByReporter", "GET", pk, "grid_put", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByReporter.grid_post = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByReporter", "GET", pk, "grid_post", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByReporter.submit_insert = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByReporter", "GET", pk, "submit_insert", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.tickets.TicketsByReporter.detailPanel = Ext.extend(Lino.tickets.Tickets.DetailFormPanel,{
  empty_title: "Detail",
  save_action_name: "submit_detail",
  ls_bbar_actions: [ { "auto_save": false, "iconCls": "x-tbar-disk", "itemId": "submit_detail", "menu_item_text": "Speichern", "overflowText": "Speichern", "panel_btn_handler": function(panel){panel.save()}, "tooltip": "\u00c4nderungen in diesem Formular speichern" }, { "auto_save": true, "iconCls": "x-tbar-add", "itemId": "insert", "keycode": 44, "menu_item_text": "Neu", "overflowText": "Neu", "panel_btn_handler": Lino.show_insert, "tooltip": "Neuen Datensatz erstellen" }, { "auto_save": false, "iconCls": "x-tbar-delete", "itemId": "delete_selected", "keycode": 46, "menu_item_text": "L\u00f6schen", "overflowText": "L\u00f6schen", "panel_btn_handler": Lino.row_action_handler('delete_selected','GET',null), "tooltip": "Diesen Datensatz l\u00f6schen" } ],
  ls_url: "/tickets/TicketsByReporter",
  action_name: "detail",
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.TicketsByReporter.detail;
    this.ls_insert_handler = Lino.tickets.TicketsByReporter.insert;
    Lino.tickets.TicketsByReporter.detailPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.TicketsByReporter.detail = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  return new Lino.tickets.TicketsByReporter.detailPanel(p);
});
Lino.tickets.TicketsByReporter.delete_selected = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByReporter", "GET", pk, "delete_selected", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByReporter.grid = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  p.params_panel = new Lino.tickets.Tickets.ParamsPanel({});
  return new Lino.tickets.TicketsByReporter.GridPanel(p);
});
Lino.tickets.TicketsByReporter.validate = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByReporter", "GET", pk, "validate", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByReporter.spawn_triggered = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByReporter", "GET", pk, "spawn_triggered", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByReporter.create_vote = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByReporter", "GET", pk, "create_vote", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByReporter.edit_vote = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByReporter", "GET", pk, "edit_vote", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByReporter.wf1 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByReporter", "GET", pk, "wf1", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByReporter.wf2 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByReporter", "GET", pk, "wf2", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByReporter.wf3 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByReporter", "GET", pk, "wf3", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByReporter.wf4 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByReporter", "GET", pk, "wf4", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByReporter.wf5 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByReporter", "GET", pk, "wf5", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsByReporter.wf6 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsByReporter", "GET", pk, "wf6", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

// js_render_GridPanel_class tickets.TicketsBySite
Lino.tickets.TicketsBySite.GridPanel = Ext.extend(Lino.GridPanel,{
  viewConfig : { "emptyText": "Keine Daten anzuzeigen.", "forceFit": true, "getRowClass": Lino.getRowClass },
  ls_url : "/tickets/TicketsBySite",
  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('/tickets/TicketsBySite','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": "Tabelle (Querformat)", "overflowText": "Tabelle (Querformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/TicketsBySite','as_pdf','GET',Lino.get_current_grid_config), "text": "Tabelle (Querformat)", "tooltip": "Diese Tabelle in eine .pdf-Datei exportieren" }, { "auto_save": true, "itemId": "as_pdf_p", "menu_item_text": "Tabelle (Hochformat)", "overflowText": "Tabelle (Hochformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/TicketsBySite','as_pdf_p','GET',Lino.get_current_grid_config), "text": "Tabelle (Hochformat)", "tooltip": "Diese Tabelle in eine .pdf-Datei exportieren" } ], "menu_item_text": "Tabelle (Querformat)", "panel_btn_handler": Lino.list_action_handler('/tickets/TicketsBySite','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('/tickets/TicketsBySite','export_excel','GET',Lino.get_current_grid_config), "tooltip": "Export this table as an .xls document" }, { "auto_save": true, "iconCls": "x-tbar-add", "itemId": "insert", "keycode": 44, "menu_item_text": "Neu", "overflowText": "Neu", "panel_btn_handler": Lino.show_insert, "tooltip": "Neuen Datensatz erstellen" }, { "auto_save": true, "iconCls": "x-tbar-application_form", "itemId": "detail", "menu_item_text": "Detail", "overflowText": "Detail", "panel_btn_handler": Lino.show_detail, "tooltip": "Detail-Fenster auf diesem Datensatz \u00f6ffnen" }, { "auto_save": false, "iconCls": "x-tbar-delete", "itemId": "delete_selected", "keycode": 46, "menu_item_text": "L\u00f6schen", "overflowText": "L\u00f6schen", "panel_btn_handler": Lino.row_action_handler('delete_selected','GET',null), "tooltip": "Diesen Datensatz l\u00f6schen" } ],
  cell_edit : true,
  title : "Known problems",
  page_length : 20,
  stripeRows : true,
  disabled_actions_index : 39,
  ls_store_fields : [ { "name": "id", "type": "int" }, { "name": "summary" }, { "name": "user" }, 'userHidden', { "name": "topic" }, 'topicHidden', { "name": "workflow_buttons" }, { "name": "project" }, 'projectHidden', { "name": "modified" }, { "name": "created" }, { "name": "private", "type": "boolean" }, { "name": "priority", "type": "int", "useNull": true }, { "name": "closed", "type": "boolean" }, { "name": "planned_time" }, { "name": "description" }, { "name": "upgrade_notes" }, { "name": "ticket_type" }, 'ticket_typeHidden', { "name": "duplicate_of" }, 'duplicate_ofHidden', { "name": "reporter" }, 'reporterHidden', { "name": "end_user" }, 'end_userHidden', { "name": "state" }, 'stateHidden', { "dateFormat": "d.m.Y", "name": "deadline", "type": "date" }, { "name": "waiting_for" }, { "name": "feedback", "type": "boolean" }, { "name": "standby", "type": "boolean" }, { "name": "needed_skills" }, { "name": "suppliers" }, { "name": "overview" }, { "name": "description_column" }, { "name": "created_natural" }, { "name": "site" }, 'siteHidden', { "name": "disabled_fields" }, { "name": "disabled_actions" }, { "name": "disable_editing" } ],
  pk_index : 0,
  ls_grid_configs : [  ],
  content_type : 26,
  ls_id_property : "id",
  gc_name : 0,
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.TicketsBySite.detail;
    this.ls_insert_handler = Lino.tickets.TicketsBySite.insert;
    var ww = this.containing_window;
    var id1592 = new Ext.form.NumberField({ "selectOnFocus": true });
    var summary1593 = new Ext.form.TextField({ "maxLength": 200, "selectOnFocus": true });
    var user1594 = new Lino.RemoteComboFieldElement({ "emptyText": "Benutzer ausw\u00e4hlen...", "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsBySite/user" }) }) });
    var topic1595 = new Lino.RemoteComboFieldElement({ "emptyText": "Thema ausw\u00e4hlen...", "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsBySite/topic" }) }) });
    var workflow_buttons_disp1596 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "value": "<br/>" });
    var project1597 = new Lino.RemoteComboFieldElement({ "emptyText": "Projekt ausw\u00e4hlen...", "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsBySite/project" }) }) });
    var modified1598 = new Ext.form.DisplayField({ "disabled": true, "hidden": true, "value": "<br>" });
    var created1599 = new Ext.form.DisplayField({ "disabled": true, "hidden": true, "value": "<br>" });
    var private1600 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var priority1601 = new Ext.form.NumberField({ "allowBlank": false, "hidden": true, "selectOnFocus": true, "value": 100 });
    var closed1602 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var planned_time1603 = new Lino.TimeField({ "hidden": true, "selectOnFocus": true });
    var description1604 = new Ext.form.TextArea({ "growMax": 2000, "hidden": true, "selectOnFocus": true });
    var upgrade_notes1605 = new Ext.form.TextArea({ "growMax": 2000, "hidden": true, "selectOnFocus": true });
    var ticket_type1606 = new Lino.RemoteComboFieldElement({ "emptyText": "Ticket type ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsBySite/ticket_type" }) }) });
    var duplicate_of1607 = new Lino.RemoteComboFieldElement({ "emptyText": "Ticket ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsBySite/duplicate_of" }) }) });
    var reporter1608 = new Lino.RemoteComboFieldElement({ "emptyText": "Benutzer ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 15, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsBySite/reporter" }) }) });
    var end_user1609 = new Lino.RemoteComboFieldElement({ "emptyText": "Person ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "preferred_width": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsBySite/end_user" }) }) });
    var state1610 = new Lino.ChoicesFieldElement({ "allowBlank": false, "forceSelection": true, "hidden": true, "selectOnFocus": true, "store": Lino.tickets.TicketStates });
    var deadline1611 = new Lino.DateField({ "hidden": true, "selectOnFocus": true });
    var waiting_for1612 = new Ext.form.TextField({ "hidden": true, "maxLength": 200, "selectOnFocus": true });
    var feedback1613 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var standby1614 = new Ext.form.Checkbox({ "checked": false, "hidden": true, "selectOnFocus": true });
    var needed_skills_disp1615 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var suppliers_disp1616 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var overview_disp1617 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var description_column_disp1618 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var created_natural_disp1619 = new Ext.form.DisplayField({ "always_enabled": true, "disabled": true, "hidden": true, "value": "<br/>" });
    var site1620 = new Lino.RemoteComboFieldElement({ "emptyText": "Umfeld ausw\u00e4hlen...", "hidden": true, "pageSize": 20, "selectOnFocus": true, "store": new Lino.ComplexRemoteComboStore({ "proxy": new Ext.data.HttpProxy({ "method": "GET", "url": "/choices/tickets/TicketsBySite/site" }) }) });
    this.before_row_edit = function(record) {
    };
    this.ls_columns = [ { "align": "right", "colIndex": 0, "dataIndex": "id", "editable": true, "editor": id1592, "filter": { "type": "numeric" }, "format": "0", "header": "ID", "sortable": true, "tooltip": "(tickets.TicketsBySite.id) ", "width": Lino.chars2width(6) }, { "colIndex": 1, "dataIndex": "summary", "editable": true, "editor": summary1593, "filter": { "type": "string" }, "header": "Zusammenfassung", "sortable": true, "tooltip": "(tickets.TicketsBySite.summary) Short summary of the problem.", "width": Lino.chars2width(51) }, { "colIndex": 2, "dataIndex": "user", "editable": true, "editor": user1594, "filter": { "type": "string" }, "header": "Autor", "sortable": false, "tooltip": "(tickets.TicketsBySite.user) The author of this object.\nA pointer to lino.modlib.users.models.User.", "width": Lino.chars2width(11) }, { "colIndex": 3, "dataIndex": "topic", "editable": true, "editor": topic1595, "filter": { "type": "string" }, "header": "Thema", "sortable": false, "tooltip": "(tickets.TicketsBySite.topic) ", "width": Lino.chars2width(21) }, { "colIndex": 4, "dataIndex": "workflow_buttons", "editable": false, "header": "Aktionen", "sortable": false, "tooltip": "(tickets.TicketsBySite.workflow_buttons) ", "width": Lino.chars2width(31) }, { "colIndex": 5, "dataIndex": "project", "editable": true, "editor": project1597, "filter": { "type": "string" }, "header": "Projekt", "sortable": false, "tooltip": "(tickets.TicketsBySite.project) ", "width": Lino.chars2width(11) }, { "colIndex": 6, "dataIndex": "modified", "editable": false, "header": "Bearbeitet", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsBySite.modified) ", "width": Lino.chars2width(17) }, { "colIndex": 7, "dataIndex": "created", "editable": false, "header": "Erstellt", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsBySite.created) The timestame when this object was created.", "width": Lino.chars2width(17) }, { "colIndex": 8, "dataIndex": "private", "editable": true, "filter": { "type": "boolean" }, "header": "Privat", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsBySite.private) Whether this investment is private, i.e. should not be\npublicly visible anywhere.", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "align": "right", "colIndex": 9, "dataIndex": "priority", "editable": true, "editor": priority1601, "filter": { "type": "numeric" }, "format": "0", "header": "Priorit\u00e4t", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsBySite.priority) ", "width": Lino.chars2width(6) }, { "colIndex": 10, "dataIndex": "closed", "editable": true, "filter": { "type": "boolean" }, "header": "Abgeschlossen", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsBySite.closed) Whether this investment is closed, i.e. certain things should\nnot change anymore.", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 11, "dataIndex": "planned_time", "editable": true, "editor": planned_time1603, "header": "Planned time", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsBySite.planned_time) The time (in hours) we plan to work on this project or ticket.", "width": Lino.chars2width(9) }, { "colIndex": 12, "dataIndex": "description", "editable": true, "editor": description1604, "filter": { "type": "string" }, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsBySite.description) ", "width": Lino.chars2width(61) }, { "colIndex": 13, "dataIndex": "upgrade_notes", "editable": true, "editor": upgrade_notes1605, "filter": { "type": "string" }, "header": "L\u00f6sung", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsBySite.upgrade_notes) ", "width": Lino.chars2width(61) }, { "colIndex": 14, "dataIndex": "ticket_type", "editable": true, "editor": ticket_type1606, "filter": { "type": "string" }, "header": "Ticket type", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsBySite.ticket_type) ", "width": Lino.chars2width(21) }, { "colIndex": 15, "dataIndex": "duplicate_of", "editable": true, "editor": duplicate_of1607, "filter": { "type": "string" }, "header": "Dublette von", "hidden": true, "renderer": Lino.fk_renderer('duplicate_ofHidden','Lino.tickets.Tickets.detail'), "sortable": false, "tooltip": "(tickets.TicketsBySite.duplicate_of) ", "width": Lino.chars2width(21) }, { "colIndex": 16, "dataIndex": "reporter", "editable": true, "editor": reporter1608, "filter": { "type": "string" }, "header": "Anfrager", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsBySite.reporter) ", "width": Lino.chars2width(21) }, { "colIndex": 17, "dataIndex": "end_user", "editable": true, "editor": end_user1609, "filter": { "type": "string" }, "header": "End user", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsBySite.end_user) ", "width": Lino.chars2width(21) }, { "colIndex": 18, "dataIndex": "state", "editable": true, "editor": state1610, "filter": { "type": "string" }, "header": "Zustand", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsBySite.state) ", "width": Lino.chars2width(13) }, { "colIndex": 19, "dataIndex": "deadline", "editable": true, "editor": deadline1611, "filter": { "dateFormat": "d.m.Y", "type": "date" }, "format": "d.m.Y", "header": "Deadline", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsBySite.deadline) ", "width": Lino.chars2width(14), "xtype": "datecolumn" }, { "colIndex": 20, "dataIndex": "waiting_for", "editable": true, "editor": waiting_for1612, "filter": { "type": "string" }, "header": "Waiting for", "hidden": true, "sortable": true, "tooltip": "(tickets.TicketsBySite.waiting_for) ", "width": Lino.chars2width(22) }, { "colIndex": 21, "dataIndex": "feedback", "editable": true, "filter": { "type": "boolean" }, "header": "Feedback", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsBySite.feedback) ", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 22, "dataIndex": "standby", "editable": true, "filter": { "type": "boolean" }, "header": "Standby", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsBySite.standby) ", "width": Lino.chars2width(11), "xtype": "checkcolumn" }, { "colIndex": 23, "dataIndex": "needed_skills", "editable": false, "header": "Needed skills", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsBySite.needed_skills) ", "width": Lino.chars2width(31) }, { "colIndex": 24, "dataIndex": "suppliers", "editable": false, "header": "Suppliers", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsBySite.suppliers) ", "width": Lino.chars2width(31) }, { "colIndex": 25, "dataIndex": "overview", "editable": false, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsBySite.overview) ", "width": Lino.chars2width(31) }, { "colIndex": 26, "dataIndex": "description_column", "editable": false, "header": "Beschreibung", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsBySite.description_column) ", "width": Lino.chars2width(31) }, { "colIndex": 27, "dataIndex": "created_natural", "editable": false, "header": "Erstellt", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsBySite.created_natural) ", "width": Lino.chars2width(31) }, { "colIndex": 28, "dataIndex": "site", "editable": true, "editor": site1620, "filter": { "type": "string" }, "header": "Umfeld", "hidden": true, "sortable": false, "tooltip": "(tickets.TicketsBySite.site) ", "width": Lino.chars2width(21) } ];
    Lino.tickets.TicketsBySite.GridPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.TicketsBySite.show_as_html = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsBySite", "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.tickets.TicketsBySite.as_pdf = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsBySite", "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.tickets.TicketsBySite.as_pdf_p = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsBySite", "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.tickets.TicketsBySite.export_excel = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsBySite", "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.tickets.TicketsBySite.submit_detail = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsBySite", "GET", pk, "submit_detail", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.tickets.TicketsBySite.insertPanel = Ext.extend(Lino.tickets.Tickets.InsertFormPanel,{
  empty_title: "Neu",
  hide_navigator: true,
  save_action_name: "submit_insert",
  ls_bbar_actions: [ { "auto_save": false, "itemId": "submit_insert", "listeners": { "render": Lino.quicktip_renderer('a2btn',"Datensatz erstellen und dann im Detail-Fenster \u00f6ffnen") }, "menu_item_text": "Erstellen", "overflowText": "Erstellen", "panel_btn_handler": function(panel){panel.save()}, "text": "Erstellen" } ],
  ls_url: "/tickets/TicketsBySite",
  action_name: "insert",
  default_record_id: -99999,
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.TicketsBySite.detail;
    this.ls_insert_handler = Lino.tickets.TicketsBySite.insert;
    Lino.tickets.TicketsBySite.insertPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.TicketsBySite.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.tickets.TicketsBySite.insertPanel(p);
});
Lino.tickets.TicketsBySite.grid_put = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsBySite", "GET", pk, "grid_put", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsBySite.grid_post = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsBySite", "GET", pk, "grid_post", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsBySite.submit_insert = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsBySite", "GET", pk, "submit_insert", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};

Lino.tickets.TicketsBySite.detailPanel = Ext.extend(Lino.tickets.Tickets.DetailFormPanel,{
  empty_title: "Detail",
  save_action_name: "submit_detail",
  ls_bbar_actions: [ { "auto_save": false, "iconCls": "x-tbar-disk", "itemId": "submit_detail", "menu_item_text": "Speichern", "overflowText": "Speichern", "panel_btn_handler": function(panel){panel.save()}, "tooltip": "\u00c4nderungen in diesem Formular speichern" }, { "auto_save": true, "iconCls": "x-tbar-add", "itemId": "insert", "keycode": 44, "menu_item_text": "Neu", "overflowText": "Neu", "panel_btn_handler": Lino.show_insert, "tooltip": "Neuen Datensatz erstellen" }, { "auto_save": false, "iconCls": "x-tbar-delete", "itemId": "delete_selected", "keycode": 46, "menu_item_text": "L\u00f6schen", "overflowText": "L\u00f6schen", "panel_btn_handler": Lino.row_action_handler('delete_selected','GET',null), "tooltip": "Diesen Datensatz l\u00f6schen" } ],
  ls_url: "/tickets/TicketsBySite",
  action_name: "detail",
  initComponent : function() {
    this.ls_detail_handler = Lino.tickets.TicketsBySite.detail;
    this.ls_insert_handler = Lino.tickets.TicketsBySite.insert;
    Lino.tickets.TicketsBySite.detailPanel.superclass.initComponent.call(this);
  }
});

Lino.tickets.TicketsBySite.detail = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  return new Lino.tickets.TicketsBySite.detailPanel(p);
});
Lino.tickets.TicketsBySite.delete_selected = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsBySite", "GET", pk, "delete_selected", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsBySite.grid = new Lino.WindowAction({  }, function(){
  var p = { "is_main_window": true };
  p.params_panel = new Lino.tickets.Tickets.ParamsPanel({});
  return new Lino.tickets.TicketsBySite.GridPanel(p);
});
Lino.tickets.TicketsBySite.validate = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsBySite", "GET", pk, "validate", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsBySite.spawn_triggered = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsBySite", "GET", pk, "spawn_triggered", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsBySite.create_vote = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsBySite", "GET", pk, "create_vote", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsBySite.edit_vote = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsBySite", "GET", pk, "edit_vote", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsBySite.wf1 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsBySite", "GET", pk, "wf1", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsBySite.wf2 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsBySite", "GET", pk, "wf2", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsBySite.wf3 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsBySite", "GET", pk, "wf3", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsBySite.wf4 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsBySite", "GET", pk, "wf4", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsBySite.wf5 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsBySite", "GET", pk, "wf5", params, null);
  };
  var panel = Ext.getCmp(rp);
  if(panel) panel.do_when_clean(true, h); else h();
};
Lino.tickets.TicketsBySite.wf6 = function(rp, pk, params) { 
  var h = function() { 
    Lino.run_row_action(rp, "/tickets/TicketsBySite", "GET", pk, "wf6", 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: "Info",
  hide_navigator: 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);
});

Lino.about.About.showPanel = Ext.extend(Lino.about.About.DetailFormPanel,{
  empty_title: "Info",
  hide_navigator: 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);
});
