define(["view/base","model/dashboard","jquery-validate"],function(a,s){var i=a.extend({events:{"click .saveCloseDashboard":"checkValidationClose","click .saveDashboard":"checkValidation","hidden #addDashboard":"_cleanUp","shown #addDashboard":"focusFirst"},initialize:function(a){_.bind(this,"checkValidation","_cleanUp"),this.user=a.user,this.templar=a.templar},render:function(){this.templar.render({path:"adddashboard",el:this.$el,data:{}}),this.$modal=this.$el.find(".add-dashboard"),this.resizeModal($("#addDashboard"),"small",!0),this.setAddDashboardValidation()},setAddDashboardValidation:function(){this.form=$("#addDashboardForm"),this.validator=this.form.validate({rules:{dashboardName:{required:!0}},highlight:function(a){$(a).closest(".control-group").addClass("error")},success:function(a){a.closest(".control-group").removeClass("error"),$(a).remove()},submitHandler:function(){this.close?this.saveFinish():this.save()}.bind(this)})},checkValidation:function(){this.close=!1,this.form.submit()},checkValidationClose:function(){this.close=!0,this.form.submit()},save:function(){this._saveDashboard(function(){this._cleanUp()}.bind(this))},saveFinish:function(){this._saveDashboard(function(){this._closeModal()}.bind(this))},destructor:function(){var a=this.$el.prev();this.remove(),this.off(),this.$el=$("
").insertAfter(a)},_saveDashboard:function(a){this.model.save({userId:this.user.get("id"),name:this.$el.find("#dashboardName").val(),description:this.$el.find("#dashboardDescription").val()},{success:function(s){this.collection.add(s),Backbone.Mediator.pub("view:adddashboard:save",{model:s,message:"The dashboard '"+s.get("name")+"' was added.",attention:"Dashboard Saved!"}),"function"==typeof a&&a()}.bind(this),error:function(){this.validator.showErrors({dashboardName:"That dashboard name already exists!"})}.bind(this)})},_closeModal:function(){this._cleanUp(),this.$modal.modal("hide")},_cleanUp:function(){this.$el.find("#dashboardName").val(""),this.$el.find("#dashboardDescription").val(""),this.$el.find("#dashboardName").parent().removeClass("error"),this.validator.resetForm(),this.model=new s}});return i});