luca 0.8.59 → 0.8.599

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  module Luca
2
2
  module Rails
3
- VERSION = "0.8.59"
3
+ VERSION = "0.8.599"
4
4
  end
5
5
  end
6
6
 
@@ -54,7 +54,8 @@ _.component('Luca.fields.CheckboxArray').extends('Luca.core.Field').with
54
54
  label = model.get(@displayField)
55
55
  input_id = _.uniqueId('field')
56
56
  controls.append(Luca.templates["fields/checkbox_array_item"]({label: label, value: value, input_id: input_id, input_name: @input_name}))
57
- @$("##{input_id}").attr("checked", "checked") unless @selectedItems.indexOf(value) is -1
57
+
58
+ @$("##{input_id}").attr("checked", "checked") unless _( @selectedItems ).indexOf(value) is -1
58
59
 
59
60
  $(@container).append(@$el)
60
61
 
@@ -68,9 +68,12 @@ _.component('Luca.components.GridView').extend('Luca.View').with
68
68
  # if a model changes, then we will update the row's contents
69
69
  # by rerendering that row's cells
70
70
  @collection.bind "change", (model)=>
71
- rowEl = @getRowEl( model.id || model.get('id') || model.cid )
72
- cells = @render_row(model, @indexOf(model), cellsOnly: true )
73
- $( rowEl ).html( cells )
71
+ try
72
+ rowEl = @getRowEl( model.id || model.get('id') || model.cid )
73
+ cells = @render_row(model, @collection.indexOf(model), cellsOnly: true )
74
+ $( rowEl ).html( cells )
75
+ catch error
76
+ console.log "Error in change handler for GridView.collection", error, @
74
77
 
75
78
  beforeRender: ()->
76
79
  @trigger "before:grid:render", @
data/src/framework.coffee CHANGED
@@ -1,5 +1,5 @@
1
1
  window.Luca =
2
- VERSION: "0.8.59"
2
+ VERSION: "0.8.599"
3
3
  core: {}
4
4
  containers: {}
5
5
  components: {}
@@ -2,7 +2,7 @@
2
2
  var DefineProxy;
3
3
 
4
4
  window.Luca = {
5
- VERSION: "0.8.59",
5
+ VERSION: "0.8.599",
6
6
  core: {},
7
7
  containers: {},
8
8
  components: {},
@@ -2,7 +2,7 @@
2
2
  var DefineProxy;
3
3
 
4
4
  window.Luca = {
5
- VERSION: "0.8.59",
5
+ VERSION: "0.8.599",
6
6
  core: {},
7
7
  containers: {},
8
8
  components: {},
@@ -2107,7 +2107,7 @@
2107
2107
  input_id: input_id,
2108
2108
  input_name: _this.input_name
2109
2109
  }));
2110
- if (_this.selectedItems.indexOf(value) !== -1) {
2110
+ if (_(_this.selectedItems).indexOf(value) !== -1) {
2111
2111
  return _this.$("#" + input_id).attr("checked", "checked");
2112
2112
  }
2113
2113
  });
@@ -2704,11 +2704,15 @@
2704
2704
  });
2705
2705
  return this.collection.bind("change", function(model) {
2706
2706
  var cells, rowEl;
2707
- rowEl = _this.getRowEl(model.id || model.get('id') || model.cid);
2708
- cells = _this.render_row(model, _this.indexOf(model), {
2709
- cellsOnly: true
2710
- });
2711
- return $(rowEl).html(cells);
2707
+ try {
2708
+ rowEl = _this.getRowEl(model.id || model.get('id') || model.cid);
2709
+ cells = _this.render_row(model, _this.collection.indexOf(model), {
2710
+ cellsOnly: true
2711
+ });
2712
+ return $(rowEl).html(cells);
2713
+ } catch (error) {
2714
+ return console.log("Error in change handler for GridView.collection", error, _this);
2715
+ }
2712
2716
  });
2713
2717
  },
2714
2718
  beforeRender: function() {
@@ -2,7 +2,7 @@
2
2
  var DefineProxy;
3
3
 
4
4
  window.Luca = {
5
- VERSION: "0.8.59",
5
+ VERSION: "0.8.599",
6
6
  core: {},
7
7
  containers: {},
8
8
  components: {},
@@ -2107,7 +2107,7 @@
2107
2107
  input_id: input_id,
2108
2108
  input_name: _this.input_name
2109
2109
  }));
2110
- if (_this.selectedItems.indexOf(value) !== -1) {
2110
+ if (_(_this.selectedItems).indexOf(value) !== -1) {
2111
2111
  return _this.$("#" + input_id).attr("checked", "checked");
2112
2112
  }
2113
2113
  });
@@ -2704,11 +2704,15 @@
2704
2704
  });
2705
2705
  return this.collection.bind("change", function(model) {
2706
2706
  var cells, rowEl;
2707
- rowEl = _this.getRowEl(model.id || model.get('id') || model.cid);
2708
- cells = _this.render_row(model, _this.indexOf(model), {
2709
- cellsOnly: true
2710
- });
2711
- return $(rowEl).html(cells);
2707
+ try {
2708
+ rowEl = _this.getRowEl(model.id || model.get('id') || model.cid);
2709
+ cells = _this.render_row(model, _this.collection.indexOf(model), {
2710
+ cellsOnly: true
2711
+ });
2712
+ return $(rowEl).html(cells);
2713
+ } catch (error) {
2714
+ return console.log("Error in change handler for GridView.collection", error, _this);
2715
+ }
2712
2716
  });
2713
2717
  },
2714
2718
  beforeRender: function() {
@@ -1,3 +1,3 @@
1
- (function(){var DefineProxy;window.Luca={VERSION:"0.8.59",core:{},containers:{},components:{},modules:{},util:{},fields:{},component_cache:{cid_index:{},name_index:{}},registry:{classes:{},namespaces:["Luca.containers","Luca.components"]}},Luca.enableGlobalObserver=!1,Luca.enableBootstrap=!0,Luca.isBackboneModel=function(a){return _.isFunction(a!=null?a.set:void 0)&&_.isFunction(a!=null?a.get:void 0)&&_.isObject(a!=null?a.attributes:void 0)},Luca.isBackboneView=function(a){return _.isFunction(a!=null?a.render:void 0)&&!_.isUndefined(a!=null?a.el:void 0)},Luca.isBackboneCollection=function(a){return _.isFunction(a!=null?a.fetch:void 0)&&_.isFunction(a!=null?a.reset:void 0)},Luca.registry.addNamespace=function(a){return Luca.registry.namespaces.push(a),Luca.registry.namespaces=_(Luca.registry.namespaces).uniq()},Luca.cache=function(a,b){var c;return b!=null&&(Luca.component_cache.cid_index[a]=b),b=Luca.component_cache.cid_index[a],(b!=null?b.component_name:void 0)!=null?Luca.component_cache.name_index[b.component_name]=b.cid:(b!=null?b.name:void 0)!=null&&(Luca.component_cache.name_index[b.name]=b.cid),b!=null?b:(c=Luca.component_cache.name_index[a],Luca.component_cache.cid_index[c])},Luca.util.resolve=function(a,b){return _(a.split(/\./)).inject(function(a,b){return a=a!=null?a[b]:void 0},b)},Luca.util.nestedValue=Luca.util.resolve,Luca.util.classify=function(a){return a==null&&(a=""),_.string.camelize(_.string.capitalize(a))},Luca.registry.lookup=function(a){var b,c,d,e;return b=Luca.registry.classes[a],b!=null?b:(c=Luca.util.classify(a),d=_(Luca.registry.namespaces).map(function(a){return Luca.util.nestedValue(a,window||global)}),(e=_(d).chain().map(function(a){return a[c]}).compact().value())!=null?e[0]:void 0)},Luca.util.lazyComponent=function(config){var componentClass,constructor,ctype;ctype=config.ctype||config.type,componentClass=Luca.registry.lookup(ctype);if(!componentClass)throw"Invalid Component Type: "+ctype+". Did you forget to register it?";return constructor=eval(componentClass),new constructor(config)},Luca.register=function(a,b){var c;return c=Luca.registry.classes[a],c!=null&&window.TestRun==null?console.log("Attempting to register component with the signature "+a+". Already exists"):Luca.registry.classes[a]=b},Luca.available_templates=function(a){var b;return a==null&&(a=""),b=_(Luca.templates).keys(),a.length>0?_(b).select(function(b){return b.match(a)}):b},Luca.util.isIE=function(){try{return Object.defineProperty({},"",{}),!1}catch(a){return!0}},Luca.template=function(a,b){var c,d,e,f,g;window.JST||(window.JST={}),d=(g=Luca.templates)!=null?g[a]:void 0,c=typeof JST!="undefined"&&JST!==null?JST[a]:void 0,d==null&&c==null&&(e=new RegExp(""+a+"$"),d=_(Luca.templates).detect(function(a,b){return e.exec(b)}),c=_(JST).detect(function(a,b){return e.exec(b)}));if(!d&&!c)throw"Could not find template with "+a;return f=d||c,b!=null?f(b):f},DefineProxy=function(){function DefineProxy(a){var b;this.namespace=window||global,this.componentId=this.componentName=a,a.match(/\./)&&(this.namespaced=!0,b=a.split("."),this.componentId=b.pop(),this.namespace=b.join("."),Luca.registry.addNamespace(b.join(".")))}return DefineProxy.prototype["in"]=function(a){return this.namespace=a,this},DefineProxy.prototype.from=function(a){return this.superClassName=a,this},DefineProxy.prototype["extends"]=function(a){return this.superClassName=a,this},DefineProxy.prototype.extend=function(a){return this.superClassName=a,this},DefineProxy.prototype["with"]=function(properties){var at;return at=this.namespaced?Luca.util.resolve(this.namespace,window||global):window||global,this.namespaced&&_.isUndefined(at)&&(eval("window."+this.namespace+" = {}"),at=Luca.util.resolve(this.namespace,window||global)),at[this.componentId]=Luca.extend(this.superClassName,this.componentName,properties),Luca.register(_.string.underscored(this.componentId),this.componentName),at[this.componentId]},DefineProxy}(),Luca.define=function(a){return new DefineProxy(a)},Luca.component=Luca.define,Luca.extend=function(a,b,c){var d;c==null&&(c={}),d=Luca.util.resolve(a,window||global);if(!_.isFunction(d!=null?d.extend:void 0))throw""+a+" is not a valid component to extend from";return c._className=b,c._superClass=function(){return d._className||(d._className=a),d},d.extend(c)},_.mixin({component:Luca.define}),$(function(){return $("body").addClass("luca-ui-enabled")}())}).call(this),function(){Luca.modules.Deferrable={configure_collection:function(a){var b,c,d;a==null&&(a=!0);if(!this.collection)return;_.isString(this.collection)&&(b=(c=Luca.CollectionManager)!=null?c.get():void 0)&&(this.collection=b.getOrCreate(this.collection)),this.collection&&_.isFunction(this.collection.fetch)&&_.isFunction(this.collection.reset)||(this.collection=new Luca.Collection(this.collection.initial_set,this.collection));if((d=this.collection)!=null?d.deferrable_trigger:void 0)this.deferrable_trigger=this.collection.deferrable_trigger;if(a)return this.deferrable=this.collection}}}.call(this),function(){Luca.LocalStore=function(){function a(a){var b;this.name=a,b=localStorage.getItem(this.name),this.data=b&&JSON.parse(b)||{}}return a.prototype.guid=function(){var a;return a=function(){return((1+Math.random())*65536|0).toString(16).substring(1)},a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},a.prototype.save=function(){return localStorage.setItem(this.name,JSON.stringify(this.data))},a.prototype.create=function(a){return a.id||(a.id=a.attribtues.id=this.guid()),this.data[a.id]=a,this.save(),a},a.prototype.update=function(a){return this.data[a.id]=a,this.save(),a},a.prototype.find=function(a){return this.data[a.id]},a.prototype.findAll=function(){return _.values(this.data)},a.prototype.destroy=function(a){return delete this.data[a.id],this.save(),a},a}(),Backbone.LocalSync=function(a,b,c){var d,e;return e=b.localStorage||b.collection.localStorage,d=function(){switch(a){case"read":return b.id?e.find(b):e.findAll();case"create":return e.create(b);case"update":return e.update(b);case"delete":return e.destroy(b)}}(),d?c.success(d):c.error("Record not found")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["components/bootstrap_form_controls"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<div class='form-actions'>\n <a class='btn btn-primary submit-button'>\n <i class='icon-ok icon-white'></i>\n Save Changes\n </a>\n <a class='btn reset-button cancel-button'>\n <i class='icon-remove'></i>\n Cancel\n </a>\n</div>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["components/collection_loader_view"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<div class='modal' id='progress-model' stype='display: none;'>\n <div class='progress progress-info progress-striped active'>\n <div class='bar' style='width: 0%;'></div>\n </div>\n <div class='message'>\n Initializing...\n </div>\n</div>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["components/form_view"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<div class='luca-ui-form-view-wrapper' id='",cid,"-wrapper'>\n <div class='form-view-header'>\n <div class='toolbar-container top' id='",cid,"-top-toolbar-container'></div>\n </div>\n "),legend?__p.push("\n <fieldset>\n <legend>\n ",legend,"\n </legend>\n <div class='form-view-flash-container'></div>\n <div class='form-view-body'></div>\n </fieldset>\n "):__p.push("\n <ul class='form-view-flash-container'></ul>\n <div class='form-view-body'></div>\n "),__p.push("\n <div class='form-view-footer'>\n <div class='toolbar-container bottom' id='",cid,"-bottom-toolbar-container'></div>\n </div>\n</div>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["components/grid_view"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<div class='luca-ui-g-view-wrapper'>\n <div class='g-view-header'>\n <div class='toolbar-container top'></div>\n </div>\n <div class='luca-ui-g-view-body'>\n <table cellpadding='0' cellspacing='0' class='luca-ui-g-view scrollable-table' width='100%'>\n <thead class='fixed'></thead>\n <tbody class='scrollable'></tbody>\n </table>\n </div>\n <div class='luca-ui-g-view-footer'>\n <div class='toolbar-container bottom'></div>\n </div>\n</div>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["components/grid_view_empty_text"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<div class='empty-text-wrapper'>\n <p>\n ",text,"\n </p>\n</div>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["containers/basic"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<div class='",classes,"' id='",id,"' style='",style,"'></div>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["containers/tab_selector_container"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{}){__p.push("<div class='tab-selector-container' id='",cid,"-tab-selector'>\n <ul class='nav nav-tabs' id='",cid,"-tabs-nav'>\n ");for(var i=0;i<components.length;i++){__p.push("\n ");var component=components[i];__p.push("\n <li class='tab-selector' data-target='",i,"'>\n <a data-target='",i,"'>\n ",component.title,"\n </a>\n </li>\n ")}__p.push("\n </ul>\n</div>\n")}return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["containers/tab_view"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<div class='tab-content' id='",cid,"-tab-view-content'></div>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["containers/toolbar_wrapper"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<div class='luca-ui-toolbar-wrapper' id='",id,"'></div>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/button_field"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<label>&nbsp</label>\n<input class='btn ",input_class,"' id='",input_id,"' style='",inputStyles,"' type='",input_type,"' value='",input_value,"' />\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/button_field_link"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<a class='btn ",input_class,"'>\n "),icon_class.length&&__p.push("\n <i class='",icon_class,"'></i>\n "),__p.push("\n ",input_value,"\n</a>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/checkbox_array"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<div class='form-horizontal'>\n <div class='control-group'>\n <label for='",input_id,"'>\n ",label,"\n </label>\n <div class='controls'></div>\n </div>\n</div>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/checkbox_array_item"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<label for='",input_id,"'>\n <input id='",input_id,"' name='",input_name,"' type='checkbox' value='",value,"' />\n ",label,"\n</label>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/checkbox_field"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<label for='",input_id,"'>\n ",label,"\n <input name='",input_name,"' style='",inputStyles,"' type='checkbox' value='",input_value,"' />\n</label>\n"),helperText&&__p.push("\n<p class='helper-text help-block'>\n ",helperText,"\n</p>\n"),__p.push("\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/file_upload_field"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<label for='",input_id,"'>\n ",label,"\n</label>\n<input id='",input_id,"' name='",input_name,"' style='",inputStyles,"' type='file' />\n"),helperText&&__p.push("\n<p class='helper-text help-block'>\n ",helperText,"\n</p>\n"),__p.push("\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/hidden_field"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<input id='",input_id,"' name='",input_name,"' type='hidden' value='",input_value,"' />\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/select_field"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<label for='",input_id,"'>\n ",label,"\n</label>\n<select id='",input_id,"' name='",input_name,"' style='",inputStyles,"'></select>\n"),helperText&&__p.push("\n<p class='helper-text help-block'>\n ",helperText,"\n</p>\n"),__p.push("\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/text_area_field"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<label for='",input_id,"'>\n ",label,"\n</label>\n<textarea class='",input_class,"' id='",input_id,"' name='",input_name,"' style='",inputStyles,"'></textarea>\n"),helperText&&__p.push("\n<p class='helper-text help-block'>\n ",helperText,"\n</p>\n"),__p.push("\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/text_field"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<label class='control-label' for='",input_id,"'>\n ",label,"\n</label>\n"),typeof addOn!="undefined"&&__p.push("\n<span class='add-on'>\n ",addOn,"\n</span>\n"),__p.push("\n<input class='",input_class,"' id='",input_id,"' name='",input_name,"' placeholder='",placeHolder,"' style='",inputStyles,"' type='text' />\n"),helperText&&__p.push("\n<p class='helper-text help-block'>\n ",helperText,"\n</p>\n"),__p.push("\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["sample/contents"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<p>Sample Contents</p>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["sample/welcome"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("welcome.luca\n");return __p.join("")}}.call(this),function(){var a=Array.prototype.slice;Luca.Observer=function(){function b(b){var c=this;this.options=b!=null?b:{},_.extend(this,Backbone.Events),this.type=this.options.type,this.options.debugAll&&this.bind("event",function(){var b,d;return d=arguments[0],b=2<=arguments.length?a.call(arguments,1):[],console.log("Observed "+c.type+" "+(d.name||d.id||d.cid),d,_(b).flatten())})}return b.prototype.relay=function(){var b,c;return c=arguments[0],b=2<=arguments.length?a.call(arguments,1):[],this.trigger("event",c,b),this.trigger("event:"+b[0],c,b.slice(1))},b}(),Luca.Observer.enableObservers=function(a){return a==null&&(a={}),Luca.enableGlobalObserver=!0,Luca.ViewObserver=new Luca.Observer(_.extend(a,{type:"view"})),Luca.CollectionObserver=new Luca.Observer(_.extend(a,{type:"collection"}))}}.call(this),function(){Luca.View=Backbone.View.extend({base:"Luca.View"}),Luca.View.originalExtend=Backbone.View.extend,Luca.View.extend=function(a){var b;return b=a.render,b||(b=function(){var a;return a=_.isFunction(this.container)?this.container():this.container,!$(a)||!this.$el?this:($(a).append(this.$el),this)}),a.render=function(){var a=this;return this.layoutTemplate!=null&&this.$el.html(),this.deferrable?(this.trigger("before:render",this),this.deferrable.bind(this.deferrable_event,_.once(function(){return b.apply(a,arguments),a.trigger("after:render",a)})),this.deferrable_trigger||(this.immediate_trigger=!0),this.immediate_trigger===!0?this.deferrable.fetch():this.bind(this.deferrable_trigger,_.once(function(){return a.deferrable.fetch()})),this):(this.trigger("before:render",this),b.apply(this,arguments),this.trigger("after:render",this),this)},Luca.View.originalExtend.call(this,a)},_.extend(Luca.View.prototype,{applyStyles:function(a){var b,c;a==null&&(a={});for(b in a)c=a[b],this.$el.css(b,c);return this},debug:function(){var a,b,c,d;if(!this.debugMode&&window.LucaDebugMode==null)return;d=[];for(b=0,c=arguments.length;b<c;b++)a=arguments[b],d.push(console.log([this.name||this.cid,a]));return d},trigger:function(){return Luca.enableGlobalObserver&&this.observeEvents===!0&&(Luca.ViewObserver||(Luca.ViewObserver=new Luca.Observer({type:"view"})),Luca.ViewObserver.relay(this,arguments)),Backbone.View.prototype.trigger.apply(this,arguments)},hooks:["after:initialize","before:render","after:render","first:activation","activation","deactivation"],deferrable_event:"reset",initialize:function(a){var b,c=this;return this.options=a!=null?a:{},_.extend(this,this.options),this.name!=null&&(this.cid=_.uniqueId(this.name)),Luca.cache(this.cid,this),b=_(Luca.View.prototype.hooks.concat(this.hooks)).uniq(),this.setupHooks(b),this.autoBindEventHandlers===!0&&_(this.events).each(function(a,b){if(_.isString(a))return _.bindAll(c,a)}),this.trigger("after:initialize",this),this.registerCollectionEvents(),this.delegateEvents()},$container:function(){return $(this.container)},setupHooks:function(a){var b=this;return a||(a=this.hooks),_(a).each(function(a){var c,d,e;return d=a.split(":"),e=d.shift(),d=_(d).map(function(a){return _.string.capitalize(a)}),c=e+d.join(""),b.bind(a,function(){if(b[c])return b[c].apply(b,arguments)})})},getCollectionManager:function(){var a;return this.collectionManager||((a=Luca.CollectionManager.get)!=null?a.call():void 0)},registerCollectionEvents:function(){var a,b=this;return a=this.getCollectionManager(),_(this.collectionEvents).each(function(c,d){var e,f,g,h;h=d.split(" "),g=h[0],f=h[1],e=b[""+g+"Collection"]=a.getOrCreate(g);if(!e)throw"Could not find collection specified by "+g;_.isString(c)&&(c=b[c]);if(!_.isFunction(c))throw"invalid collectionEvents configuration";try{return e.bind(f,c)}catch(i){throw console.log("Error Binding To Collection in registerCollectionEvents",b),i}})},registerEvent:function(a,b){return this.events||(this.events={}),this.events[a]=b,this.delegateEvents()}})}.call(this),function(){_.component("Luca.Model")["extends"]("Backbone.Model")["with"]({initialize:function(){var a,b,c,d,e=this;Backbone.Model.prototype.initialize(this,arguments);if(_.isUndefined(this.computed))return;this._computed={},c=this.computed,d=[];for(a in c)b=c[a],this.on("change:"+a,function(){return e._computed[a]=e[a].call(e)}),d.push(_(b).each(function(b){e.on("change:"+b,function(){return e.trigger("change:"+a)});if(e.has(b))return e.trigger("change:"+a)}));return d},get:function(a){var b;return((b=this.computed)!=null?b.hasOwnProperty(a):void 0)?this._computed[a]:Backbone.Model.prototype.get.call(this,a)}})}.call(this),function(){Luca.Collection=(Backbone.QueryCollection||Backbone.Collection).extend({initialize:function(a,b){var c,d=this;a==null&&(a=[]),this.options=b,_.extend(this,this.options),this._reset(),this.cached&&(this.bootstrap_cache_key=_.isFunction(this.cached)?this.cached():this.cached),(this.registerAs||this.registerWith)&&console.log("This configuration API is deprecated. use @name and @manager properties instead"),this.name||(this.name=this.registerAs),this.manager||(this.manager=this.registerWith),this.name&&!this.manager&&(this.manager=Luca.CollectionManager.get()),this.manager&&(this.name||(this.name=this.cached()),this.name=_.isFunction(this.name)?this.name():this.name,!this.private&&!this.anonymous&&this.bind("after:initialize",function(){return d.register(d.manager,d.name,d)}));if(this.useLocalStorage===!0&&window.localStorage!=null)throw c=this.bootstrap_cache_key||this.name,"Must specify either a cached or registerAs property to use localStorage";return _.isArray(this.data)&&this.data.length>0&&(this.memoryCollection=!0),this.useNormalUrl!==!0&&this.__wrapUrl(),Backbone.Collection.prototype.initialize.apply(this,[a,this.options]),a&&this.reset(a,{silent:!0,parse:b!=null?b.parse:void 0}),this.trigger("after:initialize")},__wrapUrl:function(){var a,b,c=this;return _.isFunction(this.url)?this.url=_.wrap(this.url,function(a){var b,d,e,f,g;return g=a.apply(c),e=g.split("?"),e.length>1&&(b=_.last(e)),f=c.queryString(),b&&g.match(b)&&(f=f.replace(b,"")),d=""+g+"?"+f,d.match(/\?$/)&&(d=d.replace(/\?$/,"")),d}):(b=this.url,a=this.queryString(),this.url=_([b,a]).compact().join("?"))},queryString:function(){var a,b=this;return a=_(this.base_params||(this.base_params=Luca.Collection.baseParams())).inject(function(a,b,c){var d;return d=""+c+"="+b,a.push(d),a},[]),_.uniq(a).join("&")},resetFilter:function(){return this.base_params=Luca.Collection.baseParams(),this},applyFilter:function(a,b){return a==null&&(a={}),b==null&&(b={}),this.applyParams(a),this.fetch(_.extend(b,{refresh:!0}))},applyParams:function(a){return this.base_params||(this.base_params=_(Luca.Collection.baseParams()).clone()),_.extend(this.base_params,a)},register:function(a,b,c){a==null&&(a=Luca.CollectionManager.get()),b==null&&(b="");if(!(b.length>=1))throw"Can not register with a collection manager without a key";if(a==null)throw"Can not register with a collection manager without a valid collection manager";_.isString(a)&&(a=Luca.util.nestedValue(a,window||global));if(!a)throw"Could not register with collection manager";if(_.isFunction(a.add))return a.add(b,c);if(_.isObject(a))return a[b]=c},loadFromBootstrap:function(){if(!this.bootstrap_cache_key)return;return this.reset(this.cached_models()),this.trigger("bootstrapped",this)},bootstrap:function(){return this.loadFromBootstrap()},cached_models:function(){return Luca.Collection.cache(this.bootstrap_cache_key)},fetch:function(a){var b;a==null&&(a={}),this.trigger("before:fetch",this);if(this.memoryCollection===!0)return this.reset(this.data);if(this.cached_models().length&&!a.refresh)return this.bootstrap();b=_.isFunction(this.url)?this.url():this.url;if(!(b&&b.length>1||this.localStorage))return!0;this.fetching=!0;try{return Backbone.Collection.prototype.fetch.apply(this,arguments)}catch(c){throw console.log("Error in Collection.fetch",c),c}},onceLoaded:function(a,b){var c,d=this;b==null&&(b={autoFetch:!0});if(this.length>0&&!this.fetching){a.apply(this,[this]);return}c=function(){return a.apply(d,[d])},this.bind("reset",function(){return c(),this.unbind("reset",this)});if(!this.fetching&&!!b.autoFetch)return this.fetch()},ifLoaded:function(a,b){var c,d=this;b==null&&(b={scope:this,autoFetch:!0}),c=b.scope||this,this.length>0&&!this.fetching&&a.apply(c,[this]),this.bind("reset",function(b){return a.apply(c,[b])});if(!(this.fetching===!0||!b.autoFetch||this.length>0))return this.fetch()},parse:function(a){var b;return this.fetching=!1,this.trigger("after:response",a),b=this.root!=null?a[this.root]:a,this.bootstrap_cache_key&&Luca.Collection.cache(this.bootstrap_cache_key,b),b}}),_.extend(Luca.Collection.prototype,{trigger:function(){return Luca.enableGlobalObserver&&(Luca.CollectionObserver||(Luca.CollectionObserver=new Luca.Observer({type:"collection"})),Luca.CollectionObserver.relay(this,arguments)),Backbone.View.prototype.trigger.apply(this,arguments)}}),Luca.Collection.baseParams=function(a){if(a)return Luca.Collection._baseParams=a;if(_.isFunction(Luca.Collection._baseParams))return Luca.Collection._baseParams.call();if(_.isObject(Luca.Collection._baseParams))return Luca.Collection._baseParams},Luca.Collection._bootstrapped_models={},Luca.Collection.bootstrap=function(a){return _.extend(Luca.Collection._bootstrapped_models,a)},Luca.Collection.cache=function(a,b){return b?Luca.Collection._bootstrapped_models[a]=b:Luca.Collection._bootstrapped_models[a]||[]}}.call(this),function(){_.component("Luca.core.Field")["extends"]("Luca.View")["with"]({className:"luca-ui-text-field luca-ui-field",isField:!0,template:"fields/text_field",labelAlign:"top",hooks:["before:validation","after:validation","on:change"],statuses:["warning","error","success"],initialize:function(a){var b;return this.options=a!=null?a:{},_.extend(this,this.options),Luca.View.prototype.initialize.apply(this,arguments),this.input_id||(this.input_id=_.uniqueId("field")),this.input_name||(this.input_name=this.name),this.helperText||(this.helperText=""),this.required&&((b=this.label)!=null?!b.match(/^\*/):!void 0)&&(this.label||(this.label="*"+this.label)),this.inputStyles||(this.inputStyles=""),this.disabled&&this.disable(),this.updateState(this.state),this.placeHolder||(this.placeHolder="")},beforeRender:function(){return Luca.enableBootstrap&&this.$el.addClass("control-group"),this.required&&this.$el.addClass("required"),this.$el.html(Luca.templates[this.template](this)),this.input=$("input",this.el)},change_handler:function(a){return this.trigger("on:change",this,a)},disable:function(){return $("input",this.el).attr("disabled",!0)},enable:function(){return $("input",this.el).attr("disabled",!1)},getValue:function(){return this.input.attr("value")},render:function(){return $(this.container).append(this.$el)},setValue:function(a){return this.input.attr("value",a)},updateState:function(a){var b=this;return _(this.statuses).each(function(c){return b.$el.removeClass(c),b.$el.addClass(a)})}})}.call(this),function(){_.component("Luca.core.Container")["extends"]("Luca.View")["with"]({className:"luca-ui-container",componentClass:"luca-ui-panel",isContainer:!0,hooks:["before:components","before:render:components","before:layout","after:components","after:layout","first:activation"],rendered:!1,components:[],initialize:function(a){return this.options=a!=null?a:{},_.extend(this,this.options),this.setupHooks(Luca.core.Container.prototype.hooks),Luca.View.prototype.initialize.apply(this,arguments)},beforeRender:function(){return this.debug("container before render"),this.doLayout(),this.doComponents()},doLayout:function(){return this.debug("container do layout"),this.trigger("before:layout",this),this.prepareLayout(),this.trigger("after:layout",this)},doComponents:function(){return this.debug("container do components"),this.trigger("before:components",this,this.components),this.prepareComponents(),this.createComponents(),this.trigger("before:render:components",this,this.components),this.renderComponents(),this.trigger("after:components",this,this.components)},applyPanelConfig:function(a,b){var c,d;return d=[],a.height&&d.push("height: "+(_.isNumber(a.height)?a.height+"px":a.height)),a.width&&d.push("width: "+(_.isNumber(a.width)?a.width+"px":a.width)),a.float&&d.push("float: "+a.float),c={classes:(a!=null?a.classes:void 0)||this.componentClass,id:""+this.cid+"-"+b,style:d.join(";")}},prepareLayout:function(){var a=this;this.debug("container prepare layout"),this.componentContainers=_(this.components).map(function(b,c){return a.applyPanelConfig.apply(a,[b,c])});if(this.appendContainers)return _(this.componentContainers).each(function(b){return b.appended==null&&a.$el.append(Luca.templates["containers/basic"](b)),b.appended=!0})},prepareComponents:function(){var a=this;return this.debug("container prepare components"),this.components=_(this.components).map(function(b,c){var d;return d=a.componentContainers[c],b.container=a.appendContainers?"#"+d.id:a.el,b})},createComponents:function(){var a,b=this;if(this.componentsCreated===!0)return;return a=this.componentIndex={name_index:{},cid_index:{}},this.components=_(this.components).map(function(b,c){var d;return d=_.isObject(b)&&b.render&&b.trigger?b:(b.ctype||(b.ctype=Luca.defaultComponentType||"template"),Luca.util.lazyComponent(b)),!d.container&&d.options.container&&(d.container=d.options.container),a&&d.cid!=null&&(a.cid_index[d.cid]=c),a&&d.name!=null&&(a.name_index[d.name]=c),d}),this.componentsCreated=!0,a},renderComponents:function(a){var b=this;return this.debugMode=a!=null?a:"",this.debug("container render components"),_(this.components).each(function(a){a.getParent=function(){return b},$(a.container).append($(a.el));try{return a.render()}catch(c){console.log("Error Rendering Component "+(a.name||a.cid),a),console.log(c.message),console.log(c.stack);if(Luca.silenceRenderErrors!=null!=1)throw c}})},firstActivation:function(){var a=this;return _(this.components).each(function(b){var c,d;c=a;if((b!=null?b.previously_activated:void 0)!==!0)return b!=null&&(d=b.trigger)!=null&&d.apply(b,["first:activation",[b,c]]),b.previously_activated=!0})},select:function(a,b,c){var d;return c==null&&(c=!1),d=_(this.components).map(function(d){var e,f;return e=[],f=d[a],f===b&&e.push(d),c===!0&&d.isContainer===!0&&e.push(d.select(a,b,!0)),_.compact(e)}),_.flatten(d)},findComponentByName:function(a,b){return b==null&&(b=!1),this.findComponent(a,"name_index",b)},findComponentById:function(a,b){return b==null&&(b=!1),this.findComponent(a,"cid_index",b)},findComponent:function(a,b,c){var d,e,f,g,h;b==null&&(b="name"),c==null&&(c=!1),this.componentsCreated!==!0&&this.createComponents(),e=(g=this.componentIndex)!=null?g[b][a]:void 0,d=(h=this.components)!=null?h[e]:void 0;if(d)return d;if(c===!0)return f=_(this.components).detect(function(c){return c!=null?typeof c.findComponent=="function"?c.findComponent(a,b,!0):void 0:void 0}),f!=null?typeof f.findComponent=="function"?f.findComponent(a,b,!0):void 0:void 0},eachComponent:function(a,b){var c=this;return b==null&&(b=!0),_(this.components).each(function(c){var d;a.apply(c,[c]);if(b)return c!=null?(d=c.eachComponent)!=null?d.apply(c,[a,b]):void 0:void 0})},indexOf:function(a){var b;return b=_(this.components).pluck("name"),_(b).indexOf(a)},activeComponent:function(){return this.activeItem?this.components[this.activeItem]:this},componentElements:function(){return $("."+this.componentClass,this.el)},getComponent:function(a){return this.components[a]},rootComponent:function(){return this.getParent==null},getRootComponent:function(){return this.rootComponent()?this:this.getParent().getRootComponent()}})}.call(this),function(){var a;a=[],Luca.CollectionManager=function(){function b(b){this.options=b!=null?b:{},_.extend(this,this.options),_.extend(this,Backbone.Events),a.push(this),this.state=new Backbone.Model,this.initialCollections&&(this.state.set({loaded_collections_count:0,collections_count:this.initialCollections.length}),this.state.bind("change:loaded_collections_count",this.collectionCountDidChange),this.useProgressLoader&&(this.loaderView||(this.loaderView=new Luca.components.CollectionLoaderView({manager:this,name:"collection_loader_view"}))),this.loadInitialCollections()),this}return b.prototype.__collections={},b.prototype.add=function(a,b){var c;return(c=this.currentScope())[a]||(c[a]=b)},b.prototype.allCollections=function(){return _(this.currentScope()).values()},b.prototype.create=function(a,b,c){var d,e;return b==null&&(b={}),c==null&&(c=[]),d=b.base,d||(d=this.guessCollectionClass(a)),b.private&&(b.name=""),e=new d(c,b),this.add(a,e),e},b.prototype.collectionNamespace=Luca.Collection.namespace,b.prototype.currentScope=function(){var a,b;return(a=this.getScope())?(b=this.__collections)[a]||(b[a]={}):this.__collections},b.prototype.each=function(a){return _(this.all()).each(a)},b.prototype.get=function(a){return this.currentScope()[a]},b.prototype.getScope=function(){return},b.prototype.getOrCreate=function(a,b,c){return b==null&&(b={}),c==null&&(c=[]),this.get(a)||this.create(a,b,c,!1)},b.prototype.guessCollectionClass=function(a){var b,c;return b=Luca.util.classify(a),c=(this.collectionNamespace||window||global)[b],c||(c=(this.collectionNamespace||window||global)[""+b+"Collection"]),c},b.prototype.loadInitialCollections=function(){var a,b=this;return a=function(a){return a.unbind("reset"),b.trigger("collection_loaded",a.name)},_(this.initialCollections).each(function(c){var d;return d=b.getOrCreate(c),d.bind("reset",function(){return a(d)}),d.fetch()})},b.prototype.collectionCountDidChange=function(){if(this.totalCollectionsCount()===this.loadedCollectionsCount())return this.trigger("all_collections_loaded")},b.prototype
2
- .totalCollectionsCount=function(){return this.state.get("collections_count")},b.prototype.loadedCollectionsCount=function(){return this.state.get("loaded_collections_count")},b.prototype.private=function(a,b,c){return b==null&&(b={}),c==null&&(c=[]),this.create(a,b,c,!0)},b}(),Luca.CollectionManager.destroyAll=function(){return a=[]},Luca.CollectionManager.instances=function(){return a},Luca.CollectionManager.get=function(){return _(a).last()}}.call(this),function(){Luca.SocketManager=function(){function a(a){this.options=a!=null?a:{},_.extend(Backbone.Events),this.loadTransport()}return a.prototype.connect=function(){switch(this.options.provider){case"socket.io":return this.socket=io.connect(this.options.socket_host);case"faye.js":return this.socket=new Faye.Client(this.options.socket_host)}},a.prototype.transportLoaded=function(){return this.connect()},a.prototype.transport_script=function(){switch(this.options.provider){case"socket.io":return""+this.options.transport_host+"/socket.io/socket.io.js";case"faye.js":return""+this.options.transport_host+"/faye.js"}},a.prototype.loadTransport=function(){var a,b=this;return a=document.createElement("script"),a.setAttribute("type","text/javascript"),a.setAttribute("src",this.transport_script()),a.onload=this.transportLoaded,Luca.util.isIE()&&(a.onreadystatechange=function(){if(a.readyState==="loaded")return b.transportLoaded()}),document.getElementsByTagName("head")[0].appendChild(a)},a}()}.call(this),function(){_.component("Luca.containers.SplitView")["extends"]("Luca.core.Container")["with"]({layout:"100",componentType:"split_view",containerTemplate:"containers/basic",className:"luca-ui-split-view",componentClass:"luca-ui-panel"})}.call(this),function(){_.component("Luca.containers.ColumnView")["extends"]("Luca.core.Container")["with"]({componentType:"column_view",className:"luca-ui-column-view",components:[],initialize:function(a){return this.options=a!=null?a:{},Luca.core.Container.prototype.initialize.apply(this,arguments),this.setColumnWidths()},componentClass:"luca-ui-column",containerTemplate:"containers/basic",appendContainers:!0,autoColumnWidths:function(){var a,b=this;return a=[],_(this.components.length).times(function(){return a.push(parseInt(100/b.components.length))}),a},setColumnWidths:function(){return this.columnWidths=this.layout!=null?_(this.layout.split("/")).map(function(a){return parseInt(a)}):this.autoColumnWidths(),this.columnWidths=_(this.columnWidths).map(function(a){return""+a+"%"})},beforeComponents:function(){return this.debug("column_view before components"),_(this.components).each(function(a){return a.ctype||(a.ctype="panel_view")})},beforeLayout:function(){var a,b=this;return this.debug("column_view before layout"),_(this.columnWidths).each(function(a,c){return b.components[c].float="left",b.components[c].width=a}),(a=Luca.core.Container.prototype.beforeLayout)!=null?a.apply(this,arguments):void 0}})}.call(this),function(){_.component("Luca.containers.CardView")["extends"]("Luca.core.Container")["with"]({componentType:"card_view",className:"luca-ui-card-view-wrapper",activeCard:0,components:[],hooks:["before:card:switch","after:card:switch"],initialize:function(a){return this.options=a,Luca.core.Container.prototype.initialize.apply(this,arguments),this.setupHooks(this.hooks)},componentClass:"luca-ui-card",beforeLayout:function(){var a=this;return this.cards=_(this.components).map(function(b,c){return{classes:a.componentClass,style:"display:"+(c===a.activeCard?"block":"none"),id:""+a.cid+"-"+c}})},prepareLayout:function(){var a=this;return this.card_containers=_(this.cards).map(function(b,c){return a.$el.append(Luca.templates["containers/basic"](b)),$("#"+b.id)})},prepareComponents:function(){var a=this;return this.components=_(this.components).map(function(b,c){var d;return d=a.cards[c],b.container="#"+d.id,b})},activeComponent:function(){return this.getComponent(this.activeCard)},cycle:function(){var a;return a=this.activeCard<this.components.length-1?this.activeCard+1:0,this.activate(a)},find:function(a){return this.findComponentByName(a,!0)},firstActivation:function(){return this.activeComponent().trigger("first:activation",this,this.activeComponent())},activate:function(a,b,c){var d,e,f,g,h,i;b==null&&(b=!1),_.isFunction(b)&&(b=!1,c=b);if(a===this.activeCard)return;e=this.activeComponent(),d=this.getComponent(a),d||(a=this.indexOf(a),d=this.getComponent(a));if(!d)return;b||(this.trigger("before:card:switch",e,d),e!=null&&(f=e.trigger)!=null&&f.apply(e,["before:deactivation",this,e,d]),d!=null&&(g=d.trigger)!=null&&g.apply(e,["before:activation",this,e,d])),_(this.card_containers).each(function(a){return a.hide()}),d.previously_activated||(d.trigger("first:activation"),d.previously_activated=!0),$(d.container).show(),this.activeCard=a,b||(this.trigger("after:card:switch",e,d),(h=e.trigger)!=null&&h.apply(e,["deactivation",this,e,d]),(i=d.trigger)!=null&&i.apply(d,["activation",this,e,d]));if(_.isFunction(c))return c.apply(this,[this,e,d])}})}.call(this),function(){_.component("Luca.containers.ModalView")["extends"]("Luca.core.Container")["with"]({componentType:"modal_view",className:"luca-ui-modal-view",components:[],renderOnInitialize:!0,showOnRender:!1,hooks:["before:show","before:hide"],defaultModalOptions:{minWidth:375,maxWidth:375,minHeight:550,maxHeight:550,opacity:80,onOpen:function(a){return this.onOpen.apply(this),this.onModalOpen.apply(a,[a,this])},onClose:function(a){return this.onClose.apply(this),this.onModalClose.apply(a,[a,this])}},modalOptions:{},initialize:function(a){var b=this;return this.options=a!=null?a:{},Luca.core.Container.prototype.initialize.apply(this,arguments),this.setupHooks(this.hooks),_(this.defaultModalOptions).each(function(a,c){var d;return(d=b.modalOptions)[c]||(d[c]=a)}),this.modalOptions.onOpen=_.bind(this.modalOptions.onOpen,this),this.modalOptions.onClose=_.bind(this.modalOptions.onClose,this)},onOpen:function(){return!0},onClose:function(){return!0},getModal:function(){return this.modal},onModalOpen:function(a,b){return b.modal=a,a.overlay.show(),a.container.show(),a.data.show()},onModalClose:function(a,b){return $.modal.close()},prepareLayout:function(){return $("body").append(this.$el)},prepareComponents:function(){var a=this;return this.components=_(this.components).map(function(b,c){return b.container=a.el,b})},afterInitialize:function(){this.$el.hide();if(this.renderOnInitialize)return this.render()},afterRender:function(){if(this.showOnRender)return this.show()},wrapper:function(){return $(this.$el.parent())},show:function(){return this.trigger("before:show",this),this.$el.modal(this.modalOptions)},hide:function(){return this.trigger("before:hide",this)}})}.call(this),function(){_.component("Luca.containers.PanelView")["extends"]("Luca.core.Container")["with"]({className:"luca-ui-panel",initialize:function(a){return this.options=a!=null?a:{},Luca.core.Container.prototype.initialize.apply(this,arguments)},afterLayout:function(){var a;if(this.template)return a=(Luca.templates||JST)[this.template](this),this.$el.html(a)},render:function(){return $(this.container).append(this.$el)},afterRender:function(){var a,b=this;(a=Luca.core.Container.prototype.afterRender)!=null&&a.apply(this,arguments);if(this.css)return _(this.css).each(function(a,c){return b.$el.css(c,a)})}})}.call(this),function(){_.component("Luca.containers.TabView")["extends"]("Luca.containers.CardView")["with"]({events:{"click ul.nav-tabs li":"select"},hooks:["before:select","after:select"],componentType:"tab_view",className:"luca-ui-tab-view tabbable",tab_position:"top",tabVerticalOffset:"50px",initialize:function(a){return this.options=a!=null?a:{},Luca.containers.CardView.prototype.initialize.apply(this,arguments),_.bindAll(this,"select","highlightSelectedTab"),this.setupHooks(this.hooks),this.bind("after:card:switch",this.highlightSelectedTab)},activeTabSelector:function(){return this.tabSelectors().eq(this.activeCard||this.activeTab||this.activeItem)},prepareLayout:function(){var a=this;return this.card_containers=_(this.cards).map(function(b,c){return a.$(".tab-content").append(Luca.templates["containers/basic"](b)),$("#"+b.id)})},beforeLayout:function(){return this.$el.addClass("tabs-"+this.tab_position),this.tab_position==="below"?(this.$el.append(Luca.templates["containers/tab_view"](this)),this.$el.append(Luca.templates["containers/tab_selector_container"](this))):(this.$el.append(Luca.templates["containers/tab_selector_container"](this)),this.$el.append(Luca.templates["containers/tab_view"](this))),Luca.containers.CardView.prototype.beforeLayout.apply(this,arguments)},beforeRender:function(){var a;(a=Luca.containers.CardView.prototype.beforeRender)!=null&&a.apply(this,arguments),this.activeTabSelector().addClass("active");if(Luca.enableBootstrap&&this.tab_position==="left"||this.tab_position==="right"){this.$el.addClass("grid-12"),this.tabContainerWrapper().addClass("grid-3"),this.tabContentWrapper().addClass("grid-9");if(this.tabVerticalOffset)return this.tabContainerWrapper().css("padding-top",this.tabVerticalOffset)}},highlightSelectedTab:function(){return this.tabSelectors().removeClass("active"),this.activeTabSelector().addClass("active")},select:function(a){var b,c;return b=c=$(a.currentTarget),this.trigger("before:select",this),this.activate(c.data("target")),this.trigger("after:select",this)},tabContentWrapper:function(){return $("#"+this.cid+"-tab-view-content")},tabContainerWrapper:function(){return $("#"+this.cid+"-tabs-selector")},tabContainer:function(){return $("ul#"+this.cid+"-tabs-nav")},tabSelectors:function(){return $("li.tab-selector",this.tabContainer())}})}.call(this),function(){_.component("Luca.containers.Viewport").extend("Luca.containers.CardView")["with"]({activeItem:0,className:"luca-ui-viewport",fullscreen:!0,initialize:function(a){this.options=a!=null?a:{},Luca.core.Container.prototype.initialize.apply(this,arguments);if(this.fullscreen)return $("html,body").addClass("luca-ui-fullscreen")},render:function(){return this.$el.addClass("luca-ui-viewport")}})}.call(this),function(){}.call(this),function(){_.component("Luca.components.Template")["extends"]("Luca.View")["with"]({templateContainer:"Luca.templates",initialize:function(options){this.options=options!=null?options:{},Luca.View.prototype.initialize.apply(this,arguments);if(!this.template&&!this.markup)throw"Templates must specify which template / markup to use";if(_.isString(this.templateContainer))return this.templateContainer=eval("(window || global)."+this.templateContainer)},beforeRender:function(){return _.isUndefined(this.templateContainer)&&(this.templateContainer=JST),this.$el.html(this.markup||this.templateContainer[this.template](this.options))},render:function(){return $(this.container).append(this.$el)}})}.call(this),function(){_.component("Luca.Application")["extends"]("Luca.containers.Viewport")["with"]({components:[{ctype:"controller",name:"main_controller",defaultCard:"welcome",components:[{ctype:"template",name:"welcome",template:"sample/welcome",templateContainer:"Luca.templates"}]}],initialize:function(a){var b,c=this;return this.options=a!=null?a:{},Luca.containers.Viewport.prototype.initialize.apply(this,arguments),this.collectionManager||(this.collectionManager=(typeof (b=Luca.CollectionManager).get=="function"?b.get():void 0)||new Luca.CollectionManager),this.state=new Backbone.Model(this.defaultState),this.bind("ready",function(){return c.render()})},activeView:function(){var a;return(a=this.activeSubSection())?this.view(a):this.view(this.activeSection())},activeSubSection:function(){return this.get("active_sub_section")},activeSection:function(){return this.get("active_section")},afterComponents:function(){var a,b,c,d=this;return(a=Luca.containers.Viewport.prototype.afterComponents)!=null&&a.apply(this,arguments),(b=this.getMainController())!=null&&b.bind("after:card:switch",function(a,b){return d.state.set({active_section:b.name})}),(c=this.getMainController())!=null?c.each(function(a){if(a.ctype.match(/controller$/))return a.bind("after:card:switch",function(a,b){return d.state.set({active_sub_section:b.name})})}):void 0},beforeRender:function(){var a;return(a=Luca.containers.Viewport.prototype.beforeRender)!=null?a.apply(this,arguments):void 0},boot:function(){return this.trigger("ready")},collection:function(){return this.collectionManager.getOrCreate.apply(this.collectionManager,arguments)},get:function(a){return this.state.get(a)},getMainController:function(){return this.view("main_controler")},set:function(a){return this.state.set(a)},view:function(a){return Luca.cache(a)}})}.call(this),function(){_.component("Luca.components.Toolbar")["extends"]("Luca.core.Container")["with"]({className:"luca-ui-toolbar",position:"bottom",initialize:function(a){return this.options=a!=null?a:{},Luca.core.Container.prototype.initialize.apply(this,arguments)},prepareComponents:function(){var a=this;return _(this.components).each(function(b){return b.container=a.el})},render:function(){return $(this.container).append(this.el)}})}.call(this),function(){_.component("Luca.components.CollectionInspector")["extends"]("Luca.View")["with"]({name:"collection_inspector"})}.call(this),function(){_.component("Luca.components.CollectionLoaderView")["extends"]("Luca.components.Template")["with"]({className:"luca-ui-collection-loader-view",template:"components/collection_loader_view",initialize:function(a){return this.options=a!=null?a:{},Luca.components.Template.prototype.initialize.apply(this,arguments),this.container||(this.container=$("body")),this.manager||(this.manager=Luca.CollectionManager.get()),this.setupBindings()},modalContainer:function(){return $("#progress-modal",this.el)},setupBindings:function(){var a=this;return this.manager.bind("collection_loaded",function(b){var c,d,e,f;return d=a.manager.loadedCollectionsCount(),f=a.manager.totalCollectionsCount(),e=parseInt(d/f*100),c=_.string.titleize(_.string.humanize(b)),a.modalContainer().find(".progress .bar").attr("style","width: "+e+"%;"),a.modalContainer().find(".message").html("Loaded "+c+"...")}),this.manager.bind("all_collections_loaded",function(){return a.modalContainer().find(".message").html("All done!"),_.delay(function(){return a.modalContainer().modal("hide")},400)})}})}.call(this),function(){_.component("Luca.components.Controller")["extends"]("Luca.containers.CardView")["with"]({initialize:function(a){var b;this.options=a,Luca.containers.CardView.prototype.initialize.apply(this,arguments),this.defaultCard||(this.defaultCard=(b=this.components[0])!=null?b.name:void 0);if(!this.defaultCard)throw"Controllers must specify a defaultCard property and/or the first component must have a name";return this.state=new Backbone.Model({active_section:this.defaultCard})},each:function(a){var b=this;return _(this.components).each(function(c){return a.apply(b,[c])})},"default":function(a){return this.navigate_to(this.defaultCard,a)},navigate_to:function(a,b){var c=this;return a||(a=this.defaultCard),this.activate(a,!1,function(a,d,e){c.state.set({active_section:e.name});if(_.isFunction(b))return b.apply(e)}),this.find(a)}})}.call(this),function(){_.component("Luca.components.DevelopmentConsole")["extends"]("Luca.View")["with"]({name:"development_console",className:"luca-ui-development-console",initialize:function(a){this.options=a!=null?a:{},Luca.View.prototype.initialize.apply(this,arguments);if(this.modal)return this.$el.addClass("luca-ui-modal")},beforeRender:function(){return this.$el.append(this.make("div",{"class":"console-inner"})),this.console_el=this.$(".console-inner"),this.console=this.console_el.console({promptLabel:"Coffee> ",animateScroll:!0,promptHistory:!0,autoFocus:!0,commandValidate:function(a){var b;b=!0,a===""&&(b=!1);try{CoffeeScript.compile(a)?b=!0:b=!1}catch(c){b=!1}return b},returnValue:function(a){return a==null?"undefined":(a!=null?a.toString():void 0)||""},parseLine:function(a){return a=_.string.strip(a),a=a.replace(/^return/," "),"return "+a},commandHandle:function(line){var compiled,ret;if(line==="")return;compiled=CoffeeScript.compile(this.parseLine(line));try{return ret=eval(compiled),this.returnValue(ret)}catch(error){return error.message.match(/circular structure to JSON/)?ret.toString():error.toString()}}})}})}.call(this),function(){_.component("Luca.fields.ButtonField")["extends"]("Luca.core.Field")["with"]({readOnly:!0,events:{"click input":"click_handler"},hooks:["button:click"],className:"luca-ui-field luca-ui-button-field",template:"fields/button_field",click_handler:function(a){var b,c;return b=c=$(a.currentTarget),this.trigger("button:click")},initialize:function(a){var b;this.options=a!=null?a:{},_.extend(this.options),_.bindAll(this,"click_handler"),Luca.core.Field.prototype.initialize.apply(this,arguments);if((b=this.icon_class)!=null?b.length:void 0)return this.template="fields/button_field_link"},afterInitialize:function(){this.input_id||(this.input_id=_.uniqueId("button")),this.input_name||(this.input_name=this.name||(this.name=this.input_id)),this.input_value||(this.input_value=this.label||(this.label=this.text)),this.input_type||(this.input_type="button"),this.input_class||(this.input_class=this["class"]),this.icon_class||(this.icon_class=""),this.icon_class.length&&!this.icon_class.match(/^icon-/)&&(this.icon_class="icon-"+this.icon_class);if(this.white)return this.icon_class+=" icon-white"},setValue:function(){return!0}})}.call(this),function(){_.component("Luca.fields.CheckboxArray")["extends"]("Luca.core.Field")["with"]({template:"fields/checkbox_array",events:{"click input":"clickHandler"},initialize:function(a){return this.options=a!=null?a:{},_.extend(this,this.options),_.extend(this,Luca.modules.Deferrable),_.bindAll(this,"populateCheckboxes","clickHandler","_updateModel"),Luca.core.Field.prototype.initialize.apply(this,arguments),this.input_id||(this.input_id=_.uniqueId("field")),this.input_name||(this.input_name=this.name),this.label||(this.label=this.name),this.valueField||(this.valueField="id"),this.displayField||(this.displayField="name"),this.selectedItems=[]},afterInitialize:function(a){this.options=a!=null?a:{};try{this.configure_collection()}catch(b){console.log("Error Configuring Collection",this,b.message)}return this.collection.bind("reset",this.populateCheckboxes)},afterRender:function(){var a,b;return((a=this.collection)!=null?(b=a.models)!=null?b.length:void 0:void 0)>0?this.populateCheckboxes():this.collection.trigger("reset")},clickHandler:function(a){var b;return b=a.target,b.checked?this.selectedItems.push(b.value):this.selectedItems.indexOf(b.value)!==-1&&(this.selectedItems=_.without(this.selectedItems,[b.value])),this._updateModel()},populateCheckboxes:function(){var a,b=this;return a=$(this.el).find(".controls"),a.empty(),_.isUndefined(this.getModel())||(this.selectedItems=this.getModel().get(this.name)),this.collection.each(function(c){var d,e,f;f=c.get(b.valueField),e=c.get(b.displayField),d=_.uniqueId("field"),a.append(Luca.templates["fields/checkbox_array_item"]({label:e,value:f,input_id:d,input_name:b.input_name}));if(b.selectedItems.indexOf(f)!==-1)return b.$("#"+d).attr("checked","checked")}),$(this.container).append(this.$el)},_updateModel:function(){var a;return a={},a[this.name]=this.selectedItems,this.getModel().set(a)}})}.call(this),function(){_.component("Luca.fields.CheckboxField")["extends"]("Luca.core.Field")["with"]({events:{"change input":"change_handler"},change_handler:function(a){var b,c;return b=c=$(a.currentTarget),this.trigger("on:change",this,a),b.checked===!0?this.trigger("checked"):this.trigger("unchecked")},className:"luca-ui-checkbox-field luca-ui-field",template:"fields/checkbox_field",hooks:["checked","unchecked"],initialize:function(a){return this.options=a!=null?a:{},_.extend(this,this.options),_.bindAll(this,"change_handler"),Luca.core.Field.prototype.initialize.apply(this,arguments)},afterInitialize:function(){return this.input_id||(this.input_id=_.uniqueId("field")),this.input_name||(this.input_name=this.name),this.input_value||(this.input_value=1),this.label||(this.label=this.name)},setValue:function(a){return this.input.attr("checked",a)},getValue:function(){return this.input.attr("checked")===!0}})}.call(this),function(){_.component("Luca.fields.FileUploadField")["extends"]("Luca.core.Field")["with"]({template:"fields/file_upload_field",initialize:function(a){return this.options=a!=null?a:{},Luca.core.Field.prototype.initialize.apply(this,arguments)},afterInitialize:function(){return this.input_id||(this.input_id=_.uniqueId("field")),this.input_name||(this.input_name=this.name),this.label||(this.label=this.name),this.helperText||(this.helperText="")}})}.call(this),function(){_.component("Luca.fields.HiddenField")["extends"]("Luca.core.Field")["with"]({template:"fields/hidden_field",initialize:function(a){return this.options=a!=null?a:{},Luca.core.Field.prototype.initialize.apply(this,arguments)},afterInitialize:function(){return this.input_id||(this.input_id=_.uniqueId("field")),this.input_name||(this.input_name=this.name),this.input_value||(this.input_value=this.value),this.label||(this.label=this.name)}})}.call(this),function(){_.component("Luca.fields.SelectField")["extends"]("Luca.core.Field")["with"]({events:{"change select":"change_handler"},hooks:["after:select"],className:"luca-ui-select-field luca-ui-field",template:"fields/select_field",includeBlank:!0,blankValue:"",blankText:"Select One",initialize:function(a){this.options=a!=null?a:{},_.extend(this,this.options),_.extend(this,Luca.modules.Deferrable),_.bindAll(this,"change_handler","populateOptions","beforeFetch"),Luca.core.Field.prototype.initialize.apply(this,arguments),this.input_id||(this.input_id=_.uniqueId("field")),this.input_name||(this.input_name=this.name),this.label||(this.label=this.name);if(_.isUndefined(this.retainValue))return this.retainValue=!0},afterInitialize:function(){var a;if((a=this.collection)!=null?a.data:void 0)this.valueField||(this.valueField="id"),this.displayField||(this.displayField="name"),this.parseData();try{this.configure_collection()}catch(b){console.log("Error Configuring Collection",this,b.message)}return this.collection.bind("before:fetch",this.beforeFetch),this.collection.bind("reset",this.populateOptions)},parseData:function(){var a=this;return this.collection.data=_(this.collection.data).map(function(b){var c;return _.isArray(b)?(c={},c[a.valueField]=b[0],c[a.displayField]=b[1],c):b})},afterRender:function(){var a,b;return this.input=$("select",this.el),((a=this.collection)!=null?(b=a.models)!=null?b.length:void 0:void 0)>0?this.populateOptions():this.collection.trigger("reset")},setValue:function(a){return this.currentValue=a,Luca.core.Field.prototype.setValue.apply(this,arguments)},beforeFetch:function(){return this.resetOptions()},change_handler:function(a){return this.trigger("on:change",this,a)},resetOptions:function(){this.input.html("");if(this.includeBlank)return this.input.append("<option value='"+this.blankValue+"'>"+this.blankText+"</option>")},populateOptions:function(){var a,b=this;return this.resetOptions(),((a=this.collection)!=null?a.each:void 0)!=null&&this.collection.each(function(a){var c,d,e,f;return f=a.get(b.valueField),c=a.get(b.displayField),b.selected&&f===b.selected&&(e="selected"),d="<option "+e+" value='"+f+"'>"+c+"</option>",b.input.append(d)}),this.trigger("after:populate:options",this),this.setValue(this.currentValue)}})}.call(this),function(){_.component("Luca.fields.TextAreaField")["extends"]("Luca.core.Field")["with"]({events:{"keydown input":"keydown_handler","blur input":"blur_handler","focus input":"focus_handler"},template:"fields/text_area_field",height:"200px",width:"90%",initialize:function(a){return this.options=a!=null?a:{},_.bindAll(this,"keydown_handler"),Luca.core.Field.prototype.initialize.apply(this,arguments),this.input_id||(this.input_id=_.uniqueId("field")),this.input_name||(this.input_name=this.name),this.label||(this.label=this.name),this.input_class||(this.input_class=this["class"]),this.inputStyles||(this.inputStyles="height:"+this.height+";width:"+this.width)},setValue:function(a){return $(this.field()).val(a)},getValue:function(){return $(this.field()).val()},field:function(){return this.input=$("textarea#"+this.input_id,this.el)},keydown_handler:function(a){var b,c;return b=c=$(a.currentTarget)},blur_handler:function(a){var b,c;return b=c=$(a.currentTarget)},focus_handler:function(a){var b,c;return b=c=$(a.currentTarget)}})}.call(this),function(){_.component("Luca.fields.TextField")["extends"]("Luca.core.Field")["with"]({events:{"keydown input":"keydown_handler","blur input":"blur_handler","focus input":"focus_handler","change input":"change_handler"},template:"fields/text_field",initialize:function(a){this.options=a!=null?a:{},_.bindAll(this,"keydown_handler","blur_handler","focus_handler"),Luca.core.Field.prototype.initialize.apply(this,arguments),this.input_id||(this.input_id=_.uniqueId("field")),this.input_name||(this.input_name=this.name),this.label||(this.label=this.name),this.input_class||(this.input_class=this["class"]),this.prepend&&(this.$el.addClass("input-prepend"),this.addOn=this.prepend);if(this.append)return this.$el.addClass("input-append"),this.addOn=this.append},keydown_handler:_.throttle(function(a){return this.change_handler.apply(this,arguments)},300),blur_handler:function(a){var b,c;return b=c=$(a.currentTarget)},focus_handler:function(a){var b,c;return b=c=$(a.currentTarget)},change_handler:function(a){return this.trigger("on:change",this,a)}})}.call(this),function(){_.component("Luca.fields.TypeAheadField")["extends"]("Luca.fields.TextField")["with"]({className:"luca-ui-field",afterInitialize:function(){return this.input_id||(this.input_id=_.uniqueId("field")),this.input_name||(this.input_name=this.name),this.label||(this.label=this.name)}})}.call(this),function(){_.component("Luca.components.FormButtonToolbar")["extends"]("Luca.components.Toolbar")["with"]({className:"luca-ui-form-toolbar form-actions",position:"bottom",includeReset:!1,render:function(){return $(this.container).append(this.el)},initialize:function(a){this.options=a!=null?a:{},Luca.components.Toolbar.prototype.initialize.apply(this,arguments),this.components=[{ctype:"button_field",label:"Submit","class":"btn submit-button"}];if(this.includeReset)return this.components.push({ctype:"button_field",label:"Reset","class":"btn reset-button"})}})}.call(this),function(){_.component("Luca.components.FormView")["extends"]("Luca.core.Container")["with"]({tagName:"form",className:"luca-ui-form-view",hooks:["before:submit","before:reset","before:load","before:load:new","before:load:existing","after:submit","after:reset","after:load","after:load:new","after:load:existing","after:submit:success","after:submit:fatal_error","after:submit:error"],events:{"click .submit-button":"submitHandler","click .reset-button":"resetHandler"},toolbar:!0,initialize:function(a){return this.options=a!=null?a:{},Luca.core.Container.prototype.initialize.apply(this,arguments),_.bindAll(this,"submitHandler","resetHandler","renderToolbars"),this.state||(this.state=new Backbone.Model),this.setupHooks(this.hooks),this.legend||(this.legend=""),this.configureToolbars(),this.applyStyles()},addBootstrapFormControls:function(){var a=this;return this.bind("after:render",function(){var b;return b=a.$(".toolbar-container.bottom"),b.addClass("form-controls"),b.html(a.formControlsTemplate||Luca.templates["components/bootstrap_form_controls"](a))})},applyStyles:function(){Luca.enableBootstrap&&this.applyBootstrapStyles(),this.labelAlign&&this.$el.addClass("label-align-"+this.labelAlign);if(this.fieldLayoutClass)return this.$el.addClass(this.fieldLayoutClass)},applyBootstrapStyles:function(){this.labelAlign==="left"&&(this.inlineForm=!0),this.well&&this.$el.addClass("well"),this.searchForm&&this.$el.addClass("form-search"),this.horizontalForm&&this.$el.addClass("form-horizontal");if(this.inlineForm)return this.$el.addClass("form-inline")},configureToolbars:function(){if(Luca.enableBootstrap&&this.toolbar===!0)return this.addBootstrapFormControls();this.toolbar===!0&&(this.toolbars=[{ctype:"form_button_toolbar",includeReset:!0,position:"bottom"}]);if(this.toolbars&&this.toolbars.length)return this.bind("after:render",_.once(this.renderToolbars))},resetHandler:function(a){var b,c;return b=c=$(a.currentTarget),this.trigger("before:reset",this),this.reset(),this.trigger("after:reset",this)},submitHandler:function(a){var b,c;return b=c=$(a.currentTarget),this.trigger("before:submit",this),this.submit()},beforeLayout:function(){var a;return(a=Luca.core.Container.prototype.beforeLayout)!=null&&a.apply(this,arguments),this.$el.html(Luca.templates["components/form_view"](this))},prepareComponents:function(){var a;return a=$(".form-view-body",this.el),_(this.components).each(function(b){return b.container=a})},afterComponents:function(){var a,b=this;return(a=Luca.core.Container.prototype.afterComponents)!=null&&a.apply(this,arguments),this.eachField(function(a){return a.getForm=function(){return b},a.getModel=function(){return b.currentModel()}})},render:function(){return $(this.container).append(this.$el),this},wrapper:function(){return this.$el.parents(".luca-ui-form-view-wrapper")},toolbarContainers:function(a){return a==null&&(a="bottom"),$(".toolbar-container."+a,this.wrapper()).first()},renderToolbars:function(){var a=this;return _(this.toolbars).each(function(b){return b.container=$("#"+a.cid+"-"+b.position+"-toolbar-container"),b=Luca.util.lazyComponent(b),b.render()})},eachField:function(a){return _(this.getFields()).map(a)},getField:function(a){return _(this.getFields("name",a)).first()},getFields:function(a,b){var c;return c=this.select("isField",!0,!0),c.length>0&&a&&b&&(c=_(c).select(function(c){var d,e;return d=c[a],d==null?!1:(e=_.isFunction(d)?d():d,b===e)})),c},loadModel:function(a){var b,c,d,e;this.current_model=a,d=this,c=this.getFields(),this.trigger("before:load",this,this.current_model),this.current_model&&((e=this.current_model.beforeFormLoad)!=null&&e.apply(this.current_model,this),b="before:load:"+(this.current_model.isNew()?"new":"existing"),this.trigger(b,this,this.current_model)),this.setValues(this.current_model),this.trigger("after:load",this,this.current_model);if(this.current_model)return this.trigger("after:load:"+(this.current_model.isNew()?"new":"existing"),this,this.current_model)},reset:function(){if(this.current_model!=null)return this.loadModel(this.current_model)},clear:function(){var a=this;return this.current_model=this.defaultModel!=null?this.defaultModel():void 0,_(this.getFields()).each(function(b){try{return b.setValue("")}catch(c){return console.log("Error Clearing",a,b)}})},setValues:function(a,b){var c,d=this;b==null&&(b={}),a||(a=this.currentModel()),c=this.getFields(),_(c).each(function(b){var c,e;c=b.input_name||b.name,(e=a[c])&&_.isFunction(e)&&(e=e.apply(d)),!e&&Luca.isBackboneModel(a)&&(e=a.get(c));if(b.readOnly!==!0)return b!=null?b.setValue(e):void 0});if(b.silent!=null!=1)return this.syncFormWithModel()},getValues:function(a){return a==null&&(a={}),a.reject_blank==null&&(a.reject_blank=!0),a.skip_buttons==null&&(a.skip_buttons=!0),_(this.getFields()).inject(function(b,c){var d,e,f;return f=c.getValue(),d=c.input_name||c.name,e=!1,a.skip_buttons&&c.ctype==="button_field"&&(e=!0),_.string.isBlank(f)&&(a.reject_blank&&!c.send_blanks&&(e=!0),c.input_name==="id"&&(e=!0)),e!==!0&&(b[d]=f),b},{})},submit_success_handler:function(a,b,c){return this.trigger("after:submit",this,a,b),b&&(b!=null?b.success:void 0)===!0?this.trigger("after:submit:success",this,a,b):this.trigger("after:submit:error",this,a,b)},submit_fatal_error_handler:function(a,b,c){return this.trigger("after:submit",this,a,b),this.trigger("after:submit:fatal_error",this,a,b)},submit:function(a,b){a==null&&(a=!0),b==null&&(b={}),_.bindAll(this,"submit_success_handler","submit_fatal_error_handler"),b.success||(b.success=this.submit_success_handler),b.error||(b.error=this.submit_fatal_error_handler),this.syncFormWithModel();if(!a)return;return this.current_model.save(this.current_model.toJSON(),b)},currentModel:function(a){return a==null&&(a={}),(a===!0||(a!=null?a.refresh:void 0)===!0)&&this.syncFormWithModel(),this.current_model},syncFormWithModel:function(){var a;return(a=this.current_model)!=null?a.set(this.getValues()):void 0},setLegend:function(a){return this.legend=a,$("fieldset legend",this.el).first().html(this.legend)}})}.call(this),function(){_.component("Luca.components.GridView").extend("Luca.View")["with"]({autoBindEventHandlers:!0,events:{"dblclick table tbody tr":"double_click_handler","click table tbody tr":"click_handler"},className:"luca-ui-g-view",rowClass:"luca-ui-g-row"
3
- ,wrapperClass:"luca-ui-g-view-wrapper",additionalWrapperClasses:[],wrapperStyles:{},scrollable:!0,emptyText:"No Results To display.",tableStyle:"striped",defaultHeight:285,defaultWidth:756,maxWidth:void 0,hooks:["before:grid:render","before:render:header","before:render:row","after:grid:render","row:double:click","row:click","after:collection:load"],initialize:function(a){var b=this;return this.options=a!=null?a:{},_.extend(this,this.options),_.extend(this,Luca.modules.Deferrable),Luca.View.prototype.initialize.apply(this,arguments),this.configure_collection(),this.collection.bind("reset",function(a){return b.refresh(),b.trigger("after:collection:load",a)}),this.collection.bind("change",function(a){var c,d;return d=b.getRowEl(a.id||a.get("id")||a.cid),c=b.render_row(a,b.indexOf(a),{cellsOnly:!0}),$(d).html(c)})},beforeRender:function(){return this.trigger("before:grid:render",this),this.$el.html(Luca.templates["components/grid_view"]()),this.table=this.$("table.luca-ui-g-view"),this.header=this.$("thead"),this.body=this.$("tbody"),this.footer=this.$("tfoot"),this.wrapper=this.$("."+this.wrapperClass),this.applyCssClasses(),this.scrollable&&this.setDimensions(),this.renderHeader(),this.emptyMessage(),this.renderToolbars(),$(this.container).append(this.$el)},applyCssClasses:function(){var a,b=this;return this.scrollable&&this.$el.addClass("scrollable-g-view"),_(this.additionalWrapperClasses).each(function(a){var c;return(c=b.wrapper)!=null?c.addClass(a):void 0}),Luca.enableBootstrap&&this.table.addClass("table"),_((a=this.tableStyle)!=null?a.split(" "):void 0).each(function(a){return b.table.addClass("table-"+a)})},toolbarContainers:function(a){return a==null&&(a="bottom"),$(".toolbar-container."+a,this.el)},renderToolbars:function(){var a=this;return _(this.toolbars).each(function(b){return b=Luca.util.lazyComponent(b),b.container=a.toolbarContainers(b.position),b.render()})},setDimensions:function(a){var b=this;return this.height||(this.height=this.defaultHeight),this.$(".luca-ui-g-view-body").height(this.height),this.$("tbody.scrollable").height(this.height-23),this.container_width=function(){return $(b.container).width()}(),this.width||(this.width=this.container_width>0?this.container_width:this.defaultWidth),this.width=_([this.width,this.maxWidth||this.width]).max(),this.$(".luca-ui-g-view-body").width(this.width),this.$(".luca-ui-g-view-body table").width(this.width),this.setDefaultColumnWidths()},resize:function(a){var b,c,d=this;b=a-this.width,this.width=a,this.$(".luca-ui-g-view-body").width(this.width),this.$(".luca-ui-g-view-body table").width(this.width);if(this.columns.length>0)return c=b/this.columns.length,_(this.columns).each(function(a,b){var e;return e=$(".column-"+b,d.el),e.width(a.width=a.width+c)})},padLastColumn:function(){var a,b;a=_(this.columns).inject(function(a,b){return a=b.width+a},0),b=this.width-a;if(b>0)return this.lastColumn().width+=b},setDefaultColumnWidths:function(){var a;return a=this.columns.length>0?this.width/this.columns.length:200,_(this.columns).each(function(b){return parseInt(b.width||(b.width=a))}),this.padLastColumn()},lastColumn:function(){return this.columns[this.columns.length-1]},afterRender:function(){return this.refresh(),this.trigger("after:grid:render",this)},emptyMessage:function(a){return a==null&&(a=""),a||(a=this.emptyText),this.body.html(""),this.body.append(Luca.templates["components/grid_view_empty_text"]({colspan:this.columns.length,text:a}))},refresh:function(){var a=this;this.body.html(""),this.collection.each(function(b,c){return a.render_row.apply(a,[b,c])});if(this.collection.models.length===0)return this.emptyMessage()},ifLoaded:function(a,b){return b||(b=this),a||(a=function(){return!0}),this.collection.ifLoaded(a,b)},applyFilter:function(a,b){return b==null&&(b={auto:!0,refresh:!0}),this.collection.applyFilter(a,b)},renderHeader:function(){var a,b=this;return this.trigger("before:render:header"),a=_(this.columns).map(function(a,b){var c;return c=a.width?"width:"+a.width+"px;":"","<th style='"+c+"' class='column-"+b+"'>"+a.header+"</th>"}),this.header.append("<tr>"+a+"</tr>")},getRowEl:function(a){return this.$("[data-record-id="+a+"]","table")},render_row:function(a,b,c){var d,e,f,g,h,i,j=this;return c==null&&(c={}),h=this.rowClass,g=(a!=null?a.get:void 0)&&(a!=null?a.attributes:void 0)?a.get("id"):"",this.trigger("before:render:row",a,b),e=_(this.columns).map(function(b,c){var d,e,f;return f=j.cell_renderer(a,b,c),e=b.width?"width:"+b.width+"px;":"",d=_.isUndefined(f)?"":f,"<td style='"+e+"' class='column-"+c+"'>"+d+"</td>"}),c.cellsOnly?e:(d="",this.alternateRowClasses&&(d=b%2===0?"even":"odd"),f="<tr data-record-id='"+g+"' data-row-index='"+b+"' class='"+h+" "+d+"' id='row-"+b+"'>"+e+"</tr>",c.contentOnly===!0?f:(i=this.body)!=null?i.append(f):void 0)},cell_renderer:function(a,b,c){var d;return _.isFunction(b.renderer)?b.renderer.apply(this,[a,b,c]):b.data.match(/\w+\.\w+/)?(d=a.attributes||a,Luca.util.nestedValue(b.data,d)):(typeof a.get=="function"?a.get(b.data):void 0)||a[b.data]},double_click_handler:function(a){var b,c,d,e;return b=c=$(a.currentTarget),e=c.data("row-index"),d=this.collection.at(e),this.trigger("row:double:click",this,d,e)},click_handler:function(a){var b,c,d,e;return b=c=$(a.currentTarget),e=c.data("row-index"),d=this.collection.at(e),this.trigger("row:click",this,d,e),$("."+this.rowClass,this.body).removeClass("selected-row"),b.addClass("selected-row")}})}.call(this),function(){_.component("Luca.components.RecordManager").extend("Luca.containers.CardView")["with"]({events:{"click .record-manager-grid .edit-link":"edit_handler","click .record-manager-filter .filter-button":"filter_handler","click .record-manager-filter .reset-button":"reset_filter_handler","click .add-button":"add_handler","click .refresh-button":"filter_handler","click .back-to-search-button":"back_to_search_handler"},record_manager:!0,initialize:function(a){var b=this;this.options=a!=null?a:{},Luca.containers.CardView.prototype.initialize.apply(this,arguments);if(!this.name)throw"Record Managers must specify a name";return _.bindAll(this,"add_handler","edit_handler","filter_handler","reset_filter_handler"),this.filterConfig&&_.extend(this.components[0][0],this.filterConfig),this.gridConfig&&_.extend(this.components[0][1],this.gridConfig),this.editorConfig&&_.extend(this.components[1][0],this.editorConfig),this.bind("after:card:switch",function(){b.activeCard===0&&b.trigger("activation:search",b);if(b.activeCard===1)return b.trigger("activation:editor",b)})},components:[{ctype:"split_view",relayFirstActivation:!0,components:[{ctype:"form_view"},{ctype:"grid_view"}]},{ctype:"form_view"}],getSearch:function(a,b){return a==null&&(a=!1),b==null&&(b=!0),a===!0&&this.activate(0),b===!0&&this.getEditor().clear(),_.first(this.components)},getFilter:function(){return _.first(this.getSearch().components)},getGrid:function(){return _.last(this.getSearch().components)},getCollection:function(){return this.getGrid().collection},getEditor:function(a,b){var c=this;return a==null&&(a=!1),b==null&&(b=!1),a===!0&&this.activate(1,function(a,b,c){return c.reset()}),_.last(this.components)},beforeRender:function(){var a;return this.$el.addClass(""+this.resource+"-manager"),(a=Luca.containers.CardView.prototype.beforeRender)!=null&&a.apply(this,arguments),this.$el.addClass(""+this.resource+" record-manager"),this.$el.data("resource",this.resource),$(this.getGrid().el).addClass(""+this.resource+" record-manager-grid"),$(this.getFilter().el).addClass(""+this.resource+" record-manager-filter"),$(this.getEditor().el).addClass(""+this.resource+" record-manager-editor")},afterRender:function(){var a,b,c,d,e,f,g=this;return(f=Luca.containers.CardView.prototype.afterRender)!=null&&f.apply(this,arguments),e=this,d=this.getGrid(),c=this.getFilter(),b=this.getEditor(),a=this.getCollection(),d.bind("row:double:click",function(a,c,d){return e.getEditor(!0),b.loadModel(c)}),b.bind("before:submit",function(){return $(".form-view-flash-container",g.el).html(""),$(".form-view-body",g.el).spin("large")}),b.bind("after:submit",function(){return $(".form-view-body",g.el).spin(!1)}),b.bind("after:submit:fatal_error",function(){return $(".form-view-flash-container",g.el).append("<li class='error'>There was an internal server error saving this record. Please contact developers@benchprep.com to report this error.</li>"),$(".form-view-body",g.el).spin(!1)}),b.bind("after:submit:error",function(a,b,c){return _(c.errors).each(function(a){return $(".form-view-flash-container",g.el).append("<li class='error'>"+a+"</li>")})}),b.bind("after:submit:success",function(a,b,c){return $(".form-view-flash-container",g.el).append("<li class='success'>Successfully Saved Record</li>"),b.set(c.result),a.loadModel(b),d.refresh(),_.delay(function(){return $(".form-view-flash-container li.success",g.el).fadeOut(1e3),$(".form-view-flash-container",g.el).html("")},4e3)}),c.eachComponent(function(a){try{return a.bind("on:change",g.filter_handler)}catch(b){return}})},firstActivation:function(){return this.getGrid().trigger("first:activation",this,this.getGrid()),this.getFilter().trigger("first:activation",this,this.getGrid())},reload:function(){var a,b,c,d;return d=this,c=this.getGrid(),b=this.getFilter(),a=this.getEditor(),b.clear(),c.applyFilter()},manageRecord:function(a){var b,c=this;return b=this.getCollection().get(a),b?this.loadModel(b):(console.log("Could Not Find Model, building and fetching"),b=this.buildModel(),b.set({id:a},{silent:!0}),b.fetch({success:function(a,b){return c.loadModel(a)}}))},loadModel:function(a){return this.current_model=a,this.getEditor(!0).loadModel(this.current_model),this.trigger("model:loaded",this.current_model)},currentModel:function(){return this.getEditor(!1).currentModel()},buildModel:function(){var a,b,c;return b=this.getEditor(!1),a=this.getCollection(),a.add([{}],{silent:!0,at:0}),c=a.at(0)},createModel:function(){return this.loadModel(this.buildModel())},reset_filter_handler:function(a){return this.getFilter().clear(),this.getGrid().applyFilter(this.getFilter().getValues())},filter_handler:function(a){return this.getGrid().applyFilter(this.getFilter().getValues())},edit_handler:function(a){var b,c,d,e;return b=d=$(a.currentTarget),e=d.parents("tr").data("record-id"),e&&(c=this.getGrid().collection.get(e)),c||(c=this.getGrid().collection.at(row_index))},add_handler:function(a){var b,c,d;return b=c=$(a.currentTarget),d=c.parents(".record-manager").eq(0).data("resource")},destroy_handler:function(a){},back_to_search_handler:function(){}})}.call(this),function(){Luca.Router=Backbone.Router.extend({routes:{"":"default"},initialize:function(a){var b=this;return this.options=a,_.extend(this,this.options),this.routeHandlers=_(this.routes).values(),_(this.routeHandlers).each(function(a){return b.bind("route:"+a,function(){return b.trigger.apply(b,["change:navigation",a].concat(_(arguments).flatten()))})})},navigate:function(a,b){return b==null&&(b=!1),Backbone.Router.prototype.navigate.apply(this,arguments),this.buildPathFrom(Backbone.history.getFragment())},buildPathFrom:function(a){var b=this;return _(this.routes).each(function(c,d){var e,f;f=b._routeToRegExp(d);if(f.test(a))return e=b._extractParameters(f,a),b.trigger.apply(b,["change:navigation",c].concat(e))})}})}.call(this),function(){}.call(this);
1
+ (function(){var DefineProxy;window.Luca={VERSION:"0.8.599",core:{},containers:{},components:{},modules:{},util:{},fields:{},component_cache:{cid_index:{},name_index:{}},registry:{classes:{},namespaces:["Luca.containers","Luca.components"]}},Luca.enableGlobalObserver=!1,Luca.enableBootstrap=!0,Luca.isBackboneModel=function(a){return _.isFunction(a!=null?a.set:void 0)&&_.isFunction(a!=null?a.get:void 0)&&_.isObject(a!=null?a.attributes:void 0)},Luca.isBackboneView=function(a){return _.isFunction(a!=null?a.render:void 0)&&!_.isUndefined(a!=null?a.el:void 0)},Luca.isBackboneCollection=function(a){return _.isFunction(a!=null?a.fetch:void 0)&&_.isFunction(a!=null?a.reset:void 0)},Luca.registry.addNamespace=function(a){return Luca.registry.namespaces.push(a),Luca.registry.namespaces=_(Luca.registry.namespaces).uniq()},Luca.cache=function(a,b){var c;return b!=null&&(Luca.component_cache.cid_index[a]=b),b=Luca.component_cache.cid_index[a],(b!=null?b.component_name:void 0)!=null?Luca.component_cache.name_index[b.component_name]=b.cid:(b!=null?b.name:void 0)!=null&&(Luca.component_cache.name_index[b.name]=b.cid),b!=null?b:(c=Luca.component_cache.name_index[a],Luca.component_cache.cid_index[c])},Luca.util.resolve=function(a,b){return _(a.split(/\./)).inject(function(a,b){return a=a!=null?a[b]:void 0},b)},Luca.util.nestedValue=Luca.util.resolve,Luca.util.classify=function(a){return a==null&&(a=""),_.string.camelize(_.string.capitalize(a))},Luca.registry.lookup=function(a){var b,c,d,e;return b=Luca.registry.classes[a],b!=null?b:(c=Luca.util.classify(a),d=_(Luca.registry.namespaces).map(function(a){return Luca.util.nestedValue(a,window||global)}),(e=_(d).chain().map(function(a){return a[c]}).compact().value())!=null?e[0]:void 0)},Luca.util.lazyComponent=function(config){var componentClass,constructor,ctype;ctype=config.ctype||config.type,componentClass=Luca.registry.lookup(ctype);if(!componentClass)throw"Invalid Component Type: "+ctype+". Did you forget to register it?";return constructor=eval(componentClass),new constructor(config)},Luca.register=function(a,b){var c;return c=Luca.registry.classes[a],c!=null&&window.TestRun==null?console.log("Attempting to register component with the signature "+a+". Already exists"):Luca.registry.classes[a]=b},Luca.available_templates=function(a){var b;return a==null&&(a=""),b=_(Luca.templates).keys(),a.length>0?_(b).select(function(b){return b.match(a)}):b},Luca.util.isIE=function(){try{return Object.defineProperty({},"",{}),!1}catch(a){return!0}},Luca.template=function(a,b){var c,d,e,f,g;window.JST||(window.JST={}),d=(g=Luca.templates)!=null?g[a]:void 0,c=typeof JST!="undefined"&&JST!==null?JST[a]:void 0,d==null&&c==null&&(e=new RegExp(""+a+"$"),d=_(Luca.templates).detect(function(a,b){return e.exec(b)}),c=_(JST).detect(function(a,b){return e.exec(b)}));if(!d&&!c)throw"Could not find template with "+a;return f=d||c,b!=null?f(b):f},DefineProxy=function(){function DefineProxy(a){var b;this.namespace=window||global,this.componentId=this.componentName=a,a.match(/\./)&&(this.namespaced=!0,b=a.split("."),this.componentId=b.pop(),this.namespace=b.join("."),Luca.registry.addNamespace(b.join(".")))}return DefineProxy.prototype["in"]=function(a){return this.namespace=a,this},DefineProxy.prototype.from=function(a){return this.superClassName=a,this},DefineProxy.prototype["extends"]=function(a){return this.superClassName=a,this},DefineProxy.prototype.extend=function(a){return this.superClassName=a,this},DefineProxy.prototype["with"]=function(properties){var at;return at=this.namespaced?Luca.util.resolve(this.namespace,window||global):window||global,this.namespaced&&_.isUndefined(at)&&(eval("window."+this.namespace+" = {}"),at=Luca.util.resolve(this.namespace,window||global)),at[this.componentId]=Luca.extend(this.superClassName,this.componentName,properties),Luca.register(_.string.underscored(this.componentId),this.componentName),at[this.componentId]},DefineProxy}(),Luca.define=function(a){return new DefineProxy(a)},Luca.component=Luca.define,Luca.extend=function(a,b,c){var d;c==null&&(c={}),d=Luca.util.resolve(a,window||global);if(!_.isFunction(d!=null?d.extend:void 0))throw""+a+" is not a valid component to extend from";return c._className=b,c._superClass=function(){return d._className||(d._className=a),d},d.extend(c)},_.mixin({component:Luca.define}),$(function(){return $("body").addClass("luca-ui-enabled")}())}).call(this),function(){Luca.modules.Deferrable={configure_collection:function(a){var b,c,d;a==null&&(a=!0);if(!this.collection)return;_.isString(this.collection)&&(b=(c=Luca.CollectionManager)!=null?c.get():void 0)&&(this.collection=b.getOrCreate(this.collection)),this.collection&&_.isFunction(this.collection.fetch)&&_.isFunction(this.collection.reset)||(this.collection=new Luca.Collection(this.collection.initial_set,this.collection));if((d=this.collection)!=null?d.deferrable_trigger:void 0)this.deferrable_trigger=this.collection.deferrable_trigger;if(a)return this.deferrable=this.collection}}}.call(this),function(){Luca.LocalStore=function(){function a(a){var b;this.name=a,b=localStorage.getItem(this.name),this.data=b&&JSON.parse(b)||{}}return a.prototype.guid=function(){var a;return a=function(){return((1+Math.random())*65536|0).toString(16).substring(1)},a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},a.prototype.save=function(){return localStorage.setItem(this.name,JSON.stringify(this.data))},a.prototype.create=function(a){return a.id||(a.id=a.attribtues.id=this.guid()),this.data[a.id]=a,this.save(),a},a.prototype.update=function(a){return this.data[a.id]=a,this.save(),a},a.prototype.find=function(a){return this.data[a.id]},a.prototype.findAll=function(){return _.values(this.data)},a.prototype.destroy=function(a){return delete this.data[a.id],this.save(),a},a}(),Backbone.LocalSync=function(a,b,c){var d,e;return e=b.localStorage||b.collection.localStorage,d=function(){switch(a){case"read":return b.id?e.find(b):e.findAll();case"create":return e.create(b);case"update":return e.update(b);case"delete":return e.destroy(b)}}(),d?c.success(d):c.error("Record not found")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["components/bootstrap_form_controls"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<div class='form-actions'>\n <a class='btn btn-primary submit-button'>\n <i class='icon-ok icon-white'></i>\n Save Changes\n </a>\n <a class='btn reset-button cancel-button'>\n <i class='icon-remove'></i>\n Cancel\n </a>\n</div>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["components/collection_loader_view"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<div class='modal' id='progress-model' stype='display: none;'>\n <div class='progress progress-info progress-striped active'>\n <div class='bar' style='width: 0%;'></div>\n </div>\n <div class='message'>\n Initializing...\n </div>\n</div>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["components/form_view"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<div class='luca-ui-form-view-wrapper' id='",cid,"-wrapper'>\n <div class='form-view-header'>\n <div class='toolbar-container top' id='",cid,"-top-toolbar-container'></div>\n </div>\n "),legend?__p.push("\n <fieldset>\n <legend>\n ",legend,"\n </legend>\n <div class='form-view-flash-container'></div>\n <div class='form-view-body'></div>\n </fieldset>\n "):__p.push("\n <ul class='form-view-flash-container'></ul>\n <div class='form-view-body'></div>\n "),__p.push("\n <div class='form-view-footer'>\n <div class='toolbar-container bottom' id='",cid,"-bottom-toolbar-container'></div>\n </div>\n</div>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["components/grid_view"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<div class='luca-ui-g-view-wrapper'>\n <div class='g-view-header'>\n <div class='toolbar-container top'></div>\n </div>\n <div class='luca-ui-g-view-body'>\n <table cellpadding='0' cellspacing='0' class='luca-ui-g-view scrollable-table' width='100%'>\n <thead class='fixed'></thead>\n <tbody class='scrollable'></tbody>\n </table>\n </div>\n <div class='luca-ui-g-view-footer'>\n <div class='toolbar-container bottom'></div>\n </div>\n</div>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["components/grid_view_empty_text"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<div class='empty-text-wrapper'>\n <p>\n ",text,"\n </p>\n</div>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["containers/basic"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<div class='",classes,"' id='",id,"' style='",style,"'></div>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["containers/tab_selector_container"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{}){__p.push("<div class='tab-selector-container' id='",cid,"-tab-selector'>\n <ul class='nav nav-tabs' id='",cid,"-tabs-nav'>\n ");for(var i=0;i<components.length;i++){__p.push("\n ");var component=components[i];__p.push("\n <li class='tab-selector' data-target='",i,"'>\n <a data-target='",i,"'>\n ",component.title,"\n </a>\n </li>\n ")}__p.push("\n </ul>\n</div>\n")}return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["containers/tab_view"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<div class='tab-content' id='",cid,"-tab-view-content'></div>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["containers/toolbar_wrapper"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<div class='luca-ui-toolbar-wrapper' id='",id,"'></div>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/button_field"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<label>&nbsp</label>\n<input class='btn ",input_class,"' id='",input_id,"' style='",inputStyles,"' type='",input_type,"' value='",input_value,"' />\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/button_field_link"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<a class='btn ",input_class,"'>\n "),icon_class.length&&__p.push("\n <i class='",icon_class,"'></i>\n "),__p.push("\n ",input_value,"\n</a>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/checkbox_array"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<div class='form-horizontal'>\n <div class='control-group'>\n <label for='",input_id,"'>\n ",label,"\n </label>\n <div class='controls'></div>\n </div>\n</div>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/checkbox_array_item"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<label for='",input_id,"'>\n <input id='",input_id,"' name='",input_name,"' type='checkbox' value='",value,"' />\n ",label,"\n</label>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/checkbox_field"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<label for='",input_id,"'>\n ",label,"\n <input name='",input_name,"' style='",inputStyles,"' type='checkbox' value='",input_value,"' />\n</label>\n"),helperText&&__p.push("\n<p class='helper-text help-block'>\n ",helperText,"\n</p>\n"),__p.push("\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/file_upload_field"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<label for='",input_id,"'>\n ",label,"\n</label>\n<input id='",input_id,"' name='",input_name,"' style='",inputStyles,"' type='file' />\n"),helperText&&__p.push("\n<p class='helper-text help-block'>\n ",helperText,"\n</p>\n"),__p.push("\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/hidden_field"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<input id='",input_id,"' name='",input_name,"' type='hidden' value='",input_value,"' />\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/select_field"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<label for='",input_id,"'>\n ",label,"\n</label>\n<select id='",input_id,"' name='",input_name,"' style='",inputStyles,"'></select>\n"),helperText&&__p.push("\n<p class='helper-text help-block'>\n ",helperText,"\n</p>\n"),__p.push("\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/text_area_field"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<label for='",input_id,"'>\n ",label,"\n</label>\n<textarea class='",input_class,"' id='",input_id,"' name='",input_name,"' style='",inputStyles,"'></textarea>\n"),helperText&&__p.push("\n<p class='helper-text help-block'>\n ",helperText,"\n</p>\n"),__p.push("\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["fields/text_field"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<label class='control-label' for='",input_id,"'>\n ",label,"\n</label>\n"),typeof addOn!="undefined"&&__p.push("\n<span class='add-on'>\n ",addOn,"\n</span>\n"),__p.push("\n<input class='",input_class,"' id='",input_id,"' name='",input_name,"' placeholder='",placeHolder,"' style='",inputStyles,"' type='text' />\n"),helperText&&__p.push("\n<p class='helper-text help-block'>\n ",helperText,"\n</p>\n"),__p.push("\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["sample/contents"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("<p>Sample Contents</p>\n");return __p.join("")}}.call(this),function(){Luca.templates||(Luca.templates={}),Luca.templates["sample/welcome"]=function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments)};with(obj||{})__p.push("welcome.luca\n");return __p.join("")}}.call(this),function(){var a=Array.prototype.slice;Luca.Observer=function(){function b(b){var c=this;this.options=b!=null?b:{},_.extend(this,Backbone.Events),this.type=this.options.type,this.options.debugAll&&this.bind("event",function(){var b,d;return d=arguments[0],b=2<=arguments.length?a.call(arguments,1):[],console.log("Observed "+c.type+" "+(d.name||d.id||d.cid),d,_(b).flatten())})}return b.prototype.relay=function(){var b,c;return c=arguments[0],b=2<=arguments.length?a.call(arguments,1):[],this.trigger("event",c,b),this.trigger("event:"+b[0],c,b.slice(1))},b}(),Luca.Observer.enableObservers=function(a){return a==null&&(a={}),Luca.enableGlobalObserver=!0,Luca.ViewObserver=new Luca.Observer(_.extend(a,{type:"view"})),Luca.CollectionObserver=new Luca.Observer(_.extend(a,{type:"collection"}))}}.call(this),function(){Luca.View=Backbone.View.extend({base:"Luca.View"}),Luca.View.originalExtend=Backbone.View.extend,Luca.View.extend=function(a){var b;return b=a.render,b||(b=function(){var a;return a=_.isFunction(this.container)?this.container():this.container,!$(a)||!this.$el?this:($(a).append(this.$el),this)}),a.render=function(){var a=this;return this.layoutTemplate!=null&&this.$el.html(),this.deferrable?(this.trigger("before:render",this),this.deferrable.bind(this.deferrable_event,_.once(function(){return b.apply(a,arguments),a.trigger("after:render",a)})),this.deferrable_trigger||(this.immediate_trigger=!0),this.immediate_trigger===!0?this.deferrable.fetch():this.bind(this.deferrable_trigger,_.once(function(){return a.deferrable.fetch()})),this):(this.trigger("before:render",this),b.apply(this,arguments),this.trigger("after:render",this),this)},Luca.View.originalExtend.call(this,a)},_.extend(Luca.View.prototype,{applyStyles:function(a){var b,c;a==null&&(a={});for(b in a)c=a[b],this.$el.css(b,c);return this},debug:function(){var a,b,c,d;if(!this.debugMode&&window.LucaDebugMode==null)return;d=[];for(b=0,c=arguments.length;b<c;b++)a=arguments[b],d.push(console.log([this.name||this.cid,a]));return d},trigger:function(){return Luca.enableGlobalObserver&&this.observeEvents===!0&&(Luca.ViewObserver||(Luca.ViewObserver=new Luca.Observer({type:"view"})),Luca.ViewObserver.relay(this,arguments)),Backbone.View.prototype.trigger.apply(this,arguments)},hooks:["after:initialize","before:render","after:render","first:activation","activation","deactivation"],deferrable_event:"reset",initialize:function(a){var b,c=this;return this.options=a!=null?a:{},_.extend(this,this.options),this.name!=null&&(this.cid=_.uniqueId(this.name)),Luca.cache(this.cid,this),b=_(Luca.View.prototype.hooks.concat(this.hooks)).uniq(),this.setupHooks(b),this.autoBindEventHandlers===!0&&_(this.events).each(function(a,b){if(_.isString(a))return _.bindAll(c,a)}),this.trigger("after:initialize",this),this.registerCollectionEvents(),this.delegateEvents()},$container:function(){return $(this.container)},setupHooks:function(a){var b=this;return a||(a=this.hooks),_(a).each(function(a){var c,d,e;return d=a.split(":"),e=d.shift(),d=_(d).map(function(a){return _.string.capitalize(a)}),c=e+d.join(""),b.bind(a,function(){if(b[c])return b[c].apply(b,arguments)})})},getCollectionManager:function(){var a;return this.collectionManager||((a=Luca.CollectionManager.get)!=null?a.call():void 0)},registerCollectionEvents:function(){var a,b=this;return a=this.getCollectionManager(),_(this.collectionEvents).each(function(c,d){var e,f,g,h;h=d.split(" "),g=h[0],f=h[1],e=b[""+g+"Collection"]=a.getOrCreate(g);if(!e)throw"Could not find collection specified by "+g;_.isString(c)&&(c=b[c]);if(!_.isFunction(c))throw"invalid collectionEvents configuration";try{return e.bind(f,c)}catch(i){throw console.log("Error Binding To Collection in registerCollectionEvents",b),i}})},registerEvent:function(a,b){return this.events||(this.events={}),this.events[a]=b,this.delegateEvents()}})}.call(this),function(){_.component("Luca.Model")["extends"]("Backbone.Model")["with"]({initialize:function(){var a,b,c,d,e=this;Backbone.Model.prototype.initialize(this,arguments);if(_.isUndefined(this.computed))return;this._computed={},c=this.computed,d=[];for(a in c)b=c[a],this.on("change:"+a,function(){return e._computed[a]=e[a].call(e)}),d.push(_(b).each(function(b){e.on("change:"+b,function(){return e.trigger("change:"+a)});if(e.has(b))return e.trigger("change:"+a)}));return d},get:function(a){var b;return((b=this.computed)!=null?b.hasOwnProperty(a):void 0)?this._computed[a]:Backbone.Model.prototype.get.call(this,a)}})}.call(this),function(){Luca.Collection=(Backbone.QueryCollection||Backbone.Collection).extend({initialize:function(a,b){var c,d=this;a==null&&(a=[]),this.options=b,_.extend(this,this.options),this._reset(),this.cached&&(this.bootstrap_cache_key=_.isFunction(this.cached)?this.cached():this.cached),(this.registerAs||this.registerWith)&&console.log("This configuration API is deprecated. use @name and @manager properties instead"),this.name||(this.name=this.registerAs),this.manager||(this.manager=this.registerWith),this.name&&!this.manager&&(this.manager=Luca.CollectionManager.get()),this.manager&&(this.name||(this.name=this.cached()),this.name=_.isFunction(this.name)?this.name():this.name,!this.private&&!this.anonymous&&this.bind("after:initialize",function(){return d.register(d.manager,d.name,d)}));if(this.useLocalStorage===!0&&window.localStorage!=null)throw c=this.bootstrap_cache_key||this.name,"Must specify either a cached or registerAs property to use localStorage";return _.isArray(this.data)&&this.data.length>0&&(this.memoryCollection=!0),this.useNormalUrl!==!0&&this.__wrapUrl(),Backbone.Collection.prototype.initialize.apply(this,[a,this.options]),a&&this.reset(a,{silent:!0,parse:b!=null?b.parse:void 0}),this.trigger("after:initialize")},__wrapUrl:function(){var a,b,c=this;return _.isFunction(this.url)?this.url=_.wrap(this.url,function(a){var b,d,e,f,g;return g=a.apply(c),e=g.split("?"),e.length>1&&(b=_.last(e)),f=c.queryString(),b&&g.match(b)&&(f=f.replace(b,"")),d=""+g+"?"+f,d.match(/\?$/)&&(d=d.replace(/\?$/,"")),d}):(b=this.url,a=this.queryString(),this.url=_([b,a]).compact().join("?"))},queryString:function(){var a,b=this;return a=_(this.base_params||(this.base_params=Luca.Collection.baseParams())).inject(function(a,b,c){var d;return d=""+c+"="+b,a.push(d),a},[]),_.uniq(a).join("&")},resetFilter:function(){return this.base_params=Luca.Collection.baseParams(),this},applyFilter:function(a,b){return a==null&&(a={}),b==null&&(b={}),this.applyParams(a),this.fetch(_.extend(b,{refresh:!0}))},applyParams:function(a){return this.base_params||(this.base_params=_(Luca.Collection.baseParams()).clone()),_.extend(this.base_params,a)},register:function(a,b,c){a==null&&(a=Luca.CollectionManager.get()),b==null&&(b="");if(!(b.length>=1))throw"Can not register with a collection manager without a key";if(a==null)throw"Can not register with a collection manager without a valid collection manager";_.isString(a)&&(a=Luca.util.nestedValue(a,window||global));if(!a)throw"Could not register with collection manager";if(_.isFunction(a.add))return a.add(b,c);if(_.isObject(a))return a[b]=c},loadFromBootstrap:function(){if(!this.bootstrap_cache_key)return;return this.reset(this.cached_models()),this.trigger("bootstrapped",this)},bootstrap:function(){return this.loadFromBootstrap()},cached_models:function(){return Luca.Collection.cache(this.bootstrap_cache_key)},fetch:function(a){var b;a==null&&(a={}),this.trigger("before:fetch",this);if(this.memoryCollection===!0)return this.reset(this.data);if(this.cached_models().length&&!a.refresh)return this.bootstrap();b=_.isFunction(this.url)?this.url():this.url;if(!(b&&b.length>1||this.localStorage))return!0;this.fetching=!0;try{return Backbone.Collection.prototype.fetch.apply(this,arguments)}catch(c){throw console.log("Error in Collection.fetch",c),c}},onceLoaded:function(a,b){var c,d=this;b==null&&(b={autoFetch:!0});if(this.length>0&&!this.fetching){a.apply(this,[this]);return}c=function(){return a.apply(d,[d])},this.bind("reset",function(){return c(),this.unbind("reset",this)});if(!this.fetching&&!!b.autoFetch)return this.fetch()},ifLoaded:function(a,b){var c,d=this;b==null&&(b={scope:this,autoFetch:!0}),c=b.scope||this,this.length>0&&!this.fetching&&a.apply(c,[this]),this.bind("reset",function(b){return a.apply(c,[b])});if(!(this.fetching===!0||!b.autoFetch||this.length>0))return this.fetch()},parse:function(a){var b;return this.fetching=!1,this.trigger("after:response",a),b=this.root!=null?a[this.root]:a,this.bootstrap_cache_key&&Luca.Collection.cache(this.bootstrap_cache_key,b),b}}),_.extend(Luca.Collection.prototype,{trigger:function(){return Luca.enableGlobalObserver&&(Luca.CollectionObserver||(Luca.CollectionObserver=new Luca.Observer({type:"collection"})),Luca.CollectionObserver.relay(this,arguments)),Backbone.View.prototype.trigger.apply(this,arguments)}}),Luca.Collection.baseParams=function(a){if(a)return Luca.Collection._baseParams=a;if(_.isFunction(Luca.Collection._baseParams))return Luca.Collection._baseParams.call();if(_.isObject(Luca.Collection._baseParams))return Luca.Collection._baseParams},Luca.Collection._bootstrapped_models={},Luca.Collection.bootstrap=function(a){return _.extend(Luca.Collection._bootstrapped_models,a)},Luca.Collection.cache=function(a,b){return b?Luca.Collection._bootstrapped_models[a]=b:Luca.Collection._bootstrapped_models[a]||[]}}.call(this),function(){_.component("Luca.core.Field")["extends"]("Luca.View")["with"]({className:"luca-ui-text-field luca-ui-field",isField:!0,template:"fields/text_field",labelAlign:"top",hooks:["before:validation","after:validation","on:change"],statuses:["warning","error","success"],initialize:function(a){var b;return this.options=a!=null?a:{},_.extend(this,this.options),Luca.View.prototype.initialize.apply(this,arguments),this.input_id||(this.input_id=_.uniqueId("field")),this.input_name||(this.input_name=this.name),this.helperText||(this.helperText=""),this.required&&((b=this.label)!=null?!b.match(/^\*/):!void 0)&&(this.label||(this.label="*"+this.label)),this.inputStyles||(this.inputStyles=""),this.disabled&&this.disable(),this.updateState(this.state),this.placeHolder||(this.placeHolder="")},beforeRender:function(){return Luca.enableBootstrap&&this.$el.addClass("control-group"),this.required&&this.$el.addClass("required"),this.$el.html(Luca.templates[this.template](this)),this.input=$("input",this.el)},change_handler:function(a){return this.trigger("on:change",this,a)},disable:function(){return $("input",this.el).attr("disabled",!0)},enable:function(){return $("input",this.el).attr("disabled",!1)},getValue:function(){return this.input.attr("value")},render:function(){return $(this.container).append(this.$el)},setValue:function(a){return this.input.attr("value",a)},updateState:function(a){var b=this;return _(this.statuses).each(function(c){return b.$el.removeClass(c),b.$el.addClass(a)})}})}.call(this),function(){_.component("Luca.core.Container")["extends"]("Luca.View")["with"]({className:"luca-ui-container",componentClass:"luca-ui-panel",isContainer:!0,hooks:["before:components","before:render:components","before:layout","after:components","after:layout","first:activation"],rendered:!1,components:[],initialize:function(a){return this.options=a!=null?a:{},_.extend(this,this.options),this.setupHooks(Luca.core.Container.prototype.hooks),Luca.View.prototype.initialize.apply(this,arguments)},beforeRender:function(){return this.debug("container before render"),this.doLayout(),this.doComponents()},doLayout:function(){return this.debug("container do layout"),this.trigger("before:layout",this),this.prepareLayout(),this.trigger("after:layout",this)},doComponents:function(){return this.debug("container do components"),this.trigger("before:components",this,this.components),this.prepareComponents(),this.createComponents(),this.trigger("before:render:components",this,this.components),this.renderComponents(),this.trigger("after:components",this,this.components)},applyPanelConfig:function(a,b){var c,d;return d=[],a.height&&d.push("height: "+(_.isNumber(a.height)?a.height+"px":a.height)),a.width&&d.push("width: "+(_.isNumber(a.width)?a.width+"px":a.width)),a.float&&d.push("float: "+a.float),c={classes:(a!=null?a.classes:void 0)||this.componentClass,id:""+this.cid+"-"+b,style:d.join(";")}},prepareLayout:function(){var a=this;this.debug("container prepare layout"),this.componentContainers=_(this.components).map(function(b,c){return a.applyPanelConfig.apply(a,[b,c])});if(this.appendContainers)return _(this.componentContainers).each(function(b){return b.appended==null&&a.$el.append(Luca.templates["containers/basic"](b)),b.appended=!0})},prepareComponents:function(){var a=this;return this.debug("container prepare components"),this.components=_(this.components).map(function(b,c){var d;return d=a.componentContainers[c],b.container=a.appendContainers?"#"+d.id:a.el,b})},createComponents:function(){var a,b=this;if(this.componentsCreated===!0)return;return a=this.componentIndex={name_index:{},cid_index:{}},this.components=_(this.components).map(function(b,c){var d;return d=_.isObject(b)&&b.render&&b.trigger?b:(b.ctype||(b.ctype=Luca.defaultComponentType||"template"),Luca.util.lazyComponent(b)),!d.container&&d.options.container&&(d.container=d.options.container),a&&d.cid!=null&&(a.cid_index[d.cid]=c),a&&d.name!=null&&(a.name_index[d.name]=c),d}),this.componentsCreated=!0,a},renderComponents:function(a){var b=this;return this.debugMode=a!=null?a:"",this.debug("container render components"),_(this.components).each(function(a){a.getParent=function(){return b},$(a.container).append($(a.el));try{return a.render()}catch(c){console.log("Error Rendering Component "+(a.name||a.cid),a),console.log(c.message),console.log(c.stack);if(Luca.silenceRenderErrors!=null!=1)throw c}})},firstActivation:function(){var a=this;return _(this.components).each(function(b){var c,d;c=a;if((b!=null?b.previously_activated:void 0)!==!0)return b!=null&&(d=b.trigger)!=null&&d.apply(b,["first:activation",[b,c]]),b.previously_activated=!0})},select:function(a,b,c){var d;return c==null&&(c=!1),d=_(this.components).map(function(d){var e,f;return e=[],f=d[a],f===b&&e.push(d),c===!0&&d.isContainer===!0&&e.push(d.select(a,b,!0)),_.compact(e)}),_.flatten(d)},findComponentByName:function(a,b){return b==null&&(b=!1),this.findComponent(a,"name_index",b)},findComponentById:function(a,b){return b==null&&(b=!1),this.findComponent(a,"cid_index",b)},findComponent:function(a,b,c){var d,e,f,g,h;b==null&&(b="name"),c==null&&(c=!1),this.componentsCreated!==!0&&this.createComponents(),e=(g=this.componentIndex)!=null?g[b][a]:void 0,d=(h=this.components)!=null?h[e]:void 0;if(d)return d;if(c===!0)return f=_(this.components).detect(function(c){return c!=null?typeof c.findComponent=="function"?c.findComponent(a,b,!0):void 0:void 0}),f!=null?typeof f.findComponent=="function"?f.findComponent(a,b,!0):void 0:void 0},eachComponent:function(a,b){var c=this;return b==null&&(b=!0),_(this.components).each(function(c){var d;a.apply(c,[c]);if(b)return c!=null?(d=c.eachComponent)!=null?d.apply(c,[a,b]):void 0:void 0})},indexOf:function(a){var b;return b=_(this.components).pluck("name"),_(b).indexOf(a)},activeComponent:function(){return this.activeItem?this.components[this.activeItem]:this},componentElements:function(){return $("."+this.componentClass,this.el)},getComponent:function(a){return this.components[a]},rootComponent:function(){return this.getParent==null},getRootComponent:function(){return this.rootComponent()?this:this.getParent().getRootComponent()}})}.call(this),function(){var a;a=[],Luca.CollectionManager=function(){function b(b){this.options=b!=null?b:{},_.extend(this,this.options),_.extend(this,Backbone.Events),a.push(this),this.state=new Backbone.Model,this.initialCollections&&(this.state.set({loaded_collections_count:0,collections_count:this.initialCollections.length}),this.state.bind("change:loaded_collections_count",this.collectionCountDidChange),this.useProgressLoader&&(this.loaderView||(this.loaderView=new Luca.components.CollectionLoaderView({manager:this,name:"collection_loader_view"}))),this.loadInitialCollections()),this}return b.prototype.__collections={},b.prototype.add=function(a,b){var c;return(c=this.currentScope())[a]||(c[a]=b)},b.prototype.allCollections=function(){return _(this.currentScope()).values()},b.prototype.create=function(a,b,c){var d,e;return b==null&&(b={}),c==null&&(c=[]),d=b.base,d||(d=this.guessCollectionClass(a)),b.private&&(b.name=""),e=new d(c,b),this.add(a,e),e},b.prototype.collectionNamespace=Luca.Collection.namespace,b.prototype.currentScope=function(){var a,b;return(a=this.getScope())?(b=this.__collections)[a]||(b[a]={}):this.__collections},b.prototype.each=function(a){return _(this.all()).each(a)},b.prototype.get=function(a){return this.currentScope()[a]},b.prototype.getScope=function(){return},b.prototype.getOrCreate=function(a,b,c){return b==null&&(b={}),c==null&&(c=[]),this.get(a)||this.create(a,b,c,!1)},b.prototype.guessCollectionClass=function(a){var b,c;return b=Luca.util.classify(a),c=(this.collectionNamespace||window||global)[b],c||(c=(this.collectionNamespace||window||global)[""+b+"Collection"]),c},b.prototype.loadInitialCollections=function(){var a,b=this;return a=function(a){return a.unbind("reset"),b.trigger("collection_loaded",a.name)},_(this.initialCollections).each(function(c){var d;return d=b.getOrCreate(c),d.bind("reset",function(){return a(d)}),d.fetch()})},b.prototype.collectionCountDidChange=function(){if(this.totalCollectionsCount()===this.loadedCollectionsCount())return this.trigger("all_collections_loaded")},b.prototype
2
+ .totalCollectionsCount=function(){return this.state.get("collections_count")},b.prototype.loadedCollectionsCount=function(){return this.state.get("loaded_collections_count")},b.prototype.private=function(a,b,c){return b==null&&(b={}),c==null&&(c=[]),this.create(a,b,c,!0)},b}(),Luca.CollectionManager.destroyAll=function(){return a=[]},Luca.CollectionManager.instances=function(){return a},Luca.CollectionManager.get=function(){return _(a).last()}}.call(this),function(){Luca.SocketManager=function(){function a(a){this.options=a!=null?a:{},_.extend(Backbone.Events),this.loadTransport()}return a.prototype.connect=function(){switch(this.options.provider){case"socket.io":return this.socket=io.connect(this.options.socket_host);case"faye.js":return this.socket=new Faye.Client(this.options.socket_host)}},a.prototype.transportLoaded=function(){return this.connect()},a.prototype.transport_script=function(){switch(this.options.provider){case"socket.io":return""+this.options.transport_host+"/socket.io/socket.io.js";case"faye.js":return""+this.options.transport_host+"/faye.js"}},a.prototype.loadTransport=function(){var a,b=this;return a=document.createElement("script"),a.setAttribute("type","text/javascript"),a.setAttribute("src",this.transport_script()),a.onload=this.transportLoaded,Luca.util.isIE()&&(a.onreadystatechange=function(){if(a.readyState==="loaded")return b.transportLoaded()}),document.getElementsByTagName("head")[0].appendChild(a)},a}()}.call(this),function(){_.component("Luca.containers.SplitView")["extends"]("Luca.core.Container")["with"]({layout:"100",componentType:"split_view",containerTemplate:"containers/basic",className:"luca-ui-split-view",componentClass:"luca-ui-panel"})}.call(this),function(){_.component("Luca.containers.ColumnView")["extends"]("Luca.core.Container")["with"]({componentType:"column_view",className:"luca-ui-column-view",components:[],initialize:function(a){return this.options=a!=null?a:{},Luca.core.Container.prototype.initialize.apply(this,arguments),this.setColumnWidths()},componentClass:"luca-ui-column",containerTemplate:"containers/basic",appendContainers:!0,autoColumnWidths:function(){var a,b=this;return a=[],_(this.components.length).times(function(){return a.push(parseInt(100/b.components.length))}),a},setColumnWidths:function(){return this.columnWidths=this.layout!=null?_(this.layout.split("/")).map(function(a){return parseInt(a)}):this.autoColumnWidths(),this.columnWidths=_(this.columnWidths).map(function(a){return""+a+"%"})},beforeComponents:function(){return this.debug("column_view before components"),_(this.components).each(function(a){return a.ctype||(a.ctype="panel_view")})},beforeLayout:function(){var a,b=this;return this.debug("column_view before layout"),_(this.columnWidths).each(function(a,c){return b.components[c].float="left",b.components[c].width=a}),(a=Luca.core.Container.prototype.beforeLayout)!=null?a.apply(this,arguments):void 0}})}.call(this),function(){_.component("Luca.containers.CardView")["extends"]("Luca.core.Container")["with"]({componentType:"card_view",className:"luca-ui-card-view-wrapper",activeCard:0,components:[],hooks:["before:card:switch","after:card:switch"],initialize:function(a){return this.options=a,Luca.core.Container.prototype.initialize.apply(this,arguments),this.setupHooks(this.hooks)},componentClass:"luca-ui-card",beforeLayout:function(){var a=this;return this.cards=_(this.components).map(function(b,c){return{classes:a.componentClass,style:"display:"+(c===a.activeCard?"block":"none"),id:""+a.cid+"-"+c}})},prepareLayout:function(){var a=this;return this.card_containers=_(this.cards).map(function(b,c){return a.$el.append(Luca.templates["containers/basic"](b)),$("#"+b.id)})},prepareComponents:function(){var a=this;return this.components=_(this.components).map(function(b,c){var d;return d=a.cards[c],b.container="#"+d.id,b})},activeComponent:function(){return this.getComponent(this.activeCard)},cycle:function(){var a;return a=this.activeCard<this.components.length-1?this.activeCard+1:0,this.activate(a)},find:function(a){return this.findComponentByName(a,!0)},firstActivation:function(){return this.activeComponent().trigger("first:activation",this,this.activeComponent())},activate:function(a,b,c){var d,e,f,g,h,i;b==null&&(b=!1),_.isFunction(b)&&(b=!1,c=b);if(a===this.activeCard)return;e=this.activeComponent(),d=this.getComponent(a),d||(a=this.indexOf(a),d=this.getComponent(a));if(!d)return;b||(this.trigger("before:card:switch",e,d),e!=null&&(f=e.trigger)!=null&&f.apply(e,["before:deactivation",this,e,d]),d!=null&&(g=d.trigger)!=null&&g.apply(e,["before:activation",this,e,d])),_(this.card_containers).each(function(a){return a.hide()}),d.previously_activated||(d.trigger("first:activation"),d.previously_activated=!0),$(d.container).show(),this.activeCard=a,b||(this.trigger("after:card:switch",e,d),(h=e.trigger)!=null&&h.apply(e,["deactivation",this,e,d]),(i=d.trigger)!=null&&i.apply(d,["activation",this,e,d]));if(_.isFunction(c))return c.apply(this,[this,e,d])}})}.call(this),function(){_.component("Luca.containers.ModalView")["extends"]("Luca.core.Container")["with"]({componentType:"modal_view",className:"luca-ui-modal-view",components:[],renderOnInitialize:!0,showOnRender:!1,hooks:["before:show","before:hide"],defaultModalOptions:{minWidth:375,maxWidth:375,minHeight:550,maxHeight:550,opacity:80,onOpen:function(a){return this.onOpen.apply(this),this.onModalOpen.apply(a,[a,this])},onClose:function(a){return this.onClose.apply(this),this.onModalClose.apply(a,[a,this])}},modalOptions:{},initialize:function(a){var b=this;return this.options=a!=null?a:{},Luca.core.Container.prototype.initialize.apply(this,arguments),this.setupHooks(this.hooks),_(this.defaultModalOptions).each(function(a,c){var d;return(d=b.modalOptions)[c]||(d[c]=a)}),this.modalOptions.onOpen=_.bind(this.modalOptions.onOpen,this),this.modalOptions.onClose=_.bind(this.modalOptions.onClose,this)},onOpen:function(){return!0},onClose:function(){return!0},getModal:function(){return this.modal},onModalOpen:function(a,b){return b.modal=a,a.overlay.show(),a.container.show(),a.data.show()},onModalClose:function(a,b){return $.modal.close()},prepareLayout:function(){return $("body").append(this.$el)},prepareComponents:function(){var a=this;return this.components=_(this.components).map(function(b,c){return b.container=a.el,b})},afterInitialize:function(){this.$el.hide();if(this.renderOnInitialize)return this.render()},afterRender:function(){if(this.showOnRender)return this.show()},wrapper:function(){return $(this.$el.parent())},show:function(){return this.trigger("before:show",this),this.$el.modal(this.modalOptions)},hide:function(){return this.trigger("before:hide",this)}})}.call(this),function(){_.component("Luca.containers.PanelView")["extends"]("Luca.core.Container")["with"]({className:"luca-ui-panel",initialize:function(a){return this.options=a!=null?a:{},Luca.core.Container.prototype.initialize.apply(this,arguments)},afterLayout:function(){var a;if(this.template)return a=(Luca.templates||JST)[this.template](this),this.$el.html(a)},render:function(){return $(this.container).append(this.$el)},afterRender:function(){var a,b=this;(a=Luca.core.Container.prototype.afterRender)!=null&&a.apply(this,arguments);if(this.css)return _(this.css).each(function(a,c){return b.$el.css(c,a)})}})}.call(this),function(){_.component("Luca.containers.TabView")["extends"]("Luca.containers.CardView")["with"]({events:{"click ul.nav-tabs li":"select"},hooks:["before:select","after:select"],componentType:"tab_view",className:"luca-ui-tab-view tabbable",tab_position:"top",tabVerticalOffset:"50px",initialize:function(a){return this.options=a!=null?a:{},Luca.containers.CardView.prototype.initialize.apply(this,arguments),_.bindAll(this,"select","highlightSelectedTab"),this.setupHooks(this.hooks),this.bind("after:card:switch",this.highlightSelectedTab)},activeTabSelector:function(){return this.tabSelectors().eq(this.activeCard||this.activeTab||this.activeItem)},prepareLayout:function(){var a=this;return this.card_containers=_(this.cards).map(function(b,c){return a.$(".tab-content").append(Luca.templates["containers/basic"](b)),$("#"+b.id)})},beforeLayout:function(){return this.$el.addClass("tabs-"+this.tab_position),this.tab_position==="below"?(this.$el.append(Luca.templates["containers/tab_view"](this)),this.$el.append(Luca.templates["containers/tab_selector_container"](this))):(this.$el.append(Luca.templates["containers/tab_selector_container"](this)),this.$el.append(Luca.templates["containers/tab_view"](this))),Luca.containers.CardView.prototype.beforeLayout.apply(this,arguments)},beforeRender:function(){var a;(a=Luca.containers.CardView.prototype.beforeRender)!=null&&a.apply(this,arguments),this.activeTabSelector().addClass("active");if(Luca.enableBootstrap&&this.tab_position==="left"||this.tab_position==="right"){this.$el.addClass("grid-12"),this.tabContainerWrapper().addClass("grid-3"),this.tabContentWrapper().addClass("grid-9");if(this.tabVerticalOffset)return this.tabContainerWrapper().css("padding-top",this.tabVerticalOffset)}},highlightSelectedTab:function(){return this.tabSelectors().removeClass("active"),this.activeTabSelector().addClass("active")},select:function(a){var b,c;return b=c=$(a.currentTarget),this.trigger("before:select",this),this.activate(c.data("target")),this.trigger("after:select",this)},tabContentWrapper:function(){return $("#"+this.cid+"-tab-view-content")},tabContainerWrapper:function(){return $("#"+this.cid+"-tabs-selector")},tabContainer:function(){return $("ul#"+this.cid+"-tabs-nav")},tabSelectors:function(){return $("li.tab-selector",this.tabContainer())}})}.call(this),function(){_.component("Luca.containers.Viewport").extend("Luca.containers.CardView")["with"]({activeItem:0,className:"luca-ui-viewport",fullscreen:!0,initialize:function(a){this.options=a!=null?a:{},Luca.core.Container.prototype.initialize.apply(this,arguments);if(this.fullscreen)return $("html,body").addClass("luca-ui-fullscreen")},render:function(){return this.$el.addClass("luca-ui-viewport")}})}.call(this),function(){}.call(this),function(){_.component("Luca.components.Template")["extends"]("Luca.View")["with"]({templateContainer:"Luca.templates",initialize:function(options){this.options=options!=null?options:{},Luca.View.prototype.initialize.apply(this,arguments);if(!this.template&&!this.markup)throw"Templates must specify which template / markup to use";if(_.isString(this.templateContainer))return this.templateContainer=eval("(window || global)."+this.templateContainer)},beforeRender:function(){return _.isUndefined(this.templateContainer)&&(this.templateContainer=JST),this.$el.html(this.markup||this.templateContainer[this.template](this.options))},render:function(){return $(this.container).append(this.$el)}})}.call(this),function(){_.component("Luca.Application")["extends"]("Luca.containers.Viewport")["with"]({components:[{ctype:"controller",name:"main_controller",defaultCard:"welcome",components:[{ctype:"template",name:"welcome",template:"sample/welcome",templateContainer:"Luca.templates"}]}],initialize:function(a){var b,c=this;return this.options=a!=null?a:{},Luca.containers.Viewport.prototype.initialize.apply(this,arguments),this.collectionManager||(this.collectionManager=(typeof (b=Luca.CollectionManager).get=="function"?b.get():void 0)||new Luca.CollectionManager),this.state=new Backbone.Model(this.defaultState),this.bind("ready",function(){return c.render()})},activeView:function(){var a;return(a=this.activeSubSection())?this.view(a):this.view(this.activeSection())},activeSubSection:function(){return this.get("active_sub_section")},activeSection:function(){return this.get("active_section")},afterComponents:function(){var a,b,c,d=this;return(a=Luca.containers.Viewport.prototype.afterComponents)!=null&&a.apply(this,arguments),(b=this.getMainController())!=null&&b.bind("after:card:switch",function(a,b){return d.state.set({active_section:b.name})}),(c=this.getMainController())!=null?c.each(function(a){if(a.ctype.match(/controller$/))return a.bind("after:card:switch",function(a,b){return d.state.set({active_sub_section:b.name})})}):void 0},beforeRender:function(){var a;return(a=Luca.containers.Viewport.prototype.beforeRender)!=null?a.apply(this,arguments):void 0},boot:function(){return this.trigger("ready")},collection:function(){return this.collectionManager.getOrCreate.apply(this.collectionManager,arguments)},get:function(a){return this.state.get(a)},getMainController:function(){return this.view("main_controler")},set:function(a){return this.state.set(a)},view:function(a){return Luca.cache(a)}})}.call(this),function(){_.component("Luca.components.Toolbar")["extends"]("Luca.core.Container")["with"]({className:"luca-ui-toolbar",position:"bottom",initialize:function(a){return this.options=a!=null?a:{},Luca.core.Container.prototype.initialize.apply(this,arguments)},prepareComponents:function(){var a=this;return _(this.components).each(function(b){return b.container=a.el})},render:function(){return $(this.container).append(this.el)}})}.call(this),function(){_.component("Luca.components.CollectionInspector")["extends"]("Luca.View")["with"]({name:"collection_inspector"})}.call(this),function(){_.component("Luca.components.CollectionLoaderView")["extends"]("Luca.components.Template")["with"]({className:"luca-ui-collection-loader-view",template:"components/collection_loader_view",initialize:function(a){return this.options=a!=null?a:{},Luca.components.Template.prototype.initialize.apply(this,arguments),this.container||(this.container=$("body")),this.manager||(this.manager=Luca.CollectionManager.get()),this.setupBindings()},modalContainer:function(){return $("#progress-modal",this.el)},setupBindings:function(){var a=this;return this.manager.bind("collection_loaded",function(b){var c,d,e,f;return d=a.manager.loadedCollectionsCount(),f=a.manager.totalCollectionsCount(),e=parseInt(d/f*100),c=_.string.titleize(_.string.humanize(b)),a.modalContainer().find(".progress .bar").attr("style","width: "+e+"%;"),a.modalContainer().find(".message").html("Loaded "+c+"...")}),this.manager.bind("all_collections_loaded",function(){return a.modalContainer().find(".message").html("All done!"),_.delay(function(){return a.modalContainer().modal("hide")},400)})}})}.call(this),function(){_.component("Luca.components.Controller")["extends"]("Luca.containers.CardView")["with"]({initialize:function(a){var b;this.options=a,Luca.containers.CardView.prototype.initialize.apply(this,arguments),this.defaultCard||(this.defaultCard=(b=this.components[0])!=null?b.name:void 0);if(!this.defaultCard)throw"Controllers must specify a defaultCard property and/or the first component must have a name";return this.state=new Backbone.Model({active_section:this.defaultCard})},each:function(a){var b=this;return _(this.components).each(function(c){return a.apply(b,[c])})},"default":function(a){return this.navigate_to(this.defaultCard,a)},navigate_to:function(a,b){var c=this;return a||(a=this.defaultCard),this.activate(a,!1,function(a,d,e){c.state.set({active_section:e.name});if(_.isFunction(b))return b.apply(e)}),this.find(a)}})}.call(this),function(){_.component("Luca.components.DevelopmentConsole")["extends"]("Luca.View")["with"]({name:"development_console",className:"luca-ui-development-console",initialize:function(a){this.options=a!=null?a:{},Luca.View.prototype.initialize.apply(this,arguments);if(this.modal)return this.$el.addClass("luca-ui-modal")},beforeRender:function(){return this.$el.append(this.make("div",{"class":"console-inner"})),this.console_el=this.$(".console-inner"),this.console=this.console_el.console({promptLabel:"Coffee> ",animateScroll:!0,promptHistory:!0,autoFocus:!0,commandValidate:function(a){var b;b=!0,a===""&&(b=!1);try{CoffeeScript.compile(a)?b=!0:b=!1}catch(c){b=!1}return b},returnValue:function(a){return a==null?"undefined":(a!=null?a.toString():void 0)||""},parseLine:function(a){return a=_.string.strip(a),a=a.replace(/^return/," "),"return "+a},commandHandle:function(line){var compiled,ret;if(line==="")return;compiled=CoffeeScript.compile(this.parseLine(line));try{return ret=eval(compiled),this.returnValue(ret)}catch(error){return error.message.match(/circular structure to JSON/)?ret.toString():error.toString()}}})}})}.call(this),function(){_.component("Luca.fields.ButtonField")["extends"]("Luca.core.Field")["with"]({readOnly:!0,events:{"click input":"click_handler"},hooks:["button:click"],className:"luca-ui-field luca-ui-button-field",template:"fields/button_field",click_handler:function(a){var b,c;return b=c=$(a.currentTarget),this.trigger("button:click")},initialize:function(a){var b;this.options=a!=null?a:{},_.extend(this.options),_.bindAll(this,"click_handler"),Luca.core.Field.prototype.initialize.apply(this,arguments);if((b=this.icon_class)!=null?b.length:void 0)return this.template="fields/button_field_link"},afterInitialize:function(){this.input_id||(this.input_id=_.uniqueId("button")),this.input_name||(this.input_name=this.name||(this.name=this.input_id)),this.input_value||(this.input_value=this.label||(this.label=this.text)),this.input_type||(this.input_type="button"),this.input_class||(this.input_class=this["class"]),this.icon_class||(this.icon_class=""),this.icon_class.length&&!this.icon_class.match(/^icon-/)&&(this.icon_class="icon-"+this.icon_class);if(this.white)return this.icon_class+=" icon-white"},setValue:function(){return!0}})}.call(this),function(){_.component("Luca.fields.CheckboxArray")["extends"]("Luca.core.Field")["with"]({template:"fields/checkbox_array",events:{"click input":"clickHandler"},initialize:function(a){return this.options=a!=null?a:{},_.extend(this,this.options),_.extend(this,Luca.modules.Deferrable),_.bindAll(this,"populateCheckboxes","clickHandler","_updateModel"),Luca.core.Field.prototype.initialize.apply(this,arguments),this.input_id||(this.input_id=_.uniqueId("field")),this.input_name||(this.input_name=this.name),this.label||(this.label=this.name),this.valueField||(this.valueField="id"),this.displayField||(this.displayField="name"),this.selectedItems=[]},afterInitialize:function(a){this.options=a!=null?a:{};try{this.configure_collection()}catch(b){console.log("Error Configuring Collection",this,b.message)}return this.collection.bind("reset",this.populateCheckboxes)},afterRender:function(){var a,b;return((a=this.collection)!=null?(b=a.models)!=null?b.length:void 0:void 0)>0?this.populateCheckboxes():this.collection.trigger("reset")},clickHandler:function(a){var b;return b=a.target,b.checked?this.selectedItems.push(b.value):this.selectedItems.indexOf(b.value)!==-1&&(this.selectedItems=_.without(this.selectedItems,[b.value])),this._updateModel()},populateCheckboxes:function(){var a,b=this;return a=$(this.el).find(".controls"),a.empty(),_.isUndefined(this.getModel())||(this.selectedItems=this.getModel().get(this.name)),this.collection.each(function(c){var d,e,f;f=c.get(b.valueField),e=c.get(b.displayField),d=_.uniqueId("field"),a.append(Luca.templates["fields/checkbox_array_item"]({label:e,value:f,input_id:d,input_name:b.input_name}));if(_(b.selectedItems).indexOf(f)!==-1)return b.$("#"+d).attr("checked","checked")}),$(this.container).append(this.$el)},_updateModel:function(){var a;return a={},a[this.name]=this.selectedItems,this.getModel().set(a)}})}.call(this),function(){_.component("Luca.fields.CheckboxField")["extends"]("Luca.core.Field")["with"]({events:{"change input":"change_handler"},change_handler:function(a){var b,c;return b=c=$(a.currentTarget),this.trigger("on:change",this,a),b.checked===!0?this.trigger("checked"):this.trigger("unchecked")},className:"luca-ui-checkbox-field luca-ui-field",template:"fields/checkbox_field",hooks:["checked","unchecked"],initialize:function(a){return this.options=a!=null?a:{},_.extend(this,this.options),_.bindAll(this,"change_handler"),Luca.core.Field.prototype.initialize.apply(this,arguments)},afterInitialize:function(){return this.input_id||(this.input_id=_.uniqueId("field")),this.input_name||(this.input_name=this.name),this.input_value||(this.input_value=1),this.label||(this.label=this.name)},setValue:function(a){return this.input.attr("checked",a)},getValue:function(){return this.input.attr("checked")===!0}})}.call(this),function(){_.component("Luca.fields.FileUploadField")["extends"]("Luca.core.Field")["with"]({template:"fields/file_upload_field",initialize:function(a){return this.options=a!=null?a:{},Luca.core.Field.prototype.initialize.apply(this,arguments)},afterInitialize:function(){return this.input_id||(this.input_id=_.uniqueId("field")),this.input_name||(this.input_name=this.name),this.label||(this.label=this.name),this.helperText||(this.helperText="")}})}.call(this),function(){_.component("Luca.fields.HiddenField")["extends"]("Luca.core.Field")["with"]({template:"fields/hidden_field",initialize:function(a){return this.options=a!=null?a:{},Luca.core.Field.prototype.initialize.apply(this,arguments)},afterInitialize:function(){return this.input_id||(this.input_id=_.uniqueId("field")),this.input_name||(this.input_name=this.name),this.input_value||(this.input_value=this.value),this.label||(this.label=this.name)}})}.call(this),function(){_.component("Luca.fields.SelectField")["extends"]("Luca.core.Field")["with"]({events:{"change select":"change_handler"},hooks:["after:select"],className:"luca-ui-select-field luca-ui-field",template:"fields/select_field",includeBlank:!0,blankValue:"",blankText:"Select One",initialize:function(a){this.options=a!=null?a:{},_.extend(this,this.options),_.extend(this,Luca.modules.Deferrable),_.bindAll(this,"change_handler","populateOptions","beforeFetch"),Luca.core.Field.prototype.initialize.apply(this,arguments),this.input_id||(this.input_id=_.uniqueId("field")),this.input_name||(this.input_name=this.name),this.label||(this.label=this.name);if(_.isUndefined(this.retainValue))return this.retainValue=!0},afterInitialize:function(){var a;if((a=this.collection)!=null?a.data:void 0)this.valueField||(this.valueField="id"),this.displayField||(this.displayField="name"),this.parseData();try{this.configure_collection()}catch(b){console.log("Error Configuring Collection",this,b.message)}return this.collection.bind("before:fetch",this.beforeFetch),this.collection.bind("reset",this.populateOptions)},parseData:function(){var a=this;return this.collection.data=_(this.collection.data).map(function(b){var c;return _.isArray(b)?(c={},c[a.valueField]=b[0],c[a.displayField]=b[1],c):b})},afterRender:function(){var a,b;return this.input=$("select",this.el),((a=this.collection)!=null?(b=a.models)!=null?b.length:void 0:void 0)>0?this.populateOptions():this.collection.trigger("reset")},setValue:function(a){return this.currentValue=a,Luca.core.Field.prototype.setValue.apply(this,arguments)},beforeFetch:function(){return this.resetOptions()},change_handler:function(a){return this.trigger("on:change",this,a)},resetOptions:function(){this.input.html("");if(this.includeBlank)return this.input.append("<option value='"+this.blankValue+"'>"+this.blankText+"</option>")},populateOptions:function(){var a,b=this;return this.resetOptions(),((a=this.collection)!=null?a.each:void 0)!=null&&this.collection.each(function(a){var c,d,e,f;return f=a.get(b.valueField),c=a.get(b.displayField),b.selected&&f===b.selected&&(e="selected"),d="<option "+e+" value='"+f+"'>"+c+"</option>",b.input.append(d)}),this.trigger("after:populate:options",this),this.setValue(this.currentValue)}})}.call(this),function(){_.component("Luca.fields.TextAreaField")["extends"]("Luca.core.Field")["with"]({events:{"keydown input":"keydown_handler","blur input":"blur_handler","focus input":"focus_handler"},template:"fields/text_area_field",height:"200px",width:"90%",initialize:function(a){return this.options=a!=null?a:{},_.bindAll(this,"keydown_handler"),Luca.core.Field.prototype.initialize.apply(this,arguments),this.input_id||(this.input_id=_.uniqueId("field")),this.input_name||(this.input_name=this.name),this.label||(this.label=this.name),this.input_class||(this.input_class=this["class"]),this.inputStyles||(this.inputStyles="height:"+this.height+";width:"+this.width)},setValue:function(a){return $(this.field()).val(a)},getValue:function(){return $(this.field()).val()},field:function(){return this.input=$("textarea#"+this.input_id,this.el)},keydown_handler:function(a){var b,c;return b=c=$(a.currentTarget)},blur_handler:function(a){var b,c;return b=c=$(a.currentTarget)},focus_handler:function(a){var b,c;return b=c=$(a.currentTarget)}})}.call(this),function(){_.component("Luca.fields.TextField")["extends"]("Luca.core.Field")["with"]({events:{"keydown input":"keydown_handler","blur input":"blur_handler","focus input":"focus_handler","change input":"change_handler"},template:"fields/text_field",initialize:function(a){this.options=a!=null?a:{},_.bindAll(this,"keydown_handler","blur_handler","focus_handler"),Luca.core.Field.prototype.initialize.apply(this,arguments),this.input_id||(this.input_id=_.uniqueId("field")),this.input_name||(this.input_name=this.name),this.label||(this.label=this.name),this.input_class||(this.input_class=this["class"]),this.prepend&&(this.$el.addClass("input-prepend"),this.addOn=this.prepend);if(this.append)return this.$el.addClass("input-append"),this.addOn=this.append},keydown_handler:_.throttle(function(a){return this.change_handler.apply(this,arguments)},300),blur_handler:function(a){var b,c;return b=c=$(a.currentTarget)},focus_handler:function(a){var b,c;return b=c=$(a.currentTarget)},change_handler:function(a){return this.trigger("on:change",this,a)}})}.call(this),function(){_.component("Luca.fields.TypeAheadField")["extends"]("Luca.fields.TextField")["with"]({className:"luca-ui-field",afterInitialize:function(){return this.input_id||(this.input_id=_.uniqueId("field")),this.input_name||(this.input_name=this.name),this.label||(this.label=this.name)}})}.call(this),function(){_.component("Luca.components.FormButtonToolbar")["extends"]("Luca.components.Toolbar")["with"]({className:"luca-ui-form-toolbar form-actions",position:"bottom",includeReset:!1,render:function(){return $(this.container).append(this.el)},initialize:function(a){this.options=a!=null?a:{},Luca.components.Toolbar.prototype.initialize.apply(this,arguments),this.components=[{ctype:"button_field",label:"Submit","class":"btn submit-button"}];if(this.includeReset)return this.components.push({ctype:"button_field",label:"Reset","class":"btn reset-button"})}})}.call(this),function(){_.component("Luca.components.FormView")["extends"]("Luca.core.Container")["with"]({tagName:"form",className:"luca-ui-form-view",hooks:["before:submit","before:reset","before:load","before:load:new","before:load:existing","after:submit","after:reset","after:load","after:load:new","after:load:existing","after:submit:success","after:submit:fatal_error","after:submit:error"],events:{"click .submit-button":"submitHandler","click .reset-button":"resetHandler"},toolbar:!0,initialize:function(a){return this.options=a!=null?a:{},Luca.core.Container.prototype.initialize.apply(this,arguments),_.bindAll(this,"submitHandler","resetHandler","renderToolbars"),this.state||(this.state=new Backbone.Model),this.setupHooks(this.hooks),this.legend||(this.legend=""),this.configureToolbars(),this.applyStyles()},addBootstrapFormControls:function(){var a=this;return this.bind("after:render",function(){var b;return b=a.$(".toolbar-container.bottom"),b.addClass("form-controls"),b.html(a.formControlsTemplate||Luca.templates["components/bootstrap_form_controls"](a))})},applyStyles:function(){Luca.enableBootstrap&&this.applyBootstrapStyles(),this.labelAlign&&this.$el.addClass("label-align-"+this.labelAlign);if(this.fieldLayoutClass)return this.$el.addClass(this.fieldLayoutClass)},applyBootstrapStyles:function(){this.labelAlign==="left"&&(this.inlineForm=!0),this.well&&this.$el.addClass("well"),this.searchForm&&this.$el.addClass("form-search"),this.horizontalForm&&this.$el.addClass("form-horizontal");if(this.inlineForm)return this.$el.addClass("form-inline")},configureToolbars:function(){if(Luca.enableBootstrap&&this.toolbar===!0)return this.addBootstrapFormControls();this.toolbar===!0&&(this.toolbars=[{ctype:"form_button_toolbar",includeReset:!0,position:"bottom"}]);if(this.toolbars&&this.toolbars.length)return this.bind("after:render",_.once(this.renderToolbars))},resetHandler:function(a){var b,c;return b=c=$(a.currentTarget),this.trigger("before:reset",this),this.reset(),this.trigger("after:reset",this)},submitHandler:function(a){var b,c;return b=c=$(a.currentTarget),this.trigger("before:submit",this),this.submit()},beforeLayout:function(){var a;return(a=Luca.core.Container.prototype.beforeLayout)!=null&&a.apply(this,arguments),this.$el.html(Luca.templates["components/form_view"](this))},prepareComponents:function(){var a;return a=$(".form-view-body",this.el),_(this.components).each(function(b){return b.container=a})},afterComponents:function(){var a,b=this;return(a=Luca.core.Container.prototype.afterComponents)!=null&&a.apply(this,arguments),this.eachField(function(a){return a.getForm=function(){return b},a.getModel=function(){return b.currentModel()}})},render:function(){return $(this.container).append(this.$el),this},wrapper:function(){return this.$el.parents(".luca-ui-form-view-wrapper")},toolbarContainers:function(a){return a==null&&(a="bottom"),$(".toolbar-container."+a,this.wrapper()).first()},renderToolbars:function(){var a=this;return _(this.toolbars).each(function(b){return b.container=$("#"+a.cid+"-"+b.position+"-toolbar-container"),b=Luca.util.lazyComponent(b),b.render()})},eachField:function(a){return _(this.getFields()).map(a)},getField:function(a){return _(this.getFields("name",a)).first()},getFields:function(a,b){var c;return c=this.select("isField",!0,!0),c.length>0&&a&&b&&(c=_(c).select(function(c){var d,e;return d=c[a],d==null?!1:(e=_.isFunction(d)?d():d,b===e)})),c},loadModel:function(a){var b,c,d,e;this.current_model=a,d=this,c=this.getFields(),this.trigger("before:load",this,this.current_model),this.current_model&&((e=this.current_model.beforeFormLoad)!=null&&e.apply(this.current_model,this),b="before:load:"+(this.current_model.isNew()?"new":"existing"),this.trigger(b,this,this.current_model)),this.setValues(this.current_model),this.trigger("after:load",this,this.current_model);if(this.current_model)return this.trigger("after:load:"+(this.current_model.isNew()?"new":"existing"),this,this.current_model)},reset:function(){if(this.current_model!=null)return this.loadModel(this.current_model)},clear:function(){var a=this;return this.current_model=this.defaultModel!=null?this.defaultModel():void 0,_(this.getFields()).each(function(b){try{return b.setValue("")}catch(c){return console.log("Error Clearing",a,b)}})},setValues:function(a,b){var c,d=this;b==null&&(b={}),a||(a=this.currentModel()),c=this.getFields(),_(c).each(function(b){var c,e;c=b.input_name||b.name,(e=a[c])&&_.isFunction(e)&&(e=e.apply(d)),!e&&Luca.isBackboneModel(a)&&(e=a.get(c));if(b.readOnly!==!0)return b!=null?b.setValue(e):void 0});if(b.silent!=null!=1)return this.syncFormWithModel()},getValues:function(a){return a==null&&(a={}),a.reject_blank==null&&(a.reject_blank=!0),a.skip_buttons==null&&(a.skip_buttons=!0),_(this.getFields()).inject(function(b,c){var d,e,f;return f=c.getValue(),d=c.input_name||c.name,e=!1,a.skip_buttons&&c.ctype==="button_field"&&(e=!0),_.string.isBlank(f)&&(a.reject_blank&&!c.send_blanks&&(e=!0),c.input_name==="id"&&(e=!0)),e!==!0&&(b[d]=f),b},{})},submit_success_handler:function(a,b,c){return this.trigger("after:submit",this,a,b),b&&(b!=null?b.success:void 0)===!0?this.trigger("after:submit:success",this,a,b):this.trigger("after:submit:error",this,a,b)},submit_fatal_error_handler:function(a,b,c){return this.trigger("after:submit",this,a,b),this.trigger("after:submit:fatal_error",this,a,b)},submit:function(a,b){a==null&&(a=!0),b==null&&(b={}),_.bindAll(this,"submit_success_handler","submit_fatal_error_handler"),b.success||(b.success=this.submit_success_handler),b.error||(b.error=this.submit_fatal_error_handler),this.syncFormWithModel();if(!a)return;return this.current_model.save(this.current_model.toJSON(),b)},currentModel:function(a){return a==null&&(a={}),(a===!0||(a!=null?a.refresh:void 0)===!0)&&this.syncFormWithModel(),this.current_model},syncFormWithModel:function(){var a;return(a=this.current_model)!=null?a.set(this.getValues()):void 0},setLegend:function(a){return this.legend=a,$("fieldset legend",this.el).first().html(this.legend)}})}.call(this),function(){_.component("Luca.components.GridView").extend("Luca.View")["with"]({autoBindEventHandlers:!0,events:{"dblclick table tbody tr":"double_click_handler","click table tbody tr":"click_handler"},className:"luca-ui-g-view",rowClass:"luca-ui-g-row"
3
+ ,wrapperClass:"luca-ui-g-view-wrapper",additionalWrapperClasses:[],wrapperStyles:{},scrollable:!0,emptyText:"No Results To display.",tableStyle:"striped",defaultHeight:285,defaultWidth:756,maxWidth:void 0,hooks:["before:grid:render","before:render:header","before:render:row","after:grid:render","row:double:click","row:click","after:collection:load"],initialize:function(a){var b=this;return this.options=a!=null?a:{},_.extend(this,this.options),_.extend(this,Luca.modules.Deferrable),Luca.View.prototype.initialize.apply(this,arguments),this.configure_collection(),this.collection.bind("reset",function(a){return b.refresh(),b.trigger("after:collection:load",a)}),this.collection.bind("change",function(a){var c,d;try{return d=b.getRowEl(a.id||a.get("id")||a.cid),c=b.render_row(a,b.collection.indexOf(a),{cellsOnly:!0}),$(d).html(c)}catch(e){return console.log("Error in change handler for GridView.collection",e,b)}})},beforeRender:function(){return this.trigger("before:grid:render",this),this.$el.html(Luca.templates["components/grid_view"]()),this.table=this.$("table.luca-ui-g-view"),this.header=this.$("thead"),this.body=this.$("tbody"),this.footer=this.$("tfoot"),this.wrapper=this.$("."+this.wrapperClass),this.applyCssClasses(),this.scrollable&&this.setDimensions(),this.renderHeader(),this.emptyMessage(),this.renderToolbars(),$(this.container).append(this.$el)},applyCssClasses:function(){var a,b=this;return this.scrollable&&this.$el.addClass("scrollable-g-view"),_(this.additionalWrapperClasses).each(function(a){var c;return(c=b.wrapper)!=null?c.addClass(a):void 0}),Luca.enableBootstrap&&this.table.addClass("table"),_((a=this.tableStyle)!=null?a.split(" "):void 0).each(function(a){return b.table.addClass("table-"+a)})},toolbarContainers:function(a){return a==null&&(a="bottom"),$(".toolbar-container."+a,this.el)},renderToolbars:function(){var a=this;return _(this.toolbars).each(function(b){return b=Luca.util.lazyComponent(b),b.container=a.toolbarContainers(b.position),b.render()})},setDimensions:function(a){var b=this;return this.height||(this.height=this.defaultHeight),this.$(".luca-ui-g-view-body").height(this.height),this.$("tbody.scrollable").height(this.height-23),this.container_width=function(){return $(b.container).width()}(),this.width||(this.width=this.container_width>0?this.container_width:this.defaultWidth),this.width=_([this.width,this.maxWidth||this.width]).max(),this.$(".luca-ui-g-view-body").width(this.width),this.$(".luca-ui-g-view-body table").width(this.width),this.setDefaultColumnWidths()},resize:function(a){var b,c,d=this;b=a-this.width,this.width=a,this.$(".luca-ui-g-view-body").width(this.width),this.$(".luca-ui-g-view-body table").width(this.width);if(this.columns.length>0)return c=b/this.columns.length,_(this.columns).each(function(a,b){var e;return e=$(".column-"+b,d.el),e.width(a.width=a.width+c)})},padLastColumn:function(){var a,b;a=_(this.columns).inject(function(a,b){return a=b.width+a},0),b=this.width-a;if(b>0)return this.lastColumn().width+=b},setDefaultColumnWidths:function(){var a;return a=this.columns.length>0?this.width/this.columns.length:200,_(this.columns).each(function(b){return parseInt(b.width||(b.width=a))}),this.padLastColumn()},lastColumn:function(){return this.columns[this.columns.length-1]},afterRender:function(){return this.refresh(),this.trigger("after:grid:render",this)},emptyMessage:function(a){return a==null&&(a=""),a||(a=this.emptyText),this.body.html(""),this.body.append(Luca.templates["components/grid_view_empty_text"]({colspan:this.columns.length,text:a}))},refresh:function(){var a=this;this.body.html(""),this.collection.each(function(b,c){return a.render_row.apply(a,[b,c])});if(this.collection.models.length===0)return this.emptyMessage()},ifLoaded:function(a,b){return b||(b=this),a||(a=function(){return!0}),this.collection.ifLoaded(a,b)},applyFilter:function(a,b){return b==null&&(b={auto:!0,refresh:!0}),this.collection.applyFilter(a,b)},renderHeader:function(){var a,b=this;return this.trigger("before:render:header"),a=_(this.columns).map(function(a,b){var c;return c=a.width?"width:"+a.width+"px;":"","<th style='"+c+"' class='column-"+b+"'>"+a.header+"</th>"}),this.header.append("<tr>"+a+"</tr>")},getRowEl:function(a){return this.$("[data-record-id="+a+"]","table")},render_row:function(a,b,c){var d,e,f,g,h,i,j=this;return c==null&&(c={}),h=this.rowClass,g=(a!=null?a.get:void 0)&&(a!=null?a.attributes:void 0)?a.get("id"):"",this.trigger("before:render:row",a,b),e=_(this.columns).map(function(b,c){var d,e,f;return f=j.cell_renderer(a,b,c),e=b.width?"width:"+b.width+"px;":"",d=_.isUndefined(f)?"":f,"<td style='"+e+"' class='column-"+c+"'>"+d+"</td>"}),c.cellsOnly?e:(d="",this.alternateRowClasses&&(d=b%2===0?"even":"odd"),f="<tr data-record-id='"+g+"' data-row-index='"+b+"' class='"+h+" "+d+"' id='row-"+b+"'>"+e+"</tr>",c.contentOnly===!0?f:(i=this.body)!=null?i.append(f):void 0)},cell_renderer:function(a,b,c){var d;return _.isFunction(b.renderer)?b.renderer.apply(this,[a,b,c]):b.data.match(/\w+\.\w+/)?(d=a.attributes||a,Luca.util.nestedValue(b.data,d)):(typeof a.get=="function"?a.get(b.data):void 0)||a[b.data]},double_click_handler:function(a){var b,c,d,e;return b=c=$(a.currentTarget),e=c.data("row-index"),d=this.collection.at(e),this.trigger("row:double:click",this,d,e)},click_handler:function(a){var b,c,d,e;return b=c=$(a.currentTarget),e=c.data("row-index"),d=this.collection.at(e),this.trigger("row:click",this,d,e),$("."+this.rowClass,this.body).removeClass("selected-row"),b.addClass("selected-row")}})}.call(this),function(){_.component("Luca.components.RecordManager").extend("Luca.containers.CardView")["with"]({events:{"click .record-manager-grid .edit-link":"edit_handler","click .record-manager-filter .filter-button":"filter_handler","click .record-manager-filter .reset-button":"reset_filter_handler","click .add-button":"add_handler","click .refresh-button":"filter_handler","click .back-to-search-button":"back_to_search_handler"},record_manager:!0,initialize:function(a){var b=this;this.options=a!=null?a:{},Luca.containers.CardView.prototype.initialize.apply(this,arguments);if(!this.name)throw"Record Managers must specify a name";return _.bindAll(this,"add_handler","edit_handler","filter_handler","reset_filter_handler"),this.filterConfig&&_.extend(this.components[0][0],this.filterConfig),this.gridConfig&&_.extend(this.components[0][1],this.gridConfig),this.editorConfig&&_.extend(this.components[1][0],this.editorConfig),this.bind("after:card:switch",function(){b.activeCard===0&&b.trigger("activation:search",b);if(b.activeCard===1)return b.trigger("activation:editor",b)})},components:[{ctype:"split_view",relayFirstActivation:!0,components:[{ctype:"form_view"},{ctype:"grid_view"}]},{ctype:"form_view"}],getSearch:function(a,b){return a==null&&(a=!1),b==null&&(b=!0),a===!0&&this.activate(0),b===!0&&this.getEditor().clear(),_.first(this.components)},getFilter:function(){return _.first(this.getSearch().components)},getGrid:function(){return _.last(this.getSearch().components)},getCollection:function(){return this.getGrid().collection},getEditor:function(a,b){var c=this;return a==null&&(a=!1),b==null&&(b=!1),a===!0&&this.activate(1,function(a,b,c){return c.reset()}),_.last(this.components)},beforeRender:function(){var a;return this.$el.addClass(""+this.resource+"-manager"),(a=Luca.containers.CardView.prototype.beforeRender)!=null&&a.apply(this,arguments),this.$el.addClass(""+this.resource+" record-manager"),this.$el.data("resource",this.resource),$(this.getGrid().el).addClass(""+this.resource+" record-manager-grid"),$(this.getFilter().el).addClass(""+this.resource+" record-manager-filter"),$(this.getEditor().el).addClass(""+this.resource+" record-manager-editor")},afterRender:function(){var a,b,c,d,e,f,g=this;return(f=Luca.containers.CardView.prototype.afterRender)!=null&&f.apply(this,arguments),e=this,d=this.getGrid(),c=this.getFilter(),b=this.getEditor(),a=this.getCollection(),d.bind("row:double:click",function(a,c,d){return e.getEditor(!0),b.loadModel(c)}),b.bind("before:submit",function(){return $(".form-view-flash-container",g.el).html(""),$(".form-view-body",g.el).spin("large")}),b.bind("after:submit",function(){return $(".form-view-body",g.el).spin(!1)}),b.bind("after:submit:fatal_error",function(){return $(".form-view-flash-container",g.el).append("<li class='error'>There was an internal server error saving this record. Please contact developers@benchprep.com to report this error.</li>"),$(".form-view-body",g.el).spin(!1)}),b.bind("after:submit:error",function(a,b,c){return _(c.errors).each(function(a){return $(".form-view-flash-container",g.el).append("<li class='error'>"+a+"</li>")})}),b.bind("after:submit:success",function(a,b,c){return $(".form-view-flash-container",g.el).append("<li class='success'>Successfully Saved Record</li>"),b.set(c.result),a.loadModel(b),d.refresh(),_.delay(function(){return $(".form-view-flash-container li.success",g.el).fadeOut(1e3),$(".form-view-flash-container",g.el).html("")},4e3)}),c.eachComponent(function(a){try{return a.bind("on:change",g.filter_handler)}catch(b){return}})},firstActivation:function(){return this.getGrid().trigger("first:activation",this,this.getGrid()),this.getFilter().trigger("first:activation",this,this.getGrid())},reload:function(){var a,b,c,d;return d=this,c=this.getGrid(),b=this.getFilter(),a=this.getEditor(),b.clear(),c.applyFilter()},manageRecord:function(a){var b,c=this;return b=this.getCollection().get(a),b?this.loadModel(b):(console.log("Could Not Find Model, building and fetching"),b=this.buildModel(),b.set({id:a},{silent:!0}),b.fetch({success:function(a,b){return c.loadModel(a)}}))},loadModel:function(a){return this.current_model=a,this.getEditor(!0).loadModel(this.current_model),this.trigger("model:loaded",this.current_model)},currentModel:function(){return this.getEditor(!1).currentModel()},buildModel:function(){var a,b,c;return b=this.getEditor(!1),a=this.getCollection(),a.add([{}],{silent:!0,at:0}),c=a.at(0)},createModel:function(){return this.loadModel(this.buildModel())},reset_filter_handler:function(a){return this.getFilter().clear(),this.getGrid().applyFilter(this.getFilter().getValues())},filter_handler:function(a){return this.getGrid().applyFilter(this.getFilter().getValues())},edit_handler:function(a){var b,c,d,e;return b=d=$(a.currentTarget),e=d.parents("tr").data("record-id"),e&&(c=this.getGrid().collection.get(e)),c||(c=this.getGrid().collection.at(row_index))},add_handler:function(a){var b,c,d;return b=c=$(a.currentTarget),d=c.parents(".record-manager").eq(0).data("resource")},destroy_handler:function(a){},back_to_search_handler:function(){}})}.call(this),function(){Luca.Router=Backbone.Router.extend({routes:{"":"default"},initialize:function(a){var b=this;return this.options=a,_.extend(this,this.options),this.routeHandlers=_(this.routes).values(),_(this.routeHandlers).each(function(a){return b.bind("route:"+a,function(){return b.trigger.apply(b,["change:navigation",a].concat(_(arguments).flatten()))})})},navigate:function(a,b){return b==null&&(b=!1),Backbone.Router.prototype.navigate.apply(this,arguments),this.buildPathFrom(Backbone.history.getFragment())},buildPathFrom:function(a){var b=this;return _(this.routes).each(function(c,d){var e,f;f=b._routeToRegExp(d);if(f.test(a))return e=b._extractParameters(f,a),b.trigger.apply(b,["change:navigation",c].concat(e))})}})}.call(this),function(){}.call(this);
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: luca
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.59
4
+ version: 0.8.599
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: