From 75a989fc4180bfda381c788a42f3350dfeb7ea6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Tue, 12 May 2015 19:20:26 +0200 Subject: [PATCH] 06f99208fee0a943cb99d108bd04a67ea18375bb --- dist/index.html | 6 +-- dist/js/app-loader.js | 2 +- dist/js/app.js | 14 +++---- dist/js/app.js.map | 2 +- dist/js/libs.js | 22 +++++------ dist/js/libs.js.map | 2 +- dist/js/templates.js | 92 +++++++++++++++++++++---------------------- dist/styles/main.css | 4 +- 8 files changed, 72 insertions(+), 72 deletions(-) diff --git a/dist/index.html b/dist/index.html index 3fa79f5..57dea6e 100644 --- a/dist/index.html +++ b/dist/index.html @@ -159,8 +159,8 @@

Loading...

- - - + + + \ No newline at end of file diff --git a/dist/js/app-loader.js b/dist/js/app-loader.js index 59f2285..ba26d9f 100644 --- a/dist/js/app-loader.js +++ b/dist/js/app-loader.js @@ -1,7 +1,7 @@ (function() { var promise, version; - version = 1430848723268; + version = 1431451194543; window.taigaConfig = { "api": "http://localhost:8000/api/v1/", diff --git a/dist/js/app.js b/dist/js/app.js index 6bb0e2d..7b73ec7 100644 --- a/dist/js/app.js +++ b/dist/js/app.js @@ -7,11 +7,11 @@ }}(this)),this.scope.$on("sprintform:edit:success",function(_this){return function(){return _this.loadProjectStats()}}(this)),this.scope.$on("sprintform:remove:success",function(_this){return function(){return _this.loadSprints(),_this.loadProjectStats(),_this.loadUserstories()}}(this)),this.scope.$on("usform:edit:success",function(_this){return function(){return _this.loadUserstories()}}(this)),this.scope.$on("sprint:us:move",this.moveUs),this.scope.$on("sprint:us:moved",this.loadSprints),this.scope.$on("sprint:us:moved",this.loadProjectStats),this.scope.$on("backlog:load-closed-sprints",this.loadClosedSprints),this.scope.$on("backlog:unload-closed-sprints",this.unloadClosedSprints)},BacklogController.prototype.initializeSubscription=function(){var routingKey1,routingKey2;return routingKey1="changes.project."+this.scope.projectId+".userstories",this.events.subscribe(this.scope,routingKey1,function(_this){return function(){return _this.loadUserstories(),_this.loadSprints()}}(this)),routingKey2="changes.project."+this.scope.projectId+".milestones",this.events.subscribe(this.scope,routingKey2,function(_this){return function(){return _this.loadSprints()}}(this))},BacklogController.prototype.toggleShowTags=function(){return this.scope.$apply(function(_this){return function(){return _this.showTags=!_this.showTags,_this.rs.userstories.storeShowTags(_this.scope.projectId,_this.showTags)}}(this))},BacklogController.prototype.toggleActiveFilters=function(){return this.activeFilters=!this.activeFilters},BacklogController.prototype.loadProjectStats=function(){return this.rs.projects.stats(this.scope.projectId).then(function(_this){return function(stats){return _this.scope.stats=stats,_this.scope.stats.completedPercentage=stats.total_points?Math.round(100*stats.closed_points/stats.total_points):0,stats}}(this))},BacklogController.prototype.refreshTagsColors=function(){return this.rs.projects.tagsColors(this.scope.projectId).then(function(_this){return function(tags_colors){return _this.scope.project.tags_colors=tags_colors}}(this))},BacklogController.prototype.unloadClosedSprints=function(){return this.scope.$apply(function(_this){return function(){return _this.scope.closedSprints=[],_this.rootscope.$broadcast("closed-sprints:reloaded",[])}}(this))},BacklogController.prototype.loadClosedSprints=function(){var params;return params={closed:!0},this.rs.sprints.list(this.scope.projectId,params).then(function(_this){return function(sprints){var j,len,sprint;for(j=0,len=sprints.length;len>j;j++)sprint=sprints[j],sprint.user_stories=_.sortBy(sprint.user_stories,"sprint_order");return _this.scope.closedSprints=sprints,_this.rootscope.$broadcast("closed-sprints:reloaded",sprints),sprints}}(this))},BacklogController.prototype.loadSprints=function(){var params;return params={closed:!1},this.rs.sprints.list(this.scope.projectId,params).then(function(_this){return function(sprints){var j,len,sprint;for(j=0,len=sprints.length;len>j;j++)sprint=sprints[j],sprint.user_stories=_.sortBy(sprint.user_stories,"sprint_order");return _this.scope.sprints=sprints,_this.scope.openSprints=_.filter(sprints,function(sprint){return!sprint.closed}).reverse(),_this.scope.closedSprints||(_this.scope.closedSprints=[]),_this.scope.sprintsCounter=sprints.length,_this.scope.sprintsById=groupBy(sprints,function(x){return x.id}),_this.rootscope.$broadcast("sprints:loaded",sprints),sprints}}(this))},BacklogController.prototype.resetFilters=function(){var selectedStatuses,selectedTags;return selectedTags=_.filter(this.scope.filters.tags,"selected"),selectedStatuses=_.filter(this.scope.filters.statuses,"selected"),this.scope.filtersQ="",_.each([selectedTags,selectedStatuses],function(_this){return function(filterGrp){return _.each(filterGrp,function(item){var filter,filters;return filters=_this.scope.filters[item.type],filter=_.find(filters,{id:taiga.toString(item.id)}),filter.selected=!1,_this.unselectFilter(item.type,item.id)})}}(this)),this.loadUserstories()},BacklogController.prototype.loadUserstories=function(){var promise;return this.scope.httpParams=this.getUrlFilters(),this.rs.userstories.storeQueryParams(this.scope.projectId,this.scope.httpParams),promise=this.q.all([this.refreshTagsColors(),this.rs.userstories.listUnassigned(this.scope.projectId,this.scope.httpParams)]),promise.then(function(_this){return function(data){var userstories;return userstories=data[1],_this.scope.userstories=_.sortBy(userstories,"backlog_order"),_this.setSearchDataFilters(),_this.filterVisibleUserstories(),_this.generateFilters(),_this.rootscope.$broadcast("filters:loaded",_this.scope.filters),scopeDefer(_this.scope,function(){return _this.scope.$broadcast("userstories:loaded")}),userstories}}(this))},BacklogController.prototype.loadBacklog=function(){return this.q.all([this.loadProjectStats(),this.loadSprints(),this.loadUserstories()])},BacklogController.prototype.loadProject=function(){return this.rs.projects.getBySlug(this.params.pslug).then(function(_this){return function(project){return project.is_backlog_activated||_this.location.path(_this.navUrls.resolve("permission-denied")),_this.scope.projectId=project.id,_this.scope.project=project,_this.scope.totalClosedMilestones=project.total_closed_milestones,_this.scope.$emit("project:loaded",project),_this.scope.points=_.sortBy(project.points,"order"),_this.scope.pointsById=groupBy(project.points,function(x){return x.id}),_this.scope.usStatusById=groupBy(project.us_statuses,function(x){return x.id}),_this.scope.usStatusList=_.sortBy(project.us_statuses,"id"),project}}(this))},BacklogController.prototype.loadInitialData=function(){var promise;return promise=this.loadProject(),promise.then(function(_this){return function(project){return _this.fillUsersAndRoles(project.users,project.roles),_this.initializeSubscription()}}(this)),promise.then(function(_this){return function(){return _this.loadBacklog()}}(this))},BacklogController.prototype.filterVisibleUserstories=function(){return this.scope.visibleUserstories=[],this.scope.visibleUserstories=_.reject(this.scope.userstories,function(_this){return function(us){return _.some(us.tags,function(tag){return _this.isFilterSelected("tag",tag)})}}(this)),this.scope.visibleUserstories=_.filter(this.scope.visibleUserstories,function(_this){return function(us){return _this.searchdata.statuses&&Object.keys(_this.searchdata.statuses).length?_this.isFilterSelected("statuses",taiga.toString(us.status)):!0}}(this))},BacklogController.prototype.prepareBulkUpdateData=function(uses,field){return null==field&&(field="backlog_order"),_.map(uses,function(x){return{us_id:x.id,order:x[field]}})},BacklogController.prototype.resortUserStories=function(uses,field){var index,item,items,j,len;for(null==field&&(field="backlog_order"),items=[],index=j=0,len=uses.length;len>j;index=++j)item=uses[index],item[field]=index,item.isModified()&&items.push(item);return items},BacklogController.prototype.moveUs=function(ctx,usList,newUsIndex,newSprintId){var data,items,j,l,len,len1,len2,m,newSprint,oldSprintId,project,promise,promises,us,userstories;if(oldSprintId=usList[0].milestone,project=usList[0].project,newSprintId===oldSprintId)return items=null,userstories=null,userstories=null===newSprintId?this.scope.userstories:this.scope.sprintsById[newSprintId].user_stories,this.scope.$apply(function(){var args,j,key,len,r,us;for(key=j=0,len=usList.length;len>j;key=++j)us=usList[key],r=userstories.indexOf(us),userstories.splice(r,1);return args=[newUsIndex,0].concat(usList),Array.prototype.splice.apply(userstories,args)}),null===newSprintId?(items=this.resortUserStories(userstories,"backlog_order"),data=this.prepareBulkUpdateData(items,"backlog_order"),this.rs.userstories.bulkUpdateBacklogOrder(project,data).then(function(_this){return function(){var j,len,results,us;for(results=[],j=0,len=usList.length;len>j;j++)us=usList[j],results.push(_this.rootscope.$broadcast("sprint:us:moved",us,oldSprintId,newSprintId));return results}}(this))):(items=this.resortUserStories(userstories,"sprint_order"),data=this.prepareBulkUpdateData(items,"sprint_order"),this.rs.userstories.bulkUpdateSprintOrder(project,data).then(function(_this){return function(){var j,len,results,us;for(results=[],j=0,len=usList.length;len>j;j++)us=usList[j],results.push(_this.rootscope.$broadcast("sprint:us:moved",us,oldSprintId,newSprintId));return results}}(this))),promise;if(null===newSprintId){for(j=0,len=usList.length;len>j;j++)us=usList[j],us.milestone=null;return this.scope.$apply(function(_this){return function(){var args,key,l,len1,r,results,sprint;for(args=[newUsIndex,0].concat(usList),Array.prototype.splice.apply(_this.scope.userstories,args),Array.prototype.splice.apply(_this.scope.visibleUserstories,args),_this.filterVisibleUserstories(),sprint=_this.scope.sprintsById[oldSprintId],results=[],key=l=0,len1=usList.length;len1>l;key=++l)us=usList[key],r=sprint.user_stories.indexOf(us),results.push(sprint.user_stories.splice(r,1));return results}}(this)),promise=this.repo.save(us),promise=promise.then(function(_this){return function(){return items=_this.resortUserStories(_this.scope.userstories,"backlog_order"),data=_this.prepareBulkUpdateData(items,"backlog_order"),_this.rs.userstories.bulkUpdateBacklogOrder(us.project,data).then(function(){return _this.rootscope.$broadcast("sprint:us:moved",us,oldSprintId,newSprintId)})}}(this)),promise.then(null,function(){return console.log("FAIL")}),promise}if(newSprint=this.scope.sprintsById[newSprintId],null===oldSprintId){for(l=0,len1=usList.length;len1>l;l++)us=usList[l],us.milestone=newSprintId;this.scope.$apply(function(_this){return function(){var args,key,len2,m,r,results;for(args=[newUsIndex,0].concat(usList),Array.prototype.splice.apply(newSprint.user_stories,args),results=[],key=m=0,len2=usList.length;len2>m;key=++m)us=usList[key],r=_this.scope.visibleUserstories.indexOf(us),_this.scope.visibleUserstories.splice(r,1),r=_this.scope.userstories.indexOf(us),results.push(_this.scope.userstories.splice(r,1));return results}}(this))}else{for(m=0,len2=usList.length;len2>m;m++)us=usList[m],us.milestone=newSprintId;this.scope.$apply(function(_this){return function(){var args,len3,n,oldSprint,r,results;for(args=[newUsIndex,0].concat(usList),Array.prototype.splice.apply(newSprint.user_stories,args),results=[],n=0,len3=usList.length;len3>n;n++)us=usList[n],oldSprint=_this.scope.sprintsById[oldSprintId],r=oldSprint.user_stories.indexOf(us),results.push(oldSprint.user_stories.splice(r,1));return results}}(this))}return promises=_.map(usList,function(_this){return function(us){return _this.repo.save(us)}}(this)),promise=this.q.all(promises).then(function(_this){return function(){return items=_this.resortUserStories(newSprint.user_stories,"sprint_order"),data=_this.prepareBulkUpdateData(items,"sprint_order"),_this.rs.userstories.bulkUpdateSprintOrder(project,data).then(function(){return _this.rootscope.$broadcast("sprint:us:moved",us,oldSprintId,newSprintId)}),_this.rs.userstories.bulkUpdateBacklogOrder(project,data).then(function(){var len3,n,results;for(results=[],n=0,len3=usList.length;len3>n;n++)us=usList[n],results.push(_this.rootscope.$broadcast("sprint:us:moved",us,oldSprintId,newSprintId));return results})}}(this)),promise.then(null,function(){return console.log("FAIL")}),promise},BacklogController.prototype.isFilterSelected=function(type,id){return null!=this.searchdata[type]&&this.searchdata[type][id]?!0:!1},BacklogController.prototype.setSearchDataFilters=function(){var name,results,urlfilters,val,value;urlfilters=this.getUrlFilters(),urlfilters.q&&(this.scope.filtersQ=this.scope.filtersQ||urlfilters.q),this.searchdata={},results=[];for(name in urlfilters)value=urlfilters[name],null==this.searchdata[name]&&(this.searchdata[name]={}),results.push(function(){var j,len,ref,results1;for(ref=taiga.toString(value).split(","),results1=[],j=0,len=ref.length;len>j;j++)val=ref[j],results1.push(this.searchdata[name][val]=!0);return results1}.call(this));return results},BacklogController.prototype.getUrlFilters=function(){return _.pick(this.location.search(),"statuses","tags","q")},BacklogController.prototype.generateFilters=function(){var plainStatuses,plainTags,selectedStatuses,selectedTags;return this.scope.filters={},plainTags=_.flatten(_.filter(_.map(this.scope.visibleUserstories,"tags"))),plainTags.sort(),this.scope.filters.tags=_.map(_.countBy(plainTags),function(_this){return function(v,k){var obj;return obj={id:k,type:"tags",name:k,color:_this.scope.project.tags_colors[k],count:v},_this.isFilterSelected("tags",obj.id)&&(obj.selected=!0),obj}}(this)),selectedTags=_.filter(this.scope.filters.tags,"selected"),selectedTags=_.map(selectedTags,"name"),plainStatuses=_.map(this.scope.visibleUserstories,"status"),plainStatuses=_.filter(plainStatuses,function(){return function(status){return status?status:void 0}}(this)),this.scope.filters.statuses=_.map(_.countBy(plainStatuses),function(_this){return function(v,k){var obj;return obj={id:k,type:"statuses",name:_this.scope.usStatusById[k].name,color:_this.scope.usStatusById[k].color,count:v},_this.isFilterSelected("statuses",obj.id)&&(obj.selected=!0),obj}}(this)),selectedStatuses=_.filter(this.scope.filters.statuses,"selected"),selectedStatuses=_.map(selectedStatuses,"id"),this.rs.userstories.storeQueryParams(this.scope.projectId,{status:selectedStatuses,tags:selectedTags,project:this.scope.projectId,milestone:null})},BacklogController.prototype.editUserStory=function(us){return this.rootscope.$broadcast("usform:edit",us)},BacklogController.prototype.deleteUserStory=function(us){var message,title;return title="Delete User Story",message=us.subject,this.confirm.askOnDelete(title,message).then(function(_this){return function(finish){var promise;return _this.scope.userstories=_.without(_this.scope.userstories,us),_this.filterVisibleUserstories(),promise=_this.repo.remove(us),promise.then(function(){return finish(),_this.loadBacklog()}),promise.then(null,function(){return finish(!1),_this.confirm.notify("error")})}}(this))},BacklogController.prototype.addNewUs=function(type){switch(type){case"standard":return this.rootscope.$broadcast("usform:new",this.scope.projectId,this.scope.project.default_us_status,this.scope.usStatusList);case"bulk":return this.rootscope.$broadcast("usform:bulk",this.scope.projectId,this.scope.project.default_us_status)}},BacklogController.prototype.addNewSprint=function(){return this.rootscope.$broadcast("sprintform:create",this.scope.projectId)},BacklogController}(mixOf(taiga.Controller,taiga.PageMixin,taiga.FiltersMixin)),module.controller("BacklogController",BacklogController),BacklogDirective=function($repo,$rootscope){var doomLineTemplate,link,linkDoomLine,linkFilters,linkToolbar,showHideFilter,showHideTags;return doomLineTemplate=_.template('
Project Scope [Doomline]
'),linkDoomLine=function($scope,$el){var addDoomLineDom,getUsItems,reloadDoomLine,removeDoomlineDom;return reloadDoomLine=function(){var current_sum,domElement,i,j,len,ref,results,stats,total_points,us;if(null!=$scope.stats){if(removeDoomlineDom(),stats=$scope.stats,total_points=stats.total_points,current_sum=stats.assigned_points,!$scope.visibleUserstories)return;for(ref=$scope.visibleUserstories,results=[],i=j=0,len=ref.length;len>j;i=++j){if(us=ref[i],current_sum+=us.total_points,current_sum>total_points){domElement=$el.find(".backlog-table-body .us-item-row")[i],addDoomLineDom(domElement);break}results.push(void 0)}return results}},removeDoomlineDom=function(){return $el.find(".doom-line").remove()},addDoomLineDom=function(element){return $(element).before(doomLineTemplate({}))},getUsItems=function(){var rowElements;return rowElements=$el.find(".backlog-table-body .us-item-row"),_.map(rowElements,function(x){return angular.element(x)})},$scope.$on("userstories:loaded",reloadDoomLine),$scope.$watch("stats",reloadDoomLine)},linkToolbar=function($scope,$el,$attrs,$ctrl){var moveToCurrentSprint;return moveToCurrentSprint=function(selectedUss){var extraPoints,totalExtraPoints,ussCurrent;return ussCurrent=_($scope.userstories),$scope.userstories=ussCurrent.without.apply(ussCurrent,selectedUss).value(),extraPoints=_.map(selectedUss,function(v){return v.total_points}),totalExtraPoints=_.reduce(extraPoints,function(acc,num){return acc+num}),$scope.sprints[0].user_stories=_.union($scope.sprints[0].user_stories,selectedUss),$scope.sprints[0].total_points+=totalExtraPoints,$ctrl.filterVisibleUserstories(),$repo.saveAll(selectedUss).then(function(){return $ctrl.loadSprints(),$ctrl.loadProjectStats()})},$el.on("change",".backlog-table-body .user-stories input:checkbox",function(event){var moveToCurrentSprintDom,selectedUsDom,target;return target=angular.element(event.currentTarget),moveToCurrentSprintDom=$el.find("#move-to-current-sprint"),selectedUsDom=$el.find(".backlog-table-body .user-stories input:checkbox:checked"),selectedUsDom.length>0&&$scope.sprints.length>0?moveToCurrentSprintDom.show():moveToCurrentSprintDom.hide(),target.closest(".us-item-row").toggleClass("ui-multisortable-multiple")}),$el.on("click","#move-to-current-sprint",function(){return function(){var ussDom,ussToMove;return ussDom=$el.find(".backlog-table-body .user-stories input:checkbox:checked"),ussToMove=_.map(ussDom,function(item){var itemScope;return item=$(item).closest(".tg-scope"),itemScope=item.scope(),itemScope.us.milestone=$scope.sprints[0].id,itemScope.us}),$scope.$apply(_.partial(moveToCurrentSprint,ussToMove))}}(this)),$el.on("click","#show-tags",function(event){return event.preventDefault(),$ctrl.toggleShowTags(),showHideTags($ctrl)})},showHideTags=function($ctrl){var elm;return elm=angular.element("#show-tags"),$ctrl.showTags?(elm.addClass("active"),elm.find(".text").text("Hide Tags")):(elm.removeClass("active"),elm.find(".text").text("Show Tags"))},showHideFilter=function($scope,$el,$ctrl){var sidebar,target;return sidebar=$el.find("sidebar.filters-bar"),sidebar.one("transitionend",function(){return timeout(150,function(){return $rootscope.$broadcast("resize"),$(".burndown").css("visibility","visible")})}),target=angular.element("#show-filters-button"),$(".burndown").css("visibility","hidden"),sidebar.toggleClass("active"),target.toggleClass("active"),toggleText(target.find(".text"),["Remove Filters","Show Filters"]),sidebar.hasClass("active")||$ctrl.resetFilters(),$ctrl.toggleActiveFilters()},linkFilters=function($scope,$el,$attrs,$ctrl){return $scope.filtersSearch={},$el.on("click","#show-filters-button",function(event){return event.preventDefault(),$scope.$apply(function(){return showHideFilter($scope,$el,$ctrl)})})},link=function($scope,$el,$attrs){var $ctrl,filters;return $ctrl=$el.controller(),linkToolbar($scope,$el,$attrs,$ctrl),linkFilters($scope,$el,$attrs,$ctrl),linkDoomLine($scope,$el,$attrs,$ctrl),$el.find(".backlog-table-body").disableSelection(),filters=$ctrl.getUrlFilters(),(filters.statuses||filters.tags||filters.q)&&showHideFilter($scope,$el,$ctrl),$scope.$on("showTags",function(){return showHideTags($ctrl)}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgBacklog",["$tgRepo","$rootScope",BacklogDirective]),UsRolePointsSelectorDirective=function($rootscope,$template){var link,selectionTemplate;return selectionTemplate=$template.get("backlog/us-role-points-popover.html",!0),link=function($scope,$el){return bindOnce($scope,"project",function(project){var numberOfRoles,roles;return roles=_.filter(project.roles,"computable"),numberOfRoles=_.size(roles),numberOfRoles>1?$el.append(selectionTemplate({roles:roles})):($el.find(".icon-arrow-bottom").remove(),$el.find(".header-points").addClass("not-clickable"))}),$scope.$on("uspoints:select",function(ctx,roleId,roleName){return $el.find(".popover").popover().close(),$el.find(".header-points").html(roleName+"/Total")}),$scope.$on("uspoints:clear-selection",function(){return $el.find(".popover").popover().close(),$el.find(".header-points").text("Points")}),$el.on("click",function(event){var target;return target=angular.element(event.target),(target.is("span")||target.is("div"))&&event.stopPropagation(),$el.find(".popover").popover().open()}),$el.on("click",".clear-selection",function(event){return event.preventDefault(),event.stopPropagation(),$rootscope.$broadcast("uspoints:clear-selection")}),$el.on("click",".role",function(event){var rolScope,target;return event.preventDefault(),event.stopPropagation(),target=angular.element(event.currentTarget),rolScope=target.scope(),$rootscope.$broadcast("uspoints:select",target.data("role-id"),target.text())}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgUsRolePointsSelector",["$rootScope","$tgTemplate",UsRolePointsSelectorDirective]),UsPointsDirective=function($tgEstimationsService,$repo,$tgTemplate){var link,rolesTemplate;return rolesTemplate=$tgTemplate.get("common/estimation/us-points-roles-popover.html",!0),link=function($scope,$el,$attrs){var $ctrl,bindClickElements,estimationProcess,filteringRoleId,renderRolesSelector,selectedRoleId,updatingSelectedRoleId;return $ctrl=$el.controller(),updatingSelectedRoleId=null,selectedRoleId=null,filteringRoleId=null,estimationProcess=null,$scope.$on("uspoints:select",function(ctx,roleId){var us;return us=$scope.$eval($attrs.tgBacklogUsPoints),selectedRoleId=roleId,estimationProcess.render()}),$scope.$on("uspoints:clear-selection",function(){var us;return us=$scope.$eval($attrs.tgBacklogUsPoints),selectedRoleId=null,estimationProcess.render()}),$scope.$watch($attrs.tgBacklogUsPoints,function(us){var roles;return us?(estimationProcess=$tgEstimationsService.create($el,us,$scope.project),roles=estimationProcess.calculateRoles(),0===roles.length?($el.find(".icon-arrow-bottom").remove(),$el.find("a.us-points").addClass("not-clickable")):1===roles.length&&(selectedRoleId=_.keys(us.points)[0]),estimationProcess.isEditable&&bindClickElements(),estimationProcess.onSelectedPointForRole=function(roleId,pointId){return this.save(roleId,pointId).then(function(){return $ctrl.loadProjectStats()})},estimationProcess.render=function(){var ctx,html,mainTemplate,pointId,pointObj,template,text,title,totalPoints;return totalPoints=this.calculateTotalPoints(),null==selectedRoleId||1===roles.length?(text=totalPoints,title=totalPoints):(pointId=this.us.points[selectedRoleId],pointObj=this.pointsById[pointId],text=pointObj.name+" / "+totalPoints+"",title=pointObj.name+" / "+totalPoints),ctx={totalPoints:totalPoints,roles:this.calculateRoles(),editable:this.isEditable,text:text,title:title},mainTemplate="common/estimation/us-estimation-total.html",template=$tgTemplate.get(mainTemplate,!0),html=template(ctx),this.$el.html(html)},estimationProcess.render()):void 0}),renderRolesSelector=function(){var html,roles;return roles=estimationProcess.calculateRoles(),html=rolesTemplate({roles:roles}),$el.append(html),$el.find(".pop-role").popover().open(function(){return $(this).remove()})},bindClickElements=function(){return $el.on("click","a.us-points span",function(event){var us;return event.preventDefault(),event.stopPropagation(),us=$scope.$eval($attrs.tgBacklogUsPoints),updatingSelectedRoleId=selectedRoleId,null!=selectedRoleId?estimationProcess.renderPointsSelector(selectedRoleId):renderRolesSelector()}),$el.on("click",".role",function(event){var popRolesDom,target,us;return event.preventDefault(),event.stopPropagation(),target=angular.element(event.currentTarget),us=$scope.$eval($attrs.tgBacklogUsPoints),updatingSelectedRoleId=target.data("role-id"),popRolesDom=$el.find(".pop-role"),popRolesDom.find("a").removeClass("active"),popRolesDom.find("a[data-role-id='"+updatingSelectedRoleId+"']").addClass("active"),estimationProcess.renderPointsSelector(updatingSelectedRoleId)})},$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgBacklogUsPoints",["$tgEstimationsService","$tgRepo","$tgTemplate",UsPointsDirective]),tgBacklogGraphDirective=function(){var link,redrawChart;return redrawChart=function(element,dataToDraw){var client_increment_line,colors,data,evolution_line,milestonesRange,optimal_line,options,results,team_increment_line,width,zero_line;return width=element.width(),element.height(width/6),milestonesRange=function(){results=[];for(var j=0,ref=dataToDraw.milestones.length-1;ref>=0?ref>=j:j>=ref;ref>=0?j++:j--)results.push(j);return results}.apply(this),data=[],zero_line=_.map(dataToDraw.milestones,function(){return 0}),data.push({data:_.zip(milestonesRange,zero_line),lines:{fillColor:"rgba(0,0,0,0)"},points:{show:!1}}),optimal_line=_.map(dataToDraw.milestones,function(ml){return ml.optimal}),data.push({data:_.zip(milestonesRange,optimal_line),lines:{fillColor:"rgba(120,120,120,0.2)"}}),evolution_line=_.filter(_.map(dataToDraw.milestones,function(ml){return ml.evolution}),function(evolution){return null!=evolution}),data.push({data:_.zip(milestonesRange,evolution_line),lines:{fillColor:"rgba(102,153,51,0.3)"}}),team_increment_line=_.map(dataToDraw.milestones,function(ml){return-ml["team-increment"]}),data.push({data:_.zip(milestonesRange,team_increment_line),lines:{fillColor:"rgba(153,51,51,0.3)"}}),client_increment_line=_.map(dataToDraw.milestones,function(ml){return-ml["team-increment"]-ml["client-increment"]}),data.push({data:_.zip(milestonesRange,client_increment_line),lines:{fillColor:"rgba(255,51,51,0.3)"}}),colors=["rgba(0,0,0,1)","rgba(120,120,120,0.2)","rgba(102,153,51,1)","rgba(153,51,51,1)","rgba(255,51,51,1)"],options={grid:{borderWidth:{top:0,right:1,left:0,bottom:0},borderColor:"#ccc",hoverable:!0},xaxis:{ticks:dataToDraw.milestones.length,axisLabel:"Sprints",axisLabelUseCanvas:!0,axisLabelFontSizePixels:14,axisLabelFontFamily:"Verdana, Arial, Helvetica, Tahoma, sans-serif",axisLabelPadding:15,tickFormatter:function(){return""}},series:{shadowSize:0,lines:{show:!0,fill:!0},points:{show:!0,fill:!0,radius:4,lineWidth:2}},colors:colors,tooltip:!0,tooltipOpts:{content:function(label,xval,yval,flotItem){return 1===flotItem.seriesIndex?"Optimal pending points for sprint "+xval+" should be "+yval:2===flotItem.seriesIndex?"Real pending points for sprint "+xval+" is "+yval:3===flotItem.seriesIndex?"Incremented points by team requirements for sprint "+xval+" is "+Math.abs(yval):"Incremented points by client requirements for sprint "+xval+" is "+Math.abs(yval)}}},element.empty(),element.plot(data,options).data("plot")},link=function($scope,$el){var element;return element=angular.element($el),$scope.$watch("stats",function(){return null!=$scope.stats?(redrawChart(element,$scope.stats),$scope.$on("resize",function(){return redrawChart(element,$scope.stats)})):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgGmBacklogGraph",tgBacklogGraphDirective),TgBacklogProgressBarDirective=function($template){var adjustPercentaje,link,render,template;return template=$template.get("backlog/progress-bar.html",!0),render=function(el,projectPointsPercentaje,closedPointsPercentaje){return el.html(template({projectPointsPercentaje:projectPointsPercentaje,closedPointsPercentaje:closedPointsPercentaje}))},adjustPercentaje=function(percentage){var adjusted;return adjusted=_.max([0,percentage]),adjusted=_.min([100,adjusted]),Math.round(adjusted)},link=function($scope,$el,$attrs){var element;return element=angular.element($el),$scope.$watch($attrs.tgBacklogProgressBar,function(stats){var closedPoints,closedPointsPercentaje,definedPoints,projectPointsPercentaje,totalPoints;return null!=stats?(totalPoints=stats.total_points,definedPoints=stats.defined_points,closedPoints=stats.closed_points,definedPoints>totalPoints?(projectPointsPercentaje=100*totalPoints/definedPoints,closedPointsPercentaje=100*closedPoints/definedPoints):(projectPointsPercentaje=100,closedPointsPercentaje=100*closedPoints/totalPoints),projectPointsPercentaje=adjustPercentaje(projectPointsPercentaje-3),closedPointsPercentaje=adjustPercentaje(closedPointsPercentaje-3),render($el,projectPointsPercentaje,closedPointsPercentaje)):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgBacklogProgressBar",["$tgTemplate",TgBacklogProgressBarDirective])}.call(this),function(){var BacklogEmptySortableDirective,BacklogSortableDirective,SprintSortableDirective,bindOnce,deleteElement,groupBy,mixOf,module,scopeDefer,taiga,toggleText;taiga=this.taiga,mixOf=this.taiga.mixOf,toggleText=this.taiga.toggleText,scopeDefer=this.taiga.scopeDefer,bindOnce=this.taiga.bindOnce,groupBy=this.taiga.groupBy,module=angular.module("taigaBacklog"),deleteElement=function(el){return el.scope().$destroy(),el.off(),el.remove()},BacklogSortableDirective=function($repo,$rs,$rootscope,$tgConfirm){var link;return link=function($scope,$el){var getUsIndex;return getUsIndex=function(){return function(us){return $(us).index(".backlog-table-body .row")}}(this),bindOnce($scope,"project",function(project){var filterError;if(project.my_permissions.indexOf("modify_us")>-1)return filterError=function(){var text;return text="You can't drop on backlog when filters are open",$tgConfirm.notify("error",text)},$el.sortable({items:".us-item-row",cancel:".popover",connectWith:".sprint",containment:".wrapper",dropOnEmpty:!0,placeholder:"row us-item-row us-item-drag sortable-placeholder",scroll:!0,tolerance:"pointer",revert:!1,cursorAt:{right:15},stop:function(){return $el.hasClass("active-filters")?($el.sortable("cancel"),filterError()):void 0}}),$el.on("multiplesortreceive",function(event,ui){var itemIndex,itemUs;return $el.hasClass("active-filters")?(ui.source.sortable("cancel"),void filterError()):(itemUs=ui.item.scope().us,itemIndex=getUsIndex(ui.item),deleteElement(ui.item),$scope.$emit("sprint:us:move",[itemUs],itemIndex,null),ui.item.find("a").removeClass("noclick"))}),$el.on("multiplesortstop",function(event,ui){var index,items,us;if(0!==$(ui.items[0]).parent().length&&!$el.hasClass("active-filters"))return items=_.sortBy(ui.items,function(item){return $(item).index()}),index=_.min(_.map(items,function(item){return getUsIndex(item)})),us=_.map(items,function(item){var itemUs;return item=$(item),itemUs=item.scope().us,setTimeout(function(){return function(){return item.find("a").removeClass("noclick")}}(this),300),itemUs}),$scope.$emit("sprint:us:move",us,index,null)}),$el.on("sortstart",function(event,ui){return ui.item.find("a").addClass("noclick")})}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},BacklogEmptySortableDirective=function(){var link;return link=function($scope,$el){return bindOnce($scope,"project",function(project){return project.my_permissions.indexOf("modify_us")>-1?($el.sortable({dropOnEmpty:!0}),$el.on("sortreceive",function(event,ui){var itemIndex,itemUs;return itemUs=ui.item.scope().us,itemIndex=ui.item.index(),deleteElement(ui.item),$scope.$emit("sprint:us:move",[itemUs],itemIndex,null),ui.item.find("a").removeClass("noclick")})):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},SprintSortableDirective=function(){var link;return link=function($scope,$el){return bindOnce($scope,"project",function(project){return project.my_permissions.indexOf("modify_us")>-1?($el.sortable({scroll:!0,dropOnEmpty:!0,items:".sprint-table .milestone-us-item-row",connectWith:".sprint,.backlog-table-body,.empty-backlog"}),$el.on("multiplesortreceive",function(event,ui){var index,items,us;return items=_.sortBy(ui.items,function(item){return $(item).index()}),index=_.min(_.map(items,function(item){return $(item).index()})),us=_.map(items,function(item){var itemUs;return item=$(item),itemUs=item.scope().us,deleteElement(item),itemUs}),$scope.$emit("sprint:us:move",us,index,$scope.sprint.id)}),$el.on("multiplesortstop",function(event,ui){var itemIndex,itemUs;if(0!==ui.item.parent().length)return itemUs=ui.item.scope().us,itemIndex=ui.item.index(),setTimeout(function(){return function(){return ui.item.find("a").removeClass("noclick")}}(this),300),$scope.$emit("sprint:us:move",[itemUs],itemIndex,$scope.sprint.id) }),$el.on("sortstart",function(event,ui){return ui.item.find("a").addClass("noclick")})):void 0})},{link:link}},module.directive("tgBacklogSortable",["$tgRepo","$tgResources","$rootScope","$tgConfirm",BacklogSortableDirective]),module.directive("tgBacklogEmptySortable",["$tgRepo","$tgResources","$rootScope",BacklogEmptySortableDirective]),module.directive("tgSprintSortable",["$tgRepo","$tgResources","$rootScope",SprintSortableDirective])}.call(this),function(){var BacklogSprintDirective,BacklogSprintHeaderDirective,ToggleExcludeClosedSprintsVisualization,module,taiga;taiga=this.taiga,module=angular.module("taigaBacklog"),BacklogSprintDirective=function($repo,$rootscope){var link,refreshSprintTableHeight,slideOptions,sprintTableMinHeight,toggleSprint;return sprintTableMinHeight=50,slideOptions={duration:500,easing:"linear"},refreshSprintTableHeight=function(){return function(sprintTable){return sprintTable.find(".row").length?sprintTable.css("height","auto"):sprintTable.css("height",sprintTableMinHeight)}}(this),toggleSprint=function(){return function($el){var sprintArrow,sprintTable;return sprintTable=$el.find(".sprint-table"),sprintArrow=$el.find(".icon-arrow-up"),sprintArrow.toggleClass("active"),sprintTable.toggleClass("open"),refreshSprintTableHeight(sprintTable)}}(this),link=function($scope,$el,$attrs){return $scope.$watch($attrs.tgBacklogSprint,function(sprint){return sprint=$scope.$eval($attrs.tgBacklogSprint),sprint.closed?$el.addClass("sprint-closed"):toggleSprint($el)}),$el.on("click",".sprint-name > .icon-arrow-up",function(event){return event.preventDefault(),toggleSprint($el),$el.find(".sprint-table").slideToggle(slideOptions)}),$el.on("click",".sprint-name > .icon-edit",function(event){var sprint;return event.preventDefault(),sprint=$scope.$eval($attrs.tgBacklogSprint),$rootscope.$broadcast("sprintform:edit",sprint)}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgBacklogSprint",["$tgRepo","$rootScope",BacklogSprintDirective]),BacklogSprintHeaderDirective=function($navUrls,$template){var link,template;return template=$template.get("backlog/sprint-header.html",!0),link=function($scope,$el,$attrs,$model){var isEditable,isVisible,render;return isEditable=function(){return-1!==$scope.project.my_permissions.indexOf("modify_milestone")},isVisible=function(){return-1!==$scope.project.my_permissions.indexOf("view_milestones")},render=function(sprint){var ctx,estimatedDateRange,finish,start,taskboardUrl;return taskboardUrl=$navUrls.resolve("project-taskboard",{project:$scope.project.slug,sprint:sprint.slug}),start=moment(sprint.estimated_start).format("DD MMM YYYY"),finish=moment(sprint.estimated_finish).format("DD MMM YYYY"),estimatedDateRange=start+"-"+finish,ctx={name:sprint.name,taskboardUrl:taskboardUrl,estimatedDateRange:estimatedDateRange,closedPoints:sprint.closed_points||0,totalPoints:sprint.total_points||0,isVisible:isVisible(),isEditable:isEditable()},$el.html(template(ctx))},$scope.$watch($attrs.ngModel,function(sprint){return render(sprint)}),$scope.$on("sprintform:edit:success",function(){return render($model.$modelValue)}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgBacklogSprintHeader",["$tgNavUrls","$tgTemplate",BacklogSprintHeaderDirective]),ToggleExcludeClosedSprintsVisualization=function($rootscope,$loading){var excludeClosedSprints,link;return excludeClosedSprints=!0,link=function($scope,$el){var loadingElm;return loadingElm=$("
"),$el.after(loadingElm),$el.on("click",function(event){return event.preventDefault(),excludeClosedSprints=!excludeClosedSprints,$loading.start(loadingElm),$rootscope.$broadcast(excludeClosedSprints?"backlog:unload-closed-sprints":"backlog:load-closed-sprints")}),$scope.$on("$destroy",function(){return $el.off()}),$scope.$on("closed-sprints:reloaded",function(){return function(ctx,sprints){var text;return $loading.finish(loadingElm),text=sprints.length>0?"Hide closed sprints":"Show closed sprints",$el.find(".text").text(text)}}(this))},{link:link}},module.directive("tgBacklogToggleClosedSprintsVisualization",["$rootScope","$tgLoading",ToggleExcludeClosedSprintsVisualization])}.call(this),function(){var SprintGraphDirective,bindOnce,groupBy,mixOf,module,scopeDefer,taiga,timeout,toggleText;taiga=this.taiga,mixOf=this.taiga.mixOf,toggleText=this.taiga.toggleText,scopeDefer=this.taiga.scopeDefer,bindOnce=this.taiga.bindOnce,groupBy=this.taiga.groupBy,timeout=this.taiga.timeout,module=angular.module("taigaTaskboard"),SprintGraphDirective=function(){var link,redrawChart;return redrawChart=function(element,dataToDraw){var data,days,options,width;return width=element.width(),element.height(240),days=_.map(dataToDraw,function(x){return moment(x.day)}),data=[],data.unshift({data:_.zip(days,_.map(dataToDraw,function(d){return d.optimal_points})),lines:{fillColor:"rgba(120,120,120,0.2)"}}),data.unshift({data:_.zip(days,_.map(dataToDraw,function(d){return d.open_points})),lines:{fillColor:"rgba(102,153,51,0.3)"}}),options={grid:{borderWidth:{top:0,right:1,left:0,bottom:0},borderColor:"#ccc",hoverable:!0},xaxis:{tickSize:[1,"day"],min:days[0],max:_.last(days),mode:"time",daysNames:days,axisLabel:"Day",axisLabelUseCanvas:!0,axisLabelFontSizePixels:12,axisLabelFontFamily:"Verdana, Arial, Helvetica, Tahoma, sans-serif",axisLabelPadding:5},yaxis:{min:0},series:{shadowSize:0,lines:{show:!0,fill:!0},points:{show:!0,fill:!0,radius:4,lineWidth:2}},colors:["rgba(102,153,51,1)","rgba(120,120,120,0.2)"],tooltip:!0,tooltipOpts:{content:function(label,xval,yval,flotItem){var formattedDate,roundedValue;return formattedDate=moment(xval).format("DD MMM"),roundedValue=Math.round(yval),1===flotItem.seriesIndex?"Optimal pending points for day "+formattedDate+" should be "+roundedValue:"Real pending points for day "+formattedDate+" is "+roundedValue}}},element.empty(),element.plot(data,options).data("plot")},link=function($scope,$el){var element;return element=angular.element($el),$scope.$on("resize",function(){return $scope.stats?redrawChart(element,$scope.stats.days):void 0}),$scope.$on("taskboard:graph:toggle-visibility",function(){return $el.parent().toggleClass("open"),timeout(100,function(){return $scope.stats?redrawChart(element,$scope.stats.days):void 0})}),$scope.$watch("stats",function(){return null!=$scope.stats?redrawChart(element,$scope.stats.days):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgSprintGraph",SprintGraphDirective)}.call(this),function(){var CreateBulkTasksDirective,CreateEditTaskDirective,bindOnce,debounce,module,taiga;taiga=this.taiga,bindOnce=this.taiga.bindOnce,debounce=this.taiga.debounce,CreateEditTaskDirective=function($repo,$model,$rs,$rootscope,$loading,lightboxService){var link;return link=function($scope,$el){var submit,submitButton;return $scope.isNew=!0,$scope.$on("taskform:new",function(ctx,sprintId,usId){return $scope.task={project:$scope.projectId,milestone:sprintId,user_story:usId,is_archived:!1,status:$scope.project.default_task_status,assigned_to:null,tags:[]},$scope.isNew=!0,$el.find(".button-green").html("Create"),$el.find(".title").html("New task "),$el.find(".tag-input").val(""),lightboxService.open($el)}),$scope.$on("taskform:edit",function(ctx,task){return $scope.task=task,$scope.isNew=!1,$el.find(".button-green").html("Save"),$el.find(".title").html("Edit task "),$el.find(".tag-input").val(""),lightboxService.open($el)}),submitButton=$el.find(".submit-button"),submit=debounce(2e3,function(){return function(event){var broadcastEvent,form,promise;return event.preventDefault(),form=$el.find("form").checksley(),form.validate()?($scope.isNew?(promise=$repo.create("tasks",$scope.task),broadcastEvent="taskform:new:success"):(promise=$repo.save($scope.task),broadcastEvent="taskform:edit:success"),$loading.start(submitButton),promise.then(function(data){return $loading.finish(submitButton),lightboxService.close($el),$rootscope.$broadcast(broadcastEvent,data)})):void 0}}(this)),$el.on("submit","form",submit),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},CreateBulkTasksDirective=function($repo,$rs,$rootscope,$loading,lightboxService){var link;return link=function($scope,$el){var submit,submitButton;return $scope.form={data:"",usId:null},submit=debounce(2e3,function(){return function(event){var data,form,projectId,promise,sprintId,usId;return event.preventDefault(),form=$el.find("form").checksley(),form.validate()?($loading.start(submitButton),data=$scope.form.data,projectId=$scope.projectId,sprintId=$scope.form.sprintId,usId=$scope.form.usId,promise=$rs.tasks.bulkCreate(projectId,sprintId,usId,data),promise.then(function(result){return $loading.finish(submitButton),$rootscope.$broadcast("taskform:bulk:success",result),lightboxService.close($el)}),promise.then(null,function(){return $loading.finish(submitButton),console.log("FAIL")})):void 0}}(this)),$scope.$on("taskform:bulk",function(ctx,sprintId,usId){return lightboxService.open($el),$scope.form={data:"",sprintId:sprintId,usId:usId}}),submitButton=$el.find(".submit-button"),$el.on("submit","form",submit),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module=angular.module("taigaTaskboard"),module.directive("tgLbCreateEditTask",["$tgRepo","$tgModel","$tgResources","$rootScope","$tgLoading","lightboxService",CreateEditTaskDirective]),module.directive("tgLbCreateBulkTasks",["$tgRepo","$tgResources","$rootScope","$tgLoading","lightboxService",CreateBulkTasksDirective])}.call(this),function(){var TaskboardController,TaskboardDirective,TaskboardSquishColumnDirective,TaskboardTaskDirective,TaskboardUserDirective,bindMethods,bindOnce,groupBy,mixOf,module,scopeDefer,taiga,timeout,toggleText,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,toggleText=this.taiga.toggleText,mixOf=this.taiga.mixOf,groupBy=this.taiga.groupBy,bindOnce=this.taiga.bindOnce,scopeDefer=this.taiga.scopeDefer,timeout=this.taiga.timeout,bindMethods=this.taiga.bindMethods,module=angular.module("taigaTaskboard"),TaskboardController=function(superClass){function TaskboardController(scope,rootscope,repo,confirm,rs1,params1,q,appTitle,location,navUrls,events,analytics,tgLoader){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs1,this.params=params1,this.q=q,this.appTitle=appTitle,this.location=location,this.navUrls=navUrls,this.events=events,this.analytics=analytics,bindMethods(this),this.scope.sectionName="Taskboard",this.initializeEventHandlers(),promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Taskboard - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this)),promise["finally"](tgLoader.pageLoaded)}return extend(TaskboardController,superClass),TaskboardController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$appTitle","$tgLocation","$tgNavUrls","$tgEvents","$tgAnalytics","tgLoader"],TaskboardController.prototype.initializeEventHandlers=function(){return this.scope.$on("taskform:bulk:success",function(_this){return function(){return _this.loadTaskboard(),_this.analytics.trackEvent("task","create","bulk create task on taskboard",1)}}(this)),this.scope.$on("taskform:new:success",function(_this){return function(){return _this.loadTaskboard(),_this.analytics.trackEvent("task","create","create task on taskboard",1)}}(this)),this.scope.$on("taskform:edit:success",function(_this){return function(){return _this.loadTaskboard()}}(this)),this.scope.$on("taskboard:task:move",this.taskMove),this.scope.$on("assigned-to:added",function(_this){return function(ctx,userId,task){var promise;return task.assigned_to=userId,promise=_this.repo.save(task),promise.then(null,function(){return console.log("FAIL")})}}(this))},TaskboardController.prototype.initializeSubscription=function(){var routingKey,routingKey1;return routingKey="changes.project."+this.scope.projectId+".tasks",this.events.subscribe(this.scope,routingKey,function(_this){return function(){return _this.loadTaskboard()}}(this)),routingKey1="changes.project."+this.scope.projectId+".userstories",this.events.subscribe(this.scope,routingKey1,function(_this){return function(){return _this.refreshTagsColors(),_this.loadSprintStats(),_this.loadSprint()}}(this))},TaskboardController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return project.is_backlog_activated||_this.location.path(_this.navUrls.resolve("permission-denied")),_this.scope.project=project,_this.scope.pointsList=_.sortBy(project.points,"order"),_this.scope.pointsById=groupBy(project.points,function(e){return e.id}),_this.scope.roleById=groupBy(project.roles,function(e){return e.id}),_this.scope.taskStatusList=_.sortBy(project.task_statuses,"order"),_this.scope.usStatusList=_.sortBy(project.us_statuses,"order"),_this.scope.usStatusById=groupBy(project.us_statuses,function(e){return e.id}),_this.scope.$emit("project:loaded",project),_this.fillUsersAndRoles(project.users,project.roles),project}}(this))},TaskboardController.prototype.loadSprintStats=function(){return this.rs.sprints.stats(this.scope.projectId,this.scope.sprintId).then(function(_this){return function(stats){var completedPointsSum,remainingPointsSum,remainingTasks,totalPointsSum;return totalPointsSum=_.reduce(_.values(stats.total_points),function(res,n){return res+n},0),completedPointsSum=_.reduce(_.values(stats.completed_points),function(res,n){return res+n},0),remainingPointsSum=totalPointsSum-completedPointsSum,remainingTasks=stats.total_tasks-stats.completed_tasks,_this.scope.stats=stats,_this.scope.stats.totalPointsSum=totalPointsSum,_this.scope.stats.completedPointsSum=completedPointsSum,_this.scope.stats.remainingPointsSum=remainingPointsSum,_this.scope.stats.remainingTasks=remainingTasks,_this.scope.stats.completedPercentage=stats.totalPointsSum?Math.round(100*stats.completedPointsSum/stats.totalPointsSum):0,_this.scope.stats.openTasks=stats.total_tasks-stats.completed_tasks,stats}}(this))},TaskboardController.prototype.refreshTagsColors=function(){return this.rs.projects.tagsColors(this.scope.projectId).then(function(_this){return function(tags_colors){return _this.scope.project.tags_colors=tags_colors}}(this))},TaskboardController.prototype.loadSprint=function(){return this.rs.sprints.get(this.scope.projectId,this.scope.sprintId).then(function(_this){return function(sprint){return _this.scope.sprint=sprint,_this.scope.userstories=_.sortBy(sprint.user_stories,"sprint_order"),sprint}}(this))},TaskboardController.prototype.loadTasks=function(){return this.rs.tasks.list(this.scope.projectId,this.scope.sprintId).then(function(_this){return function(tasks){var i,j,k,len,len1,len2,ref,ref1,ref2,status,task,us;for(_this.scope.tasks=_.sortBy(tasks,"taskboard_order"),_this.scope.usTasks={},ref=_.union(_this.scope.userstories,[{id:null}]),i=0,len=ref.length;len>i;i++)for(us=ref[i],_this.scope.usTasks[us.id]={},ref1=_this.scope.taskStatusList,j=0,len1=ref1.length;len1>j;j++)status=ref1[j],_this.scope.usTasks[us.id][status.id]=[];for(ref2=_this.scope.tasks,k=0,len2=ref2.length;len2>k;k++)task=ref2[k],null!=_this.scope.usTasks[task.user_story]&&null!=_this.scope.usTasks[task.user_story][task.status]&&_this.scope.usTasks[task.user_story][task.status].push(task);return tasks}}(this))},TaskboardController.prototype.loadTaskboard=function(){return this.q.all([this.refreshTagsColors(),this.loadSprintStats(),this.loadSprint().then(function(_this){return function(){return _this.loadTasks()}}(this))])},TaskboardController.prototype.loadInitialData=function(){var params,promise;return params={pslug:this.params.pslug,sslug:this.params.sslug},promise=this.repo.resolve(params).then(function(_this){return function(data){return _this.scope.projectId=data.project,_this.scope.sprintId=data.milestone,_this.initializeSubscription(),data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this)).then(function(_this){return function(){return _this.loadTaskboard()}}(this))},TaskboardController.prototype.refreshTasksOrder=function(tasks){var data,items;return items=this.resortTasks(tasks),data=this.prepareBulkUpdateData(items),this.rs.tasks.bulkUpdateTaskTaskboardOrder(this.scope.project.id,data)},TaskboardController.prototype.resortTasks=function(tasks){var i,index,item,items,len;for(items=[],index=i=0,len=tasks.length;len>i;index=++i)item=tasks[index],item.taskboard_order=index,item.isModified()&&items.push(item);return items},TaskboardController.prototype.prepareBulkUpdateData=function(uses){return _.map(uses,function(x){return{task_id:x.id,order:x.taskboard_order}})},TaskboardController.prototype.taskMove=function(ctx,task,usId,statusId,order){var promise,r,tasks;return r=this.scope.usTasks[task.user_story][task.status].indexOf(task),this.scope.usTasks[task.user_story][task.status].splice(r,1),tasks=this.scope.usTasks[usId][statusId],tasks.splice(order,0,task),task.user_story=usId,task.status=statusId,task.taskboard_order=order,promise=this.repo.save(task),this.rootscope.$broadcast("sprint:task:moved",task),promise.then(function(_this){return function(){return _this.refreshTasksOrder(tasks),_this.loadSprintStats()}}(this)),promise.then(null,function(){return function(){return console.log("FAIL TASK SAVE")}}(this))},TaskboardController.prototype.addNewTask=function(type,us){switch(type){case"standard":return this.rootscope.$broadcast("taskform:new",this.scope.sprintId,null!=us?us.id:void 0);case"bulk":return this.rootscope.$broadcast("taskform:bulk",this.scope.sprintId,null!=us?us.id:void 0)}},TaskboardController.prototype.editTaskAssignedTo=function(task){return this.rootscope.$broadcast("assigned-to:add",task)},TaskboardController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("TaskboardController",TaskboardController),TaskboardDirective=function($rootscope){var link;return link=function($scope,$el){var $ctrl,tableBodyDom;return $ctrl=$el.controller(),$el.on("click",".toggle-analytics-visibility",function(event){var target;return event.preventDefault(),target=angular.element(event.currentTarget),target.toggleClass("active"),$rootscope.$broadcast("taskboard:graph:toggle-visibility")}),tableBodyDom=$el.find(".taskboard-table-body"),tableBodyDom.on("scroll",function(event){var tableHeaderDom,target;return target=angular.element(event.currentTarget),tableHeaderDom=$el.find(".taskboard-table-header .taskboard-table-inner"),tableHeaderDom.css("left",-1*target.scrollLeft())}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgTaskboard",["$rootScope",TaskboardDirective]),TaskboardTaskDirective=function($rootscope){var link;return link=function($scope,$el){return $el.disableSelection(),$scope.$watch("task",function(task){return task.is_blocked&&!$el.hasClass("blocked")?$el.addClass("blocked"):!task.is_blocked&&$el.hasClass("blocked")?$el.removeClass("blocked"):void 0}),$el.find(".icon-edit").on("click",function(){return $el.find(".icon-edit").hasClass("noclick")?void 0:$scope.$apply(function(){return $rootscope.$broadcast("taskform:edit",$scope.task)})})},{link:link}},module.directive("tgTaskboardTask",["$rootScope",TaskboardTaskDirective]),TaskboardSquishColumnDirective=function(rs){var avatarWidth,link,maxColumnWidth;return avatarWidth=40,maxColumnWidth=300,link=function($scope,$el){var getCeilWidth,recalculateStatusColumnWidth,recalculateTaskboardWidth,refreshTaskboardTableWidth,setStatusColumnWidth;return $scope.$on("sprint:task:moved",function(){return function(){return recalculateTaskboardWidth()}}(this)),bindOnce($scope,"usTasks",function(){return $scope.statusesFolded=rs.tasks.getStatusColumnModes($scope.project.id),$scope.usFolded=rs.tasks.getUsRowModes($scope.project.id,$scope.sprintId),recalculateTaskboardWidth()}),$scope.foldStatus=function(status){return $scope.statusesFolded[status.id]=!$scope.statusesFolded[status.id],rs.tasks.storeStatusColumnModes($scope.projectId,$scope.statusesFolded),recalculateTaskboardWidth()},$scope.foldUs=function(us){return us?$scope.usFolded[us.id]=!$scope.usFolded[us.id]:$scope.usFolded[null]=!$scope.usFolded[null],rs.tasks.storeUsRowModes($scope.projectId,$scope.sprintId,$scope.usFolded),recalculateTaskboardWidth()},getCeilWidth=function(){return function(usId,statusId){var tasks,tasksMatrixSize,width;return tasks=$scope.usTasks[usId][statusId].length,$scope.statusesFolded[statusId]?(tasks&&$scope.usFolded[usId]?(tasksMatrixSize=Math.round(Math.sqrt(tasks)),width=avatarWidth*tasksMatrixSize):width=avatarWidth,width):0}}(this),setStatusColumnWidth=function(){return function(statusId,width){var column;return column=$el.find(".squish-status-"+statusId),width?column.css("max-width",width):column.css("max-width",maxColumnWidth)}}(this),refreshTaskboardTableWidth=function(){return function(){var columnWidths,columns,totalWidth;return columnWidths=[],columns=$el.find(".task-colum-name"),columnWidths=_.map(columns,function(column){return $(column).outerWidth(!0)}),totalWidth=_.reduce(columnWidths,function(total,width){return total+width}),$el.find(".taskboard-table-inner").css("width",totalWidth)}}(this),recalculateStatusColumnWidth=function(){return function(statusId){var statusFoldedWidth;return statusFoldedWidth=getCeilWidth(null,statusId),_.forEach($scope.userstories,function(us){var width;return width=getCeilWidth(us.id,statusId),width>statusFoldedWidth?statusFoldedWidth=width:void 0}),setStatusColumnWidth(statusId,statusFoldedWidth)}}(this),recalculateTaskboardWidth=function(){return function(){_.forEach($scope.taskStatusList,function(status){return recalculateStatusColumnWidth(status.id)}),refreshTaskboardTableWidth()}}(this)},{link:link}},module.directive("tgTaskboardSquishColumn",["$tgResources",TaskboardSquishColumnDirective]),TaskboardUserDirective=function(){var clickable,link;return clickable=!1,link=function($scope,$el){var username_label;return username_label=$el.parent().find("a.task-assigned"),username_label.addClass("not-clickable"),$scope.$watch("task.assigned_to",function(assigned_to){var user;return user=$scope.usersById[assigned_to],void 0===user?_.assign($scope,{name:"Unassigned",imgurl:"/images/unnamed.png",clickable:clickable}):_.assign($scope,{name:user.full_name_display,imgurl:user.photo,clickable:clickable}),username_label.text($scope.name)}),bindOnce($scope,"project",function(project){return project.my_permissions.indexOf("modify_task")>-1?(clickable=!0,$el.find(".avatar-assigned-to").on("click",function(){return function(){var $ctrl;if(!$el.find("a").hasClass("noclick"))return $ctrl=$el.controller(),$ctrl.editTaskAssignedTo($scope.task)}}(this)),username_label.removeClass("not-clickable"),username_label.on("click",function(){var $ctrl;if(!$el.find("a").hasClass("noclick"))return $ctrl=$el.controller(),$ctrl.editTaskAssignedTo($scope.task)})):void 0})},{link:link,templateUrl:"taskboard/taskboard-user.html",scope:{usersById:"=users",project:"=",task:"="}}},module.directive("tgTaskboardUserAvatar",["$log",TaskboardUserDirective])}.call(this),function(){var TaskboardSortableDirective,bindOnce,groupBy,mixOf,module,scopeDefer,taiga,toggleText;taiga=this.taiga,mixOf=this.taiga.mixOf,toggleText=this.taiga.toggleText,scopeDefer=this.taiga.scopeDefer,bindOnce=this.taiga.bindOnce,groupBy=this.taiga.groupBy,module=angular.module("taigaBacklog"),TaskboardSortableDirective=function($repo,$rs,$rootscope){var link;return link=function($scope,$el){return bindOnce($scope,"project",function(project){var deleteElement,itemEl,newParentScope,oldParentScope,tdom;if(project.my_permissions.indexOf("modify_us")>-1)return oldParentScope=null,newParentScope=null,itemEl=null,tdom=$el,deleteElement=function(itemEl){return itemEl.scope().$destroy(),itemEl.off(),itemEl.remove()},tdom.sortable({handle:".taskboard-task-inner",dropOnEmpty:!0,connectWith:".taskboard-tasks-box",revert:400}),tdom.on("sortstop",function(event,ui){var itemIndex,itemTask,newStatusId,newUsId,oldStatusId,oldUsId,parentEl;return parentEl=ui.item.parent(),itemEl=ui.item,itemTask=itemEl.scope().task,itemIndex=itemEl.index(),newParentScope=parentEl.scope(),oldUsId=oldParentScope.us?oldParentScope.us.id:null,oldStatusId=oldParentScope.st.id,newUsId=newParentScope.us?newParentScope.us.id:null,newStatusId=newParentScope.st.id,(newStatusId!==oldStatusId||newUsId!==oldUsId)&&deleteElement(itemEl),$scope.$apply(function(){return $rootscope.$broadcast("taskboard:task:move",itemTask,newUsId,newStatusId,itemIndex)}),ui.item.find("a").removeClass("noclick")}),tdom.on("sortstart",function(event,ui){return oldParentScope=ui.item.parent().scope(),ui.item.find("a").addClass("noclick")})}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgTaskboardSortable",["$tgRepo","$tgResources","$rootScope",TaskboardSortableDirective])}.call(this),function(){var KanbanArchivedStatusHeaderDirective,KanbanArchivedStatusIntroDirective,KanbanController,KanbanDirective,KanbanSquishColumnDirective,KanbanUserDirective,KanbanUserstoryDirective,KanbanWipLimitDirective,bindMethods,bindOnce,defaultViewMode,defaultViewModes,groupBy,mixOf,module,scopeDefer,taiga,timeout,toggleText,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,toggleText=this.taiga.toggleText,scopeDefer=this.taiga.scopeDefer,bindOnce=this.taiga.bindOnce,groupBy=this.taiga.groupBy,timeout=this.taiga.timeout,bindMethods=this.taiga.bindMethods,module=angular.module("taigaKanban"),defaultViewMode="maximized",defaultViewModes={maximized:{cardClass:"kanban-task-maximized"},minimized:{cardClass:"kanban-task-minimized"}},KanbanController=function(superClass){function KanbanController(scope,rootscope,repo,confirm,rs1,params1,q,location,appTitle,navUrls,events,analytics,tgLoader){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs1,this.params=params1,this.q=q,this.location=location,this.appTitle=appTitle,this.navUrls=navUrls,this.events=events,this.analytics=analytics,bindMethods(this),this.scope.sectionName="Kanban",this.scope.statusViewModes={},this.initializeEventHandlers(),promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Kanban - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this)),promise["finally"](tgLoader.pageLoaded)}return extend(KanbanController,superClass),KanbanController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$appTitle","$tgNavUrls","$tgEvents","$tgAnalytics","tgLoader"],KanbanController.prototype.initializeEventHandlers=function(){return this.scope.$on("usform:new:success",function(_this){return function(){return _this.loadUserstories(),_this.refreshTagsColors(),_this.analytics.trackEvent("userstory","create","create userstory on kanban",1)}}(this)),this.scope.$on("usform:bulk:success",function(_this){return function(){return _this.loadUserstories(),_this.analytics.trackEvent("userstory","create","bulk create userstory on kanban",1)}}(this)),this.scope.$on("usform:edit:success",function(_this){return function(){return _this.loadUserstories(),_this.refreshTagsColors()}}(this)),this.scope.$on("assigned-to:added",this.onAssignedToChanged),this.scope.$on("kanban:us:move",this.moveUs),this.scope.$on("kanban:show-userstories-for-status",this.loadUserStoriesForStatus),this.scope.$on("kanban:hide-userstories-for-status",this.hideUserStoriesForStatus)},KanbanController.prototype.addNewUs=function(type,statusId){switch(type){case"standard":return this.rootscope.$broadcast("usform:new",this.scope.projectId,statusId,this.scope.usStatusList);case"bulk":return this.rootscope.$broadcast("usform:bulk",this.scope.projectId,statusId)}},KanbanController.prototype.changeUsAssignedTo=function(us){return this.rootscope.$broadcast("assigned-to:add",us)},KanbanController.prototype.onAssignedToChanged=function(ctx,userid,us){var promise;return us.assigned_to=userid,promise=this.repo.save(us),promise.then(null,function(){return console.log("FAIL")})},KanbanController.prototype.refreshTagsColors=function(){return this.rs.projects.tagsColors(this.scope.projectId).then(function(_this){return function(tags_colors){return _this.scope.project.tags_colors=tags_colors}}(this))},KanbanController.prototype.loadUserstories=function(){var params;return params={status__is_archived:!1},this.rs.userstories.listAll(this.scope.projectId,params).then(function(_this){return function(userstories){var i,j,k,len,len1,len2,ref,ref1,ref2,status,us,usByStatus,us_archived;for(_this.scope.userstories=userstories,usByStatus=_.groupBy(userstories,"status"),us_archived=[],ref=_this.scope.usStatusList,i=0,len=ref.length;len>i;i++){if(status=ref[i],null==usByStatus[status.id]&&(usByStatus[status.id]=[]),null!=_this.scope.usByStatus)for(ref1=_this.scope.usByStatus[status.id],j=0,len1=ref1.length;len1>j;j++)us=ref1[j],us.status!==status.id&&us_archived.push(us);if(status.is_archived&&null!=_this.scope.usByStatus&&0!==_this.scope.usByStatus[status.id].length)for(ref2=_this.scope.usByStatus[status.id].concat(us_archived),k=0,len2=ref2.length;len2>k;k++)us=ref2[k],us.status===status.id&&usByStatus[status.id].push(us);usByStatus[status.id]=_.sortBy(usByStatus[status.id],"kanban_order")}return _this.scope.usByStatus=usByStatus,scopeDefer(_this.scope,function(){return _this.scope.$broadcast("userstories:loaded",userstories)}),userstories}}(this))},KanbanController.prototype.loadUserStoriesForStatus=function(ctx,statusId){var params;return params={status:statusId},this.rs.userstories.listAll(this.scope.projectId,params).then(function(_this){return function(userstories){return _this.scope.usByStatus[statusId]=_.sortBy(userstories,"kanban_order"),_this.scope.$broadcast("kanban:shown-userstories-for-status",statusId,userstories),userstories}}(this))},KanbanController.prototype.hideUserStoriesForStatus=function(ctx,statusId){return this.scope.usByStatus[statusId]=[],this.scope.$broadcast("kanban:hidden-userstories-for-status",statusId)},KanbanController.prototype.loadKanban=function(){return this.q.all([this.refreshTagsColors(),this.loadUserstories()])},KanbanController.prototype.loadProject=function(){return this.rs.projects.getBySlug(this.params.pslug).then(function(_this){return function(project){return project.is_kanban_activated||_this.location.path(_this.navUrls.resolve("permission-denied")),_this.scope.projectId=project.id,_this.scope.project=project,_this.scope.projectId=project.id,_this.scope.points=_.sortBy(project.points,"order"),_this.scope.pointsById=groupBy(project.points,function(x){return x.id}),_this.scope.usStatusById=groupBy(project.us_statuses,function(x){return x.id}),_this.scope.usStatusList=_.sortBy(project.us_statuses,"order"),_this.generateStatusViewModes(),_this.scope.$emit("project:loaded",project),project}}(this))},KanbanController.prototype.initializeSubscription=function(){var routingKey1;return routingKey1="changes.project."+this.scope.projectId+".userstories",this.events.subscribe(this.scope,routingKey1,function(_this){return function(){return _this.loadUserstories()}}(this))},KanbanController.prototype.loadInitialData=function(){var promise;return promise=this.loadProject(),promise.then(function(_this){return function(project){return _this.fillUsersAndRoles(project.users,project.roles),_this.initializeSubscription(),_this.loadKanban().then(function(){return _this.scope.$broadcast("redraw:wip") })}}(this))},KanbanController.prototype.generateStatusViewModes=function(){var i,len,mode,ref,status,storedStatusViewModes;for(storedStatusViewModes=this.rs.kanban.getStatusViewModes(this.scope.projectId),this.scope.statusViewModes={},ref=this.scope.usStatusList,i=0,len=ref.length;len>i;i++)status=ref[i],mode=storedStatusViewModes[status.id],this.scope.statusViewModes[status.id]=_.has(defaultViewModes,mode)?mode:defaultViewMode;return this.storeStatusViewModes()},KanbanController.prototype.storeStatusViewModes=function(){return this.rs.kanban.storeStatusViewModes(this.scope.projectId,this.scope.statusViewModes)},KanbanController.prototype.updateStatusViewMode=function(statusId,newViewMode){return this.scope.statusViewModes[statusId]=newViewMode,this.storeStatusViewModes()},KanbanController.prototype.getCardClass=function(statusId){var mode;return mode=this.scope.statusViewModes[statusId]||defaultViewMode,defaultViewModes[mode].cardClass||defaultViewModes[defaultViewMode].cardClass},KanbanController.prototype.prepareBulkUpdateData=function(uses,field){return null==field&&(field="kanban_order"),_.map(uses,function(x){return{us_id:x.id,order:x[field]}})},KanbanController.prototype.resortUserStories=function(uses){var i,index,item,items,len;for(items=[],index=i=0,len=uses.length;len>i;index=++i)item=uses[index],item.kanban_order=index,item.isModified()&&items.push(item);return items},KanbanController.prototype.moveUs=function(ctx,us,oldStatusId,newStatusId,index){var itemsToSave,promise,r;return oldStatusId!==newStatusId?(r=this.scope.usByStatus[oldStatusId].indexOf(us),this.scope.usByStatus[oldStatusId].splice(r,1),this.scope.usByStatus[newStatusId].splice(index,0,us),us.status=newStatusId):(r=this.scope.usByStatus[newStatusId].indexOf(us),this.scope.usByStatus[newStatusId].splice(r,1),this.scope.usByStatus[newStatusId].splice(index,0,us)),itemsToSave=this.resortUserStories(this.scope.usByStatus[newStatusId]),this.scope.usByStatus[newStatusId]=_.sortBy(this.scope.usByStatus[newStatusId],"kanban_order"),promise=this.repo.save(us),promise=promise.then(function(_this){return function(){var data;return itemsToSave=_.reject(itemsToSave,{id:us.id}),data=_this.prepareBulkUpdateData(itemsToSave),_this.rs.userstories.bulkUpdateKanbanOrder(us.project,data).then(function(){return itemsToSave})}}(this))},KanbanController}(mixOf(taiga.Controller,taiga.PageMixin,taiga.FiltersMixin)),module.controller("KanbanController",KanbanController),KanbanDirective=function(){var link;return link=function($scope,$el){var tableBodyDom;return tableBodyDom=$el.find(".kanban-table-body"),tableBodyDom.on("scroll",function(event){var tableHeaderDom,target;return target=angular.element(event.currentTarget),tableHeaderDom=$el.find(".kanban-table-header .kanban-table-inner"),tableHeaderDom.css("left",-1*target.scrollLeft())}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgKanban",["$tgRepo","$rootScope",KanbanDirective]),KanbanArchivedStatusHeaderDirective=function($rootscope){var hideArchivedText,link,showArchivedText;return showArchivedText="Show archived",hideArchivedText="Hide archived",link=function($scope,$el,$attrs){var hidden,status;return status=$scope.$eval($attrs.tgKanbanArchivedStatusHeader),hidden=!0,$scope["class"]="icon icon-open-eye",$scope.title=showArchivedText,$el.on("click",function(){return hidden=!hidden,$scope.$apply(function(){return hidden?($scope["class"]="icon icon-open-eye",$scope.title=showArchivedText,$rootscope.$broadcast("kanban:hide-userstories-for-status",status.id)):($scope["class"]="icon icon-closed-eye",$scope.title=hideArchivedText,$rootscope.$broadcast("kanban:show-userstories-for-status",status.id))})}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgKanbanArchivedStatusHeader",["$rootScope",KanbanArchivedStatusHeaderDirective]),KanbanArchivedStatusIntroDirective=function(){var hiddenUserStoriexText,link,userStories;return hiddenUserStoriexText="The user stories in this status are hidden by default",userStories=[],link=function($scope,$el,$attrs){var status,updateIntroText;return status=$scope.$eval($attrs.tgKanbanArchivedStatusIntro),$el.text(hiddenUserStoriexText),updateIntroText=function(){return $el.text(userStories.length>0?"":hiddenUserStoriexText)},$scope.$on("kanban:us:move",function(ctx,itemUs,oldStatusId,newStatusId,itemIndex){var r;return status.id===newStatusId?status.id===oldStatusId?(r=userStories.indexOf(itemUs),userStories.splice(r,1),userStories.splice(itemIndex,0,itemUs)):(itemUs.isArchived=!0,userStories.splice(itemIndex,0,itemUs)):status.id===oldStatusId&&(itemUs.isArchived=!1,r=userStories.indexOf(itemUs),userStories.splice(r,1)),updateIntroText()}),$scope.$on("kanban:shown-userstories-for-status",function(ctx,statusId,userStoriesLoaded){return statusId===status.id?(userStories=_.filter(userStoriesLoaded,function(us){return us.status===status.id}),updateIntroText()):void 0}),$scope.$on("kanban:hidden-userstories-for-status",function(ctx,statusId){return statusId===status.id?(userStories=[],updateIntroText()):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgKanbanArchivedStatusIntro",KanbanArchivedStatusIntroDirective),KanbanUserstoryDirective=function($rootscope){var link;return link=function($scope,$el,$attrs,$model){return $el.disableSelection(),$scope.$watch("us",function(us){return us.is_blocked&&!$el.hasClass("blocked")?$el.addClass("blocked"):!us.is_blocked&&$el.hasClass("blocked")?$el.removeClass("blocked"):void 0}),$el.find(".icon-edit").on("click",function(){return $el.find(".icon-edit").hasClass("noclick")?void 0:$scope.$apply(function(){return $rootscope.$broadcast("usform:edit",$model.$modelValue)})}),$scope.$on("$destroy",function(){return $el.off()})},{templateUrl:"kanban/kanban-task.html",link:link,require:"ngModel"}},module.directive("tgKanbanUserstory",["$rootScope",KanbanUserstoryDirective]),KanbanSquishColumnDirective=function(rs){var link;return link=function($scope,$el){var updateTableWidth;return $scope.$on("project:loaded",function(event,project){return $scope.folds=rs.kanban.getStatusColumnModes(project.id),updateTableWidth()}),$scope.foldStatus=function(status){$scope.folds[status.id]=!$scope.folds[status.id],rs.kanban.storeStatusColumnModes($scope.projectId,$scope.folds),updateTableWidth()},updateTableWidth=function(){var columnWidths,totalWidth;return columnWidths=_.map($scope.usStatusList,function(status){return $scope.folds[status.id]?40:310}),totalWidth=_.reduce(columnWidths,function(total,width){return total+width}),$el.find(".kanban-table-inner").css("width",totalWidth)}},{link:link}},module.directive("tgKanbanSquishColumn",["$tgResources",KanbanSquishColumnDirective]),KanbanWipLimitDirective=function(){var link;return link=function($scope,$el,$attrs){var redrawWipLimit;return $el.disableSelection(),redrawWipLimit=function(){return $el.find(".kanban-wip-limit").remove(),timeout(200,function(){var element;return element=$el.find(".kanban-task")[$scope.$eval($attrs.tgKanbanWipLimit)],element?angular.element(element).before("
"):void 0})},$scope.$on("redraw:wip",redrawWipLimit),$scope.$on("kanban:us:move",redrawWipLimit),$scope.$on("usform:new:success",redrawWipLimit),$scope.$on("usform:bulk:success",redrawWipLimit),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgKanbanWipLimit",KanbanWipLimitDirective),KanbanUserDirective=function($log){var clickable,link,template;return template=_.template('
\n class="not-clickable"<% } %>>\n <%- name %>\n \n
'),clickable=!1,link=function($scope,$el,$attrs,$model){var render,username_label,wtid;return username_label=$el.parent().find("a.task-assigned"),username_label.addClass("not-clickable"),$attrs.tgKanbanUserAvatar?(wtid=$scope.$watch($attrs.tgKanbanUserAvatar,function(v){var user;return null==$scope.usersById?($log.error("KanbanUserDirective requires userById set in scope."),wtid()):(user=$scope.usersById[v],render(user))}),render=function(user){var ctx,html;return ctx=void 0===user?{name:"Unassigned",imgurl:"/images/unnamed.png",clickable:clickable}:{name:user.full_name_display,imgurl:user.photo,clickable:clickable},html=template(ctx),$el.html(html),username_label.text(ctx.name)},bindOnce($scope,"project",function(project){return project.my_permissions.indexOf("modify_us")>-1?(clickable=!0,$el.on("click",function(){return function(){var $ctrl,us;if(!$el.find("a").hasClass("noclick"))return us=$model.$modelValue,$ctrl=$el.controller(),$ctrl.changeUsAssignedTo(us)}}(this)),username_label.removeClass("not-clickable"),username_label.on("click",function(){var $ctrl,us;if(!$el.find("a").hasClass("noclick"))return us=$model.$modelValue,$ctrl=$el.controller(),$ctrl.changeUsAssignedTo(us)})):void 0}),$scope.$on("$destroy",function(){return $el.off()})):$log.error("KanbanUserDirective: no attr is defined")},{link:link,require:"ngModel"}},module.directive("tgKanbanUserAvatar",["$log",KanbanUserDirective])}.call(this),function(){var KanbanSortableDirective,bindOnce,groupBy,mixOf,module,scopeDefer,taiga,timeout,toggleText;taiga=this.taiga,mixOf=this.taiga.mixOf,toggleText=this.taiga.toggleText,scopeDefer=this.taiga.scopeDefer,bindOnce=this.taiga.bindOnce,groupBy=this.taiga.groupBy,timeout=this.taiga.timeout,module=angular.module("taigaKanban"),KanbanSortableDirective=function($repo,$rs,$rootscope){var link;return link=function($scope,$el){return bindOnce($scope,"project",function(project){var deleteElement,itemEl,newParentScope,oldParentScope,tdom;if(project.my_permissions.indexOf("modify_us")>-1)return oldParentScope=null,newParentScope=null,itemEl=null,tdom=$el,deleteElement=function(itemEl){return itemEl.scope().$destroy(),itemEl.off(),itemEl.remove()},tdom.sortable({handle:".kanban-task-inner",dropOnEmpty:!0,connectWith:".kanban-uses-box",revert:400}),tdom.on("sortstop",function(event,ui){var itemIndex,itemUs,newStatusId,oldStatusId,parentEl;return parentEl=ui.item.parent(),itemEl=ui.item,itemUs=itemEl.scope().us,itemIndex=itemEl.index(),newParentScope=parentEl.scope(),newStatusId=newParentScope.s.id,oldStatusId=oldParentScope.s.id,newStatusId!==oldStatusId&&deleteElement(itemEl),$scope.$apply(function(){return $rootscope.$broadcast("kanban:us:move",itemUs,itemUs.status,newStatusId,itemIndex)}),ui.item.find("a").removeClass("noclick")}),tdom.on("sortstart",function(event,ui){return oldParentScope=ui.item.parent().scope(),ui.item.find("a").addClass("noclick")})}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgKanbanSortable",["$tgRepo","$tgResources","$rootScope",KanbanSortableDirective])}.call(this),function(){var IssueDetailController,IssuePriorityButtonDirective,IssueSeverityButtonDirective,IssueStatusButtonDirective,IssueStatusDisplayDirective,IssueTypeButtonDirective,PromoteIssueToUsButtonDirective,bindOnce,groupBy,joinStr,mixOf,module,taiga,toString,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,toString=this.taiga.toString,joinStr=this.taiga.joinStr,groupBy=this.taiga.groupBy,bindOnce=this.taiga.bindOnce,module=angular.module("taigaIssues"),IssueDetailController=function(superClass){function IssueDetailController(scope,rootscope,repo,confirm,rs,params,q,location,log,appTitle,analytics,navUrls,tgLoader){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.log=log,this.appTitle=appTitle,this.analytics=analytics,this.navUrls=navUrls,this.scope.issueRef=this.params.issueref,this.scope.sectionName="Issue Details",this.initializeEventHandlers(),promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set(_this.scope.issue.subject+" - "+_this.scope.project.name),_this.initializeOnDeleteGoToUrl()}}(this)),promise.then(null,this.onInitialDataError.bind(this)),promise["finally"](tgLoader.pageLoaded)}return extend(IssueDetailController,superClass),IssueDetailController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$log","$appTitle","$tgAnalytics","$tgNavUrls","tgLoader"],IssueDetailController.prototype.initializeEventHandlers=function(){return this.scope.$on("attachment:create",function(_this){return function(){return _this.rootscope.$broadcast("history:reload"),_this.analytics.trackEvent("attachment","create","create attachment on issue",1)}}(this)),this.scope.$on("attachment:edit",function(_this){return function(){return _this.rootscope.$broadcast("history:reload")}}(this)),this.scope.$on("attachment:delete",function(_this){return function(){return _this.rootscope.$broadcast("history:reload")}}(this)),this.scope.$on("promote-issue-to-us:success",function(_this){return function(){return _this.analytics.trackEvent("issue","promoteToUserstory","promote issue to userstory",1),_this.rootscope.$broadcast("history:reload"),_this.loadIssue()}}(this)),this.scope.$on("custom-attributes-values:edit",function(_this){return function(){return _this.rootscope.$broadcast("history:reload")}}(this))},IssueDetailController.prototype.initializeOnDeleteGoToUrl=function(){var ctx;return ctx={project:this.scope.project.slug},this.scope.onDeleteGoToUrl=this.scope.project.is_issues_activated?this.navUrls.resolve("project-issues",ctx):this.navUrls.resolve("project",ctx)},IssueDetailController.prototype.loadProject=function(){return this.rs.projects.getBySlug(this.params.pslug).then(function(_this){return function(project){return _this.scope.projectId=project.id,_this.scope.project=project,_this.scope.$emit("project:loaded",project),_this.scope.statusList=project.issue_statuses,_this.scope.statusById=groupBy(project.issue_statuses,function(x){return x.id}),_this.scope.typeById=groupBy(project.issue_types,function(x){return x.id}),_this.scope.typeList=_.sortBy(project.issue_types,"order"),_this.scope.severityList=project.severities,_this.scope.severityById=groupBy(project.severities,function(x){return x.id}),_this.scope.priorityList=project.priorities,_this.scope.priorityById=groupBy(project.priorities,function(x){return x.id}),_this.scope.membersById=groupBy(project.memberships,function(x){return x.user}),project}}(this))},IssueDetailController.prototype.loadIssue=function(){return this.rs.issues.getByRef(this.scope.projectId,this.params.issueref).then(function(_this){return function(issue){var ctx;return _this.scope.issue=issue,_this.scope.issueId=issue.id,_this.scope.commentModel=issue,null!=_this.scope.issue.neighbors.previous.ref&&(ctx={project:_this.scope.project.slug,ref:_this.scope.issue.neighbors.previous.ref},_this.scope.previousUrl=_this.navUrls.resolve("project-issues-detail",ctx)),null!=_this.scope.issue.neighbors.next.ref?(ctx={project:_this.scope.project.slug,ref:_this.scope.issue.neighbors.next.ref},_this.scope.nextUrl=_this.navUrls.resolve("project-issues-detail",ctx)):void 0}}(this))},IssueDetailController.prototype.loadInitialData=function(){var promise;return promise=this.loadProject(),promise.then(function(_this){return function(project){return _this.fillUsersAndRoles(project.users,project.roles),_this.loadIssue()}}(this))},IssueDetailController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("IssueDetailController",IssueDetailController),IssueStatusDisplayDirective=function($template){var link,template;return template=$template.get("common/components/status-display.html",!0),link=function($scope,$el,$attrs){var render;return render=function(issue){var html,status;return status=$scope.statusById[issue.status],html=template({is_closed:status.is_closed,status:status}),$el.html(html)},$scope.$watch($attrs.ngModel,function(issue){return null!=issue?render(issue):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgIssueStatusDisplay",["$tgTemplate",IssueStatusDisplayDirective]),IssueStatusButtonDirective=function($rootScope,$repo,$confirm,$loading,$qqueue,$template){var link,template;return template=$template.get("issue/issues-status-button.html",!0),link=function($scope,$el,$attrs,$model){var isEditable,render,save;return isEditable=function(){return-1!==$scope.project.my_permissions.indexOf("modify_issue")},render=function(){return function(issue){var html,status;return status=$scope.statusById[issue.status],html=template({status:status,statuses:$scope.statusList,editable:isEditable()}),$el.html(html)}}(this),save=$qqueue.bindAdd(function(){return function(statusId){var issue,onError,onSuccess;return $.fn.popover().closeAll(),issue=$model.$modelValue.clone(),issue.status=statusId,onSuccess=function(){return $confirm.notify("success"),$model.$setViewValue(issue),$rootScope.$broadcast("history:reload"),$loading.finish($el.find(".level-name"))},onError=function(){return $confirm.notify("error"),issue.revert(),$model.$setViewValue(issue),$loading.finish($el.find(".level-name"))},$loading.start($el.find(".level-name")),$repo.save(issue).then(onSuccess,onError)}}(this)),$el.on("click",".status-data",function(event){return event.preventDefault(),event.stopPropagation(),isEditable()?$el.find(".pop-status").popover().open():void 0}),$el.on("click",".status",function(event){var target;return event.preventDefault(),event.stopPropagation(),isEditable()?(target=angular.element(event.currentTarget),save(target.data("status-id"))):void 0}),$scope.$watch($attrs.ngModel,function(issue){return issue?render(issue):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgIssueStatusButton",["$rootScope","$tgRepo","$tgConfirm","$tgLoading","$tgQqueue","$tgTemplate",IssueStatusButtonDirective]),IssueTypeButtonDirective=function($rootScope,$repo,$confirm,$loading,$qqueue,$template){var link,template;return template=$template.get("issue/issue-type-button.html",!0),link=function($scope,$el,$attrs,$model){var isEditable,render,save;return isEditable=function(){return-1!==$scope.project.my_permissions.indexOf("modify_issue")},render=function(){return function(issue){var html,type;return type=$scope.typeById[issue.type],html=template({type:type,typees:$scope.typeList,editable:isEditable()}),$el.html(html)}}(this),save=$qqueue.bindAdd(function(){return function(type){var issue,onError,onSuccess;return $.fn.popover().closeAll(),issue=$model.$modelValue.clone(),issue.type=type,onSuccess=function(){return $confirm.notify("success"),$model.$setViewValue(issue),$rootScope.$broadcast("history:reload"),$loading.finish($el.find(".level-name"))},onError=function(){return $confirm.notify("error"),issue.revert(),$model.$setViewValue(issue),$loading.finish($el.find(".level-name"))},$loading.start($el.find(".level-name")),$repo.save(issue).then(onSuccess,onError)}}(this)),$el.on("click",".type-data",function(event){return event.preventDefault(),event.stopPropagation(),isEditable()?$el.find(".pop-type").popover().open():void 0}),$el.on("click",".type",function(event){var target,type;return event.preventDefault(),event.stopPropagation(),isEditable()?(target=angular.element(event.currentTarget),type=target.data("type-id"),save(type)):void 0}),$scope.$watch($attrs.ngModel,function(issue){return issue?render(issue):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgIssueTypeButton",["$rootScope","$tgRepo","$tgConfirm","$tgLoading","$tgQqueue","$tgTemplate",IssueTypeButtonDirective]),IssueSeverityButtonDirective=function($rootScope,$repo,$confirm,$loading,$qqueue,$template){var link,template;return template=$template.get("issue/issue-severity-button.html",!0),link=function($scope,$el,$attrs,$model){var isEditable,render,save;return isEditable=function(){return-1!==$scope.project.my_permissions.indexOf("modify_issue")},render=function(){return function(issue){var html,severity;return severity=$scope.severityById[issue.severity],html=template({severity:severity,severityes:$scope.severityList,editable:isEditable()}),$el.html(html)}}(this),save=$qqueue.bindAdd(function(){return function(severity){var issue,onError,onSuccess;return $.fn.popover().closeAll(),issue=$model.$modelValue.clone(),issue.severity=severity,onSuccess=function(){return $confirm.notify("success"),$model.$setViewValue(issue),$rootScope.$broadcast("history:reload"),$loading.finish($el.find(".level-name"))},onError=function(){return $confirm.notify("error"),issue.revert(),$model.$setViewValue(issue),$loading.finish($el.find(".level-name"))},$loading.start($el.find(".level-name")),$repo.save(issue).then(onSuccess,onError)}}(this)),$el.on("click",".severity-data",function(event){return event.preventDefault(),event.stopPropagation(),isEditable()?$el.find(".pop-severity").popover().open():void 0}),$el.on("click",".severity",function(event){var severity,target;return event.preventDefault(),event.stopPropagation(),isEditable()?(target=angular.element(event.currentTarget),severity=target.data("severity-id"),save(severity)):void 0}),$scope.$watch($attrs.ngModel,function(issue){return issue?render(issue):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgIssueSeverityButton",["$rootScope","$tgRepo","$tgConfirm","$tgLoading","$tgQqueue","$tgTemplate",IssueSeverityButtonDirective]),IssuePriorityButtonDirective=function($rootScope,$repo,$confirm,$loading,$qqueue,$template){var link,template;return template=$template.get("issue/issue-priority-button.html",!0),link=function($scope,$el,$attrs,$model){var isEditable,render,save;return isEditable=function(){return-1!==$scope.project.my_permissions.indexOf("modify_issue")},render=function(){return function(issue){var html,priority;return priority=$scope.priorityById[issue.priority],html=template({priority:priority,priorityes:$scope.priorityList,editable:isEditable()}),$el.html(html)}}(this),save=$qqueue.bindAdd(function(){return function(priority){var issue,onError,onSuccess;return $.fn.popover().closeAll(),issue=$model.$modelValue.clone(),issue.priority=priority,onSuccess=function(){return $confirm.notify("success"),$model.$setViewValue(issue),$rootScope.$broadcast("history:reload"),$loading.finish($el.find(".level-name"))},onError=function(){return $confirm.notify("error"),issue.revert(),$model.$setViewValue(issue),$loading.finish($el.find(".level-name"))},$loading.start($el.find(".level-name")),$repo.save(issue).then(onSuccess,onError)}}(this)),$el.on("click",".priority-data",function(event){return event.preventDefault(),event.stopPropagation(),isEditable()?$el.find(".pop-priority").popover().open():void 0}),$el.on("click",".priority",function(event){var priority,target;return event.preventDefault(),event.stopPropagation(),isEditable()?(target=angular.element(event.currentTarget),priority=target.data("priority-id"),save(priority)):void 0}),$scope.$watch($attrs.ngModel,function(issue){return issue?render(issue):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgIssuePriorityButton",["$rootScope","$tgRepo","$tgConfirm","$tgLoading","$tgQqueue","$tgTemplate",IssuePriorityButtonDirective]),PromoteIssueToUsButtonDirective=function($rootScope,$repo,$confirm,$qqueue){var link;return link=function($scope,$el,$attrs,$model){var save;return save=$qqueue.bindAdd(function(){return function(issue,finish){var data,onError,onSuccess;return data={generated_from_issue:issue.id,project:issue.project,subject:issue.subject,description:issue.description,tags:issue.tags,is_blocked:issue.is_blocked,blocked_note:issue.blocked_note},onSuccess=function(){return finish(),$confirm.notify("success"),$rootScope.$broadcast("promote-issue-to-us:success")},onError=function(){return finish(!1),$confirm.notify("error")},$repo.create("userstories",data).then(onSuccess,onError)}}(this)),$el.on("click","a",function(event){var issue,message,subtitle,title;return event.preventDefault(),issue=$model.$modelValue,title="Promote this issue to a new user story",message="Are you sure you want to create a new US from this Issue?",subtitle=issue.subject,$confirm.ask(title,subtitle,message).then(function(){return function(finish){return save(issue,finish)}}(this))}),$scope.$on("$destroy",function(){return $el.off()})},{restrict:"AE",require:"ngModel",templateUrl:"issue/promote-issue-to-us-button.html",link:link}},module.directive("tgPromoteIssueToUsButton",["$rootScope","$tgRepo","$tgConfirm","$tgQqueue",PromoteIssueToUsButtonDirective])}.call(this),function(){var CreateBulkIssuesDirective,CreateIssueDirective,bindOnce,debounce,module,taiga;taiga=this.taiga,bindOnce=this.taiga.bindOnce,debounce=this.taiga.debounce,module=angular.module("taigaIssues"),CreateIssueDirective=function($repo,$confirm,$rootscope,lightboxService,$loading){var link;return link=function($scope,$el){var form,submit,submitButton;return form=$el.find("form").checksley(),$scope.issue={},$scope.$on("issueform:new",function(ctx,project){return $el.find(".tag-input").val(""),lightboxService.open($el),$scope.issue={project:project.id,subject:"",status:project.default_issue_status,type:project.default_issue_type,priority:project.default_priority,severity:project.default_severity,tags:[]}}),$scope.$on("$destroy",function(){return $el.off()}),submit=debounce(2e3,function(){return function(event){var promise;return event.preventDefault(),form.validate()?($loading.start(submitButton),promise=$repo.create("issues",$scope.issue),promise.then(function(data){return $loading.finish(submitButton),$rootscope.$broadcast("issueform:new:success",data),lightboxService.close($el),$confirm.notify("success")}),promise.then(null,function(){return $loading.finish(submitButton),$confirm.notify("error")})):void 0}}(this)),submitButton=$el.find(".submit-button"),$el.on("submit","form",submit)},{link:link}},module.directive("tgLbCreateIssue",["$tgRepo","$tgConfirm","$rootScope","lightboxService","$tgLoading",CreateIssueDirective]),CreateBulkIssuesDirective=function($repo,$rs,$confirm,$rootscope,$loading,lightboxService){var link;return link=function($scope,$el){var submit,submitButton;return $scope.$on("issueform:bulk",function(ctx,projectId){return lightboxService.open($el),$scope["new"]={projectId:projectId,bulk:""}}),submit=debounce(2e3,function(){return function(event){var data,form,projectId,promise;return event.preventDefault(),form=$el.find("form").checksley(),form.validate()?($loading.start(submitButton),data=$scope["new"].bulk,projectId=$scope["new"].projectId,promise=$rs.issues.bulkCreate(projectId,data),promise.then(function(result){return $loading.finish(submitButton),$rootscope.$broadcast("issueform:new:success",result),lightboxService.close($el),$confirm.notify("success")}),promise.then(null,function(){return $loading.finish(submitButton),$confirm.notify("error")})):void 0}}(this)),submitButton=$el.find(".submit-button"),$el.on("submit","form",submit),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgLbCreateBulkIssues",["$tgRepo","$tgResources","$tgConfirm","$rootScope","$tgLoading","lightboxService",CreateBulkIssuesDirective])}.call(this),function(){var IssueAssignedToInlineEditionDirective,IssueStatusInlineEditionDirective,IssuesController,IssuesDirective,IssuesFiltersDirective,bindOnce,debounceLeading,groupBy,joinStr,mixOf,module,startswith,taiga,toString,trim,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,trim=this.taiga.trim,toString=this.taiga.toString,joinStr=this.taiga.joinStr,groupBy=this.taiga.groupBy,bindOnce=this.taiga.bindOnce,debounceLeading=this.taiga.debounceLeading,startswith=this.taiga.startswith,module=angular.module("taigaIssues"),IssuesController=function(superClass){function IssuesController(scope,rootscope,repo,confirm,rs,urls,params,q,location,appTitle,navUrls,events,analytics,tgLoader){var filters,promise;return this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.urls=urls,this.params=params,this.q=q,this.location=location,this.appTitle=appTitle,this.navUrls=navUrls,this.events=events,this.analytics=analytics,this.loadIssues=bind(this.loadIssues,this),this.scope.sectionName="Issues",this.scope.filters={},_.isEmpty(this.location.search())?(filters=this.rs.issues.getFilters(this.params.pslug),filters.page=1,this.location.search(filters),void this.location.replace()):(promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Issues - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this)),promise["finally"](tgLoader.pageLoaded),void this.scope.$on("issueform:new:success",function(_this){return function(){return _this.analytics.trackEvent("issue","create","create issue on issues list",1),_this.loadIssues(),_this.loadFilters()}}(this)))}return extend(IssuesController,superClass),IssuesController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$tgUrls","$routeParams","$q","$tgLocation","$appTitle","$tgNavUrls","$tgEvents","$tgAnalytics","tgLoader"],IssuesController.prototype.initializeSubscription=function(){var routingKey;return routingKey="changes.project."+this.scope.projectId+".issues",this.events.subscribe(this.scope,routingKey,function(_this){return function(){return _this.loadIssues()}}(this))},IssuesController.prototype.storeFilters=function(){return this.rs.issues.storeFilters(this.params.pslug,this.location.search())},IssuesController.prototype.loadProject=function(){return this.rs.projects.getBySlug(this.params.pslug).then(function(_this){return function(project){return project.is_issues_activated||_this.location.path(_this.navUrls.resolve("permission-denied")),_this.scope.projectId=project.id,_this.scope.project=project,_this.scope.$emit("project:loaded",project),_this.scope.issueStatusById=groupBy(project.issue_statuses,function(x){return x.id}),_this.scope.issueStatusList=_.sortBy(project.issue_statuses,"order"),_this.scope.severityById=groupBy(project.severities,function(x){return x.id}),_this.scope.severityList=_.sortBy(project.severities,"order"),_this.scope.priorityById=groupBy(project.priorities,function(x){return x.id}),_this.scope.priorityList=_.sortBy(project.priorities,"order"),_this.scope.issueTypes=_.sortBy(project.issue_types,"order"),_this.scope.issueTypeById=groupBy(project.issue_types,function(x){return x.id}),_this.scope.membersById=groupBy(project.memberships,function(x){return x.user}),project}}(this))},IssuesController.prototype.getUrlFilters=function(){var filters;return filters=_.pick(this.location.search(),"page","tags","statuses","types","q","severities","priorities","assignedTo","createdBy","orderBy"),filters.page||(filters.page=1),filters},IssuesController.prototype.getUrlFilter=function(name){var filters;return filters=_.pick(this.location.search(),name),filters[name]},IssuesController.prototype.loadMyFilters=function(){return this.rs.issues.getMyFilters(this.scope.projectId).then(function(){return function(filters){return _.map(filters,function(value,key){return{id:key,name:key,type:"myFilters",selected:!1}})}}(this))},IssuesController.prototype.removeNotExistingFiltersFromUrl=function(){var currentSearch,existingValues,filterName,filterValue,splittedValues,urlfilters; -currentSearch=this.location.search(),urlfilters=this.getUrlFilters();for(filterName in urlfilters)filterValue=urlfilters[filterName],"page"!==filterName&&"orderBy"!==filterName&&"q"!==filterName&&(splittedValues="tags"===filterName?_.map((""+filterValue).split(",")):_.map((""+filterValue).split(","),function(x){return"null"===x?null:parseInt(x)}),existingValues=_.intersection(splittedValues,_.map(this.scope.filters[filterName],"id")),splittedValues.length!==existingValues.length&&this.location.search(filterName,existingValues.join()));return currentSearch!==this.location.search()?this.location.replace():void 0},IssuesController.prototype.markSelectedFilters=function(filters,urlfilters){var isSelected,j,key,len,name,obj,ref,ref1,results,searchdata,val,value;searchdata={},ref=_.omit(urlfilters,"page","orderBy");for(name in ref)for(value=ref[name],null==searchdata[name]&&(searchdata[name]={}),ref1=(""+value).split(","),j=0,len=ref1.length;len>j;j++)val=ref1[j],searchdata[name][val]=!0;isSelected=function(type,id){return null!=searchdata[type]&&searchdata[type][id]?!0:!1},results=[];for(key in filters)value=filters[key],results.push(function(){var k,len1,results1;for(results1=[],k=0,len1=value.length;len1>k;k++)obj=value[k],results1.push(obj.selected=isSelected(obj.type,obj.id)?!0:void 0);return results1}());return results},IssuesController.prototype.loadFilters=function(){var promise,urlfilters;return urlfilters=this.getUrlFilters(),urlfilters.q&&(this.scope.filtersQ=urlfilters.q),promise=this.loadMyFilters().then(function(_this){return function(myFilters){return _this.scope.filters.myFilters=myFilters,myFilters}}(this)),promise=promise.then(function(_this){return function(){return _this.rs.issues.filtersData(_this.scope.projectId)}}(this)),promise.then(function(_this){return function(data){var choicesFiltersFormat,tagsFilterFormat,usersFiltersFormat;return usersFiltersFormat=function(users,type,unknownOption){var reformatedUsers,unknownItem;return reformatedUsers=_.map(users,function(t){return{id:t[0],count:t[1],type:type,name:t[0]?_this.scope.usersById[t[0]].full_name_display:unknownOption}}),unknownItem=_.remove(reformatedUsers,function(u){return!u.id}),reformatedUsers=_.sortBy(reformatedUsers,function(u){return u.name.toUpperCase()}),unknownItem.length>0&&reformatedUsers.unshift(unknownItem[0]),reformatedUsers},choicesFiltersFormat=function(choices,type,byIdObject){return _.map(choices,function(t){return{id:t[0],name:byIdObject[t[0]].name,color:byIdObject[t[0]].color,count:t[1],type:type}})},tagsFilterFormat=function(tags){return _.map(tags,function(t){return{id:t[0],name:t[0],color:_this.scope.project.tags_colors[t[0]],count:t[1],type:"tags"}})},_this.scope.filters.statuses=choicesFiltersFormat(data.statuses,"statuses",_this.scope.issueStatusById),_this.scope.filters.severities=choicesFiltersFormat(data.severities,"severities",_this.scope.severityById),_this.scope.filters.priorities=choicesFiltersFormat(data.priorities,"priorities",_this.scope.priorityById),_this.scope.filters.assignedTo=usersFiltersFormat(data.assigned_to,"assignedTo","Unassigned"),_this.scope.filters.createdBy=usersFiltersFormat(data.created_by,"createdBy","Unknown"),_this.scope.filters.types=choicesFiltersFormat(data.types,"types",_this.scope.issueTypeById),_this.scope.filters.tags=tagsFilterFormat(data.tags),_this.removeNotExistingFiltersFromUrl(),_this.markSelectedFilters(_this.scope.filters,urlfilters),_this.rootscope.$broadcast("filters:loaded",_this.scope.filters)}}(this))},IssuesController.prototype.loadIssuesRequests=0,IssuesController.prototype.loadIssues=function(){var name,promise,ref,values;this.scope.urlFilters=this.getUrlFilters(),this.scope.httpParams={},ref=this.scope.urlFilters;for(name in ref)values=ref[name],"severities"===name?name="severity":"orderBy"===name?name="order_by":"priorities"===name?name="priority":"assignedTo"===name?name="assigned_to":"createdBy"===name?name="owner":"statuses"===name?name="status":"types"===name&&(name="type"),this.scope.httpParams[name]=values;return promise=this.rs.issues.list(this.scope.projectId,this.scope.httpParams),this.loadIssuesRequests+=1,promise.index=this.loadIssuesRequests,promise.then(function(_this){return function(data){return promise.index===_this.loadIssuesRequests&&(_this.scope.issues=data.models,_this.scope.page=data.current,_this.scope.count=data.count,_this.scope.paginatedBy=data.paginatedBy),data}}(this))},IssuesController.prototype.loadInitialData=function(){var promise;return promise=this.loadProject(),promise.then(function(_this){return function(project){return _this.fillUsersAndRoles(project.users,project.roles),_this.initializeSubscription(),_this.q.all([_this.loadFilters(),_this.loadIssues()])}}(this))},IssuesController.prototype.saveCurrentFiltersTo=function(newFilter){var deferred;return deferred=this.q.defer(),this.rs.issues.getMyFilters(this.scope.projectId).then(function(_this){return function(filters){return filters[newFilter]=_this.location.search(),_this.rs.issues.storeMyFilters(_this.scope.projectId,filters).then(function(){return deferred.resolve()})}}(this)),deferred.promise},IssuesController.prototype.deleteMyFilter=function(filter){var deferred;return deferred=this.q.defer(),this.rs.issues.getMyFilters(this.scope.projectId).then(function(_this){return function(filters){return delete filters[filter],_this.rs.issues.storeMyFilters(_this.scope.projectId,filters).then(function(){return deferred.resolve()})}}(this)),deferred.promise},IssuesController.prototype.addNewIssue=function(){return this.rootscope.$broadcast("issueform:new",this.scope.project)},IssuesController.prototype.addIssuesInBulk=function(){return this.rootscope.$broadcast("issueform:bulk",this.scope.projectId)},IssuesController}(mixOf(taiga.Controller,taiga.PageMixin,taiga.FiltersMixin)),module.controller("IssuesController",IssuesController),IssuesDirective=function($log,$location,$template){var link,linkOrdering,linkPagination,template;return template=$template.get("issue/issue-paginator.html",!0),linkPagination=function($scope,$el,$attrs,$ctrl){var $pagEl,afterCurrent,atBegin,atEnd,beforeCurrent,getNumPages,renderPagination;return afterCurrent=2,beforeCurrent=4,atBegin=2,atEnd=2,$pagEl=$el.find(".issues-paginator"),getNumPages=function(){var numPages;return numPages=$scope.count/$scope.paginatedBy,numPages=parseInt(numPages,10)=numPages)return void $pagEl.hide();for($pagEl.show(),pages=[],options={},options.pages=pages,options.showPrevious=$scope.page>1,options.showNext=!($scope.page===numPages),cpage=$scope.page,i=j=1,ref=numPages;ref>=1?ref>=j:j>=ref;i=ref>=1?++j:--j)i===cpage+afterCurrent&&numPages>cpage+afterCurrent+atEnd?pages.push({classes:"dots",type:"dots"}):i===cpage-beforeCurrent&&cpage>atBegin+beforeCurrent?pages.push({classes:"dots",type:"dots"}):i>cpage+afterCurrent&&numPages-atEnd>=i||cpage-beforeCurrent>i&&i>atBegin||pages.push(i===cpage?{classes:"active",num:i,type:"page-active"}:{classes:"page",num:i,type:"page"});return $pagEl.html(template(options))},$scope.$watch("issues",function(value){return value?renderPagination():void 0}),$el.on("click",".issues-paginator a.next",function(event){return event.preventDefault(),$scope.$apply(function(){return $ctrl.selectFilter("page",$scope.page+1),$ctrl.loadIssues()})}),$el.on("click",".issues-paginator a.previous",function(event){return event.preventDefault(),$scope.$apply(function(){return $ctrl.selectFilter("page",$scope.page-1),$ctrl.loadIssues()})}),$el.on("click",".issues-paginator li.page > a",function(event){var pagenum,target;return event.preventDefault(),target=angular.element(event.currentTarget),pagenum=target.data("pagenum"),$scope.$apply(function(){return $ctrl.selectFilter("page",pagenum),$ctrl.loadIssues()})})},linkOrdering=function($scope,$el,$attrs,$ctrl){var colHeadElement,currentOrder,icon;return currentOrder=$ctrl.getUrlFilter("orderBy")||"created_date",currentOrder&&(icon=startswith(currentOrder,"-")?"icon-caret-up":"icon-caret-down",colHeadElement=$el.find(".row.title > div[data-fieldname='"+trim(currentOrder,"-")+"']"),colHeadElement.html(colHeadElement.html()+"")),$el.on("click",".row.title > div",function(event){var finalOrder,newOrder,target;return target=angular.element(event.currentTarget),currentOrder=$ctrl.getUrlFilter("orderBy"),newOrder=target.data("fieldname"),finalOrder=currentOrder===newOrder?"-"+newOrder:newOrder,$scope.$apply(function(){return $ctrl.replaceFilter("orderBy",finalOrder),$ctrl.storeFilters(),$ctrl.loadIssues().then(function(){return $el.find(".row.title > div > span.icon").remove(),icon=startswith(finalOrder,"-")?"icon-caret-up":"icon-caret-down",target.html(target.html()+"")})})})},link=function($scope,$el,$attrs){var $ctrl;return $ctrl=$el.controller(),linkOrdering($scope,$el,$attrs,$ctrl),linkPagination($scope,$el,$attrs,$ctrl),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgIssues",["$log","$tgLocation","$tgTemplate",IssuesDirective]),IssuesFiltersDirective=function($log,$location,$rs,$confirm,$loading,$template){var link,template,templateSelected;return template=$template.get("issue/issues-filters.html",!0),templateSelected=$template.get("issue/issues-filters-selected.html",!0),link=function($scope,$el){var $ctrl,initializeSelectedFilters,renderFilters,renderSelectedFilters,selectQFilter,selectedFilters,showCategories,showFilters,toggleFilterSelection;return $ctrl=$el.closest(".wrapper").controller(),selectedFilters=[],showFilters=function(title,type){return $el.find(".filters-cats").hide(),$el.find(".filter-list").removeClass("hidden"),$el.find("h2.breadcrumb").removeClass("hidden"),$el.find("h2 a.subfilter span.title").html(title),$el.find("h2 a.subfilter span.title").prop("data-type",type)},showCategories=function(){return $el.find(".filters-cats").show(),$el.find(".filter-list").addClass("hidden"),$el.find("h2.breadcrumb").addClass("hidden")},initializeSelectedFilters=function(filters){var j,len,name,val,values;selectedFilters=[];for(name in filters)for(values=filters[name],j=0,len=values.length;len>j;j++)val=values[j],val.selected&&selectedFilters.push(val);return renderSelectedFilters(selectedFilters)},renderSelectedFilters=function(selectedFilters){var html;return _.filter(selectedFilters,function(){return function(f){return f.color?f.style="border-left: 3px solid "+f.color:void 0}}(this)),html=templateSelected({filters:selectedFilters}),$el.find(".filters-applied").html(html),selectedFilters.length>0?$el.find(".save-filters").show():$el.find(".save-filters").hide()},renderFilters=function(filters){var html;return _.filter(filters,function(){return function(f){return f.color?f.style="border-left: 3px solid "+f.color:void 0}}(this)),html=template({filters:filters}),$el.find(".filter-list").html(html)},toggleFilterSelection=function(type,id){var currentFiltersType,filter,filterId,filters;return"myFilters"===type?($rs.issues.getMyFilters($scope.projectId).then(function(data){var filters,myFilters;return myFilters=data,filters=myFilters[id],filters.page=1,$ctrl.replaceAllFilters(filters),$ctrl.storeFilters(),$ctrl.loadIssues(),$ctrl.markSelectedFilters($scope.filters,filters),initializeSelectedFilters($scope.filters)}),null):(filters=$scope.filters[type],filterId="tags"===type?taiga.toString(id):id,filter=_.find(filters,{id:filterId}),filter.selected=!filter.selected,null===id&&(id="null"),filter.selected?(selectedFilters.push(filter),$scope.$apply(function(){return $ctrl.selectFilter(type,id),$ctrl.selectFilter("page",1),$ctrl.storeFilters(),$ctrl.loadIssues()})):(selectedFilters=_.reject(selectedFilters,filter),$scope.$apply(function(){return $ctrl.unselectFilter(type,id),$ctrl.selectFilter("page",1),$ctrl.storeFilters(),$ctrl.loadIssues()})),renderSelectedFilters(selectedFilters),currentFiltersType=$el.find("h2 a.subfilter span.title").prop("data-type"),type===currentFiltersType?renderFilters(_.reject(filters,"selected")):void 0)},$scope.$on("filters:loaded",function(ctx,filters){return initializeSelectedFilters(filters)}),$scope.$on("filters:issueupdate",function(ctx,filters){var html;return html=template({filters:filters.statuses}),$el.find(".filter-list").html(html)}),selectQFilter=debounceLeading(100,function(value){return void 0!==value?($ctrl.replaceFilter("page",null),0===value.length?($ctrl.replaceFilter("q",null),$ctrl.storeFilters()):($ctrl.replaceFilter("q",value),$ctrl.storeFilters()),$ctrl.loadIssues()):void 0}),$scope.$watch("filtersQ",selectQFilter),$el.on("click",".filters-cats > ul > li > a",function(event){var tags,target;return event.preventDefault(),target=angular.element(event.currentTarget),tags=$scope.filters[target.data("type")],renderFilters(_.reject(tags,"selected")),showFilters(target.attr("title"),target.data("type"))}),$el.on("click",".filters-inner > .filters-step-cat > .breadcrumb > .back",function(event){return event.preventDefault(),showCategories($el)}),$el.on("click",".filters-applied a",function(event){var id,target,type;return event.preventDefault(),target=angular.element(event.currentTarget),id=target.data("id")||null,type=target.data("type"),toggleFilterSelection(type,id)}),$el.on("click",".filter-list .single-filter",function(event){var id,target,type;return event.preventDefault(),target=angular.element(event.currentTarget),target.toggleClass("active"),id=target.data("id")||null,type=target.data("type"),"myFilters"===type&&target.removeClass("active"),toggleFilterSelection(type,id)}),$el.on("click",".filter-list .single-filter .icon-delete",function(event){var customFilterName,message,target,title;return event.preventDefault(),event.stopPropagation(),target=angular.element(event.currentTarget),customFilterName=target.parent().data("id"),title="Delete custom filter",message="the custom filter '"+customFilterName+"'",$confirm.askOnDelete(title,message).then(function(finish){var promise;return promise=$ctrl.deleteMyFilter(customFilterName),promise.then(function(){return promise=$ctrl.loadMyFilters(),promise.then(function(filters){return finish(),$scope.filters.myFilters=filters,renderFilters($scope.filters.myFilters)}),promise.then(null,function(){return finish()})}),promise.then(null,function(){return finish(!1),$confirm.notify("error")})})}),$el.on("click",".save-filters",function(event){return event.preventDefault(),renderFilters($scope.filters.myFilters),showFilters("My filters","myFilters"),$el.find(".save-filters").hide(),$el.find(".my-filter-name").removeClass("hidden"),$el.find(".my-filter-name").focus()}),$el.on("keyup",".my-filter-name",function(event){var newFilter,promise,target;return event.preventDefault(),13===event.keyCode?(target=angular.element(event.currentTarget),newFilter=target.val(),$loading.start($el.find(".new")),promise=$ctrl.saveCurrentFiltersTo(newFilter),promise.then(function(){var loadPromise;return loadPromise=$ctrl.loadMyFilters(),loadPromise.then(function(filters){var currentfilterstype;return $loading.finish($el.find(".new")),$scope.filters.myFilters=filters,currentfilterstype=$el.find("h2 a.subfilter span.title").prop("data-type"),"myFilters"===currentfilterstype&&renderFilters($scope.filters.myFilters),$el.find(".my-filter-name").addClass("hidden"),$el.find(".save-filters").show()}),loadPromise.then(null,function(){return $loading.finish($el.find(".new")),$confirm.notify("error","Error loading custom filters")})}),promise.then(null,function(){return $loading.finish($el.find(".new")),$el.find(".my-filter-name").val(newFilter).focus().select(),$confirm.notify("error","Filter not saved")})):27===event.keyCode?($el.find(".my-filter-name").val(""),$el.find(".my-filter-name").addClass("hidden"),$el.find(".save-filters").show()):void 0})},{link:link}},module.directive("tgIssuesFilters",["$log","$tgLocation","$tgResources","$tgConfirm","$tgLoading","$tgTemplate",IssuesFiltersDirective]),IssueStatusInlineEditionDirective=function($repo,$template,$rootscope){var link,selectionTemplate,updateIssueStatus;return selectionTemplate=$template.get("issue/issue-status-inline-edition-selection.html",!0),updateIssueStatus=function($el,issue,issueStatusById){var issueStatusDom,issueStatusDomParent,status;return issueStatusDomParent=$el.find(".issue-status"),issueStatusDom=$el.find(".issue-status .issue-status-bind"),status=issueStatusById[issue.status],status?(issueStatusDom.text(status.name),issueStatusDom.prop("title",status.name),issueStatusDomParent.css("color",status.color)):void 0},link=function($scope,$el,$attrs){var $ctrl,issue;return $ctrl=$el.controller(),issue=$scope.$eval($attrs.tgIssueStatusInlineEdition),$el.on("click",".issue-status",function(event){return event.preventDefault(),event.stopPropagation(),$el.find(".pop-status").popover().open()}),$el.on("click",".status",function(event){var filter,j,len,ref,target;for(event.preventDefault(),event.stopPropagation(),target=angular.element(event.currentTarget),ref=$scope.filters.statuses,j=0,len=ref.length;len>j;j++)filter=ref[j],filter.id===issue.status&&filter.count--;return issue.status=target.data("status-id"),$el.find(".pop-status").popover().close(),updateIssueStatus($el,issue,$scope.issueStatusById),$scope.$apply(function(){var k,len1,ref1;for($repo.save(issue).then,ref1=$scope.filters.statuses,k=0,len1=ref1.length;len1>k;k++)filter=ref1[k],filter.id===issue.status&&filter.count++;return $rootscope.$broadcast("filters:issueupdate",$scope.filters)})}),taiga.bindOnce($scope,"project",function(project){return $el.append(selectionTemplate({statuses:project.issue_statuses})),updateIssueStatus($el,issue,$scope.issueStatusById),-1===project.my_permissions.indexOf("modify_issue")?($el.unbind("click"),$el.find("a").addClass("not-clickable")):void 0}),$scope.$watch($attrs.tgIssueStatusInlineEdition,function(){return function(val){return updateIssueStatus($el,val,$scope.issueStatusById)}}(this)),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgIssueStatusInlineEdition",["$tgRepo","$tgTemplate","$rootScope",IssueStatusInlineEditionDirective]),IssueAssignedToInlineEditionDirective=function($repo,$rootscope){var link,template;return template=_.template('<%- name %>\n
<%- name %>
'),link=function($scope,$el,$attrs){var $ctrl,issue,updateIssue;return updateIssue=function(issue){var ctx,member;return ctx={name:"Unassigned",imgurl:"/images/unnamed.png"},member=$scope.usersById[issue.assigned_to],member&&(ctx.imgurl=member.photo,ctx.name=member.full_name_display),$el.find(".avatar").html(template(ctx)),$el.find(".issue-assignedto").attr("title",ctx.name)},$ctrl=$el.controller(),issue=$scope.$eval($attrs.tgIssueAssignedToInlineEdition),updateIssue(issue),$el.on("click",".issue-assignedto",function(){return $rootscope.$broadcast("assigned-to:add",issue)}),taiga.bindOnce($scope,"project",function(project){return-1===project.my_permissions.indexOf("modify_issue")?($el.unbind("click"),$el.find("a").addClass("not-clickable")):void 0}),$scope.$on("assigned-to:added",function(){return function(ctx,userId,updatedIssue){return updatedIssue.id===issue.id?(updatedIssue.assigned_to=userId,$repo.save(updatedIssue),updateIssue(updatedIssue)):void 0}}(this)),$scope.$watch($attrs.tgIssueAssignedToInlineEdition,function(){return function(val){return updateIssue(val)}}(this)),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgIssueAssignedToInlineEdition",["$tgRepo","$rootScope",IssueAssignedToInlineEditionDirective])}.call(this),function(){var UsClientRequirementButtonDirective,UsStatusButtonDirective,UsStatusDisplayDirective,UsTasksProgressDisplayDirective,UsTeamRequirementButtonDirective,UserStoryDetailController,bindOnce,groupBy,mixOf,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,groupBy=this.taiga.groupBy,bindOnce=this.taiga.bindOnce,module=angular.module("taigaUserStories"),UserStoryDetailController=function(superClass){function UserStoryDetailController(scope,rootscope,repo,confirm,rs,params,q,location,log,appTitle,navUrls,analytics,tgLoader){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.log=log,this.appTitle=appTitle,this.navUrls=navUrls,this.analytics=analytics,this.scope.usRef=this.params.usref,this.scope.sectionName="User Story Details",this.initializeEventHandlers(),promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set(_this.scope.us.subject+" - "+_this.scope.project.name),_this.initializeOnDeleteGoToUrl()}}(this)),promise.then(null,this.onInitialDataError.bind(this)),promise["finally"](tgLoader.pageLoaded)}return extend(UserStoryDetailController,superClass),UserStoryDetailController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$log","$appTitle","$tgNavUrls","$tgAnalytics","tgLoader"],UserStoryDetailController.prototype.initializeEventHandlers=function(){return this.scope.$on("related-tasks:update",function(_this){return function(){return _this.loadUs(),_this.scope.tasks=_.clone(_this.scope.tasks,!1)}}(this)),this.scope.$on("attachment:create",function(_this){return function(){return _this.analytics.trackEvent("attachment","create","create attachment on userstory",1),_this.rootscope.$broadcast("history:reload")}}(this)),this.scope.$on("attachment:edit",function(_this){return function(){return _this.rootscope.$broadcast("history:reload")}}(this)),this.scope.$on("attachment:delete",function(_this){return function(){return _this.rootscope.$broadcast("history:reload")}}(this)),this.scope.$on("custom-attributes-values:edit",function(_this){return function(){return _this.rootscope.$broadcast("history:reload")}}(this))},UserStoryDetailController.prototype.initializeOnDeleteGoToUrl=function(){var ctx;return ctx={project:this.scope.project.slug},this.scope.onDeleteGoToUrl=this.navUrls.resolve("project",ctx),this.scope.project.is_backlog_activated?this.scope.us.milestone?(ctx.sprint=this.scope.sprint.slug,this.scope.onDeleteGoToUrl=this.navUrls.resolve("project-taskboard",ctx)):this.scope.onDeleteGoToUrl=this.navUrls.resolve("project-backlog",ctx):this.scope.project.is_kanban_activated?this.scope.onDeleteGoToUrl=this.navUrls.resolve("project-kanban",ctx):void 0},UserStoryDetailController.prototype.loadProject=function(){return this.rs.projects.getBySlug(this.params.pslug).then(function(_this){return function(project){return _this.scope.projectId=project.id,_this.scope.project=project,_this.scope.$emit("project:loaded",project),_this.scope.statusList=project.us_statuses,_this.scope.statusById=groupBy(project.us_statuses,function(x){return x.id}),_this.scope.taskStatusById=groupBy(project.task_statuses,function(x){return x.id}),_this.scope.membersById=groupBy(project.memberships,function(x){return x.user}),_this.scope.pointsList=_.sortBy(project.points,"order"),_this.scope.pointsById=groupBy(_this.scope.pointsList,function(e){return e.id}),project}}(this))},UserStoryDetailController.prototype.loadUs=function(){return this.rs.userstories.getByRef(this.scope.projectId,this.params.usref).then(function(_this){return function(us){var ctx;return _this.scope.us=us,_this.scope.usId=us.id,_this.scope.commentModel=us,null!=_this.scope.us.neighbors.previous.ref&&(ctx={project:_this.scope.project.slug,ref:_this.scope.us.neighbors.previous.ref},_this.scope.previousUrl=_this.navUrls.resolve("project-userstories-detail",ctx)),null!=_this.scope.us.neighbors.next.ref&&(ctx={project:_this.scope.project.slug,ref:_this.scope.us.neighbors.next.ref},_this.scope.nextUrl=_this.navUrls.resolve("project-userstories-detail",ctx)),us}}(this))},UserStoryDetailController.prototype.loadSprint=function(){return this.scope.us.milestone?this.rs.sprints.get(this.scope.us.project,this.scope.us.milestone).then(function(_this){return function(sprint){return _this.scope.sprint=sprint,sprint}}(this)):void 0},UserStoryDetailController.prototype.loadTasks=function(){return this.rs.tasks.list(this.scope.projectId,null,this.scope.usId).then(function(_this){return function(tasks){return _this.scope.tasks=tasks,tasks}}(this))},UserStoryDetailController.prototype.loadInitialData=function(){var promise;return promise=this.loadProject(),promise.then(function(_this){return function(project){return _this.fillUsersAndRoles(project.users,project.roles),_this.loadUs().then(function(){return _this.q.all([_this.loadSprint(),_this.loadTasks()])})}}(this))},UserStoryDetailController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("UserStoryDetailController",UserStoryDetailController),UsStatusDisplayDirective=function($template){var link,template;return template=$template.get("common/components/status-display.html",!0),link=function($scope,$el,$attrs){var render;return render=function(us){var html;return html=template({is_closed:us.is_closed,status:$scope.statusById[us.status]}),$el.html(html)},$scope.$watch($attrs.ngModel,function(us){return null!=us?render(us):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgUsStatusDisplay",["$tgTemplate",UsStatusDisplayDirective]),UsTasksProgressDisplayDirective=function($template){var link,template;return template=$template.get("us/us-task-progress.html",!0),link=function($scope,$el,$attrs){var render;return render=function(tasks){var html,progress,totalClosedTasks,totalTasks;return totalTasks=tasks.length,totalClosedTasks=_.filter(tasks,function(){return function(task){return $scope.taskStatusById[task.status].is_closed}}(this)).length,progress=totalTasks>0?100*totalClosedTasks/totalTasks:0,html=template({totalTasks:totalTasks,totalClosedTasks:totalClosedTasks,progress:progress}),$el.html(html)},$scope.$watch($attrs.ngModel,function(tasks){return null!=tasks?render(tasks):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgUsTasksProgressDisplay",["$tgTemplate",UsTasksProgressDisplayDirective]),UsStatusButtonDirective=function($rootScope,$repo,$confirm,$loading,$qqueue,$template){var link,template;return template=$template.get("us/us-status-button.html",!0),link=function($scope,$el,$attrs,$model){var isEditable,render,save;return isEditable=function(){return-1!==$scope.project.my_permissions.indexOf("modify_us")},render=function(){return function(us){var html,status;return status=$scope.statusById[us.status],html=template({status:status,statuses:$scope.statusList,editable:isEditable()}),$el.html(html)}}(this),save=$qqueue.bindAdd(function(){return function(status){var onError,onSuccess,us;return us=$model.$modelValue.clone(),us.status=status,$.fn.popover().closeAll(),$model.$setViewValue(us),onSuccess=function(){return $confirm.notify("success"),$rootScope.$broadcast("history:reload"),$loading.finish($el.find(".level-name"))},onError=function(){return $confirm.notify("error"),us.revert(),$model.$setViewValue(us),$loading.finish($el.find(".level-name"))},$loading.start($el.find(".level-name")),$repo.save($model.$modelValue).then(onSuccess,onError)}}(this)),$el.on("click",".status-data",function(event){return event.preventDefault(),event.stopPropagation(),isEditable()?$el.find(".pop-status").popover().open():void 0}),$el.on("click",".status",function(event){var status,target;return event.preventDefault(),event.stopPropagation(),isEditable()?(target=angular.element(event.currentTarget),status=target.data("status-id"),save(status)):void 0}),$scope.$watch($attrs.ngModel,function(us){return us?render(us):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgUsStatusButton",["$rootScope","$tgRepo","$tgConfirm","$tgLoading","$tgQqueue","$tgTemplate",UsStatusButtonDirective]),UsTeamRequirementButtonDirective=function($rootscope,$tgrepo,$confirm,$loading,$qqueue,$template){var link,template;return template=$template.get("us/us-team-requirement-button.html",!0),link=function($scope,$el,$attrs,$model){var canEdit,render,save;return canEdit=function(){return-1!==$scope.project.my_permissions.indexOf("modify_us")},render=function(us){var ctx,html;return canEdit()||us.team_requirement?(ctx={canEdit:canEdit(),isRequired:us.team_requirement},html=template(ctx),$el.html(html)):void $el.html("")},save=$qqueue.bindAdd(function(){return function(team_requirement){var promise,us;return us=$model.$modelValue.clone(),us.team_requirement=team_requirement,$model.$setViewValue(us),$loading.start($el.find("label")),promise=$tgrepo.save($model.$modelValue),promise.then(function(){return $loading.finish($el.find("label")),$rootscope.$broadcast("history:reload")}),promise.then(null,function(){return $loading.finish($el.find("label")),$confirm.notify("error"),us.revert(),$model.$setViewValue(us)})}}(this)),$el.on("click",".team-requirement",function(){var team_requirement;if(canEdit())return team_requirement=!$model.$modelValue.team_requirement,save(team_requirement)}),$scope.$watch($attrs.ngModel,function(us){return us?render(us):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgUsTeamRequirementButton",["$rootScope","$tgRepo","$tgConfirm","$tgLoading","$tgQqueue","$tgTemplate",UsTeamRequirementButtonDirective]),UsClientRequirementButtonDirective=function($rootscope,$tgrepo,$confirm,$loading,$qqueue,$template){var link,template;return template=$template.get("us/us-client-requirement-button.html",!0),link=function($scope,$el,$attrs,$model){var canEdit,render,save;return canEdit=function(){return-1!==$scope.project.my_permissions.indexOf("modify_us")},render=function(us){var ctx,html;return canEdit()||us.client_requirement?(ctx={canEdit:canEdit(),isRequired:us.client_requirement},html=template(ctx),$el.html(html)):void $el.html("")},save=$qqueue.bindAdd(function(){return function(client_requirement){var promise,us;return us=$model.$modelValue.clone(),us.client_requirement=client_requirement,$model.$setViewValue(us),$loading.start($el.find("label")),promise=$tgrepo.save($model.$modelValue),promise.then(function(){return $loading.finish($el.find("label")),$rootscope.$broadcast("history:reload")}),promise.then(null,function(){return $loading.finish($el.find("label")),$confirm.notify("error"),us.revert(),$model.$setViewValue(us)})}}(this)),$el.on("click",".client-requirement",function(){var client_requirement;if(canEdit())return client_requirement=!$model.$modelValue.client_requirement,save(client_requirement)}),$scope.$watch($attrs.ngModel,function(us){return us?render(us):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgUsClientRequirementButton",["$rootScope","$tgRepo","$tgConfirm","$tgLoading","$tgQqueue","$tgTemplate",UsClientRequirementButtonDirective])}.call(this),function(){var TaskDetailController,TaskIsIocaineButtonDirective,TaskStatusButtonDirective,TaskStatusDisplayDirective,groupBy,mixOf,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,groupBy=this.taiga.groupBy,module=angular.module("taigaTasks"),TaskDetailController=function(superClass){function TaskDetailController(scope,rootscope,repo,confirm,rs,params,q,location,log,appTitle,navUrls,analytics,tgLoader){var promise; -this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.log=log,this.appTitle=appTitle,this.navUrls=navUrls,this.analytics=analytics,this.scope.taskRef=this.params.taskref,this.scope.sectionName="Task Details",this.initializeEventHandlers(),promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set(_this.scope.task.subject+" - "+_this.scope.project.name),_this.initializeOnDeleteGoToUrl()}}(this)),promise.then(null,this.onInitialDataError.bind(this)),promise["finally"](tgLoader.pageLoaded)}return extend(TaskDetailController,superClass),TaskDetailController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$log","$appTitle","$tgNavUrls","$tgAnalytics","tgLoader"],TaskDetailController.prototype.initializeEventHandlers=function(){return this.scope.$on("attachment:create",function(_this){return function(){return _this.analytics.trackEvent("attachment","create","create attachment on task",1),_this.rootscope.$broadcast("history:reload")}}(this)),this.scope.$on("attachment:edit",function(_this){return function(){return _this.rootscope.$broadcast("history:reload")}}(this)),this.scope.$on("attachment:delete",function(_this){return function(){return _this.rootscope.$broadcast("history:reload")}}(this)),this.scope.$on("custom-attributes-values:edit",function(_this){return function(){return _this.rootscope.$broadcast("history:reload")}}(this))},TaskDetailController.prototype.initializeOnDeleteGoToUrl=function(){var ctx;if(ctx={project:this.scope.project.slug},this.scope.onDeleteGoToUrl=this.navUrls.resolve("project",ctx),this.scope.project.is_backlog_activated){if(this.scope.task.milestone)return ctx.sprint=this.scope.sprint.slug,this.scope.onDeleteGoToUrl=this.navUrls.resolve("project-taskboard",ctx);if(this.scope.task.us)return ctx.ref=this.scope.us.ref,this.scope.onDeleteGoToUrl=this.navUrls.resolve("project-userstories-detail",ctx)}else if(this.scope.project.is_kanban_activated&&this.scope.us)return ctx.ref=this.scope.us.ref,this.scope.onDeleteGoToUrl=this.navUrls.resolve("project-userstories-detail",ctx)},TaskDetailController.prototype.loadProject=function(){return this.rs.projects.getBySlug(this.params.pslug).then(function(_this){return function(project){return _this.scope.projectId=project.id,_this.scope.project=project,_this.scope.$emit("project:loaded",project),_this.scope.statusList=project.task_statuses,_this.scope.statusById=groupBy(project.task_statuses,function(x){return x.id}),_this.scope.membersById=groupBy(project.memberships,function(x){return x.user}),project}}(this))},TaskDetailController.prototype.loadTask=function(){return this.rs.tasks.getByRef(this.scope.projectId,this.params.taskref).then(function(_this){return function(task){var ctx;return _this.scope.task=task,_this.scope.taskId=task.id,_this.scope.commentModel=task,null!=_this.scope.task.neighbors.previous.ref&&(ctx={project:_this.scope.project.slug,ref:_this.scope.task.neighbors.previous.ref},_this.scope.previousUrl=_this.navUrls.resolve("project-tasks-detail",ctx)),null!=_this.scope.task.neighbors.next.ref&&(ctx={project:_this.scope.project.slug,ref:_this.scope.task.neighbors.next.ref},_this.scope.nextUrl=_this.navUrls.resolve("project-tasks-detail",ctx)),task}}(this))},TaskDetailController.prototype.loadSprint=function(){return this.scope.task.milestone?this.rs.sprints.get(this.scope.task.project,this.scope.task.milestone).then(function(_this){return function(sprint){return _this.scope.sprint=sprint,sprint}}(this)):void 0},TaskDetailController.prototype.loadUserStory=function(){return this.scope.task.user_story?this.rs.userstories.get(this.scope.task.project,this.scope.task.user_story).then(function(_this){return function(us){return _this.scope.us=us,us}}(this)):void 0},TaskDetailController.prototype.loadInitialData=function(){var promise;return promise=this.loadProject(),promise.then(function(_this){return function(project){return _this.fillUsersAndRoles(project.users,project.roles),_this.loadTask().then(function(){return _this.q.all([_this.loadSprint(),_this.loadUserStory()])})}}(this))},TaskDetailController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("TaskDetailController",TaskDetailController),TaskStatusDisplayDirective=function($template){var link,template;return template=$template.get("common/components/status-display.html",!0),link=function($scope,$el,$attrs){var render;return render=function(task){var html,status;return status=$scope.statusById[task.status],html=template({is_closed:status.is_closed,status:status}),$el.html(html)},$scope.$watch($attrs.ngModel,function(task){return null!=task?render(task):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgTaskStatusDisplay",["$tgTemplate",TaskStatusDisplayDirective]),TaskStatusButtonDirective=function($rootScope,$repo,$confirm,$loading,$qqueue){var link,template;return template=_.template('
\n \n <%- status.name %>\n <% if(editable){ %><% }%>\n status\n\n
    \n <% _.each(statuses, function(st) { %>\n
  • <%- st.name %>
  • \n <% }); %>\n
\n
'),link=function($scope,$el,$attrs,$model){var isEditable,render,save;return isEditable=function(){return-1!==$scope.project.my_permissions.indexOf("modify_task")},render=function(){return function(task){var html,status;return status=$scope.statusById[task.status],html=template({status:status,statuses:$scope.statusList,editable:isEditable()}),$el.html(html)}}(this),save=$qqueue.bindAdd(function(){return function(status){var onError,onSuccess,task;return task=$model.$modelValue.clone(),task.status=status,$model.$setViewValue(task),onSuccess=function(){return $confirm.notify("success"),$rootScope.$broadcast("history:reload"),$loading.finish($el.find(".level-name"))},onError=function(){return $confirm.notify("error"),task.revert(),$model.$setViewValue(task),$loading.finish($el.find(".level-name"))},$loading.start($el.find(".level-name")),$repo.save($model.$modelValue).then(onSuccess,onError)}}(this)),$el.on("click",".status-data",function(event){return event.preventDefault(),event.stopPropagation(),isEditable()?$el.find(".pop-status").popover().open():void 0}),$el.on("click",".status",function(event){var target;return event.preventDefault(),event.stopPropagation(),isEditable()?(target=angular.element(event.currentTarget),$.fn.popover().closeAll(),save(target.data("status-id"))):void 0}),$scope.$watch($attrs.ngModel,function(task){return task?render(task):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgTaskStatusButton",["$rootScope","$tgRepo","$tgConfirm","$tgLoading","$tgQqueue",TaskStatusButtonDirective]),TaskIsIocaineButtonDirective=function($rootscope,$tgrepo,$confirm,$loading,$qqueue){var link,template;return template=_.template('
\n \n \n
'),link=function($scope,$el,$attrs,$model){var isEditable,render,save;return isEditable=function(){return-1!==$scope.project.my_permissions.indexOf("modify_task")},render=function(task){var ctx,html;return isEditable()||task.is_iocaine?(ctx={isIocaine:task.is_iocaine,isEditable:isEditable()},html=template(ctx),$el.html(html)):void $el.html("")},save=$qqueue.bindAdd(function(){return function(is_iocaine){var promise,task;return task=$model.$modelValue.clone(),task.is_iocaine=is_iocaine,$model.$setViewValue(task),$loading.start($el.find("label")),promise=$tgrepo.save(task),promise.then(function(){return $confirm.notify("success"),$rootscope.$broadcast("history:reload")}),promise.then(null,function(){return task.revert(),$model.$setViewValue(task),$confirm.notify("error")}),promise["finally"](function(){return $loading.finish($el.find("label"))})}}(this)),$el.on("click",".is-iocaine",function(){var is_iocaine;if(isEditable())return is_iocaine=!$model.$modelValue.is_iocaine,save(is_iocaine)}),$scope.$watch($attrs.ngModel,function(task){return task?render(task):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgTaskIsIocaineButton",["$rootScope","$tgRepo","$tgConfirm","$tgLoading","$tgQqueue",TaskIsIocaineButtonDirective])}.call(this),function(){var LeaveProjectDirective,TeamController,TeamFiltersDirective,TeamMemberCurrentUserDirective,TeamMemberStatsDirective,TeamMembersDirective,mixOf,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,module=angular.module("taigaTeam"),TeamController=function(superClass){function TeamController(scope,rootscope,repo,rs,params,q,location,navUrls,appTitle,auth,tgLoader){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.rs=rs,this.params=params,this.q=q,this.location=location,this.navUrls=navUrls,this.appTitle=appTitle,this.auth=auth,this.scope.sectionName="Team",promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Team - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this)),promise["finally"](tgLoader.pageLoaded)}return extend(TeamController,superClass),TeamController.$inject=["$scope","$rootScope","$tgRepo","$tgResources","$routeParams","$q","$location","$tgNavUrls","$appTitle","$tgAuth","tgLoader"],TeamController.prototype.setRole=function(role){return this.scope.filtersRole=role?role:null},TeamController.prototype.loadMembers=function(){return this.rs.memberships.list(this.scope.projectId,{},!1).then(function(_this){return function(data){var currentUser,i,len,membership,ref;for(currentUser=_this.auth.getUser(),null!=currentUser&&null==currentUser.photo&&(currentUser.photo="/images/unnamed.png"),_this.scope.currentUser=_.find(data,function(membership){return null!=currentUser&&membership.user===currentUser.id}),_this.scope.totals={},_.forEach(data,function(membership){return _this.scope.totals[membership.user]=0}),_this.scope.memberships=_.filter(data,function(membership){return membership.user&&(null==currentUser||membership.user!==currentUser.id)&&membership.is_user_active?membership:void 0}),ref=_this.scope.memberships,i=0,len=ref.length;len>i;i++)membership=ref[i],null==membership.photo&&(membership.photo="/images/unnamed.png");return data}}(this))},TeamController.prototype.loadProject=function(){return this.rs.projects.getBySlug(this.params.pslug).then(function(_this){return function(project){return _this.scope.projectId=project.id,_this.scope.project=project,_this.scope.$emit("project:loaded",project),_this.scope.issuesEnabled=project.is_issues_activated,_this.scope.tasksEnabled=project.is_kanban_activated||project.is_backlog_activated,_this.scope.wikiEnabled=project.is_wiki_activated,project}}(this))},TeamController.prototype.loadMemberStats=function(){return this.rs.projects.memberStats(this.scope.projectId).then(function(_this){return function(stats){var totals;return totals={},_.forEach(_this.scope.totals,function(total,userId){var vals;return vals=_.map(stats,function(memberStats){return memberStats[userId]}),total=_.reduce(vals,function(sum,el){return sum+el}),_this.scope.totals[userId]=total}),_this.scope.stats=_this.processStats(stats),_this.scope.stats.totals=_this.scope.totals}}(this))},TeamController.prototype.processStat=function(stat){var max,min,singleStat;return max=_.max(stat),min=_.min(stat),singleStat=_.map(stat,function(value,key){return value===min?[key,.1]:value===max?[key,1]:[key,.5*value/max]}),singleStat=_.object(singleStat)},TeamController.prototype.processStats=function(stats){var key,value;for(key in stats)value=stats[key],stats[key]=this.processStat(value);return stats},TeamController.prototype.loadInitialData=function(){var promise;return promise=this.loadProject(),promise.then(function(_this){return function(project){return _this.fillUsersAndRoles(project.users,project.roles),_this.loadMembers().then(function(){return _this.loadMemberStats()})}}(this))},TeamController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("TeamController",TeamController),TeamFiltersDirective=function(){return{templateUrl:"team/team-filter.html"}},module.directive("tgTeamFilters",[TeamFiltersDirective]),TeamMemberStatsDirective=function(){return{templateUrl:"team/team-member-stats.html",scope:{stats:"=",userId:"=user",issuesEnabled:"=issuesenabled",tasksEnabled:"=tasksenabled",wikiEnabled:"=wikienabled"}}},module.directive("tgTeamMemberStats",TeamMemberStatsDirective),TeamMemberCurrentUserDirective=function(){return{templateUrl:"team/team-member-current-user.html",scope:{projectId:"=projectid",currentUser:"=currentuser",stats:"=",issuesEnabled:"=issuesenabled",tasksEnabled:"=tasksenabled",wikiEnabled:"=wikienabled"}}},module.directive("tgTeamCurrentUser",TeamMemberCurrentUserDirective),TeamMembersDirective=function(){var template;return template="team/team-members.html",{templateUrl:template,scope:{memberships:"=",filtersQ:"=filtersq",filtersRole:"=filtersrole",stats:"=",issuesEnabled:"=issuesenabled",tasksEnabled:"=tasksenabled",wikiEnabled:"=wikienabled"}}},module.directive("tgTeamMembers",TeamMembersDirective),LeaveProjectDirective=function($repo,$confirm,$location,$rs,$navurls){var link;return link=function($scope,$el,$attrs){return $scope.leave=function(){return $confirm.ask("Leave this project","Are you sure you want to leave the project?").then(function(){return function(finish){var promise;return promise=$rs.projects.leave($attrs.projectid),promise.then(function(){return finish(),$confirm.notify("success"),$location.path($navurls.resolve("home"))}),promise.then(null,function(response){return finish(),$confirm.notify("error",response.data._error_message)})}}(this))}},{scope:{},templateUrl:"team/leave-project.html",link:link}},module.directive("tgLeaveProject",["$tgRepo","$tgConfirm","$tgLocation","$tgResources","$tgNavUrls",LeaveProjectDirective]),module.filter("membersRoleFilter",function(){return function(input,filtersRole){return null!=filtersRole?_.filter(input,{role:filtersRole.id}):input}})}.call(this),function(){var EditableWikiContentDirective,WikiDetailController,WikiSummaryDirective,bindOnce,debounce,groupBy,mixOf,module,taiga,unslugify,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,groupBy=this.taiga.groupBy,bindOnce=this.taiga.bindOnce,unslugify=this.taiga.unslugify,debounce=this.taiga.debounce,module=angular.module("taigaWiki"),WikiDetailController=function(superClass){function WikiDetailController(scope,rootscope,repo,model,confirm,rs,params,q,location,filter,log,appTitle,navUrls,analytics,tgLoader){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.model=model,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.filter=filter,this.log=log,this.appTitle=appTitle,this.navUrls=navUrls,this.analytics=analytics,this.scope.projectSlug=this.params.pslug,this.scope.wikiSlug=this.params.slug,this.scope.sectionName="Wiki",promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Wiki - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this)),promise["finally"](tgLoader.pageLoaded)}return extend(WikiDetailController,superClass),WikiDetailController.$inject=["$scope","$rootScope","$tgRepo","$tgModel","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$filter","$log","$appTitle","$tgNavUrls","$tgAnalytics","tgLoader"],WikiDetailController.prototype.loadProject=function(){return this.rs.projects.getBySlug(this.params.pslug).then(function(_this){return function(project){return project.is_wiki_activated||_this.location.path(_this.navUrls.resolve("permission-denied")),_this.scope.projectId=project.id,_this.scope.project=project,_this.scope.$emit("project:loaded",project),_this.scope.membersById=groupBy(project.memberships,function(x){return x.user}),project}}(this))},WikiDetailController.prototype.loadWiki=function(){var promise;return promise=this.rs.wiki.getBySlug(this.scope.projectId,this.params.slug),promise.then(function(_this){return function(wiki){return _this.scope.wiki=wiki,_this.scope.wikiId=wiki.id,_this.scope.wiki}}(this)),promise.then(null,function(_this){return function(){var data;return _this.scope.wikiId=null,-1===_this.scope.project.my_permissions.indexOf("add_wiki_page")?null:(data={project:_this.scope.projectId,slug:_this.scope.wikiSlug,content:""},_this.scope.wiki=_this.model.make_model("wiki",data),_this.scope.wiki)}}(this))},WikiDetailController.prototype.loadWikiLinks=function(){return this.rs.wiki.listLinks(this.scope.projectId).then(function(_this){return function(wikiLinks){return _this.scope.wikiLinks=wikiLinks}}(this))},WikiDetailController.prototype.loadInitialData=function(){var promise;return promise=this.loadProject(),promise.then(function(_this){return function(project){return _this.fillUsersAndRoles(project.users,project.roles),_this.q.all([_this.loadWikiLinks(),_this.loadWiki()])}}(this))},WikiDetailController.prototype["delete"]=function(){var message,title;return title="Delete Wiki Page",message=unslugify(this.scope.wiki.slug),this.confirm.askOnDelete(title,message).then(function(_this){return function(finish){var onError,onSuccess;return onSuccess=function(){var ctx;return finish(),ctx={project:_this.scope.projectSlug},_this.location.path(_this.navUrls.resolve("project-wiki",ctx)),_this.confirm.notify("success")},onError=function(){return finish(!1),_this.confirm.notify("error")},_this.repo.remove(_this.scope.wiki).then(onSuccess,onError)}}(this))},WikiDetailController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("WikiDetailController",WikiDetailController),WikiSummaryDirective=function($log,$template){var link,template;return template=$template.get("wiki/wiki-summary.html",!0),link=function($scope,$el,$attrs){var render;return render=function(wiki){var ctx,html,user;return null==$scope.usersById?$log.error("WikiSummaryDirective requires userById set in scope."):user=$scope.usersById[wiki.last_modifier],user=void 0===user?{name:"unknown",imgUrl:"/images/unnamed.png"}:{name:user.full_name_display,imgUrl:user.photo},ctx={totalEditions:wiki.editions,lastModifiedDate:moment(wiki.modified_date).format("DD MMM YYYY HH:mm"),user:user},html=template(ctx),$el.html(html)},$scope.$watch($attrs.ngModel,function(wikiPage){return wikiPage?render(wikiPage):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgWikiSummary",["$log","$tgTemplate",WikiSummaryDirective]),EditableWikiContentDirective=function($window,$document,$repo,$confirm,$loading,$analytics,$qqueue){var link;return link=function($scope,$el,$attrs,$model){var cancelEdition,disableEdition,getSelectedText,isEditable,save,switchToEditMode,switchToReadMode;return isEditable=function(){return-1!==$scope.project.my_permissions.indexOf("modify_wiki_page")},switchToEditMode=function(){return $el.find(".edit-wiki-content").show(),$el.find(".view-wiki-content").hide(),$el.find("textarea").focus()},switchToReadMode=function(){return $el.find(".edit-wiki-content").hide(),$el.find(".view-wiki-content").show()},disableEdition=function(){return $el.find(".view-wiki-content .edit").remove(),$el.find(".edit-wiki-content").remove()},cancelEdition=function(){return $model.$modelValue.id?($scope.$apply(function(){return function(){return $model.$modelValue.revert()}}(this)),switchToReadMode()):void 0},getSelectedText=function(){return $window.getSelection?$window.getSelection().toString():$document.selection?$document.selection.createRange().text:null},save=$qqueue.bindAdd(function(wiki){var onError,onSuccess,promise;return onSuccess=function(wikiPage){return null==wiki.id&&$analytics.trackEvent("wikipage","create","create wiki page",1),$model.$setViewValue(wikiPage),$confirm.notify("success"),switchToReadMode()},onError=function(){return $confirm.notify("error")},$loading.start($el.find(".save-container")),promise=null!=wiki.id?$repo.save(wiki).then(onSuccess,onError):$repo.create("wiki",wiki).then(onSuccess,onError),promise["finally"](function(){return $loading.finish($el.find(".save-container"))})}),$el.on("mousedown",".view-wiki-content",function(event){var target;target=angular.element(event.target),isEditable()&&2===event.button}),$el.on("mouseup",".view-wiki-content",function(event){var target;return target=angular.element(event.target),getSelectedText()||!isEditable()||target.is("a")||target.is("pre")?void 0:switchToEditMode()}),$el.on("click",".save",debounce(2e3,function(){return save($scope.wiki)})),$el.on("click",".cancel",function(){return cancelEdition()}),$el.on("keydown","textarea",function(event){return 27===event.keyCode?cancelEdition():void 0}),$scope.$watch($attrs.ngModel,function(wikiPage){return wikiPage?isEditable()?($el.addClass("editable"),null==wikiPage.id?switchToEditMode():void 0):disableEdition():void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel",templateUrl:"wiki/editable-wiki-content.html"}},module.directive("tgEditableWikiContent",["$window","$document","$tgRepo","$tgConfirm","$tgLoading","$tgAnalytics","$tgQqueue",EditableWikiContentDirective])}.call(this),function(){var WikiNavDirective,bindOnce,groupBy,mixOf,module,slugify,taiga,unslugify;taiga=this.taiga,mixOf=this.taiga.mixOf,groupBy=this.taiga.groupBy,bindOnce=this.taiga.bindOnce,slugify=this.taiga.slugify,unslugify=this.taiga.slugify,module=angular.module("taigaWiki"),WikiNavDirective=function($tgrepo,$log,$location,$confirm,$navUrls,$analytics,$loading,$template){var link,template;return template=$template.get("wiki/wiki-nav.html",!0),link=function($scope,$el,$attrs){var $ctrl,render;return $ctrl=$el.controller(),null==$attrs.ngModel?$log.error("WikiNavDirective: no ng-model attr is defined"):(render=function(wikiLinks){var addWikiLinkPermission,deleteWikiLinkPermission,html;return addWikiLinkPermission=$scope.project.my_permissions.indexOf("add_wiki_link")>-1,deleteWikiLinkPermission=$scope.project.my_permissions.indexOf("delete_wiki_link")>-1,html=template({wikiLinks:wikiLinks,projectSlug:$scope.projectSlug,addWikiLinkPermission:addWikiLinkPermission,deleteWikiLinkPermission:deleteWikiLinkPermission}),$el.off(),$el.html(html),$el.on("click",".wiki-link .link-title",function(event){var linkId,linkSlug,target;return event.preventDefault(),target=angular.element(event.currentTarget),linkId=target.parents(".wiki-link").data("id"),linkSlug=$scope.wikiLinks[linkId].href,$scope.$apply(function(){var ctx;return ctx={project:$scope.projectSlug,slug:linkSlug},$location.path($navUrls.resolve("project-wiki-page",ctx))})}),$el.on("click",".add-button",function(event){return event.preventDefault(),$el.find(".new").removeClass("hidden"),$el.find(".new input").focus(),$el.find(".add-button").hide()}),$el.on("click",".wiki-link .icon-delete",function(event){var linkId,message,target,title;return event.preventDefault(),event.stopPropagation(),target=angular.element(event.currentTarget),linkId=target.parents(".wiki-link").data("id"),title="Delete Wiki Link",message=$scope.wikiLinks[linkId].title,$confirm.askOnDelete(title,message).then(function(){return function(finish){var promise;return promise=$tgrepo.remove($scope.wikiLinks[linkId]),promise.then(function(){return promise=$ctrl.loadWikiLinks(),promise.then(function(){return finish(),render($scope.wikiLinks)}),promise.then(null,function(){return finish()})}),promise.then(null,function(){return finish(!1),$confirm.notify("error")})}}(this))}),$el.on("keyup",".new input",function(event){var newLink,promise,target;return event.preventDefault(),13===event.keyCode?(target=angular.element(event.currentTarget),newLink=target.val(),$loading.start($el.find(".new")),promise=$tgrepo.create("wiki-links",{project:$scope.projectId,title:newLink,href:slugify(newLink)}),promise.then(function(){var loadPromise;return $analytics.trackEvent("wikilink","create","create wiki link",1),loadPromise=$ctrl.loadWikiLinks(),loadPromise.then(function(){return $loading.finish($el.find(".new")),$el.find(".new").addClass("hidden"),$el.find(".new input").val(""),$el.find(".add-button").show(),render($scope.wikiLinks)}),loadPromise.then(null,function(){return $loading.finish($el.find(".new")),$el.find(".new").addClass("hidden"),$el.find(".new input").val(""),$el.find(".add-button").show(),$confirm.notify("error","Error loading wiki links")})}),promise.then(null,function(error){var ref;return $loading.finish($el.find(".new")),$el.find(".new input").val(newLink),$el.find(".new input").focus().select(),null!=(null!=error&&null!=(ref=error.__all__)?ref[0]:void 0)?$confirm.notify("error","The link already exists"):$confirm.notify("error")})):27===event.keyCode?(target=angular.element(event.currentTarget),$el.find(".new").addClass("hidden"),$el.find(".new input").val(""),$el.find(".add-button").show()):void 0})},bindOnce($scope,$attrs.ngModel,render))},{link:link}},module.directive("tgWikiNav",["$tgRepo","$log","$tgLocation","$tgConfirm","$tgNavUrls","$tgAnalytics","$tgLoading","$tgTemplate",WikiNavDirective])}.call(this),function(){var CreateMembersDirective,MAX_MEMBERSHIP_FIELDSETS,debounce,module,taiga;taiga=this.taiga,debounce=this.taiga.debounce,module=angular.module("taigaKanban"),MAX_MEMBERSHIP_FIELDSETS=4,CreateMembersDirective=function($rs,$rootScope,$confirm,$loading,lightboxService){var extraTextTemplate,link,template;return extraTextTemplate='
\n \n
',template=_.template('
\n
\n data-required="true" <% } %> data-type="email" />\n
\n
\n \n \n
\n
'),link=function($scope,$el){var createFieldSet,resetForm,submit,submitButton;return createFieldSet=function(required){var ctx;return null==required&&(required=!0),ctx={roleList:$scope.roles,required:required},template(ctx)},resetForm=function(){var fieldSet,invitations;return $el.find("form textarea").remove(""),$el.find("form .add-member-wrapper").remove(),invitations=$el.find(".add-member-forms"),invitations.html(extraTextTemplate),fieldSet=createFieldSet(),invitations.prepend(fieldSet)},$scope.$on("membersform:new",function(){return resetForm(),lightboxService.open($el)}),$scope.$on("$destroy",function(){return $el.off()}),$el.on("click",".delete-fieldset",function(event){var fieldSet,lastActionButton,target;return event.preventDefault(),target=angular.element(event.currentTarget),fieldSet=target.closest(".add-member-wrapper"),fieldSet.remove(),lastActionButton=$el.find("fieldset:last > a"),lastActionButton.hasClass("icon-delete delete-fieldset")?lastActionButton.removeClass("icon-delete delete-fieldset").addClass("icon-plus add-fieldset"):void 0}),$el.on("click",".add-fieldset",function(event){var fieldSet,newFieldSet,target;return event.preventDefault(),target=angular.element(event.currentTarget),fieldSet=target.closest(".add-member-wrapper"),target.removeClass("icon-plus add-fieldset").addClass("icon-delete delete-fieldset"),newFieldSet=createFieldSet(!1),fieldSet.after(newFieldSet),$el.find(".add-member-wrapper").length===MAX_MEMBERSHIP_FIELDSETS?$el.find(".add-member-wrapper fieldset:last > a").removeClass("icon-plus add-fieldset").addClass("icon-delete delete-fieldset"):void 0}),submit=debounce(2e3,function(){return function(event){var form,invitation_extra_text,invitations,memberWrappers,onError,onSuccess;return event.preventDefault(),$loading.start(submitButton),onSuccess=function(){return $loading.finish(submitButton),lightboxService.close($el),$confirm.notify("success"),$rootScope.$broadcast("membersform:new:success")},onError=function(){return $loading.finish(submitButton),lightboxService.close($el),$confirm.notify("error"),$rootScope.$broadcast("membersform:new:error")},form=$el.find("form").checksley(),form.destroy(),form.initialize(),form.validate()?(memberWrappers=$el.find("form .add-member-wrapper"),memberWrappers=_.filter(memberWrappers,function(mw){return angular.element(mw).find("input").hasClass("checksley-ok")}),invitations=_.map(memberWrappers,function(mw){var email,memberWrapper,role;return memberWrapper=angular.element(mw),email=memberWrapper.find("input"),role=memberWrapper.find("select"),{email:email.val(),role_id:role.val()}}),invitations.length?(invitation_extra_text=$el.find("form textarea").val(),$rs.memberships.bulkCreateMemberships($scope.project.id,invitations,invitation_extra_text).then(onSuccess,onError)):void 0):void 0}}(this)),submitButton=$el.find(".submit-button"),$el.on("submit","form",submit)},{link:link}},module.directive("tgLbCreateMembers",["$tgResources","$rootScope","$tgConfirm","$tgLoading","lightboxService",CreateMembersDirective])}.call(this),function(){var MembershipsController,MembershipsDirective,MembershipsRowActionsDirective,MembershipsRowAdminCheckboxDirective,MembershipsRowAvatarDirective,MembershipsRowRoleSelectorDirective,bindMethods,mixOf,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,bindMethods=this.taiga.bindMethods,module=angular.module("taigaAdmin"),MembershipsController=function(superClass){function MembershipsController(scope,rootscope,repo,confirm,rs,params,q,location,navUrls,analytics,appTitle){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.navUrls=navUrls,this.analytics=analytics,this.appTitle=appTitle,bindMethods(this),this.scope.sectionName="Manage Members",this.scope.project={},this.scope.filters={},promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Membership - "+_this.scope.project.name) -}}(this)),promise.then(null,this.onInitialDataError.bind(this)),this.scope.$on("membersform:new:success",function(_this){return function(){return _this.loadMembers(),_this.analytics.trackEvent("membership","create","create memberships on admin",1)}}(this))}return extend(MembershipsController,superClass),MembershipsController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$tgNavUrls","$tgAnalytics","$appTitle"],MembershipsController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return project.i_am_owner||_this.location.path(_this.navUrls.resolve("permission-denied")),_this.scope.project=project,_this.scope.$emit("project:loaded",project),project}}(this))},MembershipsController.prototype.loadMembers=function(){var httpFilters;return httpFilters=this.getUrlFilters(),this.rs.memberships.list(this.scope.projectId,httpFilters).then(function(_this){return function(data){return _this.scope.memberships=_.filter(data.models,function(membership){return null===membership.user||membership.is_user_active}),_this.scope.page=data.current,_this.scope.count=data.count,_this.scope.paginatedBy=data.paginatedBy,data}}(this))},MembershipsController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this)).then(function(_this){return function(){return _this.loadUsersAndRoles()}}(this)).then(function(_this){return function(){return _this.loadMembers()}}(this))},MembershipsController.prototype.getUrlFilters=function(){var filters;return filters=_.pick(this.location.search(),"page"),filters.page||(filters.page=1),filters},MembershipsController.prototype.addNewMembers=function(){return this.rootscope.$broadcast("membersform:new")},MembershipsController}(mixOf(taiga.Controller,taiga.PageMixin,taiga.FiltersMixin)),module.controller("MembershipsController",MembershipsController),MembershipsDirective=function($template){var link,linkPagination,template;return template=$template.get("admin/admin-membership-paginator.html",!0),linkPagination=function($scope,$el,$attrs,$ctrl){var $pagEl,afterCurrent,atBegin,atEnd,beforeCurrent,getNumPages,renderPagination;return afterCurrent=2,beforeCurrent=4,atBegin=2,atEnd=2,$pagEl=$el.find(".memberships-paginator"),getNumPages=function(){var numPages;return numPages=$scope.count/$scope.paginatedBy,numPages=parseInt(numPages,10)=numPages)return void $pagEl.hide();for(pages=[],options={},options.pages=pages,options.showPrevious=$scope.page>1,options.showNext=!($scope.page===numPages),cpage=$scope.page,i=j=1,ref=numPages;ref>=1?ref>=j:j>=ref;i=ref>=1?++j:--j)i===cpage+afterCurrent&&numPages>cpage+afterCurrent+atEnd?pages.push({classes:"dots",type:"dots"}):i===cpage-beforeCurrent&&cpage>atBegin+beforeCurrent?pages.push({classes:"dots",type:"dots"}):i>cpage+afterCurrent&&numPages-atEnd>=i||cpage-beforeCurrent>i&&i>atBegin||pages.push(i===cpage?{classes:"active",num:i,type:"page-active"}:{classes:"page",num:i,type:"page"});return $pagEl.html(template(options))},$scope.$watch("memberships",function(value){return value?renderPagination():void 0}),$el.on("click",".memberships-paginator a.next",function(event){return event.preventDefault(),$scope.$apply(function(){return $ctrl.selectFilter("page",$scope.page+1),$ctrl.loadMembers()})}),$el.on("click",".memberships-paginator a.previous",function(event){return event.preventDefault(),$scope.$apply(function(){return $ctrl.selectFilter("page",$scope.page-1),$ctrl.loadMembers()})}),$el.on("click",".memberships-paginator li.page > a",function(event){var pagenum,target;return event.preventDefault(),target=angular.element(event.currentTarget),pagenum=target.data("pagenum"),$scope.$apply(function(){return $ctrl.selectFilter("page",pagenum),$ctrl.loadMembers()})})},link=function($scope,$el,$attrs){var $ctrl;return $ctrl=$el.controller(),linkPagination($scope,$el,$attrs,$ctrl),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgMemberships",["$tgTemplate",MembershipsDirective]),MembershipsRowAvatarDirective=function($log,$template){var link,template;return template=$template.get("admin/memberships-row-avatar.html",!0),link=function($scope,$el,$attrs){var member,render;return render=function(member){var ctx,html;return ctx={full_name:member.full_name?member.full_name:"",email:member.user_email?member.user_email:member.email,imgurl:member.photo?member.photo:"/images/unnamed.png"},html=template(ctx),$el.html(html)},null==$attrs.tgMembershipsRowAvatar?$log.error("MembershipsRowAvatarDirective: the directive need a member"):(member=$scope.$eval($attrs.tgMembershipsRowAvatar),render(member),$scope.$on("$destroy",function(){return $el.off()}))},{link:link}},module.directive("tgMembershipsRowAvatar",["$log","$tgTemplate",MembershipsRowAvatarDirective]),MembershipsRowAdminCheckboxDirective=function($log,$repo,$confirm,$template){var link,template;return template=$template.get("admin/admin-memberships-row-checkbox.html",!0),link=function($scope,$el,$attrs){var html,member,render;return render=function(member){var ctx,html;return ctx={inputId:"is-admin-"+member.id},html=template(ctx),$el.html(html)},null==$attrs.tgMembershipsRowAdminCheckbox?$log.error("MembershipsRowAdminCheckboxDirective: the directive need a member"):(member=$scope.$eval($attrs.tgMembershipsRowAdminCheckbox),html=render(member),member.is_owner&&$el.find(":checkbox").prop("checked",!0),$el.on("click",":checkbox",function(){return function(event){var onError,onSuccess,target;return onSuccess=function(){return $confirm.notify("success")},onError=function(data){return member.revert(),$el.find(":checkbox").prop("checked",member.is_owner),$confirm.notify("error",data.is_owner[0])},target=angular.element(event.currentTarget),member.is_owner=target.prop("checked"),$repo.save(member).then(onSuccess,onError)}}(this)),$scope.$on("$destroy",function(){return $el.off()}))},{link:link}},module.directive("tgMembershipsRowAdminCheckbox",["$log","$tgRepo","$tgConfirm","$tgTemplate",MembershipsRowAdminCheckboxDirective]),MembershipsRowRoleSelectorDirective=function($log,$repo,$confirm){var link,template;return template=_.template(''),link=function($scope,$el,$attrs){var $ctrl,html,member,render;return render=function(member){var ctx,html;return ctx={roleList:$scope.roles,selectedRole:member.role},html=template(ctx),$el.html(html)},null==$attrs.tgMembershipsRowRoleSelector?$log.error("MembershipsRowRoleSelectorDirective: the directive need a member"):($ctrl=$el.controller(),member=$scope.$eval($attrs.tgMembershipsRowRoleSelector),html=render(member),$el.on("change","select",function(){return function(event){var newRole,onError,onSuccess,target;return onSuccess=function(){return $confirm.notify("success")},onError=function(){return $confirm.notify("error")},target=angular.element(event.currentTarget),newRole=parseInt(target.val(),10),member.role!==newRole?(member.role=newRole,$repo.save(member).then(onSuccess,onError)):void 0}}(this)),$scope.$on("$destroy",function(){return $el.off()}))},{link:link}},module.directive("tgMembershipsRowRoleSelector",["$log","$tgRepo","$tgConfirm",MembershipsRowRoleSelectorDirective]),MembershipsRowActionsDirective=function($log,$repo,$rs,$confirm){var activedTemplate,link,pendingTemplate;return activedTemplate=_.template('
\n Active\n
\n\n \n'),pendingTemplate=_.template('\n Pending\n \n\n\n \n'),link=function($scope,$el,$attrs){var $ctrl,member,render;return render=function(member){var html;return html=member.user?activedTemplate():pendingTemplate(),$el.html(html)},null==$attrs.tgMembershipsRowActions?$log.error("MembershipsRowActionsDirective: the directive need a member"):($ctrl=$el.controller(),member=$scope.$eval($attrs.tgMembershipsRowActions),render(member),$el.on("click",".pending",function(event){var onError,onSuccess;return event.preventDefault(),onSuccess=function(){return $confirm.notify("success","We've sent the invitationi again to '"+$scope.member.email+"'.")},onError=function(){return $confirm.notify("error","We haven't sent the invitation.")},$rs.memberships.resendInvitation($scope.member.id).then(onSuccess,onError)}),$el.on("click",".delete",function(event){var message,title;return event.preventDefault(),title="Delete member",message=member.user?member.full_name:"the invitation to "+member.email,$confirm.askOnDelete(title,message).then(function(finish){var onError,onSuccess;return onSuccess=function(){return finish(),$ctrl.loadMembers(),$confirm.notify("success",null,"We've deleted "+message+".")},onError=function(){return finish(!1),$confirm.notify("error",null,"We have not been able to delete "+message+".")},$repo.remove(member).then(onSuccess,onError)})}),$scope.$on("$destroy",function(){return $el.off()}))},{link:link}},module.directive("tgMembershipsRowActions",["$log","$tgRepo","$tgResources","$tgConfirm",MembershipsRowActionsDirective])}.call(this),function(){var AdminNavigationDirective,module;AdminNavigationDirective=function(){var link;return link=function($scope,$el,$attrs){var section;return section=$attrs.tgAdminNavigation,$el.find(".active").removeClass("active"),$el.find("#adminmenu-"+section+" a").addClass("active"),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module=angular.module("taigaAdmin"),module.directive("tgAdminNavigation",AdminNavigationDirective)}.call(this),function(){var CsvExporterController,CsvExporterIssuesController,CsvExporterTasksController,CsvExporterUserstoriesController,ProjectDefaultValuesDirective,ProjectExportDirective,ProjectModulesDirective,ProjectProfileController,ProjectProfileDirective,bindOnce,debounce,groupBy,joinStr,mixOf,module,taiga,toString,trim,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,bind=function(fn,me){return function(){return fn.apply(me,arguments)}};taiga=this.taiga,mixOf=this.taiga.mixOf,trim=this.taiga.trim,toString=this.taiga.toString,joinStr=this.taiga.joinStr,groupBy=this.taiga.groupBy,bindOnce=this.taiga.bindOnce,debounce=this.taiga.debounce,module=angular.module("taigaAdmin"),ProjectProfileController=function(superClass){function ProjectProfileController(scope,rootscope,repo,confirm,rs,params,q,location,navUrls,appTitle){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.navUrls=navUrls,this.appTitle=appTitle,this.scope.project={},promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Project profile - "+_this.scope.sectionName+" - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this)),this.scope.$on("project:loaded",function(_this){return function(){return _this.appTitle.set("Project profile - "+_this.scope.sectionName+" - "+_this.scope.project.name)}}(this))}return extend(ProjectProfileController,superClass),ProjectProfileController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$tgNavUrls","$appTitle"],ProjectProfileController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return project.i_am_owner||_this.location.path(_this.navUrls.resolve("permission-denied")),_this.scope.project=project,_this.scope.pointsList=_.sortBy(project.points,"order"),_this.scope.usStatusList=_.sortBy(project.us_statuses,"order"),_this.scope.taskStatusList=_.sortBy(project.task_statuses,"order"),_this.scope.prioritiesList=_.sortBy(project.priorities,"order"),_this.scope.severitiesList=_.sortBy(project.severities,"order"),_this.scope.issueTypesList=_.sortBy(project.issue_types,"order"),_this.scope.issueStatusList=_.sortBy(project.issue_statuses,"order"),_this.scope.$emit("project:loaded",project),project}}(this))},ProjectProfileController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this))},ProjectProfileController.prototype.openDeleteLightbox=function(){return this.rootscope.$broadcast("deletelightbox:new",this.scope.project)},ProjectProfileController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("ProjectProfileController",ProjectProfileController),ProjectProfileDirective=function($repo,$confirm,$loading,$navurls,$location){var link;return link=function($scope,$el){var form,submit,submitButton;return form=$el.find("form").checksley({onlyOneErrorElement:!0}),submit=debounce(2e3,function(){return function(event){var promise;return event.preventDefault(),form.validate()?($loading.start(submitButton),promise=$repo.save($scope.project),promise.then(function(){var newUrl;return $loading.finish(submitButton),$confirm.notify("success"),newUrl=$navurls.resolve("project-admin-project-profile-details",{project:$scope.project.slug}),$location.path(newUrl),$scope.$emit("project:loaded",$scope.project)}),promise.then(null,function(data){return $loading.finish(target),form.setErrors(data),data._error_message?$confirm.notify("error",data._error_message):void 0})):void 0}}(this)),submitButton=$el.find(".submit-button"),$el.on("submit","form",submit)},{link:link}},module.directive("tgProjectProfile",["$tgRepo","$tgConfirm","$tgLoading","$tgNavUrls","$tgLocation",ProjectProfileDirective]),ProjectDefaultValuesDirective=function($repo,$confirm,$loading){var link;return link=function($scope,$el){var form,submit,submitButton;return form=$el.find("form").checksley({onlyOneErrorElement:!0}),submit=debounce(2e3,function(){return function(event){var promise;return event.preventDefault(),form.validate()?($loading.start(submitButton),promise=$repo.save($scope.project),promise.then(function(){return $loading.finish(submitButton),$confirm.notify("success")}),promise.then(null,function(data){return $loading.finish(target),form.setErrors(data),data._error_message?$confirm.notify("error",data._error_message):void 0})):void 0}}(this)),submitButton=$el.find(".submit-button"),$el.on("submit","form",submit),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgProjectDefaultValues",["$tgRepo","$tgConfirm","$tgLoading",ProjectDefaultValuesDirective]),ProjectModulesDirective=function($repo,$confirm,$loading){var link;return link=function($scope,$el){var form,submit;return form=$el.find("form").checksley(),submit=function(){return function(){var promise,target;if(form.validate())return target=angular.element(".admin-functionalities a.button-green"),$loading.start(target),promise=$repo.save($scope.project),promise.then(function(){return $loading.finish(target),$confirm.notify("success"),$scope.$emit("project:loaded",$scope.project)}),promise.then(null,function(data){return $loading.finish(target),$confirm.notify("error",data._error_message)})}}(this),$el.on("submit","form",function(event){return event.preventDefault(),submit()}),$el.on("click",".admin-functionalities a.button-green",function(event){return event.preventDefault(),submit()}),$scope.$watch("isVideoconferenceActivated",function(isVideoconferenceActivated){return isVideoconferenceActivated?$el.find(".videoconference-attributes").removeClass("hidden"):($el.find(".videoconference-attributes").addClass("hidden"),$scope.project.videoconferences=null,$scope.project.videoconferences_salt="")}),$scope.$watch("project",function(project){return $scope.isVideoconferenceActivated=null!=project.videoconferences?!0:!1})},{link:link}},module.directive("tgProjectModules",["$tgRepo","$tgConfirm","$tgLoading",ProjectModulesDirective]),ProjectExportDirective=function($window,$rs,$confirm){var link;return link=function($scope,$el){var buttonsEl,hideButtons,hideResult,hideSpinner,resultEl,resultMessageEl,resultTitleEl,setAsyncMessage,setAsyncTitle,setLoadingMessage,setLoadingTitle,setSyncMessage,setSyncTitle,showButtons,showErrorMode,showExportResultAsyncMode,showExportResultSyncMode,showLoadingMode,showResult,showSpinner,spinnerEl;return buttonsEl=$el.find(".admin-project-export-buttons"),showButtons=function(){return buttonsEl.removeClass("hidden")},hideButtons=function(){return buttonsEl.addClass("hidden")},resultEl=$el.find(".admin-project-export-result"),showResult=function(){return resultEl.removeClass("hidden")},hideResult=function(){return resultEl.addClass("hidden")},spinnerEl=$el.find(".spin"),showSpinner=function(){return spinnerEl.removeClass("hidden")},hideSpinner=function(){return spinnerEl.addClass("hidden")},resultTitleEl=$el.find(".result-title"),setLoadingTitle=function(){return resultTitleEl.html("We are generating your dump file")},setAsyncTitle=function(){return resultTitleEl.html("We are generating your dump file")},setSyncTitle=function(){return resultTitleEl.html("Your dump file is ready!")},resultMessageEl=$el.find(".result-message "),setLoadingMessage=function(){return resultMessageEl.html("Please don't close this page.")},setAsyncMessage=function(){return resultMessageEl.html("We will send you an email when ready.")},setSyncMessage=function(url){return resultMessageEl.html("If the download doesn't start automatically click here.")},showLoadingMode=function(){return showSpinner(),setLoadingTitle(),setLoadingMessage(),hideButtons(),showResult()},showExportResultAsyncMode=function(){return hideSpinner(),setAsyncTitle(),setAsyncMessage()},showExportResultSyncMode=function(url){return hideSpinner(),setSyncTitle(),setSyncMessage(url)},showErrorMode=function(){return hideSpinner(),hideResult(),showButtons()},$el.on("click","a.button-export",debounce(2e3,function(){return function(event){var onError,onSuccess;return event.preventDefault(),onSuccess=function(result){var dumpUrl;return 202===result.status?showExportResultAsyncMode():(dumpUrl=result.data.url,showExportResultSyncMode(dumpUrl),$window.open(dumpUrl,"_blank"))},onError=function(result){var errorMsg,ref;return showErrorMode(),errorMsg="Our oompa loompas have some problems generasting your dump. Please try again. ",429===result.status?errorMsg="Sorry, our oompa loompas are very busy right now. Please try again in a few minutes. ":(null!=(ref=result.data)?ref._error_message:void 0)&&(errorMsg="Our oompa loompas have some problems generasting your dump: "+result.data._error_message),$confirm.notify("error",errorMsg)},showLoadingMode(),$rs.projects["export"]($scope.projectId).then(onSuccess,onError)}}(this)))},{link:link}},module.directive("tgProjectExport",["$window","$tgResources","$tgConfirm",ProjectExportDirective]),CsvExporterController=function(superClass){function CsvExporterController(scope,rootscope,urls,confirm,rs){this.scope=scope,this.rootscope=rootscope,this.urls=urls,this.confirm=confirm,this.rs=rs,this._generateUuid=bind(this._generateUuid,this),this.setCsvUuid=bind(this.setCsvUuid,this),this.rootscope.$on("project:loaded",this.setCsvUuid),this.scope.$watch("csvUuid",function(_this){return function(value){return _this.scope.csvUrl=value?_this.urls.resolveAbsolute(_this.type+"-csv",value):""}}(this))}return extend(CsvExporterController,superClass),CsvExporterController.$inject=["$scope","$rootScope","$tgUrls","$tgConfirm","$tgResources"],CsvExporterController.prototype.setCsvUuid=function(){return this.scope.csvUuid=this.scope.project[this.type+"_csv_uuid"]},CsvExporterController.prototype._generateUuid=function(finish){var promise;return promise=this.rs.projects["regenerate_"+this.type+"_csv_uuid"](this.scope.projectId),promise.then(function(_this){return function(data){var ref;return _this.scope.csvUuid=null!=(ref=data.data)?ref.uuid:void 0}}(this)),promise.then(null,function(_this){return function(){return _this.confirm.notify("error")}}(this)),promise["finally"](function(){return finish()}),promise},CsvExporterController.prototype.regenerateUuid=function(){var subtitle,title;return this.scope.csvUuid?(title="Change URL",subtitle="You going to change the CSV data access url. The previous url will be disabled. Are you sure?",this.confirm.ask(title,subtitle).then(this._generateUuid)):this._generateUuid(_.identity)},CsvExporterController}(taiga.Controller),CsvExporterUserstoriesController=function(superClass){function CsvExporterUserstoriesController(){return CsvExporterUserstoriesController.__super__.constructor.apply(this,arguments)}return extend(CsvExporterUserstoriesController,superClass),CsvExporterUserstoriesController.prototype.type="userstories",CsvExporterUserstoriesController}(CsvExporterController),CsvExporterTasksController=function(superClass){function CsvExporterTasksController(){return CsvExporterTasksController.__super__.constructor.apply(this,arguments)}return extend(CsvExporterTasksController,superClass),CsvExporterTasksController.prototype.type="tasks",CsvExporterTasksController}(CsvExporterController),CsvExporterIssuesController=function(superClass){function CsvExporterIssuesController(){return CsvExporterIssuesController.__super__.constructor.apply(this,arguments)}return extend(CsvExporterIssuesController,superClass),CsvExporterIssuesController.prototype.type="issues",CsvExporterIssuesController}(CsvExporterController),module.controller("CsvExporterUserstoriesController",CsvExporterUserstoriesController),module.controller("CsvExporterTasksController",CsvExporterTasksController),module.controller("CsvExporterIssuesController",CsvExporterIssuesController)}.call(this),function(){var ColorSelectionDirective,ProjectCustomAttributesController,ProjectCustomAttributesDirective,ProjectValuesController,ProjectValuesDirective,ProjectValuesSectionController,bindOnce,debounce,groupBy,joinStr,mixOf,module,taiga,toString,trim,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,bind=function(fn,me){return function(){return fn.apply(me,arguments)}};taiga=this.taiga,mixOf=this.taiga.mixOf,trim=this.taiga.trim,toString=this.taiga.toString,joinStr=this.taiga.joinStr,groupBy=this.taiga.groupBy,bindOnce=this.taiga.bindOnce,debounce=this.taiga.debounce,module=angular.module("taigaAdmin"),ProjectValuesSectionController=function(superClass){function ProjectValuesSectionController(scope,rootscope,repo,confirm,rs,params,q,location,navUrls,appTitle){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.navUrls=navUrls,this.appTitle=appTitle,this.scope.project={},promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Project values - "+_this.scope.sectionName+" - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this))}return extend(ProjectValuesSectionController,superClass),ProjectValuesSectionController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$tgNavUrls","$appTitle"],ProjectValuesSectionController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return project.i_am_owner||_this.location.path(_this.navUrls.resolve("permission-denied")),_this.scope.project=project,_this.scope.$emit("project:loaded",project),project}}(this))},ProjectValuesSectionController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this))},ProjectValuesSectionController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("ProjectValuesSectionController",ProjectValuesSectionController),ProjectValuesController=function(superClass){function ProjectValuesController(scope,rootscope,repo,confirm,rs){this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.moveValue=bind(this.moveValue,this),this.loadValues=bind(this.loadValues,this),this.scope.$on("admin:project-values:move",this.moveValue),this.rootscope.$on("project:loaded",this.loadValues)}return extend(ProjectValuesController,superClass),ProjectValuesController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources"],ProjectValuesController.prototype.loadValues=function(){return this.rs[this.scope.resource].listValues(this.scope.projectId,this.scope.type).then(function(_this){return function(values){return _this.scope.values=values,_this.scope.maxValueOrder=_.max(values,"order").order,values}}(this))},ProjectValuesController.prototype.moveValue=function(ctx,itemValue,itemIndex){var r,values;return values=this.scope.values,r=values.indexOf(itemValue),values.splice(r,1),values.splice(itemIndex,0,itemValue),_.each(values,function(value,index){return value.order=index}),this.repo.saveAll(values)},ProjectValuesController}(taiga.Controller),module.controller("ProjectValuesController",ProjectValuesController),ProjectValuesDirective=function($log,$repo,$confirm){var link,linkDragAndDrop,linkValue;return linkDragAndDrop=function($scope,$el){var itemEl,newParentScope,oldParentScope,tdom;return oldParentScope=null,newParentScope=null,itemEl=null,tdom=$el.find(".sortable"),tdom.sortable({handle:".row.table-main.visualization",dropOnEmpty:!0,connectWith:".project-values-body",revert:400,axis:"y"}),tdom.on("sortstop",function(event,ui){var itemIndex,itemValue;return itemEl=ui.item,itemValue=itemEl.scope().value,itemIndex=itemEl.index(),$scope.$broadcast("admin:project-values:move",itemValue,itemIndex)}),$scope.$on("$destroy",function(){return $el.off()})},linkValue=function($scope,$el,$attrs){var $ctrl,cancel,goToBottomList,initializeNewValue,saveNewValue,saveValue,valueType;return $ctrl=$el.controller(),valueType=$attrs.type,initializeNewValue=function(){return $scope.newValue={name:"",is_closed:!1,is_archived:!1}},initializeNewValue(),goToBottomList=function(){return function(focus){var table;return null==focus&&(focus=!1),table=$el.find(".table-main"),$(document.body).scrollTop(table.offset().top+table.height()),focus?$el.find(".new-value input:visible").first().focus():void 0}}(this),saveValue=function(target){var form,formEl,promise,value;return formEl=target.parents("form"),form=formEl.checksley(),form.validate()?(value=formEl.scope().value,promise=$repo.save(value),promise.then(function(){return function(){var row;return row=target.parents(".row.table-main"),row.addClass("hidden"),row.siblings(".visualization").removeClass("hidden")}}(this)),promise.then(null,function(data){return form.setErrors(data)})):void 0},saveNewValue=function(target){var form,formEl,promise;return formEl=target.parents("form"),form=formEl.checksley(),form.validate()?($scope.newValue.project=$scope.project.id,$scope.newValue.order=$scope.maxValueOrder?$scope.maxValueOrder+1:1,promise=$repo.create(valueType,$scope.newValue),promise.then(function(){return function(data){return target.addClass("hidden"),$scope.values.push(data),$scope.maxValueOrder=data.order,initializeNewValue()}}(this)),promise.then(null,function(data){return form.setErrors(data)})):void 0},cancel=function(target){var formEl,row,value;return row=target.parents(".row.table-main"),formEl=target.parents("form"),value=formEl.scope().value,$scope.$apply(function(){return row.addClass("hidden"),value.revert(),row.siblings(".visualization").removeClass("hidden")})},$el.on("click",".show-add-new",function(event){return event.preventDefault(),$el.find(".new-value").removeClass("hidden"),goToBottomList(!0)}),$el.on("click",".add-new",debounce(2e3,function(event){var target;return event.preventDefault(),target=$el.find(".new-value"),saveNewValue(target)})),$el.on("click",".delete-new",function(event){return event.preventDefault(),$el.find(".new-value").addClass("hidden"),initializeNewValue()}),$el.on("click",".edit-value",function(event){var editionRow,row,target;return event.preventDefault(),target=angular.element(event.currentTarget),row=target.parents(".row.table-main"),row.addClass("hidden"),editionRow=row.siblings(".edition"),editionRow.removeClass("hidden"),editionRow.find("input:visible").first().focus().select()}),$el.on("keyup",".edition input",function(event){var target;return 13===event.keyCode?(target=angular.element(event.currentTarget),saveValue(target)):27===event.keyCode?(target=angular.element(event.currentTarget),cancel(target)):void 0}),$el.on("keyup",".new-value input",function(event){var target;return 13===event.keyCode?(target=$el.find(".new-value"),saveNewValue(target)):27===event.keyCode?($el.find(".new-value").addClass("hidden"),initializeNewValue()):void 0}),$el.on("click",".save",function(event){var target;return event.preventDefault(),target=angular.element(event.currentTarget),saveValue(target)}),$el.on("click",".cancel",function(event){var target;return event.preventDefault(),target=angular.element(event.currentTarget),cancel(target)}),$el.on("click",".delete-value",function(event){var choices,formEl,replacement,subtitle,target,title,value;return event.preventDefault(),target=angular.element(event.currentTarget),formEl=target.parents("form"),value=formEl.scope().value,choices={},_.each($scope.values,function(option){return value.id!==option.id?choices[option.id]=option.name:void 0}),title="Delete value",subtitle=value.name,replacement="All items with this value will be changed to",0===_.keys(choices).length?$confirm.error("You can't delete all values."):$confirm.askChoice(title,subtitle,choices,replacement).then(function(response){var onError,onSucces;return onSucces=function(){return $ctrl.loadValues()["finally"](function(){return response.finish()})},onError=function(){return $confirm.notify("error")},$repo.remove(value,{moveTo:response.selected}).then(onSucces,onError)})})},link=function($scope,$el,$attrs){return linkDragAndDrop($scope,$el,$attrs),linkValue($scope,$el,$attrs),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgProjectValues",["$log","$tgRepo","$tgConfirm","$tgLocation","animationFrame",ProjectValuesDirective]),ColorSelectionDirective=function(){var link;return link=function($scope,$el,$attrs,$model){var $ctrl;return $ctrl=$el.controller(),$scope.$watch($attrs.ngModel,function(element){return $scope.color=element.color}),$el.on("click",".current-color",function(event){var body,target;return event.preventDefault(),event.stopPropagation(),target=angular.element(event.currentTarget),$el.find(".select-color").hide(),target.siblings(".select-color").show(),body=angular.element("body"),body.on("click",function(){return function(event){return 0===angular.element(event.target).parent(".select-color").length?($el.find(".select-color").hide(),body.unbind("click")):void 0 -}}(this))}),$el.on("click",".select-color .color",function(event){var target;return event.preventDefault(),target=angular.element(event.currentTarget),$scope.$apply(function(){return $model.$modelValue.color=target.data("color")}),$el.find(".select-color").hide()}),$el.on("click",".select-color .selected-color",function(event){return event.preventDefault(),$scope.$apply(function(){return $model.$modelValue.color=$scope.color}),$el.find(".select-color").hide()}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,require:"ngModel"}},module.directive("tgColorSelection",ColorSelectionDirective),ProjectCustomAttributesController=function(superClass){function ProjectCustomAttributesController(scope,rootscope,repo,rs,params,q,location,navUrls,appTitle){this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.rs=rs,this.params=params,this.q=q,this.location=location,this.navUrls=navUrls,this.appTitle=appTitle,this.moveCustomAttributes=bind(this.moveCustomAttributes,this),this.deleteCustomAttribute=bind(this.deleteCustomAttribute,this),this.saveCustomAttribute=bind(this.saveCustomAttribute,this),this.createCustomAttribute=bind(this.createCustomAttribute,this),this.loadCustomAttributes=bind(this.loadCustomAttributes,this),this.scope.project={},this.rootscope.$on("project:loaded",function(_this){return function(){return _this.loadCustomAttributes(),_this.appTitle.set("Project Custom Attributes - "+_this.scope.sectionName+" - "+_this.scope.project.name)}}(this))}return extend(ProjectCustomAttributesController,superClass),ProjectCustomAttributesController.$inject=["$scope","$rootScope","$tgRepo","$tgResources","$routeParams","$q","$tgLocation","$tgNavUrls","$appTitle"],ProjectCustomAttributesController.prototype.loadCustomAttributes=function(){return this.rs.customAttributes[this.scope.type].list(this.scope.projectId).then(function(_this){return function(customAttributes){return _this.scope.customAttributes=customAttributes,_this.scope.maxOrder=_.max(customAttributes,"order").order,customAttributes}}(this))},ProjectCustomAttributesController.prototype.createCustomAttribute=function(attrValues){return this.repo.create("custom-attributes/"+this.scope.type,attrValues)},ProjectCustomAttributesController.prototype.saveCustomAttribute=function(attrModel){return this.repo.save(attrModel)},ProjectCustomAttributesController.prototype.deleteCustomAttribute=function(attrModel){return this.repo.remove(attrModel)},ProjectCustomAttributesController.prototype.moveCustomAttributes=function(attrModel,newIndex){var customAttributes,r;return customAttributes=this.scope.customAttributes,r=customAttributes.indexOf(attrModel),customAttributes.splice(r,1),customAttributes.splice(newIndex,0,attrModel),_.each(customAttributes,function(val,idx){return val.order=idx}),this.repo.saveAll(customAttributes)},ProjectCustomAttributesController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("ProjectCustomAttributesController",ProjectCustomAttributesController),ProjectCustomAttributesDirective=function($log,$confirm){var link;return link=function($scope,$el){var $ctrl,cancelCreate,cancelUpdate,create,deleteCustomAttribute,hideAddButton,hideCancelButton,hideCreateForm,hideEditForm,resetNewAttr,revertChangesInCustomAttribute,showAddButton,showCancelButton,showCreateForm,showEditForm,sortableEl,update;return $ctrl=$el.controller(),$scope.$on("$destroy",function(){return $el.off()}),sortableEl=$el.find(".js-sortable"),sortableEl.sortable({handle:".js-view-custom-field",dropOnEmpty:!0,revert:400,axis:"y"}),sortableEl.on("sortstop",function(event,ui){var itemAttr,itemEl,itemIndex;return itemEl=ui.item,itemAttr=itemEl.scope().attr,itemIndex=itemEl.index(),$ctrl.moveCustomAttributes(itemAttr,itemIndex)}),showCreateForm=function(){return $el.find(".js-new-custom-field").removeClass("hidden"),$el.find(".js-new-custom-field input:visible").first().focus()},hideCreateForm=function(){return $el.find(".js-new-custom-field").addClass("hidden")},showAddButton=function(){return $el.find(".js-add-custom-field-button").removeClass("hidden")},hideAddButton=function(){return $el.find(".js-add-custom-field-button").addClass("hidden")},showCancelButton=function(){return $el.find(".js-cancel-new-custom-field-button").removeClass("hidden")},hideCancelButton=function(){return $el.find(".js-cancel-new-custom-field-button").addClass("hidden")},resetNewAttr=function(){return $scope.newAttr={}},create=function(formEl){var attr,form,onError,onSucces;return form=formEl.checksley(),form.validate()?(onSucces=function(){return function(){return $ctrl.loadCustomAttributes(),hideCreateForm(),resetNewAttr(),$confirm.notify("success")}}(this),onError=function(){return function(data){return form.setErrors(data)}}(this),attr=$scope.newAttr,attr.project=$scope.projectId,attr.order=$scope.maxOrder?$scope.maxOrder+1:1,$ctrl.createCustomAttribute(attr).then(onSucces,onError)):void 0},cancelCreate=function(){return hideCreateForm(),resetNewAttr()},$scope.$watch("customAttributes",function(customAttributes){return customAttributes?0===customAttributes.length?(hideCancelButton(),hideAddButton(),showCreateForm()):(hideCreateForm(),showAddButton(),showCancelButton()):void 0}),$el.on("click",".js-add-custom-field-button",function(event){return event.preventDefault(),showCreateForm()}),$el.on("click",".js-create-custom-field-button",debounce(2e3,function(event){var formEl,target;return event.preventDefault(),target=angular.element(event.currentTarget),formEl=target.closest("form"),create(formEl)})),$el.on("click",".js-cancel-new-custom-field-button",function(event){return event.preventDefault(),cancelCreate()}),$el.on("keyup",".js-new-custom-field input",function(event){var formEl,target;return 13===event.keyCode?(target=angular.element(event.currentTarget),formEl=target.closest("form"),create(formEl)):27===event.keyCode?cancelCreate():void 0}),showEditForm=function(formEl){return formEl.find(".js-view-custom-field").addClass("hidden"),formEl.find(".js-edit-custom-field").removeClass("hidden"),formEl.find(".js-edit-custom-field input:visible").first().focus().select()},hideEditForm=function(formEl){return formEl.find(".js-edit-custom-field").addClass("hidden"),formEl.find(".js-view-custom-field").removeClass("hidden")},revertChangesInCustomAttribute=function(formEl){return $scope.$apply(function(){return formEl.scope().attr.revert()})},update=function(formEl){var attr,form,onError,onSucces;return form=formEl.checksley(),form.validate()?(onSucces=function(){return function(){return $ctrl.loadCustomAttributes(),hideEditForm(formEl),$confirm.notify("success")}}(this),onError=function(){return function(data){return form.setErrors(data)}}(this),attr=formEl.scope().attr,$ctrl.saveCustomAttribute(attr).then(onSucces,onError)):void 0},cancelUpdate=function(formEl){return hideEditForm(formEl),revertChangesInCustomAttribute(formEl)},$el.on("click",".js-edit-custom-field-button",function(event){var formEl,target;return event.preventDefault(),target=angular.element(event.currentTarget),formEl=target.closest("form"),showEditForm(formEl)}),$el.on("click",".js-update-custom-field-button",debounce(2e3,function(event){var formEl,target;return event.preventDefault(),target=angular.element(event.currentTarget),formEl=target.closest("form"),update(formEl)})),$el.on("click",".js-cancel-edit-custom-field-button",function(event){var formEl,target;return event.preventDefault(),target=angular.element(event.currentTarget),formEl=target.closest("form"),cancelUpdate(formEl)}),$el.on("keyup",".js-edit-custom-field input",function(event){var formEl,target;return 13===event.keyCode?(target=angular.element(event.currentTarget),formEl=target.closest("form"),update(formEl)):27===event.keyCode?(target=angular.element(event.currentTarget),formEl=target.closest("form"),cancelUpdate(formEl)):void 0}),deleteCustomAttribute=function(formEl){var attr,message,subtitle,title;return attr=formEl.scope().attr,title="Delete custom attribute",subtitle="Remeber that all values in this custom field will be deleted.
Are you sure you want to continue?",message=attr.name,$confirm.ask(title,subtitle,message).then(function(finish){var onError,onSucces;return onSucces=function(){return $ctrl.loadCustomAttributes()["finally"](function(){return finish()})},onError=function(){return finish(!1),$confirm.notify("error",null,"We have not been able to delete '"+message+"'.")},$ctrl.deleteCustomAttribute(attr).then(onSucces,onError)})},$el.on("click",".js-delete-custom-field-button",debounce(2e3,function(event){var formEl,target;return event.preventDefault(),target=angular.element(event.currentTarget),formEl=target.closest("form"),deleteCustomAttribute(formEl)}))},{link:link}},module.directive("tgProjectCustomAttributes",["$log","$tgConfirm","animationFrame",ProjectCustomAttributesDirective])}.call(this),function(){var EditRoleDirective,NewRoleDirective,RolePermissionsDirective,RolesController,RolesDirective,bindMethods,bindOnce,debounce,mixOf,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;l>i;i++)if(i in this&&this[i]===item)return i;return-1};taiga=this.taiga,mixOf=this.taiga.mixOf,bindOnce=this.taiga.bindOnce,debounce=this.taiga.debounce,bindMethods=this.taiga.bindMethods,module=angular.module("taigaAdmin"),RolesController=function(superClass){function RolesController(scope,rootscope,repo,confirm,rs,params,q,location,navUrls,appTitle){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.navUrls=navUrls,this.appTitle=appTitle,bindMethods(this),this.scope.sectionName="Permissions",this.scope.project={},this.scope.anyComputableRole=!0,promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Roles - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this))}return extend(RolesController,superClass),RolesController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$tgNavUrls","$appTitle"],RolesController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return project.i_am_owner||_this.location.path(_this.navUrls.resolve("permission-denied")),_this.scope.project=project,_this.scope.$emit("project:loaded",project),_this.scope.anyComputableRole=_.some(_.map(project.roles,function(point){return point.computable})),project}}(this))},RolesController.prototype.loadExternalUserRole=function(roles){var public_permission;return roles=roles.map(function(role){return role.external_user=!1,role}),public_permission={name:"External User",permissions:this.scope.project.public_permissions,external_user:!0},roles.push(public_permission),roles},RolesController.prototype.loadRoles=function(){return this.rs.roles.list(this.scope.projectId).then(this.loadExternalUserRole).then(function(_this){return function(roles){return _this.scope.roles=roles,_this.scope.role=_this.scope.roles[0],roles}}(this))},RolesController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this)).then(function(_this){return function(){return _this.loadUsersAndRoles()}}(this)).then(function(_this){return function(){return _this.loadRoles()}}(this))},RolesController.prototype.setRole=function(role){return this.scope.role=role,this.scope.$broadcast("role:changed",this.scope.role)},RolesController.prototype["delete"]=function(){var choices,i,len,ref,replacement,role,subtitle,title,warning;for(title="Delete Role",subtitle=this.scope.role.name,replacement="All the users with this role will be moved to",warning="Be careful, all role estimations will be removed",choices={},ref=this.scope.roles,i=0,len=ref.length;len>i;i++)role=ref[i],role.id!==this.scope.role.id&&(choices[role.id]=role.name);return 0===_.keys(choices).length?this.confirm.error("You can't delete all values."):this.confirm.askChoice(title,subtitle,choices,replacement,warning).then(function(_this){return function(response){var promise;return promise=_this.repo.remove(_this.scope.role,{moveTo:response.selected}),promise.then(function(){return _this.loadProject(),_this.loadRoles()["finally"](function(){return response.finish()})}),promise.then(null,function(){return _this.confirm.notify("error")})}}(this))},RolesController.prototype.setComputable=debounce(2e3,function(){var onError,onSuccess;return onSuccess=function(_this){return function(){return _this.confirm.notify("success"),_this.loadProject()}}(this),onError=function(_this){return function(){return _this.confirm.notify("error"),_this.scope.role.revert()}}(this),this.repo.save(this.scope.role).then(onSuccess,onError)}),RolesController}(mixOf(taiga.Controller,taiga.PageMixin,taiga.FiltersMixin)),module.controller("RolesController",RolesController),EditRoleDirective=function($repo,$confirm){var link;return link=function($scope,$el){var submit,toggleView;return toggleView=function(){return $el.find(".total").toggle(),$el.find(".edit-role").toggle()},submit=function(){var promise;return $scope.role.name=$el.find("input").val(),promise=$repo.save($scope.role),promise.then(function(){return $confirm.notify("success")}),promise.then(null,function(){return $confirm.notify("error")}),toggleView()},$el.on("click","a.icon-edit",function(){return toggleView(),$el.find("input").focus(),$el.find("input").val($scope.role.name)}),$el.on("click","a.save",submit),$el.on("keyup","input",function(event){return 13===event.keyCode?submit():27===event.keyCode?toggleView():void 0}),$scope.$on("role:changed",function(){return $el.find(".edit-role").is(":visible")?toggleView():void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgEditRole",["$tgRepo","$tgConfirm",EditRoleDirective]),RolesDirective=function(){var link;return link=function($scope,$el){var $ctrl;return $ctrl=$el.controller(),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgRoles",RolesDirective),NewRoleDirective=function($tgrepo,$confirm){var DEFAULT_PERMISSIONS,link;return DEFAULT_PERMISSIONS=["view_project","view_milestones","view_us","view_tasks","view_issues"],link=function($scope,$el){var $ctrl;return $ctrl=$el.controller(),$scope.$on("$destroy",function(){return $el.off()}),$el.on("click","a.add-button",function(event){return event.preventDefault(),$el.find(".new").removeClass("hidden"),$el.find(".new").focus(),$el.find(".add-button").hide()}),$el.on("keyup",".new",function(event){var newRole,onError,onSuccess,target;return event.preventDefault(),13===event.keyCode?(target=angular.element(event.currentTarget),newRole={project:$scope.projectId,name:target.val(),permissions:DEFAULT_PERMISSIONS,order:_.max($scope.roles,function(r){return r.order}).order+1,computable:!1},$el.find(".new").addClass("hidden"),$el.find(".new").val(""),onSuccess=function(role){return $scope.roles.push(role),$ctrl.setRole(role),$el.find(".add-button").show(),$ctrl.loadProject()},onError=function(){return $confirm.notify("error")},$tgrepo.create("roles",newRole).then(onSuccess,onError)):27===event.keyCode?(target=angular.element(event.currentTarget),$el.find(".new").addClass("hidden"),$el.find(".new").val(""),$el.find(".add-button").show()):void 0})},{link:link}},module.directive("tgNewRole",["$tgRepo","$tgConfirm",NewRoleDirective]),RolePermissionsDirective=function($rootscope,$repo,$confirm){var baseTemplate,categoryTemplate,link,resumeTemplate;return resumeTemplate=_.template('
<%- category.name %>
\n
\n
<%- category.activePermissions %>/<%- category.permissions.length %>
\n <% _.each(category.permissions, function(permission) { %>\n
\n <% }) %>\n
\n
'),categoryTemplate=_.template('
\n
\n
\n
\n
\n <% _.each(category.permissions, function(permission) { %>\n
\n <%- permission.description %>\n
\n disabled="disabled"<% } %> <% if(permission.active) { %>checked="checked"<% } %>/>\n
\n Yes\n No\n
\n
\n <% }) %>\n
\n
\n
'),baseTemplate=_.template('
'),link=function($scope,$el,$attrs){var $ctrl,generateCategoriesFromRole,renderCategory,renderPermissions,renderResume;return $ctrl=$el.controller(),generateCategoriesFromRole=function(role){var categories,isPermissionEditable,issuePermissions,milestonePermissions,setActivePermissions,setActivePermissionsPerCategory,taskPermissions,userStoryPermissions,wikiPermissions;return setActivePermissions=function(permissions){return _.map(permissions,function(x){var ref;return _.extend({},x,{active:(ref=x.key,indexOf.call(role.permissions,ref)>=0)})})},isPermissionEditable=function(permission,role,project){return role.external_user&&!project.is_private&&0===permission.key.indexOf("view_")?!1:!0},setActivePermissionsPerCategory=function(category){return _.map(category,function(cat){return cat.permissions=cat.permissions.map(function(permission){return permission.editable=isPermissionEditable(permission,role,$scope.project),permission}),_.extend({},cat,{activePermissions:_.filter(cat.permissions,"active").length})})},categories=[],milestonePermissions=[{key:"view_milestones",description:"View sprints"},{key:"add_milestone",description:"Add sprint"},{key:"modify_milestone",description:"Modify sprint"},{key:"delete_milestone",description:"Delete sprint"}],categories.push({name:"Sprints",permissions:setActivePermissions(milestonePermissions)}),userStoryPermissions=[{key:"view_us",description:"View user story"},{key:"add_us",description:"Add user story"},{key:"modify_us",description:"Modify user story"},{key:"delete_us",description:"Delete user story"}],categories.push({name:"User Stories",permissions:setActivePermissions(userStoryPermissions)}),taskPermissions=[{key:"view_tasks",description:"View tasks"},{key:"add_task",description:"Add task"},{key:"modify_task",description:"Modify task"},{key:"delete_task",description:"Delete task"}],categories.push({name:"Tasks",permissions:setActivePermissions(taskPermissions)}),issuePermissions=[{key:"view_issues",description:"View issues"},{key:"add_issue",description:"Add issue"},{key:"modify_issue",description:"Modify issue"},{key:"delete_issue",description:"Delete issue"}],categories.push({name:"Issues",permissions:setActivePermissions(issuePermissions)}),wikiPermissions=[{key:"view_wiki_pages",description:"View wiki pages"},{key:"add_wiki_page",description:"Add wiki page"},{key:"modify_wiki_page",description:"Modify wiki page"},{key:"delete_wiki_page",description:"Delete wiki page"},{key:"view_wiki_links",description:"View wiki links"},{key:"add_wiki_link",description:"Add wiki link"},{key:"delete_wiki_link",description:"Delete wiki link"}],categories.push({name:"Wiki",permissions:setActivePermissions(wikiPermissions)}),setActivePermissionsPerCategory(categories)},renderResume=function(element,category){return element.find(".resume").html(resumeTemplate({category:category}))},renderCategory=function(category,index){var html;return html=categoryTemplate({category:category,index:index}),html=angular.element(html),renderResume(html,category),html},renderPermissions=function(){var html;return $el.off(),html=baseTemplate(),_.each(generateCategoriesFromRole($scope.role),function(category,index){return html=angular.element(html).append(renderCategory(category,index))}),$el.html(html),$el.on("click",".resume",function(event){var target;return event.preventDefault(),target=angular.element(event.currentTarget),target.next().toggleClass("open")}),$el.on("change",".category-item input",function(event){var getActivePermissions,onError,onSuccess,target;return getActivePermissions=function(){var activePermissions;return activePermissions=_.filter($el.find(".category-item input"),function(t){return angular.element(t).is(":checked")}),activePermissions=_.sortBy(_.map(activePermissions,function(t){var permission;return permission=angular.element(t).parents(".category-item").data("id")})),activePermissions.push("view_project"),activePermissions},target=angular.element(event.currentTarget),$scope.role.permissions=getActivePermissions(),onSuccess=function(){var categories,categoryId;return categories=generateCategoriesFromRole($scope.role),categoryId=target.parents(".category-config").data("id"),renderResume(target.parents(".category-config"),categories[categoryId]),$rootscope.$broadcast("projects:reload"),$confirm.notify("success"),$ctrl.loadProject()},onError=function(){return $confirm.notify("error"),target.prop("checked",!target.prop("checked")),$scope.role.permissions=getActivePermissions()},$scope.role.external_user?($scope.project.public_permissions=$scope.role.permissions,$scope.project.anon_permissions=$scope.role.permissions.filter(function(permission){return 0===permission.indexOf("view_")}),$repo.save($scope.project).then(onSuccess,onError)):$repo.save($scope.role).then(onSuccess,onError)})},$scope.$on("$destroy",function(){return $el.off()}),$scope.$on("role:changed",function(){return renderPermissions()}),bindOnce($scope,$attrs.ngModel,renderPermissions)},{link:link}},module.directive("tgRolePermissions",["$rootScope","$tgRepo","$tgConfirm",RolePermissionsDirective])}.call(this),function(){var BitbucketController,BitbucketWebhooksDirective,GithubController,GithubWebhooksDirective,GitlabController,GitlabWebhooksDirective,NewWebhookDirective,SelectInputText,ValidOriginIpsDirective,WebhookDirective,WebhooksController,bindMethods,debounce,mixOf,module,taiga,timeout,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,bindMethods=this.taiga.bindMethods,debounce=this.taiga.debounce,timeout=this.taiga.timeout,module=angular.module("taigaAdmin"),WebhooksController=function(superClass){function WebhooksController(scope,repo,rs,params,location,navUrls,appTitle){var promise;this.scope=scope,this.repo=repo,this.rs=rs,this.params=params,this.location=location,this.navUrls=navUrls,this.appTitle=appTitle,bindMethods(this),this.scope.sectionName="Webhooks",this.scope.project={},promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Webhooks - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this)),this.scope.$on("webhooks:reload",this.loadWebhooks)}return extend(WebhooksController,superClass),WebhooksController.$inject=["$scope","$tgRepo","$tgResources","$routeParams","$tgLocation","$tgNavUrls","$appTitle"],WebhooksController.prototype.loadWebhooks=function(){return this.rs.webhooks.list(this.scope.projectId).then(function(_this){return function(webhooks){return _this.scope.webhooks=webhooks}}(this))},WebhooksController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return project.i_am_owner||_this.location.path(_this.navUrls.resolve("permission-denied")),_this.scope.project=project,_this.scope.$emit("project:loaded",project),project}}(this))},WebhooksController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this)).then(function(_this){return function(){return _this.loadWebhooks()}}(this))},WebhooksController}(mixOf(taiga.Controller,taiga.PageMixin,taiga.FiltersMixin)),module.controller("WebhooksController",WebhooksController),WebhookDirective=function($rs,$repo,$confirm){var link;return link=function($scope,$el,$attrs){var cancel,openHistory,save,showEditMode,showVisualizationMode,updateLogs,updateShowHideHistoryText,webhook;return webhook=$scope.$eval($attrs.tgWebhook),updateLogs=function(){return $rs.webhooklogs.list(webhook.id).then(function(){return function(webhooklogs){var i,len,log,ref;for(i=0,len=webhooklogs.length;len>i;i++)log=webhooklogs[i],log.validStatus=200<=(ref=log.status)&&300>ref,log.prettySentHeaders=_.map(_.pairs(log.request_headers),function(arg){var header,value;return header=arg[0],value=arg[1],header+": "+value}).join("\n"),log.prettySentData=JSON.stringify(log.request_data),log.prettyDate=moment(log.created).format("DD MMM YYYY [at] hh:mm:ss");return webhook.logs_counter=webhooklogs.length,webhook.logs=webhooklogs,updateShowHideHistoryText()}}(this))},updateShowHideHistoryText=function(){var historyElement,textElement;return textElement=$el.find(".toggle-history"),historyElement=textElement.parents(".single-webhook-wrapper").find(".webhooks-history"),textElement.text(historyElement.hasClass("open")?"(Hide history)":"(Show history)")},showVisualizationMode=function(){return $el.find(".edition-mode").addClass("hidden"),$el.find(".visualization-mode").removeClass("hidden")},showEditMode=function(){return $el.find(".visualization-mode").addClass("hidden"),$el.find(".edition-mode").removeClass("hidden")},openHistory=function(){return $el.find(".webhooks-history").addClass("open")},cancel=function(){return showVisualizationMode(),$scope.$apply(function(){return webhook.revert()})},save=debounce(2e3,function(target){var form,promise;return form=target.parents("form").checksley(),form.validate()?(promise=$repo.save(webhook),promise.then(function(){return function(){return showVisualizationMode()}}(this)),promise.then(null,function(data){return $confirm.notify("error"),form.setErrors(data)})):void 0}),$el.on("click",".test-webhook",function(){return openHistory(),$rs.webhooks.test(webhook.id).then(function(){return function(){return updateLogs()}}(this))}),$el.on("click",".edit-webhook",function(){return showEditMode()}),$el.on("click",".cancel-existing",function(){return cancel()}),$el.on("click",".edit-existing",function(event){var target;return event.preventDefault(),target=angular.element(event.currentTarget),save(target)}),$el.on("keyup",".edition-mode input",function(event){var target;return 13===event.keyCode?(target=angular.element(event.currentTarget),save(target)):27===event.keyCode?(target=angular.element(event.currentTarget),cancel(target)):void 0}),$el.on("click",".delete-webhook",function(){var message,title;return title="Delete webhook",message="Webhook '"+webhook.name+"'",$confirm.askOnDelete(title,message).then(function(){return function(finish){var onError,onSucces;return onSucces=function(){return finish(),$scope.$emit("webhooks:reload")},onError=function(){return finish(!1),$confirm.notify("error")},$repo.remove(webhook).then(onSucces,onError)}}(this))}),$el.on("click",".toggle-history",function(event){var target;return target=angular.element(event.currentTarget),null==webhook.logs||0===webhook.logs.length?updateLogs().then(function(){return timeout(0,function(){return $el.find(".webhooks-history").toggleClass("open"),updateShowHideHistoryText()})}):($el.find(".webhooks-history").toggleClass("open"),$scope.$apply(function(){return updateShowHideHistoryText()}))}),$el.on("click",".history-single",function(event){var target;return target=angular.element(event.currentTarget),target.toggleClass("history-single-open"),target.siblings(".history-single-response").toggleClass("open")}),$el.on("click",".resend-request",function(event){var log,target;return target=angular.element(event.currentTarget),log=target.data("log"),$rs.webhooklogs.resend(log).then(function(){return function(){return updateLogs()}}(this))})},{link:link}},module.directive("tgWebhook",["$tgResources","$tgRepo","$tgConfirm","$tgLoading",WebhookDirective]),NewWebhookDirective=function($rs,$repo,$confirm){var link;return link=function($scope,$el,$attrs){var addWebhookDOMNode,formDOMNode,initializeNewValue,save,webhook;return webhook=$scope.$eval($attrs.tgWebhook),formDOMNode=$el.find(".new-webhook-form"),addWebhookDOMNode=$el.find(".add-webhook"),initializeNewValue=function(){return $scope.newValue={name:"",url:"",key:""}},initializeNewValue(),$scope.$watch("webhooks",function(webhooks){return null!=webhooks?0===webhooks.length?(formDOMNode.removeClass("hidden"),addWebhookDOMNode.addClass("hidden"),formDOMNode.find("input")[0].focus()):(formDOMNode.addClass("hidden"),addWebhookDOMNode.removeClass("hidden")):void 0}),save=debounce(2e3,function(){var form,promise;return form=formDOMNode.checksley(),form.validate()?($scope.newValue.project=$scope.project.id,promise=$repo.create("webhooks",$scope.newValue),promise.then(function(){return function(){return $scope.$emit("webhooks:reload"),initializeNewValue()}}(this)),promise.then(null,function(data){return $confirm.notify("error"),form.setErrors(data)})):void 0}),formDOMNode.on("click",".add-new",function(event){return event.preventDefault(),save()}),formDOMNode.on("keyup","input",function(event){return 13===event.keyCode?save():void 0}),formDOMNode.on("click",".cancel-new",function(){return $scope.$apply(function(){return initializeNewValue()})}),addWebhookDOMNode.on("click",function(){return formDOMNode.removeClass("hidden"),formDOMNode.find("input")[0].focus()})},{link:link}},module.directive("tgNewWebhook",["$tgResources","$tgRepo","$tgConfirm","$tgLoading",NewWebhookDirective]),GithubController=function(superClass){function GithubController(scope,repo,rs,params,appTitle){var promise;this.scope=scope,this.repo=repo,this.rs=rs,this.params=params,this.appTitle=appTitle,bindMethods(this),this.scope.sectionName="Github",this.scope.project={},promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Github - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this))}return extend(GithubController,superClass),GithubController.$inject=["$scope","$tgRepo","$tgResources","$routeParams","$appTitle"],GithubController.prototype.loadModules=function(){return this.rs.modules.list(this.scope.projectId,"github").then(function(_this){return function(github){return _this.scope.github=github}}(this))},GithubController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return _this.scope.project=project,_this.scope.$emit("project:loaded",project),project}}(this))},GithubController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject() -}}(this)).then(function(_this){return function(){return _this.loadModules()}}(this))},GithubController}(mixOf(taiga.Controller,taiga.PageMixin,taiga.FiltersMixin)),module.controller("GithubController",GithubController),GitlabController=function(superClass){function GitlabController(scope,repo,rs,params,appTitle){var promise;this.scope=scope,this.repo=repo,this.rs=rs,this.params=params,this.appTitle=appTitle,bindMethods(this),this.scope.sectionName="Gitlab",this.scope.project={},promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Gitlab - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this)),this.scope.$on("project:modules:reload",function(_this){return function(){return _this.loadModules()}}(this))}return extend(GitlabController,superClass),GitlabController.$inject=["$scope","$tgRepo","$tgResources","$routeParams","$appTitle"],GitlabController.prototype.loadModules=function(){return this.rs.modules.list(this.scope.projectId,"gitlab").then(function(_this){return function(gitlab){return _this.scope.gitlab=gitlab}}(this))},GitlabController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return _this.scope.project=project,_this.scope.$emit("project:loaded",project),project}}(this))},GitlabController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this)).then(function(_this){return function(){return _this.loadModules()}}(this))},GitlabController}(mixOf(taiga.Controller,taiga.PageMixin,taiga.FiltersMixin)),module.controller("GitlabController",GitlabController),BitbucketController=function(superClass){function BitbucketController(scope,repo,rs,params,appTitle){var promise;this.scope=scope,this.repo=repo,this.rs=rs,this.params=params,this.appTitle=appTitle,bindMethods(this),this.scope.sectionName="Bitbucket",this.scope.project={},promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Bitbucket - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this)),this.scope.$on("project:modules:reload",function(_this){return function(){return _this.loadModules()}}(this))}return extend(BitbucketController,superClass),BitbucketController.$inject=["$scope","$tgRepo","$tgResources","$routeParams","$appTitle"],BitbucketController.prototype.loadModules=function(){return this.rs.modules.list(this.scope.projectId,"bitbucket").then(function(_this){return function(bitbucket){return _this.scope.bitbucket=bitbucket}}(this))},BitbucketController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return _this.scope.project=project,_this.scope.$emit("project:loaded",project),project}}(this))},BitbucketController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this)).then(function(_this){return function(){return _this.loadModules()}}(this))},BitbucketController}(mixOf(taiga.Controller,taiga.PageMixin,taiga.FiltersMixin)),module.controller("BitbucketController",BitbucketController),SelectInputText=function(){var link;return link=function($scope,$el){return $el.on("click",".select-input-content",function(){return $el.find("input").select(),$el.find(".help-copy").addClass("visible")})},{link:link}},module.directive("tgSelectInputText",SelectInputText),GithubWebhooksDirective=function($repo,$confirm,$loading){var link;return link=function($scope,$el){var form,submit,submitButton;return form=$el.find("form").checksley({onlyOneErrorElement:!0}),submit=debounce(2e3,function(){return function(event){var promise;return event.preventDefault(),form.validate()?($loading.start(submitButton),promise=$repo.saveAttribute($scope.github,"github"),promise.then(function(){return $loading.finish(submitButton),$confirm.notify("success")}),promise.then(null,function(data){return $loading.finish(submitButton),form.setErrors(data),data._error_message?$confirm.notify("error",data._error_message):void 0})):void 0}}(this)),submitButton=$el.find(".submit-button"),$el.on("submit","form",submit)},{link:link}},module.directive("tgGithubWebhooks",["$tgRepo","$tgConfirm","$tgLoading",GithubWebhooksDirective]),GitlabWebhooksDirective=function($repo,$confirm,$loading){var link;return link=function($scope,$el){var form,submit,submitButton;return form=$el.find("form").checksley({onlyOneErrorElement:!0}),submit=debounce(2e3,function(){return function(event){var promise;return event.preventDefault(),form.validate()?($loading.start(submitButton),promise=$repo.saveAttribute($scope.gitlab,"gitlab"),promise.then(function(){return $loading.finish(submitButton),$confirm.notify("success"),$scope.$emit("project:modules:reload")}),promise.then(null,function(data){return $loading.finish(submitButton),form.setErrors(data),data._error_message?$confirm.notify("error",data._error_message):void 0})):void 0}}(this)),submitButton=$el.find(".submit-button"),$el.on("submit","form",submit)},{link:link}},module.directive("tgGitlabWebhooks",["$tgRepo","$tgConfirm","$tgLoading",GitlabWebhooksDirective]),BitbucketWebhooksDirective=function($repo,$confirm,$loading){var link;return link=function($scope,$el){var form,submit,submitButton;return form=$el.find("form").checksley({onlyOneErrorElement:!0}),submit=debounce(2e3,function(){return function(event){var promise;return event.preventDefault(),form.validate()?($loading.start(submitButton),promise=$repo.saveAttribute($scope.bitbucket,"bitbucket"),promise.then(function(){return $loading.finish(submitButton),$confirm.notify("success"),$scope.$emit("project:modules:reload")}),promise.then(null,function(data){return $loading.finish(submitButton),form.setErrors(data),data._error_message?$confirm.notify("error",data._error_message):void 0})):void 0}}(this)),submitButton=$el.find(".submit-button"),$el.on("submit","form",submit)},{link:link}},module.directive("tgBitbucketWebhooks",["$tgRepo","$tgConfirm","$tgLoading",BitbucketWebhooksDirective]),ValidOriginIpsDirective=function(){var link;return link=function($scope,$el,$attrs,$ngModel){return $ngModel.$parsers.push(function(value){return value=$.trim(value),""===value?[]:value.split(",")})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgValidOriginIps",ValidOriginIpsDirective)}.call(this),function(){var CreateProject,DeleteProjectDirective,bindOnce,debounce,module,taiga,timeout;taiga=this.taiga,bindOnce=this.taiga.bindOnce,timeout=this.taiga.timeout,debounce=this.taiga.debounce,module=angular.module("taigaProject"),CreateProject=function($rootscope,$repo,$confirm,$location,$navurls,$rs,$projectUrl,$loading,lightboxService,$cacheFactory){var link;return link=function($scope,$el){var form,onErrorSubmit,onSuccessSubmit,submit,submitButton;return $scope.data={},$scope.templates=[],form=$el.find("form").checksley({onlyOneErrorElement:!0}),onSuccessSubmit=function(response){return $cacheFactory.get("$http").removeAll(),$loading.finish(submitButton),$rootscope.$broadcast("projects:reload"),$confirm.notify("success","Success"),$location.url($projectUrl.get(response)),lightboxService.close($el)},onErrorSubmit=function(response){var error_field,error_step,i,len,ref,selectors;for($loading.finish(submitButton),form.setErrors(response),selectors=[],ref=_.keys(response),i=0,len=ref.length;len>i;i++)error_field=ref[i],selectors.push("[name="+error_field+"]");return $el.find(".active").removeClass("active"),error_step=$el.find(selectors.join(",")).first().parents(".wizard-step"),error_step.addClass("active"),$el.find(".progress-bar").removeClass().addClass("progress-bar").addClass(error_step.data("step"))},submit=function(){return function(event){var promise;return event.preventDefault(),form.validate()?($loading.start(submitButton),promise=$repo.create("projects",$scope.data),promise.then(onSuccessSubmit,onErrorSubmit)):void 0}}(this),$scope.$on("projects:create",function(){return $scope.data={total_story_points:100,total_milestones:5},$scope.templates.length?$scope.data.creation_template=_.head(_.filter($scope.templates,function(x){return"scrum"===x.slug})).id:$rs.projects.templates().then(function(){return function(result){return $scope.templates=result,$scope.data.creation_template=_.head(_.filter($scope.templates,function(x){return"scrum"===x.slug})).id}}(this)),$el.find(".active").removeClass("active"),$el.find(".create-step1").addClass("active"),lightboxService.open($el),timeout(600,function(){return $el.find(".progress-bar").addClass("step1")})}),$el.on("click",".button-next",function(event){var current,field,i,len,next,ref,step,valid;for(event.preventDefault(),current=$el.find(".active"),valid=!0,ref=form.fields,i=0,len=ref.length;len>i;i++)field=ref[i],current.find("[name="+field.element.attr("name")+"]").length&&(valid=field.validate()!==!1&&valid);return valid?(next=current.next(),current.toggleClass("active"),next.toggleClass("active"),step=next.data("step"),$el.find(".progress-bar").removeClass().addClass("progress-bar").addClass(step)):void 0}),$el.on("click",".button-prev",function(event){var current,prev,step;return event.preventDefault(),current=$el.find(".active"),prev=current.prev(),current.toggleClass("active"),prev.toggleClass("active"),step=prev.data("step"),$el.find(".progress-bar").removeClass().addClass("progress-bar").addClass(step)}),submitButton=$el.find(".submit-button"),$el.on("submit","form",submit),$el.on("click",".close",function(event){return event.preventDefault(),lightboxService.close($el)})},{link:link}},module.directive("tgLbCreateProject",["$rootScope","$tgRepo","$tgConfirm","$location","$tgNavUrls","$tgResources","$projectUrl","$tgLoading","lightboxService","$cacheFactory",CreateProject]),DeleteProjectDirective=function($repo,$rootscope,$auth,$location,$navUrls,$confirm,lightboxService,tgLoader){var link;return link=function($scope,$el){var projectToDelete,submit;return projectToDelete=null,$scope.$on("deletelightbox:new",function(ctx,project){return lightboxService.open($el),projectToDelete=project}),$scope.$on("$destroy",function(){return $el.off()}),submit=function(){var promise;return tgLoader.start(),lightboxService.close($el),promise=$repo.remove(projectToDelete),promise.then(function(){return tgLoader.pageLoaded(),$rootscope.$broadcast("projects:reload"),$location.path($navUrls.resolve("home")),$confirm.notify("success")}),promise.then(null,function(){return $confirm.notify("error"),lightboxService.close($el)})},$el.on("click",".button-red",function(event){return event.preventDefault(),lightboxService.close($el)}),$el.on("click",".button-green",function(event){return event.preventDefault(),submit()})},{link:link}},module.directive("tgLbDeleteProject",["$tgRepo","$rootScope","$tgAuth","$tgLocation","$tgNavUrls","$tgConfirm","lightboxService","tgLoader",DeleteProjectDirective])}.call(this),function(){var ProjectController,ProjectsController,ProjectsListDirective,ProjectsPaginationDirective,bindOnce,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,module=angular.module("taigaProject"),bindOnce=this.taiga.bindOnce,ProjectsController=function(superClass){function ProjectsController(scope,q,rs,rootscope,navUrls,auth,location,appTitle,projectUrl,tgLoader){var promise;this.scope=scope,this.q=q,this.rs=rs,this.rootscope=rootscope,this.navUrls=navUrls,this.auth=auth,this.location=location,this.appTitle=appTitle,this.projectUrl=projectUrl,this.appTitle.set("Projects"),this.auth.isAuthenticated()||this.location.path(this.navUrls.resolve("login")),this.user=this.auth.getUser(),this.projects=[],promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.scope.$emit("projects:loaded",_this.projects)}}(this)),promise.then(null,this.onInitialDataError.bind(this)),promise["finally"](tgLoader.pageLoaded)}return extend(ProjectsController,superClass),ProjectsController.$inject=["$scope","$q","$tgResources","$rootScope","$tgNavUrls","$tgAuth","$tgLocation","$appTitle","$projectUrl","tgLoader"],ProjectsController.prototype.loadInitialData=function(){var ref;return this.rs.projects.listByMember(null!=(ref=this.rootscope.user)?ref.id:void 0).then(function(_this){return function(projects){var i,len,project;for(_this.projects={recents:projects.slice(0,8),all:projects},i=0,len=projects.length;len>i;i++)project=projects[i],project.url=_this.projectUrl.get(project);return projects}}(this))},ProjectsController.prototype.newProject=function(){return this.rootscope.$broadcast("projects:create")},ProjectsController.prototype.logout=function(){return this.auth.logout(),this.location.path(this.navUrls.resolve("login"))},ProjectsController}(taiga.Controller),module.controller("ProjectsController",ProjectsController),ProjectController=function(superClass){function ProjectController(scope,rs,repo,params,q,rootscope,appTitle,location,navUrls){var promise;this.scope=scope,this.rs=rs,this.repo=repo,this.params=params,this.q=q,this.rootscope=rootscope,this.appTitle=appTitle,this.location=location,this.navUrls=navUrls,promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set(_this.scope.project.name),_this.scope.$emit("regenerate:project-pagination")}}(this)),promise.then(null,this.onInitialDataError.bind(this))}return extend(ProjectController,superClass),ProjectController.$inject=["$scope","$tgResources","$tgRepo","$routeParams","$q","$rootScope","$appTitle","$tgLocation","$tgNavUrls"],ProjectController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadPageData()}}(this)).then(function(_this){return function(){return _this.scope.$emit("project:loaded",_this.scope.project)}}(this))},ProjectController.prototype.loadPageData=function(){return this.q.all([this.loadProjectStats(),this.loadProject()])},ProjectController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return _this.scope.project=project,project}}(this))},ProjectController.prototype.loadProjectStats=function(){return this.rs.projects.stats(this.scope.projectId).then(function(_this){return function(stats){return _this.scope.stats=stats,stats}}(this))},ProjectController}(taiga.Controller),module.controller("ProjectController",ProjectController),ProjectsPaginationDirective=function(){var link;return link=function($scope,$el){var checkButtonVisibility,container,containerSize,hasNextPage,hasPagination,hasPrevPage,hide,nextBtn,nextPage,pageSize,prevBtn,prevPage,remove,render,visible;return prevBtn=$el.find(".v-pagination-previous"),nextBtn=$el.find(".v-pagination-next"),container=$el.find("ul"),pageSize=0,containerSize=0,render=function(){return pageSize=$el.find(".v-pagination-list").height(),container.find("li").length&&hasPagination()?(hasNextPage()?visible(nextBtn):hide(nextBtn),hasPrevPage()?visible(prevBtn):hide(prevBtn)):remove()},hasPagination=function(){return containerSize=container.height(),containerSize>pageSize},hasPrevPage=function(top){return null==top&&(top=-parseInt(container.css("top"),10)||0),0!==top},hasNextPage=function(top){return containerSize=container.height(),top||(top=-parseInt(container.css("top"),10)||0),containerSize>pageSize&&containerSize>top+pageSize},nextPage=function(callback){var lastLi,maxTop,newTop,top;return top=parseInt(container.css("top"),10),newTop=top-pageSize,lastLi=$el.find(".v-pagination-list li:last-child"),maxTop=-(lastLi.position().top+lastLi.outerHeight()-pageSize),maxTop>newTop&&(newTop=maxTop),container.animate({top:newTop},callback),newTop},prevPage=function(callback){var newTop,top;return top=parseInt(container.css("top"),10),newTop=top+pageSize,newTop>0&&(newTop=0),container.animate({top:newTop},callback),newTop},visible=function(element){return element.css("visibility","visible")},hide=function(element){return element.css("visibility","hidden")},checkButtonVisibility=function(){},remove=function(){return container.css("top",0),hide(prevBtn),hide(nextBtn)},$el.on("click",".v-pagination-previous",function(event){var newTop;return event.preventDefault(),container.is(":animated")?void 0:(visible(nextBtn),newTop=prevPage(),hasPrevPage(newTop)?void 0:hide(prevBtn))}),$el.on("click",".v-pagination-next",function(event){var newTop;return event.preventDefault(),container.is(":animated")?void 0:(visible(prevBtn),newTop=-nextPage(),hasNextPage(newTop)?void 0:hide(nextBtn))}),$scope.$on("regenerate:project-pagination",function(){return remove(),render()}),$(window).on("resize.projects-pagination",render),$scope.$on("$destroy",function(){return $(window).off("resize.projects-pagination")})},{link:link}},module.directive("tgProjectsPagination",["$timeout",ProjectsPaginationDirective]),ProjectsListDirective=function($compile,$template){var link,template;return template=$template.get("project/project-list.html",!0),link=function($scope,$el){var render;return render=function(projects){return $el.html($compile(template({projects:projects}))($scope)),$scope.$emit("regenerate:project-pagination")},$scope.$on("projects:loaded",function(ctx,projects){return null!=projects.all?render(projects.all):void 0})},{link:link}},module.directive("tgProjectsList",["$compile","$tgTemplate",ProjectsListDirective])}.call(this),function(){var BindHtmlDirective,BindOnceAltDirective,BindOnceBindDirective,BindOnceHrefDirective,BindOnceHtmlDirective,BindOnceRefDirective,BindOnceSrcDirective,BindOnceTitleDirective,BindTitleDirective,bindOnce,module;bindOnce=this.taiga.bindOnce,BindOnceBindDirective=function(){var link;return link=function($scope,$el,$attrs){return bindOnce($scope,$attrs.tgBoBind,function(val){return $el.text(val)})},{link:link}},BindOnceHtmlDirective=function(){var link;return link=function($scope,$el,$attrs){return bindOnce($scope,$attrs.tgBoHtml,function(val){return $el.html(val)})},{link:link}},BindOnceRefDirective=function(){var link;return link=function($scope,$el,$attrs){return bindOnce($scope,$attrs.tgBoRef,function(val){return $el.html("#"+val+" ")})},{link:link}},BindOnceSrcDirective=function(){var link;return link=function($scope,$el,$attrs){return bindOnce($scope,$attrs.tgBoSrc,function(val){return $el.attr("src",val)})},{link:link}},BindOnceHrefDirective=function(){var link;return link=function($scope,$el,$attrs){return bindOnce($scope,$attrs.tgBoHref,function(val){return $el.attr("href",val)})},{link:link}},BindOnceAltDirective=function(){var link;return link=function($scope,$el,$attrs){return bindOnce($scope,$attrs.tgBoAlt,function(val){return $el.attr("alt",val)})},{link:link}},BindOnceTitleDirective=function(){var link;return link=function($scope,$el,$attrs){return bindOnce($scope,$attrs.tgBoTitle,function(val){return $el.attr("title",val)})},{link:link}},BindTitleDirective=function(){var link;return link=function($scope,$el,$attrs){return $scope.$watch($attrs.tgTitleHtml,function(val){return null!=val?$el.attr("title",val):void 0})},{link:link}},BindHtmlDirective=function(){var link;return link=function($scope,$el,$attrs){return $scope.$watch($attrs.tgBindHtml,function(val){return null!=val?$el.html(val):void 0})},{link:link}},module=angular.module("taigaBase"),module.directive("tgBoBind",BindOnceBindDirective),module.directive("tgBoHtml",BindOnceHtmlDirective),module.directive("tgBoRef",BindOnceRefDirective),module.directive("tgBoSrc",BindOnceSrcDirective),module.directive("tgBoHref",BindOnceHrefDirective),module.directive("tgBoAlt",BindOnceAltDirective),module.directive("tgBoTitle",BindOnceTitleDirective),module.directive("tgBindTitle",BindTitleDirective),module.directive("tgBindHtml",BindHtmlDirective)}.call(this),function(){var ConfigurationService,module;ConfigurationService=function(){function ConfigurationService(){this.config=window.taigaConfig}return ConfigurationService.prototype.get=function(key,defaultValue){return null==defaultValue&&(defaultValue=null),_.has(this.config,key)?this.config[key]:defaultValue},ConfigurationService}(),module=angular.module("taigaBase"),module.service("$tgConfig",ConfigurationService)}.call(this),function(){var ContribController,module,taigaContribPlugins,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taigaContribPlugins=this.taigaContribPlugins=this.taigaContribPlugins||[],ContribController=function(superClass){function ContribController(rootScope,scope,params,repo,rs,confirm,appTitle){var promise;this.rootScope=rootScope,this.scope=scope,this.params=params,this.repo=repo,this.rs=rs,this.confirm=confirm,this.appTitle=appTitle,this.scope.adminPlugins=_.where(this.rootScope.contribPlugins,{type:"admin"}),this.scope.currentPlugin=_.first(_.where(this.scope.adminPlugins,{slug:this.params.plugin})),this.scope.pluginTemplate="contrib/"+this.scope.currentPlugin.slug,this.scope.projectSlug=this.params.pslug,promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set(_this.scope.project.name)}}(this)),promise.then(null,function(_this){return function(){return _this.confirm.notify("error")}}(this))}return extend(ContribController,superClass),ContribController.$inject=["$rootScope","$scope","$routeParams","$tgRepo","$tgResources","$tgConfirm","$appTitle"],ContribController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return _this.scope.project=project,_this.scope.$emit("project:loaded",project),_this.scope.$broadcast("project:loaded",project),project}}(this))},ContribController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this))},ContribController}(taiga.Controller),module=angular.module("taigaBase"),module.controller("ContribController",ContribController)}.call(this),function(){var FiltersStorageService,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,FiltersStorageService=function(superClass){function FiltersStorageService(storage,params){this.storage=storage,this.params=params}return extend(FiltersStorageService,superClass),FiltersStorageService.$inject=["$tgStorage","$routeParams"],FiltersStorageService.prototype.generateHash=function(components){return null==components&&(components=[]),components=_.map(components,function(x){return JSON.stringify(x)}),hex_sha1(components.join(":"))},FiltersStorageService}(taiga.Service)}.call(this),function(){var HttpService,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,HttpService=function(superClass){function HttpService(http,q,storage){this.http=http,this.q=q,this.storage=storage,HttpService.__super__.constructor.call(this)}return extend(HttpService,superClass),HttpService.$inject=["$http","$q","$tgStorage"],HttpService.prototype.headers=function(){var token;return token=this.storage.get("token"),token?{Authorization:"Bearer "+token}:{}},HttpService.prototype.request=function(options){return options.headers=_.merge({},options.headers||{},this.headers()),_.isPlainObject(options.data)&&(options.data=JSON.stringify(options.data)),this.http(options)},HttpService.prototype.get=function(url,params,options){return options=_.merge({method:"GET",url:url},options),params&&(options.params=params),this.request(options)},HttpService.prototype.post=function(url,data,params,options){return options=_.merge({method:"POST",url:url},options),data&&(options.data=data),params&&(options.params=params),this.request(options)},HttpService.prototype.put=function(url,data,params,options){return options=_.merge({method:"PUT",url:url},options),data&&(options.data=data),params&&(options.params=params),this.request(options)},HttpService.prototype.patch=function(url,data,params,options){return options=_.merge({method:"PATCH",url:url},options),data&&(options.data=data),params&&(options.params=params),this.request(options)},HttpService.prototype["delete"]=function(url,data,params,options){return options=_.merge({method:"DELETE",url:url},options),data&&(options.data=data),params&&(options.params=params),this.request(options)},HttpService}(taiga.Service),module=angular.module("taigaBase"),module.service("$tgHttp",HttpService)}.call(this),function(){var I18nDirective,I18nService,bindOnce,defaults,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,bindOnce=this.taiga.bindOnce,defaults={ns:"app",fallbackLng:"en",async:!1,lng:"en"},I18nService=function(superClass){function I18nService(rootscope,localesEn){this.rootscope=rootscope,this.options=_.clone(defaults,!0),this.options.resStore={en:{app:localesEn}}}return extend(I18nService,superClass),I18nService.prototype.setLanguage=function(language){return i18n.setLng(language),this.rootscope.currentLang=language,this.rootscope.$broadcast("i18n:changeLang",language)},I18nService.prototype.initialize=function(){return i18n.init(this.options),this.rootscope.t=i18n.t},I18nService.prototype.t=function(path,opts){return i18n.t(path,opts)},I18nService}(taiga.Service),I18nDirective=function($rootscope,$i18n){var link;return link=function($scope,$el,$attrs){var i,len,ns,options,opts,ref,results,v,values;for(values=$attrs.tr.split(","),options=$attrs.trOpts||"{}",opts=$scope.$eval(options),results=[],i=0,len=values.length;len>i;i++)v=values[i],-1===v.indexOf(":")?results.push($el.html(_.escape($i18n.t(v,opts)))):(ref=v.split(":"),ns=ref[0],v=ref[1],results.push($el.attr(ns,_.escape($i18n.t(v,opts)))));return results},{link:link,restrict:"A",scope:!1}},module=angular.module("taigaBase"),module.service("$tgI18n",["$rootScope","localesEn",I18nService]),module.directive("tr",["$rootScope","$tgI18n",I18nDirective])}.call(this),function(){var locationFactory,module;locationFactory=function($location,$route){return $location.noreload=function(scope){var lastRoute,un;return lastRoute=$route.current,un=scope.$on("$locationChangeSuccess",function(){return $route.current=lastRoute,un()}),$location},$location.isInCurrentRouteParams=function(name,value){var params;return params=_.merge($route.current.params,$location.search()),params[name]===value},$location},module=angular.module("taigaBase"),module.factory("$tgLocation",["$location","$route","$rootScope",locationFactory])}.call(this),function(){var Model,ModelService,module,provider,taiga,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;l>i;i++)if(i in this&&this[i]===item)return i;return-1},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Model=function(){function Model(name,data,dataTypes){this._attrs=data,this._name=name,this._dataTypes=dataTypes,this.setAttrs(data),this.initialize()}return Model.prototype.clone=function(){var instance;return instance=new Model(this._name,this._attrs,this._dataTypes),instance._modifiedAttrs=this._modifiedAttrs,instance._isModified=this._isModified,instance},Model.prototype.applyCasts=function(){var attrName,castMethod,castName,ref,results;ref=this._dataTypes,results=[];for(attrName in ref)castName=ref[attrName],castMethod=service.casts[castName],castMethod&&results.push(this._attrs[attrName]=castMethod(this._attrs[attrName]));return results},Model.prototype.getIdAttrName=function(){return"id"},Model.prototype.getName=function(){return this._name},Model.prototype.getAttrs=function(patch){return null==patch&&(patch=!1),null!=this._attrs.version&&(this._modifiedAttrs.version=this._attrs.version),patch?_.extend({},this._modifiedAttrs):_.extend({},this._attrs,this._modifiedAttrs)},Model.prototype.setAttrs=function(attrs){return this._attrs=attrs,this._modifiedAttrs={},this.applyCasts(),this._isModified=!1},Model.prototype.setAttr=function(name,value){return this._modifiedAttrs[name]=value,this._isModified=!0},Model.prototype.initialize=function(){var getter,self,setter;return self=this,getter=function(name){return function(){return"string"==typeof name&&"__"===name.substr(0,2)?self[name]:indexOf.call(_.keys(self._modifiedAttrs),name)<0?self._attrs[name]:self._modifiedAttrs[name]}},setter=function(name){return function(value){return"string"==typeof name&&"__"===name.substr(0,2)?void(self[name]=value):void(self._attrs[name]!==value?(self._modifiedAttrs[name]=value,self._isModified=!0):delete self._modifiedAttrs[name])}},_.each(this._attrs,function(value,name){var options;return options={get:getter(name),set:setter(name),enumerable:!0,configurable:!0},Object.defineProperty(self,name,options)})},Model.prototype.serialize=function(){var data;return data={data:_.clone(this._attrs),name:this._name},JSON.stringify(data)},Model.prototype.isModified=function(){return this._isModified},Model.prototype.isAttributeModified=function(attribute){return null!=this._modifiedAttrs[attribute]},Model.prototype.markSaved=function(){return this._isModified=!1,this._attrs=this.getAttrs(),this._modifiedAttrs={}},Model.prototype.revert=function(){return this._modifiedAttrs={},this._isModified=!1},Model.desSerialize=function(sdata){var ddata,model;return ddata=JSON.parse(sdata),model=new Model(ddata.url,ddata.data)},Model}(),taiga=this.taiga,ModelService=function(superClass){function ModelService(q,urls,storage,http){this.q=q,this.urls=urls,this.storage=storage,this.http=http,ModelService.__super__.constructor.call(this)}return extend(ModelService,superClass),ModelService.$inject=["$q","$tgUrls","$tgStorage","$tgHttp"],ModelService}(taiga.Service),provider=function(){var service;return service={},service.make_model=function(name,data,cls,dataTypes){return null==cls&&(cls=Model),null==dataTypes&&(dataTypes={}),new cls(name,data,dataTypes)},service.cls=Model,service.casts={"int":function(value){return parseInt(value,10)},"float":function(value){return parseFloat(value,10)}},service},module=angular.module("taigaBase"),module.factory("$tgModel",["$q","$http","$tgUrls","$tgStorage",provider])}.call(this),function(){var NavigationUrlsDirective,NavigationUrlsService,bindOnce,module,taiga,trim,extend=function(child,parent){function ctor(){this.constructor=child -}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,trim=this.taiga.trim,bindOnce=this.taiga.bindOnce,module=angular.module("taigaBase"),NavigationUrlsService=function(superClass){function NavigationUrlsService(){this.urls={}}return extend(NavigationUrlsService,superClass),NavigationUrlsService.prototype.update=function(urls){return this.urls=_.merge({},this.urls,urls||{})},NavigationUrlsService.prototype.formatUrl=function(url,ctx){var replacer;return null==ctx&&(ctx={}),replacer=function(match){return match=trim(match,":"),ctx[match]||"undefined"},url.replace(/(:\w+)/g,replacer)},NavigationUrlsService.prototype.resolve=function(name,ctx){var url;return url=this.urls[name],url?ctx?this.formatUrl(url,ctx):url:""},NavigationUrlsService}(taiga.Service),module.service("$tgNavUrls",NavigationUrlsService),NavigationUrlsDirective=function($navurls,$auth,$q,$location){var bindOnceP,link,parseNav;return bindOnceP=function($scope,attr){var defered;return defered=$q.defer(),bindOnce($scope,attr,function(v){return defered.resolve(v)}),defered.promise},parseNav=function(data,$scope){var name,params,promises,ref,values;return ref=_.map(data.split(":"),trim),name=ref[0],params=ref[1],params=params?_.map(params.split(","),trim):[],values=_.map(params,function(x){return trim(x.split("=")[1])}),promises=_.map(values,function(x){return bindOnceP($scope,x)}),$q.all(promises).then(function(){var i,item,key,len,options,ref1,value;for(options={},i=0,len=params.length;len>i;i++)item=params[i],ref1=_.map(item.split("="),trim),key=ref1[0],value=ref1[1],options[key]=$scope.$eval(value);return[name,options]})},link=function($scope,$el,$attrs){return $el.is("a")&&$el.attr("href","#"),$el.on("mouseenter",function(event){var target;return target=$(event.currentTarget),target.data("fullUrl")?void 0:parseNav($attrs.tgNav,$scope).then(function(result){var fullUrl,name,options,url,user;return name=result[0],options=result[1],user=$auth.getUser(),user&&(options.user=user.username),url=$navurls.resolve(name),fullUrl=$navurls.formatUrl(url,options),target.data("fullUrl",fullUrl),target.is("a")&&target.attr("href",fullUrl),$el.on("click",function(event){if(event.preventDefault(),target=$(event.currentTarget),!target.hasClass("noclick"))switch(fullUrl=target.data("fullUrl"),event.which){case 1:return $location.url(fullUrl),$scope.$apply();case 2:return window.open(fullUrl)}})})}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgNav",["$tgNavUrls","$tgAuth","$q","$tgLocation",NavigationUrlsDirective])}.call(this),function(){var RepositoryService,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,RepositoryService=function(superClass){function RepositoryService(q,model1,storage,http,urls){this.q=q,this.model=model1,this.storage=storage,this.http=http,this.urls=urls,RepositoryService.__super__.constructor.call(this)}return extend(RepositoryService,superClass),RepositoryService.$inject=["$q","$tgModel","$tgStorage","$tgHttp","$tgUrls"],RepositoryService.prototype.resolveUrlForModel=function(model){var idAttrName;return idAttrName=model.getIdAttrName(),this.urls.resolve(model.getName())+"/"+model[idAttrName]},RepositoryService.prototype.resolveUrlForAttributeModel=function(model){return this.urls.resolve(model.getName(),model.parent)},RepositoryService.prototype.create=function(name,data,dataTypes,extraParams){var defered,promise,url;return null==dataTypes&&(dataTypes={}),null==extraParams&&(extraParams={}),defered=this.q.defer(),url=this.urls.resolve(name),promise=this.http.post(url,JSON.stringify(data)),promise.success(function(_this){return function(_data){return defered.resolve(_this.model.make_model(name,_data,null,dataTypes))}}(this)),promise.error(function(){return function(data){return defered.reject(data)}}(this)),defered.promise},RepositoryService.prototype.remove=function(model,params){var defered,promise,url;return null==params&&(params={}),defered=this.q.defer(),url=this.resolveUrlForModel(model),promise=this.http["delete"](url,{},params),promise.success(function(){return defered.resolve(model)}),promise.error(function(){return defered.reject(model)}),defered.promise},RepositoryService.prototype.saveAll=function(models,patch){var promises;return null==patch&&(patch=!0),promises=_.map(models,function(_this){return function(x){return _this.save(x,!0)}}(this)),this.q.all(promises)},RepositoryService.prototype.save=function(model,patch){var data,defered,promise,url;return null==patch&&(patch=!0),defered=this.q.defer(),!model.isModified()&&patch?(defered.resolve(model),defered.promise):(url=this.resolveUrlForModel(model),data=JSON.stringify(model.getAttrs(patch)),promise=patch?this.http.patch(url,data):this.http.put(url,data),promise.success(function(){return function(data){return model._isModified=!1,model._attrs=_.extend(model.getAttrs(),data),model._modifiedAttrs={},model.applyCasts(),defered.resolve(model)}}(this)),promise.error(function(data){return defered.reject(data)}),defered.promise)},RepositoryService.prototype.saveAttribute=function(model,attribute,patch){var data,defered,promise,url;return null==patch&&(patch=!0),defered=this.q.defer(),!model.isModified()&&patch?(defered.resolve(model),defered.promise):(url=this.resolveUrlForAttributeModel(model),data={},data[attribute]=model.getAttrs(),promise=patch?this.http.patch(url,data):this.http.put(url,data),promise.success(function(){return function(data){return model._isModified=!1,model._attrs=_.extend(model.getAttrs(),data),model._modifiedAttrs={},model.applyCasts(),defered.resolve(model)}}(this)),promise.error(function(data){return defered.reject(data)}),defered.promise)},RepositoryService.prototype.refresh=function(model){var defered,promise,url;return defered=this.q.defer(),url=this.resolveUrlForModel(model),promise=this.http.get(url),promise.success(function(data){return model._modifiedAttrs={},model._attrs=data,model._isModified=!1,model.applyCasts(),defered.resolve(model)}),promise.error(function(data){return defered.reject(data)}),defered.promise},RepositoryService.prototype.queryMany=function(name,params,options){var httpOptions,url;return null==options&&(options={}),url=this.urls.resolve(name),httpOptions={headers:{}},options.enablePagination||(httpOptions.headers["x-disable-pagination"]="1"),this.http.get(url,params,httpOptions).then(function(_this){return function(data){return _.map(data.data,function(x){return _this.model.make_model(name,x)})}}(this))},RepositoryService.prototype.queryOneAttribute=function(name,id,attribute,params,options){var httpOptions,url;return null==options&&(options={}),url=this.urls.resolve(name,id),httpOptions={headers:{}},options.enablePagination||(httpOptions.headers["x-disable-pagination"]="1"),this.http.get(url,params,httpOptions).then(function(_this){return function(data){var model;return model=_this.model.make_model(name,data.data[attribute]),model.parent=id,model}}(this))},RepositoryService.prototype.queryOne=function(name,id,params,options){var httpOptions,url;return null==options&&(options={}),url=this.urls.resolve(name),id&&(url=url+"/"+id),httpOptions={headers:{}},options.enablePagination||(httpOptions.headers["x-disable-pagination"]="1"),this.http.get(url,params,httpOptions).then(function(_this){return function(data){return _this.model.make_model(name,data.data)}}(this))},RepositoryService.prototype.queryOneRaw=function(name,id,params,options){var httpOptions,url;return null==options&&(options={}),url=this.urls.resolve(name),id&&(url=url+"/"+id),httpOptions=_.merge({headers:{}},options),options.enablePagination||(httpOptions.headers["x-disable-pagination"]="1"),this.http.get(url,params,httpOptions).then(function(){return function(data){return data.data}}(this))},RepositoryService.prototype.queryPaginated=function(name,params,options){var httpOptions,url;return null==options&&(options={}),url=this.urls.resolve(name),httpOptions=_.merge({headers:{}},options),this.http.get(url,params,httpOptions).then(function(_this){return function(data){var headers,result;return headers=data.headers(),result={},result.models=_.map(data.data,function(x){return _this.model.make_model(name,x)}),result.count=parseInt(headers["x-pagination-count"],10),result.current=parseInt(headers["x-pagination-current"]||1,10),result.paginatedBy=parseInt(headers["x-paginated-by"],10),result}}(this))},RepositoryService.prototype.resolve=function(options){var cache,params;return params={},null!=options.pslug&&(params.project=options.pslug),null!=options.usref&&(params.us=options.usref),null!=options.taskref&&(params.task=options.taskref),null!=options.issueref&&(params.issue=options.issueref),null!=options.sslug&&(params.milestone=options.sslug),null!=options.wikipage&&(params.wikipage=options.wikipage),cache=!(options.wikipage||options.sslug),this.queryOneRaw("resolver",null,params,{cache:cache})},RepositoryService}(taiga.Service),module=angular.module("taigaBase"),module.service("$tgRepo",RepositoryService)}.call(this),function(){var StorageService,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,StorageService=function(superClass){function StorageService(){StorageService.__super__.constructor.call(this)}return extend(StorageService,superClass),StorageService.$inject=["$rootScope"],StorageService.prototype.get=function(key,_default){var serializedValue;return serializedValue=localStorage.getItem(key),null===serializedValue?_default||null:JSON.parse(serializedValue)},StorageService.prototype.set=function(key,val){return _.isObject(key)?_.each(key,function(_this){return function(val,key){return _this.set(key,val)}}(this)):localStorage.setItem(key,JSON.stringify(val))},StorageService.prototype.contains=function(key){var value;return value=this.get(key),null!==value},StorageService.prototype.remove=function(key){return localStorage.removeItem(key)},StorageService.prototype.clear=function(){return localStorage.clear()},StorageService}(taiga.Service),module=angular.module("taigaBase"),module.service("$tgStorage",StorageService)}.call(this),function(){var UrlsService,format,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;format=function(fmt,obj){return obj=_.clone(obj),fmt.replace(/%s/g,function(){return String(obj.shift())})},taiga=this.taiga,UrlsService=function(superClass){function UrlsService(config){this.config=config,this.urls={},this.mainUrl=this.config.get("api")}return extend(UrlsService,superClass),UrlsService.$inject=["$tgConfig"],UrlsService.prototype.update=function(urls){return this.urls=_.merge(this.urls,urls)},UrlsService.prototype.resolve=function(){var args,name,url;if(args=_.toArray(arguments),0===args.length)throw Error("wrong arguments to setUrls");return name=args.slice(0,1)[0],url=format(this.urls[name],args.slice(1)),format("%s/%s",[_.str.rtrim(this.mainUrl,"/"),_.str.ltrim(url,"/")])},UrlsService.prototype.resolveAbsolute=function(){var url;return url=this.resolve.apply(this,arguments),/^https?:\/\//i.test(url)?url:/^\//.test(url)?window.location.protocol+"//"+window.location.host+url:window.location.protocol+"//"+window.location.host+"/"+url},UrlsService}(taiga.Service),module=angular.module("taigaBase"),module.service("$tgUrls",UrlsService)}.call(this),function(){var module,resourceProvider,sizeFormat,taiga;taiga=this.taiga,sizeFormat=this.taiga.sizeFormat,resourceProvider=function($rootScope,$config,$urls,$model,$repo,$auth,$q){var service;return service={},service.list=function(urlName,objectId,projectId){var params;return params={object_id:objectId,project:projectId},$repo.queryMany(urlName,params)},service.create=function(urlName,projectId,objectId,file){var data,defered,maxFileSize,response,uploadComplete,uploadFailed,uploadProgress,xhr;return defered=$q.defer(),void 0===file?(defered.reject(null),defered.promise):(maxFileSize=$config.get("maxUploadFileSize",null),maxFileSize&&file.size>maxFileSize?(response={status:413,data:{_error_message:"'"+file.name+"' ("+sizeFormat(file.size)+") is too heavy for our oompa loompas, try it with a smaller than ("+sizeFormat(maxFileSize)+")"}},defered.reject(response),defered.promise):(uploadProgress=function(){return function(evt){return $rootScope.$apply(function(){return file.status="in-progress",file.size=sizeFormat(evt.total),file.progressMessage="upload "+sizeFormat(evt.loaded)+" of "+sizeFormat(evt.total),file.progressPercent=Math.round(evt.loaded/evt.total*100)+"%"})}}(this),uploadComplete=function(){return function(evt){return $rootScope.$apply(function(){var data,model;file.status="done";try{data=JSON.parse(evt.target.responseText)}catch(_error){data={}}return model=$model.make_model(urlName,data),defered.resolve(model)})}}(this),uploadFailed=function(){return function(){return $rootScope.$apply(function(){return file.status="error",defered.reject("fail")})}}(this),data=new FormData,data.append("project",projectId),data.append("object_id",objectId),data.append("attached_file",file),xhr=new XMLHttpRequest,xhr.upload.addEventListener("progress",uploadProgress,!1),xhr.addEventListener("load",uploadComplete,!1),xhr.addEventListener("error",uploadFailed,!1),xhr.open("POST",$urls.resolve(urlName)),xhr.setRequestHeader("Authorization","Bearer "+$auth.getToken()),xhr.setRequestHeader("Accept","application/json"),xhr.send(data),defered.promise))},function(instance){return instance.attachments=service}},module=angular.module("taigaResources"),module.factory("$tgAttachmentsResourcesProvider",["$rootScope","$tgConfig","$tgUrls","$tgModel","$tgRepo","$tgAuth","$q",resourceProvider])}.call(this),function(){var module,resourceProvider,taiga;taiga=this.taiga,resourceProvider=function($repo){var _get,service;return _get=function(objectId,resource){return $repo.queryOne(resource,objectId)},service={userstory:{get:function(objectId){return _get(objectId,"custom-attributes-values/userstory")}},task:{get:function(objectId){return _get(objectId,"custom-attributes-values/task")}},issue:{get:function(objectId){return _get(objectId,"custom-attributes-values/issue")}}},function(instance){return instance.customAttributesValues=service}},module=angular.module("taigaResources"),module.factory("$tgCustomAttributesValuesResourcesProvider",["$tgRepo",resourceProvider])}.call(this),function(){var module,resourceProvider,sizeFormat,taiga;taiga=this.taiga,sizeFormat=this.taiga.sizeFormat,resourceProvider=function($repo){var _list,service;return _list=function(projectId,resource){return $repo.queryMany(resource,{project:projectId})},service={userstory:{list:function(projectId){return _list(projectId,"custom-attributes/userstory")}},task:{list:function(projectId){return _list(projectId,"custom-attributes/task")}},issue:{list:function(projectId){return _list(projectId,"custom-attributes/issue")}}},function(instance){return instance.customAttributes=service}},module=angular.module("taigaResources"),module.factory("$tgCustomAttributesResourcesProvider",["$tgRepo",resourceProvider])}.call(this),function(){var module,resourceProvider,taiga;taiga=this.taiga,resourceProvider=function($repo,$http,$urls){var service;return service={},service.get=function(type,objectId){return $repo.queryOneRaw("history/"+type,objectId)},service.deleteComment=function(type,objectId,activityId){var params,url;return url=$urls.resolve("history/"+type),url=url+"/"+objectId+"/delete_comment",params={id:activityId},$http.post(url,null,params).then(function(){return function(data){return data.data}}(this))},service.undeleteComment=function(type,objectId,activityId){var params,url;return url=$urls.resolve("history/"+type),url=url+"/"+objectId+"/undelete_comment",params={id:activityId},$http.post(url,null,params).then(function(){return function(data){return data.data}}(this))},function(instance){return instance.history=service}},module=angular.module("taigaResources"),module.factory("$tgHistoryResourcesProvider",["$tgRepo","$tgHttp","$tgUrls",resourceProvider])}.call(this),function(){var module,resourceProvider,taiga;taiga=this.taiga,resourceProvider=function($repo){var service;return service={},service.get=function(token){return $repo.queryOne("invitations",token)},function(instance){return instance.invitations=service}},module=angular.module("taigaResources"),module.factory("$tgInvitationsResourcesProvider",["$tgRepo",resourceProvider])}.call(this),function(){var generateHash,module,resourceProvider,taiga;taiga=this.taiga,generateHash=taiga.generateHash,resourceProvider=function($repo,$http,$urls,$storage,$q){var filtersHashSuffix,hashSuffix,myFiltersHashSuffix,service;return service={},hashSuffix="issues-queryparams",filtersHashSuffix="issues-filters",myFiltersHashSuffix="issues-my-filters",service.get=function(projectId,issueId){var params;return params=service.getQueryParams(projectId),params.project=projectId,$repo.queryOne("issues",issueId,params)},service.getByRef=function(projectId,ref){var params;return params=service.getQueryParams(projectId),params.project=projectId,params.ref=ref,$repo.queryOne("issues","by_ref",params)},service.list=function(projectId,filters,options){var params;return params={project:projectId},params=_.extend({},params,filters||{}),service.storeQueryParams(projectId,params),$repo.queryPaginated("issues",params,options)},service.bulkCreate=function(projectId,data){var params,url;return url=$urls.resolve("bulk-create-issues"),params={project_id:projectId,bulk_issues:data},$http.post(url,params)},service.stats=function(projectId){return $repo.queryOneRaw("projects",projectId+"/issues_stats")},service.filtersData=function(projectId){return $repo.queryOneRaw("projects",projectId+"/issue_filters_data")},service.listValues=function(projectId,type){var params;return params={project:projectId},service.storeQueryParams(projectId,params),$repo.queryMany(type,params)},service.storeQueryParams=function(projectId,params){var hash,ns;return ns=projectId+":"+hashSuffix,hash=generateHash([projectId,ns]),$storage.set(hash,params)},service.getQueryParams=function(projectId){var hash,ns;return ns=projectId+":"+hashSuffix,hash=generateHash([projectId,ns]),$storage.get(hash)||{}},service.storeFilters=function(projectSlug,params){var hash,ns;return ns=projectSlug+":"+filtersHashSuffix,hash=generateHash([projectSlug,ns]),$storage.set(hash,params)},service.getFilters=function(projectSlug){var hash,ns;return ns=projectSlug+":"+filtersHashSuffix,hash=generateHash([projectSlug,ns]),$storage.get(hash)||{}},service.storeMyFilters=function(projectId,myFilters){var deferred,hash,ns,promise,url;return deferred=$q.defer(),url=$urls.resolve("user-storage"),ns=projectId+":"+myFiltersHashSuffix,hash=generateHash([projectId,ns]),_.isEmpty(myFilters)?(promise=$http["delete"](url+"/"+hash,{key:hash,value:myFilters}),promise.then(function(){return deferred.resolve()}),promise.then(null,function(){return deferred.reject()})):(promise=$http.put(url+"/"+hash,{key:hash,value:myFilters}),promise.then(function(){return deferred.resolve()}),promise.then(null,function(){var innerPromise;return innerPromise=$http.post(""+url,{key:hash,value:myFilters}),innerPromise.then(function(){return deferred.resolve()}),innerPromise.then(null,function(){return deferred.reject()})})),deferred.promise},service.getMyFilters=function(projectId){var deferred,hash,ns,promise,url;return deferred=$q.defer(),url=$urls.resolve("user-storage"),ns=projectId+":"+myFiltersHashSuffix,hash=generateHash([projectId,ns]),promise=$http.get(url+"/"+hash),promise.then(function(data){return deferred.resolve(data.data.value)}),promise.then(null,function(){return deferred.resolve({})}),deferred.promise},function(instance){return instance.issues=service}},module=angular.module("taigaResources"),module.factory("$tgIssuesResourcesProvider",["$tgRepo","$tgHttp","$tgUrls","$tgStorage","$q",resourceProvider])}.call(this),function(){var generateHash,module,resourceProvider,taiga;taiga=this.taiga,generateHash=taiga.generateHash,resourceProvider=function($storage){var hashSuffixStatusColumnModes,hashSuffixStatusViewModes,service;return service={},hashSuffixStatusViewModes="kanban-statusviewmodels",hashSuffixStatusColumnModes="kanban-statuscolumnmodels",service.storeStatusViewModes=function(projectId,params){var hash,ns;return ns=projectId+":"+hashSuffixStatusViewModes,hash=generateHash([projectId,ns]),$storage.set(hash,params)},service.getStatusViewModes=function(projectId){var hash,ns;return ns=projectId+":"+hashSuffixStatusViewModes,hash=generateHash([projectId,ns]),$storage.get(hash)||{}},service.storeStatusColumnModes=function(projectId,params){var hash,ns;return ns=projectId+":"+hashSuffixStatusColumnModes,hash=generateHash([projectId,ns]),$storage.set(hash,params)},service.getStatusColumnModes=function(projectId){var hash,ns;return ns=projectId+":"+hashSuffixStatusColumnModes,hash=generateHash([projectId,ns]),$storage.get(hash)||{}},function(instance){return instance.kanban=service}},module=angular.module("taigaResources"),module.factory("$tgKanbanResourcesProvider",["$tgStorage",resourceProvider])}.call(this),function(){var module,resourceProvider,taiga;taiga=this.taiga,resourceProvider=function($repo,$urls,$http){var service;return service={},service.render=function(projectId,content){var params,url;return(null==content||""===content)&&(content=" "),params={project_id:projectId,content:content},url=$urls.resolve("wiki"),$http.post(url+"/render",params).then(function(){return function(data){return data.data}}(this))},function(instance){return instance.mdrender=service}},module=angular.module("taigaResources"),module.factory("$tgMdRenderResourcesProvider",["$tgRepo","$tgUrls","$tgHttp",resourceProvider])}.call(this),function(){var module,resourceProvider,taiga;taiga=this.taiga,resourceProvider=function($repo,$http,$urls){var service;return service={},service.get=function(id){return $repo.queryOne("memberships",id)},service.list=function(projectId,filters,enablePagination){var options,params;return null==enablePagination&&(enablePagination=!0),params={project:projectId},params=_.extend({},params,filters||{}),enablePagination?$repo.queryPaginated("memberships",params):$repo.queryMany("memberships",params,options={enablePagination:enablePagination})},service.listByUser=function(userId,filters){var params;return params={user:userId},params=_.extend({},params,filters||{}),$repo.queryPaginated("memberships",params)},service.resendInvitation=function(id){var url;return url=$urls.resolve("memberships"),$http.post(url+"/"+id+"/resend_invitation",{})},service.bulkCreateMemberships=function(projectId,data,invitation_extra_text){var params,url;return url=$urls.resolve("bulk-create-memberships"),params={project_id:projectId,bulk_memberships:data,invitation_extra_text:invitation_extra_text},$http.post(url,params)},function(instance){return instance.memberships=service}},module=angular.module("taigaResources"),module.factory("$tgMembershipsResourcesProvider",["$tgRepo","$tgHttp","$tgUrls",resourceProvider])}.call(this),function(){var module,resourceProvider;resourceProvider=function($repo){var service;return service={},service.list=function(projectId,module){return $repo.queryOneAttribute("project-modules",projectId,module)},function(instance){return instance.modules=service}},module=angular.module("taigaResources"),module.factory("$tgModulesResourcesProvider",["$tgRepo",resourceProvider])}.call(this),function(){var module,resourceProvider,taiga;taiga=this.taiga,resourceProvider=function($repo){var service;return service={},service.get=function(id){return $repo.queryOne("notify-policies",id)},service.list=function(filters){var params;return params=_.extend({},params,filters||{}),$repo.queryMany("notify-policies",params)},function(instance){return instance.notifyPolicies=service}},module=angular.module("taigaResources"),module.factory("$tgNotifyPoliciesResourcesProvider",["$tgRepo","$tgHttp","$tgUrls",resourceProvider])}.call(this),function(){var module,resourceProvider,sizeFormat,taiga;taiga=this.taiga,sizeFormat=this.taiga.sizeFormat,resourceProvider=function($config,$repo,$http,$urls,$auth,$q){var service;return service={},service.get=function(projectId){return $repo.queryOne("projects",projectId)},service.getBySlug=function(projectSlug){return $repo.queryOne("projects","by_slug?slug="+projectSlug)},service.list=function(){return $repo.queryMany("projects")},service.listByMember=function(memberId){var params;return params={member:memberId},$repo.queryMany("projects",params)},service.templates=function(){return $repo.queryMany("project-templates")},service.usersList=function(projectId){var params;return params={project:projectId},$repo.queryMany("users",params)},service.rolesList=function(projectId){var params;return params={project:projectId},$repo.queryMany("roles",params)},service.stats=function(projectId){return $repo.queryOneRaw("projects",projectId+"/stats")},service.regenerate_userstories_csv_uuid=function(projectId){var url;return url=$urls.resolve("projects")+"/"+projectId+"/regenerate_userstories_csv_uuid",$http.post(url)},service.regenerate_issues_csv_uuid=function(projectId){var url;return url=$urls.resolve("projects")+"/"+projectId+"/regenerate_issues_csv_uuid",$http.post(url)},service.regenerate_tasks_csv_uuid=function(projectId){var url;return url=$urls.resolve("projects")+"/"+projectId+"/regenerate_tasks_csv_uuid",$http.post(url)},service.leave=function(projectId){var url;return url=$urls.resolve("projects")+"/"+projectId+"/leave",$http.post(url)},service.memberStats=function(projectId){return $repo.queryOneRaw("projects",projectId+"/member_stats")},service.tagsColors=function(projectId){return $repo.queryOne("projects",projectId+"/tags_colors")},service["export"]=function(projectId){var url;return url=$urls.resolve("exporter")+"/"+projectId,$http.get(url)},service["import"]=function(file,statusUpdater){var complete,data,defered,failed,maxFileSize,response,uploadComplete,uploadFailed,uploadProgress,xhr;return defered=$q.defer(),maxFileSize=$config.get("maxUploadFileSize",null),maxFileSize&&file.size>maxFileSize?(response={status:413,data:{_error_message:"'"+file.name+"' ("+sizeFormat(file.size)+") is too heavy for our oompa loompas, try it with a smaller than ("+sizeFormat(maxFileSize)+")"}},defered.reject(response),defered.promise):(uploadProgress=function(){return function(evt){var message,percent;return percent=Math.round(evt.loaded/evt.total*100),message="Uloaded "+sizeFormat(evt.loaded)+" of "+sizeFormat(evt.total),statusUpdater("in-progress",null,message,percent)}}(this),uploadComplete=function(){return function(){return statusUpdater("done","Importing Project","This process can take a while, please keep the window open.")}}(this),uploadFailed=function(){return function(){return statusUpdater("error")}}(this),complete=function(){return function(evt){var ref;response={};try{response.data=JSON.parse(evt.target.responseText)}catch(_error){response.data={}}return response.status=evt.target.status,(201===(ref=response.status)||202===ref)&&defered.resolve(response),defered.reject(response)}}(this),failed=function(){return function(){return defered.reject("fail")}}(this),data=new FormData,data.append("dump",file),xhr=new XMLHttpRequest,xhr.upload.addEventListener("progress",uploadProgress,!1),xhr.upload.addEventListener("load",uploadComplete,!1),xhr.upload.addEventListener("error",uploadFailed,!1),xhr.upload.addEventListener("abort",uploadFailed,!1),xhr.addEventListener("load",complete,!1),xhr.addEventListener("error",failed,!1),xhr.open("POST",$urls.resolve("importer")),xhr.setRequestHeader("Authorization","Bearer "+$auth.getToken()),xhr.setRequestHeader("Accept","application/json"),xhr.send(data),defered.promise)},function(instance){return instance.projects=service}},module=angular.module("taigaResources"),module.factory("$tgProjectsResourcesProvider",["$tgConfig","$tgRepo","$tgHttp","$tgUrls","$tgAuth","$q",resourceProvider])}.call(this),function(){var module,resourceProvider,taiga;taiga=this.taiga,resourceProvider=function($repo){var service;return service={},service.get=function(id){return $repo.queryOne("roles",id)},service.list=function(projectId){return $repo.queryMany("roles",{project:projectId})},function(instance){return instance.roles=service}},module=angular.module("taigaResources"),module.factory("$tgRolesResourcesProvider",["$tgRepo","$tgHttp","$tgUrls",resourceProvider])}.call(this),function(){var module,resourceProvider,taiga;taiga=this.taiga,resourceProvider=function($repo,$urls,$http){var service;return service={},service["do"]=function(projectId,term){var params,url;return url=$urls.resolve("search"),params={project:projectId,text:term,get_all:!1},$http.get(url,params).then(function(data){return data.data})},function(instance){return instance.search=service}},module=angular.module("taigaResources"),module.factory("$tgSearchResourcesProvider",["$tgRepo","$tgUrls","$tgHttp",resourceProvider])}.call(this),function(){var generateHash,module,resourceProvider,taiga;taiga=this.taiga,generateHash=taiga.generateHash,resourceProvider=function($repo,$model,$storage){var hashSuffixUserstories,service;return service={},hashSuffixUserstories="userstories-queryparams",service.get=function(projectId,sprintId){return $repo.queryOne("milestones",sprintId).then(function(sprint){var uses;return service.storeUserstoriesQueryParams(projectId,{milestone:sprintId}),uses=sprint.user_stories,uses=_.map(uses,function(u){return $model.make_model("userstories",u)}),sprint._attrs.user_stories=uses,sprint})},service.stats=function(projectId,sprintId){return $repo.queryOneRaw("milestones",sprintId+"/stats")},service.list=function(projectId,filters){var params;return params={project:projectId},params=_.extend({},params,filters||{}),$repo.queryMany("milestones",params).then(function(){return function(milestones){var i,len,m,uses;for(i=0,len=milestones.length;len>i;i++)m=milestones[i],uses=m.user_stories,uses=_.map(uses,function(u){return $model.make_model("userstories",u)}),m._attrs.user_stories=uses;return milestones}}(this))},service.storeUserstoriesQueryParams=function(projectId,params){var hash,ns;return ns=projectId+":"+hashSuffixUserstories,hash=generateHash([projectId,ns]),$storage.set(hash,params)},function(instance){return instance.sprints=service}},module=angular.module("taigaResources"),module.factory("$tgSprintsResourcesProvider",["$tgRepo","$tgModel","$tgStorage",resourceProvider])}.call(this),function(){var generateHash,module,resourceProvider,taiga;taiga=this.taiga,generateHash=taiga.generateHash,resourceProvider=function($repo,$http,$urls,$storage){var hashSuffix,hashSuffixStatusColumnModes,hashSuffixUsRowModes,service;return service={},hashSuffix="tasks-queryparams",hashSuffixStatusColumnModes="tasks-statuscolumnmodels",hashSuffixUsRowModes="tasks-usrowmodels",service.get=function(projectId,taskId){var params;return params=service.getQueryParams(projectId),params.project=projectId,$repo.queryOne("tasks",taskId,params)},service.getByRef=function(projectId,ref){var params;return params=service.getQueryParams(projectId),params.project=projectId,params.ref=ref,$repo.queryOne("tasks","by_ref",params)},service.list=function(projectId,sprintId,userStoryId){var params;return null==sprintId&&(sprintId=null),null==userStoryId&&(userStoryId=null),params={project:projectId},sprintId&&(params.milestone=sprintId),userStoryId&&(params.user_story=userStoryId),service.storeQueryParams(projectId,params),$repo.queryMany("tasks",params) -},service.bulkCreate=function(projectId,sprintId,usId,data){var params,url;return url=$urls.resolve("bulk-create-tasks"),params={project_id:projectId,sprint_id:sprintId,us_id:usId,bulk_tasks:data},$http.post(url,params).then(function(result){return result.data})},service.bulkUpdateTaskTaskboardOrder=function(projectId,data){var params,url;return url=$urls.resolve("bulk-update-task-taskboard-order"),params={project_id:projectId,bulk_tasks:data},$http.post(url,params)},service.listValues=function(projectId,type){var params;return params={project:projectId},$repo.queryMany(type,params)},service.storeQueryParams=function(projectId,params){var hash,ns;return ns=projectId+":"+hashSuffix,hash=generateHash([projectId,ns]),$storage.set(hash,params)},service.getQueryParams=function(projectId){var hash,ns;return ns=projectId+":"+hashSuffix,hash=generateHash([projectId,ns]),$storage.get(hash)||{}},service.storeStatusColumnModes=function(projectId,params){var hash,ns;return ns=projectId+":"+hashSuffixStatusColumnModes,hash=generateHash([projectId,ns]),$storage.set(hash,params)},service.getStatusColumnModes=function(projectId){var hash,ns;return ns=projectId+":"+hashSuffixStatusColumnModes,hash=generateHash([projectId,ns]),$storage.get(hash)||{}},service.storeUsRowModes=function(projectId,sprintId,params){var hash,ns;return ns=projectId+":"+hashSuffixUsRowModes,hash=generateHash([projectId,sprintId,ns]),$storage.set(hash,params)},service.getUsRowModes=function(projectId,sprintId){var hash,ns;return ns=projectId+":"+hashSuffixUsRowModes,hash=generateHash([projectId,sprintId,ns]),$storage.get(hash)||{}},function(instance){return instance.tasks=service}},module=angular.module("taigaResources"),module.factory("$tgTasksResourcesProvider",["$tgRepo","$tgHttp","$tgUrls","$tgStorage",resourceProvider])}.call(this),function(){var module,resourceProvider,sizeFormat,taiga;taiga=this.taiga,sizeFormat=this.taiga.sizeFormat,resourceProvider=function($config,$repo,$http,$urls,$q){var service;return service={},service.changeAvatar=function(file){var data,defered,maxFileSize,options,response,url;return maxFileSize=$config.get("maxUploadFileSize",null),maxFileSize&&file.size>maxFileSize?(response={status:413,data:{_error_message:"'"+file.name+"' ("+sizeFormat(file.size)+") is too heavy for our oompa loompas, try it with a smaller than ("+sizeFormat(maxFileSize)+")"}},defered=$q.defer(),defered.reject(response),defered.promise):(data=new FormData,data.append("avatar",file),options={transformRequest:angular.identity,headers:{"Content-Type":void 0}},url=$urls.resolve("users")+"/change_avatar",$http.post(url,data,{},options))},service.removeAvatar=function(){var url;return url=$urls.resolve("users")+"/remove_avatar",$http.post(url)},service.changePassword=function(currentPassword,newPassword){var data,url;return url=$urls.resolve("users")+"/change_password",data={current_password:currentPassword,password:newPassword},$http.post(url,data)},function(instance){return instance.userSettings=service}},module=angular.module("taigaResources"),module.factory("$tgUserSettingsResourcesProvider",["$tgConfig","$tgRepo","$tgHttp","$tgUrls","$q",resourceProvider])}.call(this),function(){var generateHash,module,resourceProvider,taiga;taiga=this.taiga,generateHash=taiga.generateHash,resourceProvider=function($repo,$http,$urls,$storage){var hashSuffix,service;return service={},hashSuffix="userstories-queryparams",service.get=function(projectId,usId){var params;return params=service.getQueryParams(projectId),params.project=projectId,$repo.queryOne("userstories",usId,params)},service.getByRef=function(projectId,ref){var params;return params=service.getQueryParams(projectId),params.project=projectId,params.ref=ref,$repo.queryOne("userstories","by_ref",params)},service.listUnassigned=function(projectId,filters){var params;return params={project:projectId,milestone:"null"},params=_.extend({},params,filters||{}),service.storeQueryParams(projectId,params),$repo.queryMany("userstories",params)},service.listAll=function(projectId,filters){var params;return params={project:projectId},params=_.extend({},params,filters||{}),service.storeQueryParams(projectId,params),$repo.queryMany("userstories",params)},service.bulkCreate=function(projectId,status,bulk){var data,url;return data={project_id:projectId,status_id:status,bulk_stories:bulk},url=$urls.resolve("bulk-create-us"),$http.post(url,data)},service.bulkUpdateBacklogOrder=function(projectId,data){var params,url;return url=$urls.resolve("bulk-update-us-backlog-order"),params={project_id:projectId,bulk_stories:data},$http.post(url,params)},service.bulkUpdateSprintOrder=function(projectId,data){var params,url;return url=$urls.resolve("bulk-update-us-sprint-order"),params={project_id:projectId,bulk_stories:data},$http.post(url,params)},service.bulkUpdateKanbanOrder=function(projectId,data){var params,url;return url=$urls.resolve("bulk-update-us-kanban-order"),params={project_id:projectId,bulk_stories:data},$http.post(url,params)},service.listValues=function(projectId,type){var params;return params={project:projectId},service.storeQueryParams(projectId,params),$repo.queryMany(type,params)},service.storeQueryParams=function(projectId,params){var hash,ns;return ns=projectId+":"+hashSuffix,hash=generateHash([projectId,ns]),$storage.set(hash,params)},service.getQueryParams=function(projectId){var hash,ns;return ns=projectId+":"+hashSuffix,hash=generateHash([projectId,ns]),$storage.get(hash)||{}},service.storeShowTags=function(projectId,showTags){var hash;return hash=generateHash([projectId,"showTags"]),$storage.set(hash,showTags)},service.getShowTags=function(projectId){var hash;return hash=generateHash([projectId,"showTags"]),$storage.get(hash)||null},function(instance){return instance.userstories=service}},module=angular.module("taigaResources"),module.factory("$tgUserstoriesResourcesProvider",["$tgRepo","$tgHttp","$tgUrls","$tgStorage",resourceProvider])}.call(this),function(){var module,resourceProvider;resourceProvider=function($repo,$urls,$http){var service;return service={},service.list=function(webhookId){var params;return params={webhook:webhookId},$repo.queryMany("webhooklogs",params)},service.resend=function(webhooklogId){var url;return url=$urls.resolve("webhooklogs-resend",webhooklogId),$http.post(url)},function(instance){return instance.webhooklogs=service}},module=angular.module("taigaResources"),module.factory("$tgWebhookLogsResourcesProvider",["$tgRepo","$tgUrls","$tgHttp",resourceProvider])}.call(this),function(){var module,resourceProvider;resourceProvider=function($repo,$urls,$http){var service;return service={},service.list=function(projectId){var params;return params={project:projectId},$repo.queryMany("webhooks",params)},service.test=function(webhookId){var url;return url=$urls.resolve("webhooks-test",webhookId),$http.post(url)},function(instance){return instance.webhooks=service}},module=angular.module("taigaResources"),module.factory("$tgWebhooksResourcesProvider",["$tgRepo","$tgUrls","$tgHttp",resourceProvider])}.call(this),function(){var module,resourceProvider,taiga;taiga=this.taiga,resourceProvider=function($repo){var service;return service={},service.get=function(wikiId){return $repo.queryOne("wiki",wikiId)},service.getBySlug=function(projectId,slug){return $repo.queryOne("wiki","by_slug?project="+projectId+"&slug="+slug)},service.listLinks=function(projectId){return $repo.queryMany("wiki-links",{project:projectId})},function(instance){return instance.wiki=service}},module=angular.module("taigaResources"),module.factory("$tgWikiResourcesProvider",["$tgRepo","$tgHttp","$tgUrls",resourceProvider])}.call(this),function(){var UserChangePasswordController,UserChangePasswordDirective,debounce,mixOf,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,debounce=this.taiga.debounce,module=angular.module("taigaUserSettings"),UserChangePasswordController=function(superClass){function UserChangePasswordController(scope,rootscope,repo,confirm,rs,params,q,location,navUrls,auth){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.navUrls=navUrls,this.auth=auth,this.scope.sectionName="Change Password",this.scope.project={},this.scope.user=this.auth.getUser(),promise=this.loadInitialData(),promise.then(null,this.onInitialDataError.bind(this))}return extend(UserChangePasswordController,superClass),UserChangePasswordController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$tgNavUrls","$tgAuth"],UserChangePasswordController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return _this.scope.project=project,_this.scope.$emit("project:loaded",project),project}}(this))},UserChangePasswordController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this))},UserChangePasswordController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("UserChangePasswordController",UserChangePasswordController),UserChangePasswordDirective=function($rs,$confirm,$loading){var link;return link=function($scope,$el){var submit,submitButton;return submit=debounce(2e3,function(){return function(event){var promise;return event.preventDefault(),$scope.newPassword1!==$scope.newPassword2?void $confirm.notify("error","The passwords dosn't match"):($loading.start(submitButton),promise=$rs.userSettings.changePassword($scope.currentPassword,$scope.newPassword1),promise.then(function(){return $loading.finish(submitButton),$confirm.notify("success")}),promise.then(null,function(response){return $loading.finish(submitButton),$confirm.notify("error",response.data._error_message)}))}}(this)),submitButton=$el.find(".submit-button"),$el.on("submit","form",submit),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgUserChangePassword",["$tgResources","$tgConfirm","$tgLoading",UserChangePasswordDirective])}.call(this),function(){var DeleteUserDirective,bindOnce,debounce,module,taiga;taiga=this.taiga,bindOnce=this.taiga.bindOnce,debounce=this.taiga.debounce,module=angular.module("taigaUserSettings"),DeleteUserDirective=function($repo,$rootscope,$auth,$location,$navUrls,lightboxService){var link;return link=function($scope,$el){var submit;return $scope.$on("deletelightbox:new",function(){return lightboxService.open($el)}),$scope.$on("$destroy",function(){return $el.off()}),submit=function(){var promise;return promise=$repo.remove($scope.user),promise.then(function(){return lightboxService.close($el),$auth.logout(),$location.path($navUrls.resolve("login"))}),promise.then(null,function(){return console.log("FAIL")})},$el.on("click",".button-red",function(event){return event.preventDefault(),lightboxService.close($el)}),$el.on("click",".button-green",debounce(2e3,function(event){return event.preventDefault(),submit()}))},{link:link,templateUrl:"user/lightbox/lightbox-delete-account.html"}},module.directive("tgLbDeleteUser",["$tgRepo","$rootScope","$tgAuth","$tgLocation","$tgNavUrls","lightboxService",DeleteUserDirective])}.call(this),function(){var TaigaAvatarModelDirective,UserAvatarDirective,UserProfileDirective,UserSettingsController,debounce,mixOf,module,sizeFormat,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,sizeFormat=this.taiga.sizeFormat,module=angular.module("taigaUserSettings"),debounce=this.taiga.debounce,UserSettingsController=function(superClass){function UserSettingsController(scope,rootscope,config,repo,confirm,rs,params,q,location,navUrls,auth){var maxFileSize,promise;this.scope=scope,this.rootscope=rootscope,this.config=config,this.repo=repo,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.navUrls=navUrls,this.auth=auth,this.scope.sectionName="User Profile",this.scope.project={},this.scope.user=this.auth.getUser(),maxFileSize=this.config.get("maxUploadFileSize",null),maxFileSize&&(this.scope.maxFileSizeMsg="[Max, size: "+sizeFormat(maxFileSize)),promise=this.loadInitialData(),promise.then(null,this.onInitialDataError.bind(this))}return extend(UserSettingsController,superClass),UserSettingsController.$inject=["$scope","$rootScope","$tgConfig","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$tgNavUrls","$tgAuth"],UserSettingsController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return _this.scope.project=project,_this.scope.$emit("project:loaded",project),project}}(this))},UserSettingsController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this))},UserSettingsController.prototype.openDeleteLightbox=function(){return this.rootscope.$broadcast("deletelightbox:new",this.scope.user)},UserSettingsController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("UserSettingsController",UserSettingsController),UserProfileDirective=function($confirm,$auth,$repo){var link;return link=function($scope,$el){var submit;return submit=debounce(2e3,function(){return function(event){var changeEmail,form,onError,onSuccess;return event.preventDefault(),form=$el.find("form").checksley(),form.validate()?(changeEmail=$scope.user.isAttributeModified("email"),onSuccess=function(data){return $auth.setUser(data),changeEmail?$confirm.success("Check your inbox!
We have sent a mail to your account
with the instructions to set your new address"):$confirm.notify("success")},onError=function(data){return form.setErrors(data),$confirm.notify("error",data._error_message)},$repo.save($scope.user).then(onSuccess,onError)):void 0}}(this)),$el.on("submit","form",submit),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgUserProfile",["$tgConfirm","$tgAuth","$tgRepo",UserProfileDirective]),UserAvatarDirective=function($auth,$model,$rs,$confirm){var link;return link=function($scope,$el){var onError,onSuccess,showSizeInfo;return showSizeInfo=function(){return $el.find(".size-info").removeClass("hidden")},onSuccess=function(response){var user;return user=$model.make_model("users",response.data),$auth.setUser(user),$scope.user=user,$el.find(".overlay").addClass("hidden"),$confirm.notify("success")},onError=function(response){return 413===response.status&&showSizeInfo(),$el.find(".overlay").addClass("hidden"),$confirm.notify("error",response.data._error_message)},$el.on("click",".js-change-avatar",function(){return $el.find("#avatar-field").click()}),$el.on("change","#avatar-field",function(){return $scope.avatarAttachment?($el.find(".overlay").removeClass("hidden"),$rs.userSettings.changeAvatar($scope.avatarAttachment).then(onSuccess,onError)):void 0}),$el.on("click","a.use-gravatar",function(){return $el.find(".overlay").removeClass("hidden"),$rs.userSettings.removeAvatar().then(onSuccess,onError)}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgUserAvatar",["$tgAuth","$tgModel","$tgResources","$tgConfirm",UserAvatarDirective]),TaigaAvatarModelDirective=function($parse){var link;return link=function($scope,$el,$attrs){var model,modelSetter;return model=$parse($attrs.tgAvatarModel),modelSetter=model.assign,$el.bind("change",function(){return $scope.$apply(function(){return modelSetter($scope,$el[0].files[0])})})},{link:link}},module.directive("tgAvatarModel",["$parse",TaigaAvatarModelDirective])}.call(this),function(){var UserSettingsNavigationDirective,module;UserSettingsNavigationDirective=function(){var link;return link=function($scope,$el,$attrs){var section;return section=$attrs.tgUserSettingsNavigation,$el.find(".active").removeClass("active"),$el.find("#usersettingsmenu-"+section+" a").addClass("active"),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module=angular.module("taigaUserSettings"),module.directive("tgUserSettingsNavigation",UserSettingsNavigationDirective)}.call(this),function(){var UserNotificationsController,UserNotificationsDirective,UserNotificationsListDirective,bindOnce,mixOf,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,bindOnce=this.taiga.bindOnce,module=angular.module("taigaUserSettings"),UserNotificationsController=function(superClass){function UserNotificationsController(scope,rootscope,repo,confirm,rs,params,q,location,navUrls,auth){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.navUrls=navUrls,this.auth=auth,this.scope.sectionName="Email Notifications",this.scope.project={},this.scope.user=this.auth.getUser(),promise=this.loadInitialData(),promise.then(null,this.onInitialDataError.bind(this))}return extend(UserNotificationsController,superClass),UserNotificationsController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$tgNavUrls","$tgAuth"],UserNotificationsController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return _this.scope.project=project,_this.scope.$emit("project:loaded",project),project}}(this))},UserNotificationsController.prototype.loadNotifyPolicies=function(){return this.rs.notifyPolicies.list().then(function(_this){return function(notifyPolicies){return _this.scope.notifyPolicies=notifyPolicies,notifyPolicies}}(this))},UserNotificationsController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this)).then(function(_this){return function(){return _this.loadNotifyPolicies()}}(this))},UserNotificationsController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("UserNotificationsController",UserNotificationsController),UserNotificationsDirective=function(){var link;return link=function($scope,$el){return $scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgUserNotifications",UserNotificationsDirective),UserNotificationsListDirective=function($repo,$confirm){var link,template;return template=_.template('<% _.each(notifyPolicies, function (notifyPolicy, index) { %>\n
\n
<%- notifyPolicy.project_name %>
\n
\n
\n checked="checked"<% } %>/>\n \n
\n
\n
\n
\n checked="checked"<% } %> />\n \n
\n
\n
\n
\n checked="checked"<% } %> />\n \n
\n
\n
\n<% }) %>'),link=function($scope,$el,$attrs){var render;return render=function(){return $el.off(),$el.html(template({notifyPolicies:$scope.notifyPolicies})),$el.on("change","input[type=radio]",function(event){var onError,onSuccess,policy,policyIndex,prev_level,target;return target=angular.element(event.currentTarget),policyIndex=target.parents(".policy-table-row").data("index"),policy=$scope.notifyPolicies[policyIndex],prev_level=policy.notify_level,policy.notify_level=parseInt(target.val(),10),onSuccess=function(){return $confirm.notify("success")},onError=function(){return $confirm.notify("error"),target.parents(".policy-table-row").find("input[value="+prev_level+"]").prop("checked",!0)},$repo.save(policy).then(onSuccess,onError)})},$scope.$on("$destroy",function(){return $el.off()}),bindOnce($scope,$attrs.ngModel,render)},{link:link}},module.directive("tgUserNotificationsList",["$tgRepo","$tgConfirm",UserNotificationsListDirective])}.call(this),function(){var module;module=angular.module("taigaPlugins",["ngRoute"])}.call(this),function(){var configure,module,taiga;taiga=this.taiga,module=angular.module("taigaPlugins"),configure=function($routeProvider){return $routeProvider.when("/humans.html",{templateUrl:"/plugins/humanshtml/templates/humans.html"})},module.config(["$routeProvider",configure])}.call(this),function(){var TermsNoticeDirective,module,taiga,template;taiga=this.taiga,module=angular.module("taigaPlugins"),template=_.template('

\n By clicking "Sign up", you agree to our
\n
terms of service\n and\n privacy policy.\n

'),TermsNoticeDirective=function($config){var privacyPolicyUrl,templateFn,termsOfServiceUrl;return privacyPolicyUrl=$config.get("privacyPolicyUrl"),termsOfServiceUrl=$config.get("termsOfServiceUrl"),templateFn=function(){var ctx;return privacyPolicyUrl&&termsOfServiceUrl?(ctx={termsUrl:termsOfServiceUrl,privacyUrl:privacyPolicyUrl},template(ctx)):""},{scope:{},restrict:"AE",template:templateFn}},module.directive("tgTermsNotice",["$tgConfig",TermsNoticeDirective])}.call(this),angular.module("taigaBase").value("localesEn",{checksley:{defaultMessage:"This value seems to be invalid.","type-email":"This value should be a valid email.","type-url":"This value should be a valid url.","type-urlstrict":"This value should be a valid url.","type-number":"This value should be a valid number.","type-digits":"This value should be digits.","type-dateIso":"This value should be a valid date (YYYY-MM-DD).","type-alphanum":"This value should be alphanumeric.","type-phone":"This value should be a valid phone number.",notnull:"This value should not be null.",notblank:"This value should not be blank.",required:"This value is required.",regexp:"This value seems to be invalid.",min:"This value should be greater than or equal to %s.",max:"This value should be lower than or equal to %s.",range:"This value should be between %s and %s.",minlength:"This value is too short. It should have %s characters or more.",maxlength:"This value is too long. It should have %s characters or less.",rangelength:"This value length is invalid. It should be between %s and %s characters long.",mincheck:"You must select at least %s choices.",maxcheck:"You must select %s choices or less.",rangecheck:"You must select between %s and %s choices.",equalto:"This value should be the same."},common:{subject:"Subject",save:"Save",blocked:"Blocked",cancel:"Cancel",status:"Status","new-bulk":"New bulk insert","one-item-line":"One item per line..."},pagination:{next:"Next",prev:"Previous"},"markdown-editor":{"heading-1":"First Level Heading","heading-2":"Second Level Heading","heading-3":"Third Level Heading",bold:"Bold",italic:"Italic",strike:"Strike","bulleted-list":"Bulleted List","numeric-list":"Numeric List",picture:"Picture",link:"Link",quotes:"Quotes","code-block":"Code Block / Code",preview:"Preview",help:"Help",placeholder:"Your title here...","link-placeholder":"Your text to link here..."},us:{"title-new":"New User Story","team-requirement":"Team Requirement","client-requirement":"Client Requirement"}}); +currentSearch=this.location.search(),urlfilters=this.getUrlFilters();for(filterName in urlfilters)filterValue=urlfilters[filterName],"page"!==filterName&&"orderBy"!==filterName&&"q"!==filterName&&(splittedValues="tags"===filterName?_.map((""+filterValue).split(",")):_.map((""+filterValue).split(","),function(x){return"null"===x?null:parseInt(x)}),existingValues=_.intersection(splittedValues,_.map(this.scope.filters[filterName],"id")),splittedValues.length!==existingValues.length&&this.location.search(filterName,existingValues.join()));return currentSearch!==this.location.search()?this.location.replace():void 0},IssuesController.prototype.markSelectedFilters=function(filters,urlfilters){var isSelected,j,key,len,name,obj,ref,ref1,results,searchdata,val,value;searchdata={},ref=_.omit(urlfilters,"page","orderBy");for(name in ref)for(value=ref[name],null==searchdata[name]&&(searchdata[name]={}),ref1=(""+value).split(","),j=0,len=ref1.length;len>j;j++)val=ref1[j],searchdata[name][val]=!0;isSelected=function(type,id){return null!=searchdata[type]&&searchdata[type][id]?!0:!1},results=[];for(key in filters)value=filters[key],results.push(function(){var k,len1,results1;for(results1=[],k=0,len1=value.length;len1>k;k++)obj=value[k],results1.push(obj.selected=isSelected(obj.type,obj.id)?!0:void 0);return results1}());return results},IssuesController.prototype.loadFilters=function(){var promise,urlfilters;return urlfilters=this.getUrlFilters(),urlfilters.q&&(this.scope.filtersQ=urlfilters.q),promise=this.loadMyFilters().then(function(_this){return function(myFilters){return _this.scope.filters.myFilters=myFilters,myFilters}}(this)),promise=promise.then(function(_this){return function(){return _this.rs.issues.filtersData(_this.scope.projectId)}}(this)),promise.then(function(_this){return function(data){var choicesFiltersFormat,tagsFilterFormat,usersFiltersFormat;return usersFiltersFormat=function(users,type,unknownOption){var reformatedUsers,unknownItem;return reformatedUsers=_.map(users,function(t){return{id:t[0],count:t[1],type:type,name:t[0]?_this.scope.usersById[t[0]].full_name_display:unknownOption}}),unknownItem=_.remove(reformatedUsers,function(u){return!u.id}),reformatedUsers=_.sortBy(reformatedUsers,function(u){return u.name.toUpperCase()}),unknownItem.length>0&&reformatedUsers.unshift(unknownItem[0]),reformatedUsers},choicesFiltersFormat=function(choices,type,byIdObject){return _.map(choices,function(t){return{id:t[0],name:byIdObject[t[0]].name,color:byIdObject[t[0]].color,count:t[1],type:type}})},tagsFilterFormat=function(tags){return _.map(tags,function(t){return{id:t[0],name:t[0],color:_this.scope.project.tags_colors[t[0]],count:t[1],type:"tags"}})},_this.scope.filters.statuses=choicesFiltersFormat(data.statuses,"statuses",_this.scope.issueStatusById),_this.scope.filters.severities=choicesFiltersFormat(data.severities,"severities",_this.scope.severityById),_this.scope.filters.priorities=choicesFiltersFormat(data.priorities,"priorities",_this.scope.priorityById),_this.scope.filters.assignedTo=usersFiltersFormat(data.assigned_to,"assignedTo","Unassigned"),_this.scope.filters.createdBy=usersFiltersFormat(data.created_by,"createdBy","Unknown"),_this.scope.filters.types=choicesFiltersFormat(data.types,"types",_this.scope.issueTypeById),_this.scope.filters.tags=tagsFilterFormat(data.tags),_this.removeNotExistingFiltersFromUrl(),_this.markSelectedFilters(_this.scope.filters,urlfilters),_this.rootscope.$broadcast("filters:loaded",_this.scope.filters)}}(this))},IssuesController.prototype.loadIssuesRequests=0,IssuesController.prototype.loadIssues=function(){var name,promise,ref,values;this.scope.urlFilters=this.getUrlFilters(),this.scope.httpParams={},ref=this.scope.urlFilters;for(name in ref)values=ref[name],"severities"===name?name="severity":"orderBy"===name?name="order_by":"priorities"===name?name="priority":"assignedTo"===name?name="assigned_to":"createdBy"===name?name="owner":"statuses"===name?name="status":"types"===name&&(name="type"),this.scope.httpParams[name]=values;return promise=this.rs.issues.list(this.scope.projectId,this.scope.httpParams),this.loadIssuesRequests+=1,promise.index=this.loadIssuesRequests,promise.then(function(_this){return function(data){return promise.index===_this.loadIssuesRequests&&(_this.scope.issues=data.models,_this.scope.page=data.current,_this.scope.count=data.count,_this.scope.paginatedBy=data.paginatedBy),data}}(this))},IssuesController.prototype.loadInitialData=function(){var promise;return promise=this.loadProject(),promise.then(function(_this){return function(project){return _this.fillUsersAndRoles(project.users,project.roles),_this.initializeSubscription(),_this.q.all([_this.loadFilters(),_this.loadIssues()])}}(this))},IssuesController.prototype.saveCurrentFiltersTo=function(newFilter){var deferred;return deferred=this.q.defer(),this.rs.issues.getMyFilters(this.scope.projectId).then(function(_this){return function(filters){return filters[newFilter]=_this.location.search(),_this.rs.issues.storeMyFilters(_this.scope.projectId,filters).then(function(){return deferred.resolve()})}}(this)),deferred.promise},IssuesController.prototype.deleteMyFilter=function(filter){var deferred;return deferred=this.q.defer(),this.rs.issues.getMyFilters(this.scope.projectId).then(function(_this){return function(filters){return delete filters[filter],_this.rs.issues.storeMyFilters(_this.scope.projectId,filters).then(function(){return deferred.resolve()})}}(this)),deferred.promise},IssuesController.prototype.addNewIssue=function(){return this.rootscope.$broadcast("issueform:new",this.scope.project)},IssuesController.prototype.addIssuesInBulk=function(){return this.rootscope.$broadcast("issueform:bulk",this.scope.projectId)},IssuesController}(mixOf(taiga.Controller,taiga.PageMixin,taiga.FiltersMixin)),module.controller("IssuesController",IssuesController),IssuesDirective=function($log,$location,$template){var link,linkOrdering,linkPagination,template;return template=$template.get("issue/issue-paginator.html",!0),linkPagination=function($scope,$el,$attrs,$ctrl){var $pagEl,afterCurrent,atBegin,atEnd,beforeCurrent,getNumPages,renderPagination;return afterCurrent=2,beforeCurrent=4,atBegin=2,atEnd=2,$pagEl=$el.find(".issues-paginator"),getNumPages=function(){var numPages;return numPages=$scope.count/$scope.paginatedBy,numPages=parseInt(numPages,10)=numPages)return void $pagEl.hide();for($pagEl.show(),pages=[],options={},options.pages=pages,options.showPrevious=$scope.page>1,options.showNext=!($scope.page===numPages),cpage=$scope.page,i=j=1,ref=numPages;ref>=1?ref>=j:j>=ref;i=ref>=1?++j:--j)i===cpage+afterCurrent&&numPages>cpage+afterCurrent+atEnd?pages.push({classes:"dots",type:"dots"}):i===cpage-beforeCurrent&&cpage>atBegin+beforeCurrent?pages.push({classes:"dots",type:"dots"}):i>cpage+afterCurrent&&numPages-atEnd>=i||cpage-beforeCurrent>i&&i>atBegin||pages.push(i===cpage?{classes:"active",num:i,type:"page-active"}:{classes:"page",num:i,type:"page"});return $pagEl.html(template(options))},$scope.$watch("issues",function(value){return value?renderPagination():void 0}),$el.on("click",".issues-paginator a.next",function(event){return event.preventDefault(),$scope.$apply(function(){return $ctrl.selectFilter("page",$scope.page+1),$ctrl.loadIssues()})}),$el.on("click",".issues-paginator a.previous",function(event){return event.preventDefault(),$scope.$apply(function(){return $ctrl.selectFilter("page",$scope.page-1),$ctrl.loadIssues()})}),$el.on("click",".issues-paginator li.page > a",function(event){var pagenum,target;return event.preventDefault(),target=angular.element(event.currentTarget),pagenum=target.data("pagenum"),$scope.$apply(function(){return $ctrl.selectFilter("page",pagenum),$ctrl.loadIssues()})})},linkOrdering=function($scope,$el,$attrs,$ctrl){var colHeadElement,currentOrder,icon;return currentOrder=$ctrl.getUrlFilter("orderBy")||"created_date",currentOrder&&(icon=startswith(currentOrder,"-")?"icon-caret-up":"icon-caret-down",colHeadElement=$el.find(".row.title > div[data-fieldname='"+trim(currentOrder,"-")+"']"),colHeadElement.html(colHeadElement.html()+"")),$el.on("click",".row.title > div",function(event){var finalOrder,newOrder,target;return target=angular.element(event.currentTarget),currentOrder=$ctrl.getUrlFilter("orderBy"),newOrder=target.data("fieldname"),finalOrder=currentOrder===newOrder?"-"+newOrder:newOrder,$scope.$apply(function(){return $ctrl.replaceFilter("orderBy",finalOrder),$ctrl.storeFilters(),$ctrl.loadIssues().then(function(){return $el.find(".row.title > div > span.icon").remove(),icon=startswith(finalOrder,"-")?"icon-caret-up":"icon-caret-down",target.html(target.html()+"")})})})},link=function($scope,$el,$attrs){var $ctrl;return $ctrl=$el.controller(),linkOrdering($scope,$el,$attrs,$ctrl),linkPagination($scope,$el,$attrs,$ctrl),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgIssues",["$log","$tgLocation","$tgTemplate",IssuesDirective]),IssuesFiltersDirective=function($log,$location,$rs,$confirm,$loading,$template){var link,template,templateSelected;return template=$template.get("issue/issues-filters.html",!0),templateSelected=$template.get("issue/issues-filters-selected.html",!0),link=function($scope,$el){var $ctrl,initializeSelectedFilters,renderFilters,renderSelectedFilters,selectQFilter,selectedFilters,showCategories,showFilters,toggleFilterSelection;return $ctrl=$el.closest(".wrapper").controller(),selectedFilters=[],showFilters=function(title,type){return $el.find(".filters-cats").hide(),$el.find(".filter-list").removeClass("hidden"),$el.find("h2.breadcrumb").removeClass("hidden"),$el.find("h2 a.subfilter span.title").html(title),$el.find("h2 a.subfilter span.title").prop("data-type",type)},showCategories=function(){return $el.find(".filters-cats").show(),$el.find(".filter-list").addClass("hidden"),$el.find("h2.breadcrumb").addClass("hidden")},initializeSelectedFilters=function(filters){var j,len,name,val,values;selectedFilters=[];for(name in filters)for(values=filters[name],j=0,len=values.length;len>j;j++)val=values[j],val.selected&&selectedFilters.push(val);return renderSelectedFilters(selectedFilters)},renderSelectedFilters=function(selectedFilters){var html;return _.filter(selectedFilters,function(){return function(f){return f.color?f.style="border-left: 3px solid "+f.color:void 0}}(this)),html=templateSelected({filters:selectedFilters}),$el.find(".filters-applied").html(html),selectedFilters.length>0?$el.find(".save-filters").show():$el.find(".save-filters").hide()},renderFilters=function(filters){var html;return _.filter(filters,function(){return function(f){return f.color?f.style="border-left: 3px solid "+f.color:void 0}}(this)),html=template({filters:filters}),$el.find(".filter-list").html(html)},toggleFilterSelection=function(type,id){var currentFiltersType,filter,filterId,filters;return"myFilters"===type?($rs.issues.getMyFilters($scope.projectId).then(function(data){var filters,myFilters;return myFilters=data,filters=myFilters[id],filters.page=1,$ctrl.replaceAllFilters(filters),$ctrl.storeFilters(),$ctrl.loadIssues(),$ctrl.markSelectedFilters($scope.filters,filters),initializeSelectedFilters($scope.filters)}),null):(filters=$scope.filters[type],filterId="tags"===type?taiga.toString(id):id,filter=_.find(filters,{id:filterId}),filter.selected=!filter.selected,null===id&&(id="null"),filter.selected?(selectedFilters.push(filter),$scope.$apply(function(){return $ctrl.selectFilter(type,id),$ctrl.selectFilter("page",1),$ctrl.storeFilters(),$ctrl.loadIssues()})):(selectedFilters=_.reject(selectedFilters,filter),$scope.$apply(function(){return $ctrl.unselectFilter(type,id),$ctrl.selectFilter("page",1),$ctrl.storeFilters(),$ctrl.loadIssues()})),renderSelectedFilters(selectedFilters),currentFiltersType=$el.find("h2 a.subfilter span.title").prop("data-type"),type===currentFiltersType?renderFilters(_.reject(filters,"selected")):void 0)},$scope.$on("filters:loaded",function(ctx,filters){return initializeSelectedFilters(filters)}),$scope.$on("filters:issueupdate",function(ctx,filters){var html;return html=template({filters:filters.statuses}),$el.find(".filter-list").html(html)}),selectQFilter=debounceLeading(100,function(value){return void 0!==value?($ctrl.replaceFilter("page",null),0===value.length?($ctrl.replaceFilter("q",null),$ctrl.storeFilters()):($ctrl.replaceFilter("q",value),$ctrl.storeFilters()),$ctrl.loadIssues()):void 0}),$scope.$watch("filtersQ",selectQFilter),$el.on("click",".filters-cats > ul > li > a",function(event){var tags,target;return event.preventDefault(),target=angular.element(event.currentTarget),tags=$scope.filters[target.data("type")],renderFilters(_.reject(tags,"selected")),showFilters(target.attr("title"),target.data("type"))}),$el.on("click",".filters-inner > .filters-step-cat > .breadcrumb > .back",function(event){return event.preventDefault(),showCategories($el)}),$el.on("click",".filters-applied a",function(event){var id,target,type;return event.preventDefault(),target=angular.element(event.currentTarget),id=target.data("id")||null,type=target.data("type"),toggleFilterSelection(type,id)}),$el.on("click",".filter-list .single-filter",function(event){var id,target,type;return event.preventDefault(),target=angular.element(event.currentTarget),target.toggleClass("active"),id=target.data("id")||null,type=target.data("type"),"myFilters"===type&&target.removeClass("active"),toggleFilterSelection(type,id)}),$el.on("click",".filter-list .single-filter .icon-delete",function(event){var customFilterName,message,target,title;return event.preventDefault(),event.stopPropagation(),target=angular.element(event.currentTarget),customFilterName=target.parent().data("id"),title="Delete custom filter",message="the custom filter '"+customFilterName+"'",$confirm.askOnDelete(title,message).then(function(finish){var promise;return promise=$ctrl.deleteMyFilter(customFilterName),promise.then(function(){return promise=$ctrl.loadMyFilters(),promise.then(function(filters){return finish(),$scope.filters.myFilters=filters,renderFilters($scope.filters.myFilters)}),promise.then(null,function(){return finish()})}),promise.then(null,function(){return finish(!1),$confirm.notify("error")})})}),$el.on("click",".save-filters",function(event){return event.preventDefault(),renderFilters($scope.filters.myFilters),showFilters("My filters","myFilters"),$el.find(".save-filters").hide(),$el.find(".my-filter-name").removeClass("hidden"),$el.find(".my-filter-name").focus()}),$el.on("keyup",".my-filter-name",function(event){var newFilter,promise,target;return event.preventDefault(),13===event.keyCode?(target=angular.element(event.currentTarget),newFilter=target.val(),$loading.start($el.find(".new")),promise=$ctrl.saveCurrentFiltersTo(newFilter),promise.then(function(){var loadPromise;return loadPromise=$ctrl.loadMyFilters(),loadPromise.then(function(filters){var currentfilterstype;return $loading.finish($el.find(".new")),$scope.filters.myFilters=filters,currentfilterstype=$el.find("h2 a.subfilter span.title").prop("data-type"),"myFilters"===currentfilterstype&&renderFilters($scope.filters.myFilters),$el.find(".my-filter-name").addClass("hidden"),$el.find(".save-filters").show()}),loadPromise.then(null,function(){return $loading.finish($el.find(".new")),$confirm.notify("error","Error loading custom filters")})}),promise.then(null,function(){return $loading.finish($el.find(".new")),$el.find(".my-filter-name").val(newFilter).focus().select(),$confirm.notify("error","Filter not saved")})):27===event.keyCode?($el.find(".my-filter-name").val(""),$el.find(".my-filter-name").addClass("hidden"),$el.find(".save-filters").show()):void 0})},{link:link}},module.directive("tgIssuesFilters",["$log","$tgLocation","$tgResources","$tgConfirm","$tgLoading","$tgTemplate",IssuesFiltersDirective]),IssueStatusInlineEditionDirective=function($repo,$template,$rootscope){var link,selectionTemplate,updateIssueStatus;return selectionTemplate=$template.get("issue/issue-status-inline-edition-selection.html",!0),updateIssueStatus=function($el,issue,issueStatusById){var issueStatusDom,issueStatusDomParent,status;return issueStatusDomParent=$el.find(".issue-status"),issueStatusDom=$el.find(".issue-status .issue-status-bind"),status=issueStatusById[issue.status],status?(issueStatusDom.text(status.name),issueStatusDom.prop("title",status.name),issueStatusDomParent.css("color",status.color)):void 0},link=function($scope,$el,$attrs){var $ctrl,issue;return $ctrl=$el.controller(),issue=$scope.$eval($attrs.tgIssueStatusInlineEdition),$el.on("click",".issue-status",function(event){return event.preventDefault(),event.stopPropagation(),$el.find(".pop-status").popover().open()}),$el.on("click",".status",function(event){var filter,j,len,ref,target;for(event.preventDefault(),event.stopPropagation(),target=angular.element(event.currentTarget),ref=$scope.filters.statuses,j=0,len=ref.length;len>j;j++)filter=ref[j],filter.id===issue.status&&filter.count--;return issue.status=target.data("status-id"),$el.find(".pop-status").popover().close(),updateIssueStatus($el,issue,$scope.issueStatusById),$scope.$apply(function(){var k,len1,ref1;for($repo.save(issue).then,ref1=$scope.filters.statuses,k=0,len1=ref1.length;len1>k;k++)filter=ref1[k],filter.id===issue.status&&filter.count++;return $rootscope.$broadcast("filters:issueupdate",$scope.filters)})}),taiga.bindOnce($scope,"project",function(project){return $el.append(selectionTemplate({statuses:project.issue_statuses})),updateIssueStatus($el,issue,$scope.issueStatusById),-1===project.my_permissions.indexOf("modify_issue")?($el.unbind("click"),$el.find("a").addClass("not-clickable")):void 0}),$scope.$watch($attrs.tgIssueStatusInlineEdition,function(){return function(val){return updateIssueStatus($el,val,$scope.issueStatusById)}}(this)),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgIssueStatusInlineEdition",["$tgRepo","$tgTemplate","$rootScope",IssueStatusInlineEditionDirective]),IssueAssignedToInlineEditionDirective=function($repo,$rootscope){var link,template;return template=_.template('<%- name %>\n
<%- name %>
'),link=function($scope,$el,$attrs){var $ctrl,issue,updateIssue;return updateIssue=function(issue){var ctx,member;return ctx={name:"Unassigned",imgurl:"/images/unnamed.png"},member=$scope.usersById[issue.assigned_to],member&&(ctx.imgurl=member.photo,ctx.name=member.full_name_display),$el.find(".avatar").html(template(ctx)),$el.find(".issue-assignedto").attr("title",ctx.name)},$ctrl=$el.controller(),issue=$scope.$eval($attrs.tgIssueAssignedToInlineEdition),updateIssue(issue),$el.on("click",".issue-assignedto",function(){return $rootscope.$broadcast("assigned-to:add",issue)}),taiga.bindOnce($scope,"project",function(project){return-1===project.my_permissions.indexOf("modify_issue")?($el.unbind("click"),$el.find("a").addClass("not-clickable")):void 0}),$scope.$on("assigned-to:added",function(){return function(ctx,userId,updatedIssue){return updatedIssue.id===issue.id?(updatedIssue.assigned_to=userId,$repo.save(updatedIssue),updateIssue(updatedIssue)):void 0}}(this)),$scope.$watch($attrs.tgIssueAssignedToInlineEdition,function(){return function(val){return updateIssue(val)}}(this)),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgIssueAssignedToInlineEdition",["$tgRepo","$rootScope",IssueAssignedToInlineEditionDirective])}.call(this),function(){var UsClientRequirementButtonDirective,UsStatusButtonDirective,UsStatusDisplayDirective,UsTasksProgressDisplayDirective,UsTeamRequirementButtonDirective,UserStoryDetailController,bindOnce,groupBy,mixOf,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,groupBy=this.taiga.groupBy,bindOnce=this.taiga.bindOnce,module=angular.module("taigaUserStories"),UserStoryDetailController=function(superClass){function UserStoryDetailController(scope,rootscope,repo,confirm,rs,params,q,location,log,appTitle,navUrls,analytics,tgLoader){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.log=log,this.appTitle=appTitle,this.navUrls=navUrls,this.analytics=analytics,this.scope.usRef=this.params.usref,this.scope.sectionName="User Story Details",this.initializeEventHandlers(),promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set(_this.scope.us.subject+" - "+_this.scope.project.name),_this.initializeOnDeleteGoToUrl()}}(this)),promise.then(null,this.onInitialDataError.bind(this)),promise["finally"](tgLoader.pageLoaded)}return extend(UserStoryDetailController,superClass),UserStoryDetailController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$log","$appTitle","$tgNavUrls","$tgAnalytics","tgLoader"],UserStoryDetailController.prototype.initializeEventHandlers=function(){return this.scope.$on("related-tasks:update",function(_this){return function(){return _this.loadUs(),_this.scope.tasks=_.clone(_this.scope.tasks,!1)}}(this)),this.scope.$on("attachment:create",function(_this){return function(){return _this.analytics.trackEvent("attachment","create","create attachment on userstory",1),_this.rootscope.$broadcast("history:reload")}}(this)),this.scope.$on("attachment:edit",function(_this){return function(){return _this.rootscope.$broadcast("history:reload")}}(this)),this.scope.$on("attachment:delete",function(_this){return function(){return _this.rootscope.$broadcast("history:reload")}}(this)),this.scope.$on("custom-attributes-values:edit",function(_this){return function(){return _this.rootscope.$broadcast("history:reload")}}(this))},UserStoryDetailController.prototype.initializeOnDeleteGoToUrl=function(){var ctx;return ctx={project:this.scope.project.slug},this.scope.onDeleteGoToUrl=this.navUrls.resolve("project",ctx),this.scope.project.is_backlog_activated?this.scope.us.milestone?(ctx.sprint=this.scope.sprint.slug,this.scope.onDeleteGoToUrl=this.navUrls.resolve("project-taskboard",ctx)):this.scope.onDeleteGoToUrl=this.navUrls.resolve("project-backlog",ctx):this.scope.project.is_kanban_activated?this.scope.onDeleteGoToUrl=this.navUrls.resolve("project-kanban",ctx):void 0},UserStoryDetailController.prototype.loadProject=function(){return this.rs.projects.getBySlug(this.params.pslug).then(function(_this){return function(project){return _this.scope.projectId=project.id,_this.scope.project=project,_this.scope.$emit("project:loaded",project),_this.scope.statusList=project.us_statuses,_this.scope.statusById=groupBy(project.us_statuses,function(x){return x.id}),_this.scope.taskStatusById=groupBy(project.task_statuses,function(x){return x.id}),_this.scope.membersById=groupBy(project.memberships,function(x){return x.user}),_this.scope.pointsList=_.sortBy(project.points,"order"),_this.scope.pointsById=groupBy(_this.scope.pointsList,function(e){return e.id}),project}}(this))},UserStoryDetailController.prototype.loadUs=function(){var httpParams,kanbanStaus,milestone,noMilestone;return httpParams=_.pick(this.location.search(),"milestone","no-milestone","kanban-status"),milestone=httpParams.milestone,milestone&&this.rs.userstories.storeQueryParams(this.scope.projectId,{milestone:milestone,order_by:"sprint_order"}),noMilestone=httpParams["no-milestone"],noMilestone&&this.rs.userstories.storeQueryParams(this.scope.projectId,{milestone:"null",order_by:"backlog_order"}),kanbanStaus=httpParams["kanban-status"],kanbanStaus&&this.rs.userstories.storeQueryParams(this.scope.projectId,{status:kanbanStaus,order_by:"kanban_order"}),this.rs.userstories.getByRef(this.scope.projectId,this.params.usref).then(function(_this){return function(us){var ctx;return _this.scope.us=us,_this.scope.usId=us.id,_this.scope.commentModel=us,null!=_this.scope.us.neighbors.previous.ref&&(ctx={project:_this.scope.project.slug,ref:_this.scope.us.neighbors.previous.ref},_this.scope.previousUrl=_this.navUrls.resolve("project-userstories-detail",ctx)),null!=_this.scope.us.neighbors.next.ref&&(ctx={project:_this.scope.project.slug,ref:_this.scope.us.neighbors.next.ref},_this.scope.nextUrl=_this.navUrls.resolve("project-userstories-detail",ctx)),us}}(this))},UserStoryDetailController.prototype.loadSprint=function(){return this.scope.us.milestone?this.rs.sprints.get(this.scope.us.project,this.scope.us.milestone).then(function(_this){return function(sprint){return _this.scope.sprint=sprint,sprint}}(this)):void 0},UserStoryDetailController.prototype.loadTasks=function(){return this.rs.tasks.list(this.scope.projectId,null,this.scope.usId).then(function(_this){return function(tasks){return _this.scope.tasks=tasks,tasks}}(this))},UserStoryDetailController.prototype.loadInitialData=function(){var promise;return promise=this.loadProject(),promise.then(function(_this){return function(project){return _this.fillUsersAndRoles(project.users,project.roles),_this.loadUs().then(function(){return _this.q.all([_this.loadSprint(),_this.loadTasks()])})}}(this))},UserStoryDetailController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("UserStoryDetailController",UserStoryDetailController),UsStatusDisplayDirective=function($template){var link,template;return template=$template.get("common/components/status-display.html",!0),link=function($scope,$el,$attrs){var render;return render=function(us){var html;return html=template({is_closed:us.is_closed,status:$scope.statusById[us.status]}),$el.html(html)},$scope.$watch($attrs.ngModel,function(us){return null!=us?render(us):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgUsStatusDisplay",["$tgTemplate",UsStatusDisplayDirective]),UsTasksProgressDisplayDirective=function($template){var link,template;return template=$template.get("us/us-task-progress.html",!0),link=function($scope,$el,$attrs){var render;return render=function(tasks){var html,progress,totalClosedTasks,totalTasks;return totalTasks=tasks.length,totalClosedTasks=_.filter(tasks,function(){return function(task){return $scope.taskStatusById[task.status].is_closed}}(this)).length,progress=totalTasks>0?100*totalClosedTasks/totalTasks:0,html=template({totalTasks:totalTasks,totalClosedTasks:totalClosedTasks,progress:progress}),$el.html(html)},$scope.$watch($attrs.ngModel,function(tasks){return null!=tasks?render(tasks):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgUsTasksProgressDisplay",["$tgTemplate",UsTasksProgressDisplayDirective]),UsStatusButtonDirective=function($rootScope,$repo,$confirm,$loading,$qqueue,$template){var link,template;return template=$template.get("us/us-status-button.html",!0),link=function($scope,$el,$attrs,$model){var isEditable,render,save;return isEditable=function(){return-1!==$scope.project.my_permissions.indexOf("modify_us")},render=function(){return function(us){var html,status;return status=$scope.statusById[us.status],html=template({status:status,statuses:$scope.statusList,editable:isEditable()}),$el.html(html)}}(this),save=$qqueue.bindAdd(function(){return function(status){var onError,onSuccess,us;return us=$model.$modelValue.clone(),us.status=status,$.fn.popover().closeAll(),$model.$setViewValue(us),onSuccess=function(){return $confirm.notify("success"),$rootScope.$broadcast("history:reload"),$loading.finish($el.find(".level-name"))},onError=function(){return $confirm.notify("error"),us.revert(),$model.$setViewValue(us),$loading.finish($el.find(".level-name"))},$loading.start($el.find(".level-name")),$repo.save($model.$modelValue).then(onSuccess,onError)}}(this)),$el.on("click",".status-data",function(event){return event.preventDefault(),event.stopPropagation(),isEditable()?$el.find(".pop-status").popover().open():void 0}),$el.on("click",".status",function(event){var status,target;return event.preventDefault(),event.stopPropagation(),isEditable()?(target=angular.element(event.currentTarget),status=target.data("status-id"),save(status)):void 0}),$scope.$watch($attrs.ngModel,function(us){return us?render(us):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgUsStatusButton",["$rootScope","$tgRepo","$tgConfirm","$tgLoading","$tgQqueue","$tgTemplate",UsStatusButtonDirective]),UsTeamRequirementButtonDirective=function($rootscope,$tgrepo,$confirm,$loading,$qqueue,$template){var link,template;return template=$template.get("us/us-team-requirement-button.html",!0),link=function($scope,$el,$attrs,$model){var canEdit,render,save;return canEdit=function(){return-1!==$scope.project.my_permissions.indexOf("modify_us")},render=function(us){var ctx,html;return canEdit()||us.team_requirement?(ctx={canEdit:canEdit(),isRequired:us.team_requirement},html=template(ctx),$el.html(html)):void $el.html("")},save=$qqueue.bindAdd(function(){return function(team_requirement){var promise,us;return us=$model.$modelValue.clone(),us.team_requirement=team_requirement,$model.$setViewValue(us),$loading.start($el.find("label")),promise=$tgrepo.save($model.$modelValue),promise.then(function(){return $loading.finish($el.find("label")),$rootscope.$broadcast("history:reload")}),promise.then(null,function(){return $loading.finish($el.find("label")),$confirm.notify("error"),us.revert(),$model.$setViewValue(us)})}}(this)),$el.on("click",".team-requirement",function(){var team_requirement;if(canEdit())return team_requirement=!$model.$modelValue.team_requirement,save(team_requirement)}),$scope.$watch($attrs.ngModel,function(us){return us?render(us):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgUsTeamRequirementButton",["$rootScope","$tgRepo","$tgConfirm","$tgLoading","$tgQqueue","$tgTemplate",UsTeamRequirementButtonDirective]),UsClientRequirementButtonDirective=function($rootscope,$tgrepo,$confirm,$loading,$qqueue,$template){var link,template;return template=$template.get("us/us-client-requirement-button.html",!0),link=function($scope,$el,$attrs,$model){var canEdit,render,save;return canEdit=function(){return-1!==$scope.project.my_permissions.indexOf("modify_us")},render=function(us){var ctx,html;return canEdit()||us.client_requirement?(ctx={canEdit:canEdit(),isRequired:us.client_requirement},html=template(ctx),$el.html(html)):void $el.html("")},save=$qqueue.bindAdd(function(){return function(client_requirement){var promise,us;return us=$model.$modelValue.clone(),us.client_requirement=client_requirement,$model.$setViewValue(us),$loading.start($el.find("label")),promise=$tgrepo.save($model.$modelValue),promise.then(function(){return $loading.finish($el.find("label")),$rootscope.$broadcast("history:reload")}),promise.then(null,function(){return $loading.finish($el.find("label")),$confirm.notify("error"),us.revert(),$model.$setViewValue(us)})}}(this)),$el.on("click",".client-requirement",function(){var client_requirement;if(canEdit())return client_requirement=!$model.$modelValue.client_requirement,save(client_requirement)}),$scope.$watch($attrs.ngModel,function(us){return us?render(us):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgUsClientRequirementButton",["$rootScope","$tgRepo","$tgConfirm","$tgLoading","$tgQqueue","$tgTemplate",UsClientRequirementButtonDirective])}.call(this),function(){var TaskDetailController,TaskIsIocaineButtonDirective,TaskStatusButtonDirective,TaskStatusDisplayDirective,groupBy,mixOf,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child +}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,groupBy=this.taiga.groupBy,module=angular.module("taigaTasks"),TaskDetailController=function(superClass){function TaskDetailController(scope,rootscope,repo,confirm,rs,params,q,location,log,appTitle,navUrls,analytics,tgLoader){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.log=log,this.appTitle=appTitle,this.navUrls=navUrls,this.analytics=analytics,this.scope.taskRef=this.params.taskref,this.scope.sectionName="Task Details",this.initializeEventHandlers(),promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set(_this.scope.task.subject+" - "+_this.scope.project.name),_this.initializeOnDeleteGoToUrl()}}(this)),promise.then(null,this.onInitialDataError.bind(this)),promise["finally"](tgLoader.pageLoaded)}return extend(TaskDetailController,superClass),TaskDetailController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$log","$appTitle","$tgNavUrls","$tgAnalytics","tgLoader"],TaskDetailController.prototype.initializeEventHandlers=function(){return this.scope.$on("attachment:create",function(_this){return function(){return _this.analytics.trackEvent("attachment","create","create attachment on task",1),_this.rootscope.$broadcast("history:reload")}}(this)),this.scope.$on("attachment:edit",function(_this){return function(){return _this.rootscope.$broadcast("history:reload")}}(this)),this.scope.$on("attachment:delete",function(_this){return function(){return _this.rootscope.$broadcast("history:reload")}}(this)),this.scope.$on("custom-attributes-values:edit",function(_this){return function(){return _this.rootscope.$broadcast("history:reload")}}(this))},TaskDetailController.prototype.initializeOnDeleteGoToUrl=function(){var ctx;if(ctx={project:this.scope.project.slug},this.scope.onDeleteGoToUrl=this.navUrls.resolve("project",ctx),this.scope.project.is_backlog_activated){if(this.scope.task.milestone)return ctx.sprint=this.scope.sprint.slug,this.scope.onDeleteGoToUrl=this.navUrls.resolve("project-taskboard",ctx);if(this.scope.task.us)return ctx.ref=this.scope.us.ref,this.scope.onDeleteGoToUrl=this.navUrls.resolve("project-userstories-detail",ctx)}else if(this.scope.project.is_kanban_activated&&this.scope.us)return ctx.ref=this.scope.us.ref,this.scope.onDeleteGoToUrl=this.navUrls.resolve("project-userstories-detail",ctx)},TaskDetailController.prototype.loadProject=function(){return this.rs.projects.getBySlug(this.params.pslug).then(function(_this){return function(project){return _this.scope.projectId=project.id,_this.scope.project=project,_this.scope.$emit("project:loaded",project),_this.scope.statusList=project.task_statuses,_this.scope.statusById=groupBy(project.task_statuses,function(x){return x.id}),_this.scope.membersById=groupBy(project.memberships,function(x){return x.user}),project}}(this))},TaskDetailController.prototype.loadTask=function(){return this.rs.tasks.getByRef(this.scope.projectId,this.params.taskref).then(function(_this){return function(task){var ctx;return _this.scope.task=task,_this.scope.taskId=task.id,_this.scope.commentModel=task,null!=_this.scope.task.neighbors.previous.ref&&(ctx={project:_this.scope.project.slug,ref:_this.scope.task.neighbors.previous.ref},_this.scope.previousUrl=_this.navUrls.resolve("project-tasks-detail",ctx)),null!=_this.scope.task.neighbors.next.ref&&(ctx={project:_this.scope.project.slug,ref:_this.scope.task.neighbors.next.ref},_this.scope.nextUrl=_this.navUrls.resolve("project-tasks-detail",ctx)),task}}(this))},TaskDetailController.prototype.loadSprint=function(){return this.scope.task.milestone?this.rs.sprints.get(this.scope.task.project,this.scope.task.milestone).then(function(_this){return function(sprint){return _this.scope.sprint=sprint,sprint}}(this)):void 0},TaskDetailController.prototype.loadUserStory=function(){return this.scope.task.user_story?this.rs.userstories.get(this.scope.task.project,this.scope.task.user_story).then(function(_this){return function(us){return _this.scope.us=us,us}}(this)):void 0},TaskDetailController.prototype.loadInitialData=function(){var promise;return promise=this.loadProject(),promise.then(function(_this){return function(project){return _this.fillUsersAndRoles(project.users,project.roles),_this.loadTask().then(function(){return _this.q.all([_this.loadSprint(),_this.loadUserStory()])})}}(this))},TaskDetailController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("TaskDetailController",TaskDetailController),TaskStatusDisplayDirective=function($template){var link,template;return template=$template.get("common/components/status-display.html",!0),link=function($scope,$el,$attrs){var render;return render=function(task){var html,status;return status=$scope.statusById[task.status],html=template({is_closed:status.is_closed,status:status}),$el.html(html)},$scope.$watch($attrs.ngModel,function(task){return null!=task?render(task):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgTaskStatusDisplay",["$tgTemplate",TaskStatusDisplayDirective]),TaskStatusButtonDirective=function($rootScope,$repo,$confirm,$loading,$qqueue){var link,template;return template=_.template('
\n \n <%- status.name %>\n <% if(editable){ %><% }%>\n status\n\n
    \n <% _.each(statuses, function(st) { %>\n
  • <%- st.name %>
  • \n <% }); %>\n
\n
'),link=function($scope,$el,$attrs,$model){var isEditable,render,save;return isEditable=function(){return-1!==$scope.project.my_permissions.indexOf("modify_task")},render=function(){return function(task){var html,status;return status=$scope.statusById[task.status],html=template({status:status,statuses:$scope.statusList,editable:isEditable()}),$el.html(html)}}(this),save=$qqueue.bindAdd(function(){return function(status){var onError,onSuccess,task;return task=$model.$modelValue.clone(),task.status=status,$model.$setViewValue(task),onSuccess=function(){return $confirm.notify("success"),$rootScope.$broadcast("history:reload"),$loading.finish($el.find(".level-name"))},onError=function(){return $confirm.notify("error"),task.revert(),$model.$setViewValue(task),$loading.finish($el.find(".level-name"))},$loading.start($el.find(".level-name")),$repo.save($model.$modelValue).then(onSuccess,onError)}}(this)),$el.on("click",".status-data",function(event){return event.preventDefault(),event.stopPropagation(),isEditable()?$el.find(".pop-status").popover().open():void 0}),$el.on("click",".status",function(event){var target;return event.preventDefault(),event.stopPropagation(),isEditable()?(target=angular.element(event.currentTarget),$.fn.popover().closeAll(),save(target.data("status-id"))):void 0}),$scope.$watch($attrs.ngModel,function(task){return task?render(task):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgTaskStatusButton",["$rootScope","$tgRepo","$tgConfirm","$tgLoading","$tgQqueue",TaskStatusButtonDirective]),TaskIsIocaineButtonDirective=function($rootscope,$tgrepo,$confirm,$loading,$qqueue){var link,template;return template=_.template('
\n \n \n
'),link=function($scope,$el,$attrs,$model){var isEditable,render,save;return isEditable=function(){return-1!==$scope.project.my_permissions.indexOf("modify_task")},render=function(task){var ctx,html;return isEditable()||task.is_iocaine?(ctx={isIocaine:task.is_iocaine,isEditable:isEditable()},html=template(ctx),$el.html(html)):void $el.html("")},save=$qqueue.bindAdd(function(){return function(is_iocaine){var promise,task;return task=$model.$modelValue.clone(),task.is_iocaine=is_iocaine,$model.$setViewValue(task),$loading.start($el.find("label")),promise=$tgrepo.save(task),promise.then(function(){return $confirm.notify("success"),$rootscope.$broadcast("history:reload")}),promise.then(null,function(){return task.revert(),$model.$setViewValue(task),$confirm.notify("error")}),promise["finally"](function(){return $loading.finish($el.find("label"))})}}(this)),$el.on("click",".is-iocaine",function(){var is_iocaine;if(isEditable())return is_iocaine=!$model.$modelValue.is_iocaine,save(is_iocaine)}),$scope.$watch($attrs.ngModel,function(task){return task?render(task):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgTaskIsIocaineButton",["$rootScope","$tgRepo","$tgConfirm","$tgLoading","$tgQqueue",TaskIsIocaineButtonDirective])}.call(this),function(){var LeaveProjectDirective,TeamController,TeamFiltersDirective,TeamMemberCurrentUserDirective,TeamMemberStatsDirective,TeamMembersDirective,mixOf,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,module=angular.module("taigaTeam"),TeamController=function(superClass){function TeamController(scope,rootscope,repo,rs,params,q,location,navUrls,appTitle,auth,tgLoader){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.rs=rs,this.params=params,this.q=q,this.location=location,this.navUrls=navUrls,this.appTitle=appTitle,this.auth=auth,this.scope.sectionName="Team",promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Team - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this)),promise["finally"](tgLoader.pageLoaded)}return extend(TeamController,superClass),TeamController.$inject=["$scope","$rootScope","$tgRepo","$tgResources","$routeParams","$q","$location","$tgNavUrls","$appTitle","$tgAuth","tgLoader"],TeamController.prototype.setRole=function(role){return this.scope.filtersRole=role?role:null},TeamController.prototype.loadMembers=function(){return this.rs.memberships.list(this.scope.projectId,{},!1).then(function(_this){return function(data){var currentUser,i,len,membership,ref;for(currentUser=_this.auth.getUser(),null!=currentUser&&null==currentUser.photo&&(currentUser.photo="/images/unnamed.png"),_this.scope.currentUser=_.find(data,function(membership){return null!=currentUser&&membership.user===currentUser.id}),_this.scope.totals={},_.forEach(data,function(membership){return _this.scope.totals[membership.user]=0}),_this.scope.memberships=_.filter(data,function(membership){return membership.user&&(null==currentUser||membership.user!==currentUser.id)&&membership.is_user_active?membership:void 0}),ref=_this.scope.memberships,i=0,len=ref.length;len>i;i++)membership=ref[i],null==membership.photo&&(membership.photo="/images/unnamed.png");return data}}(this))},TeamController.prototype.loadProject=function(){return this.rs.projects.getBySlug(this.params.pslug).then(function(_this){return function(project){return _this.scope.projectId=project.id,_this.scope.project=project,_this.scope.$emit("project:loaded",project),_this.scope.issuesEnabled=project.is_issues_activated,_this.scope.tasksEnabled=project.is_kanban_activated||project.is_backlog_activated,_this.scope.wikiEnabled=project.is_wiki_activated,project}}(this))},TeamController.prototype.loadMemberStats=function(){return this.rs.projects.memberStats(this.scope.projectId).then(function(_this){return function(stats){var totals;return totals={},_.forEach(_this.scope.totals,function(total,userId){var vals;return vals=_.map(stats,function(memberStats){return memberStats[userId]}),total=_.reduce(vals,function(sum,el){return sum+el}),_this.scope.totals[userId]=total}),_this.scope.stats=_this.processStats(stats),_this.scope.stats.totals=_this.scope.totals}}(this))},TeamController.prototype.processStat=function(stat){var max,min,singleStat;return max=_.max(stat),min=_.min(stat),singleStat=_.map(stat,function(value,key){return value===min?[key,.1]:value===max?[key,1]:[key,.5*value/max]}),singleStat=_.object(singleStat)},TeamController.prototype.processStats=function(stats){var key,value;for(key in stats)value=stats[key],stats[key]=this.processStat(value);return stats},TeamController.prototype.loadInitialData=function(){var promise;return promise=this.loadProject(),promise.then(function(_this){return function(project){return _this.fillUsersAndRoles(project.users,project.roles),_this.loadMembers().then(function(){return _this.loadMemberStats()})}}(this))},TeamController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("TeamController",TeamController),TeamFiltersDirective=function(){return{templateUrl:"team/team-filter.html"}},module.directive("tgTeamFilters",[TeamFiltersDirective]),TeamMemberStatsDirective=function(){return{templateUrl:"team/team-member-stats.html",scope:{stats:"=",userId:"=user",issuesEnabled:"=issuesenabled",tasksEnabled:"=tasksenabled",wikiEnabled:"=wikienabled"}}},module.directive("tgTeamMemberStats",TeamMemberStatsDirective),TeamMemberCurrentUserDirective=function(){return{templateUrl:"team/team-member-current-user.html",scope:{projectId:"=projectid",currentUser:"=currentuser",stats:"=",issuesEnabled:"=issuesenabled",tasksEnabled:"=tasksenabled",wikiEnabled:"=wikienabled"}}},module.directive("tgTeamCurrentUser",TeamMemberCurrentUserDirective),TeamMembersDirective=function(){var template;return template="team/team-members.html",{templateUrl:template,scope:{memberships:"=",filtersQ:"=filtersq",filtersRole:"=filtersrole",stats:"=",issuesEnabled:"=issuesenabled",tasksEnabled:"=tasksenabled",wikiEnabled:"=wikienabled"}}},module.directive("tgTeamMembers",TeamMembersDirective),LeaveProjectDirective=function($repo,$confirm,$location,$rs,$navurls){var link;return link=function($scope,$el,$attrs){return $scope.leave=function(){return $confirm.ask("Leave this project","Are you sure you want to leave the project?").then(function(){return function(finish){var promise;return promise=$rs.projects.leave($attrs.projectid),promise.then(function(){return finish(),$confirm.notify("success"),$location.path($navurls.resolve("home"))}),promise.then(null,function(response){return finish(),$confirm.notify("error",response.data._error_message)})}}(this))}},{scope:{},templateUrl:"team/leave-project.html",link:link}},module.directive("tgLeaveProject",["$tgRepo","$tgConfirm","$tgLocation","$tgResources","$tgNavUrls",LeaveProjectDirective]),module.filter("membersRoleFilter",function(){return function(input,filtersRole){return null!=filtersRole?_.filter(input,{role:filtersRole.id}):input}})}.call(this),function(){var EditableWikiContentDirective,WikiDetailController,WikiSummaryDirective,bindOnce,debounce,groupBy,mixOf,module,taiga,unslugify,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,groupBy=this.taiga.groupBy,bindOnce=this.taiga.bindOnce,unslugify=this.taiga.unslugify,debounce=this.taiga.debounce,module=angular.module("taigaWiki"),WikiDetailController=function(superClass){function WikiDetailController(scope,rootscope,repo,model,confirm,rs,params,q,location,filter,log,appTitle,navUrls,analytics,tgLoader){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.model=model,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.filter=filter,this.log=log,this.appTitle=appTitle,this.navUrls=navUrls,this.analytics=analytics,this.scope.projectSlug=this.params.pslug,this.scope.wikiSlug=this.params.slug,this.scope.sectionName="Wiki",promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Wiki - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this)),promise["finally"](tgLoader.pageLoaded)}return extend(WikiDetailController,superClass),WikiDetailController.$inject=["$scope","$rootScope","$tgRepo","$tgModel","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$filter","$log","$appTitle","$tgNavUrls","$tgAnalytics","tgLoader"],WikiDetailController.prototype.loadProject=function(){return this.rs.projects.getBySlug(this.params.pslug).then(function(_this){return function(project){return project.is_wiki_activated||_this.location.path(_this.navUrls.resolve("permission-denied")),_this.scope.projectId=project.id,_this.scope.project=project,_this.scope.$emit("project:loaded",project),_this.scope.membersById=groupBy(project.memberships,function(x){return x.user}),project}}(this))},WikiDetailController.prototype.loadWiki=function(){var promise;return promise=this.rs.wiki.getBySlug(this.scope.projectId,this.params.slug),promise.then(function(_this){return function(wiki){return _this.scope.wiki=wiki,_this.scope.wikiId=wiki.id,_this.scope.wiki}}(this)),promise.then(null,function(_this){return function(){var data;return _this.scope.wikiId=null,-1===_this.scope.project.my_permissions.indexOf("add_wiki_page")?null:(data={project:_this.scope.projectId,slug:_this.scope.wikiSlug,content:""},_this.scope.wiki=_this.model.make_model("wiki",data),_this.scope.wiki)}}(this))},WikiDetailController.prototype.loadWikiLinks=function(){return this.rs.wiki.listLinks(this.scope.projectId).then(function(_this){return function(wikiLinks){return _this.scope.wikiLinks=wikiLinks}}(this))},WikiDetailController.prototype.loadInitialData=function(){var promise;return promise=this.loadProject(),promise.then(function(_this){return function(project){return _this.fillUsersAndRoles(project.users,project.roles),_this.q.all([_this.loadWikiLinks(),_this.loadWiki()])}}(this))},WikiDetailController.prototype["delete"]=function(){var message,title;return title="Delete Wiki Page",message=unslugify(this.scope.wiki.slug),this.confirm.askOnDelete(title,message).then(function(_this){return function(finish){var onError,onSuccess;return onSuccess=function(){var ctx;return finish(),ctx={project:_this.scope.projectSlug},_this.location.path(_this.navUrls.resolve("project-wiki",ctx)),_this.confirm.notify("success")},onError=function(){return finish(!1),_this.confirm.notify("error")},_this.repo.remove(_this.scope.wiki).then(onSuccess,onError)}}(this))},WikiDetailController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("WikiDetailController",WikiDetailController),WikiSummaryDirective=function($log,$template){var link,template;return template=$template.get("wiki/wiki-summary.html",!0),link=function($scope,$el,$attrs){var render;return render=function(wiki){var ctx,html,user;return null==$scope.usersById?$log.error("WikiSummaryDirective requires userById set in scope."):user=$scope.usersById[wiki.last_modifier],user=void 0===user?{name:"unknown",imgUrl:"/images/unnamed.png"}:{name:user.full_name_display,imgUrl:user.photo},ctx={totalEditions:wiki.editions,lastModifiedDate:moment(wiki.modified_date).format("DD MMM YYYY HH:mm"),user:user},html=template(ctx),$el.html(html)},$scope.$watch($attrs.ngModel,function(wikiPage){return wikiPage?render(wikiPage):void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgWikiSummary",["$log","$tgTemplate",WikiSummaryDirective]),EditableWikiContentDirective=function($window,$document,$repo,$confirm,$loading,$analytics,$qqueue){var link;return link=function($scope,$el,$attrs,$model){var cancelEdition,disableEdition,getSelectedText,isEditable,save,switchToEditMode,switchToReadMode;return isEditable=function(){return-1!==$scope.project.my_permissions.indexOf("modify_wiki_page")},switchToEditMode=function(){return $el.find(".edit-wiki-content").show(),$el.find(".view-wiki-content").hide(),$el.find("textarea").focus()},switchToReadMode=function(){return $el.find(".edit-wiki-content").hide(),$el.find(".view-wiki-content").show()},disableEdition=function(){return $el.find(".view-wiki-content .edit").remove(),$el.find(".edit-wiki-content").remove()},cancelEdition=function(){return $model.$modelValue.id?($scope.$apply(function(){return function(){return $model.$modelValue.revert()}}(this)),switchToReadMode()):void 0},getSelectedText=function(){return $window.getSelection?$window.getSelection().toString():$document.selection?$document.selection.createRange().text:null},save=$qqueue.bindAdd(function(wiki){var onError,onSuccess,promise;return onSuccess=function(wikiPage){return null==wiki.id&&$analytics.trackEvent("wikipage","create","create wiki page",1),$model.$setViewValue(wikiPage),$confirm.notify("success"),switchToReadMode()},onError=function(){return $confirm.notify("error")},$loading.start($el.find(".save-container")),promise=null!=wiki.id?$repo.save(wiki).then(onSuccess,onError):$repo.create("wiki",wiki).then(onSuccess,onError),promise["finally"](function(){return $loading.finish($el.find(".save-container"))})}),$el.on("mousedown",".view-wiki-content",function(event){var target;target=angular.element(event.target),isEditable()&&2===event.button}),$el.on("mouseup",".view-wiki-content",function(event){var target;return target=angular.element(event.target),getSelectedText()||!isEditable()||target.is("a")||target.is("pre")?void 0:switchToEditMode()}),$el.on("click",".save",debounce(2e3,function(){return save($scope.wiki)})),$el.on("click",".cancel",function(){return cancelEdition()}),$el.on("keydown","textarea",function(event){return 27===event.keyCode?cancelEdition():void 0}),$scope.$watch($attrs.ngModel,function(wikiPage){return wikiPage?isEditable()?($el.addClass("editable"),null==wikiPage.id?switchToEditMode():void 0):disableEdition():void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,restrict:"EA",require:"ngModel",templateUrl:"wiki/editable-wiki-content.html"}},module.directive("tgEditableWikiContent",["$window","$document","$tgRepo","$tgConfirm","$tgLoading","$tgAnalytics","$tgQqueue",EditableWikiContentDirective])}.call(this),function(){var WikiNavDirective,bindOnce,groupBy,mixOf,module,slugify,taiga,unslugify;taiga=this.taiga,mixOf=this.taiga.mixOf,groupBy=this.taiga.groupBy,bindOnce=this.taiga.bindOnce,slugify=this.taiga.slugify,unslugify=this.taiga.slugify,module=angular.module("taigaWiki"),WikiNavDirective=function($tgrepo,$log,$location,$confirm,$navUrls,$analytics,$loading,$template){var link,template;return template=$template.get("wiki/wiki-nav.html",!0),link=function($scope,$el,$attrs){var $ctrl,render;return $ctrl=$el.controller(),null==$attrs.ngModel?$log.error("WikiNavDirective: no ng-model attr is defined"):(render=function(wikiLinks){var addWikiLinkPermission,deleteWikiLinkPermission,html;return addWikiLinkPermission=$scope.project.my_permissions.indexOf("add_wiki_link")>-1,deleteWikiLinkPermission=$scope.project.my_permissions.indexOf("delete_wiki_link")>-1,html=template({wikiLinks:wikiLinks,projectSlug:$scope.projectSlug,addWikiLinkPermission:addWikiLinkPermission,deleteWikiLinkPermission:deleteWikiLinkPermission}),$el.off(),$el.html(html),$el.on("click",".wiki-link .link-title",function(event){var linkId,linkSlug,target;return event.preventDefault(),target=angular.element(event.currentTarget),linkId=target.parents(".wiki-link").data("id"),linkSlug=$scope.wikiLinks[linkId].href,$scope.$apply(function(){var ctx;return ctx={project:$scope.projectSlug,slug:linkSlug},$location.path($navUrls.resolve("project-wiki-page",ctx))})}),$el.on("click",".add-button",function(event){return event.preventDefault(),$el.find(".new").removeClass("hidden"),$el.find(".new input").focus(),$el.find(".add-button").hide()}),$el.on("click",".wiki-link .icon-delete",function(event){var linkId,message,target,title;return event.preventDefault(),event.stopPropagation(),target=angular.element(event.currentTarget),linkId=target.parents(".wiki-link").data("id"),title="Delete Wiki Link",message=$scope.wikiLinks[linkId].title,$confirm.askOnDelete(title,message).then(function(){return function(finish){var promise;return promise=$tgrepo.remove($scope.wikiLinks[linkId]),promise.then(function(){return promise=$ctrl.loadWikiLinks(),promise.then(function(){return finish(),render($scope.wikiLinks)}),promise.then(null,function(){return finish()})}),promise.then(null,function(){return finish(!1),$confirm.notify("error")})}}(this))}),$el.on("keyup",".new input",function(event){var newLink,promise,target;return event.preventDefault(),13===event.keyCode?(target=angular.element(event.currentTarget),newLink=target.val(),$loading.start($el.find(".new")),promise=$tgrepo.create("wiki-links",{project:$scope.projectId,title:newLink,href:slugify(newLink)}),promise.then(function(){var loadPromise;return $analytics.trackEvent("wikilink","create","create wiki link",1),loadPromise=$ctrl.loadWikiLinks(),loadPromise.then(function(){return $loading.finish($el.find(".new")),$el.find(".new").addClass("hidden"),$el.find(".new input").val(""),$el.find(".add-button").show(),render($scope.wikiLinks)}),loadPromise.then(null,function(){return $loading.finish($el.find(".new")),$el.find(".new").addClass("hidden"),$el.find(".new input").val(""),$el.find(".add-button").show(),$confirm.notify("error","Error loading wiki links")})}),promise.then(null,function(error){var ref;return $loading.finish($el.find(".new")),$el.find(".new input").val(newLink),$el.find(".new input").focus().select(),null!=(null!=error&&null!=(ref=error.__all__)?ref[0]:void 0)?$confirm.notify("error","The link already exists"):$confirm.notify("error")})):27===event.keyCode?(target=angular.element(event.currentTarget),$el.find(".new").addClass("hidden"),$el.find(".new input").val(""),$el.find(".add-button").show()):void 0})},bindOnce($scope,$attrs.ngModel,render))},{link:link}},module.directive("tgWikiNav",["$tgRepo","$log","$tgLocation","$tgConfirm","$tgNavUrls","$tgAnalytics","$tgLoading","$tgTemplate",WikiNavDirective])}.call(this),function(){var CreateMembersDirective,MAX_MEMBERSHIP_FIELDSETS,debounce,module,taiga;taiga=this.taiga,debounce=this.taiga.debounce,module=angular.module("taigaKanban"),MAX_MEMBERSHIP_FIELDSETS=4,CreateMembersDirective=function($rs,$rootScope,$confirm,$loading,lightboxService){var extraTextTemplate,link,template;return extraTextTemplate='
\n \n
',template=_.template('
\n
\n data-required="true" <% } %> data-type="email" />\n
\n
\n \n \n
\n
'),link=function($scope,$el){var createFieldSet,resetForm,submit,submitButton;return createFieldSet=function(required){var ctx;return null==required&&(required=!0),ctx={roleList:$scope.roles,required:required},template(ctx)},resetForm=function(){var fieldSet,invitations;return $el.find("form textarea").remove(""),$el.find("form .add-member-wrapper").remove(),invitations=$el.find(".add-member-forms"),invitations.html(extraTextTemplate),fieldSet=createFieldSet(),invitations.prepend(fieldSet)},$scope.$on("membersform:new",function(){return resetForm(),lightboxService.open($el)}),$scope.$on("$destroy",function(){return $el.off()}),$el.on("click",".delete-fieldset",function(event){var fieldSet,lastActionButton,target;return event.preventDefault(),target=angular.element(event.currentTarget),fieldSet=target.closest(".add-member-wrapper"),fieldSet.remove(),lastActionButton=$el.find("fieldset:last > a"),lastActionButton.hasClass("icon-delete delete-fieldset")?lastActionButton.removeClass("icon-delete delete-fieldset").addClass("icon-plus add-fieldset"):void 0}),$el.on("click",".add-fieldset",function(event){var fieldSet,newFieldSet,target;return event.preventDefault(),target=angular.element(event.currentTarget),fieldSet=target.closest(".add-member-wrapper"),target.removeClass("icon-plus add-fieldset").addClass("icon-delete delete-fieldset"),newFieldSet=createFieldSet(!1),fieldSet.after(newFieldSet),$el.find(".add-member-wrapper").length===MAX_MEMBERSHIP_FIELDSETS?$el.find(".add-member-wrapper fieldset:last > a").removeClass("icon-plus add-fieldset").addClass("icon-delete delete-fieldset"):void 0}),submit=debounce(2e3,function(){return function(event){var form,invitation_extra_text,invitations,memberWrappers,onError,onSuccess;return event.preventDefault(),$loading.start(submitButton),onSuccess=function(){return $loading.finish(submitButton),lightboxService.close($el),$confirm.notify("success"),$rootScope.$broadcast("membersform:new:success")},onError=function(){return $loading.finish(submitButton),lightboxService.close($el),$confirm.notify("error"),$rootScope.$broadcast("membersform:new:error")},form=$el.find("form").checksley(),form.destroy(),form.initialize(),form.validate()?(memberWrappers=$el.find("form .add-member-wrapper"),memberWrappers=_.filter(memberWrappers,function(mw){return angular.element(mw).find("input").hasClass("checksley-ok")}),invitations=_.map(memberWrappers,function(mw){var email,memberWrapper,role;return memberWrapper=angular.element(mw),email=memberWrapper.find("input"),role=memberWrapper.find("select"),{email:email.val(),role_id:role.val()}}),invitations.length?(invitation_extra_text=$el.find("form textarea").val(),$rs.memberships.bulkCreateMemberships($scope.project.id,invitations,invitation_extra_text).then(onSuccess,onError)):void 0):void 0}}(this)),submitButton=$el.find(".submit-button"),$el.on("submit","form",submit)},{link:link}},module.directive("tgLbCreateMembers",["$tgResources","$rootScope","$tgConfirm","$tgLoading","lightboxService",CreateMembersDirective])}.call(this),function(){var MembershipsController,MembershipsDirective,MembershipsRowActionsDirective,MembershipsRowAdminCheckboxDirective,MembershipsRowAvatarDirective,MembershipsRowRoleSelectorDirective,bindMethods,mixOf,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,bindMethods=this.taiga.bindMethods,module=angular.module("taigaAdmin"),MembershipsController=function(superClass){function MembershipsController(scope,rootscope,repo,confirm,rs,params,q,location,navUrls,analytics,appTitle){var promise; +this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.navUrls=navUrls,this.analytics=analytics,this.appTitle=appTitle,bindMethods(this),this.scope.sectionName="Manage Members",this.scope.project={},this.scope.filters={},promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Membership - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this)),this.scope.$on("membersform:new:success",function(_this){return function(){return _this.loadMembers(),_this.analytics.trackEvent("membership","create","create memberships on admin",1)}}(this))}return extend(MembershipsController,superClass),MembershipsController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$tgNavUrls","$tgAnalytics","$appTitle"],MembershipsController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return project.i_am_owner||_this.location.path(_this.navUrls.resolve("permission-denied")),_this.scope.project=project,_this.scope.$emit("project:loaded",project),project}}(this))},MembershipsController.prototype.loadMembers=function(){var httpFilters;return httpFilters=this.getUrlFilters(),this.rs.memberships.list(this.scope.projectId,httpFilters).then(function(_this){return function(data){return _this.scope.memberships=_.filter(data.models,function(membership){return null===membership.user||membership.is_user_active}),_this.scope.page=data.current,_this.scope.count=data.count,_this.scope.paginatedBy=data.paginatedBy,data}}(this))},MembershipsController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this)).then(function(_this){return function(){return _this.loadUsersAndRoles()}}(this)).then(function(_this){return function(){return _this.loadMembers()}}(this))},MembershipsController.prototype.getUrlFilters=function(){var filters;return filters=_.pick(this.location.search(),"page"),filters.page||(filters.page=1),filters},MembershipsController.prototype.addNewMembers=function(){return this.rootscope.$broadcast("membersform:new")},MembershipsController}(mixOf(taiga.Controller,taiga.PageMixin,taiga.FiltersMixin)),module.controller("MembershipsController",MembershipsController),MembershipsDirective=function($template){var link,linkPagination,template;return template=$template.get("admin/admin-membership-paginator.html",!0),linkPagination=function($scope,$el,$attrs,$ctrl){var $pagEl,afterCurrent,atBegin,atEnd,beforeCurrent,getNumPages,renderPagination;return afterCurrent=2,beforeCurrent=4,atBegin=2,atEnd=2,$pagEl=$el.find(".memberships-paginator"),getNumPages=function(){var numPages;return numPages=$scope.count/$scope.paginatedBy,numPages=parseInt(numPages,10)=numPages)return void $pagEl.hide();for(pages=[],options={},options.pages=pages,options.showPrevious=$scope.page>1,options.showNext=!($scope.page===numPages),cpage=$scope.page,i=j=1,ref=numPages;ref>=1?ref>=j:j>=ref;i=ref>=1?++j:--j)i===cpage+afterCurrent&&numPages>cpage+afterCurrent+atEnd?pages.push({classes:"dots",type:"dots"}):i===cpage-beforeCurrent&&cpage>atBegin+beforeCurrent?pages.push({classes:"dots",type:"dots"}):i>cpage+afterCurrent&&numPages-atEnd>=i||cpage-beforeCurrent>i&&i>atBegin||pages.push(i===cpage?{classes:"active",num:i,type:"page-active"}:{classes:"page",num:i,type:"page"});return $pagEl.html(template(options))},$scope.$watch("memberships",function(value){return value?renderPagination():void 0}),$el.on("click",".memberships-paginator a.next",function(event){return event.preventDefault(),$scope.$apply(function(){return $ctrl.selectFilter("page",$scope.page+1),$ctrl.loadMembers()})}),$el.on("click",".memberships-paginator a.previous",function(event){return event.preventDefault(),$scope.$apply(function(){return $ctrl.selectFilter("page",$scope.page-1),$ctrl.loadMembers()})}),$el.on("click",".memberships-paginator li.page > a",function(event){var pagenum,target;return event.preventDefault(),target=angular.element(event.currentTarget),pagenum=target.data("pagenum"),$scope.$apply(function(){return $ctrl.selectFilter("page",pagenum),$ctrl.loadMembers()})})},link=function($scope,$el,$attrs){var $ctrl;return $ctrl=$el.controller(),linkPagination($scope,$el,$attrs,$ctrl),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgMemberships",["$tgTemplate",MembershipsDirective]),MembershipsRowAvatarDirective=function($log,$template){var link,template;return template=$template.get("admin/memberships-row-avatar.html",!0),link=function($scope,$el,$attrs){var member,render;return render=function(member){var ctx,html;return ctx={full_name:member.full_name?member.full_name:"",email:member.user_email?member.user_email:member.email,imgurl:member.photo?member.photo:"/images/unnamed.png"},html=template(ctx),$el.html(html)},null==$attrs.tgMembershipsRowAvatar?$log.error("MembershipsRowAvatarDirective: the directive need a member"):(member=$scope.$eval($attrs.tgMembershipsRowAvatar),render(member),$scope.$on("$destroy",function(){return $el.off()}))},{link:link}},module.directive("tgMembershipsRowAvatar",["$log","$tgTemplate",MembershipsRowAvatarDirective]),MembershipsRowAdminCheckboxDirective=function($log,$repo,$confirm,$template){var link,template;return template=$template.get("admin/admin-memberships-row-checkbox.html",!0),link=function($scope,$el,$attrs){var html,member,render;return render=function(member){var ctx,html;return ctx={inputId:"is-admin-"+member.id},html=template(ctx),$el.html(html)},null==$attrs.tgMembershipsRowAdminCheckbox?$log.error("MembershipsRowAdminCheckboxDirective: the directive need a member"):(member=$scope.$eval($attrs.tgMembershipsRowAdminCheckbox),html=render(member),member.is_owner&&$el.find(":checkbox").prop("checked",!0),$el.on("click",":checkbox",function(){return function(event){var onError,onSuccess,target;return onSuccess=function(){return $confirm.notify("success")},onError=function(data){return member.revert(),$el.find(":checkbox").prop("checked",member.is_owner),$confirm.notify("error",data.is_owner[0])},target=angular.element(event.currentTarget),member.is_owner=target.prop("checked"),$repo.save(member).then(onSuccess,onError)}}(this)),$scope.$on("$destroy",function(){return $el.off()}))},{link:link}},module.directive("tgMembershipsRowAdminCheckbox",["$log","$tgRepo","$tgConfirm","$tgTemplate",MembershipsRowAdminCheckboxDirective]),MembershipsRowRoleSelectorDirective=function($log,$repo,$confirm){var link,template;return template=_.template(''),link=function($scope,$el,$attrs){var $ctrl,html,member,render;return render=function(member){var ctx,html;return ctx={roleList:$scope.roles,selectedRole:member.role},html=template(ctx),$el.html(html)},null==$attrs.tgMembershipsRowRoleSelector?$log.error("MembershipsRowRoleSelectorDirective: the directive need a member"):($ctrl=$el.controller(),member=$scope.$eval($attrs.tgMembershipsRowRoleSelector),html=render(member),$el.on("change","select",function(){return function(event){var newRole,onError,onSuccess,target;return onSuccess=function(){return $confirm.notify("success")},onError=function(){return $confirm.notify("error")},target=angular.element(event.currentTarget),newRole=parseInt(target.val(),10),member.role!==newRole?(member.role=newRole,$repo.save(member).then(onSuccess,onError)):void 0}}(this)),$scope.$on("$destroy",function(){return $el.off()}))},{link:link}},module.directive("tgMembershipsRowRoleSelector",["$log","$tgRepo","$tgConfirm",MembershipsRowRoleSelectorDirective]),MembershipsRowActionsDirective=function($log,$repo,$rs,$confirm){var activedTemplate,link,pendingTemplate;return activedTemplate=_.template('
\n Active\n
\n\n \n'),pendingTemplate=_.template('\n Pending\n \n\n\n \n'),link=function($scope,$el,$attrs){var $ctrl,member,render;return render=function(member){var html;return html=member.user?activedTemplate():pendingTemplate(),$el.html(html)},null==$attrs.tgMembershipsRowActions?$log.error("MembershipsRowActionsDirective: the directive need a member"):($ctrl=$el.controller(),member=$scope.$eval($attrs.tgMembershipsRowActions),render(member),$el.on("click",".pending",function(event){var onError,onSuccess;return event.preventDefault(),onSuccess=function(){return $confirm.notify("success","We've sent the invitationi again to '"+$scope.member.email+"'.")},onError=function(){return $confirm.notify("error","We haven't sent the invitation.")},$rs.memberships.resendInvitation($scope.member.id).then(onSuccess,onError)}),$el.on("click",".delete",function(event){var message,title;return event.preventDefault(),title="Delete member",message=member.user?member.full_name:"the invitation to "+member.email,$confirm.askOnDelete(title,message).then(function(finish){var onError,onSuccess;return onSuccess=function(){return finish(),$ctrl.loadMembers(),$confirm.notify("success",null,"We've deleted "+message+".")},onError=function(){return finish(!1),$confirm.notify("error",null,"We have not been able to delete "+message+".")},$repo.remove(member).then(onSuccess,onError)})}),$scope.$on("$destroy",function(){return $el.off()}))},{link:link}},module.directive("tgMembershipsRowActions",["$log","$tgRepo","$tgResources","$tgConfirm",MembershipsRowActionsDirective])}.call(this),function(){var AdminNavigationDirective,module;AdminNavigationDirective=function(){var link;return link=function($scope,$el,$attrs){var section;return section=$attrs.tgAdminNavigation,$el.find(".active").removeClass("active"),$el.find("#adminmenu-"+section+" a").addClass("active"),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module=angular.module("taigaAdmin"),module.directive("tgAdminNavigation",AdminNavigationDirective)}.call(this),function(){var CsvExporterController,CsvExporterIssuesController,CsvExporterTasksController,CsvExporterUserstoriesController,ProjectDefaultValuesDirective,ProjectExportDirective,ProjectModulesDirective,ProjectProfileController,ProjectProfileDirective,bindOnce,debounce,groupBy,joinStr,mixOf,module,taiga,toString,trim,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,bind=function(fn,me){return function(){return fn.apply(me,arguments)}};taiga=this.taiga,mixOf=this.taiga.mixOf,trim=this.taiga.trim,toString=this.taiga.toString,joinStr=this.taiga.joinStr,groupBy=this.taiga.groupBy,bindOnce=this.taiga.bindOnce,debounce=this.taiga.debounce,module=angular.module("taigaAdmin"),ProjectProfileController=function(superClass){function ProjectProfileController(scope,rootscope,repo,confirm,rs,params,q,location,navUrls,appTitle){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.navUrls=navUrls,this.appTitle=appTitle,this.scope.project={},promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Project profile - "+_this.scope.sectionName+" - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this)),this.scope.$on("project:loaded",function(_this){return function(){return _this.appTitle.set("Project profile - "+_this.scope.sectionName+" - "+_this.scope.project.name)}}(this))}return extend(ProjectProfileController,superClass),ProjectProfileController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$tgNavUrls","$appTitle"],ProjectProfileController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return project.i_am_owner||_this.location.path(_this.navUrls.resolve("permission-denied")),_this.scope.project=project,_this.scope.pointsList=_.sortBy(project.points,"order"),_this.scope.usStatusList=_.sortBy(project.us_statuses,"order"),_this.scope.taskStatusList=_.sortBy(project.task_statuses,"order"),_this.scope.prioritiesList=_.sortBy(project.priorities,"order"),_this.scope.severitiesList=_.sortBy(project.severities,"order"),_this.scope.issueTypesList=_.sortBy(project.issue_types,"order"),_this.scope.issueStatusList=_.sortBy(project.issue_statuses,"order"),_this.scope.$emit("project:loaded",project),project}}(this))},ProjectProfileController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this))},ProjectProfileController.prototype.openDeleteLightbox=function(){return this.rootscope.$broadcast("deletelightbox:new",this.scope.project)},ProjectProfileController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("ProjectProfileController",ProjectProfileController),ProjectProfileDirective=function($repo,$confirm,$loading,$navurls,$location){var link;return link=function($scope,$el){var form,submit,submitButton;return form=$el.find("form").checksley({onlyOneErrorElement:!0}),submit=debounce(2e3,function(){return function(event){var promise;return event.preventDefault(),form.validate()?($loading.start(submitButton),promise=$repo.save($scope.project),promise.then(function(){var newUrl;return $loading.finish(submitButton),$confirm.notify("success"),newUrl=$navurls.resolve("project-admin-project-profile-details",{project:$scope.project.slug}),$location.path(newUrl),$scope.$emit("project:loaded",$scope.project)}),promise.then(null,function(data){return $loading.finish(target),form.setErrors(data),data._error_message?$confirm.notify("error",data._error_message):void 0})):void 0}}(this)),submitButton=$el.find(".submit-button"),$el.on("submit","form",submit)},{link:link}},module.directive("tgProjectProfile",["$tgRepo","$tgConfirm","$tgLoading","$tgNavUrls","$tgLocation",ProjectProfileDirective]),ProjectDefaultValuesDirective=function($repo,$confirm,$loading){var link;return link=function($scope,$el){var form,submit,submitButton;return form=$el.find("form").checksley({onlyOneErrorElement:!0}),submit=debounce(2e3,function(){return function(event){var promise;return event.preventDefault(),form.validate()?($loading.start(submitButton),promise=$repo.save($scope.project),promise.then(function(){return $loading.finish(submitButton),$confirm.notify("success")}),promise.then(null,function(data){return $loading.finish(target),form.setErrors(data),data._error_message?$confirm.notify("error",data._error_message):void 0})):void 0}}(this)),submitButton=$el.find(".submit-button"),$el.on("submit","form",submit),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgProjectDefaultValues",["$tgRepo","$tgConfirm","$tgLoading",ProjectDefaultValuesDirective]),ProjectModulesDirective=function($repo,$confirm,$loading){var link;return link=function($scope,$el){var form,submit;return form=$el.find("form").checksley(),submit=function(){return function(){var promise,target;if(form.validate())return target=angular.element(".admin-functionalities a.button-green"),$loading.start(target),promise=$repo.save($scope.project),promise.then(function(){return $loading.finish(target),$confirm.notify("success"),$scope.$emit("project:loaded",$scope.project)}),promise.then(null,function(data){return $loading.finish(target),$confirm.notify("error",data._error_message)})}}(this),$el.on("submit","form",function(event){return event.preventDefault(),submit()}),$el.on("click",".admin-functionalities a.button-green",function(event){return event.preventDefault(),submit()}),$scope.$watch("isVideoconferenceActivated",function(isVideoconferenceActivated){return isVideoconferenceActivated?$el.find(".videoconference-attributes").removeClass("hidden"):($el.find(".videoconference-attributes").addClass("hidden"),$scope.project.videoconferences=null,$scope.project.videoconferences_salt="")}),$scope.$watch("project",function(project){return $scope.isVideoconferenceActivated=null!=project.videoconferences?!0:!1})},{link:link}},module.directive("tgProjectModules",["$tgRepo","$tgConfirm","$tgLoading",ProjectModulesDirective]),ProjectExportDirective=function($window,$rs,$confirm){var link;return link=function($scope,$el){var buttonsEl,hideButtons,hideResult,hideSpinner,resultEl,resultMessageEl,resultTitleEl,setAsyncMessage,setAsyncTitle,setLoadingMessage,setLoadingTitle,setSyncMessage,setSyncTitle,showButtons,showErrorMode,showExportResultAsyncMode,showExportResultSyncMode,showLoadingMode,showResult,showSpinner,spinnerEl;return buttonsEl=$el.find(".admin-project-export-buttons"),showButtons=function(){return buttonsEl.removeClass("hidden")},hideButtons=function(){return buttonsEl.addClass("hidden")},resultEl=$el.find(".admin-project-export-result"),showResult=function(){return resultEl.removeClass("hidden")},hideResult=function(){return resultEl.addClass("hidden")},spinnerEl=$el.find(".spin"),showSpinner=function(){return spinnerEl.removeClass("hidden")},hideSpinner=function(){return spinnerEl.addClass("hidden")},resultTitleEl=$el.find(".result-title"),setLoadingTitle=function(){return resultTitleEl.html("We are generating your dump file")},setAsyncTitle=function(){return resultTitleEl.html("We are generating your dump file")},setSyncTitle=function(){return resultTitleEl.html("Your dump file is ready!")},resultMessageEl=$el.find(".result-message "),setLoadingMessage=function(){return resultMessageEl.html("Please don't close this page.")},setAsyncMessage=function(){return resultMessageEl.html("We will send you an email when ready.")},setSyncMessage=function(url){return resultMessageEl.html("If the download doesn't start automatically click here.")},showLoadingMode=function(){return showSpinner(),setLoadingTitle(),setLoadingMessage(),hideButtons(),showResult()},showExportResultAsyncMode=function(){return hideSpinner(),setAsyncTitle(),setAsyncMessage()},showExportResultSyncMode=function(url){return hideSpinner(),setSyncTitle(),setSyncMessage(url)},showErrorMode=function(){return hideSpinner(),hideResult(),showButtons()},$el.on("click","a.button-export",debounce(2e3,function(){return function(event){var onError,onSuccess;return event.preventDefault(),onSuccess=function(result){var dumpUrl;return 202===result.status?showExportResultAsyncMode():(dumpUrl=result.data.url,showExportResultSyncMode(dumpUrl),$window.open(dumpUrl,"_blank"))},onError=function(result){var errorMsg,ref;return showErrorMode(),errorMsg="Our oompa loompas have some problems generasting your dump. Please try again. ",429===result.status?errorMsg="Sorry, our oompa loompas are very busy right now. Please try again in a few minutes. ":(null!=(ref=result.data)?ref._error_message:void 0)&&(errorMsg="Our oompa loompas have some problems generasting your dump: "+result.data._error_message),$confirm.notify("error",errorMsg)},showLoadingMode(),$rs.projects["export"]($scope.projectId).then(onSuccess,onError)}}(this)))},{link:link}},module.directive("tgProjectExport",["$window","$tgResources","$tgConfirm",ProjectExportDirective]),CsvExporterController=function(superClass){function CsvExporterController(scope,rootscope,urls,confirm,rs){this.scope=scope,this.rootscope=rootscope,this.urls=urls,this.confirm=confirm,this.rs=rs,this._generateUuid=bind(this._generateUuid,this),this.setCsvUuid=bind(this.setCsvUuid,this),this.rootscope.$on("project:loaded",this.setCsvUuid),this.scope.$watch("csvUuid",function(_this){return function(value){return _this.scope.csvUrl=value?_this.urls.resolveAbsolute(_this.type+"-csv",value):""}}(this))}return extend(CsvExporterController,superClass),CsvExporterController.$inject=["$scope","$rootScope","$tgUrls","$tgConfirm","$tgResources"],CsvExporterController.prototype.setCsvUuid=function(){return this.scope.csvUuid=this.scope.project[this.type+"_csv_uuid"]},CsvExporterController.prototype._generateUuid=function(finish){var promise;return promise=this.rs.projects["regenerate_"+this.type+"_csv_uuid"](this.scope.projectId),promise.then(function(_this){return function(data){var ref;return _this.scope.csvUuid=null!=(ref=data.data)?ref.uuid:void 0}}(this)),promise.then(null,function(_this){return function(){return _this.confirm.notify("error")}}(this)),promise["finally"](function(){return finish()}),promise},CsvExporterController.prototype.regenerateUuid=function(){var subtitle,title;return this.scope.csvUuid?(title="Change URL",subtitle="You going to change the CSV data access url. The previous url will be disabled. Are you sure?",this.confirm.ask(title,subtitle).then(this._generateUuid)):this._generateUuid(_.identity)},CsvExporterController}(taiga.Controller),CsvExporterUserstoriesController=function(superClass){function CsvExporterUserstoriesController(){return CsvExporterUserstoriesController.__super__.constructor.apply(this,arguments)}return extend(CsvExporterUserstoriesController,superClass),CsvExporterUserstoriesController.prototype.type="userstories",CsvExporterUserstoriesController}(CsvExporterController),CsvExporterTasksController=function(superClass){function CsvExporterTasksController(){return CsvExporterTasksController.__super__.constructor.apply(this,arguments)}return extend(CsvExporterTasksController,superClass),CsvExporterTasksController.prototype.type="tasks",CsvExporterTasksController}(CsvExporterController),CsvExporterIssuesController=function(superClass){function CsvExporterIssuesController(){return CsvExporterIssuesController.__super__.constructor.apply(this,arguments)}return extend(CsvExporterIssuesController,superClass),CsvExporterIssuesController.prototype.type="issues",CsvExporterIssuesController}(CsvExporterController),module.controller("CsvExporterUserstoriesController",CsvExporterUserstoriesController),module.controller("CsvExporterTasksController",CsvExporterTasksController),module.controller("CsvExporterIssuesController",CsvExporterIssuesController)}.call(this),function(){var ColorSelectionDirective,ProjectCustomAttributesController,ProjectCustomAttributesDirective,ProjectValuesController,ProjectValuesDirective,ProjectValuesSectionController,bindOnce,debounce,groupBy,joinStr,mixOf,module,taiga,toString,trim,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,bind=function(fn,me){return function(){return fn.apply(me,arguments)}};taiga=this.taiga,mixOf=this.taiga.mixOf,trim=this.taiga.trim,toString=this.taiga.toString,joinStr=this.taiga.joinStr,groupBy=this.taiga.groupBy,bindOnce=this.taiga.bindOnce,debounce=this.taiga.debounce,module=angular.module("taigaAdmin"),ProjectValuesSectionController=function(superClass){function ProjectValuesSectionController(scope,rootscope,repo,confirm,rs,params,q,location,navUrls,appTitle){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.navUrls=navUrls,this.appTitle=appTitle,this.scope.project={},promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Project values - "+_this.scope.sectionName+" - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this))}return extend(ProjectValuesSectionController,superClass),ProjectValuesSectionController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$tgNavUrls","$appTitle"],ProjectValuesSectionController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return project.i_am_owner||_this.location.path(_this.navUrls.resolve("permission-denied")),_this.scope.project=project,_this.scope.$emit("project:loaded",project),project}}(this))},ProjectValuesSectionController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this))},ProjectValuesSectionController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("ProjectValuesSectionController",ProjectValuesSectionController),ProjectValuesController=function(superClass){function ProjectValuesController(scope,rootscope,repo,confirm,rs){this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.moveValue=bind(this.moveValue,this),this.loadValues=bind(this.loadValues,this),this.scope.$on("admin:project-values:move",this.moveValue),this.rootscope.$on("project:loaded",this.loadValues)}return extend(ProjectValuesController,superClass),ProjectValuesController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources"],ProjectValuesController.prototype.loadValues=function(){return this.rs[this.scope.resource].listValues(this.scope.projectId,this.scope.type).then(function(_this){return function(values){return _this.scope.values=values,_this.scope.maxValueOrder=_.max(values,"order").order,values}}(this))},ProjectValuesController.prototype.moveValue=function(ctx,itemValue,itemIndex){var r,values;return values=this.scope.values,r=values.indexOf(itemValue),values.splice(r,1),values.splice(itemIndex,0,itemValue),_.each(values,function(value,index){return value.order=index}),this.repo.saveAll(values)},ProjectValuesController}(taiga.Controller),module.controller("ProjectValuesController",ProjectValuesController),ProjectValuesDirective=function($log,$repo,$confirm){var link,linkDragAndDrop,linkValue;return linkDragAndDrop=function($scope,$el){var itemEl,newParentScope,oldParentScope,tdom;return oldParentScope=null,newParentScope=null,itemEl=null,tdom=$el.find(".sortable"),tdom.sortable({handle:".row.table-main.visualization",dropOnEmpty:!0,connectWith:".project-values-body",revert:400,axis:"y"}),tdom.on("sortstop",function(event,ui){var itemIndex,itemValue;return itemEl=ui.item,itemValue=itemEl.scope().value,itemIndex=itemEl.index(),$scope.$broadcast("admin:project-values:move",itemValue,itemIndex)}),$scope.$on("$destroy",function(){return $el.off()})},linkValue=function($scope,$el,$attrs){var $ctrl,cancel,goToBottomList,initializeNewValue,saveNewValue,saveValue,valueType;return $ctrl=$el.controller(),valueType=$attrs.type,initializeNewValue=function(){return $scope.newValue={name:"",is_closed:!1,is_archived:!1}},initializeNewValue(),goToBottomList=function(){return function(focus){var table;return null==focus&&(focus=!1),table=$el.find(".table-main"),$(document.body).scrollTop(table.offset().top+table.height()),focus?$el.find(".new-value input:visible").first().focus():void 0}}(this),saveValue=function(target){var form,formEl,promise,value;return formEl=target.parents("form"),form=formEl.checksley(),form.validate()?(value=formEl.scope().value,promise=$repo.save(value),promise.then(function(){return function(){var row;return row=target.parents(".row.table-main"),row.addClass("hidden"),row.siblings(".visualization").removeClass("hidden")}}(this)),promise.then(null,function(data){return form.setErrors(data)})):void 0},saveNewValue=function(target){var form,formEl,promise;return formEl=target.parents("form"),form=formEl.checksley(),form.validate()?($scope.newValue.project=$scope.project.id,$scope.newValue.order=$scope.maxValueOrder?$scope.maxValueOrder+1:1,promise=$repo.create(valueType,$scope.newValue),promise.then(function(){return function(data){return target.addClass("hidden"),$scope.values.push(data),$scope.maxValueOrder=data.order,initializeNewValue()}}(this)),promise.then(null,function(data){return form.setErrors(data)})):void 0},cancel=function(target){var formEl,row,value;return row=target.parents(".row.table-main"),formEl=target.parents("form"),value=formEl.scope().value,$scope.$apply(function(){return row.addClass("hidden"),value.revert(),row.siblings(".visualization").removeClass("hidden")})},$el.on("click",".show-add-new",function(event){return event.preventDefault(),$el.find(".new-value").removeClass("hidden"),goToBottomList(!0)}),$el.on("click",".add-new",debounce(2e3,function(event){var target;return event.preventDefault(),target=$el.find(".new-value"),saveNewValue(target)})),$el.on("click",".delete-new",function(event){return event.preventDefault(),$el.find(".new-value").addClass("hidden"),initializeNewValue()}),$el.on("click",".edit-value",function(event){var editionRow,row,target;return event.preventDefault(),target=angular.element(event.currentTarget),row=target.parents(".row.table-main"),row.addClass("hidden"),editionRow=row.siblings(".edition"),editionRow.removeClass("hidden"),editionRow.find("input:visible").first().focus().select()}),$el.on("keyup",".edition input",function(event){var target;return 13===event.keyCode?(target=angular.element(event.currentTarget),saveValue(target)):27===event.keyCode?(target=angular.element(event.currentTarget),cancel(target)):void 0}),$el.on("keyup",".new-value input",function(event){var target;return 13===event.keyCode?(target=$el.find(".new-value"),saveNewValue(target)):27===event.keyCode?($el.find(".new-value").addClass("hidden"),initializeNewValue()):void 0}),$el.on("click",".save",function(event){var target;return event.preventDefault(),target=angular.element(event.currentTarget),saveValue(target)}),$el.on("click",".cancel",function(event){var target;return event.preventDefault(),target=angular.element(event.currentTarget),cancel(target)}),$el.on("click",".delete-value",function(event){var choices,formEl,replacement,subtitle,target,title,value;return event.preventDefault(),target=angular.element(event.currentTarget),formEl=target.parents("form"),value=formEl.scope().value,choices={},_.each($scope.values,function(option){return value.id!==option.id?choices[option.id]=option.name:void 0}),title="Delete value",subtitle=value.name,replacement="All items with this value will be changed to",0===_.keys(choices).length?$confirm.error("You can't delete all values."):$confirm.askChoice(title,subtitle,choices,replacement).then(function(response){var onError,onSucces;return onSucces=function(){return $ctrl.loadValues()["finally"](function(){return response.finish()})},onError=function(){return $confirm.notify("error")},$repo.remove(value,{moveTo:response.selected}).then(onSucces,onError)})})},link=function($scope,$el,$attrs){return linkDragAndDrop($scope,$el,$attrs),linkValue($scope,$el,$attrs),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgProjectValues",["$log","$tgRepo","$tgConfirm","$tgLocation","animationFrame",ProjectValuesDirective]),ColorSelectionDirective=function(){var link;return link=function($scope,$el,$attrs,$model){var $ctrl;return $ctrl=$el.controller(),$scope.$watch($attrs.ngModel,function(element){return $scope.color=element.color +}),$el.on("click",".current-color",function(event){var body,target;return event.preventDefault(),event.stopPropagation(),target=angular.element(event.currentTarget),$el.find(".select-color").hide(),target.siblings(".select-color").show(),body=angular.element("body"),body.on("click",function(){return function(event){return 0===angular.element(event.target).parent(".select-color").length?($el.find(".select-color").hide(),body.unbind("click")):void 0}}(this))}),$el.on("click",".select-color .color",function(event){var target;return event.preventDefault(),target=angular.element(event.currentTarget),$scope.$apply(function(){return $model.$modelValue.color=target.data("color")}),$el.find(".select-color").hide()}),$el.on("click",".select-color .selected-color",function(event){return event.preventDefault(),$scope.$apply(function(){return $model.$modelValue.color=$scope.color}),$el.find(".select-color").hide()}),$scope.$on("$destroy",function(){return $el.off()})},{link:link,require:"ngModel"}},module.directive("tgColorSelection",ColorSelectionDirective),ProjectCustomAttributesController=function(superClass){function ProjectCustomAttributesController(scope,rootscope,repo,rs,params,q,location,navUrls,appTitle){this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.rs=rs,this.params=params,this.q=q,this.location=location,this.navUrls=navUrls,this.appTitle=appTitle,this.moveCustomAttributes=bind(this.moveCustomAttributes,this),this.deleteCustomAttribute=bind(this.deleteCustomAttribute,this),this.saveCustomAttribute=bind(this.saveCustomAttribute,this),this.createCustomAttribute=bind(this.createCustomAttribute,this),this.loadCustomAttributes=bind(this.loadCustomAttributes,this),this.scope.project={},this.rootscope.$on("project:loaded",function(_this){return function(){return _this.loadCustomAttributes(),_this.appTitle.set("Project Custom Attributes - "+_this.scope.sectionName+" - "+_this.scope.project.name)}}(this))}return extend(ProjectCustomAttributesController,superClass),ProjectCustomAttributesController.$inject=["$scope","$rootScope","$tgRepo","$tgResources","$routeParams","$q","$tgLocation","$tgNavUrls","$appTitle"],ProjectCustomAttributesController.prototype.loadCustomAttributes=function(){return this.rs.customAttributes[this.scope.type].list(this.scope.projectId).then(function(_this){return function(customAttributes){return _this.scope.customAttributes=customAttributes,_this.scope.maxOrder=_.max(customAttributes,"order").order,customAttributes}}(this))},ProjectCustomAttributesController.prototype.createCustomAttribute=function(attrValues){return this.repo.create("custom-attributes/"+this.scope.type,attrValues)},ProjectCustomAttributesController.prototype.saveCustomAttribute=function(attrModel){return this.repo.save(attrModel)},ProjectCustomAttributesController.prototype.deleteCustomAttribute=function(attrModel){return this.repo.remove(attrModel)},ProjectCustomAttributesController.prototype.moveCustomAttributes=function(attrModel,newIndex){var customAttributes,r;return customAttributes=this.scope.customAttributes,r=customAttributes.indexOf(attrModel),customAttributes.splice(r,1),customAttributes.splice(newIndex,0,attrModel),_.each(customAttributes,function(val,idx){return val.order=idx}),this.repo.saveAll(customAttributes)},ProjectCustomAttributesController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("ProjectCustomAttributesController",ProjectCustomAttributesController),ProjectCustomAttributesDirective=function($log,$confirm){var link;return link=function($scope,$el){var $ctrl,cancelCreate,cancelUpdate,create,deleteCustomAttribute,hideAddButton,hideCancelButton,hideCreateForm,hideEditForm,resetNewAttr,revertChangesInCustomAttribute,showAddButton,showCancelButton,showCreateForm,showEditForm,sortableEl,update;return $ctrl=$el.controller(),$scope.$on("$destroy",function(){return $el.off()}),sortableEl=$el.find(".js-sortable"),sortableEl.sortable({handle:".js-view-custom-field",dropOnEmpty:!0,revert:400,axis:"y"}),sortableEl.on("sortstop",function(event,ui){var itemAttr,itemEl,itemIndex;return itemEl=ui.item,itemAttr=itemEl.scope().attr,itemIndex=itemEl.index(),$ctrl.moveCustomAttributes(itemAttr,itemIndex)}),showCreateForm=function(){return $el.find(".js-new-custom-field").removeClass("hidden"),$el.find(".js-new-custom-field input:visible").first().focus()},hideCreateForm=function(){return $el.find(".js-new-custom-field").addClass("hidden")},showAddButton=function(){return $el.find(".js-add-custom-field-button").removeClass("hidden")},hideAddButton=function(){return $el.find(".js-add-custom-field-button").addClass("hidden")},showCancelButton=function(){return $el.find(".js-cancel-new-custom-field-button").removeClass("hidden")},hideCancelButton=function(){return $el.find(".js-cancel-new-custom-field-button").addClass("hidden")},resetNewAttr=function(){return $scope.newAttr={}},create=function(formEl){var attr,form,onError,onSucces;return form=formEl.checksley(),form.validate()?(onSucces=function(){return function(){return $ctrl.loadCustomAttributes(),hideCreateForm(),resetNewAttr(),$confirm.notify("success")}}(this),onError=function(){return function(data){return form.setErrors(data)}}(this),attr=$scope.newAttr,attr.project=$scope.projectId,attr.order=$scope.maxOrder?$scope.maxOrder+1:1,$ctrl.createCustomAttribute(attr).then(onSucces,onError)):void 0},cancelCreate=function(){return hideCreateForm(),resetNewAttr()},$scope.$watch("customAttributes",function(customAttributes){return customAttributes?0===customAttributes.length?(hideCancelButton(),hideAddButton(),showCreateForm()):(hideCreateForm(),showAddButton(),showCancelButton()):void 0}),$el.on("click",".js-add-custom-field-button",function(event){return event.preventDefault(),showCreateForm()}),$el.on("click",".js-create-custom-field-button",debounce(2e3,function(event){var formEl,target;return event.preventDefault(),target=angular.element(event.currentTarget),formEl=target.closest("form"),create(formEl)})),$el.on("click",".js-cancel-new-custom-field-button",function(event){return event.preventDefault(),cancelCreate()}),$el.on("keyup",".js-new-custom-field input",function(event){var formEl,target;return 13===event.keyCode?(target=angular.element(event.currentTarget),formEl=target.closest("form"),create(formEl)):27===event.keyCode?cancelCreate():void 0}),showEditForm=function(formEl){return formEl.find(".js-view-custom-field").addClass("hidden"),formEl.find(".js-edit-custom-field").removeClass("hidden"),formEl.find(".js-edit-custom-field input:visible").first().focus().select()},hideEditForm=function(formEl){return formEl.find(".js-edit-custom-field").addClass("hidden"),formEl.find(".js-view-custom-field").removeClass("hidden")},revertChangesInCustomAttribute=function(formEl){return $scope.$apply(function(){return formEl.scope().attr.revert()})},update=function(formEl){var attr,form,onError,onSucces;return form=formEl.checksley(),form.validate()?(onSucces=function(){return function(){return $ctrl.loadCustomAttributes(),hideEditForm(formEl),$confirm.notify("success")}}(this),onError=function(){return function(data){return form.setErrors(data)}}(this),attr=formEl.scope().attr,$ctrl.saveCustomAttribute(attr).then(onSucces,onError)):void 0},cancelUpdate=function(formEl){return hideEditForm(formEl),revertChangesInCustomAttribute(formEl)},$el.on("click",".js-edit-custom-field-button",function(event){var formEl,target;return event.preventDefault(),target=angular.element(event.currentTarget),formEl=target.closest("form"),showEditForm(formEl)}),$el.on("click",".js-update-custom-field-button",debounce(2e3,function(event){var formEl,target;return event.preventDefault(),target=angular.element(event.currentTarget),formEl=target.closest("form"),update(formEl)})),$el.on("click",".js-cancel-edit-custom-field-button",function(event){var formEl,target;return event.preventDefault(),target=angular.element(event.currentTarget),formEl=target.closest("form"),cancelUpdate(formEl)}),$el.on("keyup",".js-edit-custom-field input",function(event){var formEl,target;return 13===event.keyCode?(target=angular.element(event.currentTarget),formEl=target.closest("form"),update(formEl)):27===event.keyCode?(target=angular.element(event.currentTarget),formEl=target.closest("form"),cancelUpdate(formEl)):void 0}),deleteCustomAttribute=function(formEl){var attr,message,subtitle,title;return attr=formEl.scope().attr,title="Delete custom attribute",subtitle="Remeber that all values in this custom field will be deleted.
Are you sure you want to continue?",message=attr.name,$confirm.ask(title,subtitle,message).then(function(finish){var onError,onSucces;return onSucces=function(){return $ctrl.loadCustomAttributes()["finally"](function(){return finish()})},onError=function(){return finish(!1),$confirm.notify("error",null,"We have not been able to delete '"+message+"'.")},$ctrl.deleteCustomAttribute(attr).then(onSucces,onError)})},$el.on("click",".js-delete-custom-field-button",debounce(2e3,function(event){var formEl,target;return event.preventDefault(),target=angular.element(event.currentTarget),formEl=target.closest("form"),deleteCustomAttribute(formEl)}))},{link:link}},module.directive("tgProjectCustomAttributes",["$log","$tgConfirm","animationFrame",ProjectCustomAttributesDirective])}.call(this),function(){var EditRoleDirective,NewRoleDirective,RolePermissionsDirective,RolesController,RolesDirective,bindMethods,bindOnce,debounce,mixOf,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;l>i;i++)if(i in this&&this[i]===item)return i;return-1};taiga=this.taiga,mixOf=this.taiga.mixOf,bindOnce=this.taiga.bindOnce,debounce=this.taiga.debounce,bindMethods=this.taiga.bindMethods,module=angular.module("taigaAdmin"),RolesController=function(superClass){function RolesController(scope,rootscope,repo,confirm,rs,params,q,location,navUrls,appTitle){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.navUrls=navUrls,this.appTitle=appTitle,bindMethods(this),this.scope.sectionName="Permissions",this.scope.project={},this.scope.anyComputableRole=!0,promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Roles - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this))}return extend(RolesController,superClass),RolesController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$tgNavUrls","$appTitle"],RolesController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return project.i_am_owner||_this.location.path(_this.navUrls.resolve("permission-denied")),_this.scope.project=project,_this.scope.$emit("project:loaded",project),_this.scope.anyComputableRole=_.some(_.map(project.roles,function(point){return point.computable})),project}}(this))},RolesController.prototype.loadExternalUserRole=function(roles){var public_permission;return roles=roles.map(function(role){return role.external_user=!1,role}),public_permission={name:"External User",permissions:this.scope.project.public_permissions,external_user:!0},roles.push(public_permission),roles},RolesController.prototype.loadRoles=function(){return this.rs.roles.list(this.scope.projectId).then(this.loadExternalUserRole).then(function(_this){return function(roles){return _this.scope.roles=roles,_this.scope.role=_this.scope.roles[0],roles}}(this))},RolesController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this)).then(function(_this){return function(){return _this.loadUsersAndRoles()}}(this)).then(function(_this){return function(){return _this.loadRoles()}}(this))},RolesController.prototype.setRole=function(role){return this.scope.role=role,this.scope.$broadcast("role:changed",this.scope.role)},RolesController.prototype["delete"]=function(){var choices,i,len,ref,replacement,role,subtitle,title,warning;for(title="Delete Role",subtitle=this.scope.role.name,replacement="All the users with this role will be moved to",warning="Be careful, all role estimations will be removed",choices={},ref=this.scope.roles,i=0,len=ref.length;len>i;i++)role=ref[i],role.id!==this.scope.role.id&&(choices[role.id]=role.name);return 0===_.keys(choices).length?this.confirm.error("You can't delete all values."):this.confirm.askChoice(title,subtitle,choices,replacement,warning).then(function(_this){return function(response){var promise;return promise=_this.repo.remove(_this.scope.role,{moveTo:response.selected}),promise.then(function(){return _this.loadProject(),_this.loadRoles()["finally"](function(){return response.finish()})}),promise.then(null,function(){return _this.confirm.notify("error")})}}(this))},RolesController.prototype.setComputable=debounce(2e3,function(){var onError,onSuccess;return onSuccess=function(_this){return function(){return _this.confirm.notify("success"),_this.loadProject()}}(this),onError=function(_this){return function(){return _this.confirm.notify("error"),_this.scope.role.revert()}}(this),this.repo.save(this.scope.role).then(onSuccess,onError)}),RolesController}(mixOf(taiga.Controller,taiga.PageMixin,taiga.FiltersMixin)),module.controller("RolesController",RolesController),EditRoleDirective=function($repo,$confirm){var link;return link=function($scope,$el){var submit,toggleView;return toggleView=function(){return $el.find(".total").toggle(),$el.find(".edit-role").toggle()},submit=function(){var promise;return $scope.role.name=$el.find("input").val(),promise=$repo.save($scope.role),promise.then(function(){return $confirm.notify("success")}),promise.then(null,function(){return $confirm.notify("error")}),toggleView()},$el.on("click","a.icon-edit",function(){return toggleView(),$el.find("input").focus(),$el.find("input").val($scope.role.name)}),$el.on("click","a.save",submit),$el.on("keyup","input",function(event){return 13===event.keyCode?submit():27===event.keyCode?toggleView():void 0}),$scope.$on("role:changed",function(){return $el.find(".edit-role").is(":visible")?toggleView():void 0}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgEditRole",["$tgRepo","$tgConfirm",EditRoleDirective]),RolesDirective=function(){var link;return link=function($scope,$el){var $ctrl;return $ctrl=$el.controller(),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgRoles",RolesDirective),NewRoleDirective=function($tgrepo,$confirm){var DEFAULT_PERMISSIONS,link;return DEFAULT_PERMISSIONS=["view_project","view_milestones","view_us","view_tasks","view_issues"],link=function($scope,$el){var $ctrl;return $ctrl=$el.controller(),$scope.$on("$destroy",function(){return $el.off()}),$el.on("click","a.add-button",function(event){return event.preventDefault(),$el.find(".new").removeClass("hidden"),$el.find(".new").focus(),$el.find(".add-button").hide()}),$el.on("keyup",".new",function(event){var newRole,onError,onSuccess,target;return event.preventDefault(),13===event.keyCode?(target=angular.element(event.currentTarget),newRole={project:$scope.projectId,name:target.val(),permissions:DEFAULT_PERMISSIONS,order:_.max($scope.roles,function(r){return r.order}).order+1,computable:!1},$el.find(".new").addClass("hidden"),$el.find(".new").val(""),onSuccess=function(role){return $scope.roles.push(role),$ctrl.setRole(role),$el.find(".add-button").show(),$ctrl.loadProject()},onError=function(){return $confirm.notify("error")},$tgrepo.create("roles",newRole).then(onSuccess,onError)):27===event.keyCode?(target=angular.element(event.currentTarget),$el.find(".new").addClass("hidden"),$el.find(".new").val(""),$el.find(".add-button").show()):void 0})},{link:link}},module.directive("tgNewRole",["$tgRepo","$tgConfirm",NewRoleDirective]),RolePermissionsDirective=function($rootscope,$repo,$confirm){var baseTemplate,categoryTemplate,link,resumeTemplate;return resumeTemplate=_.template('
<%- category.name %>
\n
\n
<%- category.activePermissions %>/<%- category.permissions.length %>
\n <% _.each(category.permissions, function(permission) { %>\n
\n <% }) %>\n
\n
'),categoryTemplate=_.template('
\n
\n
\n
\n
\n <% _.each(category.permissions, function(permission) { %>\n
\n <%- permission.description %>\n
\n disabled="disabled"<% } %> <% if(permission.active) { %>checked="checked"<% } %>/>\n
\n Yes\n No\n
\n
\n <% }) %>\n
\n
\n
'),baseTemplate=_.template('
'),link=function($scope,$el,$attrs){var $ctrl,generateCategoriesFromRole,renderCategory,renderPermissions,renderResume;return $ctrl=$el.controller(),generateCategoriesFromRole=function(role){var categories,isPermissionEditable,issuePermissions,milestonePermissions,setActivePermissions,setActivePermissionsPerCategory,taskPermissions,userStoryPermissions,wikiPermissions;return setActivePermissions=function(permissions){return _.map(permissions,function(x){var ref;return _.extend({},x,{active:(ref=x.key,indexOf.call(role.permissions,ref)>=0)})})},isPermissionEditable=function(permission,role,project){return role.external_user&&!project.is_private&&0===permission.key.indexOf("view_")?!1:!0},setActivePermissionsPerCategory=function(category){return _.map(category,function(cat){return cat.permissions=cat.permissions.map(function(permission){return permission.editable=isPermissionEditable(permission,role,$scope.project),permission}),_.extend({},cat,{activePermissions:_.filter(cat.permissions,"active").length})})},categories=[],milestonePermissions=[{key:"view_milestones",description:"View sprints"},{key:"add_milestone",description:"Add sprint"},{key:"modify_milestone",description:"Modify sprint"},{key:"delete_milestone",description:"Delete sprint"}],categories.push({name:"Sprints",permissions:setActivePermissions(milestonePermissions)}),userStoryPermissions=[{key:"view_us",description:"View user story"},{key:"add_us",description:"Add user story"},{key:"modify_us",description:"Modify user story"},{key:"delete_us",description:"Delete user story"}],categories.push({name:"User Stories",permissions:setActivePermissions(userStoryPermissions)}),taskPermissions=[{key:"view_tasks",description:"View tasks"},{key:"add_task",description:"Add task"},{key:"modify_task",description:"Modify task"},{key:"delete_task",description:"Delete task"}],categories.push({name:"Tasks",permissions:setActivePermissions(taskPermissions)}),issuePermissions=[{key:"view_issues",description:"View issues"},{key:"add_issue",description:"Add issue"},{key:"modify_issue",description:"Modify issue"},{key:"delete_issue",description:"Delete issue"}],categories.push({name:"Issues",permissions:setActivePermissions(issuePermissions)}),wikiPermissions=[{key:"view_wiki_pages",description:"View wiki pages"},{key:"add_wiki_page",description:"Add wiki page"},{key:"modify_wiki_page",description:"Modify wiki page"},{key:"delete_wiki_page",description:"Delete wiki page"},{key:"view_wiki_links",description:"View wiki links"},{key:"add_wiki_link",description:"Add wiki link"},{key:"delete_wiki_link",description:"Delete wiki link"}],categories.push({name:"Wiki",permissions:setActivePermissions(wikiPermissions)}),setActivePermissionsPerCategory(categories)},renderResume=function(element,category){return element.find(".resume").html(resumeTemplate({category:category}))},renderCategory=function(category,index){var html;return html=categoryTemplate({category:category,index:index}),html=angular.element(html),renderResume(html,category),html},renderPermissions=function(){var html;return $el.off(),html=baseTemplate(),_.each(generateCategoriesFromRole($scope.role),function(category,index){return html=angular.element(html).append(renderCategory(category,index))}),$el.html(html),$el.on("click",".resume",function(event){var target;return event.preventDefault(),target=angular.element(event.currentTarget),target.next().toggleClass("open")}),$el.on("change",".category-item input",function(event){var getActivePermissions,onError,onSuccess,target;return getActivePermissions=function(){var activePermissions;return activePermissions=_.filter($el.find(".category-item input"),function(t){return angular.element(t).is(":checked")}),activePermissions=_.sortBy(_.map(activePermissions,function(t){var permission;return permission=angular.element(t).parents(".category-item").data("id")})),activePermissions.push("view_project"),activePermissions},target=angular.element(event.currentTarget),$scope.role.permissions=getActivePermissions(),onSuccess=function(){var categories,categoryId;return categories=generateCategoriesFromRole($scope.role),categoryId=target.parents(".category-config").data("id"),renderResume(target.parents(".category-config"),categories[categoryId]),$rootscope.$broadcast("projects:reload"),$confirm.notify("success"),$ctrl.loadProject()},onError=function(){return $confirm.notify("error"),target.prop("checked",!target.prop("checked")),$scope.role.permissions=getActivePermissions()},$scope.role.external_user?($scope.project.public_permissions=$scope.role.permissions,$scope.project.anon_permissions=$scope.role.permissions.filter(function(permission){return 0===permission.indexOf("view_")}),$repo.save($scope.project).then(onSuccess,onError)):$repo.save($scope.role).then(onSuccess,onError)})},$scope.$on("$destroy",function(){return $el.off()}),$scope.$on("role:changed",function(){return renderPermissions()}),bindOnce($scope,$attrs.ngModel,renderPermissions)},{link:link}},module.directive("tgRolePermissions",["$rootScope","$tgRepo","$tgConfirm",RolePermissionsDirective])}.call(this),function(){var BitbucketController,BitbucketWebhooksDirective,GithubController,GithubWebhooksDirective,GitlabController,GitlabWebhooksDirective,NewWebhookDirective,SelectInputText,ValidOriginIpsDirective,WebhookDirective,WebhooksController,bindMethods,debounce,mixOf,module,taiga,timeout,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,bindMethods=this.taiga.bindMethods,debounce=this.taiga.debounce,timeout=this.taiga.timeout,module=angular.module("taigaAdmin"),WebhooksController=function(superClass){function WebhooksController(scope,repo,rs,params,location,navUrls,appTitle){var promise;this.scope=scope,this.repo=repo,this.rs=rs,this.params=params,this.location=location,this.navUrls=navUrls,this.appTitle=appTitle,bindMethods(this),this.scope.sectionName="Webhooks",this.scope.project={},promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Webhooks - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this)),this.scope.$on("webhooks:reload",this.loadWebhooks)}return extend(WebhooksController,superClass),WebhooksController.$inject=["$scope","$tgRepo","$tgResources","$routeParams","$tgLocation","$tgNavUrls","$appTitle"],WebhooksController.prototype.loadWebhooks=function(){return this.rs.webhooks.list(this.scope.projectId).then(function(_this){return function(webhooks){return _this.scope.webhooks=webhooks}}(this))},WebhooksController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return project.i_am_owner||_this.location.path(_this.navUrls.resolve("permission-denied")),_this.scope.project=project,_this.scope.$emit("project:loaded",project),project}}(this))},WebhooksController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this)).then(function(_this){return function(){return _this.loadWebhooks()}}(this))},WebhooksController}(mixOf(taiga.Controller,taiga.PageMixin,taiga.FiltersMixin)),module.controller("WebhooksController",WebhooksController),WebhookDirective=function($rs,$repo,$confirm){var link;return link=function($scope,$el,$attrs){var cancel,openHistory,save,showEditMode,showVisualizationMode,updateLogs,updateShowHideHistoryText,webhook;return webhook=$scope.$eval($attrs.tgWebhook),updateLogs=function(){return $rs.webhooklogs.list(webhook.id).then(function(){return function(webhooklogs){var i,len,log,ref;for(i=0,len=webhooklogs.length;len>i;i++)log=webhooklogs[i],log.validStatus=200<=(ref=log.status)&&300>ref,log.prettySentHeaders=_.map(_.pairs(log.request_headers),function(arg){var header,value;return header=arg[0],value=arg[1],header+": "+value}).join("\n"),log.prettySentData=JSON.stringify(log.request_data),log.prettyDate=moment(log.created).format("DD MMM YYYY [at] hh:mm:ss");return webhook.logs_counter=webhooklogs.length,webhook.logs=webhooklogs,updateShowHideHistoryText()}}(this))},updateShowHideHistoryText=function(){var historyElement,textElement;return textElement=$el.find(".toggle-history"),historyElement=textElement.parents(".single-webhook-wrapper").find(".webhooks-history"),textElement.text(historyElement.hasClass("open")?"(Hide history)":"(Show history)")},showVisualizationMode=function(){return $el.find(".edition-mode").addClass("hidden"),$el.find(".visualization-mode").removeClass("hidden")},showEditMode=function(){return $el.find(".visualization-mode").addClass("hidden"),$el.find(".edition-mode").removeClass("hidden")},openHistory=function(){return $el.find(".webhooks-history").addClass("open")},cancel=function(){return showVisualizationMode(),$scope.$apply(function(){return webhook.revert()})},save=debounce(2e3,function(target){var form,promise;return form=target.parents("form").checksley(),form.validate()?(promise=$repo.save(webhook),promise.then(function(){return function(){return showVisualizationMode()}}(this)),promise.then(null,function(data){return $confirm.notify("error"),form.setErrors(data)})):void 0}),$el.on("click",".test-webhook",function(){return openHistory(),$rs.webhooks.test(webhook.id).then(function(){return function(){return updateLogs()}}(this))}),$el.on("click",".edit-webhook",function(){return showEditMode()}),$el.on("click",".cancel-existing",function(){return cancel()}),$el.on("click",".edit-existing",function(event){var target;return event.preventDefault(),target=angular.element(event.currentTarget),save(target)}),$el.on("keyup",".edition-mode input",function(event){var target;return 13===event.keyCode?(target=angular.element(event.currentTarget),save(target)):27===event.keyCode?(target=angular.element(event.currentTarget),cancel(target)):void 0}),$el.on("click",".delete-webhook",function(){var message,title;return title="Delete webhook",message="Webhook '"+webhook.name+"'",$confirm.askOnDelete(title,message).then(function(){return function(finish){var onError,onSucces;return onSucces=function(){return finish(),$scope.$emit("webhooks:reload")},onError=function(){return finish(!1),$confirm.notify("error")},$repo.remove(webhook).then(onSucces,onError)}}(this))}),$el.on("click",".toggle-history",function(event){var target;return target=angular.element(event.currentTarget),null==webhook.logs||0===webhook.logs.length?updateLogs().then(function(){return timeout(0,function(){return $el.find(".webhooks-history").toggleClass("open"),updateShowHideHistoryText()})}):($el.find(".webhooks-history").toggleClass("open"),$scope.$apply(function(){return updateShowHideHistoryText()}))}),$el.on("click",".history-single",function(event){var target;return target=angular.element(event.currentTarget),target.toggleClass("history-single-open"),target.siblings(".history-single-response").toggleClass("open")}),$el.on("click",".resend-request",function(event){var log,target;return target=angular.element(event.currentTarget),log=target.data("log"),$rs.webhooklogs.resend(log).then(function(){return function(){return updateLogs()}}(this))})},{link:link}},module.directive("tgWebhook",["$tgResources","$tgRepo","$tgConfirm","$tgLoading",WebhookDirective]),NewWebhookDirective=function($rs,$repo,$confirm){var link;return link=function($scope,$el,$attrs){var addWebhookDOMNode,formDOMNode,initializeNewValue,save,webhook;return webhook=$scope.$eval($attrs.tgWebhook),formDOMNode=$el.find(".new-webhook-form"),addWebhookDOMNode=$el.find(".add-webhook"),initializeNewValue=function(){return $scope.newValue={name:"",url:"",key:""}},initializeNewValue(),$scope.$watch("webhooks",function(webhooks){return null!=webhooks?0===webhooks.length?(formDOMNode.removeClass("hidden"),addWebhookDOMNode.addClass("hidden"),formDOMNode.find("input")[0].focus()):(formDOMNode.addClass("hidden"),addWebhookDOMNode.removeClass("hidden")):void 0}),save=debounce(2e3,function(){var form,promise;return form=formDOMNode.checksley(),form.validate()?($scope.newValue.project=$scope.project.id,promise=$repo.create("webhooks",$scope.newValue),promise.then(function(){return function(){return $scope.$emit("webhooks:reload"),initializeNewValue()}}(this)),promise.then(null,function(data){return $confirm.notify("error"),form.setErrors(data)})):void 0}),formDOMNode.on("click",".add-new",function(event){return event.preventDefault(),save()}),formDOMNode.on("keyup","input",function(event){return 13===event.keyCode?save():void 0}),formDOMNode.on("click",".cancel-new",function(){return $scope.$apply(function(){return initializeNewValue()})}),addWebhookDOMNode.on("click",function(){return formDOMNode.removeClass("hidden"),formDOMNode.find("input")[0].focus()})},{link:link}},module.directive("tgNewWebhook",["$tgResources","$tgRepo","$tgConfirm","$tgLoading",NewWebhookDirective]),GithubController=function(superClass){function GithubController(scope,repo,rs,params,appTitle){var promise;this.scope=scope,this.repo=repo,this.rs=rs,this.params=params,this.appTitle=appTitle,bindMethods(this),this.scope.sectionName="Github",this.scope.project={},promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Github - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this))}return extend(GithubController,superClass),GithubController.$inject=["$scope","$tgRepo","$tgResources","$routeParams","$appTitle"],GithubController.prototype.loadModules=function(){return this.rs.modules.list(this.scope.projectId,"github").then(function(_this){return function(github){return _this.scope.github=github}}(this))},GithubController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return _this.scope.project=project,_this.scope.$emit("project:loaded",project),project +}}(this))},GithubController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this)).then(function(_this){return function(){return _this.loadModules()}}(this))},GithubController}(mixOf(taiga.Controller,taiga.PageMixin,taiga.FiltersMixin)),module.controller("GithubController",GithubController),GitlabController=function(superClass){function GitlabController(scope,repo,rs,params,appTitle){var promise;this.scope=scope,this.repo=repo,this.rs=rs,this.params=params,this.appTitle=appTitle,bindMethods(this),this.scope.sectionName="Gitlab",this.scope.project={},promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Gitlab - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this)),this.scope.$on("project:modules:reload",function(_this){return function(){return _this.loadModules()}}(this))}return extend(GitlabController,superClass),GitlabController.$inject=["$scope","$tgRepo","$tgResources","$routeParams","$appTitle"],GitlabController.prototype.loadModules=function(){return this.rs.modules.list(this.scope.projectId,"gitlab").then(function(_this){return function(gitlab){return _this.scope.gitlab=gitlab}}(this))},GitlabController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return _this.scope.project=project,_this.scope.$emit("project:loaded",project),project}}(this))},GitlabController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this)).then(function(_this){return function(){return _this.loadModules()}}(this))},GitlabController}(mixOf(taiga.Controller,taiga.PageMixin,taiga.FiltersMixin)),module.controller("GitlabController",GitlabController),BitbucketController=function(superClass){function BitbucketController(scope,repo,rs,params,appTitle){var promise;this.scope=scope,this.repo=repo,this.rs=rs,this.params=params,this.appTitle=appTitle,bindMethods(this),this.scope.sectionName="Bitbucket",this.scope.project={},promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set("Bitbucket - "+_this.scope.project.name)}}(this)),promise.then(null,this.onInitialDataError.bind(this)),this.scope.$on("project:modules:reload",function(_this){return function(){return _this.loadModules()}}(this))}return extend(BitbucketController,superClass),BitbucketController.$inject=["$scope","$tgRepo","$tgResources","$routeParams","$appTitle"],BitbucketController.prototype.loadModules=function(){return this.rs.modules.list(this.scope.projectId,"bitbucket").then(function(_this){return function(bitbucket){return _this.scope.bitbucket=bitbucket}}(this))},BitbucketController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return _this.scope.project=project,_this.scope.$emit("project:loaded",project),project}}(this))},BitbucketController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this)).then(function(_this){return function(){return _this.loadModules()}}(this))},BitbucketController}(mixOf(taiga.Controller,taiga.PageMixin,taiga.FiltersMixin)),module.controller("BitbucketController",BitbucketController),SelectInputText=function(){var link;return link=function($scope,$el){return $el.on("click",".select-input-content",function(){return $el.find("input").select(),$el.find(".help-copy").addClass("visible")})},{link:link}},module.directive("tgSelectInputText",SelectInputText),GithubWebhooksDirective=function($repo,$confirm,$loading){var link;return link=function($scope,$el){var form,submit,submitButton;return form=$el.find("form").checksley({onlyOneErrorElement:!0}),submit=debounce(2e3,function(){return function(event){var promise;return event.preventDefault(),form.validate()?($loading.start(submitButton),promise=$repo.saveAttribute($scope.github,"github"),promise.then(function(){return $loading.finish(submitButton),$confirm.notify("success")}),promise.then(null,function(data){return $loading.finish(submitButton),form.setErrors(data),data._error_message?$confirm.notify("error",data._error_message):void 0})):void 0}}(this)),submitButton=$el.find(".submit-button"),$el.on("submit","form",submit)},{link:link}},module.directive("tgGithubWebhooks",["$tgRepo","$tgConfirm","$tgLoading",GithubWebhooksDirective]),GitlabWebhooksDirective=function($repo,$confirm,$loading){var link;return link=function($scope,$el){var form,submit,submitButton;return form=$el.find("form").checksley({onlyOneErrorElement:!0}),submit=debounce(2e3,function(){return function(event){var promise;return event.preventDefault(),form.validate()?($loading.start(submitButton),promise=$repo.saveAttribute($scope.gitlab,"gitlab"),promise.then(function(){return $loading.finish(submitButton),$confirm.notify("success"),$scope.$emit("project:modules:reload")}),promise.then(null,function(data){return $loading.finish(submitButton),form.setErrors(data),data._error_message?$confirm.notify("error",data._error_message):void 0})):void 0}}(this)),submitButton=$el.find(".submit-button"),$el.on("submit","form",submit)},{link:link}},module.directive("tgGitlabWebhooks",["$tgRepo","$tgConfirm","$tgLoading",GitlabWebhooksDirective]),BitbucketWebhooksDirective=function($repo,$confirm,$loading){var link;return link=function($scope,$el){var form,submit,submitButton;return form=$el.find("form").checksley({onlyOneErrorElement:!0}),submit=debounce(2e3,function(){return function(event){var promise;return event.preventDefault(),form.validate()?($loading.start(submitButton),promise=$repo.saveAttribute($scope.bitbucket,"bitbucket"),promise.then(function(){return $loading.finish(submitButton),$confirm.notify("success"),$scope.$emit("project:modules:reload")}),promise.then(null,function(data){return $loading.finish(submitButton),form.setErrors(data),data._error_message?$confirm.notify("error",data._error_message):void 0})):void 0}}(this)),submitButton=$el.find(".submit-button"),$el.on("submit","form",submit)},{link:link}},module.directive("tgBitbucketWebhooks",["$tgRepo","$tgConfirm","$tgLoading",BitbucketWebhooksDirective]),ValidOriginIpsDirective=function(){var link;return link=function($scope,$el,$attrs,$ngModel){return $ngModel.$parsers.push(function(value){return value=$.trim(value),""===value?[]:value.split(",")})},{link:link,restrict:"EA",require:"ngModel"}},module.directive("tgValidOriginIps",ValidOriginIpsDirective)}.call(this),function(){var CreateProject,DeleteProjectDirective,bindOnce,debounce,module,taiga,timeout;taiga=this.taiga,bindOnce=this.taiga.bindOnce,timeout=this.taiga.timeout,debounce=this.taiga.debounce,module=angular.module("taigaProject"),CreateProject=function($rootscope,$repo,$confirm,$location,$navurls,$rs,$projectUrl,$loading,lightboxService,$cacheFactory){var link;return link=function($scope,$el){var form,onErrorSubmit,onSuccessSubmit,submit,submitButton;return $scope.data={},$scope.templates=[],form=$el.find("form").checksley({onlyOneErrorElement:!0}),onSuccessSubmit=function(response){return $cacheFactory.get("$http").removeAll(),$loading.finish(submitButton),$rootscope.$broadcast("projects:reload"),$confirm.notify("success","Success"),$location.url($projectUrl.get(response)),lightboxService.close($el)},onErrorSubmit=function(response){var error_field,error_step,i,len,ref,selectors;for($loading.finish(submitButton),form.setErrors(response),selectors=[],ref=_.keys(response),i=0,len=ref.length;len>i;i++)error_field=ref[i],selectors.push("[name="+error_field+"]");return $el.find(".active").removeClass("active"),error_step=$el.find(selectors.join(",")).first().parents(".wizard-step"),error_step.addClass("active"),$el.find(".progress-bar").removeClass().addClass("progress-bar").addClass(error_step.data("step"))},submit=function(){return function(event){var promise;return event.preventDefault(),form.validate()?($loading.start(submitButton),promise=$repo.create("projects",$scope.data),promise.then(onSuccessSubmit,onErrorSubmit)):void 0}}(this),$scope.$on("projects:create",function(){return $scope.data={total_story_points:100,total_milestones:5},$scope.templates.length?$scope.data.creation_template=_.head(_.filter($scope.templates,function(x){return"scrum"===x.slug})).id:$rs.projects.templates().then(function(){return function(result){return $scope.templates=result,$scope.data.creation_template=_.head(_.filter($scope.templates,function(x){return"scrum"===x.slug})).id}}(this)),$el.find(".active").removeClass("active"),$el.find(".create-step1").addClass("active"),lightboxService.open($el),timeout(600,function(){return $el.find(".progress-bar").addClass("step1")})}),$el.on("click",".button-next",function(event){var current,field,i,len,next,ref,step,valid;for(event.preventDefault(),current=$el.find(".active"),valid=!0,ref=form.fields,i=0,len=ref.length;len>i;i++)field=ref[i],current.find("[name="+field.element.attr("name")+"]").length&&(valid=field.validate()!==!1&&valid);return valid?(next=current.next(),current.toggleClass("active"),next.toggleClass("active"),step=next.data("step"),$el.find(".progress-bar").removeClass().addClass("progress-bar").addClass(step)):void 0}),$el.on("click",".button-prev",function(event){var current,prev,step;return event.preventDefault(),current=$el.find(".active"),prev=current.prev(),current.toggleClass("active"),prev.toggleClass("active"),step=prev.data("step"),$el.find(".progress-bar").removeClass().addClass("progress-bar").addClass(step)}),submitButton=$el.find(".submit-button"),$el.on("submit","form",submit),$el.on("click",".close",function(event){return event.preventDefault(),lightboxService.close($el)})},{link:link}},module.directive("tgLbCreateProject",["$rootScope","$tgRepo","$tgConfirm","$location","$tgNavUrls","$tgResources","$projectUrl","$tgLoading","lightboxService","$cacheFactory",CreateProject]),DeleteProjectDirective=function($repo,$rootscope,$auth,$location,$navUrls,$confirm,lightboxService,tgLoader){var link;return link=function($scope,$el){var projectToDelete,submit;return projectToDelete=null,$scope.$on("deletelightbox:new",function(ctx,project){return lightboxService.open($el),projectToDelete=project}),$scope.$on("$destroy",function(){return $el.off()}),submit=function(){var promise;return tgLoader.start(),lightboxService.close($el),promise=$repo.remove(projectToDelete),promise.then(function(){return tgLoader.pageLoaded(),$rootscope.$broadcast("projects:reload"),$location.path($navUrls.resolve("home")),$confirm.notify("success")}),promise.then(null,function(){return $confirm.notify("error"),lightboxService.close($el)})},$el.on("click",".button-red",function(event){return event.preventDefault(),lightboxService.close($el)}),$el.on("click",".button-green",function(event){return event.preventDefault(),submit()})},{link:link}},module.directive("tgLbDeleteProject",["$tgRepo","$rootScope","$tgAuth","$tgLocation","$tgNavUrls","$tgConfirm","lightboxService","tgLoader",DeleteProjectDirective])}.call(this),function(){var ProjectController,ProjectsController,ProjectsListDirective,ProjectsPaginationDirective,bindOnce,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,module=angular.module("taigaProject"),bindOnce=this.taiga.bindOnce,ProjectsController=function(superClass){function ProjectsController(scope,q,rs,rootscope,navUrls,auth,location,appTitle,projectUrl,tgLoader){var promise;this.scope=scope,this.q=q,this.rs=rs,this.rootscope=rootscope,this.navUrls=navUrls,this.auth=auth,this.location=location,this.appTitle=appTitle,this.projectUrl=projectUrl,this.appTitle.set("Projects"),this.auth.isAuthenticated()||this.location.path(this.navUrls.resolve("login")),this.user=this.auth.getUser(),this.projects=[],promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.scope.$emit("projects:loaded",_this.projects)}}(this)),promise.then(null,this.onInitialDataError.bind(this)),promise["finally"](tgLoader.pageLoaded)}return extend(ProjectsController,superClass),ProjectsController.$inject=["$scope","$q","$tgResources","$rootScope","$tgNavUrls","$tgAuth","$tgLocation","$appTitle","$projectUrl","tgLoader"],ProjectsController.prototype.loadInitialData=function(){var ref;return this.rs.projects.listByMember(null!=(ref=this.rootscope.user)?ref.id:void 0).then(function(_this){return function(projects){var i,len,project;for(_this.projects={recents:projects.slice(0,8),all:projects},i=0,len=projects.length;len>i;i++)project=projects[i],project.url=_this.projectUrl.get(project);return projects}}(this))},ProjectsController.prototype.newProject=function(){return this.rootscope.$broadcast("projects:create")},ProjectsController.prototype.logout=function(){return this.auth.logout(),this.location.path(this.navUrls.resolve("login"))},ProjectsController}(taiga.Controller),module.controller("ProjectsController",ProjectsController),ProjectController=function(superClass){function ProjectController(scope,rs,repo,params,q,rootscope,appTitle,location,navUrls){var promise;this.scope=scope,this.rs=rs,this.repo=repo,this.params=params,this.q=q,this.rootscope=rootscope,this.appTitle=appTitle,this.location=location,this.navUrls=navUrls,promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set(_this.scope.project.name),_this.scope.$emit("regenerate:project-pagination")}}(this)),promise.then(null,this.onInitialDataError.bind(this))}return extend(ProjectController,superClass),ProjectController.$inject=["$scope","$tgResources","$tgRepo","$routeParams","$q","$rootScope","$appTitle","$tgLocation","$tgNavUrls"],ProjectController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadPageData()}}(this)).then(function(_this){return function(){return _this.scope.$emit("project:loaded",_this.scope.project)}}(this))},ProjectController.prototype.loadPageData=function(){return this.q.all([this.loadProjectStats(),this.loadProject()])},ProjectController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return _this.scope.project=project,project}}(this))},ProjectController.prototype.loadProjectStats=function(){return this.rs.projects.stats(this.scope.projectId).then(function(_this){return function(stats){return _this.scope.stats=stats,stats}}(this))},ProjectController}(taiga.Controller),module.controller("ProjectController",ProjectController),ProjectsPaginationDirective=function(){var link;return link=function($scope,$el){var checkButtonVisibility,container,containerSize,hasNextPage,hasPagination,hasPrevPage,hide,nextBtn,nextPage,pageSize,prevBtn,prevPage,remove,render,visible;return prevBtn=$el.find(".v-pagination-previous"),nextBtn=$el.find(".v-pagination-next"),container=$el.find("ul"),pageSize=0,containerSize=0,render=function(){return pageSize=$el.find(".v-pagination-list").height(),container.find("li").length&&hasPagination()?(hasNextPage()?visible(nextBtn):hide(nextBtn),hasPrevPage()?visible(prevBtn):hide(prevBtn)):remove()},hasPagination=function(){return containerSize=container.height(),containerSize>pageSize},hasPrevPage=function(top){return null==top&&(top=-parseInt(container.css("top"),10)||0),0!==top},hasNextPage=function(top){return containerSize=container.height(),top||(top=-parseInt(container.css("top"),10)||0),containerSize>pageSize&&containerSize>top+pageSize},nextPage=function(callback){var lastLi,maxTop,newTop,top;return top=parseInt(container.css("top"),10),newTop=top-pageSize,lastLi=$el.find(".v-pagination-list li:last-child"),maxTop=-(lastLi.position().top+lastLi.outerHeight()-pageSize),maxTop>newTop&&(newTop=maxTop),container.animate({top:newTop},callback),newTop},prevPage=function(callback){var newTop,top;return top=parseInt(container.css("top"),10),newTop=top+pageSize,newTop>0&&(newTop=0),container.animate({top:newTop},callback),newTop},visible=function(element){return element.css("visibility","visible")},hide=function(element){return element.css("visibility","hidden")},checkButtonVisibility=function(){},remove=function(){return container.css("top",0),hide(prevBtn),hide(nextBtn)},$el.on("click",".v-pagination-previous",function(event){var newTop;return event.preventDefault(),container.is(":animated")?void 0:(visible(nextBtn),newTop=prevPage(),hasPrevPage(newTop)?void 0:hide(prevBtn))}),$el.on("click",".v-pagination-next",function(event){var newTop;return event.preventDefault(),container.is(":animated")?void 0:(visible(prevBtn),newTop=-nextPage(),hasNextPage(newTop)?void 0:hide(nextBtn))}),$scope.$on("regenerate:project-pagination",function(){return remove(),render()}),$(window).on("resize.projects-pagination",render),$scope.$on("$destroy",function(){return $(window).off("resize.projects-pagination")})},{link:link}},module.directive("tgProjectsPagination",["$timeout",ProjectsPaginationDirective]),ProjectsListDirective=function($compile,$template){var link,template;return template=$template.get("project/project-list.html",!0),link=function($scope,$el){var render;return render=function(projects){return $el.html($compile(template({projects:projects}))($scope)),$scope.$emit("regenerate:project-pagination")},$scope.$on("projects:loaded",function(ctx,projects){return null!=projects.all?render(projects.all):void 0})},{link:link}},module.directive("tgProjectsList",["$compile","$tgTemplate",ProjectsListDirective])}.call(this),function(){var BindHtmlDirective,BindOnceAltDirective,BindOnceBindDirective,BindOnceHrefDirective,BindOnceHtmlDirective,BindOnceRefDirective,BindOnceSrcDirective,BindOnceTitleDirective,BindTitleDirective,bindOnce,module;bindOnce=this.taiga.bindOnce,BindOnceBindDirective=function(){var link;return link=function($scope,$el,$attrs){return bindOnce($scope,$attrs.tgBoBind,function(val){return $el.text(val)})},{link:link}},BindOnceHtmlDirective=function(){var link;return link=function($scope,$el,$attrs){return bindOnce($scope,$attrs.tgBoHtml,function(val){return $el.html(val)})},{link:link}},BindOnceRefDirective=function(){var link;return link=function($scope,$el,$attrs){return bindOnce($scope,$attrs.tgBoRef,function(val){return $el.html("#"+val+" ")})},{link:link}},BindOnceSrcDirective=function(){var link;return link=function($scope,$el,$attrs){return bindOnce($scope,$attrs.tgBoSrc,function(val){return $el.attr("src",val)})},{link:link}},BindOnceHrefDirective=function(){var link;return link=function($scope,$el,$attrs){return bindOnce($scope,$attrs.tgBoHref,function(val){return $el.attr("href",val)})},{link:link}},BindOnceAltDirective=function(){var link;return link=function($scope,$el,$attrs){return bindOnce($scope,$attrs.tgBoAlt,function(val){return $el.attr("alt",val)})},{link:link}},BindOnceTitleDirective=function(){var link;return link=function($scope,$el,$attrs){return bindOnce($scope,$attrs.tgBoTitle,function(val){return $el.attr("title",val)})},{link:link}},BindTitleDirective=function(){var link;return link=function($scope,$el,$attrs){return $scope.$watch($attrs.tgTitleHtml,function(val){return null!=val?$el.attr("title",val):void 0})},{link:link}},BindHtmlDirective=function(){var link;return link=function($scope,$el,$attrs){return $scope.$watch($attrs.tgBindHtml,function(val){return null!=val?$el.html(val):void 0})},{link:link}},module=angular.module("taigaBase"),module.directive("tgBoBind",BindOnceBindDirective),module.directive("tgBoHtml",BindOnceHtmlDirective),module.directive("tgBoRef",BindOnceRefDirective),module.directive("tgBoSrc",BindOnceSrcDirective),module.directive("tgBoHref",BindOnceHrefDirective),module.directive("tgBoAlt",BindOnceAltDirective),module.directive("tgBoTitle",BindOnceTitleDirective),module.directive("tgBindTitle",BindTitleDirective),module.directive("tgBindHtml",BindHtmlDirective)}.call(this),function(){var ConfigurationService,module;ConfigurationService=function(){function ConfigurationService(){this.config=window.taigaConfig}return ConfigurationService.prototype.get=function(key,defaultValue){return null==defaultValue&&(defaultValue=null),_.has(this.config,key)?this.config[key]:defaultValue},ConfigurationService}(),module=angular.module("taigaBase"),module.service("$tgConfig",ConfigurationService)}.call(this),function(){var ContribController,module,taigaContribPlugins,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taigaContribPlugins=this.taigaContribPlugins=this.taigaContribPlugins||[],ContribController=function(superClass){function ContribController(rootScope,scope,params,repo,rs,confirm,appTitle){var promise;this.rootScope=rootScope,this.scope=scope,this.params=params,this.repo=repo,this.rs=rs,this.confirm=confirm,this.appTitle=appTitle,this.scope.adminPlugins=_.where(this.rootScope.contribPlugins,{type:"admin"}),this.scope.currentPlugin=_.first(_.where(this.scope.adminPlugins,{slug:this.params.plugin})),this.scope.pluginTemplate="contrib/"+this.scope.currentPlugin.slug,this.scope.projectSlug=this.params.pslug,promise=this.loadInitialData(),promise.then(function(_this){return function(){return _this.appTitle.set(_this.scope.project.name)}}(this)),promise.then(null,function(_this){return function(){return _this.confirm.notify("error")}}(this))}return extend(ContribController,superClass),ContribController.$inject=["$rootScope","$scope","$routeParams","$tgRepo","$tgResources","$tgConfirm","$appTitle"],ContribController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return _this.scope.project=project,_this.scope.$emit("project:loaded",project),_this.scope.$broadcast("project:loaded",project),project}}(this))},ContribController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this))},ContribController}(taiga.Controller),module=angular.module("taigaBase"),module.controller("ContribController",ContribController)}.call(this),function(){var FiltersStorageService,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,FiltersStorageService=function(superClass){function FiltersStorageService(storage,params){this.storage=storage,this.params=params}return extend(FiltersStorageService,superClass),FiltersStorageService.$inject=["$tgStorage","$routeParams"],FiltersStorageService.prototype.generateHash=function(components){return null==components&&(components=[]),components=_.map(components,function(x){return JSON.stringify(x)}),hex_sha1(components.join(":"))},FiltersStorageService}(taiga.Service)}.call(this),function(){var HttpService,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,HttpService=function(superClass){function HttpService(http,q,storage){this.http=http,this.q=q,this.storage=storage,HttpService.__super__.constructor.call(this)}return extend(HttpService,superClass),HttpService.$inject=["$http","$q","$tgStorage"],HttpService.prototype.headers=function(){var token;return token=this.storage.get("token"),token?{Authorization:"Bearer "+token}:{}},HttpService.prototype.request=function(options){return options.headers=_.merge({},options.headers||{},this.headers()),_.isPlainObject(options.data)&&(options.data=JSON.stringify(options.data)),this.http(options)},HttpService.prototype.get=function(url,params,options){return options=_.merge({method:"GET",url:url},options),params&&(options.params=params),this.request(options)},HttpService.prototype.post=function(url,data,params,options){return options=_.merge({method:"POST",url:url},options),data&&(options.data=data),params&&(options.params=params),this.request(options)},HttpService.prototype.put=function(url,data,params,options){return options=_.merge({method:"PUT",url:url},options),data&&(options.data=data),params&&(options.params=params),this.request(options)},HttpService.prototype.patch=function(url,data,params,options){return options=_.merge({method:"PATCH",url:url},options),data&&(options.data=data),params&&(options.params=params),this.request(options)},HttpService.prototype["delete"]=function(url,data,params,options){return options=_.merge({method:"DELETE",url:url},options),data&&(options.data=data),params&&(options.params=params),this.request(options)},HttpService}(taiga.Service),module=angular.module("taigaBase"),module.service("$tgHttp",HttpService)}.call(this),function(){var I18nDirective,I18nService,bindOnce,defaults,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,bindOnce=this.taiga.bindOnce,defaults={ns:"app",fallbackLng:"en",async:!1,lng:"en"},I18nService=function(superClass){function I18nService(rootscope,localesEn){this.rootscope=rootscope,this.options=_.clone(defaults,!0),this.options.resStore={en:{app:localesEn}}}return extend(I18nService,superClass),I18nService.prototype.setLanguage=function(language){return i18n.setLng(language),this.rootscope.currentLang=language,this.rootscope.$broadcast("i18n:changeLang",language)},I18nService.prototype.initialize=function(){return i18n.init(this.options),this.rootscope.t=i18n.t},I18nService.prototype.t=function(path,opts){return i18n.t(path,opts)},I18nService}(taiga.Service),I18nDirective=function($rootscope,$i18n){var link;return link=function($scope,$el,$attrs){var i,len,ns,options,opts,ref,results,v,values;for(values=$attrs.tr.split(","),options=$attrs.trOpts||"{}",opts=$scope.$eval(options),results=[],i=0,len=values.length;len>i;i++)v=values[i],-1===v.indexOf(":")?results.push($el.html(_.escape($i18n.t(v,opts)))):(ref=v.split(":"),ns=ref[0],v=ref[1],results.push($el.attr(ns,_.escape($i18n.t(v,opts)))));return results},{link:link,restrict:"A",scope:!1}},module=angular.module("taigaBase"),module.service("$tgI18n",["$rootScope","localesEn",I18nService]),module.directive("tr",["$rootScope","$tgI18n",I18nDirective])}.call(this),function(){var locationFactory,module;locationFactory=function($location,$route){return $location.noreload=function(scope){var lastRoute,un;return lastRoute=$route.current,un=scope.$on("$locationChangeSuccess",function(){return $route.current=lastRoute,un()}),$location},$location.isInCurrentRouteParams=function(name,value){var params;return params=_.merge($route.current.params,$location.search()),params[name]===value},$location},module=angular.module("taigaBase"),module.factory("$tgLocation",["$location","$route","$rootScope",locationFactory])}.call(this),function(){var Model,ModelService,module,provider,taiga,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;l>i;i++)if(i in this&&this[i]===item)return i;return-1},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Model=function(){function Model(name,data,dataTypes){this._attrs=data,this._name=name,this._dataTypes=dataTypes,this.setAttrs(data),this.initialize()}return Model.prototype.clone=function(){var instance;return instance=new Model(this._name,this._attrs,this._dataTypes),instance._modifiedAttrs=this._modifiedAttrs,instance._isModified=this._isModified,instance},Model.prototype.applyCasts=function(){var attrName,castMethod,castName,ref,results;ref=this._dataTypes,results=[];for(attrName in ref)castName=ref[attrName],castMethod=service.casts[castName],castMethod&&results.push(this._attrs[attrName]=castMethod(this._attrs[attrName]));return results},Model.prototype.getIdAttrName=function(){return"id"},Model.prototype.getName=function(){return this._name},Model.prototype.getAttrs=function(patch){return null==patch&&(patch=!1),null!=this._attrs.version&&(this._modifiedAttrs.version=this._attrs.version),patch?_.extend({},this._modifiedAttrs):_.extend({},this._attrs,this._modifiedAttrs)},Model.prototype.setAttrs=function(attrs){return this._attrs=attrs,this._modifiedAttrs={},this.applyCasts(),this._isModified=!1},Model.prototype.setAttr=function(name,value){return this._modifiedAttrs[name]=value,this._isModified=!0},Model.prototype.initialize=function(){var getter,self,setter;return self=this,getter=function(name){return function(){return"string"==typeof name&&"__"===name.substr(0,2)?self[name]:indexOf.call(_.keys(self._modifiedAttrs),name)<0?self._attrs[name]:self._modifiedAttrs[name]}},setter=function(name){return function(value){return"string"==typeof name&&"__"===name.substr(0,2)?void(self[name]=value):void(self._attrs[name]!==value?(self._modifiedAttrs[name]=value,self._isModified=!0):delete self._modifiedAttrs[name])}},_.each(this._attrs,function(value,name){var options;return options={get:getter(name),set:setter(name),enumerable:!0,configurable:!0},Object.defineProperty(self,name,options)})},Model.prototype.serialize=function(){var data;return data={data:_.clone(this._attrs),name:this._name},JSON.stringify(data)},Model.prototype.isModified=function(){return this._isModified},Model.prototype.isAttributeModified=function(attribute){return null!=this._modifiedAttrs[attribute]},Model.prototype.markSaved=function(){return this._isModified=!1,this._attrs=this.getAttrs(),this._modifiedAttrs={}},Model.prototype.revert=function(){return this._modifiedAttrs={},this._isModified=!1},Model.desSerialize=function(sdata){var ddata,model;return ddata=JSON.parse(sdata),model=new Model(ddata.url,ddata.data)},Model}(),taiga=this.taiga,ModelService=function(superClass){function ModelService(q,urls,storage,http){this.q=q,this.urls=urls,this.storage=storage,this.http=http,ModelService.__super__.constructor.call(this)}return extend(ModelService,superClass),ModelService.$inject=["$q","$tgUrls","$tgStorage","$tgHttp"],ModelService}(taiga.Service),provider=function(){var service;return service={},service.make_model=function(name,data,cls,dataTypes){return null==cls&&(cls=Model),null==dataTypes&&(dataTypes={}),new cls(name,data,dataTypes)},service.cls=Model,service.casts={"int":function(value){return parseInt(value,10) +},"float":function(value){return parseFloat(value,10)}},service},module=angular.module("taigaBase"),module.factory("$tgModel",["$q","$http","$tgUrls","$tgStorage",provider])}.call(this),function(){var NavigationUrlsDirective,NavigationUrlsService,bindOnce,module,taiga,trim,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,trim=this.taiga.trim,bindOnce=this.taiga.bindOnce,module=angular.module("taigaBase"),NavigationUrlsService=function(superClass){function NavigationUrlsService(){this.urls={}}return extend(NavigationUrlsService,superClass),NavigationUrlsService.prototype.update=function(urls){return this.urls=_.merge({},this.urls,urls||{})},NavigationUrlsService.prototype.formatUrl=function(url,ctx){var replacer;return null==ctx&&(ctx={}),replacer=function(match){return match=trim(match,":"),ctx[match]||"undefined"},url.replace(/(:\w+)/g,replacer)},NavigationUrlsService.prototype.resolve=function(name,ctx){var url;return url=this.urls[name],url?ctx?this.formatUrl(url,ctx):url:""},NavigationUrlsService}(taiga.Service),module.service("$tgNavUrls",NavigationUrlsService),NavigationUrlsDirective=function($navurls,$auth,$q,$location){var bindOnceP,link,parseNav;return bindOnceP=function($scope,attr){var defered;return defered=$q.defer(),bindOnce($scope,attr,function(v){return defered.resolve(v)}),defered.promise},parseNav=function(data,$scope){var name,params,promises,ref,values;return ref=_.map(data.split(":"),trim),name=ref[0],params=ref[1],params=params?_.map(params.split(","),trim):[],values=_.map(params,function(x){return trim(x.split("=")[1])}),promises=_.map(values,function(x){return bindOnceP($scope,x)}),$q.all(promises).then(function(){var i,item,key,len,options,ref1,value;for(options={},i=0,len=params.length;len>i;i++)item=params[i],ref1=_.map(item.split("="),trim),key=ref1[0],value=ref1[1],options[key]=$scope.$eval(value);return[name,options]})},link=function($scope,$el,$attrs){return $el.is("a")&&$el.attr("href","#"),$el.on("mouseenter",function(event){var target;return target=$(event.currentTarget),target.data("fullUrl")?void 0:parseNav($attrs.tgNav,$scope).then(function(result){var fullUrl,getURLParams,getURLParamsStr,name,options,url,user;return name=result[0],options=result[1],user=$auth.getUser(),user&&(options.user=user.username),url=$navurls.resolve(name),fullUrl=$navurls.formatUrl(url,options),$attrs.tgNavGetParams&&(getURLParams=JSON.parse($attrs.tgNavGetParams),getURLParamsStr=$.param(getURLParams),fullUrl=fullUrl+"?"+getURLParamsStr),target.data("fullUrl",fullUrl),target.is("a")&&target.attr("href",fullUrl),$el.on("click",function(event){if(event.preventDefault(),target=$(event.currentTarget),!target.hasClass("noclick"))switch(fullUrl=target.data("fullUrl"),event.which){case 1:return $location.url(fullUrl),$scope.$apply();case 2:return window.open(fullUrl)}})})}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgNav",["$tgNavUrls","$tgAuth","$q","$tgLocation",NavigationUrlsDirective])}.call(this),function(){var RepositoryService,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,RepositoryService=function(superClass){function RepositoryService(q,model1,storage,http,urls){this.q=q,this.model=model1,this.storage=storage,this.http=http,this.urls=urls,RepositoryService.__super__.constructor.call(this)}return extend(RepositoryService,superClass),RepositoryService.$inject=["$q","$tgModel","$tgStorage","$tgHttp","$tgUrls"],RepositoryService.prototype.resolveUrlForModel=function(model){var idAttrName;return idAttrName=model.getIdAttrName(),this.urls.resolve(model.getName())+"/"+model[idAttrName]},RepositoryService.prototype.resolveUrlForAttributeModel=function(model){return this.urls.resolve(model.getName(),model.parent)},RepositoryService.prototype.create=function(name,data,dataTypes,extraParams){var defered,promise,url;return null==dataTypes&&(dataTypes={}),null==extraParams&&(extraParams={}),defered=this.q.defer(),url=this.urls.resolve(name),promise=this.http.post(url,JSON.stringify(data)),promise.success(function(_this){return function(_data){return defered.resolve(_this.model.make_model(name,_data,null,dataTypes))}}(this)),promise.error(function(){return function(data){return defered.reject(data)}}(this)),defered.promise},RepositoryService.prototype.remove=function(model,params){var defered,promise,url;return null==params&&(params={}),defered=this.q.defer(),url=this.resolveUrlForModel(model),promise=this.http["delete"](url,{},params),promise.success(function(){return defered.resolve(model)}),promise.error(function(){return defered.reject(model)}),defered.promise},RepositoryService.prototype.saveAll=function(models,patch){var promises;return null==patch&&(patch=!0),promises=_.map(models,function(_this){return function(x){return _this.save(x,!0)}}(this)),this.q.all(promises)},RepositoryService.prototype.save=function(model,patch){var data,defered,promise,url;return null==patch&&(patch=!0),defered=this.q.defer(),!model.isModified()&&patch?(defered.resolve(model),defered.promise):(url=this.resolveUrlForModel(model),data=JSON.stringify(model.getAttrs(patch)),promise=patch?this.http.patch(url,data):this.http.put(url,data),promise.success(function(){return function(data){return model._isModified=!1,model._attrs=_.extend(model.getAttrs(),data),model._modifiedAttrs={},model.applyCasts(),defered.resolve(model)}}(this)),promise.error(function(data){return defered.reject(data)}),defered.promise)},RepositoryService.prototype.saveAttribute=function(model,attribute,patch){var data,defered,promise,url;return null==patch&&(patch=!0),defered=this.q.defer(),!model.isModified()&&patch?(defered.resolve(model),defered.promise):(url=this.resolveUrlForAttributeModel(model),data={},data[attribute]=model.getAttrs(),promise=patch?this.http.patch(url,data):this.http.put(url,data),promise.success(function(){return function(data){return model._isModified=!1,model._attrs=_.extend(model.getAttrs(),data),model._modifiedAttrs={},model.applyCasts(),defered.resolve(model)}}(this)),promise.error(function(data){return defered.reject(data)}),defered.promise)},RepositoryService.prototype.refresh=function(model){var defered,promise,url;return defered=this.q.defer(),url=this.resolveUrlForModel(model),promise=this.http.get(url),promise.success(function(data){return model._modifiedAttrs={},model._attrs=data,model._isModified=!1,model.applyCasts(),defered.resolve(model)}),promise.error(function(data){return defered.reject(data)}),defered.promise},RepositoryService.prototype.queryMany=function(name,params,options){var httpOptions,url;return null==options&&(options={}),url=this.urls.resolve(name),httpOptions={headers:{}},options.enablePagination||(httpOptions.headers["x-disable-pagination"]="1"),this.http.get(url,params,httpOptions).then(function(_this){return function(data){return _.map(data.data,function(x){return _this.model.make_model(name,x)})}}(this))},RepositoryService.prototype.queryOneAttribute=function(name,id,attribute,params,options){var httpOptions,url;return null==options&&(options={}),url=this.urls.resolve(name,id),httpOptions={headers:{}},options.enablePagination||(httpOptions.headers["x-disable-pagination"]="1"),this.http.get(url,params,httpOptions).then(function(_this){return function(data){var model;return model=_this.model.make_model(name,data.data[attribute]),model.parent=id,model}}(this))},RepositoryService.prototype.queryOne=function(name,id,params,options){var httpOptions,url;return null==options&&(options={}),url=this.urls.resolve(name),id&&(url=url+"/"+id),httpOptions={headers:{}},options.enablePagination||(httpOptions.headers["x-disable-pagination"]="1"),this.http.get(url,params,httpOptions).then(function(_this){return function(data){return _this.model.make_model(name,data.data)}}(this))},RepositoryService.prototype.queryOneRaw=function(name,id,params,options){var httpOptions,url;return null==options&&(options={}),url=this.urls.resolve(name),id&&(url=url+"/"+id),httpOptions=_.merge({headers:{}},options),options.enablePagination||(httpOptions.headers["x-disable-pagination"]="1"),this.http.get(url,params,httpOptions).then(function(){return function(data){return data.data}}(this))},RepositoryService.prototype.queryPaginated=function(name,params,options){var httpOptions,url;return null==options&&(options={}),url=this.urls.resolve(name),httpOptions=_.merge({headers:{}},options),this.http.get(url,params,httpOptions).then(function(_this){return function(data){var headers,result;return headers=data.headers(),result={},result.models=_.map(data.data,function(x){return _this.model.make_model(name,x)}),result.count=parseInt(headers["x-pagination-count"],10),result.current=parseInt(headers["x-pagination-current"]||1,10),result.paginatedBy=parseInt(headers["x-paginated-by"],10),result}}(this))},RepositoryService.prototype.resolve=function(options){var cache,params;return params={},null!=options.pslug&&(params.project=options.pslug),null!=options.usref&&(params.us=options.usref),null!=options.taskref&&(params.task=options.taskref),null!=options.issueref&&(params.issue=options.issueref),null!=options.sslug&&(params.milestone=options.sslug),null!=options.wikipage&&(params.wikipage=options.wikipage),cache=!(options.wikipage||options.sslug),this.queryOneRaw("resolver",null,params,{cache:cache})},RepositoryService}(taiga.Service),module=angular.module("taigaBase"),module.service("$tgRepo",RepositoryService)}.call(this),function(){var StorageService,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,StorageService=function(superClass){function StorageService(){StorageService.__super__.constructor.call(this)}return extend(StorageService,superClass),StorageService.$inject=["$rootScope"],StorageService.prototype.get=function(key,_default){var serializedValue;return serializedValue=localStorage.getItem(key),null===serializedValue?_default||null:JSON.parse(serializedValue)},StorageService.prototype.set=function(key,val){return _.isObject(key)?_.each(key,function(_this){return function(val,key){return _this.set(key,val)}}(this)):localStorage.setItem(key,JSON.stringify(val))},StorageService.prototype.contains=function(key){var value;return value=this.get(key),null!==value},StorageService.prototype.remove=function(key){return localStorage.removeItem(key)},StorageService.prototype.clear=function(){return localStorage.clear()},StorageService}(taiga.Service),module=angular.module("taigaBase"),module.service("$tgStorage",StorageService)}.call(this),function(){var UrlsService,format,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;format=function(fmt,obj){return obj=_.clone(obj),fmt.replace(/%s/g,function(){return String(obj.shift())})},taiga=this.taiga,UrlsService=function(superClass){function UrlsService(config){this.config=config,this.urls={},this.mainUrl=this.config.get("api")}return extend(UrlsService,superClass),UrlsService.$inject=["$tgConfig"],UrlsService.prototype.update=function(urls){return this.urls=_.merge(this.urls,urls)},UrlsService.prototype.resolve=function(){var args,name,url;if(args=_.toArray(arguments),0===args.length)throw Error("wrong arguments to setUrls");return name=args.slice(0,1)[0],url=format(this.urls[name],args.slice(1)),format("%s/%s",[_.str.rtrim(this.mainUrl,"/"),_.str.ltrim(url,"/")])},UrlsService.prototype.resolveAbsolute=function(){var url;return url=this.resolve.apply(this,arguments),/^https?:\/\//i.test(url)?url:/^\//.test(url)?window.location.protocol+"//"+window.location.host+url:window.location.protocol+"//"+window.location.host+"/"+url},UrlsService}(taiga.Service),module=angular.module("taigaBase"),module.service("$tgUrls",UrlsService)}.call(this),function(){var module,resourceProvider,sizeFormat,taiga;taiga=this.taiga,sizeFormat=this.taiga.sizeFormat,resourceProvider=function($rootScope,$config,$urls,$model,$repo,$auth,$q){var service;return service={},service.list=function(urlName,objectId,projectId){var params;return params={object_id:objectId,project:projectId},$repo.queryMany(urlName,params)},service.create=function(urlName,projectId,objectId,file){var data,defered,maxFileSize,response,uploadComplete,uploadFailed,uploadProgress,xhr;return defered=$q.defer(),void 0===file?(defered.reject(null),defered.promise):(maxFileSize=$config.get("maxUploadFileSize",null),maxFileSize&&file.size>maxFileSize?(response={status:413,data:{_error_message:"'"+file.name+"' ("+sizeFormat(file.size)+") is too heavy for our oompa loompas, try it with a smaller than ("+sizeFormat(maxFileSize)+")"}},defered.reject(response),defered.promise):(uploadProgress=function(){return function(evt){return $rootScope.$apply(function(){return file.status="in-progress",file.size=sizeFormat(evt.total),file.progressMessage="upload "+sizeFormat(evt.loaded)+" of "+sizeFormat(evt.total),file.progressPercent=Math.round(evt.loaded/evt.total*100)+"%"})}}(this),uploadComplete=function(){return function(evt){return $rootScope.$apply(function(){var data,model;file.status="done";try{data=JSON.parse(evt.target.responseText)}catch(_error){data={}}return model=$model.make_model(urlName,data),defered.resolve(model)})}}(this),uploadFailed=function(){return function(){return $rootScope.$apply(function(){return file.status="error",defered.reject("fail")})}}(this),data=new FormData,data.append("project",projectId),data.append("object_id",objectId),data.append("attached_file",file),xhr=new XMLHttpRequest,xhr.upload.addEventListener("progress",uploadProgress,!1),xhr.addEventListener("load",uploadComplete,!1),xhr.addEventListener("error",uploadFailed,!1),xhr.open("POST",$urls.resolve(urlName)),xhr.setRequestHeader("Authorization","Bearer "+$auth.getToken()),xhr.setRequestHeader("Accept","application/json"),xhr.send(data),defered.promise))},function(instance){return instance.attachments=service}},module=angular.module("taigaResources"),module.factory("$tgAttachmentsResourcesProvider",["$rootScope","$tgConfig","$tgUrls","$tgModel","$tgRepo","$tgAuth","$q",resourceProvider])}.call(this),function(){var module,resourceProvider,taiga;taiga=this.taiga,resourceProvider=function($repo){var _get,service;return _get=function(objectId,resource){return $repo.queryOne(resource,objectId)},service={userstory:{get:function(objectId){return _get(objectId,"custom-attributes-values/userstory")}},task:{get:function(objectId){return _get(objectId,"custom-attributes-values/task")}},issue:{get:function(objectId){return _get(objectId,"custom-attributes-values/issue")}}},function(instance){return instance.customAttributesValues=service}},module=angular.module("taigaResources"),module.factory("$tgCustomAttributesValuesResourcesProvider",["$tgRepo",resourceProvider])}.call(this),function(){var module,resourceProvider,sizeFormat,taiga;taiga=this.taiga,sizeFormat=this.taiga.sizeFormat,resourceProvider=function($repo){var _list,service;return _list=function(projectId,resource){return $repo.queryMany(resource,{project:projectId})},service={userstory:{list:function(projectId){return _list(projectId,"custom-attributes/userstory")}},task:{list:function(projectId){return _list(projectId,"custom-attributes/task")}},issue:{list:function(projectId){return _list(projectId,"custom-attributes/issue")}}},function(instance){return instance.customAttributes=service}},module=angular.module("taigaResources"),module.factory("$tgCustomAttributesResourcesProvider",["$tgRepo",resourceProvider])}.call(this),function(){var module,resourceProvider,taiga;taiga=this.taiga,resourceProvider=function($repo,$http,$urls){var service;return service={},service.get=function(type,objectId){return $repo.queryOneRaw("history/"+type,objectId)},service.deleteComment=function(type,objectId,activityId){var params,url;return url=$urls.resolve("history/"+type),url=url+"/"+objectId+"/delete_comment",params={id:activityId},$http.post(url,null,params).then(function(){return function(data){return data.data}}(this))},service.undeleteComment=function(type,objectId,activityId){var params,url;return url=$urls.resolve("history/"+type),url=url+"/"+objectId+"/undelete_comment",params={id:activityId},$http.post(url,null,params).then(function(){return function(data){return data.data}}(this))},function(instance){return instance.history=service}},module=angular.module("taigaResources"),module.factory("$tgHistoryResourcesProvider",["$tgRepo","$tgHttp","$tgUrls",resourceProvider])}.call(this),function(){var module,resourceProvider,taiga;taiga=this.taiga,resourceProvider=function($repo){var service;return service={},service.get=function(token){return $repo.queryOne("invitations",token)},function(instance){return instance.invitations=service}},module=angular.module("taigaResources"),module.factory("$tgInvitationsResourcesProvider",["$tgRepo",resourceProvider])}.call(this),function(){var generateHash,module,resourceProvider,taiga;taiga=this.taiga,generateHash=taiga.generateHash,resourceProvider=function($repo,$http,$urls,$storage,$q){var filtersHashSuffix,hashSuffix,myFiltersHashSuffix,service;return service={},hashSuffix="issues-queryparams",filtersHashSuffix="issues-filters",myFiltersHashSuffix="issues-my-filters",service.get=function(projectId,issueId){var params;return params=service.getQueryParams(projectId),params.project=projectId,$repo.queryOne("issues",issueId,params)},service.getByRef=function(projectId,ref){var params;return params=service.getQueryParams(projectId),params.project=projectId,params.ref=ref,$repo.queryOne("issues","by_ref",params)},service.list=function(projectId,filters,options){var params;return params={project:projectId},params=_.extend({},params,filters||{}),service.storeQueryParams(projectId,params),$repo.queryPaginated("issues",params,options)},service.bulkCreate=function(projectId,data){var params,url;return url=$urls.resolve("bulk-create-issues"),params={project_id:projectId,bulk_issues:data},$http.post(url,params)},service.stats=function(projectId){return $repo.queryOneRaw("projects",projectId+"/issues_stats")},service.filtersData=function(projectId){return $repo.queryOneRaw("projects",projectId+"/issue_filters_data")},service.listValues=function(projectId,type){var params;return params={project:projectId},service.storeQueryParams(projectId,params),$repo.queryMany(type,params)},service.storeQueryParams=function(projectId,params){var hash,ns;return ns=projectId+":"+hashSuffix,hash=generateHash([projectId,ns]),$storage.set(hash,params)},service.getQueryParams=function(projectId){var hash,ns;return ns=projectId+":"+hashSuffix,hash=generateHash([projectId,ns]),$storage.get(hash)||{}},service.storeFilters=function(projectSlug,params){var hash,ns;return ns=projectSlug+":"+filtersHashSuffix,hash=generateHash([projectSlug,ns]),$storage.set(hash,params)},service.getFilters=function(projectSlug){var hash,ns;return ns=projectSlug+":"+filtersHashSuffix,hash=generateHash([projectSlug,ns]),$storage.get(hash)||{}},service.storeMyFilters=function(projectId,myFilters){var deferred,hash,ns,promise,url;return deferred=$q.defer(),url=$urls.resolve("user-storage"),ns=projectId+":"+myFiltersHashSuffix,hash=generateHash([projectId,ns]),_.isEmpty(myFilters)?(promise=$http["delete"](url+"/"+hash,{key:hash,value:myFilters}),promise.then(function(){return deferred.resolve()}),promise.then(null,function(){return deferred.reject()})):(promise=$http.put(url+"/"+hash,{key:hash,value:myFilters}),promise.then(function(){return deferred.resolve()}),promise.then(null,function(){var innerPromise;return innerPromise=$http.post(""+url,{key:hash,value:myFilters}),innerPromise.then(function(){return deferred.resolve()}),innerPromise.then(null,function(){return deferred.reject()})})),deferred.promise},service.getMyFilters=function(projectId){var deferred,hash,ns,promise,url;return deferred=$q.defer(),url=$urls.resolve("user-storage"),ns=projectId+":"+myFiltersHashSuffix,hash=generateHash([projectId,ns]),promise=$http.get(url+"/"+hash),promise.then(function(data){return deferred.resolve(data.data.value)}),promise.then(null,function(){return deferred.resolve({})}),deferred.promise},function(instance){return instance.issues=service}},module=angular.module("taigaResources"),module.factory("$tgIssuesResourcesProvider",["$tgRepo","$tgHttp","$tgUrls","$tgStorage","$q",resourceProvider])}.call(this),function(){var generateHash,module,resourceProvider,taiga;taiga=this.taiga,generateHash=taiga.generateHash,resourceProvider=function($storage){var hashSuffixStatusColumnModes,hashSuffixStatusViewModes,service;return service={},hashSuffixStatusViewModes="kanban-statusviewmodels",hashSuffixStatusColumnModes="kanban-statuscolumnmodels",service.storeStatusViewModes=function(projectId,params){var hash,ns;return ns=projectId+":"+hashSuffixStatusViewModes,hash=generateHash([projectId,ns]),$storage.set(hash,params)},service.getStatusViewModes=function(projectId){var hash,ns;return ns=projectId+":"+hashSuffixStatusViewModes,hash=generateHash([projectId,ns]),$storage.get(hash)||{}},service.storeStatusColumnModes=function(projectId,params){var hash,ns;return ns=projectId+":"+hashSuffixStatusColumnModes,hash=generateHash([projectId,ns]),$storage.set(hash,params)},service.getStatusColumnModes=function(projectId){var hash,ns;return ns=projectId+":"+hashSuffixStatusColumnModes,hash=generateHash([projectId,ns]),$storage.get(hash)||{}},function(instance){return instance.kanban=service}},module=angular.module("taigaResources"),module.factory("$tgKanbanResourcesProvider",["$tgStorage",resourceProvider])}.call(this),function(){var module,resourceProvider,taiga;taiga=this.taiga,resourceProvider=function($repo,$urls,$http){var service;return service={},service.render=function(projectId,content){var params,url;return(null==content||""===content)&&(content=" "),params={project_id:projectId,content:content},url=$urls.resolve("wiki"),$http.post(url+"/render",params).then(function(){return function(data){return data.data}}(this))},function(instance){return instance.mdrender=service}},module=angular.module("taigaResources"),module.factory("$tgMdRenderResourcesProvider",["$tgRepo","$tgUrls","$tgHttp",resourceProvider])}.call(this),function(){var module,resourceProvider,taiga;taiga=this.taiga,resourceProvider=function($repo,$http,$urls){var service;return service={},service.get=function(id){return $repo.queryOne("memberships",id)},service.list=function(projectId,filters,enablePagination){var options,params;return null==enablePagination&&(enablePagination=!0),params={project:projectId},params=_.extend({},params,filters||{}),enablePagination?$repo.queryPaginated("memberships",params):$repo.queryMany("memberships",params,options={enablePagination:enablePagination})},service.listByUser=function(userId,filters){var params;return params={user:userId},params=_.extend({},params,filters||{}),$repo.queryPaginated("memberships",params)},service.resendInvitation=function(id){var url;return url=$urls.resolve("memberships"),$http.post(url+"/"+id+"/resend_invitation",{})},service.bulkCreateMemberships=function(projectId,data,invitation_extra_text){var params,url;return url=$urls.resolve("bulk-create-memberships"),params={project_id:projectId,bulk_memberships:data,invitation_extra_text:invitation_extra_text},$http.post(url,params)},function(instance){return instance.memberships=service}},module=angular.module("taigaResources"),module.factory("$tgMembershipsResourcesProvider",["$tgRepo","$tgHttp","$tgUrls",resourceProvider])}.call(this),function(){var module,resourceProvider;resourceProvider=function($repo){var service;return service={},service.list=function(projectId,module){return $repo.queryOneAttribute("project-modules",projectId,module)},function(instance){return instance.modules=service}},module=angular.module("taigaResources"),module.factory("$tgModulesResourcesProvider",["$tgRepo",resourceProvider])}.call(this),function(){var module,resourceProvider,taiga;taiga=this.taiga,resourceProvider=function($repo){var service;return service={},service.get=function(id){return $repo.queryOne("notify-policies",id)},service.list=function(filters){var params;return params=_.extend({},params,filters||{}),$repo.queryMany("notify-policies",params)},function(instance){return instance.notifyPolicies=service}},module=angular.module("taigaResources"),module.factory("$tgNotifyPoliciesResourcesProvider",["$tgRepo","$tgHttp","$tgUrls",resourceProvider])}.call(this),function(){var module,resourceProvider,sizeFormat,taiga;taiga=this.taiga,sizeFormat=this.taiga.sizeFormat,resourceProvider=function($config,$repo,$http,$urls,$auth,$q){var service;return service={},service.get=function(projectId){return $repo.queryOne("projects",projectId)},service.getBySlug=function(projectSlug){return $repo.queryOne("projects","by_slug?slug="+projectSlug)},service.list=function(){return $repo.queryMany("projects")},service.listByMember=function(memberId){var params;return params={member:memberId},$repo.queryMany("projects",params)},service.templates=function(){return $repo.queryMany("project-templates")},service.usersList=function(projectId){var params;return params={project:projectId},$repo.queryMany("users",params)},service.rolesList=function(projectId){var params;return params={project:projectId},$repo.queryMany("roles",params)},service.stats=function(projectId){return $repo.queryOneRaw("projects",projectId+"/stats")},service.regenerate_userstories_csv_uuid=function(projectId){var url;return url=$urls.resolve("projects")+"/"+projectId+"/regenerate_userstories_csv_uuid",$http.post(url)},service.regenerate_issues_csv_uuid=function(projectId){var url;return url=$urls.resolve("projects")+"/"+projectId+"/regenerate_issues_csv_uuid",$http.post(url)},service.regenerate_tasks_csv_uuid=function(projectId){var url;return url=$urls.resolve("projects")+"/"+projectId+"/regenerate_tasks_csv_uuid",$http.post(url)},service.leave=function(projectId){var url;return url=$urls.resolve("projects")+"/"+projectId+"/leave",$http.post(url)},service.memberStats=function(projectId){return $repo.queryOneRaw("projects",projectId+"/member_stats")},service.tagsColors=function(projectId){return $repo.queryOne("projects",projectId+"/tags_colors")},service["export"]=function(projectId){var url;return url=$urls.resolve("exporter")+"/"+projectId,$http.get(url)},service["import"]=function(file,statusUpdater){var complete,data,defered,failed,maxFileSize,response,uploadComplete,uploadFailed,uploadProgress,xhr;return defered=$q.defer(),maxFileSize=$config.get("maxUploadFileSize",null),maxFileSize&&file.size>maxFileSize?(response={status:413,data:{_error_message:"'"+file.name+"' ("+sizeFormat(file.size)+") is too heavy for our oompa loompas, try it with a smaller than ("+sizeFormat(maxFileSize)+")"}},defered.reject(response),defered.promise):(uploadProgress=function(){return function(evt){var message,percent;return percent=Math.round(evt.loaded/evt.total*100),message="Uloaded "+sizeFormat(evt.loaded)+" of "+sizeFormat(evt.total),statusUpdater("in-progress",null,message,percent)}}(this),uploadComplete=function(){return function(){return statusUpdater("done","Importing Project","This process can take a while, please keep the window open.")}}(this),uploadFailed=function(){return function(){return statusUpdater("error")}}(this),complete=function(){return function(evt){var ref;response={};try{response.data=JSON.parse(evt.target.responseText)}catch(_error){response.data={}}return response.status=evt.target.status,(201===(ref=response.status)||202===ref)&&defered.resolve(response),defered.reject(response)}}(this),failed=function(){return function(){return defered.reject("fail")}}(this),data=new FormData,data.append("dump",file),xhr=new XMLHttpRequest,xhr.upload.addEventListener("progress",uploadProgress,!1),xhr.upload.addEventListener("load",uploadComplete,!1),xhr.upload.addEventListener("error",uploadFailed,!1),xhr.upload.addEventListener("abort",uploadFailed,!1),xhr.addEventListener("load",complete,!1),xhr.addEventListener("error",failed,!1),xhr.open("POST",$urls.resolve("importer")),xhr.setRequestHeader("Authorization","Bearer "+$auth.getToken()),xhr.setRequestHeader("Accept","application/json"),xhr.send(data),defered.promise)},function(instance){return instance.projects=service}},module=angular.module("taigaResources"),module.factory("$tgProjectsResourcesProvider",["$tgConfig","$tgRepo","$tgHttp","$tgUrls","$tgAuth","$q",resourceProvider])}.call(this),function(){var module,resourceProvider,taiga;taiga=this.taiga,resourceProvider=function($repo){var service;return service={},service.get=function(id){return $repo.queryOne("roles",id)},service.list=function(projectId){return $repo.queryMany("roles",{project:projectId})},function(instance){return instance.roles=service}},module=angular.module("taigaResources"),module.factory("$tgRolesResourcesProvider",["$tgRepo","$tgHttp","$tgUrls",resourceProvider])}.call(this),function(){var module,resourceProvider,taiga;taiga=this.taiga,resourceProvider=function($repo,$urls,$http){var service;return service={},service["do"]=function(projectId,term){var params,url;return url=$urls.resolve("search"),params={project:projectId,text:term,get_all:!1},$http.get(url,params).then(function(data){return data.data})},function(instance){return instance.search=service}},module=angular.module("taigaResources"),module.factory("$tgSearchResourcesProvider",["$tgRepo","$tgUrls","$tgHttp",resourceProvider])}.call(this),function(){var generateHash,module,resourceProvider,taiga;taiga=this.taiga,generateHash=taiga.generateHash,resourceProvider=function($repo,$model){var service;return service={},service.get=function(projectId,sprintId){return $repo.queryOne("milestones",sprintId).then(function(sprint){var uses;return uses=sprint.user_stories,uses=_.map(uses,function(u){return $model.make_model("userstories",u)}),sprint._attrs.user_stories=uses,sprint})},service.stats=function(projectId,sprintId){return $repo.queryOneRaw("milestones",sprintId+"/stats")},service.list=function(projectId,filters){var params;return params={project:projectId},params=_.extend({},params,filters||{}),$repo.queryMany("milestones",params).then(function(){return function(milestones){var i,len,m,uses;for(i=0,len=milestones.length;len>i;i++)m=milestones[i],uses=m.user_stories,uses=_.map(uses,function(u){return $model.make_model("userstories",u)}),m._attrs.user_stories=uses;return milestones}}(this))},function(instance){return instance.sprints=service}},module=angular.module("taigaResources"),module.factory("$tgSprintsResourcesProvider",["$tgRepo","$tgModel","$tgStorage",resourceProvider])}.call(this),function(){var generateHash,module,resourceProvider,taiga;taiga=this.taiga,generateHash=taiga.generateHash,resourceProvider=function($repo,$http,$urls,$storage){var hashSuffix,hashSuffixStatusColumnModes,hashSuffixUsRowModes,service;return service={},hashSuffix="tasks-queryparams",hashSuffixStatusColumnModes="tasks-statuscolumnmodels",hashSuffixUsRowModes="tasks-usrowmodels",service.get=function(projectId,taskId){var params;return params=service.getQueryParams(projectId),params.project=projectId,$repo.queryOne("tasks",taskId,params)},service.getByRef=function(projectId,ref){var params;return params=service.getQueryParams(projectId),params.project=projectId,params.ref=ref,$repo.queryOne("tasks","by_ref",params) +},service.list=function(projectId,sprintId,userStoryId){var params;return null==sprintId&&(sprintId=null),null==userStoryId&&(userStoryId=null),params={project:projectId},sprintId&&(params.milestone=sprintId),userStoryId&&(params.user_story=userStoryId),service.storeQueryParams(projectId,params),$repo.queryMany("tasks",params)},service.bulkCreate=function(projectId,sprintId,usId,data){var params,url;return url=$urls.resolve("bulk-create-tasks"),params={project_id:projectId,sprint_id:sprintId,us_id:usId,bulk_tasks:data},$http.post(url,params).then(function(result){return result.data})},service.bulkUpdateTaskTaskboardOrder=function(projectId,data){var params,url;return url=$urls.resolve("bulk-update-task-taskboard-order"),params={project_id:projectId,bulk_tasks:data},$http.post(url,params)},service.listValues=function(projectId,type){var params;return params={project:projectId},$repo.queryMany(type,params)},service.storeQueryParams=function(projectId,params){var hash,ns;return ns=projectId+":"+hashSuffix,hash=generateHash([projectId,ns]),$storage.set(hash,params)},service.getQueryParams=function(projectId){var hash,ns;return ns=projectId+":"+hashSuffix,hash=generateHash([projectId,ns]),$storage.get(hash)||{}},service.storeStatusColumnModes=function(projectId,params){var hash,ns;return ns=projectId+":"+hashSuffixStatusColumnModes,hash=generateHash([projectId,ns]),$storage.set(hash,params)},service.getStatusColumnModes=function(projectId){var hash,ns;return ns=projectId+":"+hashSuffixStatusColumnModes,hash=generateHash([projectId,ns]),$storage.get(hash)||{}},service.storeUsRowModes=function(projectId,sprintId,params){var hash,ns;return ns=projectId+":"+hashSuffixUsRowModes,hash=generateHash([projectId,sprintId,ns]),$storage.set(hash,params)},service.getUsRowModes=function(projectId,sprintId){var hash,ns;return ns=projectId+":"+hashSuffixUsRowModes,hash=generateHash([projectId,sprintId,ns]),$storage.get(hash)||{}},function(instance){return instance.tasks=service}},module=angular.module("taigaResources"),module.factory("$tgTasksResourcesProvider",["$tgRepo","$tgHttp","$tgUrls","$tgStorage",resourceProvider])}.call(this),function(){var module,resourceProvider,sizeFormat,taiga;taiga=this.taiga,sizeFormat=this.taiga.sizeFormat,resourceProvider=function($config,$repo,$http,$urls,$q){var service;return service={},service.changeAvatar=function(file){var data,defered,maxFileSize,options,response,url;return maxFileSize=$config.get("maxUploadFileSize",null),maxFileSize&&file.size>maxFileSize?(response={status:413,data:{_error_message:"'"+file.name+"' ("+sizeFormat(file.size)+") is too heavy for our oompa loompas, try it with a smaller than ("+sizeFormat(maxFileSize)+")"}},defered=$q.defer(),defered.reject(response),defered.promise):(data=new FormData,data.append("avatar",file),options={transformRequest:angular.identity,headers:{"Content-Type":void 0}},url=$urls.resolve("users")+"/change_avatar",$http.post(url,data,{},options))},service.removeAvatar=function(){var url;return url=$urls.resolve("users")+"/remove_avatar",$http.post(url)},service.changePassword=function(currentPassword,newPassword){var data,url;return url=$urls.resolve("users")+"/change_password",data={current_password:currentPassword,password:newPassword},$http.post(url,data)},function(instance){return instance.userSettings=service}},module=angular.module("taigaResources"),module.factory("$tgUserSettingsResourcesProvider",["$tgConfig","$tgRepo","$tgHttp","$tgUrls","$q",resourceProvider])}.call(this),function(){var generateHash,module,resourceProvider,taiga;taiga=this.taiga,generateHash=taiga.generateHash,resourceProvider=function($repo,$http,$urls,$storage){var hashSuffix,service;return service={},hashSuffix="userstories-queryparams",service.get=function(projectId,usId){var params;return params=service.getQueryParams(projectId),params.project=projectId,$repo.queryOne("userstories",usId,params)},service.getByRef=function(projectId,ref){var params;return params=service.getQueryParams(projectId),params.project=projectId,params.ref=ref,$repo.queryOne("userstories","by_ref",params)},service.listUnassigned=function(projectId,filters){var params;return params={project:projectId,milestone:"null"},params=_.extend({},params,filters||{}),service.storeQueryParams(projectId,params),$repo.queryMany("userstories",params)},service.listAll=function(projectId,filters){var params;return params={project:projectId},params=_.extend({},params,filters||{}),service.storeQueryParams(projectId,params),$repo.queryMany("userstories",params)},service.bulkCreate=function(projectId,status,bulk){var data,url;return data={project_id:projectId,status_id:status,bulk_stories:bulk},url=$urls.resolve("bulk-create-us"),$http.post(url,data)},service.bulkUpdateBacklogOrder=function(projectId,data){var params,url;return url=$urls.resolve("bulk-update-us-backlog-order"),params={project_id:projectId,bulk_stories:data},$http.post(url,params)},service.bulkUpdateSprintOrder=function(projectId,data){var params,url;return url=$urls.resolve("bulk-update-us-sprint-order"),params={project_id:projectId,bulk_stories:data},$http.post(url,params)},service.bulkUpdateKanbanOrder=function(projectId,data){var params,url;return url=$urls.resolve("bulk-update-us-kanban-order"),params={project_id:projectId,bulk_stories:data},$http.post(url,params)},service.listValues=function(projectId,type){var params;return params={project:projectId},service.storeQueryParams(projectId,params),$repo.queryMany(type,params)},service.storeQueryParams=function(projectId,params){var hash,ns;return ns=projectId+":"+hashSuffix,hash=generateHash([projectId,ns]),$storage.set(hash,params)},service.getQueryParams=function(projectId){var hash,ns;return ns=projectId+":"+hashSuffix,hash=generateHash([projectId,ns]),$storage.get(hash)||{}},service.storeShowTags=function(projectId,showTags){var hash;return hash=generateHash([projectId,"showTags"]),$storage.set(hash,showTags)},service.getShowTags=function(projectId){var hash;return hash=generateHash([projectId,"showTags"]),$storage.get(hash)||null},function(instance){return instance.userstories=service}},module=angular.module("taigaResources"),module.factory("$tgUserstoriesResourcesProvider",["$tgRepo","$tgHttp","$tgUrls","$tgStorage",resourceProvider])}.call(this),function(){var module,resourceProvider;resourceProvider=function($repo,$urls,$http){var service;return service={},service.list=function(webhookId){var params;return params={webhook:webhookId},$repo.queryMany("webhooklogs",params)},service.resend=function(webhooklogId){var url;return url=$urls.resolve("webhooklogs-resend",webhooklogId),$http.post(url)},function(instance){return instance.webhooklogs=service}},module=angular.module("taigaResources"),module.factory("$tgWebhookLogsResourcesProvider",["$tgRepo","$tgUrls","$tgHttp",resourceProvider])}.call(this),function(){var module,resourceProvider;resourceProvider=function($repo,$urls,$http){var service;return service={},service.list=function(projectId){var params;return params={project:projectId},$repo.queryMany("webhooks",params)},service.test=function(webhookId){var url;return url=$urls.resolve("webhooks-test",webhookId),$http.post(url)},function(instance){return instance.webhooks=service}},module=angular.module("taigaResources"),module.factory("$tgWebhooksResourcesProvider",["$tgRepo","$tgUrls","$tgHttp",resourceProvider])}.call(this),function(){var module,resourceProvider,taiga;taiga=this.taiga,resourceProvider=function($repo){var service;return service={},service.get=function(wikiId){return $repo.queryOne("wiki",wikiId)},service.getBySlug=function(projectId,slug){return $repo.queryOne("wiki","by_slug?project="+projectId+"&slug="+slug)},service.listLinks=function(projectId){return $repo.queryMany("wiki-links",{project:projectId})},function(instance){return instance.wiki=service}},module=angular.module("taigaResources"),module.factory("$tgWikiResourcesProvider",["$tgRepo","$tgHttp","$tgUrls",resourceProvider])}.call(this),function(){var UserChangePasswordController,UserChangePasswordDirective,debounce,mixOf,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,debounce=this.taiga.debounce,module=angular.module("taigaUserSettings"),UserChangePasswordController=function(superClass){function UserChangePasswordController(scope,rootscope,repo,confirm,rs,params,q,location,navUrls,auth){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.navUrls=navUrls,this.auth=auth,this.scope.sectionName="Change Password",this.scope.project={},this.scope.user=this.auth.getUser(),promise=this.loadInitialData(),promise.then(null,this.onInitialDataError.bind(this))}return extend(UserChangePasswordController,superClass),UserChangePasswordController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$tgNavUrls","$tgAuth"],UserChangePasswordController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return _this.scope.project=project,_this.scope.$emit("project:loaded",project),project}}(this))},UserChangePasswordController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this))},UserChangePasswordController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("UserChangePasswordController",UserChangePasswordController),UserChangePasswordDirective=function($rs,$confirm,$loading){var link;return link=function($scope,$el){var submit,submitButton;return submit=debounce(2e3,function(){return function(event){var promise;return event.preventDefault(),$scope.newPassword1!==$scope.newPassword2?void $confirm.notify("error","The passwords dosn't match"):($loading.start(submitButton),promise=$rs.userSettings.changePassword($scope.currentPassword,$scope.newPassword1),promise.then(function(){return $loading.finish(submitButton),$confirm.notify("success")}),promise.then(null,function(response){return $loading.finish(submitButton),$confirm.notify("error",response.data._error_message)}))}}(this)),submitButton=$el.find(".submit-button"),$el.on("submit","form",submit),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgUserChangePassword",["$tgResources","$tgConfirm","$tgLoading",UserChangePasswordDirective])}.call(this),function(){var DeleteUserDirective,bindOnce,debounce,module,taiga;taiga=this.taiga,bindOnce=this.taiga.bindOnce,debounce=this.taiga.debounce,module=angular.module("taigaUserSettings"),DeleteUserDirective=function($repo,$rootscope,$auth,$location,$navUrls,lightboxService){var link;return link=function($scope,$el){var submit;return $scope.$on("deletelightbox:new",function(){return lightboxService.open($el)}),$scope.$on("$destroy",function(){return $el.off()}),submit=function(){var promise;return promise=$repo.remove($scope.user),promise.then(function(){return lightboxService.close($el),$auth.logout(),$location.path($navUrls.resolve("login"))}),promise.then(null,function(){return console.log("FAIL")})},$el.on("click",".button-red",function(event){return event.preventDefault(),lightboxService.close($el)}),$el.on("click",".button-green",debounce(2e3,function(event){return event.preventDefault(),submit()}))},{link:link,templateUrl:"user/lightbox/lightbox-delete-account.html"}},module.directive("tgLbDeleteUser",["$tgRepo","$rootScope","$tgAuth","$tgLocation","$tgNavUrls","lightboxService",DeleteUserDirective])}.call(this),function(){var TaigaAvatarModelDirective,UserAvatarDirective,UserProfileDirective,UserSettingsController,debounce,mixOf,module,sizeFormat,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,sizeFormat=this.taiga.sizeFormat,module=angular.module("taigaUserSettings"),debounce=this.taiga.debounce,UserSettingsController=function(superClass){function UserSettingsController(scope,rootscope,config,repo,confirm,rs,params,q,location,navUrls,auth){var maxFileSize,promise;this.scope=scope,this.rootscope=rootscope,this.config=config,this.repo=repo,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.navUrls=navUrls,this.auth=auth,this.scope.sectionName="User Profile",this.scope.project={},this.scope.user=this.auth.getUser(),maxFileSize=this.config.get("maxUploadFileSize",null),maxFileSize&&(this.scope.maxFileSizeMsg="[Max, size: "+sizeFormat(maxFileSize)),promise=this.loadInitialData(),promise.then(null,this.onInitialDataError.bind(this))}return extend(UserSettingsController,superClass),UserSettingsController.$inject=["$scope","$rootScope","$tgConfig","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$tgNavUrls","$tgAuth"],UserSettingsController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return _this.scope.project=project,_this.scope.$emit("project:loaded",project),project}}(this))},UserSettingsController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this))},UserSettingsController.prototype.openDeleteLightbox=function(){return this.rootscope.$broadcast("deletelightbox:new",this.scope.user)},UserSettingsController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("UserSettingsController",UserSettingsController),UserProfileDirective=function($confirm,$auth,$repo){var link;return link=function($scope,$el){var submit;return submit=debounce(2e3,function(){return function(event){var changeEmail,form,onError,onSuccess;return event.preventDefault(),form=$el.find("form").checksley(),form.validate()?(changeEmail=$scope.user.isAttributeModified("email"),onSuccess=function(data){return $auth.setUser(data),changeEmail?$confirm.success("Check your inbox!
We have sent a mail to your account
with the instructions to set your new address"):$confirm.notify("success")},onError=function(data){return form.setErrors(data),$confirm.notify("error",data._error_message)},$repo.save($scope.user).then(onSuccess,onError)):void 0}}(this)),$el.on("submit","form",submit),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgUserProfile",["$tgConfirm","$tgAuth","$tgRepo",UserProfileDirective]),UserAvatarDirective=function($auth,$model,$rs,$confirm){var link;return link=function($scope,$el){var onError,onSuccess,showSizeInfo;return showSizeInfo=function(){return $el.find(".size-info").removeClass("hidden")},onSuccess=function(response){var user;return user=$model.make_model("users",response.data),$auth.setUser(user),$scope.user=user,$el.find(".overlay").addClass("hidden"),$confirm.notify("success")},onError=function(response){return 413===response.status&&showSizeInfo(),$el.find(".overlay").addClass("hidden"),$confirm.notify("error",response.data._error_message)},$el.on("click",".js-change-avatar",function(){return $el.find("#avatar-field").click()}),$el.on("change","#avatar-field",function(){return $scope.avatarAttachment?($el.find(".overlay").removeClass("hidden"),$rs.userSettings.changeAvatar($scope.avatarAttachment).then(onSuccess,onError)):void 0}),$el.on("click","a.use-gravatar",function(){return $el.find(".overlay").removeClass("hidden"),$rs.userSettings.removeAvatar().then(onSuccess,onError)}),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgUserAvatar",["$tgAuth","$tgModel","$tgResources","$tgConfirm",UserAvatarDirective]),TaigaAvatarModelDirective=function($parse){var link;return link=function($scope,$el,$attrs){var model,modelSetter;return model=$parse($attrs.tgAvatarModel),modelSetter=model.assign,$el.bind("change",function(){return $scope.$apply(function(){return modelSetter($scope,$el[0].files[0])})})},{link:link}},module.directive("tgAvatarModel",["$parse",TaigaAvatarModelDirective])}.call(this),function(){var UserSettingsNavigationDirective,module;UserSettingsNavigationDirective=function(){var link;return link=function($scope,$el,$attrs){var section;return section=$attrs.tgUserSettingsNavigation,$el.find(".active").removeClass("active"),$el.find("#usersettingsmenu-"+section+" a").addClass("active"),$scope.$on("$destroy",function(){return $el.off()})},{link:link}},module=angular.module("taigaUserSettings"),module.directive("tgUserSettingsNavigation",UserSettingsNavigationDirective)}.call(this),function(){var UserNotificationsController,UserNotificationsDirective,UserNotificationsListDirective,bindOnce,mixOf,module,taiga,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;taiga=this.taiga,mixOf=this.taiga.mixOf,bindOnce=this.taiga.bindOnce,module=angular.module("taigaUserSettings"),UserNotificationsController=function(superClass){function UserNotificationsController(scope,rootscope,repo,confirm,rs,params,q,location,navUrls,auth){var promise;this.scope=scope,this.rootscope=rootscope,this.repo=repo,this.confirm=confirm,this.rs=rs,this.params=params,this.q=q,this.location=location,this.navUrls=navUrls,this.auth=auth,this.scope.sectionName="Email Notifications",this.scope.project={},this.scope.user=this.auth.getUser(),promise=this.loadInitialData(),promise.then(null,this.onInitialDataError.bind(this))}return extend(UserNotificationsController,superClass),UserNotificationsController.$inject=["$scope","$rootScope","$tgRepo","$tgConfirm","$tgResources","$routeParams","$q","$tgLocation","$tgNavUrls","$tgAuth"],UserNotificationsController.prototype.loadProject=function(){return this.rs.projects.get(this.scope.projectId).then(function(_this){return function(project){return _this.scope.project=project,_this.scope.$emit("project:loaded",project),project}}(this))},UserNotificationsController.prototype.loadNotifyPolicies=function(){return this.rs.notifyPolicies.list().then(function(_this){return function(notifyPolicies){return _this.scope.notifyPolicies=notifyPolicies,notifyPolicies}}(this))},UserNotificationsController.prototype.loadInitialData=function(){var promise;return promise=this.repo.resolve({pslug:this.params.pslug}).then(function(_this){return function(data){return _this.scope.projectId=data.project,data}}(this)),promise.then(function(_this){return function(){return _this.loadProject()}}(this)).then(function(_this){return function(){return _this.loadNotifyPolicies()}}(this))},UserNotificationsController}(mixOf(taiga.Controller,taiga.PageMixin)),module.controller("UserNotificationsController",UserNotificationsController),UserNotificationsDirective=function(){var link;return link=function($scope,$el){return $scope.$on("$destroy",function(){return $el.off()})},{link:link}},module.directive("tgUserNotifications",UserNotificationsDirective),UserNotificationsListDirective=function($repo,$confirm){var link,template;return template=_.template('<% _.each(notifyPolicies, function (notifyPolicy, index) { %>\n
\n
<%- notifyPolicy.project_name %>
\n
\n
\n checked="checked"<% } %>/>\n \n
\n
\n
\n
\n checked="checked"<% } %> />\n \n
\n
\n
\n
\n checked="checked"<% } %> />\n \n
\n
\n
\n<% }) %>'),link=function($scope,$el,$attrs){var render;return render=function(){return $el.off(),$el.html(template({notifyPolicies:$scope.notifyPolicies})),$el.on("change","input[type=radio]",function(event){var onError,onSuccess,policy,policyIndex,prev_level,target;return target=angular.element(event.currentTarget),policyIndex=target.parents(".policy-table-row").data("index"),policy=$scope.notifyPolicies[policyIndex],prev_level=policy.notify_level,policy.notify_level=parseInt(target.val(),10),onSuccess=function(){return $confirm.notify("success")},onError=function(){return $confirm.notify("error"),target.parents(".policy-table-row").find("input[value="+prev_level+"]").prop("checked",!0)},$repo.save(policy).then(onSuccess,onError)})},$scope.$on("$destroy",function(){return $el.off()}),bindOnce($scope,$attrs.ngModel,render)},{link:link}},module.directive("tgUserNotificationsList",["$tgRepo","$tgConfirm",UserNotificationsListDirective])}.call(this),function(){var module;module=angular.module("taigaPlugins",["ngRoute"])}.call(this),function(){var configure,module,taiga;taiga=this.taiga,module=angular.module("taigaPlugins"),configure=function($routeProvider){return $routeProvider.when("/humans.html",{templateUrl:"/plugins/humanshtml/templates/humans.html"})},module.config(["$routeProvider",configure])}.call(this),function(){var TermsNoticeDirective,module,taiga,template;taiga=this.taiga,module=angular.module("taigaPlugins"),template=_.template('

\n By clicking "Sign up", you agree to our
\n
terms of service\n and\n privacy policy.\n

'),TermsNoticeDirective=function($config){var privacyPolicyUrl,templateFn,termsOfServiceUrl;return privacyPolicyUrl=$config.get("privacyPolicyUrl"),termsOfServiceUrl=$config.get("termsOfServiceUrl"),templateFn=function(){var ctx;return privacyPolicyUrl&&termsOfServiceUrl?(ctx={termsUrl:termsOfServiceUrl,privacyUrl:privacyPolicyUrl},template(ctx)):""},{scope:{},restrict:"AE",template:templateFn}},module.directive("tgTermsNotice",["$tgConfig",TermsNoticeDirective])}.call(this),angular.module("taigaBase").value("localesEn",{checksley:{defaultMessage:"This value seems to be invalid.","type-email":"This value should be a valid email.","type-url":"This value should be a valid url.","type-urlstrict":"This value should be a valid url.","type-number":"This value should be a valid number.","type-digits":"This value should be digits.","type-dateIso":"This value should be a valid date (YYYY-MM-DD).","type-alphanum":"This value should be alphanumeric.","type-phone":"This value should be a valid phone number.",notnull:"This value should not be null.",notblank:"This value should not be blank.",required:"This value is required.",regexp:"This value seems to be invalid.",min:"This value should be greater than or equal to %s.",max:"This value should be lower than or equal to %s.",range:"This value should be between %s and %s.",minlength:"This value is too short. It should have %s characters or more.",maxlength:"This value is too long. It should have %s characters or less.",rangelength:"This value length is invalid. It should be between %s and %s characters long.",mincheck:"You must select at least %s choices.",maxcheck:"You must select %s choices or less.",rangecheck:"You must select between %s and %s choices.",equalto:"This value should be the same."},common:{subject:"Subject",save:"Save",blocked:"Blocked",cancel:"Cancel",status:"Status","new-bulk":"New bulk insert","one-item-line":"One item per line..."},pagination:{next:"Next",prev:"Previous"},"markdown-editor":{"heading-1":"First Level Heading","heading-2":"Second Level Heading","heading-3":"Third Level Heading",bold:"Bold",italic:"Italic",strike:"Strike","bulleted-list":"Bulleted List","numeric-list":"Numeric List",picture:"Picture",link:"Link",quotes:"Quotes","code-block":"Code Block / Code",preview:"Preview",help:"Help",placeholder:"Your title here...","link-placeholder":"Your text to link here..."},us:{"title-new":"New User Story","team-requirement":"Team Requirement","client-requirement":"Client Requirement"}}); //# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/dist/js/app.js.map b/dist/js/app.js.map index f9ffbfa..8116815 100644 --- a/dist/js/app.js.map +++ b/dist/js/app.js.map @@ -1 +1 @@ -{"version":3,"sources":["app.js","classes.js","utils.js","controllerMixins.js","admin.js","auth.js","backlog.js","base.js","common.js","events.js","feedback.js","integrations.js","issues.js","kanban.js","locales.js","nav.js","projects.js","related-tasks.js","resources.js","search.js","taskboard.js","tasks.js","team.js","user-settings.js","userstories.js","wiki.js","analytics.js","attachments.js","bind-scope.js","components.js","confirm.js","custom-field-values.js","estimation.js","filters.js","history.js","importer.js","lightboxes.js","loader.js","loading.js","popovers.js","raven-logger.js","tags.js","wisiwyg.js","main.js","sortable.js","sprints.js","charts.js","detail.js","list.js","memberships.js","project-profile.js","project-values.js","roles.js","third-parties.js","bind.js","conf.js","contrib.js","http.js","i18n.js","location.js","model.js","navurls.js","repository.js","storage.js","urls.js","custom-attributes-values.js","custom-attributes.js","invitations.js","mdrender.js","modules.js","notify-policies.js","webhooklogs.js","webhooks.js","change-password.js","notifications.js","humanshtml/humanshtml.js","terms/terms.js","locales.en.js"],"names":["configure","init","module","modules","taiga","this","taigaContribPlugins","generateHash","components","_","map","x","JSON","stringify","hex_sha1","join","generateUniqueSessionIdentifier","date","randomNumber","Date","getTime","Math","floor","random","sessionId","$routeProvider","$locationProvider","$httpProvider","$provide","$tgEventsProvider","tgLoaderProvider","$compileProvider","authHttpIntercept","defaultHeaders","versionCheckHttpIntercept","when","templateUrl","resolve","loader","add","reloadOnSearch","redirectTo","params","pslug","otherwise","html5Mode","enabled","requireBase","Content-Type","Accept-Language","X-Session-Id","defaults","headers","patch","post","put","get","setSessionId","$q","$location","$navUrls","$lightboxService","httpResponseError","response","nextPath","status","closeAll","path","replace","url","search","reject","responseError","factory","interceptors","push","$confirm","versionErrorMsg","data","version","notify","window","checksley","updateValidators","linewidth","val","width","lines","valid","nl2br","split","every","line","length","updateMessages","debugInfoEnabled","taigaConfig","debugInfo","$log","$i18n","$config","$rootscope","$auth","$events","$analytics","initialize","debug","contribPlugins","adminPlugins","where","type","isAuthenticated","setupConnection","concat","plugin","angular","config","run","call","TaigaBase","TaigaController","TaigaService","extend","child","parent","ctor","constructor","key","hasProp","prototype","__super__","hasOwnProperty","bind","fn","me","apply","arguments","superClass","onInitialDataError","xhr","location","navUrls","q","Base","Service","Controller","bindMethods","bindOnce","cancelTimeout","debounce","debounceLeading","groupBy","joinStr","mixOf","scopeDefer","sizeFormat","slugify","startswith","timeout","toString","toggleText","trim","unslugify","indexOf","item","i","l","slice","str","breakTag","object","dependencies","methods","keys","forIn","value","bindAll","scope","attr","continuation","delBind","$eval","$watch","Mixed","base","method","mixin","mixins","name","ref","char","capitalize","element","texts","nextTextPosition","text","coll","pred","len","result","wait","setTimeout","timeoutVar","clearTimeout","func","defer","$apply","isNumber","isString","isPlainObject","isUndefined","leading","trailing","str1","str2","startsWith","input","precision","number","size","units","isNaN","parseFloat","isFinite","log","pow","toFixed","FiltersMixin","PageMixin","fillUsersAndRoles","users","roles","activeUsers","availableRoles","filter","user","is_active","sortBy","activeUsersById","e","id","usersById","project","memberships","uniq","computableRoles","contains","loadUsersAndRoles","promise","all","rs","projects","usersList","projectId","rolesList","then","_this","results","selectFilter","load","existing","compact","isInCurrentRouteParams","noreload","replaceFilter","replaceAllFilters","filters","unselectFilter","newValues","parsedValues","isEmpty","AuthService","CancelAccountDirective","ChangeEmailDirective","ChangePasswordFromRecoveryDirective","ForgotPasswordDirective","InvitationDirective","LoginDirective","PublicRegisterMessageDirective","RegisterDirective","rootscope","storage","model","http","urls","$inject","getUser","userData","make_model","setUser","auth","$broadcast","default_language","set","getAttrs","clear","remove","setToken","token","getToken","removeToken","login","clone","auth_token","logout","register","getInvitation","invitations","acceptInvitiationWithNewUser","acceptInvitiationWithExistingUser","forgotPassword","changePasswordFromRecovery","changeEmail","cancelAccount","service","templates","template","templateFn","publicRegisterEnabled","restrict","directive","$routeParams","link","$scope","$el","onError","onSuccess","submit","nextUrl","event","form","loginFormType","preventDefault","Form","find","validate","username","password","on","onErrorSubmit","onSuccessSubmit","onlyOneErrorElement","trackEvent","_error_message","setErrors","success","$params","tokenInParams","loginForm","onErrorSubmitLogin","onErrorSubmitRegister","onSuccessSubmitLogin","onSuccessSubmitRegister","registerForm","submitLogin","submitRegister","invitation","dataLogin","project_slug","escape","project_name","dataRegister","$repo","$model","email_token","queryOne","cancel_token","TaigaMainDirective","$window","onresize","home","error","not-found","permission-denied","forgot-password","change-password","change-email","cancel-account","create-project","profile","project-backlog","project-taskboard","project-kanban","project-issues","project-search","project-userstories-detail","project-tasks-detail","project-issues-detail","project-wiki","project-wiki-page","project-team","project-admin-home","project-admin-project-profile-details","project-admin-project-profile-default-values","project-admin-project-profile-modules","project-admin-project-profile-export","project-admin-project-profile-reports","project-admin-project-values-status","project-admin-project-values-points","project-admin-project-values-priorities","project-admin-project-values-severities","project-admin-project-values-types","project-admin-project-values-custom-fields","project-admin-memberships","project-admin-roles","project-admin-third-parties-webhooks","project-admin-third-parties-github","project-admin-third-parties-gitlab","project-admin-third-parties-bitbucket","project-admin-contrib","user-settings-user-profile","user-settings-user-change-password","user-settings-user-avatar","user-settings-mail-notifications","$navurls","update","AnimationFrame","AppTitle","CheckPermissionDirective","ClassPermissionDirective","LimitLineLengthDirective","ProjectUrl","Qqueue","SelectedText","Template","ToggleCommentDirective","$document","getSelection","selection","createRange","render","permission","my_permissions","removeClass","$attrs","addClass","tgCheckPermission","$on","off","checkPermissions","tgClassPermissionWatchAction","unbindWatcher","className","negation","classes","animationFrame","performAnimation","tail","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","shift","$","ctx","slug","is_backlog_activated","is_kanban_activated","is_wiki_activated","is_issues_activated","maxColsPerLine","parseInt","code","keyCode","each","index","substring","deferred","lastPromise","qqueue","bindAdd","args","$templateCache","lodash","tmp","EventsProvider","EventsService","win","subscriptions","connected","pendingMessages","WebSocket","info","loc","scheme","stopExistingConnection","protocol","ltrim","host","ws","addEventListener","onOpen","onMessage","onClose","removeEventListener","close","serialize","message","isObject","sendMessage","messages","msg","send","subscribe","routingKey","callback","subscription","cmd","routing_key","unsubscribe","parse","$get","$win","$conf","provider","FeedbackDirective","$loading","submitButton","start","create","feedback","finish","open","focus","ProjectMenuDirective","ProjectsNavigationController","ProjectsNavigationDirective","navurls","projectUrl","loadInitialData","console","listByMember","filteredProjects","filterText","newProject","filterProjects","toLowerCase","controller","$timeout","tgLoader","$compile","$template","baseTemplate","hideMenu","loadingStart","overlay","projectsTemplate","difftime","timeoutValue","is","one","document","body","css","hide","disablePreventLoading","$ctrls","$ctrl","renderProjects","html","$emit","which","hasClass","show","toggleClass","currentUrl","target","currentTarget","prop","absUrl","preventLoading","require","$tgAuth","getSectionName","mainTemplate","menuEntriesTemplate","renderMainMenu","renderMenuEntries","videoConferenceUrl","sectionName","oldSectionName","targetScope","container","dom","section","feedbackEnabled","replaceWith","baseUrl","videoconferences","videoconferences_salt","popover","listener","stopPropagation","videoconferenceUrl","RelatedTaskAssignedToInlineEditionDirective","RelatedTaskCreateButtonDirective","RelatedTaskCreateFormDirective","RelatedTaskRowDirective","RelatedTasksDirective","templateEdit","templateView","renderEdit","renderView","saveTask","task","subject","save","$modelValue","perms","modify_task","delete_task","select","title","askOnDelete","ngModel","$tgmodel","newTask","assigned_to","createTask","default_task_status","us","$rs","loadTasks","tasks","list","usId","autoSave","notAutoSave","updateRelatedTask","member","imgurl","photo","full_name_display","tgRelatedTaskAssignedToInlineEdition","unbind","userId","updatedRelatedTask","ResourcesService","initResources","initUrls","auth-register","permissions","notify-policies","bulk-create-memberships","milestones","userstories","bulk-create-us","bulk-update-us-backlog-order","bulk-update-us-sprint-order","bulk-update-us-kanban-order","userstories-restore","bulk-create-tasks","bulk-update-task-taskboard-order","tasks-restore","issues","bulk-create-issues","issues-restore","wiki","wiki-restore","wiki-links","choices/userstory-statuses","choices/userstory-statuses/bulk-update-order","choices/points","choices/points/bulk-update-order","choices/task-statuses","choices/task-statuses/bulk-update-order","choices/issue-statuses","choices/issue-statuses/bulk-update-order","choices/issue-types","choices/issue-types/bulk-update-order","choices/priorities","choices/priorities/bulk-update-order","choices/severities","choices/severities/bulk-update-order","sites","project-templates","site-members","site-projects","users-password-recovery","users-change-password-from-recovery","users-change-password","users-change-email","users-cancel-account","user-storage","resolver","userstory-statuses","points","task-statuses","issue-statuses","issue-types","priorities","severities","project-modules","webhooks","webhooks-test","webhooklogs","webhooklogs-resend","history/us","history/issue","history/task","history/wiki","attachments/us","attachments/issue","attachments/task","attachments/wiki_page","custom-attributes/userstory","custom-attributes/issue","custom-attributes/task","custom-attributes-values/userstory","custom-attributes-values/issue","custom-attributes-values/task","exporter","importer","userstories-csv","tasks-csv","issues-csv","$urls","providers","toArray","SearchBoxDirective","SearchController","SearchDirective","scope1","repo","appTitle","loadSearchData","searchTerm","t","term","pageLoaded","loadFilters","defered","loadProject","getBySlug","issueStatusById","issue_statuses","taskStatusById","task_statuses","severityById","priorityById","membersById","usStatusById","us_statuses","searchResults","$route","reload","$templatecache","$routeparams","linkTable","getActiveSection","lastSeatchResults","markSectionTabActive","renderFilterTabs","renderTableContent","tabsDom","maxVal","selectedSectionData","selectedSectionName","wikipages","oldElements","oldScope","children","$destroy","$new","parseHTML","activeSection","sectionData","searchText","AnalyticsService","doc","conf","initialized","accountId","pageEvent","trackRoutes","ignoreFirstPageLoad","injectAnalytics","ga","getUrl","trackPage","s","o","g","r","a","m","createElement","getElementsByTagName","async","src","parentNode","insertBefore","page","category","action","label","AttachmentDirective","AttachmentsController","AttachmentsDirective","confirm","objectId","uploadingAttachments","attachments","attachmentsCount","deprecatedAttachmentsCount","showDeprecated","loadAttachments","urlname","updateCounters","is_deprecated","_createAttachment","attachment","urlName","isCreatedRightNow","splice","createAttachments","promises","addUploadingAttachments","union","reorderAttachment","newIndex","oldIndex","order","updateAttachment","saveAttachments","saveAll","j","revert","removeAttachment","filterAttachments","$templates","showSizeInfo","tdom","sortable","items","handle","containment","dropOnEmpty","scroll","tolerance","placeholder","ui","attach","files","maxFileSize","maxFileSizeMsg","controllerAs","saveAttachment","edit","modifyPermission","created_date","moment","format","description","isDeprecated","tgAttachment","BindScope","jQuery","AssignedToDirective","BlockButtonDirective","CreatedByDisplayDirective","DateRangeDirective","DateSelectorDirective","DeleteButtonDirective","EditableDescriptionDirective","EditableSubjectDirective","ListItemAssignedtoDirective","ListItemIssueStatusDirective","ListItemPriorityDirective","ListItemSeverityDirective","ListItemTaskStatusDirective","ListItemTypeDirective","ListItemUsStatusDirective","SprintProgressBarDirective","TgMainTitleDirective","TgProgressBarDirective","WatchersDirective","renderRange","first","second","endDate","initDate","tgDateRange","valFirst","valSecond","selectedDate","picker","Pikaday","field","onSelect","setDate","renderProgress","percentage","visual_percentage","tgSprintProgressbar","sprint","closedPoints","totalPoints","closed_points","total_points","round","owner","$qqueue","deleteWatcher","isEditable","renderWatchers","ref1","requiredPerm","watchers","$setViewValue","watcherId","watcherIds","pull","renderAssignedTo","issue","assignedTo","assignedToId","ask","instance","is_blocked","onDeleteGoToUrl","onDeleteTitle","subtitle","click","$selectedText","noDescriptionMegEditMode","noDescriptionMegReadMode","noDescriptionMsg","tgListitemIssueStatus","tgListitemTaskStatus","tgListitemUsStatus","tgListitemAssignedto","full_name","domNode","priority","color","tgListitemPriority","severity","tgListitemSeverity","issueTypeById","tgListitemType","el","tgProgressBar","max","min","projectName","ConfirmService","NOTIFICATION_MSG","light-error","lightboxService","loading","lightboxSelector","ok","askChoice","choices","replacement","warning","choicesField","append","selected","stop","percent","time","selector","tsem","CustomAttributeValueDirective","CustomAttributesValuesController","CustomAttributesValuesDirective","customAttributes","customAttributesValues","loadCustomAttributesValues","getAttributeValue","attribute","attributeValue","attributes_values","updateAttributeValue","attributesValues","$storage","collapsedHash","collapsed","hash","requiredEditionPerm","saveAttributeValue","editable","tgCustomAttributeValue","EstimationsService","LbUsEstimationDirective","UsEstimationDirective","$tgEstimationsService","$rootScope","estimationProcess","onSelectedPointForRole","calculateTotalPoints","calculateRoles","roleId","pointId","EstimationProcess","pointsTemplate","$el1","us1","project1","bindClickEvents","pointsById","notNullValues","values","v","reduce","acc","num","role","pointObj","renderPointsSelector","siblings","horizontalList","maxPointLength","point","some","horizontal","closest","defaultFilter","momentFormat","momentFromNow","yesNoFilter","defaultValue","without_suffix","fromNow","HistoryController","HistoryDirective","loadHistory","history","historyResult","values_diff","description_diff","description_html","blocked_note_diff","blocked_note","blocked_note_html","comments","comment","deleteComment","activityId","undeleteComment","templateActivity","templateBase","templateBaseEntries","templateChangeAttachment","templateChangeDiff","templateChangeGeneric","templateChangeList","templateChangePoints","templateDeletedComment","countChanges","formatChange","getHumanizedFieldName","getUserAvatar","getUserFullName","renderActivity","renderAttachmentEntry","renderChange","renderChangeEntries","renderChangeEntry","renderChangesHelperText","renderComment","renderComments","renderCustomAttributesEntry","renderHistory","showAllActivity","showAllComments","humanizedFieldNames","is_closed","finish_date","client_requirement","team_requirement","milestone","user_story","is_iocaine","change","isArray","changes","diff","filename","from","to","flatten","customAttrsChanges","added","removed","difference","ref2","delete_comment_date","delete_comment_user","deleteCommentDate","deleteCommentUser","comment_html","canRestoreComment","pk","avatar","userFullName","creationDate","created_at","changesText","mode","canDeleteComment","entries","totalEntries","showMore","totalComments","last","totalChanges","parents","ngmodel","ImportProjectButtonDirective","trigger","file","errorMsg","AssignedToLightboxDirective","BlockLightboxDirective","BlockingMessageInputDirective","CreateBulkUserstoriesDirective","CreateEditUserstoryDirective","LightboxDirective","LightboxKeyboardNavigationService","LightboxService","WatchersLightboxDirective","docEl","lightboxContent","not","removeAttr","lightboxEl","dispatch","activeElement","next","prev","$tgrepo","block","unblock","finishCallback","watch","isNew","statusList","usStatusList","is_archived","tags","broadcastEvent","keydown","statusId","bulk","bulkCreate","lightboxKeyboardNavigationService","closeLightbox","filterUsers","normalizeString","selectedItem","selectedUser","usersTemplate","string","normalizedString","toUpperCase","partial","searchingText","usersSearch","getFilteredUsers","_filterUsers","Loader","LoaderDirective","onStart","onEnd","startCurrentPageLoader","reset","defaultConfig","forceDisabled","minTime","merge","startLoadTime","force","endTime","TgLoadingService","oldContent","RelatedTaskStatusDirective","UsStatusDirective","usStatusDom","usStatusDomParent","tgUsStatus","onUpdate","statuses","selectionTemplate","updateTaskStatus","taskStatusDom","taskStatusDomParent","tgRelatedTaskStatus","closePopover","isVisible","docViewBottom","docViewLeft","docViewRight","docViewTop","docViewWidth","elemBottom","elemLeft","elemRight","elemTop","elemWidth","display","visibility","scrollTop","height","offset","top","left","fadeOut","fadeIn","ExceptionHandlerFactory","ravenConfig","Raven","install","exception","captureException","ColorizeTagsDirective","LbTagLineDirective","TagLineDirective","TagsDirective","formatter","parser","$formatters","$parsers","backlog","kanban","taskboard","srcTags","tgColorizeTagsType","sort","tag","tags_colors","tgColorizeTags","COMMA_KEY","ENTER_KEY","templateTags","addValue","deleteValue","hideSaveButton","removeInputLastCharacter","renderTags","resetInput","saveInputTag","showSaveButton","tagsColors","style","autocomplete","inputValue","positioningFunction","position","elements","menu","source","my","using","ESC_KEY","hideAddTagButton","hideAddTagButtonText","hideInput","renderInReadModeOnly","showAddTagButton","showAddTagButtonText","showInput","blur","tgMarkitupDirective","$tr","previewTemplate","addLine","closePreviewMode","markdownSettings","markdownTitle","prepareUrlFormatting","preview","previewDomNode","setCaretPosition","urlFormatting","class","markItUpDomNode","markdownDomNode","mdrender","markdown","textarea","caretPosition","range","scrollRelation","totalLines","createTextRange","move","selectionStart","setSelectionRange","scrollHeight","nline","cursorPosition","nameSpace","onShiftEnter","keepDefault","openWith","onEnter","afterInsert","cursorLine","emptyListItem","lastLine","markdownCaretPositon","match","newLineContent","markupSet","placeHolder","closeWith","markItUp","separator","beforeInsert","indices","regex","exec","donotparse","endIndex","startIndex","heading","n","BacklogFiltersDirective","templateSelected","initializeSelectedFilters","renderFilters","renderSelectedFilters","selectQFilter","selectedFilters","showCategories","showFilters","toggleFilterSelection","f","currentFiltersType","loadUserstories","CreateEditSprint","createSprint","hasErrors","estimated_start","estimated_finish","newSprint","copy","setAttr","sprintsCounter","__all__","milestonesCounter","estimatedFinish","estimatedStart","lastSprint","lastSprintNameDom","sprints","BacklogController","BacklogDirective","TgBacklogProgressBarDirective","UsPointsDirective","UsRolePointsSelectorDirective","tgBacklogGraphDirective","params1","events","analytics","showTags","activeFilters","initializeEventHandlers","getShowTags","loadProjectStats","loadSprints","moveUs","loadClosedSprints","unloadClosedSprints","initializeSubscription","routingKey1","routingKey2","toggleShowTags","storeShowTags","toggleActiveFilters","stats","completedPercentage","refreshTagsColors","closedSprints","closed","user_stories","openSprints","reverse","sprintsById","resetFilters","selectedStatuses","selectedTags","filtersQ","filterGrp","httpParams","getUrlFilters","storeQueryParams","listUnassigned","setSearchDataFilters","filterVisibleUserstories","generateFilters","loadBacklog","totalClosedMilestones","total_closed_milestones","visibleUserstories","isFilterSelected","searchdata","Object","prepareBulkUpdateData","uses","us_id","resortUserStories","isModified","usList","newUsIndex","newSprintId","len1","len2","oldSprintId","Array","bulkUpdateBacklogOrder","bulkUpdateSprintOrder","len3","oldSprint","urlfilters","results1","pick","plainStatuses","plainTags","countBy","k","obj","count","editUserStory","deleteUserStory","without","addNewUs","default_us_status","addNewSprint","doomLineTemplate","linkDoomLine","linkFilters","linkToolbar","showHideFilter","showHideTags","addDoomLineDom","getUsItems","reloadDoomLine","removeDoomlineDom","current_sum","domElement","assigned_points","before","rowElements","moveToCurrentSprint","selectedUss","extraPoints","totalExtraPoints","ussCurrent","moveToCurrentSprintDom","selectedUsDom","ussDom","ussToMove","itemScope","elm","sidebar","filtersSearch","disableSelection","numberOfRoles","roleName","rolScope","$tgTemplate","rolesTemplate","bindClickElements","filteringRoleId","renderRolesSelector","selectedRoleId","updatingSelectedRoleId","tgBacklogUsPoints","popRolesDom","redrawChart","dataToDraw","client_increment_line","colors","evolution_line","milestonesRange","optimal_line","options","team_increment_line","zero_line","zip","fillColor","ml","optimal","evolution","grid","borderWidth","right","bottom","borderColor","hoverable","xaxis","ticks","axisLabel","axisLabelUseCanvas","axisLabelFontSizePixels","axisLabelFontFamily","axisLabelPadding","tickFormatter","series","shadowSize","fill","radius","lineWidth","tooltip","tooltipOpts","content","xval","yval","flotItem","seriesIndex","abs","empty","plot","adjustPercentaje","projectPointsPercentaje","closedPointsPercentaje","adjusted","tgBacklogProgressBar","definedPoints","defined_points","BacklogEmptySortableDirective","BacklogSortableDirective","SprintSortableDirective","deleteElement","$tgConfirm","getUsIndex","filterError","cancel","connectWith","cursorAt","itemIndex","itemUs","BacklogSprintDirective","BacklogSprintHeaderDirective","ToggleExcludeClosedSprintsVisualization","refreshSprintTableHeight","slideOptions","sprintTableMinHeight","toggleSprint","duration","easing","sprintTable","sprintArrow","tgBacklogSprint","slideToggle","estimatedDateRange","taskboardUrl","excludeClosedSprints","loadingElm","after","SprintGraphDirective","days","day","unshift","d","optimal_points","open_points","tickSize","daysNames","yaxis","formattedDate","roundedValue","CreateBulkTasksDirective","CreateEditTaskDirective","sprintId","TaskboardController","TaskboardDirective","TaskboardSquishColumnDirective","TaskboardTaskDirective","TaskboardUserDirective","rs1","loadTaskboard","taskMove","loadSprintStats","loadSprint","pointsList","roleById","taskStatusList","completedPointsSum","remainingPointsSum","remainingTasks","totalPointsSum","res","completed_points","total_tasks","completed_tasks","openTasks","usTasks","sslug","refreshTasksOrder","resortTasks","bulkUpdateTaskTaskboardOrder","task_id","taskboard_order","addNewTask","editTaskAssignedTo","tableBodyDom","tableHeaderDom","scrollLeft","avatarWidth","maxColumnWidth","getCeilWidth","recalculateStatusColumnWidth","recalculateTaskboardWidth","refreshTaskboardTableWidth","setStatusColumnWidth","statusesFolded","getStatusColumnModes","usFolded","getUsRowModes","foldStatus","storeStatusColumnModes","foldUs","storeUsRowModes","tasksMatrixSize","sqrt","column","columnWidths","columns","totalWidth","outerWidth","total","statusFoldedWidth","forEach","clickable","username_label","assign","TaskboardSortableDirective","itemEl","newParentScope","oldParentScope","itemTask","newStatusId","newUsId","oldStatusId","oldUsId","parentEl","st","KanbanArchivedStatusHeaderDirective","KanbanArchivedStatusIntroDirective","KanbanController","KanbanDirective","KanbanSquishColumnDirective","KanbanUserDirective","KanbanUserstoryDirective","KanbanWipLimitDirective","defaultViewMode","defaultViewModes","maximized","cardClass","minimized","statusViewModes","onAssignedToChanged","loadUserStoriesForStatus","hideUserStoriesForStatus","changeUsAssignedTo","userid","status__is_archived","listAll","usByStatus","us_archived","loadKanban","generateStatusViewModes","storedStatusViewModes","getStatusViewModes","has","storeStatusViewModes","updateStatusViewMode","newViewMode","getCardClass","kanban_order","itemsToSave","bulkUpdateKanbanOrder","hideArchivedText","showArchivedText","hidden","tgKanbanArchivedStatusHeader","hiddenUserStoriexText","userStories","updateIntroText","tgKanbanArchivedStatusIntro","isArchived","userStoriesLoaded","updateTableWidth","folds","redrawWipLimit","tgKanbanWipLimit","wtid","tgKanbanUserAvatar","KanbanSortableDirective","IssueDetailController","IssuePriorityButtonDirective","IssueSeverityButtonDirective","IssueStatusButtonDirective","IssueStatusDisplayDirective","IssueTypeButtonDirective","PromoteIssueToUsButtonDirective","issueRef","issueref","initializeOnDeleteGoToUrl","loadIssue","statusById","typeById","issue_types","typeList","severityList","priorityList","getByRef","issueId","commentModel","neighbors","previous","previousUrl","typees","severityes","priorityes","generated_from_issue","CreateBulkIssuesDirective","CreateIssueDirective","default_issue_status","default_issue_type","default_priority","default_severity","IssueAssignedToInlineEditionDirective","IssueStatusInlineEditionDirective","IssuesController","IssuesDirective","IssuesFiltersDirective","loadIssues","getFilters","storeFilters","issueStatusList","issueTypes","getUrlFilter","loadMyFilters","getMyFilters","removeNotExistingFiltersFromUrl","currentSearch","existingValues","filterName","filterValue","splittedValues","intersection","markSelectedFilters","isSelected","omit","myFilters","filtersData","choicesFiltersFormat","tagsFilterFormat","usersFiltersFormat","unknownOption","reformatedUsers","unknownItem","u","byIdObject","createdBy","created_by","types","loadIssuesRequests","urlFilters","models","current","paginatedBy","saveCurrentFiltersTo","newFilter","storeMyFilters","deleteMyFilter","addNewIssue","addIssuesInBulk","linkOrdering","linkPagination","$pagEl","afterCurrent","atBegin","atEnd","beforeCurrent","getNumPages","renderPagination","numPages","cpage","pages","showPrevious","showNext","pagenum","colHeadElement","currentOrder","icon","finalOrder","newOrder","filterId","customFilterName","loadPromise","currentfilterstype","updateIssueStatus","issueStatusDom","issueStatusDomParent","tgIssueStatusInlineEdition","updateIssue","tgIssueAssignedToInlineEdition","updatedIssue","UsClientRequirementButtonDirective","UsStatusButtonDirective","UsStatusDisplayDirective","UsTasksProgressDisplayDirective","UsTeamRequirementButtonDirective","UserStoryDetailController","usRef","usref","loadUs","progress","totalClosedTasks","totalTasks","canEdit","isRequired","TaskDetailController","TaskIsIocaineButtonDirective","TaskStatusButtonDirective","TaskStatusDisplayDirective","taskRef","taskref","loadTask","taskId","loadUserStory","isIocaine","LeaveProjectDirective","TeamController","TeamFiltersDirective","TeamMemberCurrentUserDirective","TeamMemberStatsDirective","TeamMembersDirective","setRole","filtersRole","loadMembers","currentUser","membership","totals","is_user_active","issuesEnabled","tasksEnabled","wikiEnabled","loadMemberStats","memberStats","vals","sum","processStats","processStat","stat","singleStat","leave","projectid","EditableWikiContentDirective","WikiDetailController","WikiSummaryDirective","projectSlug","wikiSlug","loadWiki","wikiId","loadWikiLinks","listLinks","wikiLinks","last_modifier","imgUrl","totalEditions","editions","lastModifiedDate","modified_date","wikiPage","cancelEdition","disableEdition","getSelectedText","switchToEditMode","switchToReadMode","button","WikiNavDirective","addWikiLinkPermission","deleteWikiLinkPermission","linkId","linkSlug","href","newLink","CreateMembersDirective","MAX_MEMBERSHIP_FIELDSETS","extraTextTemplate","createFieldSet","resetForm","required","roleList","fieldSet","prepend","lastActionButton","newFieldSet","invitation_extra_text","memberWrappers","destroy","mw","email","memberWrapper","role_id","bulkCreateMemberships","MembershipsController","MembershipsDirective","MembershipsRowActionsDirective","MembershipsRowAdminCheckboxDirective","MembershipsRowAvatarDirective","MembershipsRowRoleSelectorDirective","i_am_owner","httpFilters","addNewMembers","user_email","tgMembershipsRowAvatar","inputId","tgMembershipsRowAdminCheckbox","is_owner","selectedRole","tgMembershipsRowRoleSelector","newRole","activedTemplate","pendingTemplate","tgMembershipsRowActions","resendInvitation","AdminNavigationDirective","tgAdminNavigation","CsvExporterController","CsvExporterIssuesController","CsvExporterTasksController","CsvExporterUserstoriesController","ProjectDefaultValuesDirective","ProjectExportDirective","ProjectModulesDirective","ProjectProfileController","ProjectProfileDirective","prioritiesList","severitiesList","issueTypesList","openDeleteLightbox","newUrl","isVideoconferenceActivated","buttonsEl","hideButtons","hideResult","hideSpinner","resultEl","resultMessageEl","resultTitleEl","setAsyncMessage","setAsyncTitle","setLoadingMessage","setLoadingTitle","setSyncMessage","setSyncTitle","showButtons","showErrorMode","showExportResultAsyncMode","showExportResultSyncMode","showLoadingMode","showResult","showSpinner","spinnerEl","dumpUrl","_generateUuid","setCsvUuid","csvUrl","resolveAbsolute","csvUuid","uuid","regenerateUuid","identity","ColorSelectionDirective","ProjectCustomAttributesController","ProjectCustomAttributesDirective","ProjectValuesController","ProjectValuesDirective","ProjectValuesSectionController","moveValue","loadValues","resource","listValues","maxValueOrder","itemValue","linkDragAndDrop","linkValue","axis","goToBottomList","initializeNewValue","saveNewValue","saveValue","valueType","newValue","table","formEl","row","editionRow","option","onSucces","moveTo","moveCustomAttributes","deleteCustomAttribute","saveCustomAttribute","createCustomAttribute","loadCustomAttributes","maxOrder","attrValues","attrModel","idx","cancelCreate","cancelUpdate","hideAddButton","hideCancelButton","hideCreateForm","hideEditForm","resetNewAttr","revertChangesInCustomAttribute","showAddButton","showCancelButton","showCreateForm","showEditForm","sortableEl","itemAttr","newAttr","EditRoleDirective","NewRoleDirective","RolePermissionsDirective","RolesController","RolesDirective","anyComputableRole","computable","loadExternalUserRole","public_permission","external_user","public_permissions","loadRoles","setComputable","toggleView","toggle","DEFAULT_PERMISSIONS","categoryTemplate","resumeTemplate","generateCategoriesFromRole","renderCategory","renderPermissions","renderResume","categories","isPermissionEditable","issuePermissions","milestonePermissions","setActivePermissions","setActivePermissionsPerCategory","taskPermissions","userStoryPermissions","wikiPermissions","active","is_private","cat","activePermissions","getActivePermissions","categoryId","anon_permissions","BitbucketController","BitbucketWebhooksDirective","GithubController","GithubWebhooksDirective","GitlabController","GitlabWebhooksDirective","NewWebhookDirective","SelectInputText","ValidOriginIpsDirective","WebhookDirective","WebhooksController","loadWebhooks","openHistory","showEditMode","showVisualizationMode","updateLogs","updateShowHideHistoryText","webhook","tgWebhook","validStatus","prettySentHeaders","pairs","request_headers","arg","header","prettySentData","request_data","prettyDate","created","logs_counter","logs","historyElement","textElement","test","resend","addWebhookDOMNode","formDOMNode","loadModules","github","gitlab","bitbucket","saveAttribute","$ngModel","CreateProject","DeleteProjectDirective","$projectUrl","$cacheFactory","removeAll","error_field","error_step","selectors","total_story_points","total_milestones","creation_template","head","step","fields","projectToDelete","ProjectController","ProjectsController","ProjectsListDirective","ProjectsPaginationDirective","recents","loadPageData","checkButtonVisibility","containerSize","hasNextPage","hasPagination","hasPrevPage","nextBtn","nextPage","pageSize","prevBtn","prevPage","visible","lastLi","maxTop","newTop","outerHeight","animate","BindHtmlDirective","BindOnceAltDirective","BindOnceBindDirective","BindOnceHrefDirective","BindOnceHtmlDirective","BindOnceRefDirective","BindOnceSrcDirective","BindOnceTitleDirective","BindTitleDirective","tgBoBind","tgBoHtml","tgBoRef","tgBoSrc","tgBoHref","tgBoAlt","tgBoTitle","tgTitleHtml","tgBindHtml","ConfigurationService","ContribController","rootScope","currentPlugin","pluginTemplate","FiltersStorageService","HttpService","Authorization","request","I18nDirective","I18nService","ns","fallbackLng","lng","localesEn","resStore","en","app","setLanguage","language","i18n","setLng","currentLang","opts","tr","trOpts","locationFactory","lastRoute","un","Model","ModelService","dataTypes","_attrs","_name","_dataTypes","setAttrs","_modifiedAttrs","_isModified","applyCasts","attrName","castMethod","castName","casts","getIdAttrName","getName","attrs","getter","self","setter","substr","enumerable","configurable","defineProperty","isAttributeModified","markSaved","desSerialize","sdata","ddata","cls","int","float","NavigationUrlsDirective","NavigationUrlsService","formatUrl","replacer","bindOnceP","parseNav","tgNav","fullUrl","RepositoryService","model1","resolveUrlForModel","idAttrName","resolveUrlForAttributeModel","extraParams","_data","refresh","queryMany","httpOptions","enablePagination","queryOneAttribute","queryOneRaw","queryPaginated","cache","wikipage","StorageService","_default","serializedValue","localStorage","getItem","setItem","removeItem","UrlsService","fmt","String","mainUrl","Error","rtrim","resourceProvider","object_id","uploadComplete","uploadFailed","uploadProgress","evt","progressMessage","loaded","progressPercent","responseText","_error","FormData","XMLHttpRequest","upload","setRequestHeader","_get","userstory","_list","$http","filtersHashSuffix","hashSuffix","myFiltersHashSuffix","getQueryParams","project_id","bulk_issues","innerPromise","hashSuffixStatusColumnModes","hashSuffixStatusViewModes","listByUser","bulk_memberships","notifyPolicies","memberId","regenerate_userstories_csv_uuid","regenerate_issues_csv_uuid","regenerate_tasks_csv_uuid","statusUpdater","complete","failed","get_all","hashSuffixUserstories","storeUserstoriesQueryParams","hashSuffixUsRowModes","userStoryId","sprint_id","bulk_tasks","changeAvatar","transformRequest","removeAvatar","changePassword","currentPassword","newPassword","current_password","userSettings","status_id","bulk_stories","webhookId","webhooklogId","UserChangePasswordController","UserChangePasswordDirective","newPassword1","newPassword2","DeleteUserDirective","TaigaAvatarModelDirective","UserAvatarDirective","UserProfileDirective","UserSettingsController","avatarAttachment","$parse","modelSetter","tgAvatarModel","UserSettingsNavigationDirective","tgUserSettingsNavigation","UserNotificationsController","UserNotificationsDirective","UserNotificationsListDirective","loadNotifyPolicies","policy","policyIndex","prev_level","notify_level","TermsNoticeDirective","privacyPolicyUrl","termsOfServiceUrl","termsUrl","privacyUrl","defaultMessage","type-email","type-url","type-urlstrict","type-number","type-digits","type-dateIso","type-alphanum","type-phone","notnull","notblank","regexp","minlength","maxlength","rangelength","mincheck","maxcheck","rangecheck","equalto","common","blocked","new-bulk","one-item-line","pagination","markdown-editor","heading-1","heading-2","heading-3","bold","italic","strike","bulleted-list","numeric-list","picture","quotes","code-block","help","link-placeholder","title-new","team-requirement","client-requirement"],"mappings":"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","file":"app.js","sourcesContent":["\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: app.coffee\n */\n\n(function() {\n var configure, init, module, modules, taiga;\n\n this.taiga = taiga = {};\n\n this.taigaContribPlugins = this.taigaContribPlugins || [];\n\n taiga.generateHash = function(components) {\n if (components == null) {\n components = [];\n }\n components = _.map(components, function(x) {\n return JSON.stringify(x);\n });\n return hex_sha1(components.join(\":\"));\n };\n\n taiga.generateUniqueSessionIdentifier = function() {\n var date, randomNumber;\n date = (new Date()).getTime();\n randomNumber = Math.floor(Math.random() * 0x9000000);\n return taiga.generateHash([date, randomNumber]);\n };\n\n taiga.sessionId = taiga.generateUniqueSessionIdentifier();\n\n configure = function($routeProvider, $locationProvider, $httpProvider, $provide, $tgEventsProvider, tgLoaderProvider, $compileProvider) {\n var authHttpIntercept, defaultHeaders, versionCheckHttpIntercept;\n $routeProvider.when(\"/\", {\n templateUrl: \"project/projects.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/\", {\n templateUrl: \"project/project.html\"\n });\n $routeProvider.when(\"/project/:pslug/search\", {\n templateUrl: \"search/search.html\",\n reloadOnSearch: false\n });\n $routeProvider.when(\"/project/:pslug/backlog\", {\n templateUrl: \"backlog/backlog.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/kanban\", {\n templateUrl: \"kanban/kanban.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/taskboard/:sslug\", {\n templateUrl: \"taskboard/taskboard.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/us/:usref\", {\n templateUrl: \"us/us-detail.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/task/:taskref\", {\n templateUrl: \"task/task-detail.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/wiki\", {\n redirectTo: function(params) {\n return \"/project/\" + params.pslug + \"/wiki/home\";\n }\n });\n $routeProvider.when(\"/project/:pslug/wiki/:slug\", {\n templateUrl: \"wiki/wiki.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/team\", {\n templateUrl: \"team/team.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/issues\", {\n templateUrl: \"issue/issues.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/issue/:issueref\", {\n templateUrl: \"issue/issues-detail.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/admin/project-profile/details\", {\n templateUrl: \"admin/admin-project-profile.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-profile/default-values\", {\n templateUrl: \"admin/admin-project-default-values.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-profile/modules\", {\n templateUrl: \"admin/admin-project-modules.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-profile/export\", {\n templateUrl: \"admin/admin-project-export.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-profile/reports\", {\n templateUrl: \"admin/admin-project-reports.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-values/status\", {\n templateUrl: \"admin/admin-project-values-status.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-values/points\", {\n templateUrl: \"admin/admin-project-values-points.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-values/priorities\", {\n templateUrl: \"admin/admin-project-values-priorities.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-values/severities\", {\n templateUrl: \"admin/admin-project-values-severities.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-values/types\", {\n templateUrl: \"admin/admin-project-values-types.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-values/custom-fields\", {\n templateUrl: \"admin/admin-project-values-custom-fields.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/memberships\", {\n templateUrl: \"admin/admin-memberships.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/roles\", {\n templateUrl: \"admin/admin-roles.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/third-parties/webhooks\", {\n templateUrl: \"admin/admin-third-parties-webhooks.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/third-parties/github\", {\n templateUrl: \"admin/admin-third-parties-github.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/third-parties/gitlab\", {\n templateUrl: \"admin/admin-third-parties-gitlab.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/third-parties/bitbucket\", {\n templateUrl: \"admin/admin-third-parties-bitbucket.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/contrib/:plugin\", {\n templateUrl: \"contrib/main.html\"\n });\n $routeProvider.when(\"/project/:pslug/user-settings/user-profile\", {\n templateUrl: \"user/user-profile.html\"\n });\n $routeProvider.when(\"/project/:pslug/user-settings/user-change-password\", {\n templateUrl: \"user/user-change-password.html\"\n });\n $routeProvider.when(\"/project/:pslug/user-settings/user-avatar\", {\n templateUrl: \"user/user-avatar.html\"\n });\n $routeProvider.when(\"/project/:pslug/user-settings/mail-notifications\", {\n templateUrl: \"user/mail-notifications.html\"\n });\n $routeProvider.when(\"/change-email/:email_token\", {\n templateUrl: \"user/change-email.html\"\n });\n $routeProvider.when(\"/cancel-account/:cancel_token\", {\n templateUrl: \"user/cancel-account.html\"\n });\n $routeProvider.when(\"/login\", {\n templateUrl: \"auth/login.html\"\n });\n $routeProvider.when(\"/register\", {\n templateUrl: \"auth/register.html\"\n });\n $routeProvider.when(\"/forgot-password\", {\n templateUrl: \"auth/forgot-password.html\"\n });\n $routeProvider.when(\"/change-password\", {\n templateUrl: \"auth/change-password-from-recovery.html\"\n });\n $routeProvider.when(\"/change-password/:token\", {\n templateUrl: \"auth/change-password-from-recovery.html\"\n });\n $routeProvider.when(\"/invitation/:token\", {\n templateUrl: \"auth/invitation.html\"\n });\n $routeProvider.when(\"/error\", {\n templateUrl: \"error/error.html\"\n });\n $routeProvider.when(\"/not-found\", {\n templateUrl: \"error/not-found.html\"\n });\n $routeProvider.when(\"/permission-denied\", {\n templateUrl: \"error/permission-denied.html\"\n });\n $routeProvider.otherwise({\n redirectTo: '/not-found'\n });\n $locationProvider.html5Mode({\n enabled: true,\n requireBase: false\n });\n defaultHeaders = {\n \"Content-Type\": \"application/json\",\n \"Accept-Language\": \"en\",\n \"X-Session-Id\": taiga.sessionId\n };\n $httpProvider.defaults.headers[\"delete\"] = defaultHeaders;\n $httpProvider.defaults.headers.patch = defaultHeaders;\n $httpProvider.defaults.headers.post = defaultHeaders;\n $httpProvider.defaults.headers.put = defaultHeaders;\n $httpProvider.defaults.headers.get = {\n \"X-Session-Id\": taiga.sessionId\n };\n $tgEventsProvider.setSessionId(taiga.sessionId);\n authHttpIntercept = function($q, $location, $navUrls, $lightboxService) {\n var httpResponseError;\n httpResponseError = function(response) {\n var nextPath;\n if (response.status === 0) {\n $lightboxService.closeAll();\n $location.path($navUrls.resolve(\"error\"));\n $location.replace();\n } else if (response.status === 401) {\n nextPath = $location.path();\n $location.url($navUrls.resolve(\"login\")).search(\"next=\" + nextPath);\n }\n return $q.reject(response);\n };\n return {\n responseError: httpResponseError\n };\n };\n $provide.factory(\"authHttpIntercept\", [\"$q\", \"$location\", \"$tgNavUrls\", \"lightboxService\", authHttpIntercept]);\n $httpProvider.interceptors.push('authHttpIntercept');\n versionCheckHttpIntercept = function($q, $confirm) {\n var httpResponseError, versionErrorMsg;\n versionErrorMsg = \"Someone inside Taiga has changed this before and our Oompa Loompas cannot apply your changes. Please reload and apply your changes again (they will be lost).\";\n httpResponseError = function(response) {\n if (response.status === 400 && response.data.version) {\n $confirm.notify(\"error\", versionErrorMsg, null, 10000);\n return $q.reject(response);\n }\n return $q.reject(response);\n };\n return {\n responseError: httpResponseError\n };\n };\n $provide.factory(\"versionCheckHttpIntercept\", [\"$q\", \"$tgConfirm\", versionCheckHttpIntercept]);\n $httpProvider.interceptors.push('versionCheckHttpIntercept');\n window.checksley.updateValidators({\n linewidth: function(val, width) {\n var lines, valid;\n lines = taiga.nl2br(val).split(\"
\");\n valid = _.every(lines, function(line) {\n return line.length < width;\n });\n return valid;\n }\n });\n window.checksley.updateMessages(\"default\", {\n linewidth: \"The subject must have a maximum size of %s\"\n });\n return $compileProvider.debugInfoEnabled(window.taigaConfig.debugInfo || false);\n };\n\n init = function($log, $i18n, $config, $rootscope, $auth, $events, $analytics) {\n $i18n.initialize($config.get(\"defaultLanguage\"));\n $log.debug(\"Initialize application\");\n $rootscope.contribPlugins = this.taigaContribPlugins;\n $rootscope.adminPlugins = _.where(this.taigaContribPlugins, {\n \"type\": \"admin\"\n });\n if ($auth.isAuthenticated()) {\n $events.setupConnection();\n }\n return $analytics.initialize();\n };\n\n modules = [\"taigaBase\", \"taigaCommon\", \"taigaResources\", \"taigaLocales\", \"taigaAuth\", \"taigaEvents\", \"taigaRelatedTasks\", \"taigaBacklog\", \"taigaTaskboard\", \"taigaKanban\", \"taigaIssues\", \"taigaUserStories\", \"taigaTasks\", \"taigaTeam\", \"taigaWiki\", \"taigaSearch\", \"taigaAdmin\", \"taigaNavMenu\", \"taigaProject\", \"taigaUserSettings\", \"taigaFeedback\", \"taigaPlugins\", \"taigaIntegrations\", \"templates\", \"ngRoute\", \"ngAnimate\"].concat(_.map(this.taigaContribPlugins, function(plugin) {\n return plugin.module;\n }));\n\n module = angular.module(\"taiga\", modules);\n\n module.config([\"$routeProvider\", \"$locationProvider\", \"$httpProvider\", \"$provide\", \"$tgEventsProvider\", \"tgLoaderProvider\", \"$compileProvider\", configure]);\n\n module.run([\"$log\", \"$tgI18n\", \"$tgConfig\", \"$rootScope\", \"$tgAuth\", \"$tgEvents\", \"$tgAnalytics\", init]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: classes.coffee\n */\n\n(function() {\n var TaigaBase, TaigaController, TaigaService,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };\n\n TaigaBase = (function() {\n function TaigaBase() {}\n\n return TaigaBase;\n\n })();\n\n TaigaService = (function(superClass) {\n extend(TaigaService, superClass);\n\n function TaigaService() {\n return TaigaService.__super__.constructor.apply(this, arguments);\n }\n\n return TaigaService;\n\n })(TaigaBase);\n\n TaigaController = (function(superClass) {\n extend(TaigaController, superClass);\n\n function TaigaController() {\n this.onInitialDataError = bind(this.onInitialDataError, this);\n return TaigaController.__super__.constructor.apply(this, arguments);\n }\n\n TaigaController.prototype.onInitialDataError = function(xhr) {\n if (xhr) {\n if (xhr.status === 404) {\n this.location.path(this.navUrls.resolve(\"not-found\"));\n this.location.replace();\n } else if (xhr.status === 403) {\n this.location.path(this.navUrls.resolve(\"permission-denied\"));\n this.location.replace();\n }\n }\n return this.q.reject(xhr);\n };\n\n return TaigaController;\n\n })(TaigaBase);\n\n this.taiga.Base = TaigaBase;\n\n this.taiga.Service = TaigaService;\n\n this.taiga.Controller = TaigaController;\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: utils.coffee\n */\n\n(function() {\n var bindMethods, bindOnce, cancelTimeout, debounce, debounceLeading, groupBy, joinStr, mixOf, nl2br, scopeDefer, sizeFormat, slugify, startswith, taiga, timeout, toString, toggleText, trim, unslugify,\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },\n slice = [].slice,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n nl2br = (function(_this) {\n return function(str) {\n var breakTag;\n breakTag = '
';\n return (str + '').replace(/([^>\\r\\n]?)(\\r\\n|\\n\\r|\\r|\\n)/g, '$1' + breakTag + '$2');\n };\n })(this);\n\n bindMethods = (function(_this) {\n return function(object) {\n var dependencies, methods;\n dependencies = _.keys(object);\n methods = [];\n _.forIn(object, function(value, key) {\n if (indexOf.call(dependencies, key) < 0) {\n return methods.push(key);\n }\n });\n return _.bindAll(object, methods);\n };\n })(this);\n\n bindOnce = (function(_this) {\n return function(scope, attr, continuation) {\n var delBind, val;\n val = scope.$eval(attr);\n if (val !== void 0) {\n return continuation(val);\n }\n delBind = null;\n return delBind = scope.$watch(attr, function(val) {\n if (val === void 0) {\n return;\n }\n continuation(val);\n if (delBind) {\n return delBind();\n }\n });\n };\n })(this);\n\n mixOf = function() {\n var Mixed, base, i, method, mixin, mixins, name, ref;\n base = arguments[0], mixins = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n Mixed = (function(superClass) {\n extend(Mixed, superClass);\n\n function Mixed() {\n return Mixed.__super__.constructor.apply(this, arguments);\n }\n\n return Mixed;\n\n })(base);\n for (i = mixins.length - 1; i >= 0; i += -1) {\n mixin = mixins[i];\n ref = mixin.prototype;\n for (name in ref) {\n method = ref[name];\n Mixed.prototype[name] = method;\n }\n }\n return Mixed;\n };\n\n trim = function(data, char) {\n return _.str.trim(data, char);\n };\n\n slugify = function(data) {\n return _.str.slugify(data);\n };\n\n unslugify = function(data) {\n if (data) {\n return _.str.capitalize(data.replace(/-/g, ' '));\n }\n return data;\n };\n\n toggleText = function(element, texts) {\n var nextTextPosition, text;\n nextTextPosition = element.data('nextTextPosition');\n if ((nextTextPosition == null) || nextTextPosition >= texts.length) {\n nextTextPosition = 0;\n }\n text = texts[nextTextPosition];\n element.data('nextTextPosition', nextTextPosition + 1);\n return element.text(text);\n };\n\n groupBy = function(coll, pred) {\n var i, item, len, result;\n result = {};\n for (i = 0, len = coll.length; i < len; i++) {\n item = coll[i];\n result[pred(item)] = item;\n }\n return result;\n };\n\n timeout = function(wait, continuation) {\n return window.setTimeout(continuation, wait);\n };\n\n cancelTimeout = function(timeoutVar) {\n return window.clearTimeout(timeoutVar);\n };\n\n scopeDefer = function(scope, func) {\n return _.defer((function(_this) {\n return function() {\n return scope.$apply(func);\n };\n })(this));\n };\n\n toString = function(value) {\n if (_.isNumber(value)) {\n return value + \"\";\n } else if (_.isString(value)) {\n return value;\n } else if (_.isPlainObject(value)) {\n return JSON.stringify(value);\n } else if (_.isUndefined(value)) {\n return \"\";\n }\n return value.toString();\n };\n\n joinStr = function(str, coll) {\n return _.str.join(str, coll);\n };\n\n debounce = function(wait, func) {\n return _.debounce(func, wait, {\n leading: true,\n trailing: false\n });\n };\n\n debounceLeading = function(wait, func) {\n return _.debounce(func, wait, {\n leading: false,\n trailing: true\n });\n };\n\n startswith = function(str1, str2) {\n return _.str.startsWith(str1, str2);\n };\n\n sizeFormat = function(input, precision) {\n var number, size, units;\n if (precision == null) {\n precision = 1;\n }\n if (isNaN(parseFloat(input)) || !isFinite(input)) {\n return \"-\";\n }\n if (input === 0) {\n return \"0 bytes\";\n }\n units = [\"bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\n number = Math.floor(Math.log(input) / Math.log(1024));\n if (number > 5) {\n number = 5;\n }\n size = (input / Math.pow(1024, number)).toFixed(precision);\n return size + \" \" + units[number];\n };\n\n taiga = this.taiga;\n\n taiga.nl2br = nl2br;\n\n taiga.bindMethods = bindMethods;\n\n taiga.bindOnce = bindOnce;\n\n taiga.mixOf = mixOf;\n\n taiga.trim = trim;\n\n taiga.slugify = slugify;\n\n taiga.unslugify = unslugify;\n\n taiga.toggleText = toggleText;\n\n taiga.groupBy = groupBy;\n\n taiga.timeout = timeout;\n\n taiga.cancelTimeout = cancelTimeout;\n\n taiga.scopeDefer = scopeDefer;\n\n taiga.toString = toString;\n\n taiga.joinStr = joinStr;\n\n taiga.debounce = debounce;\n\n taiga.debounceLeading = debounceLeading;\n\n taiga.startswith = startswith;\n\n taiga.sizeFormat = sizeFormat;\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/controllerMixins.coffee\n */\n\n(function() {\n var FiltersMixin, PageMixin, groupBy, joinStr, taiga, toString, trim;\n\n taiga = this.taiga;\n\n groupBy = this.taiga.groupBy;\n\n joinStr = this.taiga.joinStr;\n\n trim = this.taiga.trim;\n\n toString = this.taiga.toString;\n\n PageMixin = (function() {\n function PageMixin() {}\n\n PageMixin.prototype.fillUsersAndRoles = function(users, roles) {\n var activeUsers, availableRoles;\n activeUsers = _.filter(users, (function(_this) {\n return function(user) {\n return user.is_active;\n };\n })(this));\n this.scope.activeUsers = _.sortBy(activeUsers, \"full_name_display\");\n this.scope.activeUsersById = groupBy(this.scope.activeUsers, function(e) {\n return e.id;\n });\n this.scope.users = _.sortBy(users, \"full_name_display\");\n this.scope.usersById = groupBy(this.scope.users, function(e) {\n return e.id;\n });\n this.scope.roles = _.sortBy(roles, \"order\");\n availableRoles = _(this.scope.project.memberships).map(\"role\").uniq().value();\n return this.scope.computableRoles = _(roles).filter(\"computable\").filter(function(x) {\n return _.contains(availableRoles, x.id);\n }).value();\n };\n\n PageMixin.prototype.loadUsersAndRoles = function() {\n var promise;\n promise = this.q.all([this.rs.projects.usersList(this.scope.projectId), this.rs.projects.rolesList(this.scope.projectId)]);\n return promise.then((function(_this) {\n return function(results) {\n var roles, users;\n users = results[0], roles = results[1];\n _this.fillUsersAndRoles(users, roles);\n return results;\n };\n })(this));\n };\n\n return PageMixin;\n\n })();\n\n taiga.PageMixin = PageMixin;\n\n FiltersMixin = (function() {\n function FiltersMixin() {}\n\n FiltersMixin.prototype.selectFilter = function(name, value, load) {\n var existing, location, params;\n if (load == null) {\n load = false;\n }\n params = this.location.search();\n if (params[name] !== void 0 && name !== \"page\") {\n existing = _.map(taiga.toString(params[name]).split(\",\"), function(x) {\n return trim(x);\n });\n existing.push(taiga.toString(value));\n existing = _.compact(existing);\n value = joinStr(\",\", _.uniq(existing));\n }\n if (!this.location.isInCurrentRouteParams(name, value)) {\n location = load ? this.location : this.location.noreload(this.scope);\n return location.search(name, value);\n }\n };\n\n FiltersMixin.prototype.replaceFilter = function(name, value, load) {\n var location;\n if (load == null) {\n load = false;\n }\n if (!this.location.isInCurrentRouteParams(name, value)) {\n location = load ? this.location : this.location.noreload(this.scope);\n return location.search(name, value);\n }\n };\n\n FiltersMixin.prototype.replaceAllFilters = function(filters, load) {\n var location;\n if (load == null) {\n load = false;\n }\n location = load ? this.location : this.location.noreload(this.scope);\n return location.search(filters);\n };\n\n FiltersMixin.prototype.unselectFilter = function(name, value, load) {\n var location, newValues, params, parsedValues;\n if (load == null) {\n load = false;\n }\n params = this.location.search();\n if (params[name] === void 0) {\n return;\n }\n if (value === void 0 || value === null) {\n delete params[name];\n }\n parsedValues = _.map(taiga.toString(params[name]).split(\",\"), function(x) {\n return trim(x);\n });\n newValues = _.reject(parsedValues, function(x) {\n return x === taiga.toString(value);\n });\n newValues = _.compact(newValues);\n if (_.isEmpty(newValues)) {\n value = null;\n } else {\n value = joinStr(\",\", _.uniq(newValues));\n }\n location = load ? this.location : this.location.noreload(this.scope);\n return location.search(name, value);\n };\n\n return FiltersMixin;\n\n })();\n\n taiga.FiltersMixin = FiltersMixin;\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/admin.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaAdmin\", []);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/auth.coffee\n */\n\n(function() {\n var AuthService, CancelAccountDirective, ChangeEmailDirective, ChangePasswordFromRecoveryDirective, ForgotPasswordDirective, InvitationDirective, LoginDirective, PublicRegisterMessageDirective, RegisterDirective, debounce, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n debounce = this.taiga.debounce;\n\n module = angular.module(\"taigaAuth\", [\"taigaResources\"]);\n\n AuthService = (function(superClass) {\n extend(AuthService, superClass);\n\n AuthService.$inject = [\"$rootScope\", \"$tgStorage\", \"$tgModel\", \"$tgResources\", \"$tgHttp\", \"$tgUrls\"];\n\n function AuthService(rootscope, storage, model, rs, http, urls) {\n this.rootscope = rootscope;\n this.storage = storage;\n this.model = model;\n this.rs = rs;\n this.http = http;\n this.urls = urls;\n AuthService.__super__.constructor.call(this);\n }\n\n AuthService.prototype.getUser = function() {\n var user, userData;\n if (this.rootscope.user) {\n return this.rootscope.user;\n }\n userData = this.storage.get(\"userInfo\");\n if (userData) {\n user = this.model.make_model(\"users\", userData);\n this.rootscope.user = user;\n return user;\n }\n return null;\n };\n\n AuthService.prototype.setUser = function(user) {\n this.rootscope.auth = user;\n this.rootscope.$broadcast(\"i18n:change\", user.default_language);\n this.storage.set(\"userInfo\", user.getAttrs());\n return this.rootscope.user = user;\n };\n\n AuthService.prototype.clear = function() {\n this.rootscope.auth = null;\n this.rootscope.user = null;\n return this.storage.remove(\"userInfo\");\n };\n\n AuthService.prototype.setToken = function(token) {\n return this.storage.set(\"token\", token);\n };\n\n AuthService.prototype.getToken = function() {\n return this.storage.get(\"token\");\n };\n\n AuthService.prototype.removeToken = function() {\n return this.storage.remove(\"token\");\n };\n\n AuthService.prototype.isAuthenticated = function() {\n if (this.getUser() !== null) {\n return true;\n }\n return false;\n };\n\n AuthService.prototype.login = function(data, type) {\n var url;\n url = this.urls.resolve(\"auth\");\n data = _.clone(data, false);\n data.type = type ? type : \"normal\";\n this.removeToken();\n return this.http.post(url, data).then((function(_this) {\n return function(data, status) {\n var user;\n user = _this.model.make_model(\"users\", data.data);\n _this.setToken(user.auth_token);\n _this.setUser(user);\n return user;\n };\n })(this));\n };\n\n AuthService.prototype.logout = function() {\n this.removeToken();\n return this.clear();\n };\n\n AuthService.prototype.register = function(data, type, existing) {\n var url;\n url = this.urls.resolve(\"auth-register\");\n data = _.clone(data, false);\n data.type = type ? type : \"public\";\n if (type === \"private\") {\n data.existing = existing ? existing : false;\n }\n this.removeToken();\n return this.http.post(url, data).then((function(_this) {\n return function(response) {\n var user;\n user = _this.model.make_model(\"users\", response.data);\n _this.setToken(user.auth_token);\n _this.setUser(user);\n return user;\n };\n })(this));\n };\n\n AuthService.prototype.getInvitation = function(token) {\n return this.rs.invitations.get(token);\n };\n\n AuthService.prototype.acceptInvitiationWithNewUser = function(data) {\n return this.register(data, \"private\", false);\n };\n\n AuthService.prototype.acceptInvitiationWithExistingUser = function(data) {\n return this.register(data, \"private\", true);\n };\n\n AuthService.prototype.forgotPassword = function(data) {\n var url;\n url = this.urls.resolve(\"users-password-recovery\");\n data = _.clone(data, false);\n this.removeToken();\n return this.http.post(url, data);\n };\n\n AuthService.prototype.changePasswordFromRecovery = function(data) {\n var url;\n url = this.urls.resolve(\"users-change-password-from-recovery\");\n data = _.clone(data, false);\n this.removeToken();\n return this.http.post(url, data);\n };\n\n AuthService.prototype.changeEmail = function(data) {\n var url;\n url = this.urls.resolve(\"users-change-email\");\n data = _.clone(data, false);\n return this.http.post(url, data);\n };\n\n AuthService.prototype.cancelAccount = function(data) {\n var url;\n url = this.urls.resolve(\"users-cancel-account\");\n data = _.clone(data, false);\n return this.http.post(url, data);\n };\n\n return AuthService;\n\n })(taiga.Service);\n\n module.service(\"$tgAuth\", AuthService);\n\n PublicRegisterMessageDirective = function($config, $navUrls, templates) {\n var template, templateFn;\n template = templates.get(\"auth/login-text.html\", true);\n templateFn = function() {\n var publicRegisterEnabled;\n publicRegisterEnabled = $config.get(\"publicRegisterEnabled\");\n if (!publicRegisterEnabled) {\n return \"\";\n }\n return template({\n url: $navUrls.resolve(\"register\")\n });\n };\n return {\n restrict: \"AE\",\n scope: {},\n template: templateFn\n };\n };\n\n module.directive(\"tgPublicRegisterMessage\", [\"$tgConfig\", \"$tgNavUrls\", \"$tgTemplate\", PublicRegisterMessageDirective]);\n\n LoginDirective = function($auth, $confirm, $location, $config, $routeParams, $navUrls, $events) {\n var link;\n link = function($scope, $el, $attrs) {\n var onError, onSuccess, submit;\n onSuccess = function(response) {\n var nextUrl;\n if ($routeParams['next'] && $routeParams['next'] !== $navUrls.resolve(\"login\")) {\n nextUrl = $routeParams['next'];\n } else {\n nextUrl = $navUrls.resolve(\"home\");\n }\n $events.setupConnection();\n return $location.path(nextUrl);\n };\n onError = function(response) {\n return $confirm.notify(\"light-error\", \"According to our Oompa Loompas, your username/email or password are incorrect.\");\n };\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var data, form, loginFormType, promise;\n event.preventDefault();\n form = new checksley.Form($el.find(\"form.login-form\"));\n if (!form.validate()) {\n return;\n }\n data = {\n \"username\": $el.find(\"form.login-form input[name=username]\").val(),\n \"password\": $el.find(\"form.login-form input[name=password]\").val()\n };\n loginFormType = $config.get(\"loginFormType\", \"normal\");\n promise = $auth.login(data, loginFormType);\n return promise.then(onSuccess, onError);\n };\n })(this));\n return $el.on(\"submit\", \"form\", submit);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgLogin\", [\"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$tgConfig\", \"$routeParams\", \"$tgNavUrls\", \"$tgEvents\", LoginDirective]);\n\n RegisterDirective = function($auth, $confirm, $location, $navUrls, $config, $analytics) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, onErrorSubmit, onSuccessSubmit, submit;\n if (!$config.get(\"publicRegisterEnabled\")) {\n $location.path($navUrls.resolve(\"not-found\"));\n $location.replace();\n }\n $scope.data = {};\n form = $el.find(\"form\").checksley({\n onlyOneErrorElement: true\n });\n onSuccessSubmit = function(response) {\n $analytics.trackEvent(\"auth\", \"register\", \"user registration\", 1);\n $confirm.notify(\"success\", \"Our Oompa Loompas are happy, welcome to Taiga.\");\n return $location.path($navUrls.resolve(\"home\"));\n };\n onErrorSubmit = function(response) {\n if (response.data._error_message != null) {\n $confirm.notify(\"light-error\", \"According to our Oompa Loompas there was an error. \" + response.data._error_message);\n }\n return form.setErrors(response.data);\n };\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n promise = $auth.register($scope.data);\n return promise.then(onSuccessSubmit, onErrorSubmit);\n };\n })(this));\n return $el.on(\"submit\", \"form\", submit);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgRegister\", [\"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$tgNavUrls\", \"$tgConfig\", \"$tgAnalytics\", RegisterDirective]);\n\n ForgotPasswordDirective = function($auth, $confirm, $location, $navUrls) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, onErrorSubmit, onSuccessSubmit, submit;\n $scope.data = {};\n form = $el.find(\"form\").checksley();\n onSuccessSubmit = function(response) {\n $location.path($navUrls.resolve(\"login\"));\n return $confirm.success(\"Check your inbox!
We have sent you an email with the instructions to set a new password\");\n };\n onErrorSubmit = function(response) {\n return $confirm.notify(\"light-error\", \"According to our Oompa Loompas, your are not registered yet.\");\n };\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n promise = $auth.forgotPassword($scope.data);\n return promise.then(onSuccessSubmit, onErrorSubmit);\n };\n })(this));\n return $el.on(\"submit\", \"form\", submit);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgForgotPassword\", [\"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$tgNavUrls\", ForgotPasswordDirective]);\n\n ChangePasswordFromRecoveryDirective = function($auth, $confirm, $location, $params, $navUrls) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, onErrorSubmit, onSuccessSubmit, submit;\n $scope.data = {};\n if ($params.token != null) {\n $scope.tokenInParams = true;\n $scope.data.token = $params.token;\n } else {\n $scope.tokenInParams = false;\n }\n form = $el.find(\"form\").checksley();\n onSuccessSubmit = function(response) {\n $location.path($navUrls.resolve(\"login\"));\n return $confirm.success(\"Our Oompa Loompas saved your new password.
Try to sign in with it.\");\n };\n onErrorSubmit = function(response) {\n return $confirm.notify(\"light-error\", \"One of our Oompa Loompas say '\" + response.data._error_message + \"'.\");\n };\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n promise = $auth.changePasswordFromRecovery($scope.data);\n return promise.then(onSuccessSubmit, onErrorSubmit);\n };\n })(this));\n return $el.on(\"submit\", \"form\", submit);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgChangePasswordFromRecovery\", [\"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$routeParams\", \"$tgNavUrls\", ChangePasswordFromRecoveryDirective]);\n\n InvitationDirective = function($auth, $confirm, $location, $params, $navUrls, $analytics) {\n var link;\n link = function($scope, $el, $attrs) {\n var loginForm, onErrorSubmitLogin, onErrorSubmitRegister, onSuccessSubmitLogin, onSuccessSubmitRegister, promise, registerForm, submitLogin, submitRegister, token;\n token = $params.token;\n promise = $auth.getInvitation(token);\n promise.then(function(invitation) {\n return $scope.invitation = invitation;\n });\n promise.then(null, function(response) {\n $location.path($navUrls.resolve(\"login\"));\n return $confirm.success(\"Ooops, we have a problem
Our Oompa Loompas can't find your invitation.\");\n });\n $scope.dataLogin = {\n token: token\n };\n loginForm = $el.find(\"form.login-form\").checksley({\n onlyOneErrorElement: true\n });\n onSuccessSubmitLogin = function(response) {\n $analytics.trackEvent(\"auth\", \"invitationAccept\", \"invitation accept with existing user\", 1);\n $location.path($navUrls.resolve(\"project\", {\n project: $scope.invitation.project_slug\n }));\n return $confirm.notify(\"success\", \"You've successfully joined this project\", \"Welcome to \" + (_.escape($scope.invitation.project_name)));\n };\n onErrorSubmitLogin = function(response) {\n return $confirm.notify(\"light-error\", \"According to our Oompa Loompas, your are not registered yet or typed an invalid password.\");\n };\n submitLogin = debounce(2000, (function(_this) {\n return function(event) {\n event.preventDefault();\n if (!loginForm.validate()) {\n return;\n }\n promise = $auth.acceptInvitiationWithExistingUser($scope.dataLogin);\n return promise.then(onSuccessSubmitLogin, onErrorSubmitLogin);\n };\n })(this));\n $el.on(\"submit\", \"form.login-form\", submitLogin);\n $el.on(\"click\", \".button-login\", submitLogin);\n $scope.dataRegister = {\n token: token\n };\n registerForm = $el.find(\"form.register-form\").checksley();\n onSuccessSubmitRegister = function(response) {\n $analytics.trackEvent(\"auth\", \"invitationAccept\", \"invitation accept with new user\", 1);\n $location.path($navUrls.resolve(\"project\", {\n project: $scope.invitation.project_slug\n }));\n return $confirm.notify(\"success\", \"You've successfully joined this project\", \"Welcome to \" + (_.escape($scope.invitation.project_name)));\n };\n onErrorSubmitRegister = function(response) {\n return $confirm.notify(\"light-error\", \"According to our Oompa Loompas, that username or email is already in use.\");\n };\n submitRegister = debounce(2000, (function(_this) {\n return function(event) {\n event.preventDefault();\n if (!registerForm.validate()) {\n return;\n }\n promise = $auth.acceptInvitiationWithNewUser($scope.dataRegister);\n return promise.then(onSuccessSubmitRegister, onErrorSubmitRegister);\n };\n })(this));\n $el.on(\"submit\", \"form.register-form\", submitRegister);\n return $el.on(\"click\", \".button-register\", submitRegister);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgInvitation\", [\"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$routeParams\", \"$tgNavUrls\", \"$tgAnalytics\", InvitationDirective]);\n\n ChangeEmailDirective = function($repo, $model, $auth, $confirm, $location, $params, $navUrls) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, onErrorSubmit, onSuccessSubmit, submit;\n $scope.data = {};\n $scope.data.email_token = $params.email_token;\n form = $el.find(\"form\").checksley();\n onSuccessSubmit = function(response) {\n return $repo.queryOne(\"users\", $auth.getUser().id).then((function(_this) {\n return function(data) {\n $auth.setUser(data);\n $location.path($navUrls.resolve(\"home\"));\n return $confirm.success(\"Our Oompa Loompas updated your email\");\n };\n })(this));\n };\n onErrorSubmit = function(response) {\n return $confirm.notify(\"error\", \"One of our Oompa Loompas says '\" + response.data._error_message + \"'.\");\n };\n submit = function() {\n var promise;\n if (!form.validate()) {\n return;\n }\n promise = $auth.changeEmail($scope.data);\n return promise.then(onSuccessSubmit, onErrorSubmit);\n };\n $el.on(\"submit\", function(event) {\n event.preventDefault();\n return submit();\n });\n return $el.on(\"click\", \"a.button-change-email\", function(event) {\n event.preventDefault();\n return submit();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgChangeEmail\", [\"$tgRepo\", \"$tgModel\", \"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$routeParams\", \"$tgNavUrls\", ChangeEmailDirective]);\n\n CancelAccountDirective = function($repo, $model, $auth, $confirm, $location, $params, $navUrls) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, onErrorSubmit, onSuccessSubmit, submit;\n $scope.data = {};\n $scope.data.cancel_token = $params.cancel_token;\n form = $el.find(\"form\").checksley();\n onSuccessSubmit = function(response) {\n $auth.logout();\n $location.path($navUrls.resolve(\"home\"));\n return $confirm.success(\"Our Oompa Loompas removed your account\");\n };\n onErrorSubmit = function(response) {\n return $confirm.notify(\"error\", \"One of our Oompa Loompas says '\" + response.data._error_message + \"'.\");\n };\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n promise = $auth.cancelAccount($scope.data);\n return promise.then(onSuccessSubmit, onErrorSubmit);\n };\n })(this));\n return $el.on(\"submit\", \"form\", submit);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgCancelAccount\", [\"$tgRepo\", \"$tgModel\", \"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$routeParams\", \"$tgNavUrls\", CancelAccountDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/backlog.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaBacklog\", []);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base.coffee\n */\n\n(function() {\n var TaigaMainDirective, bindOnce, groupBy, init, module, taiga, urls;\n\n taiga = this.taiga;\n\n groupBy = this.taiga.groupBy;\n\n bindOnce = this.taiga.bindOnce;\n\n module = angular.module(\"taigaBase\", [\"taigaLocales\"]);\n\n TaigaMainDirective = function($rootscope, $window) {\n var link;\n link = function($scope, $el, $attrs) {\n return $window.onresize = function() {\n return $rootscope.$broadcast(\"resize\");\n };\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgMain\", [\"$rootScope\", \"$window\", TaigaMainDirective]);\n\n urls = {\n \"home\": \"/\",\n \"error\": \"/error\",\n \"not-found\": \"/not-found\",\n \"permission-denied\": \"/permission-denied\",\n \"login\": \"/login\",\n \"forgot-password\": \"/forgot-password\",\n \"change-password\": \"/change-password/:token\",\n \"change-email\": \"/change-email/:token\",\n \"cancel-account\": \"/cancel-account/:token\",\n \"register\": \"/register\",\n \"invitation\": \"/invitation/:token\",\n \"create-project\": \"/create-project\",\n \"profile\": \"/:user\",\n \"project\": \"/project/:project\",\n \"project-backlog\": \"/project/:project/backlog\",\n \"project-taskboard\": \"/project/:project/taskboard/:sprint\",\n \"project-kanban\": \"/project/:project/kanban\",\n \"project-issues\": \"/project/:project/issues\",\n \"project-search\": \"/project/:project/search\",\n \"project-userstories-detail\": \"/project/:project/us/:ref\",\n \"project-tasks-detail\": \"/project/:project/task/:ref\",\n \"project-issues-detail\": \"/project/:project/issue/:ref\",\n \"project-wiki\": \"/project/:project/wiki\",\n \"project-wiki-page\": \"/project/:project/wiki/:slug\",\n \"project-team\": \"/project/:project/team\",\n \"project-admin-home\": \"/project/:project/admin/project-profile/details\",\n \"project-admin-project-profile-details\": \"/project/:project/admin/project-profile/details\",\n \"project-admin-project-profile-default-values\": \"/project/:project/admin/project-profile/default-values\",\n \"project-admin-project-profile-modules\": \"/project/:project/admin/project-profile/modules\",\n \"project-admin-project-profile-export\": \"/project/:project/admin/project-profile/export\",\n \"project-admin-project-profile-reports\": \"/project/:project/admin/project-profile/reports\",\n \"project-admin-project-values-status\": \"/project/:project/admin/project-values/status\",\n \"project-admin-project-values-points\": \"/project/:project/admin/project-values/points\",\n \"project-admin-project-values-priorities\": \"/project/:project/admin/project-values/priorities\",\n \"project-admin-project-values-severities\": \"/project/:project/admin/project-values/severities\",\n \"project-admin-project-values-types\": \"/project/:project/admin/project-values/types\",\n \"project-admin-project-values-custom-fields\": \"/project/:project/admin/project-values/custom-fields\",\n \"project-admin-memberships\": \"/project/:project/admin/memberships\",\n \"project-admin-roles\": \"/project/:project/admin/roles\",\n \"project-admin-third-parties-webhooks\": \"/project/:project/admin/third-parties/webhooks\",\n \"project-admin-third-parties-github\": \"/project/:project/admin/third-parties/github\",\n \"project-admin-third-parties-gitlab\": \"/project/:project/admin/third-parties/gitlab\",\n \"project-admin-third-parties-bitbucket\": \"/project/:project/admin/third-parties/bitbucket\",\n \"project-admin-contrib\": \"/project/:project/admin/contrib/:plugin\",\n \"user-settings-user-profile\": \"/project/:project/user-settings/user-profile\",\n \"user-settings-user-change-password\": \"/project/:project/user-settings/user-change-password\",\n \"user-settings-user-avatar\": \"/project/:project/user-settings/user-avatar\",\n \"user-settings-mail-notifications\": \"/project/:project/user-settings/mail-notifications\"\n };\n\n init = function($log, $navurls) {\n $log.debug(\"Initialize navigation urls\");\n return $navurls.update(urls);\n };\n\n module.run([\"$log\", \"$tgNavUrls\", init]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common.coffee\n */\n\n(function() {\n var AnimationFrame, AppTitle, CheckPermissionDirective, ClassPermissionDirective, LimitLineLengthDirective, ProjectUrl, Qqueue, SelectedText, Template, ToggleCommentDirective, module, taiga,\n slice = [].slice;\n\n taiga = this.taiga;\n\n module = angular.module(\"taigaCommon\", []);\n\n SelectedText = function($window, $document) {\n var get;\n get = function() {\n if ($window.getSelection) {\n return $window.getSelection().toString();\n } else if ($document.selection) {\n return $document.selection.createRange().text;\n }\n return \"\";\n };\n return {\n get: get\n };\n };\n\n module.factory(\"$selectedText\", [\"$window\", \"$document\", SelectedText]);\n\n CheckPermissionDirective = function() {\n var link, render;\n render = function($el, project, permission) {\n if (project.my_permissions.indexOf(permission) > -1) {\n return $el.removeClass('hidden');\n }\n };\n link = function($scope, $el, $attrs) {\n var permission;\n $el.addClass('hidden');\n permission = $attrs.tgCheckPermission;\n $scope.$watch(\"project\", function(project) {\n if (project != null) {\n return render($el, project, permission);\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgCheckPermission\", CheckPermissionDirective);\n\n ClassPermissionDirective = function() {\n var link, name;\n name = \"tgClassPermission\";\n link = function($scope, $el, $attrs) {\n var checkPermissions, tgClassPermissionWatchAction, unbindWatcher;\n checkPermissions = function(project, className, permission) {\n var negation;\n negation = permission[0] === \"!\";\n if (negation) {\n permission = permission.slice(1);\n }\n if (negation && project.my_permissions.indexOf(permission) === -1) {\n return $el.addClass(className);\n } else if (!negation && project.my_permissions.indexOf(permission) !== -1) {\n return $el.addClass(className);\n } else {\n return $el.removeClass(className);\n }\n };\n tgClassPermissionWatchAction = function(project) {\n var className, classes, permission, results;\n if (project) {\n unbindWatcher();\n classes = $scope.$eval($attrs[name]);\n results = [];\n for (className in classes) {\n permission = classes[className];\n results.push(checkPermissions(project, className, permission));\n }\n return results;\n }\n };\n return unbindWatcher = $scope.$watch(\"project\", tgClassPermissionWatchAction);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgClassPermission\", ClassPermissionDirective);\n\n AnimationFrame = function() {\n var add, animationFrame, performAnimation, tail;\n animationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n performAnimation = (function(_this) {\n return function(time) {\n var fn;\n fn = tail.shift();\n fn();\n if (tail.length) {\n return animationFrame(performAnimation);\n }\n };\n })(this);\n tail = [];\n add = function() {\n var fn, i, len, results;\n results = [];\n for (i = 0, len = arguments.length; i < len; i++) {\n fn = arguments[i];\n tail.push(fn);\n if (tail.length === 1) {\n results.push(animationFrame(performAnimation));\n } else {\n results.push(void 0);\n }\n }\n return results;\n };\n return {\n add: add\n };\n };\n\n module.factory(\"animationFrame\", AnimationFrame);\n\n ToggleCommentDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return $el.find(\"textarea\").on(\"focus\", function() {\n return $el.addClass(\"active\");\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgToggleComment\", ToggleCommentDirective);\n\n AppTitle = function() {\n var set;\n set = function(text) {\n return $(\"title\").text(text);\n };\n return {\n set: set\n };\n };\n\n module.factory(\"$appTitle\", AppTitle);\n\n ProjectUrl = function($navurls) {\n var get;\n get = function(project) {\n var ctx;\n ctx = {\n project: project.slug\n };\n if (project.is_backlog_activated && project.my_permissions.indexOf(\"view_us\") > -1) {\n return $navurls.resolve(\"project-backlog\", ctx);\n }\n if (project.is_kanban_activated && project.my_permissions.indexOf(\"view_us\") > -1) {\n return $navurls.resolve(\"project-kanban\", ctx);\n }\n if (project.is_wiki_activated && project.my_permissions.indexOf(\"view_wiki_pages\") > -1) {\n return $navurls.resolve(\"project-wiki\", ctx);\n }\n if (project.is_issues_activated && project.my_permissions.indexOf(\"view_issues\") > -1) {\n return $navurls.resolve(\"project-issues\", ctx);\n }\n return $navurls.resolve(\"project\", ctx);\n };\n return {\n get: get\n };\n };\n\n module.factory(\"$projectUrl\", [\"$tgNavUrls\", ProjectUrl]);\n\n LimitLineLengthDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var maxColsPerLine;\n maxColsPerLine = parseInt($el.attr(\"cols\"));\n return $el.on(\"keyup\", function(event) {\n var code, lines;\n code = event.keyCode;\n lines = $el.val().split(\"\\n\");\n _.each(lines, function(line, index) {\n return lines[index] = line.substring(0, maxColsPerLine - 2);\n });\n return $el.val(lines.join(\"\\n\"));\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgLimitLineLength\", LimitLineLengthDirective);\n\n Qqueue = function($q) {\n var deferred, lastPromise, qqueue;\n deferred = $q.defer();\n deferred.resolve();\n lastPromise = deferred.promise;\n qqueue = {\n bindAdd: (function(_this) {\n return function(fn) {\n return function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return lastPromise = lastPromise.then(function() {\n return fn.apply(_this, args);\n });\n };\n return qqueue;\n };\n })(this),\n add: (function(_this) {\n return function(fn) {\n if (!lastPromise) {\n lastPromise = fn();\n } else {\n lastPromise = lastPromise.then(fn);\n }\n return qqueue;\n };\n })(this)\n };\n return qqueue;\n };\n\n module.factory(\"$tgQqueue\", [\"$q\", Qqueue]);\n\n Template = function($templateCache) {\n return {\n get: (function(_this) {\n return function(name, lodash) {\n var tmp;\n if (lodash == null) {\n lodash = false;\n }\n tmp = $templateCache.get(name);\n if (lodash) {\n tmp = _.template(tmp);\n }\n return tmp;\n };\n })(this)\n };\n };\n\n module.factory(\"$tgTemplate\", [\"$templateCache\", Template]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/events.coffee\n */\n\n(function() {\n var EventsProvider, EventsService, bindMethods, module, startswith, taiga;\n\n taiga = this.taiga;\n\n startswith = this.taiga.startswith;\n\n bindMethods = this.taiga.bindMethods;\n\n module = angular.module(\"taigaEvents\", []);\n\n EventsService = (function() {\n function EventsService(win, log, config, auth) {\n this.win = win;\n this.log = log;\n this.config = config;\n this.auth = auth;\n bindMethods(this);\n }\n\n EventsService.prototype.initialize = function(sessionId) {\n this.sessionId = sessionId;\n this.subscriptions = {};\n this.connected = false;\n this.error = false;\n this.pendingMessages = [];\n if (this.win.WebSocket === void 0) {\n return this.log.info(\"WebSockets not supported on your browser\");\n }\n };\n\n EventsService.prototype.setupConnection = function() {\n var loc, path, scheme, url;\n this.stopExistingConnection();\n url = this.config.get(\"eventsUrl\");\n if (!url) {\n return;\n }\n if (!startswith(url, \"ws:\") && !startswith(url, \"wss:\")) {\n loc = this.win.location;\n scheme = loc.protocol === \"https:\" ? \"wss:\" : \"ws:\";\n path = _.str.ltrim(url, \"/\");\n url = scheme + \"//\" + loc.host + \"/\" + path;\n }\n this.ws = new this.win.WebSocket(url);\n this.ws.addEventListener(\"open\", this.onOpen);\n this.ws.addEventListener(\"message\", this.onMessage);\n this.ws.addEventListener(\"error\", this.onError);\n return this.ws.addEventListener(\"close\", this.onClose);\n };\n\n EventsService.prototype.stopExistingConnection = function() {\n if (this.ws === void 0) {\n return;\n }\n this.ws.removeEventListener(\"open\", this.onOpen);\n this.ws.removeEventListener(\"close\", this.onClose);\n this.ws.removeEventListener(\"error\", this.onError);\n this.ws.removeEventListener(\"message\", this.onMessage);\n this.ws.close();\n return delete this.ws;\n };\n\n EventsService.prototype.serialize = function(message) {\n if (_.isObject(message)) {\n return JSON.stringify(message);\n }\n return message;\n };\n\n EventsService.prototype.sendMessage = function(message) {\n var i, len, messages, msg, results;\n this.pendingMessages.push(message);\n if (!this.connected) {\n return;\n }\n messages = _.map(this.pendingMessages, this.serialize);\n this.pendingMessages = [];\n results = [];\n for (i = 0, len = messages.length; i < len; i++) {\n msg = messages[i];\n results.push(this.ws.send(msg));\n }\n return results;\n };\n\n EventsService.prototype.subscribe = function(scope, routingKey, callback) {\n var message, subscription;\n if (this.error) {\n return;\n }\n this.log.debug(\"Subscribe to: \" + routingKey);\n subscription = {\n scope: scope,\n routingKey: routingKey,\n callback: _.debounce(callback, 500, {\n \"leading\": true,\n \"trailing\": false\n })\n };\n message = {\n \"cmd\": \"subscribe\",\n \"routing_key\": routingKey\n };\n this.subscriptions[routingKey] = subscription;\n this.sendMessage(message);\n return scope.$on(\"$destroy\", (function(_this) {\n return function() {\n return _this.unsubscribe(routingKey);\n };\n })(this));\n };\n\n EventsService.prototype.unsubscribe = function(routingKey) {\n var message;\n if (this.error) {\n return;\n }\n this.log.debug(\"Unsubscribe from: \" + routingKey);\n message = {\n \"cmd\": \"unsubscribe\",\n \"routing_key\": routingKey\n };\n return this.sendMessage(message);\n };\n\n EventsService.prototype.onOpen = function() {\n var message, token;\n this.connected = true;\n this.log.debug(\"WebSocket connection opened\");\n token = this.auth.getToken();\n message = {\n cmd: \"auth\",\n data: {\n token: token,\n sessionId: this.sessionId\n }\n };\n return this.sendMessage(message);\n };\n\n EventsService.prototype.onMessage = function(event) {\n var data, routingKey, subscription;\n this.log.debug(\"WebSocket message received: \" + event.data);\n data = JSON.parse(event.data);\n routingKey = data.routing_key;\n if (this.subscriptions[routingKey] == null) {\n return;\n }\n subscription = this.subscriptions[routingKey];\n return subscription.scope.$apply(function() {\n return subscription.callback(data.data);\n });\n };\n\n EventsService.prototype.onError = function(error) {\n this.log.error(\"WebSocket error: \" + error);\n return this.error = true;\n };\n\n EventsService.prototype.onClose = function() {\n this.log.debug(\"WebSocket closed.\");\n return this.connected = false;\n };\n\n return EventsService;\n\n })();\n\n EventsProvider = (function() {\n function EventsProvider() {}\n\n EventsProvider.prototype.setSessionId = function(sessionId) {\n return this.sessionId = sessionId;\n };\n\n EventsProvider.prototype.$get = function($win, $log, $conf, $auth) {\n var service;\n service = new EventsService($win, $log, $conf, $auth);\n service.initialize(this.sessionId);\n return service;\n };\n\n EventsProvider.prototype.$get.$inject = [\"$window\", \"$log\", \"$tgConfig\", \"$tgAuth\"];\n\n return EventsProvider;\n\n })();\n\n module.provider(\"$tgEvents\", EventsProvider);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/feedback.coffee\n */\n\n(function() {\n var FeedbackDirective, bindOnce, debounce, groupBy, mixOf, module, taiga, trim;\n\n taiga = this.taiga;\n\n groupBy = this.taiga.groupBy;\n\n bindOnce = this.taiga.bindOnce;\n\n mixOf = this.taiga.mixOf;\n\n debounce = this.taiga.debounce;\n\n trim = this.taiga.trim;\n\n module = angular.module(\"taigaFeedback\", []);\n\n FeedbackDirective = function($lightboxService, $repo, $confirm, $loading) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, submit, submitButton;\n form = $el.find(\"form\").checksley();\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n $loading.start(submitButton);\n promise = $repo.create(\"feedback\", $scope.feedback);\n promise.then(function(data) {\n $loading.finish(submitButton);\n $lightboxService.close($el);\n return $confirm.notify(\"success\", \"\\\\o/ we'll be happy to read your\");\n });\n return promise.then(null, function() {\n $loading.finish(submitButton);\n return $confirm.notify(\"error\");\n });\n };\n })(this));\n submitButton = $el.find(\".submit-button\");\n $el.on(\"submit\", \"form\", submit);\n $scope.$on(\"feedback:show\", function() {\n $scope.$apply(function() {\n return $scope.feedback = {};\n });\n $lightboxService.open($el);\n return $el.find(\"textarea\").focus();\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgLbFeedback\", [\"lightboxService\", \"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", FeedbackDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/integrations.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaIntegrations\", []);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/issues.coffee\n */\n\n(function() {\n var generateHash, module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n generateHash = taiga.generateHash;\n\n resourceProvider = function($repo, $http, $urls, $storage, $q) {\n var filtersHashSuffix, hashSuffix, myFiltersHashSuffix, service;\n service = {};\n hashSuffix = \"issues-queryparams\";\n filtersHashSuffix = \"issues-filters\";\n myFiltersHashSuffix = \"issues-my-filters\";\n service.get = function(projectId, issueId) {\n var params;\n params = service.getQueryParams(projectId);\n params.project = projectId;\n return $repo.queryOne(\"issues\", issueId, params);\n };\n service.getByRef = function(projectId, ref) {\n var params;\n params = service.getQueryParams(projectId);\n params.project = projectId;\n params.ref = ref;\n return $repo.queryOne(\"issues\", \"by_ref\", params);\n };\n service.list = function(projectId, filters, options) {\n var params;\n params = {\n project: projectId\n };\n params = _.extend({}, params, filters || {});\n service.storeQueryParams(projectId, params);\n return $repo.queryPaginated(\"issues\", params, options);\n };\n service.bulkCreate = function(projectId, data) {\n var params, url;\n url = $urls.resolve(\"bulk-create-issues\");\n params = {\n project_id: projectId,\n bulk_issues: data\n };\n return $http.post(url, params);\n };\n service.stats = function(projectId) {\n return $repo.queryOneRaw(\"projects\", projectId + \"/issues_stats\");\n };\n service.filtersData = function(projectId) {\n return $repo.queryOneRaw(\"projects\", projectId + \"/issue_filters_data\");\n };\n service.listValues = function(projectId, type) {\n var params;\n params = {\n \"project\": projectId\n };\n service.storeQueryParams(projectId, params);\n return $repo.queryMany(type, params);\n };\n service.storeQueryParams = function(projectId, params) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffix;\n hash = generateHash([projectId, ns]);\n return $storage.set(hash, params);\n };\n service.getQueryParams = function(projectId) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffix;\n hash = generateHash([projectId, ns]);\n return $storage.get(hash) || {};\n };\n service.storeFilters = function(projectSlug, params) {\n var hash, ns;\n ns = projectSlug + \":\" + filtersHashSuffix;\n hash = generateHash([projectSlug, ns]);\n return $storage.set(hash, params);\n };\n service.getFilters = function(projectSlug) {\n var hash, ns;\n ns = projectSlug + \":\" + filtersHashSuffix;\n hash = generateHash([projectSlug, ns]);\n return $storage.get(hash) || {};\n };\n service.storeMyFilters = function(projectId, myFilters) {\n var deferred, hash, ns, promise, url;\n deferred = $q.defer();\n url = $urls.resolve(\"user-storage\");\n ns = projectId + \":\" + myFiltersHashSuffix;\n hash = generateHash([projectId, ns]);\n if (_.isEmpty(myFilters)) {\n promise = $http[\"delete\"](url + \"/\" + hash, {\n key: hash,\n value: myFilters\n });\n promise.then(function() {\n return deferred.resolve();\n });\n promise.then(null, function() {\n return deferred.reject();\n });\n } else {\n promise = $http.put(url + \"/\" + hash, {\n key: hash,\n value: myFilters\n });\n promise.then(function(data) {\n return deferred.resolve();\n });\n promise.then(null, function(data) {\n var innerPromise;\n innerPromise = $http.post(\"\" + url, {\n key: hash,\n value: myFilters\n });\n innerPromise.then(function() {\n return deferred.resolve();\n });\n return innerPromise.then(null, function() {\n return deferred.reject();\n });\n });\n }\n return deferred.promise;\n };\n service.getMyFilters = function(projectId) {\n var deferred, hash, ns, promise, url;\n deferred = $q.defer();\n url = $urls.resolve(\"user-storage\");\n ns = projectId + \":\" + myFiltersHashSuffix;\n hash = generateHash([projectId, ns]);\n promise = $http.get(url + \"/\" + hash);\n promise.then(function(data) {\n return deferred.resolve(data.data.value);\n });\n promise.then(null, function(data) {\n return deferred.resolve({});\n });\n return deferred.promise;\n };\n return function(instance) {\n return instance.issues = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgIssuesResourcesProvider\", [\"$tgRepo\", \"$tgHttp\", \"$tgUrls\", \"$tgStorage\", \"$q\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/kanban.coffee\n */\n\n(function() {\n var generateHash, module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n generateHash = taiga.generateHash;\n\n resourceProvider = function($storage) {\n var hashSuffixStatusColumnModes, hashSuffixStatusViewModes, service;\n service = {};\n hashSuffixStatusViewModes = \"kanban-statusviewmodels\";\n hashSuffixStatusColumnModes = \"kanban-statuscolumnmodels\";\n service.storeStatusViewModes = function(projectId, params) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffixStatusViewModes;\n hash = generateHash([projectId, ns]);\n return $storage.set(hash, params);\n };\n service.getStatusViewModes = function(projectId) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffixStatusViewModes;\n hash = generateHash([projectId, ns]);\n return $storage.get(hash) || {};\n };\n service.storeStatusColumnModes = function(projectId, params) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffixStatusColumnModes;\n hash = generateHash([projectId, ns]);\n return $storage.set(hash, params);\n };\n service.getStatusColumnModes = function(projectId) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffixStatusColumnModes;\n hash = generateHash([projectId, ns]);\n return $storage.get(hash) || {};\n };\n return function(instance) {\n return instance.kanban = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgKanbanResourcesProvider\", [\"$tgStorage\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/locales.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaLocales\", []);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/user-settings/nav.coffee\n */\n\n(function() {\n var UserSettingsNavigationDirective, module;\n\n UserSettingsNavigationDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var section;\n section = $attrs.tgUserSettingsNavigation;\n $el.find(\".active\").removeClass(\"active\");\n $el.find(\"#usersettingsmenu-\" + section + \" a\").addClass(\"active\");\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module = angular.module(\"taigaUserSettings\");\n\n module.directive(\"tgUserSettingsNavigation\", UserSettingsNavigationDirective);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/projects.coffee\n */\n\n(function() {\n var module, resourceProvider, sizeFormat, taiga;\n\n taiga = this.taiga;\n\n sizeFormat = this.taiga.sizeFormat;\n\n resourceProvider = function($config, $repo, $http, $urls, $auth, $q, $rootScope) {\n var service;\n service = {};\n service.get = function(projectId) {\n return $repo.queryOne(\"projects\", projectId);\n };\n service.getBySlug = function(projectSlug) {\n return $repo.queryOne(\"projects\", \"by_slug?slug=\" + projectSlug);\n };\n service.list = function() {\n return $repo.queryMany(\"projects\");\n };\n service.listByMember = function(memberId) {\n var params;\n params = {\n \"member\": memberId\n };\n return $repo.queryMany(\"projects\", params);\n };\n service.templates = function() {\n return $repo.queryMany(\"project-templates\");\n };\n service.usersList = function(projectId) {\n var params;\n params = {\n \"project\": projectId\n };\n return $repo.queryMany(\"users\", params);\n };\n service.rolesList = function(projectId) {\n var params;\n params = {\n \"project\": projectId\n };\n return $repo.queryMany(\"roles\", params);\n };\n service.stats = function(projectId) {\n return $repo.queryOneRaw(\"projects\", projectId + \"/stats\");\n };\n service.regenerate_userstories_csv_uuid = function(projectId) {\n var url;\n url = ($urls.resolve(\"projects\")) + \"/\" + projectId + \"/regenerate_userstories_csv_uuid\";\n return $http.post(url);\n };\n service.regenerate_issues_csv_uuid = function(projectId) {\n var url;\n url = ($urls.resolve(\"projects\")) + \"/\" + projectId + \"/regenerate_issues_csv_uuid\";\n return $http.post(url);\n };\n service.regenerate_tasks_csv_uuid = function(projectId) {\n var url;\n url = ($urls.resolve(\"projects\")) + \"/\" + projectId + \"/regenerate_tasks_csv_uuid\";\n return $http.post(url);\n };\n service.leave = function(projectId) {\n var url;\n url = ($urls.resolve(\"projects\")) + \"/\" + projectId + \"/leave\";\n return $http.post(url);\n };\n service.memberStats = function(projectId) {\n return $repo.queryOneRaw(\"projects\", projectId + \"/member_stats\");\n };\n service.tagsColors = function(projectId) {\n return $repo.queryOne(\"projects\", projectId + \"/tags_colors\");\n };\n service[\"export\"] = function(projectId) {\n var url;\n url = ($urls.resolve(\"exporter\")) + \"/\" + projectId;\n return $http.get(url);\n };\n service[\"import\"] = function(file, statusUpdater) {\n var complete, data, defered, failed, maxFileSize, response, uploadComplete, uploadFailed, uploadProgress, xhr;\n defered = $q.defer();\n maxFileSize = $config.get(\"maxUploadFileSize\", null);\n if (maxFileSize && file.size > maxFileSize) {\n response = {\n status: 413,\n data: {\n _error_message: \"'\" + file.name + \"' (\" + (sizeFormat(file.size)) + \") is too heavy for our oompa loompas, try it with a smaller than (\" + (sizeFormat(maxFileSize)) + \")\"\n }\n };\n defered.reject(response);\n return defered.promise;\n }\n uploadProgress = (function(_this) {\n return function(evt) {\n var message, percent;\n percent = Math.round((evt.loaded / evt.total) * 100);\n message = \"Uloaded \" + (sizeFormat(evt.loaded)) + \" of \" + (sizeFormat(evt.total));\n return statusUpdater(\"in-progress\", null, message, percent);\n };\n })(this);\n uploadComplete = (function(_this) {\n return function(evt) {\n return statusUpdater(\"done\", \"Importing Project\", \"This process can take a while, please keep the window open.\");\n };\n })(this);\n uploadFailed = (function(_this) {\n return function(evt) {\n return statusUpdater(\"error\");\n };\n })(this);\n complete = (function(_this) {\n return function(evt) {\n var ref;\n response = {};\n try {\n response.data = JSON.parse(evt.target.responseText);\n } catch (_error) {\n response.data = {};\n }\n response.status = evt.target.status;\n if ((ref = response.status) === 201 || ref === 202) {\n defered.resolve(response);\n }\n return defered.reject(response);\n };\n })(this);\n failed = (function(_this) {\n return function(evt) {\n return defered.reject(\"fail\");\n };\n })(this);\n data = new FormData();\n data.append('dump', file);\n xhr = new XMLHttpRequest();\n xhr.upload.addEventListener(\"progress\", uploadProgress, false);\n xhr.upload.addEventListener(\"load\", uploadComplete, false);\n xhr.upload.addEventListener(\"error\", uploadFailed, false);\n xhr.upload.addEventListener(\"abort\", uploadFailed, false);\n xhr.addEventListener(\"load\", complete, false);\n xhr.addEventListener(\"error\", failed, false);\n xhr.open(\"POST\", $urls.resolve(\"importer\"));\n xhr.setRequestHeader(\"Authorization\", \"Bearer \" + ($auth.getToken()));\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send(data);\n return defered.promise;\n };\n return function(instance) {\n return instance.projects = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgProjectsResourcesProvider\", [\"$tgConfig\", \"$tgRepo\", \"$tgHttp\", \"$tgUrls\", \"$tgAuth\", \"$q\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/related-tasks.coffee\n */\n\n(function() {\n var RelatedTaskAssignedToInlineEditionDirective, RelatedTaskCreateButtonDirective, RelatedTaskCreateFormDirective, RelatedTaskRowDirective, RelatedTasksDirective, debounce, module, taiga, trim;\n\n taiga = this.taiga;\n\n trim = this.taiga.trim;\n\n debounce = this.taiga.debounce;\n\n module = angular.module(\"taigaRelatedTasks\", []);\n\n RelatedTaskRowDirective = function($repo, $compile, $confirm, $rootscope, $loading, $template) {\n var link, templateEdit, templateView;\n templateView = $template.get(\"task/related-task-row.html\", true);\n templateEdit = $template.get(\"task/related-task-row-edit.html\", true);\n link = function($scope, $el, $attrs, $model) {\n var renderEdit, renderView, saveTask;\n saveTask = debounce(2000, function(task) {\n var promise;\n task.subject = $el.find('input').val();\n $loading.start($el.find('.task-name'));\n promise = $repo.save(task);\n promise.then((function(_this) {\n return function() {\n $loading.finish($el.find('.task-name'));\n $confirm.notify(\"success\");\n return $rootscope.$broadcast(\"related-tasks:update\");\n };\n })(this));\n promise.then(null, (function(_this) {\n return function() {\n $loading.finish($el.find('.task-name'));\n $el.find('input').val(task.subject);\n return $confirm.notify(\"error\");\n };\n })(this));\n return promise;\n });\n renderEdit = function(task) {\n $el.html($compile(templateEdit({\n task: task\n }))($scope));\n $el.on(\"keyup\", \"input\", function(event) {\n if (event.keyCode === 13) {\n return saveTask($model.$modelValue).then(function() {\n return renderView($model.$modelValue);\n });\n } else if (event.keyCode === 27) {\n return renderView($model.$modelValue);\n }\n });\n $el.on(\"click\", \".icon-floppy\", function(event) {\n return saveTask($model.$modelValue).then(function() {\n return renderView($model.$modelValue);\n });\n });\n return $el.on(\"click\", \".cancel-edit\", function(event) {\n return renderView($model.$modelValue);\n });\n };\n renderView = function(task) {\n var perms;\n $el.off();\n perms = {\n modify_task: $scope.project.my_permissions.indexOf(\"modify_task\") !== -1,\n delete_task: $scope.project.my_permissions.indexOf(\"delete_task\") !== -1\n };\n $el.html($compile(templateView({\n task: task,\n perms: perms\n }))($scope));\n $el.on(\"click\", \".icon-edit\", function() {\n renderEdit($model.$modelValue);\n return $el.find('input').focus().select();\n });\n return $el.on(\"click\", \".delete-task\", function(event) {\n var message, title;\n task = $model.$modelValue;\n title = \"Delete Task\";\n message = task.subject;\n return $confirm.askOnDelete(title, message).then(function(finish) {\n var promise;\n promise = $repo.remove(task);\n promise.then(function() {\n finish();\n $confirm.notify(\"success\");\n return $scope.$emit(\"related-tasks:delete\");\n });\n return promise.then(null, function() {\n return $confirm.notify(\"error\");\n });\n });\n });\n };\n $scope.$watch($attrs.ngModel, function(val) {\n if (!val) {\n return;\n }\n return renderView(val);\n });\n $scope.$on(\"related-tasks:assigned-to-changed\", function() {\n return $rootscope.$broadcast(\"related-tasks:update\");\n });\n $scope.$on(\"related-tasks:status-changed\", function() {\n return $rootscope.$broadcast(\"related-tasks:update\");\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgRelatedTaskRow\", [\"$tgRepo\", \"$compile\", \"$tgConfirm\", \"$rootScope\", \"$tgLoading\", \"$tgTemplate\", RelatedTaskRowDirective]);\n\n RelatedTaskCreateFormDirective = function($repo, $compile, $confirm, $tgmodel, $loading, $analytics, $template) {\n var link, newTask, template;\n template = $template.get(\"task/related-task-create-form.html\", true);\n newTask = {\n subject: \"\",\n assigned_to: null\n };\n link = function($scope, $el, $attrs) {\n var createTask, render;\n createTask = debounce(2000, function(task) {\n var promise;\n task.subject = $el.find('input').val();\n task.assigned_to = $scope.newTask.assigned_to;\n task.status = $scope.newTask.status;\n $scope.newTask.status = $scope.project.default_task_status;\n $scope.newTask.assigned_to = null;\n $loading.start($el.find('.task-name'));\n promise = $repo.create(\"tasks\", task);\n promise.then(function() {\n $analytics.trackEvent(\"task\", \"create\", \"create task on userstory\", 1);\n $loading.finish($el.find('.task-name'));\n $scope.$emit(\"related-tasks:add\");\n return $confirm.notify(\"success\");\n });\n promise.then(null, function() {\n $el.find('input').val(task.subject);\n $loading.finish($el.find('.task-name'));\n return $confirm.notify(\"error\");\n });\n return promise;\n });\n render = function() {\n $el.off();\n $el.html($compile(template())($scope));\n $el.find('input').focus().select();\n $el.addClass('active');\n $el.on(\"keyup\", \"input\", function(event) {\n if (event.keyCode === 13) {\n return createTask(newTask).then(function() {\n return render();\n });\n } else if (event.keyCode === 27) {\n return $el.html(\"\");\n }\n });\n $el.on(\"click\", \".icon-delete\", function(event) {\n return $el.html(\"\");\n });\n return $el.on(\"click\", \".icon-floppy\", function(event) {\n return createTask(newTask).then(function() {\n return $el.html(\"\");\n });\n });\n };\n taiga.bindOnce($scope, \"us\", function(val) {\n newTask[\"status\"] = $scope.project.default_task_status;\n newTask[\"project\"] = $scope.project.id;\n newTask[\"user_story\"] = $scope.us.id;\n $scope.newTask = $tgmodel.make_model(\"tasks\", newTask);\n return $el.html(\"\");\n });\n $scope.$on(\"related-tasks:show-form\", function() {\n return render();\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgRelatedTaskCreateForm\", [\"$tgRepo\", \"$compile\", \"$tgConfirm\", \"$tgModel\", \"$tgLoading\", \"$tgAnalytics\", \"$tgTemplate\", RelatedTaskCreateFormDirective]);\n\n RelatedTaskCreateButtonDirective = function($repo, $compile, $confirm, $tgmodel) {\n var link, template;\n template = _.template(\"\");\n link = function($scope, $el, $attrs) {\n $scope.$watch(\"project\", function(val) {\n if (!val) {\n return;\n }\n $el.off();\n if ($scope.project.my_permissions.indexOf(\"add_task\") !== -1) {\n $el.html(template());\n } else {\n $el.html(\"\");\n }\n return $el.on(\"click\", \".icon\", function(event) {\n return $scope.$emit(\"related-tasks:add-new-clicked\");\n });\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgRelatedTaskCreateButton\", [\"$tgRepo\", \"$compile\", \"$tgConfirm\", \"$tgModel\", RelatedTaskCreateButtonDirective]);\n\n RelatedTasksDirective = function($repo, $rs, $rootscope) {\n var link;\n link = function($scope, $el, $attrs) {\n var loadTasks;\n loadTasks = function() {\n return $rs.tasks.list($scope.projectId, null, $scope.usId).then((function(_this) {\n return function(tasks) {\n $scope.tasks = tasks;\n return tasks;\n };\n })(this));\n };\n $scope.$on(\"related-tasks:add\", function() {\n return loadTasks().then(function() {\n return $rootscope.$broadcast(\"related-tasks:update\");\n });\n });\n $scope.$on(\"related-tasks:delete\", function() {\n return loadTasks().then(function() {\n return $rootscope.$broadcast(\"related-tasks:update\");\n });\n });\n $scope.$on(\"related-tasks:add-new-clicked\", function() {\n return $scope.$broadcast(\"related-tasks:show-form\");\n });\n taiga.bindOnce($scope, \"us\", function(val) {\n return loadTasks();\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgRelatedTasks\", [\"$tgRepo\", \"$tgResources\", \"$rootScope\", RelatedTasksDirective]);\n\n RelatedTaskAssignedToInlineEditionDirective = function($repo, $rootscope, popoverService) {\n var link, template;\n template = _.template(\"\\\" alt=\\\"<%- name %>\\\"/>\\n
<%- name %>
\");\n link = function($scope, $el, $attrs) {\n var $ctrl, autoSave, notAutoSave, task, updateRelatedTask;\n updateRelatedTask = function(task) {\n var ctx, member;\n ctx = {\n name: \"Unassigned\",\n imgurl: \"/images/unnamed.png\"\n };\n member = $scope.usersById[task.assigned_to];\n if (member) {\n ctx.imgurl = member.photo;\n ctx.name = member.full_name_display;\n }\n $el.find(\".avatar\").html(template(ctx));\n return $el.find(\".task-assignedto\").attr('title', ctx.name);\n };\n $ctrl = $el.controller();\n task = $scope.$eval($attrs.tgRelatedTaskAssignedToInlineEdition);\n notAutoSave = $scope.$eval($attrs.notAutoSave);\n autoSave = !notAutoSave;\n updateRelatedTask(task);\n $el.on(\"click\", \".task-assignedto\", function(event) {\n return $rootscope.$broadcast(\"assigned-to:add\", task);\n });\n taiga.bindOnce($scope, \"project\", function(project) {\n if (project.my_permissions.indexOf(\"modify_task\") === -1) {\n $el.unbind(\"click\");\n return $el.find(\"a\").addClass(\"not-clickable\");\n }\n });\n $scope.$on(\"assigned-to:added\", debounce(2000, (function(_this) {\n return function(ctx, userId, updatedRelatedTask) {\n if (updatedRelatedTask.id === task.id) {\n updatedRelatedTask.assigned_to = userId;\n if (autoSave) {\n $repo.save(updatedRelatedTask).then(function() {\n return $scope.$emit(\"related-tasks:assigned-to-changed\");\n });\n }\n return updateRelatedTask(updatedRelatedTask);\n }\n };\n })(this)));\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgRelatedTaskAssignedToInlineEdition\", [\"$tgRepo\", \"$rootScope\", RelatedTaskAssignedToInlineEditionDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources.coffee\n */\n\n(function() {\n var ResourcesService, initResources, initUrls, module, taiga, urls,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n ResourcesService = (function(superClass) {\n extend(ResourcesService, superClass);\n\n function ResourcesService() {\n return ResourcesService.__super__.constructor.apply(this, arguments);\n }\n\n return ResourcesService;\n\n })(taiga.Service);\n\n urls = {\n \"auth\": \"/auth\",\n \"auth-register\": \"/auth/register\",\n \"invitations\": \"/invitations\",\n \"permissions\": \"/permissions\",\n \"roles\": \"/roles\",\n \"projects\": \"/projects\",\n \"memberships\": \"/memberships\",\n \"notify-policies\": \"/notify-policies\",\n \"bulk-create-memberships\": \"/memberships/bulk_create\",\n \"milestones\": \"/milestones\",\n \"userstories\": \"/userstories\",\n \"bulk-create-us\": \"/userstories/bulk_create\",\n \"bulk-update-us-backlog-order\": \"/userstories/bulk_update_backlog_order\",\n \"bulk-update-us-sprint-order\": \"/userstories/bulk_update_sprint_order\",\n \"bulk-update-us-kanban-order\": \"/userstories/bulk_update_kanban_order\",\n \"userstories-restore\": \"/userstories/%s/restore\",\n \"tasks\": \"/tasks\",\n \"bulk-create-tasks\": \"/tasks/bulk_create\",\n \"bulk-update-task-taskboard-order\": \"/tasks/bulk_update_taskboard_order\",\n \"tasks-restore\": \"/tasks/%s/restore\",\n \"issues\": \"/issues\",\n \"bulk-create-issues\": \"/issues/bulk_create\",\n \"issues-restore\": \"/issues/%s/restore\",\n \"wiki\": \"/wiki\",\n \"wiki-restore\": \"/wiki/%s/restore\",\n \"wiki-links\": \"/wiki-links\",\n \"choices/userstory-statuses\": \"/userstory-statuses\",\n \"choices/userstory-statuses/bulk-update-order\": \"/userstory-statuses/bulk_update_order\",\n \"choices/points\": \"/points\",\n \"choices/points/bulk-update-order\": \"/points/bulk_update_order\",\n \"choices/task-statuses\": \"/task-statuses\",\n \"choices/task-statuses/bulk-update-order\": \"/task-statuses/bulk_update_order\",\n \"choices/issue-statuses\": \"/issue-statuses\",\n \"choices/issue-statuses/bulk-update-order\": \"/issue-statuses/bulk_update_order\",\n \"choices/issue-types\": \"/issue-types\",\n \"choices/issue-types/bulk-update-order\": \"/issue-types/bulk_update_order\",\n \"choices/priorities\": \"/priorities\",\n \"choices/priorities/bulk-update-order\": \"/priorities/bulk_update_order\",\n \"choices/severities\": \"/severities\",\n \"choices/severities/bulk-update-order\": \"/severities/bulk_update_order\",\n \"search\": \"/search\",\n \"sites\": \"/sites\",\n \"project-templates\": \"/project-templates\",\n \"site-members\": \"/site-members\",\n \"site-projects\": \"/site-projects\",\n \"users\": \"/users\",\n \"users-password-recovery\": \"/users/password_recovery\",\n \"users-change-password-from-recovery\": \"/users/change_password_from_recovery\",\n \"users-change-password\": \"/users/change_password\",\n \"users-change-email\": \"/users/change_email\",\n \"users-cancel-account\": \"/users/cancel\",\n \"user-storage\": \"/user-storage\",\n \"resolver\": \"/resolver\",\n \"userstory-statuses\": \"/userstory-statuses\",\n \"points\": \"/points\",\n \"task-statuses\": \"/task-statuses\",\n \"issue-statuses\": \"/issue-statuses\",\n \"issue-types\": \"/issue-types\",\n \"priorities\": \"/priorities\",\n \"severities\": \"/severities\",\n \"project-modules\": \"/projects/%s/modules\",\n \"webhooks\": \"/webhooks\",\n \"webhooks-test\": \"/webhooks/%s/test\",\n \"webhooklogs\": \"/webhooklogs\",\n \"webhooklogs-resend\": \"/webhooklogs/%s/resend\",\n \"history/us\": \"/history/userstory\",\n \"history/issue\": \"/history/issue\",\n \"history/task\": \"/history/task\",\n \"history/wiki\": \"/history/wiki\",\n \"attachments/us\": \"/userstories/attachments\",\n \"attachments/issue\": \"/issues/attachments\",\n \"attachments/task\": \"/tasks/attachments\",\n \"attachments/wiki_page\": \"/wiki/attachments\",\n \"custom-attributes/userstory\": \"/userstory-custom-attributes\",\n \"custom-attributes/issue\": \"/issue-custom-attributes\",\n \"custom-attributes/task\": \"/task-custom-attributes\",\n \"custom-attributes-values/userstory\": \"/userstories/custom-attributes-values\",\n \"custom-attributes-values/issue\": \"/issues/custom-attributes-values\",\n \"custom-attributes-values/task\": \"/tasks/custom-attributes-values\",\n \"feedback\": \"/feedback\",\n \"exporter\": \"/exporter\",\n \"importer\": \"/importer/load_dump\",\n \"userstories-csv\": \"/userstories/csv?uuid=%s\",\n \"tasks-csv\": \"/tasks/csv?uuid=%s\",\n \"issues-csv\": \"/issues/csv?uuid=%s\"\n };\n\n initUrls = function($log, $urls) {\n $log.debug(\"Initialize api urls\");\n return $urls.update(urls);\n };\n\n initResources = function($log, $rs) {\n var i, len, provider, providers, results;\n $log.debug(\"Initialize resources\");\n providers = _.toArray(arguments).slice(2);\n results = [];\n for (i = 0, len = providers.length; i < len; i++) {\n provider = providers[i];\n results.push(provider($rs));\n }\n return results;\n };\n\n module = angular.module(\"taigaResources\", [\"taigaBase\"]);\n\n module.service(\"$tgResources\", ResourcesService);\n\n module.run([\"$log\", \"$tgUrls\", initUrls]);\n\n module.run([\"$log\", \"$tgResources\", \"$tgProjectsResourcesProvider\", \"$tgCustomAttributesResourcesProvider\", \"$tgCustomAttributesValuesResourcesProvider\", \"$tgMembershipsResourcesProvider\", \"$tgNotifyPoliciesResourcesProvider\", \"$tgInvitationsResourcesProvider\", \"$tgRolesResourcesProvider\", \"$tgUserSettingsResourcesProvider\", \"$tgSprintsResourcesProvider\", \"$tgUserstoriesResourcesProvider\", \"$tgTasksResourcesProvider\", \"$tgIssuesResourcesProvider\", \"$tgWikiResourcesProvider\", \"$tgSearchResourcesProvider\", \"$tgAttachmentsResourcesProvider\", \"$tgMdRenderResourcesProvider\", \"$tgHistoryResourcesProvider\", \"$tgKanbanResourcesProvider\", \"$tgModulesResourcesProvider\", \"$tgWebhooksResourcesProvider\", \"$tgWebhookLogsResourcesProvider\", initResources]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/search.coffee\n */\n\n(function() {\n var module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n resourceProvider = function($repo, $urls, $http) {\n var service;\n service = {};\n service[\"do\"] = function(projectId, term) {\n var params, url;\n url = $urls.resolve(\"search\");\n params = {\n project: projectId,\n text: term,\n get_all: false\n };\n return $http.get(url, params).then(function(data) {\n return data.data;\n });\n };\n return function(instance) {\n return instance.search = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgSearchResourcesProvider\", [\"$tgRepo\", \"$tgUrls\", \"$tgHttp\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/taskboard.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaTaskboard\", []);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/tasks.coffee\n */\n\n(function() {\n var generateHash, module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n generateHash = taiga.generateHash;\n\n resourceProvider = function($repo, $http, $urls, $storage) {\n var hashSuffix, hashSuffixStatusColumnModes, hashSuffixUsRowModes, service;\n service = {};\n hashSuffix = \"tasks-queryparams\";\n hashSuffixStatusColumnModes = \"tasks-statuscolumnmodels\";\n hashSuffixUsRowModes = \"tasks-usrowmodels\";\n service.get = function(projectId, taskId) {\n var params;\n params = service.getQueryParams(projectId);\n params.project = projectId;\n return $repo.queryOne(\"tasks\", taskId, params);\n };\n service.getByRef = function(projectId, ref) {\n var params;\n params = service.getQueryParams(projectId);\n params.project = projectId;\n params.ref = ref;\n return $repo.queryOne(\"tasks\", \"by_ref\", params);\n };\n service.list = function(projectId, sprintId, userStoryId) {\n var params;\n if (sprintId == null) {\n sprintId = null;\n }\n if (userStoryId == null) {\n userStoryId = null;\n }\n params = {\n project: projectId\n };\n if (sprintId) {\n params.milestone = sprintId;\n }\n if (userStoryId) {\n params.user_story = userStoryId;\n }\n service.storeQueryParams(projectId, params);\n return $repo.queryMany(\"tasks\", params);\n };\n service.bulkCreate = function(projectId, sprintId, usId, data) {\n var params, url;\n url = $urls.resolve(\"bulk-create-tasks\");\n params = {\n project_id: projectId,\n sprint_id: sprintId,\n us_id: usId,\n bulk_tasks: data\n };\n return $http.post(url, params).then(function(result) {\n return result.data;\n });\n };\n service.bulkUpdateTaskTaskboardOrder = function(projectId, data) {\n var params, url;\n url = $urls.resolve(\"bulk-update-task-taskboard-order\");\n params = {\n project_id: projectId,\n bulk_tasks: data\n };\n return $http.post(url, params);\n };\n service.listValues = function(projectId, type) {\n var params;\n params = {\n \"project\": projectId\n };\n return $repo.queryMany(type, params);\n };\n service.storeQueryParams = function(projectId, params) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffix;\n hash = generateHash([projectId, ns]);\n return $storage.set(hash, params);\n };\n service.getQueryParams = function(projectId) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffix;\n hash = generateHash([projectId, ns]);\n return $storage.get(hash) || {};\n };\n service.storeStatusColumnModes = function(projectId, params) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffixStatusColumnModes;\n hash = generateHash([projectId, ns]);\n return $storage.set(hash, params);\n };\n service.getStatusColumnModes = function(projectId) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffixStatusColumnModes;\n hash = generateHash([projectId, ns]);\n return $storage.get(hash) || {};\n };\n service.storeUsRowModes = function(projectId, sprintId, params) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffixUsRowModes;\n hash = generateHash([projectId, sprintId, ns]);\n return $storage.set(hash, params);\n };\n service.getUsRowModes = function(projectId, sprintId) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffixUsRowModes;\n hash = generateHash([projectId, sprintId, ns]);\n return $storage.get(hash) || {};\n };\n return function(instance) {\n return instance.tasks = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgTasksResourcesProvider\", [\"$tgRepo\", \"$tgHttp\", \"$tgUrls\", \"$tgStorage\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/team.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaTeam\", []);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/memberships.coffee\n */\n\n(function() {\n var module, resourceProvider, sizeFormat, taiga;\n\n taiga = this.taiga;\n\n sizeFormat = this.taiga.sizeFormat;\n\n resourceProvider = function($config, $repo, $http, $urls, $q) {\n var service;\n service = {};\n service.changeAvatar = function(file) {\n var data, defered, maxFileSize, options, response, url;\n maxFileSize = $config.get(\"maxUploadFileSize\", null);\n if (maxFileSize && file.size > maxFileSize) {\n response = {\n status: 413,\n data: {\n _error_message: \"'\" + file.name + \"' (\" + (sizeFormat(file.size)) + \") is too heavy for our oompa loompas, try it with a smaller than (\" + (sizeFormat(maxFileSize)) + \")\"\n }\n };\n defered = $q.defer();\n defered.reject(response);\n return defered.promise;\n }\n data = new FormData();\n data.append('avatar', file);\n options = {\n transformRequest: angular.identity,\n headers: {\n 'Content-Type': void 0\n }\n };\n url = ($urls.resolve(\"users\")) + \"/change_avatar\";\n return $http.post(url, data, {}, options);\n };\n service.removeAvatar = function() {\n var url;\n url = ($urls.resolve(\"users\")) + \"/remove_avatar\";\n return $http.post(url);\n };\n service.changePassword = function(currentPassword, newPassword) {\n var data, url;\n url = ($urls.resolve(\"users\")) + \"/change_password\";\n data = {\n current_password: currentPassword,\n password: newPassword\n };\n return $http.post(url, data);\n };\n return function(instance) {\n return instance.userSettings = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgUserSettingsResourcesProvider\", [\"$tgConfig\", \"$tgRepo\", \"$tgHttp\", \"$tgUrls\", \"$q\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/userstories.coffee\n */\n\n(function() {\n var generateHash, module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n generateHash = taiga.generateHash;\n\n resourceProvider = function($repo, $http, $urls, $storage) {\n var hashSuffix, service;\n service = {};\n hashSuffix = \"userstories-queryparams\";\n service.get = function(projectId, usId) {\n var params;\n params = service.getQueryParams(projectId);\n params.project = projectId;\n return $repo.queryOne(\"userstories\", usId, params);\n };\n service.getByRef = function(projectId, ref) {\n var params;\n params = service.getQueryParams(projectId);\n params.project = projectId;\n params.ref = ref;\n return $repo.queryOne(\"userstories\", \"by_ref\", params);\n };\n service.listUnassigned = function(projectId, filters) {\n var params;\n params = {\n \"project\": projectId,\n \"milestone\": \"null\"\n };\n params = _.extend({}, params, filters || {});\n service.storeQueryParams(projectId, params);\n return $repo.queryMany(\"userstories\", params);\n };\n service.listAll = function(projectId, filters) {\n var params;\n params = {\n \"project\": projectId\n };\n params = _.extend({}, params, filters || {});\n service.storeQueryParams(projectId, params);\n return $repo.queryMany(\"userstories\", params);\n };\n service.bulkCreate = function(projectId, status, bulk) {\n var data, url;\n data = {\n project_id: projectId,\n status_id: status,\n bulk_stories: bulk\n };\n url = $urls.resolve(\"bulk-create-us\");\n return $http.post(url, data);\n };\n service.bulkUpdateBacklogOrder = function(projectId, data) {\n var params, url;\n url = $urls.resolve(\"bulk-update-us-backlog-order\");\n params = {\n project_id: projectId,\n bulk_stories: data\n };\n return $http.post(url, params);\n };\n service.bulkUpdateSprintOrder = function(projectId, data) {\n var params, url;\n url = $urls.resolve(\"bulk-update-us-sprint-order\");\n params = {\n project_id: projectId,\n bulk_stories: data\n };\n return $http.post(url, params);\n };\n service.bulkUpdateKanbanOrder = function(projectId, data) {\n var params, url;\n url = $urls.resolve(\"bulk-update-us-kanban-order\");\n params = {\n project_id: projectId,\n bulk_stories: data\n };\n return $http.post(url, params);\n };\n service.listValues = function(projectId, type) {\n var params;\n params = {\n \"project\": projectId\n };\n service.storeQueryParams(projectId, params);\n return $repo.queryMany(type, params);\n };\n service.storeQueryParams = function(projectId, params) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffix;\n hash = generateHash([projectId, ns]);\n return $storage.set(hash, params);\n };\n service.getQueryParams = function(projectId) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffix;\n hash = generateHash([projectId, ns]);\n return $storage.get(hash) || {};\n };\n service.storeShowTags = function(projectId, showTags) {\n var hash;\n hash = generateHash([projectId, 'showTags']);\n return $storage.set(hash, showTags);\n };\n service.getShowTags = function(projectId) {\n var hash;\n hash = generateHash([projectId, 'showTags']);\n return $storage.get(hash) || null;\n };\n return function(instance) {\n return instance.userstories = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgUserstoriesResourcesProvider\", [\"$tgRepo\", \"$tgHttp\", \"$tgUrls\", \"$tgStorage\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/wikis.coffee\n */\n\n(function() {\n var module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n resourceProvider = function($repo, $http, $urls) {\n var service;\n service = {};\n service.get = function(wikiId) {\n return $repo.queryOne(\"wiki\", wikiId);\n };\n service.getBySlug = function(projectId, slug) {\n return $repo.queryOne(\"wiki\", \"by_slug?project=\" + projectId + \"&slug=\" + slug);\n };\n service.listLinks = function(projectId) {\n return $repo.queryMany(\"wiki-links\", {\n project: projectId\n });\n };\n return function(instance) {\n return instance.wiki = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgWikiResourcesProvider\", [\"$tgRepo\", \"$tgHttp\", \"$tgUrls\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/analytics.coffee\n */\n\n(function() {\n var AnalyticsService, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n module = angular.module(\"taigaCommon\");\n\n AnalyticsService = (function(superClass) {\n extend(AnalyticsService, superClass);\n\n AnalyticsService.$inject = [\"$rootScope\", \"$log\", \"$tgConfig\", \"$window\", \"$document\", \"$location\"];\n\n function AnalyticsService(rootscope, log, config, win, doc, location) {\n var conf;\n this.rootscope = rootscope;\n this.log = log;\n this.config = config;\n this.win = win;\n this.doc = doc;\n this.location = location;\n this.initialized = false;\n conf = this.config.get(\"analytics\", {});\n this.accountId = conf.accountId;\n this.pageEvent = conf.pageEvent || \"$routeChangeSuccess\";\n this.trackRoutes = conf.trackRoutes || true;\n this.ignoreFirstPageLoad = conf.ignoreFirstPageLoad || false;\n }\n\n AnalyticsService.prototype.initialize = function() {\n if (!this.accountId) {\n this.log.debug(\"Analytics: no acount id provided. Disabling.\");\n return;\n }\n this.injectAnalytics();\n this.win.ga(\"create\", this.accountId, \"auto\");\n this.win.ga(\"require\", \"displayfeatures\");\n if (this.trackRoutes && (!this.ignoreFirstPageLoad)) {\n this.win.ga(\"send\", \"pageview\", this.getUrl());\n }\n if (this.trackRoutes) {\n this.rootscope.$on(this.pageEvent, (function(_this) {\n return function() {\n return _this.trackPage(_this.getUrl(), \"Taiga\");\n };\n })(this));\n }\n return this.initialized = true;\n };\n\n AnalyticsService.prototype.getUrl = function() {\n return this.location.path();\n };\n\n AnalyticsService.prototype.injectAnalytics = function() {\n var fn;\n fn = (function(i,s,o,g,r,a,m){i[\"GoogleAnalyticsObject\"]=r;i[r]=i[r]||function(){\n (i[r].q=i[r].q||[]).push(arguments);},i[r].l=1*new Date();a=s.createElement(o),\n m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m);});\n return fn(window, document, \"script\", \"//www.google-analytics.com/analytics.js\", \"ga\");\n };\n\n AnalyticsService.prototype.trackPage = function(url, title) {\n if (!this.initialized) {\n return;\n }\n if (!this.win.ga) {\n return;\n }\n title = title || this.doc[0].title;\n return this.win.ga(\"send\", \"pageview\", {\n \"page\": url,\n \"title\": title\n });\n };\n\n AnalyticsService.prototype.trackEvent = function(category, action, label, value) {\n if (!this.initialized) {\n return;\n }\n if (!this.win.ga) {\n return;\n }\n return this.win.ga(\"send\", \"event\", category, action, label, value);\n };\n\n return AnalyticsService;\n\n })(taiga.Service);\n\n module.service(\"$tgAnalytics\", AnalyticsService);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/attachments.coffee\n */\n\n(function() {\n var module, resourceProvider, sizeFormat, taiga;\n\n taiga = this.taiga;\n\n sizeFormat = this.taiga.sizeFormat;\n\n resourceProvider = function($rootScope, $config, $urls, $model, $repo, $auth, $q) {\n var service;\n service = {};\n service.list = function(urlName, objectId, projectId) {\n var params;\n params = {\n object_id: objectId,\n project: projectId\n };\n return $repo.queryMany(urlName, params);\n };\n service.create = function(urlName, projectId, objectId, file) {\n var data, defered, maxFileSize, response, uploadComplete, uploadFailed, uploadProgress, xhr;\n defered = $q.defer();\n if (file === void 0) {\n defered.reject(null);\n return defered.promise;\n }\n maxFileSize = $config.get(\"maxUploadFileSize\", null);\n if (maxFileSize && file.size > maxFileSize) {\n response = {\n status: 413,\n data: {\n _error_message: \"'\" + file.name + \"' (\" + (sizeFormat(file.size)) + \") is too heavy for our oompa loompas, try it with a smaller than (\" + (sizeFormat(maxFileSize)) + \")\"\n }\n };\n defered.reject(response);\n return defered.promise;\n }\n uploadProgress = (function(_this) {\n return function(evt) {\n return $rootScope.$apply(function() {\n file.status = \"in-progress\";\n file.size = sizeFormat(evt.total);\n file.progressMessage = \"upload \" + (sizeFormat(evt.loaded)) + \" of \" + (sizeFormat(evt.total));\n return file.progressPercent = (Math.round((evt.loaded / evt.total) * 100)) + \"%\";\n });\n };\n })(this);\n uploadComplete = (function(_this) {\n return function(evt) {\n return $rootScope.$apply(function() {\n var data, model;\n file.status = \"done\";\n try {\n data = JSON.parse(evt.target.responseText);\n } catch (_error) {\n data = {};\n }\n model = $model.make_model(urlName, data);\n return defered.resolve(model);\n });\n };\n })(this);\n uploadFailed = (function(_this) {\n return function(evt) {\n return $rootScope.$apply(function() {\n file.status = \"error\";\n return defered.reject(\"fail\");\n });\n };\n })(this);\n data = new FormData();\n data.append(\"project\", projectId);\n data.append(\"object_id\", objectId);\n data.append(\"attached_file\", file);\n xhr = new XMLHttpRequest();\n xhr.upload.addEventListener(\"progress\", uploadProgress, false);\n xhr.addEventListener(\"load\", uploadComplete, false);\n xhr.addEventListener(\"error\", uploadFailed, false);\n xhr.open(\"POST\", $urls.resolve(urlName));\n xhr.setRequestHeader(\"Authorization\", \"Bearer \" + ($auth.getToken()));\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send(data);\n return defered.promise;\n };\n return function(instance) {\n return instance.attachments = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgAttachmentsResourcesProvider\", [\"$rootScope\", \"$tgConfig\", \"$tgUrls\", \"$tgModel\", \"$tgRepo\", \"$tgAuth\", \"$q\", resourceProvider]);\n\n}).call(this);\n","(function() {\n var BindScope, module;\n\n module = angular.module(\"taigaCommon\");\n\n BindScope = function(config) {\n var link;\n if (!config.debugInfo) {\n jQuery.fn.scope = function() {\n return this.data('scope');\n };\n }\n link = function($scope, $el) {\n if (!config.debugInfo) {\n return $el.data('scope', $scope).addClass('tg-scope');\n }\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgBindScope\", [\"$tgConfig\", BindScope]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/components.coffee\n */\n\n(function() {\n var AssignedToDirective, BlockButtonDirective, CreatedByDisplayDirective, DateRangeDirective, DateSelectorDirective, DeleteButtonDirective, EditableDescriptionDirective, EditableSubjectDirective, ListItemAssignedtoDirective, ListItemIssueStatusDirective, ListItemPriorityDirective, ListItemSeverityDirective, ListItemTaskStatusDirective, ListItemTypeDirective, ListItemUsStatusDirective, SprintProgressBarDirective, TgMainTitleDirective, TgProgressBarDirective, WatchersDirective, bindOnce, module, taiga;\n\n taiga = this.taiga;\n\n bindOnce = this.taiga.bindOnce;\n\n module = angular.module(\"taigaCommon\");\n\n DateRangeDirective = function() {\n var link, renderRange;\n renderRange = function($el, first, second) {\n var endDate, initDate;\n initDate = moment(first).format(\"DD MMM YYYY\");\n endDate = moment(second).format(\"DD MMM YYYY\");\n return $el.html(initDate + \"-\" + endDate);\n };\n link = function($scope, $el, $attrs) {\n var first, ref, second;\n ref = $attrs.tgDateRange.split(\",\"), first = ref[0], second = ref[1];\n return bindOnce($scope, first, function(valFirst) {\n return bindOnce($scope, second, function(valSecond) {\n return renderRange($el, valFirst, valSecond);\n });\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgDateRange\", DateRangeDirective);\n\n DateSelectorDirective = function() {\n var link;\n link = function($scope, $el, $attrs, $model) {\n var selectedDate;\n selectedDate = null;\n $el.picker = new Pikaday({\n field: $el[0],\n format: \"DD MMM YYYY\",\n onSelect: (function(_this) {\n return function(date) {\n return selectedDate = date;\n };\n })(this),\n onOpen: (function(_this) {\n return function() {\n if (selectedDate != null) {\n return $el.picker.setDate(selectedDate);\n }\n };\n })(this)\n });\n return $scope.$watch($attrs.ngModel, function(val) {\n if (val != null) {\n return $el.picker.setDate(val);\n }\n });\n };\n return {\n link: link,\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgDateSelector\", DateSelectorDirective);\n\n SprintProgressBarDirective = function() {\n var link, renderProgress;\n renderProgress = function($el, percentage, visual_percentage) {\n if ($el.hasClass(\".current-progress\")) {\n return $el.css(\"width\", percentage + \"%\");\n } else {\n $el.find(\".current-progress\").css(\"width\", visual_percentage + \"%\");\n return $el.find(\".number\").html(percentage + \" %\");\n }\n };\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, $attrs.tgSprintProgressbar, function(sprint) {\n var closedPoints, percentage, totalPoints, visual_percentage;\n closedPoints = sprint.closed_points;\n totalPoints = sprint.total_points;\n percentage = 0;\n if (totalPoints !== 0) {\n percentage = Math.round(100 * (closedPoints / totalPoints));\n }\n visual_percentage = 0;\n if (totalPoints !== 0) {\n visual_percentage = Math.round(98 * (closedPoints / totalPoints));\n }\n return renderProgress($el, percentage, visual_percentage);\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgSprintProgressbar\", SprintProgressBarDirective);\n\n CreatedByDisplayDirective = function($template) {\n var link, template;\n template = $template.get(\"common/components/created-by.html\", true);\n link = function($scope, $el, $attrs) {\n var render;\n render = function(model) {\n var html, owner, ref;\n owner = ((ref = $scope.usersById) != null ? ref[model.owner] : void 0) || {\n full_name_display: \"external user\",\n photo: \"/images/unnamed.png\"\n };\n html = template({\n owner: owner,\n date: moment(model.created_date).format(\"DD MMM YYYY HH:mm\")\n });\n return $el.html(html);\n };\n bindOnce($scope, $attrs.ngModel, function(model) {\n if (model != null) {\n return render(model);\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgCreatedByDisplay\", [\"$tgTemplate\", CreatedByDisplayDirective]);\n\n WatchersDirective = function($rootscope, $confirm, $repo, $qqueue, $template) {\n var link, template;\n template = $template.get(\"common/components/watchers.html\", true);\n link = function($scope, $el, $attrs, $model) {\n var deleteWatcher, isEditable, renderWatchers, save;\n isEditable = function() {\n var ref, ref1;\n return ((ref = $scope.project) != null ? (ref1 = ref.my_permissions) != null ? ref1.indexOf($attrs.requiredPerm) : void 0 : void 0) !== -1;\n };\n save = $qqueue.bindAdd((function(_this) {\n return function(watchers) {\n var item, promise;\n item = $model.$modelValue.clone();\n item.watchers = watchers;\n $model.$setViewValue(item);\n promise = $repo.save($model.$modelValue);\n promise.then(function() {\n $confirm.notify(\"success\");\n watchers = _.map(watchers, function(watcherId) {\n return $scope.usersById[watcherId];\n });\n renderWatchers(watchers);\n return $rootscope.$broadcast(\"history:reload\");\n });\n return promise.then(null, function() {\n return $model.$modelValue.revert();\n });\n };\n })(this));\n deleteWatcher = $qqueue.bindAdd((function(_this) {\n return function(watcherIds) {\n var item, promise;\n item = $model.$modelValue.clone();\n item.watchers = watcherIds;\n $model.$setViewValue(item);\n promise = $repo.save($model.$modelValue);\n promise.then(function() {\n var watchers;\n $confirm.notify(\"success\");\n watchers = _.map(item.watchers, function(watcherId) {\n return $scope.usersById[watcherId];\n });\n renderWatchers(watchers);\n return $rootscope.$broadcast(\"history:reload\");\n });\n return promise.then(null, function() {\n item.revert();\n return $confirm.notify(\"error\");\n });\n };\n })(this));\n renderWatchers = function(watchers) {\n var ctx, html;\n ctx = {\n watchers: watchers,\n isEditable: isEditable()\n };\n html = template(ctx);\n $el.html(html);\n if (isEditable() && watchers.length === 0) {\n $el.find(\".title\").text(\"Add watchers\");\n return $el.find(\".watchers-header\").addClass(\"no-watchers\");\n }\n };\n $el.on(\"click\", \".icon-delete\", function(event) {\n var message, target, title, watcherId;\n event.preventDefault();\n if (!isEditable()) {\n return;\n }\n target = angular.element(event.currentTarget);\n watcherId = target.data(\"watcher-id\");\n title = \"Delete watcher\";\n message = $scope.usersById[watcherId].full_name_display;\n return $confirm.askOnDelete(title, message).then((function(_this) {\n return function(finish) {\n var watcherIds;\n finish();\n watcherIds = _.clone($model.$modelValue.watchers, false);\n watcherIds = _.pull(watcherIds, watcherId);\n return deleteWatcher(watcherIds);\n };\n })(this));\n });\n $el.on(\"click\", \".add-watcher\", function(event) {\n event.preventDefault();\n if (!isEditable()) {\n return;\n }\n return $scope.$apply(function() {\n return $rootscope.$broadcast(\"watcher:add\", $model.$modelValue);\n });\n });\n $scope.$on(\"watcher:added\", function(ctx, watcherId) {\n var watchers;\n watchers = _.clone($model.$modelValue.watchers, false);\n watchers.push(watcherId);\n watchers = _.uniq(watchers);\n return save(watchers);\n });\n $scope.$watch($attrs.ngModel, function(item) {\n var watchers;\n if (item == null) {\n return;\n }\n watchers = _.map(item.watchers, function(watcherId) {\n return $scope.usersById[watcherId];\n });\n return renderWatchers(watchers);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgWatchers\", [\"$rootScope\", \"$tgConfirm\", \"$tgRepo\", \"$tgQqueue\", \"$tgTemplate\", WatchersDirective]);\n\n AssignedToDirective = function($rootscope, $confirm, $repo, $loading, $qqueue, $template) {\n var link, template;\n template = $template.get(\"common/components/assigned-to.html\", true);\n link = function($scope, $el, $attrs, $model) {\n var isEditable, renderAssignedTo, save;\n isEditable = function() {\n var ref, ref1;\n return ((ref = $scope.project) != null ? (ref1 = ref.my_permissions) != null ? ref1.indexOf($attrs.requiredPerm) : void 0 : void 0) !== -1;\n };\n save = $qqueue.bindAdd((function(_this) {\n return function(userId) {\n var promise;\n $model.$modelValue.assigned_to = userId;\n $loading.start($el);\n promise = $repo.save($model.$modelValue);\n promise.then(function() {\n $loading.finish($el);\n $confirm.notify(\"success\");\n renderAssignedTo($model.$modelValue);\n return $rootscope.$broadcast(\"history:reload\");\n });\n promise.then(null, function() {\n $model.$modelValue.revert();\n $confirm.notify(\"error\");\n return $loading.finish($el);\n });\n return promise;\n };\n })(this));\n renderAssignedTo = function(issue) {\n var assignedTo, assignedToId, ctx, html;\n assignedToId = issue != null ? issue.assigned_to : void 0;\n assignedTo = assignedToId != null ? $scope.usersById[assignedToId] : null;\n ctx = {\n assignedTo: assignedTo,\n isEditable: isEditable()\n };\n html = template(ctx);\n return $el.html(html);\n };\n $el.on(\"click\", \".user-assigned\", function(event) {\n event.preventDefault();\n if (!isEditable()) {\n return;\n }\n return $scope.$apply(function() {\n return $rootscope.$broadcast(\"assigned-to:add\", $model.$modelValue);\n });\n });\n $el.on(\"click\", \".icon-delete\", function(event) {\n var title;\n event.preventDefault();\n if (!isEditable()) {\n return;\n }\n title = \"Are you sure you want to leave it unassigned?\";\n return $confirm.ask(title).then((function(_this) {\n return function(finish) {\n finish();\n $model.$modelValue.assigned_to = null;\n return save(null);\n };\n })(this));\n });\n $scope.$on(\"assigned-to:added\", function(ctx, userId, item) {\n if (item.id !== $model.$modelValue.id) {\n return;\n }\n return save(userId);\n });\n $scope.$watch($attrs.ngModel, function(instance) {\n return renderAssignedTo(instance);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgAssignedTo\", [\"$rootScope\", \"$tgConfirm\", \"$tgRepo\", \"$tgLoading\", \"$tgQqueue\", \"$tgTemplate\", AssignedToDirective]);\n\n BlockButtonDirective = function($rootscope, $loading, $template) {\n var link, template;\n template = $template.get(\"common/components/block-button.html\");\n link = function($scope, $el, $attrs, $model) {\n var isEditable;\n isEditable = function() {\n return $scope.project.my_permissions.indexOf(\"modify_us\") !== -1;\n };\n $scope.$watch($attrs.ngModel, function(item) {\n if (!item) {\n return;\n }\n if (isEditable()) {\n $el.find('.item-block').addClass('editable');\n }\n if (item.is_blocked) {\n $el.find('.item-block').hide();\n return $el.find('.item-unblock').show();\n } else {\n $el.find('.item-block').show();\n return $el.find('.item-unblock').hide();\n }\n });\n $el.on(\"click\", \".item-block\", function(event) {\n event.preventDefault();\n return $rootscope.$broadcast(\"block\", $model.$modelValue);\n });\n $el.on(\"click\", \".item-unblock\", function(event) {\n var finish;\n event.preventDefault();\n $loading.start($el.find(\".item-unblock\"));\n finish = function() {\n return $loading.finish($el.find(\".item-unblock\"));\n };\n return $rootscope.$broadcast(\"unblock\", $model.$modelValue, finish);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\",\n template: template\n };\n };\n\n module.directive(\"tgBlockButton\", [\"$rootScope\", \"$tgLoading\", \"$tgTemplate\", BlockButtonDirective]);\n\n DeleteButtonDirective = function($log, $repo, $confirm, $location, $template) {\n var link, template;\n template = $template.get(\"common/components/delete-button.html\");\n link = function($scope, $el, $attrs, $model) {\n if (!$attrs.onDeleteGoToUrl) {\n return $log.error(\"DeleteButtonDirective requires on-delete-go-to-url set in scope.\");\n }\n if (!$attrs.onDeleteTitle) {\n return $log.error(\"DeleteButtonDirective requires on-delete-title set in scope.\");\n }\n $el.on(\"click\", \".button\", function(event) {\n var subtitle, title;\n title = $scope.$eval($attrs.onDeleteTitle);\n subtitle = $model.$modelValue.subject;\n return $confirm.askOnDelete(title, subtitle).then((function(_this) {\n return function(finish) {\n var promise;\n promise = $repo.remove($model.$modelValue);\n promise.then(function() {\n var url;\n finish();\n url = $scope.$eval($attrs.onDeleteGoToUrl);\n return $location.path(url);\n });\n return promise.then(null, function() {\n finish(false);\n return $confirm.notify(\"error\");\n });\n };\n })(this));\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\",\n template: template\n };\n };\n\n module.directive(\"tgDeleteButton\", [\"$log\", \"$tgRepo\", \"$tgConfirm\", \"$tgLocation\", \"$tgTemplate\", DeleteButtonDirective]);\n\n EditableSubjectDirective = function($rootscope, $repo, $confirm, $loading, $qqueue, $template) {\n var link, template;\n template = $template.get(\"common/components/editable-subject.html\");\n link = function($scope, $el, $attrs, $model) {\n var isEditable, save;\n isEditable = function() {\n return $scope.project.my_permissions.indexOf($attrs.requiredPerm) !== -1;\n };\n save = $qqueue.bindAdd((function(_this) {\n return function(subject) {\n var promise;\n $model.$modelValue.subject = subject;\n $loading.start($el.find('.save-container'));\n promise = $repo.save($model.$modelValue);\n promise.then(function() {\n $confirm.notify(\"success\");\n $rootscope.$broadcast(\"history:reload\");\n $el.find('.edit-subject').hide();\n return $el.find('.view-subject').show();\n });\n promise.then(null, function() {\n return $confirm.notify(\"error\");\n });\n promise[\"finally\"](function() {\n return $loading.finish($el.find('.save-container'));\n });\n return promise;\n };\n })(this));\n $el.click(function() {\n if (!isEditable()) {\n return;\n }\n $el.find('.edit-subject').show();\n $el.find('.view-subject').hide();\n return $el.find('input').focus();\n });\n $el.on(\"click\", \".save\", function() {\n var subject;\n subject = $scope.item.subject;\n return save(subject);\n });\n $el.on(\"keyup\", \"input\", function(event) {\n var subject;\n if (event.keyCode === 13) {\n subject = $scope.item.subject;\n return save(subject);\n } else if (event.keyCode === 27) {\n $scope.$apply((function(_this) {\n return function() {\n return $model.$modelValue.revert();\n };\n })(this));\n $el.find('div.edit-subject').hide();\n return $el.find('div.view-subject').show();\n }\n });\n $el.find('div.edit-subject').hide();\n $el.find('div.view-subject span.edit').hide();\n $scope.$watch($attrs.ngModel, function(value) {\n if (!value) {\n return;\n }\n $scope.item = value;\n if (!isEditable()) {\n return $el.find('.view-subject .edit').remove();\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\",\n template: template\n };\n };\n\n module.directive(\"tgEditableSubject\", [\"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", \"$tgQqueue\", \"$tgTemplate\", EditableSubjectDirective]);\n\n EditableDescriptionDirective = function($rootscope, $repo, $confirm, $compile, $loading, $selectedText, $qqueue, $template) {\n var link, noDescriptionMegEditMode, noDescriptionMegReadMode, template;\n template = $template.get(\"common/components/editable-description.html\");\n noDescriptionMegEditMode = $template.get(\"common/components/editable-description-msg-edit-mode.html\");\n noDescriptionMegReadMode = $template.get(\"common/components/editable-description-msg-read-mode.html\");\n link = function($scope, $el, $attrs, $model) {\n var isEditable, save;\n $el.find('.edit-description').hide();\n $el.find('.view-description .edit').hide();\n isEditable = function() {\n return $scope.project.my_permissions.indexOf($attrs.requiredPerm) !== -1;\n };\n save = $qqueue.bindAdd((function(_this) {\n return function(description) {\n var promise;\n $model.$modelValue.description = description;\n $loading.start($el.find('.save-container'));\n promise = $repo.save($model.$modelValue);\n promise.then(function() {\n $confirm.notify(\"success\");\n $rootscope.$broadcast(\"history:reload\");\n $el.find('.edit-description').hide();\n return $el.find('.view-description').show();\n });\n promise.then(null, function() {\n return $confirm.notify(\"error\");\n });\n return promise[\"finally\"](function() {\n return $loading.finish($el.find('.save-container'));\n });\n };\n })(this));\n $el.on(\"mouseup\", \".view-description\", function(event) {\n var target;\n target = angular.element(event.target);\n if (!isEditable()) {\n return;\n }\n if (target.is('a')) {\n return;\n }\n if ($selectedText.get().length) {\n return;\n }\n $el.find('.edit-description').show();\n $el.find('.view-description').hide();\n return $el.find('textarea').focus();\n });\n $el.on(\"click\", \".save\", function(e) {\n var description;\n e.preventDefault();\n description = $scope.item.description;\n return save(description);\n });\n $el.on(\"keydown\", \"textarea\", function(event) {\n if (event.keyCode === 27) {\n $scope.$apply((function(_this) {\n return function() {\n return $scope.item.revert();\n };\n })(this));\n $el.find('.edit-description').hide();\n return $el.find('.view-description').show();\n }\n });\n $scope.$watch($attrs.ngModel, function(value) {\n if (!value) {\n return;\n }\n $scope.item = value;\n if (isEditable()) {\n $el.find('.view-description .edit').show();\n $el.find('.view-description .us-content').addClass('editable');\n return $scope.noDescriptionMsg = noDescriptionMegEditMode;\n } else {\n return $scope.noDescriptionMsg = noDescriptionMegReadMode;\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\",\n template: template\n };\n };\n\n module.directive(\"tgEditableDescription\", [\"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$compile\", \"$tgLoading\", \"$selectedText\", \"$tgQqueue\", \"$tgTemplate\", EditableDescriptionDirective]);\n\n ListItemIssueStatusDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var issue;\n issue = $scope.$eval($attrs.tgListitemIssueStatus);\n return bindOnce($scope, \"issueStatusById\", function(issueStatusById) {\n return $el.html(issueStatusById[issue.status].name);\n });\n };\n return {\n link: link\n };\n };\n\n ListItemTaskStatusDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var task;\n task = $scope.$eval($attrs.tgListitemTaskStatus);\n return bindOnce($scope, \"taskStatusById\", function(taskStatusById) {\n return $el.html(taskStatusById[task.status].name);\n });\n };\n return {\n link: link\n };\n };\n\n ListItemUsStatusDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var us;\n us = $scope.$eval($attrs.tgListitemUsStatus);\n return bindOnce($scope, \"usStatusById\", function(usStatusById) {\n return $el.html(usStatusById[us.status].name);\n });\n };\n return {\n link: link\n };\n };\n\n ListItemAssignedtoDirective = function($template) {\n var link, template;\n template = $template.get(\"common/components/list-item-assigned-to-avatar.html\", true);\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, \"membersById\", function(membersById) {\n var ctx, item, member;\n item = $scope.$eval($attrs.tgListitemAssignedto);\n ctx = {\n name: \"Unassigned\",\n imgurl: \"/images/unnamed.png\"\n };\n member = membersById[item.assigned_to];\n if (member) {\n ctx.imgurl = member.photo;\n ctx.name = member.full_name;\n }\n return $el.html(template(ctx));\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgListitemAssignedto\", [\"$tgTemplate\", ListItemAssignedtoDirective]);\n\n ListItemPriorityDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var render;\n render = function(priorityById, issue) {\n var domNode, priority;\n priority = priorityById[issue.priority];\n domNode = $el.find(\".level\");\n domNode.css(\"background-color\", priority.color);\n return domNode.attr(\"title\", priority.name);\n };\n bindOnce($scope, \"priorityById\", function(priorityById) {\n var issue;\n issue = $scope.$eval($attrs.tgListitemPriority);\n return render(priorityById, issue);\n });\n return $scope.$watch($attrs.tgListitemPriority, function(issue) {\n return render($scope.priorityById, issue);\n });\n };\n return {\n link: link,\n templateUrl: \"common/components/level.html\"\n };\n };\n\n module.directive(\"tgListitemPriority\", ListItemPriorityDirective);\n\n ListItemSeverityDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var render;\n render = function(severityById, issue) {\n var domNode, severity;\n severity = severityById[issue.severity];\n domNode = $el.find(\".level\");\n domNode.css(\"background-color\", severity.color);\n return domNode.attr(\"title\", severity.name);\n };\n bindOnce($scope, \"severityById\", function(severityById) {\n var issue;\n issue = $scope.$eval($attrs.tgListitemSeverity);\n return render(severityById, issue);\n });\n return $scope.$watch($attrs.tgListitemSeverity, function(issue) {\n return render($scope.severityById, issue);\n });\n };\n return {\n link: link,\n templateUrl: \"common/components/level.html\"\n };\n };\n\n ListItemTypeDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var render;\n render = function(issueTypeById, issue) {\n var domNode, type;\n type = issueTypeById[issue.type];\n domNode = $el.find(\".level\");\n domNode.css(\"background-color\", type.color);\n return domNode.attr(\"title\", type.name);\n };\n bindOnce($scope, \"issueTypeById\", function(issueTypeById) {\n var issue;\n issue = $scope.$eval($attrs.tgListitemType);\n return render(issueTypeById, issue);\n });\n return $scope.$watch($attrs.tgListitemType, function(issue) {\n return render($scope.issueTypeById, issue);\n });\n };\n return {\n link: link,\n templateUrl: \"common/components/level.html\"\n };\n };\n\n TgProgressBarDirective = function($template) {\n var link, render, template;\n template = $template.get(\"common/components/progress-bar.html\", true);\n render = function(el, percentage) {\n return el.html(template({\n percentage: percentage\n }));\n };\n link = function($scope, $el, $attrs) {\n var element;\n element = angular.element($el);\n $scope.$watch($attrs.tgProgressBar, function(percentage) {\n percentage = _.max([0, percentage]);\n percentage = _.min([100, percentage]);\n return render($el, percentage);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgProgressBar\", [\"$tgTemplate\", TgProgressBarDirective]);\n\n TgMainTitleDirective = function($template) {\n var link, render, template;\n template = $template.get(\"common/components/main-title.html\", true);\n render = function(el, projectName, sectionName) {\n return el.html(template({\n projectName: projectName,\n sectionName: sectionName\n }));\n };\n link = function($scope, $el, $attrs) {\n var element;\n element = angular.element($el);\n $scope.$watch(\"project\", function(project) {\n if (project) {\n return render($el, project.name, $scope.sectionName);\n }\n });\n $scope.$on(\"project:loaded\", (function(_this) {\n return function(ctx, project) {\n return render($el, project.name, $scope.sectionName);\n };\n })(this));\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgMainTitle\", [\"$tgTemplate\", TgMainTitleDirective]);\n\n module.directive(\"tgListitemType\", ListItemTypeDirective);\n\n module.directive(\"tgListitemIssueStatus\", ListItemIssueStatusDirective);\n\n module.directive(\"tgListitemSeverity\", ListItemSeverityDirective);\n\n module.directive(\"tgListitemTaskStatus\", ListItemTaskStatusDirective);\n\n module.directive(\"tgListitemUsStatus\", ListItemUsStatusDirective);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/confirm.coffee\n */\n\n(function() {\n var ConfirmService, NOTIFICATION_MSG, bindMethods, cancelTimeout, debounce, module, taiga, timeout,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n timeout = this.taiga.timeout;\n\n cancelTimeout = this.taiga.cancelTimeout;\n\n debounce = this.taiga.debounce;\n\n bindMethods = this.taiga.bindMethods;\n\n NOTIFICATION_MSG = {\n \"success\": {\n title: \"Everything is ok\",\n message: \"Our Oompa Loompas saved all your changes!\"\n },\n \"error\": {\n title: \"Oops, something happened...\",\n message: \"Our Oompa Loompas are sad, your changes were not saved!\"\n },\n \"light-error\": {\n title: \"Oops, something happened...\",\n message: \"Our Oompa Loompas are sad, your changes were not saved!\"\n }\n };\n\n ConfirmService = (function(superClass) {\n extend(ConfirmService, superClass);\n\n ConfirmService.$inject = [\"$q\", \"lightboxService\", \"$tgLoading\"];\n\n function ConfirmService(q, lightboxService, loading) {\n this.q = q;\n this.lightboxService = lightboxService;\n this.loading = loading;\n bindMethods(this);\n }\n\n ConfirmService.prototype.hide = function(el) {\n if (el) {\n this.lightboxService.close(el);\n return el.off(\".confirm-dialog\");\n }\n };\n\n ConfirmService.prototype.ask = function(title, subtitle, message, lightboxSelector) {\n var defered, el;\n if (lightboxSelector == null) {\n lightboxSelector = \".lightbox-generic-ask\";\n }\n el = angular.element(lightboxSelector);\n el.find(\"h2.title\").html(title);\n el.find(\"span.subtitle\").html(subtitle);\n el.find(\"span.message\").html(message);\n defered = this.q.defer();\n el.on(\"click.confirm-dialog\", \"a.button-green\", debounce(2000, (function(_this) {\n return function(event) {\n var target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n _this.loading.start(target);\n return defered.resolve(function(ok) {\n if (ok == null) {\n ok = true;\n }\n _this.loading.finish(target);\n if (ok) {\n return _this.hide(el);\n }\n });\n };\n })(this)));\n el.on(\"click.confirm-dialog\", \"a.button-red\", (function(_this) {\n return function(event) {\n event.preventDefault();\n defered.reject();\n return _this.hide(el);\n };\n })(this));\n this.lightboxService.open(el);\n return defered.promise;\n };\n\n ConfirmService.prototype.askOnDelete = function(title, message) {\n return this.ask(title, \"Are you sure you want to delete?\", message);\n };\n\n ConfirmService.prototype.askChoice = function(title, subtitle, choices, replacement, warning, lightboxSelector) {\n var choicesField, defered, el;\n if (lightboxSelector == null) {\n lightboxSelector = \".lightbox-ask-choice\";\n }\n el = angular.element(lightboxSelector);\n el.find(\".title\").html(title);\n el.find(\".subtitle\").html(subtitle);\n if (replacement) {\n el.find(\".replacement\").html(replacement);\n } else {\n el.find(\".replacement\").remove();\n }\n if (warning) {\n el.find(\".warning\").html(warning);\n } else {\n el.find(\".warning\").remove();\n }\n choicesField = el.find(\".choices\");\n choicesField.html('');\n _.each(choices, function(value, key) {\n return choicesField.append(angular.element(\"\"));\n });\n defered = this.q.defer();\n el.on(\"click.confirm-dialog\", \"a.button-green\", debounce(2000, (function(_this) {\n return function(event) {\n var target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n _this.loading.start(target);\n return defered.resolve({\n selected: choicesField.val(),\n finish: function() {\n _this.loading.finish(target);\n return _this.hide(el);\n }\n });\n };\n })(this)));\n el.on(\"click.confirm-dialog\", \"a.button-red\", (function(_this) {\n return function(event) {\n event.preventDefault();\n defered.reject();\n return _this.hide(el);\n };\n })(this));\n this.lightboxService.open(el);\n return defered.promise;\n };\n\n ConfirmService.prototype.error = function(message) {\n var defered, el;\n el = angular.element(\".lightbox-generic-error\");\n el.find(\"h2.title\").html(message);\n defered = this.q.defer();\n el.on(\"click.confirm-dialog\", \"a.button-green\", (function(_this) {\n return function(event) {\n event.preventDefault();\n defered.resolve();\n return _this.hide(el);\n };\n })(this));\n el.on(\"click.confirm-dialog\", \"a.close\", (function(_this) {\n return function(event) {\n event.preventDefault();\n defered.resolve();\n return _this.hide(el);\n };\n })(this));\n this.lightboxService.open(el);\n return defered.promise;\n };\n\n ConfirmService.prototype.success = function(title, message) {\n var defered, el;\n el = angular.element(\".lightbox-generic-success\");\n if (title) {\n el.find(\"h2.title\").html(title);\n }\n if (message) {\n el.find(\"p.message\").html(message);\n }\n defered = this.q.defer();\n el.on(\"click.confirm-dialog\", \"a.button-green\", (function(_this) {\n return function(event) {\n event.preventDefault();\n defered.resolve();\n return _this.hide(el);\n };\n })(this));\n el.on(\"click.confirm-dialog\", \"a.close\", (function(_this) {\n return function(event) {\n event.preventDefault();\n defered.resolve();\n return _this.hide(el);\n };\n })(this));\n this.lightboxService.open(el);\n return defered.promise;\n };\n\n ConfirmService.prototype.loader = function(title, message) {\n var el;\n el = angular.element(\".lightbox-generic-loading\");\n if (title) {\n el.find(\"h2.title\").html(title);\n }\n if (message) {\n el.find(\"p.message\").html(message);\n }\n return {\n start: (function(_this) {\n return function() {\n return _this.lightboxService.open(el);\n };\n })(this),\n stop: (function(_this) {\n return function() {\n return _this.lightboxService.close(el);\n };\n })(this),\n update: (function(_this) {\n return function(status, title, message, percent) {\n if (title) {\n el.find(\"h2.title\").html(title);\n }\n if (message) {\n el.find(\"p.message\").html(message);\n }\n if (percent) {\n el.find(\".spin\").addClass(\"hidden\");\n el.find(\".progress-bar-wrapper\").removeClass(\"hidden\");\n el.find(\".progress-bar-wrapper > .bar\").width(percent + '%');\n return el.find(\".progress-bar-wrapper > span\").html(percent + '%').css('left', (percent - 9) + '%');\n } else {\n el.find(\".spin\").removeClass(\"hidden\");\n return el.find(\".progress-bar-wrapper\").addClass(\"hidden\");\n }\n };\n })(this)\n };\n };\n\n ConfirmService.prototype.notify = function(type, message, title, time) {\n var body, el, selector;\n selector = \".notification-message-\" + type;\n el = angular.element(selector);\n if (el.hasClass(\"active\")) {\n return;\n }\n if (title) {\n el.find(\"h4\").html(title);\n } else {\n el.find(\"h4\").html(NOTIFICATION_MSG[type].title);\n }\n if (message) {\n el.find(\"p\").html(message);\n } else {\n el.find(\"p\").html(NOTIFICATION_MSG[type].message);\n }\n body = angular.element(\"body\");\n body.find(\".notification-message .notification-light\").removeClass('active').addClass('inactive');\n body.find(selector).removeClass('inactive').addClass('active');\n if (this.tsem) {\n cancelTimeout(this.tsem);\n }\n if (!time) {\n time = type === 'error' || type === 'light-error' ? 3500 : 1500;\n }\n this.tsem = timeout(time, (function(_this) {\n return function() {\n body.find(selector).removeClass('active').addClass('inactive');\n return delete _this.tsem;\n };\n })(this));\n return el.on(\"click\", \".icon-delete\", (function(_this) {\n return function(event) {\n return body.find(selector).removeClass('active').addClass('inactive');\n };\n })(this));\n };\n\n return ConfirmService;\n\n })(taiga.Service);\n\n module = angular.module(\"taigaCommon\");\n\n module.service(\"$tgConfirm\", ConfirmService);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/custom-field-values.coffee\n */\n\n(function() {\n var CustomAttributeValueDirective, CustomAttributesValuesController, CustomAttributesValuesDirective, bindMethods, bindOnce, debounce, generateHash, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n bindMethods = this.taiga.bindMethods;\n\n bindOnce = this.taiga.bindOnce;\n\n debounce = this.taiga.debounce;\n\n generateHash = taiga.generateHash;\n\n module = angular.module(\"taigaCommon\");\n\n CustomAttributesValuesController = (function(superClass) {\n extend(CustomAttributesValuesController, superClass);\n\n CustomAttributesValuesController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgResources\", \"$tgConfirm\", \"$q\"];\n\n function CustomAttributesValuesController(scope, rootscope, repo, rs, confirm, q) {\n this.scope = scope;\n this.rootscope = rootscope;\n this.repo = repo;\n this.rs = rs;\n this.confirm = confirm;\n this.q = q;\n bindMethods(this);\n this.type = null;\n this.objectId = null;\n this.projectId = null;\n this.customAttributes = [];\n this.customAttributesValues = null;\n }\n\n CustomAttributesValuesController.prototype.initialize = function(type, objectId) {\n this.project = this.scope.project;\n this.type = type;\n this.objectId = objectId;\n return this.projectId = this.scope.projectId;\n };\n\n CustomAttributesValuesController.prototype.loadCustomAttributesValues = function() {\n if (!this.objectId) {\n return this.customAttributesValues;\n }\n return this.rs.customAttributesValues[this.type].get(this.objectId).then((function(_this) {\n return function(customAttributesValues) {\n _this.customAttributes = _this.project[_this.type + \"_custom_attributes\"];\n _this.customAttributesValues = customAttributesValues;\n return customAttributesValues;\n };\n })(this));\n };\n\n CustomAttributesValuesController.prototype.getAttributeValue = function(attribute) {\n var attributeValue;\n attributeValue = _.clone(attribute, false);\n attributeValue.value = this.customAttributesValues.attributes_values[attribute.id];\n return attributeValue;\n };\n\n CustomAttributesValuesController.prototype.updateAttributeValue = function(attributeValue) {\n var attributesValues, onError, onSuccess;\n onSuccess = (function(_this) {\n return function() {\n return _this.rootscope.$broadcast(\"custom-attributes-values:edit\");\n };\n })(this);\n onError = (function(_this) {\n return function(response) {\n _this.confirm.notify(\"error\");\n return _this.q.reject();\n };\n })(this);\n attributesValues = _.clone(this.customAttributesValues.attributes_values, true);\n attributesValues[attributeValue.id] = attributeValue.value;\n this.customAttributesValues.attributes_values = attributesValues;\n this.customAttributesValues.id = this.objectId;\n return this.repo.save(this.customAttributesValues).then(onSuccess, onError);\n };\n\n return CustomAttributesValuesController;\n\n })(taiga.Controller);\n\n CustomAttributesValuesDirective = function($templates, $storage) {\n var collapsedHash, link, template, templateFn;\n template = $templates.get(\"custom-attributes/custom-attributes-values.html\", true);\n collapsedHash = function(type) {\n return generateHash([\"custom-attributes-collapsed\", type]);\n };\n link = function($scope, $el, $attrs, $ctrls) {\n var $ctrl, $model;\n $ctrl = $ctrls[0];\n $model = $ctrls[1];\n bindOnce($scope, $attrs.ngModel, function(value) {\n $ctrl.initialize($attrs.type, value.id);\n return $ctrl.loadCustomAttributesValues();\n });\n $el.on(\"click\", \".custom-fields-header a\", function() {\n var collapsed, hash;\n hash = collapsedHash($attrs.type);\n collapsed = !($storage.get(hash) || false);\n $storage.set(hash, collapsed);\n if (collapsed) {\n $el.find(\".custom-fields-header a\").removeClass(\"open\");\n return $el.find(\".custom-fields-body\").removeClass(\"open\");\n } else {\n $el.find(\".custom-fields-header a\").addClass(\"open\");\n return $el.find(\".custom-fields-body\").addClass(\"open\");\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n templateFn = function($el, $attrs) {\n var collapsed;\n collapsed = $storage.get(collapsedHash($attrs.type)) || false;\n return template({\n requiredEditionPerm: $attrs.requiredEditionPerm,\n collapsed: collapsed\n });\n };\n return {\n require: [\"tgCustomAttributesValues\", \"ngModel\"],\n controller: CustomAttributesValuesController,\n controllerAs: \"ctrl\",\n restrict: \"AE\",\n scope: true,\n link: link,\n template: templateFn\n };\n };\n\n module.directive(\"tgCustomAttributesValues\", [\"$tgTemplate\", \"$tgStorage\", CustomAttributesValuesDirective]);\n\n CustomAttributeValueDirective = function($template, $selectedText) {\n var link, template, templateEdit;\n template = $template.get(\"custom-attributes/custom-attribute-value.html\", true);\n templateEdit = $template.get(\"custom-attributes/custom-attribute-value-edit.html\", true);\n link = function($scope, $el, $attrs, $ctrl) {\n var attributeValue, isEditable, render, saveAttributeValue, submit;\n render = function(attributeValue, edit) {\n var ctx, editable, html, value;\n if (edit == null) {\n edit = false;\n }\n value = attributeValue.value;\n editable = isEditable();\n ctx = {\n id: attributeValue.id,\n name: attributeValue.name,\n description: attributeValue.description,\n value: value,\n isEditable: editable\n };\n if (editable && (edit || !value)) {\n html = templateEdit(ctx);\n } else {\n html = template(ctx);\n }\n return $el.html(html);\n };\n isEditable = function() {\n var permissions, requiredEditionPerm;\n permissions = $scope.project.my_permissions;\n requiredEditionPerm = $attrs.requiredEditionPerm;\n return permissions.indexOf(requiredEditionPerm) > -1;\n };\n saveAttributeValue = function() {\n attributeValue.value = $el.find(\"input\").val();\n return $scope.$apply(function() {\n return $ctrl.updateAttributeValue(attributeValue).then(function() {\n return render(attributeValue, false);\n });\n });\n };\n $el.on(\"keyup\", \"input[name=description]\", function(event) {\n if (event.keyCode === 13) {\n return submit(event);\n } else if (event.keyCode === 27) {\n return render(attributeValue, false);\n }\n });\n $el.on(\"click\", \".custom-field-value.read-mode\", function() {\n if (!isEditable()) {\n return;\n }\n if ($selectedText.get().length) {\n return;\n }\n render(attributeValue, true);\n return $el.find(\"input[name='description']\").focus().select();\n });\n $el.on(\"click\", \"a.icon-edit\", function(event) {\n event.preventDefault();\n render(attributeValue, true);\n return $el.find(\"input[name='description']\").focus().select();\n });\n submit = debounce(2000, (function(_this) {\n return function(event) {\n event.preventDefault();\n return saveAttributeValue();\n };\n })(this));\n $el.on(\"submit\", \"form\", submit);\n $el.on(\"click\", \"a.icon-floppy\", submit);\n $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n attributeValue = $scope.$eval($attrs.tgCustomAttributeValue);\n return render(attributeValue);\n };\n return {\n link: link,\n require: \"^tgCustomAttributesValues\",\n restrict: \"AE\"\n };\n };\n\n module.directive(\"tgCustomAttributeValue\", [\"$tgTemplate\", \"$selectedText\", CustomAttributeValueDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/estimation.coffee\n */\n\n(function() {\n var EstimationsService, LbUsEstimationDirective, UsEstimationDirective, groupBy, module, taiga,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };\n\n taiga = this.taiga;\n\n groupBy = this.taiga.groupBy;\n\n module = angular.module(\"taigaCommon\");\n\n LbUsEstimationDirective = function($tgEstimationsService, $rootScope, $repo, $confirm, $template) {\n var link;\n link = function($scope, $el, $attrs, $model) {\n $scope.$watch($attrs.ngModel, function(us) {\n var estimationProcess;\n if (us) {\n estimationProcess = $tgEstimationsService.create($el, us, $scope.project);\n estimationProcess.onSelectedPointForRole = function(roleId, pointId) {\n return $scope.$apply(function() {\n return $model.$setViewValue(us);\n });\n };\n estimationProcess.render = function() {\n var ctx, html, mainTemplate, template;\n ctx = {\n totalPoints: this.calculateTotalPoints(),\n roles: this.calculateRoles(),\n editable: this.isEditable\n };\n mainTemplate = \"common/estimation/us-estimation-points-per-role.html\";\n template = $template.get(mainTemplate, true);\n html = template(ctx);\n return this.$el.html(html);\n };\n return estimationProcess.render();\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgLbUsEstimation\", [\"$tgEstimationsService\", \"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgTemplate\", LbUsEstimationDirective]);\n\n UsEstimationDirective = function($tgEstimationsService, $rootScope, $repo, $confirm, $qqueue, $template) {\n var link;\n link = function($scope, $el, $attrs, $model) {\n $scope.$watch($attrs.ngModel, function(us) {\n var estimationProcess;\n if (us) {\n estimationProcess = $tgEstimationsService.create($el, us, $scope.project);\n estimationProcess.onSelectedPointForRole = function(roleId, pointId) {\n return this.save(roleId, pointId).then(function() {\n return $rootScope.$broadcast(\"history:reload\");\n });\n };\n estimationProcess.render = function() {\n var ctx, html, mainTemplate, template;\n ctx = {\n totalPoints: this.calculateTotalPoints(),\n roles: this.calculateRoles(),\n editable: this.isEditable\n };\n mainTemplate = \"common/estimation/us-estimation-points-per-role.html\";\n template = $template.get(mainTemplate, true);\n html = template(ctx);\n return this.$el.html(html);\n };\n return estimationProcess.render();\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgUsEstimation\", [\"$tgEstimationsService\", \"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgQqueue\", \"$tgTemplate\", UsEstimationDirective]);\n\n EstimationsService = function($template, $qqueue, $repo, $confirm, $q) {\n var EstimationProcess, create, pointsTemplate;\n pointsTemplate = $template.get(\"common/estimation/us-estimation-points.html\", true);\n EstimationProcess = (function() {\n function EstimationProcess($el1, us1, project1) {\n this.$el = $el1;\n this.us = us1;\n this.project = project1;\n this.bindClickEvents = bind(this.bindClickEvents, this);\n this.isEditable = this.project.my_permissions.indexOf(\"modify_us\") !== -1;\n this.roles = this.project.roles;\n this.points = this.project.points;\n this.pointsById = groupBy(this.points, function(x) {\n return x.id;\n });\n this.onSelectedPointForRole = function(roleId, pointId) {};\n this.render = function() {};\n }\n\n EstimationProcess.prototype.save = function(roleId, pointId) {\n var deferred;\n deferred = $q.defer();\n $qqueue.add((function(_this) {\n return function() {\n var onError, onSuccess;\n onSuccess = function() {\n deferred.resolve();\n return $confirm.notify(\"success\");\n };\n onError = function() {\n $confirm.notify(\"error\");\n _this.us.revert();\n _this.render();\n return deferred.reject();\n };\n return $repo.save(_this.us).then(onSuccess, onError);\n };\n })(this));\n return deferred.promise;\n };\n\n EstimationProcess.prototype.calculateTotalPoints = function() {\n var notNullValues, values;\n values = _.map(this.us.points, (function(_this) {\n return function(v, k) {\n var ref;\n return (ref = _this.pointsById[v]) != null ? ref.value : void 0;\n };\n })(this));\n if (values.length === 0) {\n return \"0\";\n }\n notNullValues = _.filter(values, function(v) {\n return v != null;\n });\n if (notNullValues.length === 0) {\n return \"?\";\n }\n return _.reduce(notNullValues, function(acc, num) {\n return acc + num;\n });\n };\n\n EstimationProcess.prototype.calculateRoles = function() {\n var computableRoles, roles;\n computableRoles = _.filter(this.project.roles, \"computable\");\n roles = _.map(computableRoles, (function(_this) {\n return function(role) {\n var pointId, pointObj;\n pointId = _this.us.points[role.id];\n pointObj = _this.pointsById[pointId];\n role = _.clone(role, true);\n role.points = (pointObj != null) && (pointObj.name != null) ? pointObj.name : \"?\";\n return role;\n };\n })(this));\n return roles;\n };\n\n EstimationProcess.prototype.bindClickEvents = function() {\n this.$el.on(\"click\", \".total.clickable\", (function(_this) {\n return function(event) {\n var roleId, target;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n roleId = target.data(\"role-id\");\n _this.renderPointsSelector(roleId, target);\n target.siblings().removeClass('active');\n return target.addClass('active');\n };\n })(this));\n return this.$el.on(\"click\", \".point\", (function(_this) {\n return function(event) {\n var pointId, points, roleId, target;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n roleId = target.data(\"role-id\");\n pointId = target.data(\"point-id\");\n _this.$el.find(\".popover\").popover().close();\n points = _.clone(_this.us.points, true);\n points[roleId] = pointId;\n _this.us.points = points;\n _this.render();\n return _this.onSelectedPointForRole(roleId, pointId);\n };\n })(this));\n };\n\n EstimationProcess.prototype.renderPointsSelector = function(roleId, target) {\n var horizontalList, html, maxPointLength, points;\n points = _.map(this.points, (function(_this) {\n return function(point) {\n point = _.clone(point, true);\n point.selected = _this.us.points[roleId] === point.id ? false : true;\n return point;\n };\n })(this));\n maxPointLength = 5;\n horizontalList = _.some(points, (function(_this) {\n return function(point) {\n return point.name.length > maxPointLength;\n };\n })(this));\n html = pointsTemplate({\n \"points\": points,\n roleId: roleId,\n horizontal: horizontalList\n });\n this.$el.find(\".popover\").popover().close();\n this.$el.find(\".pop-points-open\").remove();\n if (target != null) {\n this.$el.find(target).append(html);\n } else {\n this.$el.append(html);\n }\n this.$el.find(\".pop-points-open\").popover().open(function() {\n return $(this).removeClass(\"active\").closest(\"li\").removeClass(\"active\");\n });\n return this.$el.find(\".pop-points-open\").show();\n };\n\n return EstimationProcess;\n\n })();\n create = function($el, us, project) {\n var estimationProcess;\n $el.unbind(\"click\");\n estimationProcess = new EstimationProcess($el, us, project);\n if (estimationProcess.isEditable) {\n estimationProcess.bindClickEvents();\n }\n return estimationProcess;\n };\n return {\n create: create\n };\n };\n\n module.factory(\"$tgEstimationsService\", [\"$tgTemplate\", \"$tgQqueue\", \"$tgRepo\", \"$tgConfirm\", \"$q\", EstimationsService]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/filters.coffee\n */\n\n(function() {\n var FiltersStorageService, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n FiltersStorageService = (function(superClass) {\n extend(FiltersStorageService, superClass);\n\n FiltersStorageService.$inject = [\"$tgStorage\", \"$routeParams\"];\n\n function FiltersStorageService(storage, params) {\n this.storage = storage;\n this.params = params;\n }\n\n FiltersStorageService.prototype.generateHash = function(components) {\n if (components == null) {\n components = [];\n }\n components = _.map(components, function(x) {\n return JSON.stringify(x);\n });\n return hex_sha1(components.join(\":\"));\n };\n\n return FiltersStorageService;\n\n })(taiga.Service);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/history.coffee\n */\n\n(function() {\n var module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n resourceProvider = function($repo, $http, $urls) {\n var service;\n service = {};\n service.get = function(type, objectId) {\n return $repo.queryOneRaw(\"history/\" + type, objectId);\n };\n service.deleteComment = function(type, objectId, activityId) {\n var params, url;\n url = $urls.resolve(\"history/\" + type);\n url = url + \"/\" + objectId + \"/delete_comment\";\n params = {\n id: activityId\n };\n return $http.post(url, null, params).then((function(_this) {\n return function(data) {\n return data.data;\n };\n })(this));\n };\n service.undeleteComment = function(type, objectId, activityId) {\n var params, url;\n url = $urls.resolve(\"history/\" + type);\n url = url + \"/\" + objectId + \"/undelete_comment\";\n params = {\n id: activityId\n };\n return $http.post(url, null, params).then((function(_this) {\n return function(data) {\n return data.data;\n };\n })(this));\n };\n return function(instance) {\n return instance.history = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgHistoryResourcesProvider\", [\"$tgRepo\", \"$tgHttp\", \"$tgUrls\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/importer.coffee\n */\n\n(function() {\n var ImportProjectButtonDirective, module;\n\n module = angular.module(\"taigaCommon\");\n\n ImportProjectButtonDirective = function($rs, $confirm, $location, $navUrls) {\n var link;\n link = function($scope, $el, $attrs) {\n $el.on(\"click\", \".import-project-button\", function(event) {\n event.preventDefault();\n $el.find(\"input.import-file\").val(\"\");\n return $el.find(\"input.import-file\").trigger(\"click\");\n });\n return $el.on(\"change\", \"input.import-file\", function(event) {\n var file, loader, onError, onSuccess;\n event.preventDefault();\n file = event.target.files[0];\n if (!file) {\n return;\n }\n loader = $confirm.loader(\"Uploading dump file\");\n onSuccess = function(result) {\n var ctx, message, title;\n loader.stop();\n if (result.status === 202) {\n title = \"Our Oompa Loompas are importing your project\";\n message = \"This process could take a few minutes
We will send you an email when ready\";\n return $confirm.success(title, message);\n } else {\n ctx = {\n project: result.data.slug\n };\n $location.path($navUrls.resolve(\"project-admin-project-profile-details\", ctx));\n return $confirm.notify(\"success\", \"Your project has been imported successfuly.\");\n }\n };\n onError = function(result) {\n var errorMsg, ref;\n loader.stop();\n console.log(\"Error\", result);\n errorMsg = \"Our oompa loompas have some problems importing your dump data. Please try again. \";\n if (result.status === 429) {\n errorMsg = \"Sorry, our oompa loompas are very busy right now. Please try again in a few minutes. \";\n } else if ((ref = result.data) != null ? ref._error_message : void 0) {\n errorMsg = \"Our oompa loompas have some problems importing your dump data: \" + result.data._error_message;\n }\n return $confirm.notify(\"error\", errorMsg);\n };\n loader.start();\n return $rs.projects[\"import\"](file, loader.update).then(onSuccess, onError);\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgImportProjectButton\", [\"$tgResources\", \"$tgConfirm\", \"$location\", \"$tgNavUrls\", ImportProjectButtonDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/issues/lightboxes.coffee\n */\n\n(function() {\n var DeleteUserDirective, bindOnce, debounce, module, taiga;\n\n taiga = this.taiga;\n\n bindOnce = this.taiga.bindOnce;\n\n debounce = this.taiga.debounce;\n\n module = angular.module(\"taigaUserSettings\");\n\n DeleteUserDirective = function($repo, $rootscope, $auth, $location, $navUrls, lightboxService) {\n var link;\n link = function($scope, $el, $attrs) {\n var submit;\n $scope.$on(\"deletelightbox:new\", function(ctx, user) {\n return lightboxService.open($el);\n });\n $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n submit = function() {\n var promise;\n promise = $repo.remove($scope.user);\n promise.then(function(data) {\n lightboxService.close($el);\n $auth.logout();\n return $location.path($navUrls.resolve(\"login\"));\n });\n return promise.then(null, function() {\n return console.log(\"FAIL\");\n });\n };\n $el.on(\"click\", \".button-red\", function(event) {\n event.preventDefault();\n return lightboxService.close($el);\n });\n return $el.on(\"click\", \".button-green\", debounce(2000, function(event) {\n event.preventDefault();\n return submit();\n }));\n };\n return {\n link: link,\n templateUrl: \"user/lightbox/lightbox-delete-account.html\"\n };\n };\n\n module.directive(\"tgLbDeleteUser\", [\"$tgRepo\", \"$rootScope\", \"$tgAuth\", \"$tgLocation\", \"$tgNavUrls\", \"lightboxService\", DeleteUserDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n * Copyright (C) 2014 Juan Francisco Alcántara \n * Copyright (C) 2014 Alejandro Alonso \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/loader.coffee\n */\n\n(function() {\n var Loader, LoaderDirective, module, sizeFormat, taiga, timeout;\n\n taiga = this.taiga;\n\n sizeFormat = this.taiga.sizeFormat;\n\n timeout = this.taiga.timeout;\n\n module = angular.module(\"taigaCommon\");\n\n LoaderDirective = function(tgLoader, $rootscope) {\n var link;\n link = function($scope, $el, $attrs) {\n tgLoader.onStart(function() {\n $(document.body).addClass(\"loader-active\");\n return $el.addClass(\"active\");\n });\n tgLoader.onEnd(function() {\n $(document.body).removeClass(\"loader-active\");\n return $el.removeClass(\"active\");\n });\n $rootscope.$on(\"$routeChangeSuccess\", function(e) {\n return tgLoader.startCurrentPageLoader();\n });\n return $rootscope.$on(\"$locationChangeSuccess\", function(e) {\n return tgLoader.reset();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgLoader\", [\"tgLoader\", \"$rootScope\", LoaderDirective]);\n\n Loader = function() {\n var config, defaultConfig, forceDisabled;\n forceDisabled = false;\n defaultConfig = {\n enabled: false,\n minTime: 300\n };\n config = _.merge({}, defaultConfig);\n this.add = function() {\n return function() {\n if (!forceDisabled) {\n return config.enabled = true;\n }\n };\n };\n this.$get = [\n \"$rootScope\", function($rootscope) {\n var pageLoaded, reset, start, startLoadTime;\n startLoadTime = 0;\n reset = function() {\n return config = _.merge({}, defaultConfig);\n };\n pageLoaded = function(force) {\n var diff, endTime, timeoutValue;\n if (force == null) {\n force = false;\n }\n if (startLoadTime) {\n timeoutValue = 0;\n if (!force) {\n endTime = new Date().getTime();\n diff = endTime - startLoadTime;\n if (diff < config.minTime) {\n timeoutValue = config.minTime - diff;\n }\n }\n return timeout(timeoutValue, function() {\n return $rootscope.$broadcast(\"loader:end\");\n });\n }\n };\n start = function() {\n startLoadTime = new Date().getTime();\n return $rootscope.$broadcast(\"loader:start\");\n };\n return {\n reset: reset,\n pageLoaded: pageLoaded,\n start: start,\n startCurrentPageLoader: function() {\n if (config.enabled) {\n return start();\n }\n },\n onStart: function(fn) {\n return $rootscope.$on(\"loader:start\", fn);\n },\n onEnd: function(fn) {\n return $rootscope.$on(\"loader:end\", fn);\n },\n preventLoading: function() {\n return forceDisabled = true;\n },\n disablePreventLoading: function() {\n return forceDisabled = false;\n }\n };\n }\n ];\n };\n\n module.provider(\"tgLoader\", [Loader]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/lightboxes.coffee\n */\n\n(function() {\n var TgLoadingService, module,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n module = angular.module(\"taigaCommon\");\n\n TgLoadingService = (function(superClass) {\n extend(TgLoadingService, superClass);\n\n function TgLoadingService() {\n return TgLoadingService.__super__.constructor.apply(this, arguments);\n }\n\n TgLoadingService.prototype.start = function(target) {\n if (!target.hasClass('loading')) {\n target.data('loading-old-content', target.html());\n target.addClass('loading');\n return target.html(\"loading...\");\n }\n };\n\n TgLoadingService.prototype.finish = function(target) {\n var oldContent;\n if (target.hasClass('loading')) {\n oldContent = target.data('loading-old-content');\n target.data('loading-old-content', null);\n target.html(oldContent);\n return target.removeClass('loading');\n }\n };\n\n return TgLoadingService;\n\n })(taiga.Service);\n\n module.service(\"$tgLoading\", TgLoadingService);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/popovers.coffee\n */\n\n(function() {\n var RelatedTaskStatusDirective, UsStatusDirective, bindOnce, debounce, module, taiga;\n\n taiga = this.taiga;\n\n bindOnce = this.taiga.bindOnce;\n\n debounce = this.taiga.debounce;\n\n module = angular.module(\"taigaCommon\");\n\n UsStatusDirective = function($repo, $template) {\n\n /*\n Print the status of a US and a popover to change it.\n - tg-us-status: The user story\n - on-update: Method call after US is updated\n \n Example:\n \n div.status(tg-us-status=\"us\" on-update=\"ctrl.loadSprintState()\")\n a.us-status(href=\"\", title=\"Status Name\")\n \n NOTE: This directive need 'usStatusById' and 'project'.\n */\n var link, template;\n template = $template.get(\"common/popover/popover-us-status.html\", true);\n link = function($scope, $el, $attrs) {\n var $ctrl, render, us;\n $ctrl = $el.controller();\n render = function(us) {\n var usStatusById, usStatusDom, usStatusDomParent;\n usStatusDomParent = $el.find(\".us-status\");\n usStatusDom = $el.find(\".us-status .us-status-bind\");\n usStatusById = $scope.usStatusById;\n if (usStatusById[us.status]) {\n usStatusDom.text(usStatusById[us.status].name);\n return usStatusDomParent.css(\"color\", usStatusById[us.status].color);\n }\n };\n $el.on(\"click\", \".us-status\", function(event) {\n event.preventDefault();\n event.stopPropagation();\n return $el.find(\".pop-status\").popover().open();\n });\n $el.on(\"click\", \".status\", debounce(2000, function(event) {\n var target, us;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n us = $scope.$eval($attrs.tgUsStatus);\n us.status = target.data(\"status-id\");\n render(us);\n $el.find(\".pop-status\").popover().close();\n return $scope.$apply(function() {\n return $repo.save(us).then(function() {\n return $scope.$eval($attrs.onUpdate);\n });\n });\n }));\n $scope.$on(\"userstories:loaded\", function() {\n return render($scope.$eval($attrs.tgUsStatus));\n });\n $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n us = $scope.$eval($attrs.tgUsStatus);\n render(us);\n return bindOnce($scope, \"project\", function(project) {\n var html;\n html = template({\n \"statuses\": project.us_statuses\n });\n $el.append(html);\n if ($scope.project.my_permissions.indexOf(\"modify_us\") === -1) {\n $el.unbind(\"click\");\n return $el.find(\"a\").addClass(\"not-clickable\");\n }\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgUsStatus\", [\"$tgRepo\", \"$tgTemplate\", UsStatusDirective]);\n\n RelatedTaskStatusDirective = function($repo, $template) {\n\n /*\n Print the status of a related task and a popover to change it.\n - tg-related-task-status: The related task\n - on-update: Method call after US is updated\n \n Example:\n \n div.status(tg-related-task-status=\"task\" on-update=\"ctrl.loadSprintState()\")\n a.task-status(href=\"\", title=\"Status Name\")\n \n NOTE: This directive need 'taskStatusById' and 'project'.\n */\n var link, selectionTemplate, updateTaskStatus;\n selectionTemplate = $template.get(\"common/popover/popover-related-task-status.html\", true);\n updateTaskStatus = function($el, task, taskStatusById) {\n var taskStatusDom, taskStatusDomParent;\n taskStatusDomParent = $el.find(\".us-status\");\n taskStatusDom = $el.find(\".task-status .task-status-bind\");\n if (taskStatusById[task.status]) {\n taskStatusDom.text(taskStatusById[task.status].name);\n return taskStatusDomParent.css('color', taskStatusById[task.status].color);\n }\n };\n link = function($scope, $el, $attrs) {\n var $ctrl, autoSave, notAutoSave, task;\n $ctrl = $el.controller();\n task = $scope.$eval($attrs.tgRelatedTaskStatus);\n notAutoSave = $scope.$eval($attrs.notAutoSave);\n autoSave = !notAutoSave;\n $el.on(\"click\", \".task-status\", function(event) {\n event.preventDefault();\n event.stopPropagation();\n return $el.find(\".pop-status\").popover().open();\n });\n $el.on(\"click\", \".status\", debounce(2000, function(event) {\n var target;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n task.status = target.data(\"status-id\");\n $el.find(\".pop-status\").popover().close();\n updateTaskStatus($el, task, $scope.taskStatusById);\n if (autoSave) {\n return $scope.$apply(function() {\n return $repo.save(task).then(function() {\n $scope.$eval($attrs.onUpdate);\n return $scope.$emit(\"related-tasks:status-changed\");\n });\n });\n }\n }));\n taiga.bindOnce($scope, \"project\", function(project) {\n $el.append(selectionTemplate({\n 'statuses': project.task_statuses\n }));\n updateTaskStatus($el, task, $scope.taskStatusById);\n if (project.my_permissions.indexOf(\"modify_task\") === -1) {\n $el.unbind(\"click\");\n return $el.find(\"a\").addClass(\"not-clickable\");\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgRelatedTaskStatus\", [\"$tgRepo\", \"$tgTemplate\", RelatedTaskStatusDirective]);\n\n $.fn.popover = function() {\n var $el, close, closeAll, closePopover, isVisible, open;\n $el = this;\n isVisible = (function(_this) {\n return function() {\n var docViewBottom, docViewLeft, docViewRight, docViewTop, docViewWidth, elemBottom, elemLeft, elemRight, elemTop, elemWidth;\n $el.css({\n \"display\": \"block\",\n \"visibility\": \"hidden\"\n });\n docViewTop = $(window).scrollTop();\n docViewBottom = docViewTop + $(window).height();\n docViewWidth = $(window).width();\n docViewRight = docViewWidth;\n docViewLeft = 0;\n elemTop = $el.offset().top;\n elemBottom = elemTop + $el.height();\n elemWidth = $el.width();\n elemLeft = $el.offset().left;\n elemRight = $el.offset().left + elemWidth;\n $el.css({\n \"display\": \"none\",\n \"visibility\": \"visible\"\n });\n return (elemBottom <= docViewBottom) && (elemTop >= docViewTop) && (elemLeft >= docViewLeft) && (elemRight <= docViewRight);\n };\n })(this);\n closePopover = (function(_this) {\n return function(onClose) {\n if (onClose) {\n onClose.call($el);\n }\n $el.fadeOut(function() {\n return $el.removeClass(\"active\").removeClass(\"fix\");\n });\n return $el.off(\"popup:close\");\n };\n })(this);\n closeAll = (function(_this) {\n return function() {\n return $(\".popover.active\").each(function() {\n return $(this).trigger(\"popup:close\");\n });\n };\n })(this);\n open = (function(_this) {\n return function(onClose) {\n if ($el.hasClass(\"active\")) {\n return close();\n } else {\n closeAll();\n if (!isVisible()) {\n $el.addClass(\"fix\");\n }\n $el.fadeIn(function() {\n $el.addClass(\"active\");\n $(document.body).off(\"popover\");\n return $(document.body).one(\"click.popover\", function() {\n return closeAll();\n });\n });\n return $el.on(\"popup:close\", function(e) {\n return closePopover(onClose);\n });\n }\n };\n })(this);\n close = (function(_this) {\n return function() {\n return $el.trigger(\"popup:close\");\n };\n })(this);\n return {\n open: open,\n close: close,\n closeAll: closeAll\n };\n };\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/raven-logger.coffee\n */\n\n(function() {\n var ExceptionHandlerFactory, module, taiga;\n\n taiga = this.taiga;\n\n module = angular.module(\"taigaCommon\");\n\n ExceptionHandlerFactory = function($log, config) {\n var ravenConfig;\n this.config = config;\n ravenConfig = this.config.get(\"ravenConfig\", null);\n if (ravenConfig) {\n $log.debug(\"Using the RavenJS exception handler.\");\n Raven.config(ravenConfig).install();\n return function(exception, cause) {\n $log.error.apply($log, arguments);\n return Raven.captureException(exception);\n };\n } else {\n $log.debug(\"Using the default logging exception handler.\");\n return function(exception, cause) {\n return $log.error.apply($log, arguments);\n };\n }\n };\n\n module.factory(\"$exceptionHandler\", [\"$log\", \"$tgConfig\", ExceptionHandlerFactory]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/tags.coffee\n */\n\n(function() {\n var ColorizeTagsDirective, LbTagLineDirective, TagLineDirective, TagsDirective, bindOnce, module, taiga, trim,\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\n\n taiga = this.taiga;\n\n trim = this.taiga.trim;\n\n bindOnce = this.taiga.bindOnce;\n\n module = angular.module(\"taigaCommon\");\n\n TagsDirective = function() {\n var formatter, link, parser;\n formatter = function(v) {\n if (_.isArray(v)) {\n return v.join(\", \");\n }\n return \"\";\n };\n parser = function(v) {\n var result;\n if (!v) {\n return [];\n }\n result = _(v.split(\",\")).map(function(x) {\n return _.str.trim(x);\n });\n return result.value();\n };\n link = function($scope, $el, $attrs, $ctrl) {\n $ctrl.$formatters.push(formatter);\n $ctrl.$parsers.push(parser);\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n require: \"ngModel\",\n link: link\n };\n };\n\n module.directive(\"tgTags\", TagsDirective);\n\n ColorizeTagsDirective = function() {\n var link, templates;\n templates = {\n backlog: _.template(\"<% _.each(tags, function(tag) { %>\\n \\\"><%- tag.name %>\\n<% }) %>\"),\n kanban: _.template(\"<% _.each(tags, function(tag) { %>\\n \\\" title=\\\"<%- tag.name %>\\\" />\\n<% }) %>\"),\n taskboard: _.template(\"<% _.each(tags, function(tag) { %>\\n \\\" title=\\\"<%- tag.name %>\\\" />\\n<% }) %>\")\n };\n link = function($scope, $el, $attrs, $ctrl) {\n var render;\n render = function(srcTags) {\n var html, tags, template;\n template = templates[$attrs.tgColorizeTagsType];\n srcTags.sort();\n tags = _.map(srcTags, function(tag) {\n var color;\n color = $scope.project.tags_colors[tag];\n return {\n name: tag,\n color: color\n };\n });\n html = template({\n tags: tags\n });\n return $el.html(html);\n };\n $scope.$watch($attrs.tgColorizeTags, function(tags) {\n if (tags != null) {\n return render(tags);\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgColorizeTags\", ColorizeTagsDirective);\n\n LbTagLineDirective = function($rs, $template) {\n var COMMA_KEY, ENTER_KEY, link, templateTags;\n ENTER_KEY = 13;\n COMMA_KEY = 188;\n templateTags = $template.get(\"common/tag/lb-tag-line-tags.html\", true);\n link = function($scope, $el, $attrs, $model) {\n var addValue, deleteValue, hideSaveButton, removeInputLastCharacter, renderTags, resetInput, saveInputTag, showSaveButton;\n renderTags = function(tags, tagsColors) {\n var ctx, html;\n ctx = {\n tags: _.map(tags, function(t) {\n return {\n name: t,\n color: tagsColors[t]\n };\n })\n };\n _.map(ctx.tags, (function(_this) {\n return function(tag) {\n if (tag.color) {\n return tag.style = \"border-left: 5px solid \" + tag.color;\n }\n };\n })(this));\n html = templateTags(ctx);\n return $el.find(\"div.tags-container\").html(html);\n };\n showSaveButton = function() {\n return $el.find(\".save\").removeClass(\"hidden\");\n };\n hideSaveButton = function() {\n return $el.find(\".save\").addClass(\"hidden\");\n };\n resetInput = function() {\n $el.find(\"input\").val(\"\");\n return $el.find(\"input\").autocomplete(\"close\");\n };\n addValue = function(value) {\n var tags;\n value = trim(value.toLowerCase());\n if (value.length === 0) {\n return;\n }\n tags = _.clone($model.$modelValue, false);\n if (tags == null) {\n tags = [];\n }\n if (indexOf.call(tags, value) < 0) {\n tags.push(value);\n }\n $scope.$apply(function() {\n return $model.$setViewValue(tags);\n });\n return hideSaveButton();\n };\n deleteValue = function(value) {\n var tags;\n value = trim(value.toLowerCase());\n if (value.length === 0) {\n return;\n }\n tags = _.clone($model.$modelValue, false);\n tags = _.pull(tags, value);\n return $scope.$apply(function() {\n return $model.$setViewValue(tags);\n });\n };\n saveInputTag = function() {\n var value;\n value = $el.find(\"input\").val();\n addValue(value);\n return resetInput();\n };\n removeInputLastCharacter = (function(_this) {\n return function(input) {\n var inputValue;\n inputValue = input.val();\n return input.val(inputValue.substring(0, inputValue.length - 1));\n };\n })(this);\n $el.on(\"keypress\", \"input\", function(event) {\n if (event.keyCode !== ENTER_KEY) {\n return;\n }\n return event.preventDefault();\n });\n $el.on(\"keyup\", \"input\", function(event) {\n var target;\n target = angular.element(event.currentTarget);\n if (event.keyCode === ENTER_KEY) {\n return saveInputTag();\n } else if (event.keyCode === COMMA_KEY) {\n removeInputLastCharacter(target);\n return saveInputTag();\n } else {\n if (target.val().length) {\n return showSaveButton();\n } else {\n return hideSaveButton();\n }\n }\n });\n $el.on(\"click\", \".save\", function(event) {\n event.preventDefault();\n return saveInputTag();\n });\n $el.on(\"click\", \".icon-delete\", function(event) {\n var target, value;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n value = target.siblings(\".tag-name\").text();\n return deleteValue(value);\n });\n bindOnce($scope, \"project\", function(project) {\n var positioningFunction;\n positioningFunction = function(position, elements) {\n var menu;\n menu = elements.element.element;\n menu.css(\"width\", elements.target.width);\n menu.css(\"top\", position.top);\n return menu.css(\"left\", position.left);\n };\n return $el.find(\"input\").autocomplete({\n source: _.keys(project.tags_colors),\n position: {\n my: \"left top\",\n using: positioningFunction\n },\n select: function(event, ui) {\n addValue(ui.item.value);\n return ui.item.value = \"\";\n }\n });\n });\n $scope.$watch($attrs.ngModel, function(tags) {\n var ref, tagsColors;\n tagsColors = ((ref = $scope.project) != null ? ref.tags_colors : void 0) || [];\n return renderTags(tags, tagsColors);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n require: \"ngModel\",\n templateUrl: \"common/tag/lb-tag-line.html\"\n };\n };\n\n module.directive(\"tgLbTagLine\", [\"$tgResources\", \"$tgTemplate\", LbTagLineDirective]);\n\n TagLineDirective = function($rootScope, $repo, $rs, $confirm, $qqueue, $template) {\n var COMMA_KEY, ENTER_KEY, ESC_KEY, link, templateTags;\n ENTER_KEY = 13;\n ESC_KEY = 27;\n COMMA_KEY = 188;\n templateTags = $template.get(\"common/tag/tags-line-tags.html\", true);\n link = function($scope, $el, $attrs, $model) {\n var addValue, deleteValue, hideAddTagButton, hideAddTagButtonText, hideInput, hideSaveButton, isEditable, removeInputLastCharacter, renderInReadModeOnly, renderTags, resetInput, saveInputTag, showAddTagButton, showAddTagButtonText, showInput, showSaveButton;\n isEditable = function() {\n return $scope.project.my_permissions.indexOf($attrs.requiredPerm) !== -1;\n };\n renderTags = function(tags, tagsColors) {\n var ctx, html;\n ctx = {\n tags: _.map(tags, function(t) {\n return {\n name: t,\n color: tagsColors[t]\n };\n }),\n isEditable: isEditable()\n };\n html = templateTags(ctx);\n return $el.find(\"div.tags-container\").html(html);\n };\n renderInReadModeOnly = function() {\n $el.find(\".add-tag\").remove();\n $el.find(\"input\").remove();\n return $el.find(\".save\").remove();\n };\n showAddTagButton = function() {\n return $el.find(\".add-tag\").removeClass(\"hidden\");\n };\n hideAddTagButton = function() {\n return $el.find(\".add-tag\").addClass(\"hidden\");\n };\n showAddTagButtonText = function() {\n return $el.find(\".add-tag-text\").removeClass(\"hidden\");\n };\n hideAddTagButtonText = function() {\n return $el.find(\".add-tag-text\").addClass(\"hidden\");\n };\n showSaveButton = function() {\n return $el.find(\".save\").removeClass(\"hidden\");\n };\n hideSaveButton = function() {\n return $el.find(\".save\").addClass(\"hidden\");\n };\n showInput = function() {\n return $el.find(\"input\").removeClass(\"hidden\").focus();\n };\n hideInput = function() {\n return $el.find(\"input\").addClass(\"hidden\").blur();\n };\n resetInput = function() {\n $el.find(\"input\").val(\"\");\n return $el.find(\"input\").autocomplete(\"close\");\n };\n addValue = $qqueue.bindAdd(function(value) {\n var model, onError, onSuccess, tags;\n value = trim(value.toLowerCase());\n if (value.length === 0) {\n return;\n }\n tags = _.clone($model.$modelValue.tags, false);\n if (tags == null) {\n tags = [];\n }\n if (indexOf.call(tags, value) < 0) {\n tags.push(value);\n }\n model = $model.$modelValue.clone();\n model.tags = tags;\n $model.$setViewValue(model);\n onSuccess = function() {\n return $rootScope.$broadcast(\"history:reload\");\n };\n onError = function() {\n $confirm.notify(\"error\");\n model.revert();\n return $model.$setViewValue(model);\n };\n $repo.save(model).then(onSuccess, onError);\n return hideSaveButton();\n });\n deleteValue = $qqueue.bindAdd(function(value) {\n var model, onError, onSuccess, tags;\n value = trim(value.toLowerCase());\n if (value.length === 0) {\n return;\n }\n tags = _.clone($model.$modelValue.tags, false);\n tags = _.pull(tags, value);\n model = $model.$modelValue.clone();\n model.tags = tags;\n $model.$setViewValue(model);\n onSuccess = function() {\n return $rootScope.$broadcast(\"history:reload\");\n };\n onError = function() {\n $confirm.notify(\"error\");\n model.revert();\n return $model.$setViewValue(model);\n };\n return $repo.save(model).then(onSuccess, onError);\n });\n saveInputTag = function() {\n var value;\n value = $el.find(\"input\").val();\n addValue(value);\n return resetInput();\n };\n removeInputLastCharacter = (function(_this) {\n return function(input) {\n var inputValue;\n inputValue = input.val();\n return input.val(inputValue.substring(0, inputValue.length - 1));\n };\n })(this);\n $el.on(\"keypress\", \"input\", function(event) {\n var ref;\n if ((ref = event.keyCode) !== ENTER_KEY && ref !== ESC_KEY) {\n return;\n }\n return event.preventDefault();\n });\n $el.on(\"keyup\", \"input\", function(event) {\n var target;\n target = angular.element(event.currentTarget);\n if (event.keyCode === ENTER_KEY) {\n return saveInputTag();\n } else if (event.keyCode === COMMA_KEY) {\n removeInputLastCharacter(target);\n return saveInputTag();\n } else if (event.keyCode === ESC_KEY) {\n resetInput();\n hideInput();\n hideSaveButton();\n return showAddTagButton();\n } else {\n if (target.val().length) {\n return showSaveButton();\n } else {\n return hideSaveButton();\n }\n }\n });\n $el.on(\"click\", \".save\", function(event) {\n event.preventDefault();\n return saveInputTag();\n });\n $el.on(\"click\", \".add-tag\", function(event) {\n event.preventDefault();\n hideAddTagButton();\n return showInput();\n });\n $el.on(\"click\", \".icon-delete\", function(event) {\n var target, value;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n value = target.siblings(\".tag-name\").text();\n return deleteValue(value);\n });\n bindOnce($scope, \"project\", function(project) {\n var positioningFunction;\n if (!isEditable()) {\n renderInReadModeOnly();\n return;\n }\n showAddTagButton();\n positioningFunction = function(position, elements) {\n var menu;\n menu = elements.element.element;\n menu.css(\"width\", elements.target.width);\n menu.css(\"top\", position.top);\n return menu.css(\"left\", position.left);\n };\n return $el.find(\"input\").autocomplete({\n source: _.keys(project.tags_colors),\n position: {\n my: \"left top\",\n using: positioningFunction\n },\n select: function(event, ui) {\n addValue(ui.item.value);\n return ui.item.value = \"\";\n }\n });\n });\n $scope.$watch($attrs.ngModel, function(model) {\n var ref, ref1, tagsColors;\n if (!model) {\n return;\n }\n if ((ref = model.tags) != null ? ref.length : void 0) {\n hideAddTagButtonText();\n } else {\n showAddTagButtonText();\n }\n tagsColors = ((ref1 = $scope.project) != null ? ref1.tags_colors : void 0) || [];\n return renderTags(model.tags, tagsColors);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n require: \"ngModel\",\n templateUrl: \"common/tag/tag-line.html\"\n };\n };\n\n module.directive(\"tgTagLine\", [\"$rootScope\", \"$tgRepo\", \"$tgResources\", \"$tgConfirm\", \"$tgQqueue\", \"$tgTemplate\", TagLineDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/wisiwyg.coffee\n */\n\n(function() {\n var bindOnce, module, taiga, tgMarkitupDirective,\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\n\n taiga = this.taiga;\n\n bindOnce = this.taiga.bindOnce;\n\n module = angular.module(\"taigaCommon\");\n\n tgMarkitupDirective = function($rootscope, $rs, $tr, $selectedText, $template) {\n var link, previewTemplate;\n previewTemplate = $template.get(\"common/wysiwyg/wysiwyg-markitup-preview.html\", true);\n link = function($scope, $el, $attrs, $model) {\n var addLine, closePreviewMode, element, markdownSettings, markdownTitle, prepareUrlFormatting, preview, previewDomNode, setCaretPosition, urlFormatting;\n element = angular.element($el);\n previewDomNode = $(\"
\", {\n \"class\": \"preview\"\n });\n closePreviewMode = function() {\n element.parents(\".markdown\").find(\".preview\").remove();\n return element.parents(\".markItUp\").show();\n };\n $scope.$on(\"markdown-editor:submit\", function() {\n return closePreviewMode();\n });\n preview = function() {\n var markItUpDomNode, markdownDomNode;\n markdownDomNode = element.parents(\".markdown\");\n markItUpDomNode = element.parents(\".markItUp\");\n return $rs.mdrender.render($scope.projectId, $model.$modelValue).then(function(data) {\n var markdown;\n markdownDomNode.append(previewTemplate({\n data: data.data\n }));\n markItUpDomNode.hide();\n markdown = element.closest(\".markdown\");\n return markdown.on(\"mouseup.preview\", \".preview\", function(event) {\n var target;\n event.preventDefault();\n target = angular.element(event.target);\n if (!target.is('a') && $selectedText.get().length) {\n return;\n }\n markdown.off(\".preview\");\n return closePreviewMode();\n });\n });\n };\n setCaretPosition = function(textarea, caretPosition) {\n var line, range, scrollRelation, totalLines;\n if (textarea.createTextRange) {\n range = textarea.createTextRange();\n range.move(\"character\", caretPosition);\n range.select();\n } else if (textarea.selectionStart) {\n textarea.focus();\n textarea.setSelectionRange(caretPosition, caretPosition);\n }\n totalLines = textarea.value.split(\"\\n\").length;\n line = textarea.value.slice(0, +(caretPosition - 1) + 1 || 9e9).split(\"\\n\").length;\n scrollRelation = line / totalLines;\n return $el.scrollTop((scrollRelation * $el[0].scrollHeight) - ($el.height() / 2));\n };\n addLine = function(textarea, nline, replace) {\n var cursorPosition, j, key, len, line, lines;\n lines = textarea.value.split(\"\\n\");\n if (replace) {\n lines[nline] = replace + lines[nline];\n } else {\n lines[nline] = \"\";\n }\n cursorPosition = 0;\n for (key = j = 0, len = lines.length; j < len; key = ++j) {\n line = lines[key];\n cursorPosition += line.length + 1 || 1;\n if (key === nline) {\n break;\n }\n }\n textarea.value = lines.join(\"\\n\");\n if (replace) {\n return cursorPosition - lines[nline].length + replace.length - 1;\n } else {\n return cursorPosition;\n }\n };\n markdownSettings = {\n nameSpace: \"markdown\",\n onShiftEnter: {\n keepDefault: false,\n openWith: \"\\n\\n\"\n },\n onEnter: {\n keepDefault: false,\n replaceWith: function() {\n return \"\\n\";\n },\n afterInsert: function(data) {\n var cursorLine, emptyListItem, lastLine, lines, markdownCaretPositon, match, newLineContent;\n lines = data.textarea.value.split(\"\\n\");\n cursorLine = data.textarea.value.slice(0, +(data.caretPosition - 1) + 1 || 9e9).split(\"\\n\").length;\n newLineContent = data.textarea.value.slice(data.caretPosition).split(\"\\n\")[0];\n lastLine = lines[cursorLine - 1];\n match = lastLine.match(/^(\\s*- ).*/);\n if (match) {\n emptyListItem = lastLine.match(/^(\\s*)\\-\\s$/);\n if (emptyListItem) {\n markdownCaretPositon = addLine(data.textarea, cursorLine - 1);\n } else {\n markdownCaretPositon = addLine(data.textarea, cursorLine, \"\" + match[1]);\n }\n }\n match = lastLine.match(/^(\\s*\\* ).*/);\n if (match) {\n emptyListItem = lastLine.match(/^(\\s*\\* )$/);\n if (emptyListItem) {\n markdownCaretPositon = addLine(data.textarea, cursorLine - 1);\n } else {\n markdownCaretPositon = addLine(data.textarea, cursorLine, \"\" + match[1]);\n }\n }\n match = lastLine.match(/^(\\s*)(\\d+)\\.\\s/);\n if (match) {\n emptyListItem = lastLine.match(/^(\\s*)(\\d+)\\.\\s$/);\n if (emptyListItem) {\n markdownCaretPositon = addLine(data.textarea, cursorLine - 1);\n } else {\n markdownCaretPositon = addLine(data.textarea, cursorLine, (match[1] + (parseInt(match[2], 10) + 1)) + \". \");\n }\n }\n if (markdownCaretPositon) {\n return setCaretPosition(data.textarea, markdownCaretPositon);\n }\n }\n },\n markupSet: [\n {\n name: $tr.t(\"markdown-editor.heading-1\"),\n key: \"1\",\n placeHolder: $tr.t(\"markdown-editor.placeholder\"),\n closeWith: function(markItUp) {\n return markdownTitle(markItUp, \"=\");\n }\n }, {\n name: $tr.t(\"markdown-editor.heading-2\"),\n key: \"2\",\n placeHolder: $tr.t(\"markdown-editor.placeholder\"),\n closeWith: function(markItUp) {\n return markdownTitle(markItUp, \"-\");\n }\n }, {\n name: $tr.t(\"markdown-editor.heading-3\"),\n key: \"3\",\n openWith: \"### \",\n placeHolder: $tr.t(\"markdown-editor.placeholder\")\n }, {\n separator: \"---------------\"\n }, {\n name: $tr.t(\"markdown-editor.bold\"),\n key: \"B\",\n openWith: \"**\",\n closeWith: \"**\"\n }, {\n name: $tr.t(\"markdown-editor.italic\"),\n key: \"I\",\n openWith: \"_\",\n closeWith: \"_\"\n }, {\n name: $tr.t(\"markdown-editor.strike\"),\n key: \"S\",\n openWith: \"~~\",\n closeWith: \"~~\"\n }, {\n separator: \"---------------\"\n }, {\n name: $tr.t(\"markdown-editor.bulleted-list\"),\n openWith: \"- \"\n }, {\n name: $tr.t(\"markdown-editor.numeric-list\"),\n openWith: function(markItUp) {\n return markItUp.line + \". \";\n }\n }, {\n separator: \"---------------\"\n }, {\n name: $tr.t(\"markdown-editor.picture\"),\n key: \"P\",\n replaceWith: '![[![Alternative text]!]](<<<[![Url:!:http://]!]>>> \"[![Title]!]\")',\n beforeInsert: function(markItUp) {\n return prepareUrlFormatting(markItUp);\n },\n afterInsert: function(markItUp) {\n return urlFormatting(markItUp);\n }\n }, {\n name: $tr.t(\"markdown-editor.link\"),\n key: \"L\",\n openWith: \"[\",\n closeWith: '](<<<[![Url:!:http://]!]>>> \"[![Title]!]\")',\n placeHolder: $tr.t(\"markdown-editor.link-placeholder\"),\n beforeInsert: function(markItUp) {\n return prepareUrlFormatting(markItUp);\n },\n afterInsert: function(markItUp) {\n return urlFormatting(markItUp);\n }\n }, {\n separator: \"---------------\"\n }, {\n name: $tr.t(\"markdown-editor.quotes\"),\n openWith: \"> \"\n }, {\n name: $tr.t(\"markdown-editor.code-block\"),\n openWith: \"```\\n\",\n closeWith: \"\\n```\"\n }, {\n separator: \"---------------\"\n }, {\n name: $tr.t(\"markdown-editor.preview\"),\n call: preview,\n className: \"preview-icon\"\n }\n ],\n afterInsert: function(event) {\n var target;\n target = angular.element(event.textarea);\n return $model.$setViewValue(target.val());\n }\n };\n prepareUrlFormatting = function(markItUp) {\n var indices, regex, result;\n console.log(markItUp);\n regex = /(<<<|>>>)/gi;\n result = 0;\n indices = [];\n while ((result = regex.exec(markItUp.textarea.value))) {\n indices.push(result.index);\n }\n markItUp.donotparse = indices;\n return console.log(indices);\n };\n urlFormatting = function(markItUp) {\n var endIndex, ref, ref1, regex, result, startIndex, url, value;\n console.log(markItUp.donotparse);\n regex = /<<>>/gi;\n endIndex = 0;\n while (true) {\n result = regex.exec(markItUp.textarea.value);\n if (!result) {\n break;\n }\n if (ref1 = result.index, indexOf.call(markItUp.donotparse, ref1) < 0) {\n endIndex = result.index;\n break;\n }\n }\n value = markItUp.textarea.value;\n url = value.substring(startIndex, endIndex).replace('<<<', '').replace('>>>', '');\n url = url.replace('(', '%28').replace(')', '%29');\n url = url.replace('[', '%5B').replace(']', '%5D');\n value = value.substring(0, startIndex) + url + value.substring(endIndex + 3, value.length);\n markItUp.textarea.value = value;\n return markItUp.donotparse = void 0;\n };\n markdownTitle = function(markItUp, char) {\n var heading, i, j, n, ref;\n heading = \"\";\n n = $.trim(markItUp.selection || markItUp.placeHolder).length;\n for (i = j = 0, ref = n - 1; 0 <= ref ? j <= ref : j >= ref; i = 0 <= ref ? ++j : --j) {\n heading += char;\n }\n return \"\\n\" + heading + \"\\n\";\n };\n element.markItUp(markdownSettings);\n element.on(\"keypress\", function(event) {\n return $scope.$apply();\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgMarkitup\", [\"$rootScope\", \"$tgResources\", \"$tgI18n\", \"$selectedText\", \"$tgTemplate\", tgMarkitupDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: pluggins/main.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaPlugins\", [\"ngRoute\"]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/kanban/sortable.coffee\n */\n\n(function() {\n var KanbanSortableDirective, bindOnce, groupBy, mixOf, module, scopeDefer, taiga, timeout, toggleText;\n\n taiga = this.taiga;\n\n mixOf = this.taiga.mixOf;\n\n toggleText = this.taiga.toggleText;\n\n scopeDefer = this.taiga.scopeDefer;\n\n bindOnce = this.taiga.bindOnce;\n\n groupBy = this.taiga.groupBy;\n\n timeout = this.taiga.timeout;\n\n module = angular.module(\"taigaKanban\");\n\n KanbanSortableDirective = function($repo, $rs, $rootscope) {\n var link;\n link = function($scope, $el, $attrs) {\n bindOnce($scope, \"project\", function(project) {\n var deleteElement, itemEl, newParentScope, oldParentScope, tdom;\n if (!(project.my_permissions.indexOf(\"modify_us\") > -1)) {\n return;\n }\n oldParentScope = null;\n newParentScope = null;\n itemEl = null;\n tdom = $el;\n deleteElement = function(itemEl) {\n itemEl.scope().$destroy();\n itemEl.off();\n return itemEl.remove();\n };\n tdom.sortable({\n handle: \".kanban-task-inner\",\n dropOnEmpty: true,\n connectWith: \".kanban-uses-box\",\n revert: 400\n });\n tdom.on(\"sortstop\", function(event, ui) {\n var itemIndex, itemUs, newStatusId, oldStatusId, parentEl;\n parentEl = ui.item.parent();\n itemEl = ui.item;\n itemUs = itemEl.scope().us;\n itemIndex = itemEl.index();\n newParentScope = parentEl.scope();\n newStatusId = newParentScope.s.id;\n oldStatusId = oldParentScope.s.id;\n if (newStatusId !== oldStatusId) {\n deleteElement(itemEl);\n }\n $scope.$apply(function() {\n return $rootscope.$broadcast(\"kanban:us:move\", itemUs, itemUs.status, newStatusId, itemIndex);\n });\n return ui.item.find('a').removeClass('noclick');\n });\n return tdom.on(\"sortstart\", function(event, ui) {\n oldParentScope = ui.item.parent().scope();\n return ui.item.find('a').addClass('noclick');\n });\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgKanbanSortable\", [\"$tgRepo\", \"$tgResources\", \"$rootScope\", KanbanSortableDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/sprints.coffee\n */\n\n(function() {\n var generateHash, module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n generateHash = taiga.generateHash;\n\n resourceProvider = function($repo, $model, $storage) {\n var hashSuffixUserstories, service;\n service = {};\n hashSuffixUserstories = \"userstories-queryparams\";\n service.get = function(projectId, sprintId) {\n return $repo.queryOne(\"milestones\", sprintId).then(function(sprint) {\n var uses;\n service.storeUserstoriesQueryParams(projectId, {\n \"milestone\": sprintId\n });\n uses = sprint.user_stories;\n uses = _.map(uses, function(u) {\n return $model.make_model(\"userstories\", u);\n });\n sprint._attrs.user_stories = uses;\n return sprint;\n });\n };\n service.stats = function(projectId, sprintId) {\n return $repo.queryOneRaw(\"milestones\", sprintId + \"/stats\");\n };\n service.list = function(projectId, filters) {\n var params;\n params = {\n \"project\": projectId\n };\n params = _.extend({}, params, filters || {});\n return $repo.queryMany(\"milestones\", params).then((function(_this) {\n return function(milestones) {\n var i, len, m, uses;\n for (i = 0, len = milestones.length; i < len; i++) {\n m = milestones[i];\n uses = m.user_stories;\n uses = _.map(uses, function(u) {\n return $model.make_model(\"userstories\", u);\n });\n m._attrs.user_stories = uses;\n }\n return milestones;\n };\n })(this));\n };\n service.storeUserstoriesQueryParams = function(projectId, params) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffixUserstories;\n hash = generateHash([projectId, ns]);\n return $storage.set(hash, params);\n };\n return function(instance) {\n return instance.sprints = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgSprintsResourcesProvider\", [\"$tgRepo\", \"$tgModel\", \"$tgStorage\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/taskboard/charts.coffee\n */\n\n(function() {\n var SprintGraphDirective, bindOnce, groupBy, mixOf, module, scopeDefer, taiga, timeout, toggleText;\n\n taiga = this.taiga;\n\n mixOf = this.taiga.mixOf;\n\n toggleText = this.taiga.toggleText;\n\n scopeDefer = this.taiga.scopeDefer;\n\n bindOnce = this.taiga.bindOnce;\n\n groupBy = this.taiga.groupBy;\n\n timeout = this.taiga.timeout;\n\n module = angular.module(\"taigaTaskboard\");\n\n SprintGraphDirective = function() {\n var link, redrawChart;\n redrawChart = function(element, dataToDraw) {\n var data, days, options, width;\n width = element.width();\n element.height(240);\n days = _.map(dataToDraw, function(x) {\n return moment(x.day);\n });\n data = [];\n data.unshift({\n data: _.zip(days, _.map(dataToDraw, function(d) {\n return d.optimal_points;\n })),\n lines: {\n fillColor: \"rgba(120,120,120,0.2)\"\n }\n });\n data.unshift({\n data: _.zip(days, _.map(dataToDraw, function(d) {\n return d.open_points;\n })),\n lines: {\n fillColor: \"rgba(102,153,51,0.3)\"\n }\n });\n options = {\n grid: {\n borderWidth: {\n top: 0,\n right: 1,\n left: 0,\n bottom: 0\n },\n borderColor: '#ccc',\n hoverable: true\n },\n xaxis: {\n tickSize: [1, \"day\"],\n min: days[0],\n max: _.last(days),\n mode: \"time\",\n daysNames: days,\n axisLabel: 'Day',\n axisLabelUseCanvas: true,\n axisLabelFontSizePixels: 12,\n axisLabelFontFamily: 'Verdana, Arial, Helvetica, Tahoma, sans-serif',\n axisLabelPadding: 5\n },\n yaxis: {\n min: 0\n },\n series: {\n shadowSize: 0,\n lines: {\n show: true,\n fill: true\n },\n points: {\n show: true,\n fill: true,\n radius: 4,\n lineWidth: 2\n }\n },\n colors: [\"rgba(102,153,51,1)\", \"rgba(120,120,120,0.2)\"],\n tooltip: true,\n tooltipOpts: {\n content: function(label, xval, yval, flotItem) {\n var formattedDate, roundedValue;\n formattedDate = moment(xval).format(\"DD MMM\");\n roundedValue = Math.round(yval);\n if (flotItem.seriesIndex === 1) {\n return \"Optimal pending points for day \" + formattedDate + \" should be \" + roundedValue;\n } else {\n return \"Real pending points for day \" + formattedDate + \" is \" + roundedValue;\n }\n }\n }\n };\n element.empty();\n return element.plot(data, options).data(\"plot\");\n };\n link = function($scope, $el, $attrs) {\n var element;\n element = angular.element($el);\n $scope.$on(\"resize\", function() {\n if ($scope.stats) {\n return redrawChart(element, $scope.stats.days);\n }\n });\n $scope.$on(\"taskboard:graph:toggle-visibility\", function() {\n $el.parent().toggleClass('open');\n return timeout(100, function() {\n if ($scope.stats) {\n return redrawChart(element, $scope.stats.days);\n }\n });\n });\n $scope.$watch('stats', function(value) {\n if ($scope.stats == null) {\n return;\n }\n return redrawChart(element, $scope.stats.days);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgSprintGraph\", SprintGraphDirective);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/tasks/detail.coffee\n */\n\n(function() {\n var TaskDetailController, TaskIsIocaineButtonDirective, TaskStatusButtonDirective, TaskStatusDisplayDirective, groupBy, mixOf, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n mixOf = this.taiga.mixOf;\n\n groupBy = this.taiga.groupBy;\n\n module = angular.module(\"taigaTasks\");\n\n TaskDetailController = (function(superClass) {\n extend(TaskDetailController, superClass);\n\n TaskDetailController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgResources\", \"$routeParams\", \"$q\", \"$tgLocation\", \"$log\", \"$appTitle\", \"$tgNavUrls\", \"$tgAnalytics\", \"tgLoader\"];\n\n function TaskDetailController(scope, rootscope, repo, confirm, rs, params, q, location, log, appTitle, navUrls, analytics, tgLoader) {\n var promise;\n this.scope = scope;\n this.rootscope = rootscope;\n this.repo = repo;\n this.confirm = confirm;\n this.rs = rs;\n this.params = params;\n this.q = q;\n this.location = location;\n this.log = log;\n this.appTitle = appTitle;\n this.navUrls = navUrls;\n this.analytics = analytics;\n this.scope.taskRef = this.params.taskref;\n this.scope.sectionName = \"Task Details\";\n this.initializeEventHandlers();\n promise = this.loadInitialData();\n promise.then((function(_this) {\n return function() {\n _this.appTitle.set(_this.scope.task.subject + \" - \" + _this.scope.project.name);\n return _this.initializeOnDeleteGoToUrl();\n };\n })(this));\n promise.then(null, this.onInitialDataError.bind(this));\n promise[\"finally\"](tgLoader.pageLoaded);\n }\n\n TaskDetailController.prototype.initializeEventHandlers = function() {\n this.scope.$on(\"attachment:create\", (function(_this) {\n return function() {\n _this.analytics.trackEvent(\"attachment\", \"create\", \"create attachment on task\", 1);\n return _this.rootscope.$broadcast(\"history:reload\");\n };\n })(this));\n this.scope.$on(\"attachment:edit\", (function(_this) {\n return function() {\n return _this.rootscope.$broadcast(\"history:reload\");\n };\n })(this));\n this.scope.$on(\"attachment:delete\", (function(_this) {\n return function() {\n return _this.rootscope.$broadcast(\"history:reload\");\n };\n })(this));\n return this.scope.$on(\"custom-attributes-values:edit\", (function(_this) {\n return function() {\n return _this.rootscope.$broadcast(\"history:reload\");\n };\n })(this));\n };\n\n TaskDetailController.prototype.initializeOnDeleteGoToUrl = function() {\n var ctx;\n ctx = {\n project: this.scope.project.slug\n };\n this.scope.onDeleteGoToUrl = this.navUrls.resolve(\"project\", ctx);\n if (this.scope.project.is_backlog_activated) {\n if (this.scope.task.milestone) {\n ctx.sprint = this.scope.sprint.slug;\n return this.scope.onDeleteGoToUrl = this.navUrls.resolve(\"project-taskboard\", ctx);\n } else if (this.scope.task.us) {\n ctx.ref = this.scope.us.ref;\n return this.scope.onDeleteGoToUrl = this.navUrls.resolve(\"project-userstories-detail\", ctx);\n }\n } else if (this.scope.project.is_kanban_activated) {\n if (this.scope.us) {\n ctx.ref = this.scope.us.ref;\n return this.scope.onDeleteGoToUrl = this.navUrls.resolve(\"project-userstories-detail\", ctx);\n }\n }\n };\n\n TaskDetailController.prototype.loadProject = function() {\n return this.rs.projects.getBySlug(this.params.pslug).then((function(_this) {\n return function(project) {\n _this.scope.projectId = project.id;\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n _this.scope.statusList = project.task_statuses;\n _this.scope.statusById = groupBy(project.task_statuses, function(x) {\n return x.id;\n });\n _this.scope.membersById = groupBy(project.memberships, function(x) {\n return x.user;\n });\n return project;\n };\n })(this));\n };\n\n TaskDetailController.prototype.loadTask = function() {\n return this.rs.tasks.getByRef(this.scope.projectId, this.params.taskref).then((function(_this) {\n return function(task) {\n var ctx;\n _this.scope.task = task;\n _this.scope.taskId = task.id;\n _this.scope.commentModel = task;\n if (_this.scope.task.neighbors.previous.ref != null) {\n ctx = {\n project: _this.scope.project.slug,\n ref: _this.scope.task.neighbors.previous.ref\n };\n _this.scope.previousUrl = _this.navUrls.resolve(\"project-tasks-detail\", ctx);\n }\n if (_this.scope.task.neighbors.next.ref != null) {\n ctx = {\n project: _this.scope.project.slug,\n ref: _this.scope.task.neighbors.next.ref\n };\n _this.scope.nextUrl = _this.navUrls.resolve(\"project-tasks-detail\", ctx);\n }\n return task;\n };\n })(this));\n };\n\n TaskDetailController.prototype.loadSprint = function() {\n if (this.scope.task.milestone) {\n return this.rs.sprints.get(this.scope.task.project, this.scope.task.milestone).then((function(_this) {\n return function(sprint) {\n _this.scope.sprint = sprint;\n return sprint;\n };\n })(this));\n }\n };\n\n TaskDetailController.prototype.loadUserStory = function() {\n if (this.scope.task.user_story) {\n return this.rs.userstories.get(this.scope.task.project, this.scope.task.user_story).then((function(_this) {\n return function(us) {\n _this.scope.us = us;\n return us;\n };\n })(this));\n }\n };\n\n TaskDetailController.prototype.loadInitialData = function() {\n var promise;\n promise = this.loadProject();\n return promise.then((function(_this) {\n return function(project) {\n _this.fillUsersAndRoles(project.users, project.roles);\n return _this.loadTask().then(function() {\n return _this.q.all([_this.loadSprint(), _this.loadUserStory()]);\n });\n };\n })(this));\n };\n\n return TaskDetailController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin));\n\n module.controller(\"TaskDetailController\", TaskDetailController);\n\n TaskStatusDisplayDirective = function($template) {\n var link, template;\n template = $template.get(\"common/components/status-display.html\", true);\n link = function($scope, $el, $attrs) {\n var render;\n render = function(task) {\n var html, status;\n status = $scope.statusById[task.status];\n html = template({\n is_closed: status.is_closed,\n status: status\n });\n return $el.html(html);\n };\n $scope.$watch($attrs.ngModel, function(task) {\n if (task != null) {\n return render(task);\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgTaskStatusDisplay\", [\"$tgTemplate\", TaskStatusDisplayDirective]);\n\n TaskStatusButtonDirective = function($rootScope, $repo, $confirm, $loading, $qqueue) {\n var link, template;\n template = _.template(\"\");\n link = function($scope, $el, $attrs, $model) {\n var isEditable, render, save;\n isEditable = function() {\n return $scope.project.my_permissions.indexOf(\"modify_task\") !== -1;\n };\n render = (function(_this) {\n return function(task) {\n var html, status;\n status = $scope.statusById[task.status];\n html = template({\n status: status,\n statuses: $scope.statusList,\n editable: isEditable()\n });\n return $el.html(html);\n };\n })(this);\n save = $qqueue.bindAdd((function(_this) {\n return function(status) {\n var onError, onSuccess, task;\n task = $model.$modelValue.clone();\n task.status = status;\n $model.$setViewValue(task);\n onSuccess = function() {\n $confirm.notify(\"success\");\n $rootScope.$broadcast(\"history:reload\");\n return $loading.finish($el.find(\".level-name\"));\n };\n onError = function() {\n $confirm.notify(\"error\");\n task.revert();\n $model.$setViewValue(task);\n return $loading.finish($el.find(\".level-name\"));\n };\n $loading.start($el.find(\".level-name\"));\n return $repo.save($model.$modelValue).then(onSuccess, onError);\n };\n })(this));\n $el.on(\"click\", \".status-data\", function(event) {\n event.preventDefault();\n event.stopPropagation();\n if (!isEditable()) {\n return;\n }\n return $el.find(\".pop-status\").popover().open();\n });\n $el.on(\"click\", \".status\", function(event) {\n var target;\n event.preventDefault();\n event.stopPropagation();\n if (!isEditable()) {\n return;\n }\n target = angular.element(event.currentTarget);\n $.fn.popover().closeAll();\n return save(target.data(\"status-id\"));\n });\n $scope.$watch($attrs.ngModel, function(task) {\n if (task) {\n return render(task);\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgTaskStatusButton\", [\"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", \"$tgQqueue\", TaskStatusButtonDirective]);\n\n TaskIsIocaineButtonDirective = function($rootscope, $tgrepo, $confirm, $loading, $qqueue) {\n var link, template;\n template = _.template(\"
\\n \\n \\n
\");\n link = function($scope, $el, $attrs, $model) {\n var isEditable, render, save;\n isEditable = function() {\n return $scope.project.my_permissions.indexOf(\"modify_task\") !== -1;\n };\n render = function(task) {\n var ctx, html;\n if (!isEditable() && !task.is_iocaine) {\n $el.html(\"\");\n return;\n }\n ctx = {\n isIocaine: task.is_iocaine,\n isEditable: isEditable()\n };\n html = template(ctx);\n return $el.html(html);\n };\n save = $qqueue.bindAdd((function(_this) {\n return function(is_iocaine) {\n var promise, task;\n task = $model.$modelValue.clone();\n task.is_iocaine = is_iocaine;\n $model.$setViewValue(task);\n $loading.start($el.find('label'));\n promise = $tgrepo.save(task);\n promise.then(function() {\n $confirm.notify(\"success\");\n return $rootscope.$broadcast(\"history:reload\");\n });\n promise.then(null, function() {\n task.revert();\n $model.$setViewValue(task);\n return $confirm.notify(\"error\");\n });\n return promise[\"finally\"](function() {\n return $loading.finish($el.find('label'));\n });\n };\n })(this));\n $el.on(\"click\", \".is-iocaine\", function(event) {\n var is_iocaine;\n if (!isEditable()) {\n return;\n }\n is_iocaine = !$model.$modelValue.is_iocaine;\n return save(is_iocaine);\n });\n $scope.$watch($attrs.ngModel, function(task) {\n if (task) {\n return render(task);\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgTaskIsIocaineButton\", [\"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", \"$tgQqueue\", TaskIsIocaineButtonDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/issues/list.coffee\n */\n\n(function() {\n var IssueAssignedToInlineEditionDirective, IssueStatusInlineEditionDirective, IssuesController, IssuesDirective, IssuesFiltersDirective, bindOnce, debounceLeading, groupBy, joinStr, mixOf, module, startswith, taiga, toString, trim,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n mixOf = this.taiga.mixOf;\n\n trim = this.taiga.trim;\n\n toString = this.taiga.toString;\n\n joinStr = this.taiga.joinStr;\n\n groupBy = this.taiga.groupBy;\n\n bindOnce = this.taiga.bindOnce;\n\n debounceLeading = this.taiga.debounceLeading;\n\n startswith = this.taiga.startswith;\n\n module = angular.module(\"taigaIssues\");\n\n IssuesController = (function(superClass) {\n extend(IssuesController, superClass);\n\n IssuesController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgResources\", \"$tgUrls\", \"$routeParams\", \"$q\", \"$tgLocation\", \"$appTitle\", \"$tgNavUrls\", \"$tgEvents\", \"$tgAnalytics\", \"tgLoader\"];\n\n function IssuesController(scope, rootscope, repo, confirm, rs, urls, params, q, location, appTitle, navUrls, events, analytics, tgLoader) {\n var filters, promise;\n this.scope = scope;\n this.rootscope = rootscope;\n this.repo = repo;\n this.confirm = confirm;\n this.rs = rs;\n this.urls = urls;\n this.params = params;\n this.q = q;\n this.location = location;\n this.appTitle = appTitle;\n this.navUrls = navUrls;\n this.events = events;\n this.analytics = analytics;\n this.loadIssues = bind(this.loadIssues, this);\n this.scope.sectionName = \"Issues\";\n this.scope.filters = {};\n if (_.isEmpty(this.location.search())) {\n filters = this.rs.issues.getFilters(this.params.pslug);\n filters.page = 1;\n this.location.search(filters);\n this.location.replace();\n return;\n }\n promise = this.loadInitialData();\n promise.then((function(_this) {\n return function() {\n return _this.appTitle.set(\"Issues - \" + _this.scope.project.name);\n };\n })(this));\n promise.then(null, this.onInitialDataError.bind(this));\n promise[\"finally\"](tgLoader.pageLoaded);\n this.scope.$on(\"issueform:new:success\", (function(_this) {\n return function() {\n _this.analytics.trackEvent(\"issue\", \"create\", \"create issue on issues list\", 1);\n _this.loadIssues();\n return _this.loadFilters();\n };\n })(this));\n }\n\n IssuesController.prototype.initializeSubscription = function() {\n var routingKey;\n routingKey = \"changes.project.\" + this.scope.projectId + \".issues\";\n return this.events.subscribe(this.scope, routingKey, (function(_this) {\n return function(message) {\n return _this.loadIssues();\n };\n })(this));\n };\n\n IssuesController.prototype.storeFilters = function() {\n return this.rs.issues.storeFilters(this.params.pslug, this.location.search());\n };\n\n IssuesController.prototype.loadProject = function() {\n return this.rs.projects.getBySlug(this.params.pslug).then((function(_this) {\n return function(project) {\n if (!project.is_issues_activated) {\n _this.location.path(_this.navUrls.resolve(\"permission-denied\"));\n }\n _this.scope.projectId = project.id;\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n _this.scope.issueStatusById = groupBy(project.issue_statuses, function(x) {\n return x.id;\n });\n _this.scope.issueStatusList = _.sortBy(project.issue_statuses, \"order\");\n _this.scope.severityById = groupBy(project.severities, function(x) {\n return x.id;\n });\n _this.scope.severityList = _.sortBy(project.severities, \"order\");\n _this.scope.priorityById = groupBy(project.priorities, function(x) {\n return x.id;\n });\n _this.scope.priorityList = _.sortBy(project.priorities, \"order\");\n _this.scope.issueTypes = _.sortBy(project.issue_types, \"order\");\n _this.scope.issueTypeById = groupBy(project.issue_types, function(x) {\n return x.id;\n });\n _this.scope.membersById = groupBy(project.memberships, function(x) {\n return x.user;\n });\n return project;\n };\n })(this));\n };\n\n IssuesController.prototype.getUrlFilters = function() {\n var filters;\n filters = _.pick(this.location.search(), \"page\", \"tags\", \"statuses\", \"types\", \"q\", \"severities\", \"priorities\", \"assignedTo\", \"createdBy\", \"orderBy\");\n if (!filters.page) {\n filters.page = 1;\n }\n return filters;\n };\n\n IssuesController.prototype.getUrlFilter = function(name) {\n var filters;\n filters = _.pick(this.location.search(), name);\n return filters[name];\n };\n\n IssuesController.prototype.loadMyFilters = function() {\n return this.rs.issues.getMyFilters(this.scope.projectId).then((function(_this) {\n return function(filters) {\n return _.map(filters, function(value, key) {\n return {\n id: key,\n name: key,\n type: \"myFilters\",\n selected: false\n };\n });\n };\n })(this));\n };\n\n IssuesController.prototype.removeNotExistingFiltersFromUrl = function() {\n var currentSearch, existingValues, filterName, filterValue, splittedValues, urlfilters;\n currentSearch = this.location.search();\n urlfilters = this.getUrlFilters();\n for (filterName in urlfilters) {\n filterValue = urlfilters[filterName];\n if (filterName === \"page\" || filterName === \"orderBy\" || filterName === \"q\") {\n continue;\n }\n if (filterName === \"tags\") {\n splittedValues = _.map((\"\" + filterValue).split(\",\"));\n } else {\n splittedValues = _.map((\"\" + filterValue).split(\",\"), function(x) {\n if (x === \"null\") {\n return null;\n } else {\n return parseInt(x);\n }\n });\n }\n existingValues = _.intersection(splittedValues, _.map(this.scope.filters[filterName], \"id\"));\n if (splittedValues.length !== existingValues.length) {\n this.location.search(filterName, existingValues.join());\n }\n }\n if (currentSearch !== this.location.search()) {\n return this.location.replace();\n }\n };\n\n IssuesController.prototype.markSelectedFilters = function(filters, urlfilters) {\n var isSelected, j, key, len, name, obj, ref, ref1, results, searchdata, val, value;\n searchdata = {};\n ref = _.omit(urlfilters, \"page\", \"orderBy\");\n for (name in ref) {\n value = ref[name];\n if (searchdata[name] == null) {\n searchdata[name] = {};\n }\n ref1 = (\"\" + value).split(\",\");\n for (j = 0, len = ref1.length; j < len; j++) {\n val = ref1[j];\n searchdata[name][val] = true;\n }\n }\n isSelected = function(type, id) {\n if ((searchdata[type] != null) && searchdata[type][id]) {\n return true;\n }\n return false;\n };\n results = [];\n for (key in filters) {\n value = filters[key];\n results.push((function() {\n var k, len1, results1;\n results1 = [];\n for (k = 0, len1 = value.length; k < len1; k++) {\n obj = value[k];\n results1.push(obj.selected = isSelected(obj.type, obj.id) ? true : void 0);\n }\n return results1;\n })());\n }\n return results;\n };\n\n IssuesController.prototype.loadFilters = function() {\n var promise, urlfilters;\n urlfilters = this.getUrlFilters();\n if (urlfilters.q) {\n this.scope.filtersQ = urlfilters.q;\n }\n promise = this.loadMyFilters().then((function(_this) {\n return function(myFilters) {\n _this.scope.filters.myFilters = myFilters;\n return myFilters;\n };\n })(this));\n promise = promise.then((function(_this) {\n return function() {\n return _this.rs.issues.filtersData(_this.scope.projectId);\n };\n })(this));\n return promise.then((function(_this) {\n return function(data) {\n var choicesFiltersFormat, tagsFilterFormat, usersFiltersFormat;\n usersFiltersFormat = function(users, type, unknownOption) {\n var reformatedUsers, unknownItem;\n reformatedUsers = _.map(users, function(t) {\n return {\n id: t[0],\n count: t[1],\n type: type,\n name: t[0] ? _this.scope.usersById[t[0]].full_name_display : unknownOption\n };\n });\n unknownItem = _.remove(reformatedUsers, function(u) {\n return !u.id;\n });\n reformatedUsers = _.sortBy(reformatedUsers, function(u) {\n return u.name.toUpperCase();\n });\n if (unknownItem.length > 0) {\n reformatedUsers.unshift(unknownItem[0]);\n }\n return reformatedUsers;\n };\n choicesFiltersFormat = function(choices, type, byIdObject) {\n return _.map(choices, function(t) {\n return {\n id: t[0],\n name: byIdObject[t[0]].name,\n color: byIdObject[t[0]].color,\n count: t[1],\n type: type\n };\n });\n };\n tagsFilterFormat = function(tags) {\n return _.map(tags, function(t) {\n return {\n id: t[0],\n name: t[0],\n color: _this.scope.project.tags_colors[t[0]],\n count: t[1],\n type: \"tags\"\n };\n });\n };\n _this.scope.filters.statuses = choicesFiltersFormat(data.statuses, \"statuses\", _this.scope.issueStatusById);\n _this.scope.filters.severities = choicesFiltersFormat(data.severities, \"severities\", _this.scope.severityById);\n _this.scope.filters.priorities = choicesFiltersFormat(data.priorities, \"priorities\", _this.scope.priorityById);\n _this.scope.filters.assignedTo = usersFiltersFormat(data.assigned_to, \"assignedTo\", \"Unassigned\");\n _this.scope.filters.createdBy = usersFiltersFormat(data.created_by, \"createdBy\", \"Unknown\");\n _this.scope.filters.types = choicesFiltersFormat(data.types, \"types\", _this.scope.issueTypeById);\n _this.scope.filters.tags = tagsFilterFormat(data.tags);\n _this.removeNotExistingFiltersFromUrl();\n _this.markSelectedFilters(_this.scope.filters, urlfilters);\n return _this.rootscope.$broadcast(\"filters:loaded\", _this.scope.filters);\n };\n })(this));\n };\n\n IssuesController.prototype.loadIssuesRequests = 0;\n\n IssuesController.prototype.loadIssues = function() {\n var name, promise, ref, values;\n this.scope.urlFilters = this.getUrlFilters();\n this.scope.httpParams = {};\n ref = this.scope.urlFilters;\n for (name in ref) {\n values = ref[name];\n if (name === \"severities\") {\n name = \"severity\";\n } else if (name === \"orderBy\") {\n name = \"order_by\";\n } else if (name === \"priorities\") {\n name = \"priority\";\n } else if (name === \"assignedTo\") {\n name = \"assigned_to\";\n } else if (name === \"createdBy\") {\n name = \"owner\";\n } else if (name === \"statuses\") {\n name = \"status\";\n } else if (name === \"types\") {\n name = \"type\";\n }\n this.scope.httpParams[name] = values;\n }\n promise = this.rs.issues.list(this.scope.projectId, this.scope.httpParams);\n this.loadIssuesRequests += 1;\n promise.index = this.loadIssuesRequests;\n return promise.then((function(_this) {\n return function(data) {\n if (promise.index === _this.loadIssuesRequests) {\n _this.scope.issues = data.models;\n _this.scope.page = data.current;\n _this.scope.count = data.count;\n _this.scope.paginatedBy = data.paginatedBy;\n }\n return data;\n };\n })(this));\n };\n\n IssuesController.prototype.loadInitialData = function() {\n var promise;\n promise = this.loadProject();\n return promise.then((function(_this) {\n return function(project) {\n _this.fillUsersAndRoles(project.users, project.roles);\n _this.initializeSubscription();\n return _this.q.all([_this.loadFilters(), _this.loadIssues()]);\n };\n })(this));\n };\n\n IssuesController.prototype.saveCurrentFiltersTo = function(newFilter) {\n var deferred;\n deferred = this.q.defer();\n this.rs.issues.getMyFilters(this.scope.projectId).then((function(_this) {\n return function(filters) {\n filters[newFilter] = _this.location.search();\n return _this.rs.issues.storeMyFilters(_this.scope.projectId, filters).then(function() {\n return deferred.resolve();\n });\n };\n })(this));\n return deferred.promise;\n };\n\n IssuesController.prototype.deleteMyFilter = function(filter) {\n var deferred;\n deferred = this.q.defer();\n this.rs.issues.getMyFilters(this.scope.projectId).then((function(_this) {\n return function(filters) {\n delete filters[filter];\n return _this.rs.issues.storeMyFilters(_this.scope.projectId, filters).then(function() {\n return deferred.resolve();\n });\n };\n })(this));\n return deferred.promise;\n };\n\n IssuesController.prototype.addNewIssue = function() {\n return this.rootscope.$broadcast(\"issueform:new\", this.scope.project);\n };\n\n IssuesController.prototype.addIssuesInBulk = function() {\n return this.rootscope.$broadcast(\"issueform:bulk\", this.scope.projectId);\n };\n\n return IssuesController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin, taiga.FiltersMixin));\n\n module.controller(\"IssuesController\", IssuesController);\n\n IssuesDirective = function($log, $location, $template) {\n var link, linkOrdering, linkPagination, template;\n template = $template.get(\"issue/issue-paginator.html\", true);\n linkPagination = function($scope, $el, $attrs, $ctrl) {\n var $pagEl, afterCurrent, atBegin, atEnd, beforeCurrent, getNumPages, renderPagination;\n afterCurrent = 2;\n beforeCurrent = 4;\n atBegin = 2;\n atEnd = 2;\n $pagEl = $el.find(\".issues-paginator\");\n getNumPages = function() {\n var numPages;\n numPages = $scope.count / $scope.paginatedBy;\n if (parseInt(numPages, 10) < numPages) {\n numPages = parseInt(numPages, 10) + 1;\n } else {\n numPages = parseInt(numPages, 10);\n }\n return numPages;\n };\n renderPagination = function() {\n var cpage, i, j, numPages, options, pages, ref;\n numPages = getNumPages();\n if (numPages <= 1) {\n $pagEl.hide();\n return;\n }\n $pagEl.show();\n pages = [];\n options = {};\n options.pages = pages;\n options.showPrevious = $scope.page > 1;\n options.showNext = !($scope.page === numPages);\n cpage = $scope.page;\n for (i = j = 1, ref = numPages; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) {\n if (i === (cpage + afterCurrent) && numPages > (cpage + afterCurrent + atEnd)) {\n pages.push({\n classes: \"dots\",\n type: \"dots\"\n });\n } else if (i === (cpage - beforeCurrent) && cpage > (atBegin + beforeCurrent)) {\n pages.push({\n classes: \"dots\",\n type: \"dots\"\n });\n } else if (i > (cpage + afterCurrent) && i <= (numPages - atEnd)) {\n\n } else if (i < (cpage - beforeCurrent) && i > atBegin) {\n\n } else if (i === cpage) {\n pages.push({\n classes: \"active\",\n num: i,\n type: \"page-active\"\n });\n } else {\n pages.push({\n classes: \"page\",\n num: i,\n type: \"page\"\n });\n }\n }\n return $pagEl.html(template(options));\n };\n $scope.$watch(\"issues\", function(value) {\n if (!value) {\n return;\n }\n return renderPagination();\n });\n $el.on(\"click\", \".issues-paginator a.next\", function(event) {\n event.preventDefault();\n return $scope.$apply(function() {\n $ctrl.selectFilter(\"page\", $scope.page + 1);\n return $ctrl.loadIssues();\n });\n });\n $el.on(\"click\", \".issues-paginator a.previous\", function(event) {\n event.preventDefault();\n return $scope.$apply(function() {\n $ctrl.selectFilter(\"page\", $scope.page - 1);\n return $ctrl.loadIssues();\n });\n });\n return $el.on(\"click\", \".issues-paginator li.page > a\", function(event) {\n var pagenum, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n pagenum = target.data(\"pagenum\");\n return $scope.$apply(function() {\n $ctrl.selectFilter(\"page\", pagenum);\n return $ctrl.loadIssues();\n });\n });\n };\n linkOrdering = function($scope, $el, $attrs, $ctrl) {\n var colHeadElement, currentOrder, icon;\n currentOrder = $ctrl.getUrlFilter(\"orderBy\") || \"created_date\";\n if (currentOrder) {\n icon = startswith(currentOrder, \"-\") ? \"icon-caret-up\" : \"icon-caret-down\";\n colHeadElement = $el.find(\".row.title > div[data-fieldname='\" + (trim(currentOrder, \"-\")) + \"']\");\n colHeadElement.html((colHeadElement.html()) + \"\");\n }\n return $el.on(\"click\", \".row.title > div\", function(event) {\n var finalOrder, newOrder, target;\n target = angular.element(event.currentTarget);\n currentOrder = $ctrl.getUrlFilter(\"orderBy\");\n newOrder = target.data(\"fieldname\");\n finalOrder = currentOrder === newOrder ? \"-\" + newOrder : newOrder;\n return $scope.$apply(function() {\n $ctrl.replaceFilter(\"orderBy\", finalOrder);\n $ctrl.storeFilters();\n return $ctrl.loadIssues().then(function() {\n $el.find(\".row.title > div > span.icon\").remove();\n icon = startswith(finalOrder, \"-\") ? \"icon-caret-up\" : \"icon-caret-down\";\n return target.html((target.html()) + \"\");\n });\n });\n });\n };\n link = function($scope, $el, $attrs) {\n var $ctrl;\n $ctrl = $el.controller();\n linkOrdering($scope, $el, $attrs, $ctrl);\n linkPagination($scope, $el, $attrs, $ctrl);\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgIssues\", [\"$log\", \"$tgLocation\", \"$tgTemplate\", IssuesDirective]);\n\n IssuesFiltersDirective = function($log, $location, $rs, $confirm, $loading, $template) {\n var link, template, templateSelected;\n template = $template.get(\"issue/issues-filters.html\", true);\n templateSelected = $template.get(\"issue/issues-filters-selected.html\", true);\n link = function($scope, $el, $attrs) {\n var $ctrl, initializeSelectedFilters, renderFilters, renderSelectedFilters, selectQFilter, selectedFilters, showCategories, showFilters, toggleFilterSelection;\n $ctrl = $el.closest(\".wrapper\").controller();\n selectedFilters = [];\n showFilters = function(title, type) {\n $el.find(\".filters-cats\").hide();\n $el.find(\".filter-list\").removeClass(\"hidden\");\n $el.find(\"h2.breadcrumb\").removeClass(\"hidden\");\n $el.find(\"h2 a.subfilter span.title\").html(title);\n return $el.find(\"h2 a.subfilter span.title\").prop(\"data-type\", type);\n };\n showCategories = function() {\n $el.find(\".filters-cats\").show();\n $el.find(\".filter-list\").addClass(\"hidden\");\n return $el.find(\"h2.breadcrumb\").addClass(\"hidden\");\n };\n initializeSelectedFilters = function(filters) {\n var j, len, name, val, values;\n selectedFilters = [];\n for (name in filters) {\n values = filters[name];\n for (j = 0, len = values.length; j < len; j++) {\n val = values[j];\n if (val.selected) {\n selectedFilters.push(val);\n }\n }\n }\n return renderSelectedFilters(selectedFilters);\n };\n renderSelectedFilters = function(selectedFilters) {\n var html;\n _.filter(selectedFilters, (function(_this) {\n return function(f) {\n if (f.color) {\n return f.style = \"border-left: 3px solid \" + f.color;\n }\n };\n })(this));\n html = templateSelected({\n filters: selectedFilters\n });\n $el.find(\".filters-applied\").html(html);\n if (selectedFilters.length > 0) {\n return $el.find(\".save-filters\").show();\n } else {\n return $el.find(\".save-filters\").hide();\n }\n };\n renderFilters = function(filters) {\n var html;\n _.filter(filters, (function(_this) {\n return function(f) {\n if (f.color) {\n return f.style = \"border-left: 3px solid \" + f.color;\n }\n };\n })(this));\n html = template({\n filters: filters\n });\n return $el.find(\".filter-list\").html(html);\n };\n toggleFilterSelection = function(type, id) {\n var currentFiltersType, filter, filterId, filters;\n if (type === \"myFilters\") {\n $rs.issues.getMyFilters($scope.projectId).then(function(data) {\n var filters, myFilters;\n myFilters = data;\n filters = myFilters[id];\n filters.page = 1;\n $ctrl.replaceAllFilters(filters);\n $ctrl.storeFilters();\n $ctrl.loadIssues();\n $ctrl.markSelectedFilters($scope.filters, filters);\n return initializeSelectedFilters($scope.filters);\n });\n return null;\n }\n filters = $scope.filters[type];\n filterId = type === 'tags' ? taiga.toString(id) : id;\n filter = _.find(filters, {\n id: filterId\n });\n filter.selected = !filter.selected;\n if (id === null) {\n id = \"null\";\n }\n if (filter.selected) {\n selectedFilters.push(filter);\n $scope.$apply(function() {\n $ctrl.selectFilter(type, id);\n $ctrl.selectFilter(\"page\", 1);\n $ctrl.storeFilters();\n return $ctrl.loadIssues();\n });\n } else {\n selectedFilters = _.reject(selectedFilters, filter);\n $scope.$apply(function() {\n $ctrl.unselectFilter(type, id);\n $ctrl.selectFilter(\"page\", 1);\n $ctrl.storeFilters();\n return $ctrl.loadIssues();\n });\n }\n renderSelectedFilters(selectedFilters);\n currentFiltersType = $el.find(\"h2 a.subfilter span.title\").prop('data-type');\n if (type === currentFiltersType) {\n return renderFilters(_.reject(filters, \"selected\"));\n }\n };\n $scope.$on(\"filters:loaded\", function(ctx, filters) {\n return initializeSelectedFilters(filters);\n });\n $scope.$on(\"filters:issueupdate\", function(ctx, filters) {\n var html;\n html = template({\n filters: filters.statuses\n });\n return $el.find(\".filter-list\").html(html);\n });\n selectQFilter = debounceLeading(100, function(value) {\n if (value === void 0) {\n return;\n }\n $ctrl.replaceFilter(\"page\", null);\n if (value.length === 0) {\n $ctrl.replaceFilter(\"q\", null);\n $ctrl.storeFilters();\n } else {\n $ctrl.replaceFilter(\"q\", value);\n $ctrl.storeFilters();\n }\n return $ctrl.loadIssues();\n });\n $scope.$watch(\"filtersQ\", selectQFilter);\n $el.on(\"click\", \".filters-cats > ul > li > a\", function(event) {\n var tags, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n tags = $scope.filters[target.data(\"type\")];\n renderFilters(_.reject(tags, \"selected\"));\n return showFilters(target.attr(\"title\"), target.data(\"type\"));\n });\n $el.on(\"click\", \".filters-inner > .filters-step-cat > .breadcrumb > .back\", function(event) {\n event.preventDefault();\n return showCategories($el);\n });\n $el.on(\"click\", \".filters-applied a\", function(event) {\n var id, target, type;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n id = target.data(\"id\") || null;\n type = target.data(\"type\");\n return toggleFilterSelection(type, id);\n });\n $el.on(\"click\", \".filter-list .single-filter\", function(event) {\n var id, target, type;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n target.toggleClass(\"active\");\n id = target.data(\"id\") || null;\n type = target.data(\"type\");\n if (type === \"myFilters\") {\n target.removeClass(\"active\");\n }\n return toggleFilterSelection(type, id);\n });\n $el.on(\"click\", \".filter-list .single-filter .icon-delete\", function(event) {\n var customFilterName, message, target, title;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n customFilterName = target.parent().data('id');\n title = \"Delete custom filter\";\n message = \"the custom filter '\" + customFilterName + \"'\";\n return $confirm.askOnDelete(title, message).then(function(finish) {\n var promise;\n promise = $ctrl.deleteMyFilter(customFilterName);\n promise.then(function() {\n promise = $ctrl.loadMyFilters();\n promise.then(function(filters) {\n finish();\n $scope.filters.myFilters = filters;\n return renderFilters($scope.filters.myFilters);\n });\n return promise.then(null, function() {\n return finish();\n });\n });\n return promise.then(null, function() {\n finish(false);\n return $confirm.notify(\"error\");\n });\n });\n });\n $el.on(\"click\", \".save-filters\", function(event) {\n event.preventDefault();\n renderFilters($scope.filters[\"myFilters\"]);\n showFilters(\"My filters\", \"myFilters\");\n $el.find('.save-filters').hide();\n $el.find('.my-filter-name').removeClass(\"hidden\");\n return $el.find('.my-filter-name').focus();\n });\n return $el.on(\"keyup\", \".my-filter-name\", function(event) {\n var newFilter, promise, target;\n event.preventDefault();\n if (event.keyCode === 13) {\n target = angular.element(event.currentTarget);\n newFilter = target.val();\n $loading.start($el.find(\".new\"));\n promise = $ctrl.saveCurrentFiltersTo(newFilter);\n promise.then(function() {\n var loadPromise;\n loadPromise = $ctrl.loadMyFilters();\n loadPromise.then(function(filters) {\n var currentfilterstype;\n $loading.finish($el.find(\".new\"));\n $scope.filters.myFilters = filters;\n currentfilterstype = $el.find(\"h2 a.subfilter span.title\").prop('data-type');\n if (currentfilterstype === \"myFilters\") {\n renderFilters($scope.filters.myFilters);\n }\n $el.find('.my-filter-name').addClass(\"hidden\");\n return $el.find('.save-filters').show();\n });\n return loadPromise.then(null, function() {\n $loading.finish($el.find(\".new\"));\n return $confirm.notify(\"error\", \"Error loading custom filters\");\n });\n });\n return promise.then(null, function() {\n $loading.finish($el.find(\".new\"));\n $el.find(\".my-filter-name\").val(newFilter).focus().select();\n return $confirm.notify(\"error\", \"Filter not saved\");\n });\n } else if (event.keyCode === 27) {\n $el.find('.my-filter-name').val('');\n $el.find('.my-filter-name').addClass(\"hidden\");\n return $el.find('.save-filters').show();\n }\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgIssuesFilters\", [\"$log\", \"$tgLocation\", \"$tgResources\", \"$tgConfirm\", \"$tgLoading\", \"$tgTemplate\", IssuesFiltersDirective]);\n\n IssueStatusInlineEditionDirective = function($repo, $template, $rootscope) {\n\n /*\n Print the status of an Issue and a popover to change it.\n - tg-issue-status-inline-edition: The issue\n \n Example:\n \n div.status(tg-issue-status-inline-edition=\"issue\")\n a.issue-status(href=\"\")\n \n NOTE: This directive need 'issueStatusById' and 'project'.\n */\n var link, selectionTemplate, updateIssueStatus;\n selectionTemplate = $template.get(\"issue/issue-status-inline-edition-selection.html\", true);\n updateIssueStatus = function($el, issue, issueStatusById) {\n var issueStatusDom, issueStatusDomParent, status;\n issueStatusDomParent = $el.find(\".issue-status\");\n issueStatusDom = $el.find(\".issue-status .issue-status-bind\");\n status = issueStatusById[issue.status];\n if (status) {\n issueStatusDom.text(status.name);\n issueStatusDom.prop(\"title\", status.name);\n return issueStatusDomParent.css('color', status.color);\n }\n };\n link = function($scope, $el, $attrs) {\n var $ctrl, issue;\n $ctrl = $el.controller();\n issue = $scope.$eval($attrs.tgIssueStatusInlineEdition);\n $el.on(\"click\", \".issue-status\", function(event) {\n event.preventDefault();\n event.stopPropagation();\n return $el.find(\".pop-status\").popover().open();\n });\n $el.on(\"click\", \".status\", function(event) {\n var filter, j, len, ref, target;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n ref = $scope.filters.statuses;\n for (j = 0, len = ref.length; j < len; j++) {\n filter = ref[j];\n if (filter.id === issue.status) {\n filter.count--;\n }\n }\n issue.status = target.data(\"status-id\");\n $el.find(\".pop-status\").popover().close();\n updateIssueStatus($el, issue, $scope.issueStatusById);\n return $scope.$apply(function() {\n var k, len1, ref1;\n $repo.save(issue).then;\n ref1 = $scope.filters.statuses;\n for (k = 0, len1 = ref1.length; k < len1; k++) {\n filter = ref1[k];\n if (filter.id === issue.status) {\n filter.count++;\n }\n }\n return $rootscope.$broadcast(\"filters:issueupdate\", $scope.filters);\n });\n });\n taiga.bindOnce($scope, \"project\", function(project) {\n $el.append(selectionTemplate({\n 'statuses': project.issue_statuses\n }));\n updateIssueStatus($el, issue, $scope.issueStatusById);\n if (project.my_permissions.indexOf(\"modify_issue\") === -1) {\n $el.unbind(\"click\");\n return $el.find(\"a\").addClass(\"not-clickable\");\n }\n });\n $scope.$watch($attrs.tgIssueStatusInlineEdition, (function(_this) {\n return function(val) {\n return updateIssueStatus($el, val, $scope.issueStatusById);\n };\n })(this));\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgIssueStatusInlineEdition\", [\"$tgRepo\", \"$tgTemplate\", \"$rootScope\", IssueStatusInlineEditionDirective]);\n\n IssueAssignedToInlineEditionDirective = function($repo, $rootscope, popoverService) {\n var link, template;\n template = _.template(\"\\\" alt=\\\"<%- name %>\\\"/>\\n
<%- name %>
\");\n link = function($scope, $el, $attrs) {\n var $ctrl, issue, updateIssue;\n updateIssue = function(issue) {\n var ctx, member;\n ctx = {\n name: \"Unassigned\",\n imgurl: \"/images/unnamed.png\"\n };\n member = $scope.usersById[issue.assigned_to];\n if (member) {\n ctx.imgurl = member.photo;\n ctx.name = member.full_name_display;\n }\n $el.find(\".avatar\").html(template(ctx));\n return $el.find(\".issue-assignedto\").attr('title', ctx.name);\n };\n $ctrl = $el.controller();\n issue = $scope.$eval($attrs.tgIssueAssignedToInlineEdition);\n updateIssue(issue);\n $el.on(\"click\", \".issue-assignedto\", function(event) {\n return $rootscope.$broadcast(\"assigned-to:add\", issue);\n });\n taiga.bindOnce($scope, \"project\", function(project) {\n if (project.my_permissions.indexOf(\"modify_issue\") === -1) {\n $el.unbind(\"click\");\n return $el.find(\"a\").addClass(\"not-clickable\");\n }\n });\n $scope.$on(\"assigned-to:added\", (function(_this) {\n return function(ctx, userId, updatedIssue) {\n if (updatedIssue.id === issue.id) {\n updatedIssue.assigned_to = userId;\n $repo.save(updatedIssue);\n return updateIssue(updatedIssue);\n }\n };\n })(this));\n $scope.$watch($attrs.tgIssueAssignedToInlineEdition, (function(_this) {\n return function(val) {\n return updateIssue(val);\n };\n })(this));\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgIssueAssignedToInlineEdition\", [\"$tgRepo\", \"$rootScope\", IssueAssignedToInlineEditionDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/memberships.coffee\n */\n\n(function() {\n var module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n resourceProvider = function($repo, $http, $urls) {\n var service;\n service = {};\n service.get = function(id) {\n return $repo.queryOne(\"memberships\", id);\n };\n service.list = function(projectId, filters, enablePagination) {\n var options, params;\n if (enablePagination == null) {\n enablePagination = true;\n }\n params = {\n project: projectId\n };\n params = _.extend({}, params, filters || {});\n if (enablePagination) {\n return $repo.queryPaginated(\"memberships\", params);\n }\n return $repo.queryMany(\"memberships\", params, options = {\n enablePagination: enablePagination\n });\n };\n service.listByUser = function(userId, filters) {\n var params;\n params = {\n user: userId\n };\n params = _.extend({}, params, filters || {});\n return $repo.queryPaginated(\"memberships\", params);\n };\n service.resendInvitation = function(id) {\n var url;\n url = $urls.resolve(\"memberships\");\n return $http.post(url + \"/\" + id + \"/resend_invitation\", {});\n };\n service.bulkCreateMemberships = function(projectId, data, invitation_extra_text) {\n var params, url;\n url = $urls.resolve(\"bulk-create-memberships\");\n params = {\n project_id: projectId,\n bulk_memberships: data,\n invitation_extra_text: invitation_extra_text\n };\n return $http.post(url, params);\n };\n return function(instance) {\n return instance.memberships = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgMembershipsResourcesProvider\", [\"$tgRepo\", \"$tgHttp\", \"$tgUrls\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/admin/project-profile.coffee\n */\n\n(function() {\n var CsvExporterController, CsvExporterIssuesController, CsvExporterTasksController, CsvExporterUserstoriesController, ProjectDefaultValuesDirective, ProjectExportDirective, ProjectModulesDirective, ProjectProfileController, ProjectProfileDirective, bindOnce, debounce, groupBy, joinStr, mixOf, module, taiga, toString, trim,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };\n\n taiga = this.taiga;\n\n mixOf = this.taiga.mixOf;\n\n trim = this.taiga.trim;\n\n toString = this.taiga.toString;\n\n joinStr = this.taiga.joinStr;\n\n groupBy = this.taiga.groupBy;\n\n bindOnce = this.taiga.bindOnce;\n\n debounce = this.taiga.debounce;\n\n module = angular.module(\"taigaAdmin\");\n\n ProjectProfileController = (function(superClass) {\n extend(ProjectProfileController, superClass);\n\n ProjectProfileController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgResources\", \"$routeParams\", \"$q\", \"$tgLocation\", \"$tgNavUrls\", \"$appTitle\"];\n\n function ProjectProfileController(scope, rootscope, repo, confirm, rs, params, q, location, navUrls, appTitle) {\n var promise;\n this.scope = scope;\n this.rootscope = rootscope;\n this.repo = repo;\n this.confirm = confirm;\n this.rs = rs;\n this.params = params;\n this.q = q;\n this.location = location;\n this.navUrls = navUrls;\n this.appTitle = appTitle;\n this.scope.project = {};\n promise = this.loadInitialData();\n promise.then((function(_this) {\n return function() {\n return _this.appTitle.set(\"Project profile - \" + _this.scope.sectionName + \" - \" + _this.scope.project.name);\n };\n })(this));\n promise.then(null, this.onInitialDataError.bind(this));\n this.scope.$on(\"project:loaded\", (function(_this) {\n return function() {\n return _this.appTitle.set(\"Project profile - \" + _this.scope.sectionName + \" - \" + _this.scope.project.name);\n };\n })(this));\n }\n\n ProjectProfileController.prototype.loadProject = function() {\n return this.rs.projects.get(this.scope.projectId).then((function(_this) {\n return function(project) {\n if (!project.i_am_owner) {\n _this.location.path(_this.navUrls.resolve(\"permission-denied\"));\n }\n _this.scope.project = project;\n _this.scope.pointsList = _.sortBy(project.points, \"order\");\n _this.scope.usStatusList = _.sortBy(project.us_statuses, \"order\");\n _this.scope.taskStatusList = _.sortBy(project.task_statuses, \"order\");\n _this.scope.prioritiesList = _.sortBy(project.priorities, \"order\");\n _this.scope.severitiesList = _.sortBy(project.severities, \"order\");\n _this.scope.issueTypesList = _.sortBy(project.issue_types, \"order\");\n _this.scope.issueStatusList = _.sortBy(project.issue_statuses, \"order\");\n _this.scope.$emit('project:loaded', project);\n return project;\n };\n })(this));\n };\n\n ProjectProfileController.prototype.loadInitialData = function() {\n var promise;\n promise = this.repo.resolve({\n pslug: this.params.pslug\n }).then((function(_this) {\n return function(data) {\n _this.scope.projectId = data.project;\n return data;\n };\n })(this));\n return promise.then((function(_this) {\n return function() {\n return _this.loadProject();\n };\n })(this));\n };\n\n ProjectProfileController.prototype.openDeleteLightbox = function() {\n return this.rootscope.$broadcast(\"deletelightbox:new\", this.scope.project);\n };\n\n return ProjectProfileController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin));\n\n module.controller(\"ProjectProfileController\", ProjectProfileController);\n\n ProjectProfileDirective = function($repo, $confirm, $loading, $navurls, $location) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, submit, submitButton;\n form = $el.find(\"form\").checksley({\n \"onlyOneErrorElement\": true\n });\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n $loading.start(submitButton);\n promise = $repo.save($scope.project);\n promise.then(function() {\n var newUrl;\n $loading.finish(submitButton);\n $confirm.notify(\"success\");\n newUrl = $navurls.resolve(\"project-admin-project-profile-details\", {\n project: $scope.project.slug\n });\n $location.path(newUrl);\n return $scope.$emit(\"project:loaded\", $scope.project);\n });\n return promise.then(null, function(data) {\n $loading.finish(target);\n form.setErrors(data);\n if (data._error_message) {\n return $confirm.notify(\"error\", data._error_message);\n }\n });\n };\n })(this));\n submitButton = $el.find(\".submit-button\");\n return $el.on(\"submit\", \"form\", submit);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgProjectProfile\", [\"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", \"$tgNavUrls\", \"$tgLocation\", ProjectProfileDirective]);\n\n ProjectDefaultValuesDirective = function($repo, $confirm, $loading) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, submit, submitButton;\n form = $el.find(\"form\").checksley({\n \"onlyOneErrorElement\": true\n });\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n $loading.start(submitButton);\n promise = $repo.save($scope.project);\n promise.then(function() {\n $loading.finish(submitButton);\n return $confirm.notify(\"success\");\n });\n return promise.then(null, function(data) {\n $loading.finish(target);\n form.setErrors(data);\n if (data._error_message) {\n return $confirm.notify(\"error\", data._error_message);\n }\n });\n };\n })(this));\n submitButton = $el.find(\".submit-button\");\n $el.on(\"submit\", \"form\", submit);\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgProjectDefaultValues\", [\"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", ProjectDefaultValuesDirective]);\n\n ProjectModulesDirective = function($repo, $confirm, $loading) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, submit;\n form = $el.find(\"form\").checksley();\n submit = (function(_this) {\n return function() {\n var promise, target;\n if (!form.validate()) {\n return;\n }\n target = angular.element(\".admin-functionalities a.button-green\");\n $loading.start(target);\n promise = $repo.save($scope.project);\n promise.then(function() {\n $loading.finish(target);\n $confirm.notify(\"success\");\n return $scope.$emit(\"project:loaded\", $scope.project);\n });\n return promise.then(null, function(data) {\n $loading.finish(target);\n return $confirm.notify(\"error\", data._error_message);\n });\n };\n })(this);\n $el.on(\"submit\", \"form\", function(event) {\n event.preventDefault();\n return submit();\n });\n $el.on(\"click\", \".admin-functionalities a.button-green\", function(event) {\n event.preventDefault();\n return submit();\n });\n $scope.$watch(\"isVideoconferenceActivated\", function(isVideoconferenceActivated) {\n if (isVideoconferenceActivated) {\n return $el.find(\".videoconference-attributes\").removeClass(\"hidden\");\n } else {\n $el.find(\".videoconference-attributes\").addClass(\"hidden\");\n $scope.project.videoconferences = null;\n return $scope.project.videoconferences_salt = \"\";\n }\n });\n return $scope.$watch(\"project\", function(project) {\n if (project.videoconferences != null) {\n return $scope.isVideoconferenceActivated = true;\n } else {\n return $scope.isVideoconferenceActivated = false;\n }\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgProjectModules\", [\"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", ProjectModulesDirective]);\n\n ProjectExportDirective = function($window, $rs, $confirm) {\n var link;\n link = function($scope, $el, $attrs) {\n var buttonsEl, hideButtons, hideResult, hideSpinner, resultEl, resultMessageEl, resultTitleEl, setAsyncMessage, setAsyncTitle, setLoadingMessage, setLoadingTitle, setSyncMessage, setSyncTitle, showButtons, showErrorMode, showExportResultAsyncMode, showExportResultSyncMode, showLoadingMode, showResult, showSpinner, spinnerEl;\n buttonsEl = $el.find(\".admin-project-export-buttons\");\n showButtons = function() {\n return buttonsEl.removeClass(\"hidden\");\n };\n hideButtons = function() {\n return buttonsEl.addClass(\"hidden\");\n };\n resultEl = $el.find(\".admin-project-export-result\");\n showResult = function() {\n return resultEl.removeClass(\"hidden\");\n };\n hideResult = function() {\n return resultEl.addClass(\"hidden\");\n };\n spinnerEl = $el.find(\".spin\");\n showSpinner = function() {\n return spinnerEl.removeClass(\"hidden\");\n };\n hideSpinner = function() {\n return spinnerEl.addClass(\"hidden\");\n };\n resultTitleEl = $el.find(\".result-title\");\n setLoadingTitle = function() {\n return resultTitleEl.html(\"We are generating your dump file\");\n };\n setAsyncTitle = function() {\n return resultTitleEl.html(\"We are generating your dump file\");\n };\n setSyncTitle = function() {\n return resultTitleEl.html(\"Your dump file is ready!\");\n };\n resultMessageEl = $el.find(\".result-message \");\n setLoadingMessage = function() {\n return resultMessageEl.html(\"Please don't close this page.\");\n };\n setAsyncMessage = function() {\n return resultMessageEl.html(\"We will send you an email when ready.\");\n };\n setSyncMessage = function(url) {\n return resultMessageEl.html(\"If the download doesn't start automatically click here.\");\n };\n showLoadingMode = function() {\n showSpinner();\n setLoadingTitle();\n setLoadingMessage();\n hideButtons();\n return showResult();\n };\n showExportResultAsyncMode = function() {\n hideSpinner();\n setAsyncTitle();\n return setAsyncMessage();\n };\n showExportResultSyncMode = function(url) {\n hideSpinner();\n setSyncTitle();\n return setSyncMessage(url);\n };\n showErrorMode = function() {\n hideSpinner();\n hideResult();\n return showButtons();\n };\n return $el.on(\"click\", \"a.button-export\", debounce(2000, (function(_this) {\n return function(event) {\n var onError, onSuccess;\n event.preventDefault();\n onSuccess = function(result) {\n var dumpUrl;\n if (result.status === 202) {\n return showExportResultAsyncMode();\n } else {\n dumpUrl = result.data.url;\n showExportResultSyncMode(dumpUrl);\n return $window.open(dumpUrl, \"_blank\");\n }\n };\n onError = function(result) {\n var errorMsg, ref;\n showErrorMode();\n errorMsg = \"Our oompa loompas have some problems generasting your dump. Please try again. \";\n if (result.status === 429) {\n errorMsg = \"Sorry, our oompa loompas are very busy right now. Please try again in a few minutes. \";\n } else if ((ref = result.data) != null ? ref._error_message : void 0) {\n errorMsg = \"Our oompa loompas have some problems generasting your dump: \" + result.data._error_message;\n }\n return $confirm.notify(\"error\", errorMsg);\n };\n showLoadingMode();\n return $rs.projects[\"export\"]($scope.projectId).then(onSuccess, onError);\n };\n })(this)));\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgProjectExport\", [\"$window\", \"$tgResources\", \"$tgConfirm\", ProjectExportDirective]);\n\n CsvExporterController = (function(superClass) {\n extend(CsvExporterController, superClass);\n\n CsvExporterController.$inject = [\"$scope\", \"$rootScope\", \"$tgUrls\", \"$tgConfirm\", \"$tgResources\"];\n\n function CsvExporterController(scope, rootscope, urls, confirm, rs) {\n this.scope = scope;\n this.rootscope = rootscope;\n this.urls = urls;\n this.confirm = confirm;\n this.rs = rs;\n this._generateUuid = bind(this._generateUuid, this);\n this.setCsvUuid = bind(this.setCsvUuid, this);\n this.rootscope.$on(\"project:loaded\", this.setCsvUuid);\n this.scope.$watch(\"csvUuid\", (function(_this) {\n return function(value) {\n if (value) {\n return _this.scope.csvUrl = _this.urls.resolveAbsolute(_this.type + \"-csv\", value);\n } else {\n return _this.scope.csvUrl = \"\";\n }\n };\n })(this));\n }\n\n CsvExporterController.prototype.setCsvUuid = function() {\n return this.scope.csvUuid = this.scope.project[this.type + \"_csv_uuid\"];\n };\n\n CsvExporterController.prototype._generateUuid = function(finish) {\n var promise;\n promise = this.rs.projects[\"regenerate_\" + this.type + \"_csv_uuid\"](this.scope.projectId);\n promise.then((function(_this) {\n return function(data) {\n var ref;\n return _this.scope.csvUuid = (ref = data.data) != null ? ref.uuid : void 0;\n };\n })(this));\n promise.then(null, (function(_this) {\n return function() {\n return _this.confirm.notify(\"error\");\n };\n })(this));\n promise[\"finally\"](function() {\n return finish();\n });\n return promise;\n };\n\n CsvExporterController.prototype.regenerateUuid = function() {\n var subtitle, title;\n if (this.scope.csvUuid) {\n title = \"Change URL\";\n subtitle = \"You going to change the CSV data access url. The previous url will be disabled. Are you sure?\";\n return this.confirm.ask(title, subtitle).then(this._generateUuid);\n } else {\n return this._generateUuid(_.identity);\n }\n };\n\n return CsvExporterController;\n\n })(taiga.Controller);\n\n CsvExporterUserstoriesController = (function(superClass) {\n extend(CsvExporterUserstoriesController, superClass);\n\n function CsvExporterUserstoriesController() {\n return CsvExporterUserstoriesController.__super__.constructor.apply(this, arguments);\n }\n\n CsvExporterUserstoriesController.prototype.type = \"userstories\";\n\n return CsvExporterUserstoriesController;\n\n })(CsvExporterController);\n\n CsvExporterTasksController = (function(superClass) {\n extend(CsvExporterTasksController, superClass);\n\n function CsvExporterTasksController() {\n return CsvExporterTasksController.__super__.constructor.apply(this, arguments);\n }\n\n CsvExporterTasksController.prototype.type = \"tasks\";\n\n return CsvExporterTasksController;\n\n })(CsvExporterController);\n\n CsvExporterIssuesController = (function(superClass) {\n extend(CsvExporterIssuesController, superClass);\n\n function CsvExporterIssuesController() {\n return CsvExporterIssuesController.__super__.constructor.apply(this, arguments);\n }\n\n CsvExporterIssuesController.prototype.type = \"issues\";\n\n return CsvExporterIssuesController;\n\n })(CsvExporterController);\n\n module.controller(\"CsvExporterUserstoriesController\", CsvExporterUserstoriesController);\n\n module.controller(\"CsvExporterTasksController\", CsvExporterTasksController);\n\n module.controller(\"CsvExporterIssuesController\", CsvExporterIssuesController);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/admin/project-profile.coffee\n */\n\n(function() {\n var ColorSelectionDirective, ProjectCustomAttributesController, ProjectCustomAttributesDirective, ProjectValuesController, ProjectValuesDirective, ProjectValuesSectionController, bindOnce, debounce, groupBy, joinStr, mixOf, module, taiga, toString, trim,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };\n\n taiga = this.taiga;\n\n mixOf = this.taiga.mixOf;\n\n trim = this.taiga.trim;\n\n toString = this.taiga.toString;\n\n joinStr = this.taiga.joinStr;\n\n groupBy = this.taiga.groupBy;\n\n bindOnce = this.taiga.bindOnce;\n\n debounce = this.taiga.debounce;\n\n module = angular.module(\"taigaAdmin\");\n\n ProjectValuesSectionController = (function(superClass) {\n extend(ProjectValuesSectionController, superClass);\n\n ProjectValuesSectionController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgResources\", \"$routeParams\", \"$q\", \"$tgLocation\", \"$tgNavUrls\", \"$appTitle\"];\n\n function ProjectValuesSectionController(scope, rootscope, repo, confirm, rs, params, q, location, navUrls, appTitle) {\n var promise;\n this.scope = scope;\n this.rootscope = rootscope;\n this.repo = repo;\n this.confirm = confirm;\n this.rs = rs;\n this.params = params;\n this.q = q;\n this.location = location;\n this.navUrls = navUrls;\n this.appTitle = appTitle;\n this.scope.project = {};\n promise = this.loadInitialData();\n promise.then((function(_this) {\n return function() {\n return _this.appTitle.set(\"Project values - \" + _this.scope.sectionName + \" - \" + _this.scope.project.name);\n };\n })(this));\n promise.then(null, this.onInitialDataError.bind(this));\n }\n\n ProjectValuesSectionController.prototype.loadProject = function() {\n return this.rs.projects.get(this.scope.projectId).then((function(_this) {\n return function(project) {\n if (!project.i_am_owner) {\n _this.location.path(_this.navUrls.resolve(\"permission-denied\"));\n }\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n return project;\n };\n })(this));\n };\n\n ProjectValuesSectionController.prototype.loadInitialData = function() {\n var promise;\n promise = this.repo.resolve({\n pslug: this.params.pslug\n }).then((function(_this) {\n return function(data) {\n _this.scope.projectId = data.project;\n return data;\n };\n })(this));\n return promise.then((function(_this) {\n return function() {\n return _this.loadProject();\n };\n })(this));\n };\n\n return ProjectValuesSectionController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin));\n\n module.controller(\"ProjectValuesSectionController\", ProjectValuesSectionController);\n\n ProjectValuesController = (function(superClass) {\n extend(ProjectValuesController, superClass);\n\n ProjectValuesController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgResources\"];\n\n function ProjectValuesController(scope, rootscope, repo, confirm, rs) {\n this.scope = scope;\n this.rootscope = rootscope;\n this.repo = repo;\n this.confirm = confirm;\n this.rs = rs;\n this.moveValue = bind(this.moveValue, this);\n this.loadValues = bind(this.loadValues, this);\n this.scope.$on(\"admin:project-values:move\", this.moveValue);\n this.rootscope.$on(\"project:loaded\", this.loadValues);\n }\n\n ProjectValuesController.prototype.loadValues = function() {\n return this.rs[this.scope.resource].listValues(this.scope.projectId, this.scope.type).then((function(_this) {\n return function(values) {\n _this.scope.values = values;\n _this.scope.maxValueOrder = _.max(values, \"order\").order;\n return values;\n };\n })(this));\n };\n\n ProjectValuesController.prototype.moveValue = function(ctx, itemValue, itemIndex) {\n var r, values;\n values = this.scope.values;\n r = values.indexOf(itemValue);\n values.splice(r, 1);\n values.splice(itemIndex, 0, itemValue);\n _.each(values, function(value, index) {\n return value.order = index;\n });\n return this.repo.saveAll(values);\n };\n\n return ProjectValuesController;\n\n })(taiga.Controller);\n\n module.controller(\"ProjectValuesController\", ProjectValuesController);\n\n ProjectValuesDirective = function($log, $repo, $confirm, $location, animationFrame) {\n var link, linkDragAndDrop, linkValue;\n linkDragAndDrop = function($scope, $el, $attrs) {\n var itemEl, newParentScope, oldParentScope, tdom;\n oldParentScope = null;\n newParentScope = null;\n itemEl = null;\n tdom = $el.find(\".sortable\");\n tdom.sortable({\n handle: \".row.table-main.visualization\",\n dropOnEmpty: true,\n connectWith: \".project-values-body\",\n revert: 400,\n axis: \"y\"\n });\n tdom.on(\"sortstop\", function(event, ui) {\n var itemIndex, itemValue;\n itemEl = ui.item;\n itemValue = itemEl.scope().value;\n itemIndex = itemEl.index();\n return $scope.$broadcast(\"admin:project-values:move\", itemValue, itemIndex);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n linkValue = function($scope, $el, $attrs) {\n var $ctrl, cancel, goToBottomList, initializeNewValue, saveNewValue, saveValue, valueType;\n $ctrl = $el.controller();\n valueType = $attrs.type;\n initializeNewValue = function() {\n return $scope.newValue = {\n \"name\": \"\",\n \"is_closed\": false,\n \"is_archived\": false\n };\n };\n initializeNewValue();\n goToBottomList = (function(_this) {\n return function(focus) {\n var table;\n if (focus == null) {\n focus = false;\n }\n table = $el.find(\".table-main\");\n $(document.body).scrollTop(table.offset().top + table.height());\n if (focus) {\n return $el.find(\".new-value input:visible\").first().focus();\n }\n };\n })(this);\n saveValue = function(target) {\n var form, formEl, promise, value;\n formEl = target.parents(\"form\");\n form = formEl.checksley();\n if (!form.validate()) {\n return;\n }\n value = formEl.scope().value;\n promise = $repo.save(value);\n promise.then((function(_this) {\n return function() {\n var row;\n row = target.parents(\".row.table-main\");\n row.addClass(\"hidden\");\n return row.siblings(\".visualization\").removeClass('hidden');\n };\n })(this));\n return promise.then(null, function(data) {\n return form.setErrors(data);\n });\n };\n saveNewValue = function(target) {\n var form, formEl, promise;\n formEl = target.parents(\"form\");\n form = formEl.checksley();\n if (!form.validate()) {\n return;\n }\n $scope.newValue.project = $scope.project.id;\n $scope.newValue.order = $scope.maxValueOrder ? $scope.maxValueOrder + 1 : 1;\n promise = $repo.create(valueType, $scope.newValue);\n promise.then((function(_this) {\n return function(data) {\n target.addClass(\"hidden\");\n $scope.values.push(data);\n $scope.maxValueOrder = data.order;\n return initializeNewValue();\n };\n })(this));\n return promise.then(null, function(data) {\n return form.setErrors(data);\n });\n };\n cancel = function(target) {\n var formEl, row, value;\n row = target.parents(\".row.table-main\");\n formEl = target.parents(\"form\");\n value = formEl.scope().value;\n return $scope.$apply(function() {\n row.addClass(\"hidden\");\n value.revert();\n return row.siblings(\".visualization\").removeClass('hidden');\n });\n };\n $el.on(\"click\", \".show-add-new\", function(event) {\n event.preventDefault();\n $el.find(\".new-value\").removeClass('hidden');\n return goToBottomList(true);\n });\n $el.on(\"click\", \".add-new\", debounce(2000, function(event) {\n var target;\n event.preventDefault();\n target = $el.find(\".new-value\");\n return saveNewValue(target);\n }));\n $el.on(\"click\", \".delete-new\", function(event) {\n event.preventDefault();\n $el.find(\".new-value\").addClass(\"hidden\");\n return initializeNewValue();\n });\n $el.on(\"click\", \".edit-value\", function(event) {\n var editionRow, row, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n row = target.parents(\".row.table-main\");\n row.addClass(\"hidden\");\n editionRow = row.siblings(\".edition\");\n editionRow.removeClass('hidden');\n return editionRow.find('input:visible').first().focus().select();\n });\n $el.on(\"keyup\", \".edition input\", function(event) {\n var target;\n if (event.keyCode === 13) {\n target = angular.element(event.currentTarget);\n return saveValue(target);\n } else if (event.keyCode === 27) {\n target = angular.element(event.currentTarget);\n return cancel(target);\n }\n });\n $el.on(\"keyup\", \".new-value input\", function(event) {\n var target;\n if (event.keyCode === 13) {\n target = $el.find(\".new-value\");\n return saveNewValue(target);\n } else if (event.keyCode === 27) {\n $el.find(\".new-value\").addClass(\"hidden\");\n return initializeNewValue();\n }\n });\n $el.on(\"click\", \".save\", function(event) {\n var target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n return saveValue(target);\n });\n $el.on(\"click\", \".cancel\", function(event) {\n var target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n return cancel(target);\n });\n return $el.on(\"click\", \".delete-value\", function(event) {\n var choices, formEl, replacement, subtitle, target, title, value;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n formEl = target.parents(\"form\");\n value = formEl.scope().value;\n choices = {};\n _.each($scope.values, function(option) {\n if (value.id !== option.id) {\n return choices[option.id] = option.name;\n }\n });\n title = \"Delete value\";\n subtitle = value.name;\n replacement = \"All items with this value will be changed to\";\n if (_.keys(choices).length === 0) {\n return $confirm.error(\"You can't delete all values.\");\n }\n return $confirm.askChoice(title, subtitle, choices, replacement).then(function(response) {\n var onError, onSucces;\n onSucces = function() {\n return $ctrl.loadValues()[\"finally\"](function() {\n return response.finish();\n });\n };\n onError = function() {\n return $confirm.notify(\"error\");\n };\n return $repo.remove(value, {\n \"moveTo\": response.selected\n }).then(onSucces, onError);\n });\n });\n };\n link = function($scope, $el, $attrs) {\n linkDragAndDrop($scope, $el, $attrs);\n linkValue($scope, $el, $attrs);\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgProjectValues\", [\"$log\", \"$tgRepo\", \"$tgConfirm\", \"$tgLocation\", \"animationFrame\", ProjectValuesDirective]);\n\n ColorSelectionDirective = function() {\n var link;\n link = function($scope, $el, $attrs, $model) {\n var $ctrl;\n $ctrl = $el.controller();\n $scope.$watch($attrs.ngModel, function(element) {\n return $scope.color = element.color;\n });\n $el.on(\"click\", \".current-color\", function(event) {\n var body, target;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n $el.find(\".select-color\").hide();\n target.siblings(\".select-color\").show();\n body = angular.element(\"body\");\n return body.on(\"click\", (function(_this) {\n return function(event) {\n if (angular.element(event.target).parent(\".select-color\").length === 0) {\n $el.find(\".select-color\").hide();\n return body.unbind(\"click\");\n }\n };\n })(this));\n });\n $el.on(\"click\", \".select-color .color\", function(event) {\n var target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n $scope.$apply(function() {\n return $model.$modelValue.color = target.data(\"color\");\n });\n return $el.find(\".select-color\").hide();\n });\n $el.on(\"click\", \".select-color .selected-color\", function(event) {\n event.preventDefault();\n $scope.$apply(function() {\n return $model.$modelValue.color = $scope.color;\n });\n return $el.find(\".select-color\").hide();\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgColorSelection\", ColorSelectionDirective);\n\n ProjectCustomAttributesController = (function(superClass) {\n extend(ProjectCustomAttributesController, superClass);\n\n ProjectCustomAttributesController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgResources\", \"$routeParams\", \"$q\", \"$tgLocation\", \"$tgNavUrls\", \"$appTitle\"];\n\n function ProjectCustomAttributesController(scope, rootscope, repo, rs, params, q, location, navUrls, appTitle) {\n this.scope = scope;\n this.rootscope = rootscope;\n this.repo = repo;\n this.rs = rs;\n this.params = params;\n this.q = q;\n this.location = location;\n this.navUrls = navUrls;\n this.appTitle = appTitle;\n this.moveCustomAttributes = bind(this.moveCustomAttributes, this);\n this.deleteCustomAttribute = bind(this.deleteCustomAttribute, this);\n this.saveCustomAttribute = bind(this.saveCustomAttribute, this);\n this.createCustomAttribute = bind(this.createCustomAttribute, this);\n this.loadCustomAttributes = bind(this.loadCustomAttributes, this);\n this.scope.project = {};\n this.rootscope.$on(\"project:loaded\", (function(_this) {\n return function() {\n _this.loadCustomAttributes();\n return _this.appTitle.set(\"Project Custom Attributes - \" + _this.scope.sectionName + \" - \" + _this.scope.project.name);\n };\n })(this));\n }\n\n ProjectCustomAttributesController.prototype.loadCustomAttributes = function() {\n return this.rs.customAttributes[this.scope.type].list(this.scope.projectId).then((function(_this) {\n return function(customAttributes) {\n _this.scope.customAttributes = customAttributes;\n _this.scope.maxOrder = _.max(customAttributes, \"order\").order;\n return customAttributes;\n };\n })(this));\n };\n\n ProjectCustomAttributesController.prototype.createCustomAttribute = function(attrValues) {\n return this.repo.create(\"custom-attributes/\" + this.scope.type, attrValues);\n };\n\n ProjectCustomAttributesController.prototype.saveCustomAttribute = function(attrModel) {\n return this.repo.save(attrModel);\n };\n\n ProjectCustomAttributesController.prototype.deleteCustomAttribute = function(attrModel) {\n return this.repo.remove(attrModel);\n };\n\n ProjectCustomAttributesController.prototype.moveCustomAttributes = function(attrModel, newIndex) {\n var customAttributes, r;\n customAttributes = this.scope.customAttributes;\n r = customAttributes.indexOf(attrModel);\n customAttributes.splice(r, 1);\n customAttributes.splice(newIndex, 0, attrModel);\n _.each(customAttributes, function(val, idx) {\n return val.order = idx;\n });\n return this.repo.saveAll(customAttributes);\n };\n\n return ProjectCustomAttributesController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin));\n\n module.controller(\"ProjectCustomAttributesController\", ProjectCustomAttributesController);\n\n ProjectCustomAttributesDirective = function($log, $confirm, animationFrame) {\n var link;\n link = function($scope, $el, $attrs) {\n var $ctrl, cancelCreate, cancelUpdate, create, deleteCustomAttribute, hideAddButton, hideCancelButton, hideCreateForm, hideEditForm, resetNewAttr, revertChangesInCustomAttribute, showAddButton, showCancelButton, showCreateForm, showEditForm, sortableEl, update;\n $ctrl = $el.controller();\n $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n sortableEl = $el.find(\".js-sortable\");\n sortableEl.sortable({\n handle: \".js-view-custom-field\",\n dropOnEmpty: true,\n revert: 400,\n axis: \"y\"\n });\n sortableEl.on(\"sortstop\", function(event, ui) {\n var itemAttr, itemEl, itemIndex;\n itemEl = ui.item;\n itemAttr = itemEl.scope().attr;\n itemIndex = itemEl.index();\n return $ctrl.moveCustomAttributes(itemAttr, itemIndex);\n });\n showCreateForm = function() {\n $el.find(\".js-new-custom-field\").removeClass(\"hidden\");\n return $el.find(\".js-new-custom-field input:visible\").first().focus();\n };\n hideCreateForm = function() {\n return $el.find(\".js-new-custom-field\").addClass(\"hidden\");\n };\n showAddButton = function() {\n return $el.find(\".js-add-custom-field-button\").removeClass(\"hidden\");\n };\n hideAddButton = function() {\n return $el.find(\".js-add-custom-field-button\").addClass(\"hidden\");\n };\n showCancelButton = function() {\n return $el.find(\".js-cancel-new-custom-field-button\").removeClass(\"hidden\");\n };\n hideCancelButton = function() {\n return $el.find(\".js-cancel-new-custom-field-button\").addClass(\"hidden\");\n };\n resetNewAttr = function() {\n return $scope.newAttr = {};\n };\n create = function(formEl) {\n var attr, form, onError, onSucces;\n form = formEl.checksley();\n if (!form.validate()) {\n return;\n }\n onSucces = (function(_this) {\n return function() {\n $ctrl.loadCustomAttributes();\n hideCreateForm();\n resetNewAttr();\n return $confirm.notify(\"success\");\n };\n })(this);\n onError = (function(_this) {\n return function(data) {\n return form.setErrors(data);\n };\n })(this);\n attr = $scope.newAttr;\n attr.project = $scope.projectId;\n attr.order = $scope.maxOrder ? $scope.maxOrder + 1 : 1;\n return $ctrl.createCustomAttribute(attr).then(onSucces, onError);\n };\n cancelCreate = function() {\n hideCreateForm();\n return resetNewAttr();\n };\n $scope.$watch(\"customAttributes\", function(customAttributes) {\n if (!customAttributes) {\n return;\n }\n if (customAttributes.length === 0) {\n hideCancelButton();\n hideAddButton();\n return showCreateForm();\n } else {\n hideCreateForm();\n showAddButton();\n return showCancelButton();\n }\n });\n $el.on(\"click\", \".js-add-custom-field-button\", function(event) {\n event.preventDefault();\n return showCreateForm();\n });\n $el.on(\"click\", \".js-create-custom-field-button\", debounce(2000, function(event) {\n var formEl, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n formEl = target.closest(\"form\");\n return create(formEl);\n }));\n $el.on(\"click\", \".js-cancel-new-custom-field-button\", function(event) {\n event.preventDefault();\n return cancelCreate();\n });\n $el.on(\"keyup\", \".js-new-custom-field input\", function(event) {\n var formEl, target;\n if (event.keyCode === 13) {\n target = angular.element(event.currentTarget);\n formEl = target.closest(\"form\");\n return create(formEl);\n } else if (event.keyCode === 27) {\n return cancelCreate();\n }\n });\n showEditForm = function(formEl) {\n formEl.find(\".js-view-custom-field\").addClass(\"hidden\");\n formEl.find(\".js-edit-custom-field\").removeClass(\"hidden\");\n return formEl.find(\".js-edit-custom-field input:visible\").first().focus().select();\n };\n hideEditForm = function(formEl) {\n formEl.find(\".js-edit-custom-field\").addClass(\"hidden\");\n return formEl.find(\".js-view-custom-field\").removeClass(\"hidden\");\n };\n revertChangesInCustomAttribute = function(formEl) {\n return $scope.$apply(function() {\n return formEl.scope().attr.revert();\n });\n };\n update = function(formEl) {\n var attr, form, onError, onSucces;\n form = formEl.checksley();\n if (!form.validate()) {\n return;\n }\n onSucces = (function(_this) {\n return function() {\n $ctrl.loadCustomAttributes();\n hideEditForm(formEl);\n return $confirm.notify(\"success\");\n };\n })(this);\n onError = (function(_this) {\n return function(data) {\n return form.setErrors(data);\n };\n })(this);\n attr = formEl.scope().attr;\n return $ctrl.saveCustomAttribute(attr).then(onSucces, onError);\n };\n cancelUpdate = function(formEl) {\n hideEditForm(formEl);\n return revertChangesInCustomAttribute(formEl);\n };\n $el.on(\"click\", \".js-edit-custom-field-button\", function(event) {\n var formEl, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n formEl = target.closest(\"form\");\n return showEditForm(formEl);\n });\n $el.on(\"click\", \".js-update-custom-field-button\", debounce(2000, function(event) {\n var formEl, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n formEl = target.closest(\"form\");\n return update(formEl);\n }));\n $el.on(\"click\", \".js-cancel-edit-custom-field-button\", function(event) {\n var formEl, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n formEl = target.closest(\"form\");\n return cancelUpdate(formEl);\n });\n $el.on(\"keyup\", \".js-edit-custom-field input\", function(event) {\n var formEl, target;\n if (event.keyCode === 13) {\n target = angular.element(event.currentTarget);\n formEl = target.closest(\"form\");\n return update(formEl);\n } else if (event.keyCode === 27) {\n target = angular.element(event.currentTarget);\n formEl = target.closest(\"form\");\n return cancelUpdate(formEl);\n }\n });\n deleteCustomAttribute = function(formEl) {\n var attr, message, subtitle, title;\n attr = formEl.scope().attr;\n title = \"Delete custom attribute\";\n subtitle = \"Remeber that all values in this custom field will be deleted.
Are you sure you want to continue?\";\n message = attr.name;\n return $confirm.ask(title, subtitle, message).then(function(finish) {\n var onError, onSucces;\n onSucces = function() {\n return $ctrl.loadCustomAttributes()[\"finally\"](function() {\n return finish();\n });\n };\n onError = function() {\n finish(false);\n return $confirm.notify(\"error\", null, \"We have not been able to delete '\" + message + \"'.\");\n };\n return $ctrl.deleteCustomAttribute(attr).then(onSucces, onError);\n });\n };\n return $el.on(\"click\", \".js-delete-custom-field-button\", debounce(2000, function(event) {\n var formEl, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n formEl = target.closest(\"form\");\n return deleteCustomAttribute(formEl);\n }));\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgProjectCustomAttributes\", [\"$log\", \"$tgConfirm\", \"animationFrame\", ProjectCustomAttributesDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/memberships.coffee\n */\n\n(function() {\n var module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n resourceProvider = function($repo, $http, $urls) {\n var service;\n service = {};\n service.get = function(id) {\n return $repo.queryOne(\"roles\", id);\n };\n service.list = function(projectId) {\n return $repo.queryMany(\"roles\", {\n project: projectId\n });\n };\n return function(instance) {\n return instance.roles = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgRolesResourcesProvider\", [\"$tgRepo\", \"$tgHttp\", \"$tgUrls\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/admin/third-parties.coffee\n */\n\n(function() {\n var BitbucketController, BitbucketWebhooksDirective, GithubController, GithubWebhooksDirective, GitlabController, GitlabWebhooksDirective, NewWebhookDirective, SelectInputText, ValidOriginIpsDirective, WebhookDirective, WebhooksController, bindMethods, debounce, mixOf, module, taiga, timeout,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n mixOf = this.taiga.mixOf;\n\n bindMethods = this.taiga.bindMethods;\n\n debounce = this.taiga.debounce;\n\n timeout = this.taiga.timeout;\n\n module = angular.module(\"taigaAdmin\");\n\n WebhooksController = (function(superClass) {\n extend(WebhooksController, superClass);\n\n WebhooksController.$inject = [\"$scope\", \"$tgRepo\", \"$tgResources\", \"$routeParams\", \"$tgLocation\", \"$tgNavUrls\", \"$appTitle\"];\n\n function WebhooksController(scope, repo, rs, params, location, navUrls, appTitle) {\n var promise;\n this.scope = scope;\n this.repo = repo;\n this.rs = rs;\n this.params = params;\n this.location = location;\n this.navUrls = navUrls;\n this.appTitle = appTitle;\n bindMethods(this);\n this.scope.sectionName = \"Webhooks\";\n this.scope.project = {};\n promise = this.loadInitialData();\n promise.then((function(_this) {\n return function() {\n return _this.appTitle.set(\"Webhooks - \" + _this.scope.project.name);\n };\n })(this));\n promise.then(null, this.onInitialDataError.bind(this));\n this.scope.$on(\"webhooks:reload\", this.loadWebhooks);\n }\n\n WebhooksController.prototype.loadWebhooks = function() {\n return this.rs.webhooks.list(this.scope.projectId).then((function(_this) {\n return function(webhooks) {\n return _this.scope.webhooks = webhooks;\n };\n })(this));\n };\n\n WebhooksController.prototype.loadProject = function() {\n return this.rs.projects.get(this.scope.projectId).then((function(_this) {\n return function(project) {\n if (!project.i_am_owner) {\n _this.location.path(_this.navUrls.resolve(\"permission-denied\"));\n }\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n return project;\n };\n })(this));\n };\n\n WebhooksController.prototype.loadInitialData = function() {\n var promise;\n promise = this.repo.resolve({\n pslug: this.params.pslug\n }).then((function(_this) {\n return function(data) {\n _this.scope.projectId = data.project;\n return data;\n };\n })(this));\n return promise.then((function(_this) {\n return function() {\n return _this.loadProject();\n };\n })(this)).then((function(_this) {\n return function() {\n return _this.loadWebhooks();\n };\n })(this));\n };\n\n return WebhooksController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin, taiga.FiltersMixin));\n\n module.controller(\"WebhooksController\", WebhooksController);\n\n WebhookDirective = function($rs, $repo, $confirm, $loading) {\n var link;\n link = function($scope, $el, $attrs) {\n var cancel, openHistory, save, showEditMode, showVisualizationMode, updateLogs, updateShowHideHistoryText, webhook;\n webhook = $scope.$eval($attrs.tgWebhook);\n updateLogs = function() {\n return $rs.webhooklogs.list(webhook.id).then((function(_this) {\n return function(webhooklogs) {\n var i, len, log, ref;\n for (i = 0, len = webhooklogs.length; i < len; i++) {\n log = webhooklogs[i];\n log.validStatus = (200 <= (ref = log.status) && ref < 300);\n log.prettySentHeaders = _.map(_.pairs(log.request_headers), function(arg) {\n var header, value;\n header = arg[0], value = arg[1];\n return header + \": \" + value;\n }).join(\"\\n\");\n log.prettySentData = JSON.stringify(log.request_data);\n log.prettyDate = moment(log.created).format(\"DD MMM YYYY [at] hh:mm:ss\");\n }\n webhook.logs_counter = webhooklogs.length;\n webhook.logs = webhooklogs;\n return updateShowHideHistoryText();\n };\n })(this));\n };\n updateShowHideHistoryText = function() {\n var historyElement, textElement;\n textElement = $el.find(\".toggle-history\");\n historyElement = textElement.parents(\".single-webhook-wrapper\").find(\".webhooks-history\");\n if (historyElement.hasClass(\"open\")) {\n return textElement.text(\"(Hide history)\");\n } else {\n return textElement.text(\"(Show history)\");\n }\n };\n showVisualizationMode = function() {\n $el.find(\".edition-mode\").addClass(\"hidden\");\n return $el.find(\".visualization-mode\").removeClass(\"hidden\");\n };\n showEditMode = function() {\n $el.find(\".visualization-mode\").addClass(\"hidden\");\n return $el.find(\".edition-mode\").removeClass(\"hidden\");\n };\n openHistory = function() {\n return $el.find(\".webhooks-history\").addClass(\"open\");\n };\n cancel = function() {\n showVisualizationMode();\n return $scope.$apply(function() {\n return webhook.revert();\n });\n };\n save = debounce(2000, function(target) {\n var form, promise;\n form = target.parents(\"form\").checksley();\n if (!form.validate()) {\n return;\n }\n promise = $repo.save(webhook);\n promise.then((function(_this) {\n return function() {\n return showVisualizationMode();\n };\n })(this));\n return promise.then(null, function(data) {\n $confirm.notify(\"error\");\n return form.setErrors(data);\n });\n });\n $el.on(\"click\", \".test-webhook\", function() {\n openHistory();\n return $rs.webhooks.test(webhook.id).then((function(_this) {\n return function() {\n return updateLogs();\n };\n })(this));\n });\n $el.on(\"click\", \".edit-webhook\", function() {\n return showEditMode();\n });\n $el.on(\"click\", \".cancel-existing\", function() {\n return cancel();\n });\n $el.on(\"click\", \".edit-existing\", function(event) {\n var target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n return save(target);\n });\n $el.on(\"keyup\", \".edition-mode input\", function(event) {\n var target;\n if (event.keyCode === 13) {\n target = angular.element(event.currentTarget);\n return save(target);\n } else if (event.keyCode === 27) {\n target = angular.element(event.currentTarget);\n return cancel(target);\n }\n });\n $el.on(\"click\", \".delete-webhook\", function() {\n var message, title;\n title = \"Delete webhook\";\n message = \"Webhook '\" + webhook.name + \"'\";\n return $confirm.askOnDelete(title, message).then((function(_this) {\n return function(finish) {\n var onError, onSucces;\n onSucces = function() {\n finish();\n return $scope.$emit(\"webhooks:reload\");\n };\n onError = function() {\n finish(false);\n return $confirm.notify(\"error\");\n };\n return $repo.remove(webhook).then(onSucces, onError);\n };\n })(this));\n });\n $el.on(\"click\", \".toggle-history\", function(event) {\n var target;\n target = angular.element(event.currentTarget);\n if ((webhook.logs == null) || webhook.logs.length === 0) {\n return updateLogs().then(function() {\n return timeout(0, function() {\n $el.find(\".webhooks-history\").toggleClass(\"open\");\n return updateShowHideHistoryText();\n });\n });\n } else {\n $el.find(\".webhooks-history\").toggleClass(\"open\");\n return $scope.$apply(function() {\n return updateShowHideHistoryText();\n });\n }\n });\n $el.on(\"click\", \".history-single\", function(event) {\n var target;\n target = angular.element(event.currentTarget);\n target.toggleClass(\"history-single-open\");\n return target.siblings(\".history-single-response\").toggleClass(\"open\");\n });\n return $el.on(\"click\", \".resend-request\", function(event) {\n var log, target;\n target = angular.element(event.currentTarget);\n log = target.data(\"log\");\n return $rs.webhooklogs.resend(log).then((function(_this) {\n return function() {\n return updateLogs();\n };\n })(this));\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgWebhook\", [\"$tgResources\", \"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", WebhookDirective]);\n\n NewWebhookDirective = function($rs, $repo, $confirm, $loading) {\n var link;\n link = function($scope, $el, $attrs) {\n var addWebhookDOMNode, formDOMNode, initializeNewValue, save, webhook;\n webhook = $scope.$eval($attrs.tgWebhook);\n formDOMNode = $el.find(\".new-webhook-form\");\n addWebhookDOMNode = $el.find(\".add-webhook\");\n initializeNewValue = function() {\n return $scope.newValue = {\n \"name\": \"\",\n \"url\": \"\",\n \"key\": \"\"\n };\n };\n initializeNewValue();\n $scope.$watch(\"webhooks\", function(webhooks) {\n if (webhooks != null) {\n if (webhooks.length === 0) {\n formDOMNode.removeClass(\"hidden\");\n addWebhookDOMNode.addClass(\"hidden\");\n return formDOMNode.find(\"input\")[0].focus();\n } else {\n formDOMNode.addClass(\"hidden\");\n return addWebhookDOMNode.removeClass(\"hidden\");\n }\n }\n });\n save = debounce(2000, function() {\n var form, promise;\n form = formDOMNode.checksley();\n if (!form.validate()) {\n return;\n }\n $scope.newValue.project = $scope.project.id;\n promise = $repo.create(\"webhooks\", $scope.newValue);\n promise.then((function(_this) {\n return function() {\n $scope.$emit(\"webhooks:reload\");\n return initializeNewValue();\n };\n })(this));\n return promise.then(null, function(data) {\n $confirm.notify(\"error\");\n return form.setErrors(data);\n });\n });\n formDOMNode.on(\"click\", \".add-new\", function(event) {\n event.preventDefault();\n return save();\n });\n formDOMNode.on(\"keyup\", \"input\", function(event) {\n if (event.keyCode === 13) {\n return save();\n }\n });\n formDOMNode.on(\"click\", \".cancel-new\", function(event) {\n return $scope.$apply(function() {\n return initializeNewValue();\n });\n });\n return addWebhookDOMNode.on(\"click\", function(event) {\n formDOMNode.removeClass(\"hidden\");\n return formDOMNode.find(\"input\")[0].focus();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgNewWebhook\", [\"$tgResources\", \"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", NewWebhookDirective]);\n\n GithubController = (function(superClass) {\n extend(GithubController, superClass);\n\n GithubController.$inject = [\"$scope\", \"$tgRepo\", \"$tgResources\", \"$routeParams\", \"$appTitle\"];\n\n function GithubController(scope, repo, rs, params, appTitle) {\n var promise;\n this.scope = scope;\n this.repo = repo;\n this.rs = rs;\n this.params = params;\n this.appTitle = appTitle;\n bindMethods(this);\n this.scope.sectionName = \"Github\";\n this.scope.project = {};\n promise = this.loadInitialData();\n promise.then((function(_this) {\n return function() {\n return _this.appTitle.set(\"Github - \" + _this.scope.project.name);\n };\n })(this));\n promise.then(null, this.onInitialDataError.bind(this));\n }\n\n GithubController.prototype.loadModules = function() {\n return this.rs.modules.list(this.scope.projectId, \"github\").then((function(_this) {\n return function(github) {\n return _this.scope.github = github;\n };\n })(this));\n };\n\n GithubController.prototype.loadProject = function() {\n return this.rs.projects.get(this.scope.projectId).then((function(_this) {\n return function(project) {\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n return project;\n };\n })(this));\n };\n\n GithubController.prototype.loadInitialData = function() {\n var promise;\n promise = this.repo.resolve({\n pslug: this.params.pslug\n }).then((function(_this) {\n return function(data) {\n _this.scope.projectId = data.project;\n return data;\n };\n })(this));\n return promise.then((function(_this) {\n return function() {\n return _this.loadProject();\n };\n })(this)).then((function(_this) {\n return function() {\n return _this.loadModules();\n };\n })(this));\n };\n\n return GithubController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin, taiga.FiltersMixin));\n\n module.controller(\"GithubController\", GithubController);\n\n GitlabController = (function(superClass) {\n extend(GitlabController, superClass);\n\n GitlabController.$inject = [\"$scope\", \"$tgRepo\", \"$tgResources\", \"$routeParams\", \"$appTitle\"];\n\n function GitlabController(scope, repo, rs, params, appTitle) {\n var promise;\n this.scope = scope;\n this.repo = repo;\n this.rs = rs;\n this.params = params;\n this.appTitle = appTitle;\n bindMethods(this);\n this.scope.sectionName = \"Gitlab\";\n this.scope.project = {};\n promise = this.loadInitialData();\n promise.then((function(_this) {\n return function() {\n return _this.appTitle.set(\"Gitlab - \" + _this.scope.project.name);\n };\n })(this));\n promise.then(null, this.onInitialDataError.bind(this));\n this.scope.$on(\"project:modules:reload\", (function(_this) {\n return function() {\n return _this.loadModules();\n };\n })(this));\n }\n\n GitlabController.prototype.loadModules = function() {\n return this.rs.modules.list(this.scope.projectId, \"gitlab\").then((function(_this) {\n return function(gitlab) {\n return _this.scope.gitlab = gitlab;\n };\n })(this));\n };\n\n GitlabController.prototype.loadProject = function() {\n return this.rs.projects.get(this.scope.projectId).then((function(_this) {\n return function(project) {\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n return project;\n };\n })(this));\n };\n\n GitlabController.prototype.loadInitialData = function() {\n var promise;\n promise = this.repo.resolve({\n pslug: this.params.pslug\n }).then((function(_this) {\n return function(data) {\n _this.scope.projectId = data.project;\n return data;\n };\n })(this));\n return promise.then((function(_this) {\n return function() {\n return _this.loadProject();\n };\n })(this)).then((function(_this) {\n return function() {\n return _this.loadModules();\n };\n })(this));\n };\n\n return GitlabController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin, taiga.FiltersMixin));\n\n module.controller(\"GitlabController\", GitlabController);\n\n BitbucketController = (function(superClass) {\n extend(BitbucketController, superClass);\n\n BitbucketController.$inject = [\"$scope\", \"$tgRepo\", \"$tgResources\", \"$routeParams\", \"$appTitle\"];\n\n function BitbucketController(scope, repo, rs, params, appTitle) {\n var promise;\n this.scope = scope;\n this.repo = repo;\n this.rs = rs;\n this.params = params;\n this.appTitle = appTitle;\n bindMethods(this);\n this.scope.sectionName = \"Bitbucket\";\n this.scope.project = {};\n promise = this.loadInitialData();\n promise.then((function(_this) {\n return function() {\n return _this.appTitle.set(\"Bitbucket - \" + _this.scope.project.name);\n };\n })(this));\n promise.then(null, this.onInitialDataError.bind(this));\n this.scope.$on(\"project:modules:reload\", (function(_this) {\n return function() {\n return _this.loadModules();\n };\n })(this));\n }\n\n BitbucketController.prototype.loadModules = function() {\n return this.rs.modules.list(this.scope.projectId, \"bitbucket\").then((function(_this) {\n return function(bitbucket) {\n return _this.scope.bitbucket = bitbucket;\n };\n })(this));\n };\n\n BitbucketController.prototype.loadProject = function() {\n return this.rs.projects.get(this.scope.projectId).then((function(_this) {\n return function(project) {\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n return project;\n };\n })(this));\n };\n\n BitbucketController.prototype.loadInitialData = function() {\n var promise;\n promise = this.repo.resolve({\n pslug: this.params.pslug\n }).then((function(_this) {\n return function(data) {\n _this.scope.projectId = data.project;\n return data;\n };\n })(this));\n return promise.then((function(_this) {\n return function() {\n return _this.loadProject();\n };\n })(this)).then((function(_this) {\n return function() {\n return _this.loadModules();\n };\n })(this));\n };\n\n return BitbucketController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin, taiga.FiltersMixin));\n\n module.controller(\"BitbucketController\", BitbucketController);\n\n SelectInputText = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return $el.on(\"click\", \".select-input-content\", function() {\n $el.find(\"input\").select();\n return $el.find(\".help-copy\").addClass(\"visible\");\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgSelectInputText\", SelectInputText);\n\n GithubWebhooksDirective = function($repo, $confirm, $loading) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, submit, submitButton;\n form = $el.find(\"form\").checksley({\n \"onlyOneErrorElement\": true\n });\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n $loading.start(submitButton);\n promise = $repo.saveAttribute($scope.github, \"github\");\n promise.then(function() {\n $loading.finish(submitButton);\n return $confirm.notify(\"success\");\n });\n return promise.then(null, function(data) {\n $loading.finish(submitButton);\n form.setErrors(data);\n if (data._error_message) {\n return $confirm.notify(\"error\", data._error_message);\n }\n });\n };\n })(this));\n submitButton = $el.find(\".submit-button\");\n return $el.on(\"submit\", \"form\", submit);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgGithubWebhooks\", [\"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", GithubWebhooksDirective]);\n\n GitlabWebhooksDirective = function($repo, $confirm, $loading) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, submit, submitButton;\n form = $el.find(\"form\").checksley({\n \"onlyOneErrorElement\": true\n });\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n $loading.start(submitButton);\n promise = $repo.saveAttribute($scope.gitlab, \"gitlab\");\n promise.then(function() {\n $loading.finish(submitButton);\n $confirm.notify(\"success\");\n return $scope.$emit(\"project:modules:reload\");\n });\n return promise.then(null, function(data) {\n $loading.finish(submitButton);\n form.setErrors(data);\n if (data._error_message) {\n return $confirm.notify(\"error\", data._error_message);\n }\n });\n };\n })(this));\n submitButton = $el.find(\".submit-button\");\n return $el.on(\"submit\", \"form\", submit);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgGitlabWebhooks\", [\"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", GitlabWebhooksDirective]);\n\n BitbucketWebhooksDirective = function($repo, $confirm, $loading) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, submit, submitButton;\n form = $el.find(\"form\").checksley({\n \"onlyOneErrorElement\": true\n });\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n $loading.start(submitButton);\n promise = $repo.saveAttribute($scope.bitbucket, \"bitbucket\");\n promise.then(function() {\n $loading.finish(submitButton);\n $confirm.notify(\"success\");\n return $scope.$emit(\"project:modules:reload\");\n });\n return promise.then(null, function(data) {\n $loading.finish(submitButton);\n form.setErrors(data);\n if (data._error_message) {\n return $confirm.notify(\"error\", data._error_message);\n }\n });\n };\n })(this));\n submitButton = $el.find(\".submit-button\");\n return $el.on(\"submit\", \"form\", submit);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgBitbucketWebhooks\", [\"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", BitbucketWebhooksDirective]);\n\n ValidOriginIpsDirective = function() {\n var link;\n link = function($scope, $el, $attrs, $ngModel) {\n return $ngModel.$parsers.push(function(value) {\n value = $.trim(value);\n if (value === \"\") {\n return [];\n }\n return value.split(\",\");\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgValidOriginIps\", ValidOriginIpsDirective);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/bind.coffee\n */\n\n(function() {\n var BindHtmlDirective, BindOnceAltDirective, BindOnceBindDirective, BindOnceHrefDirective, BindOnceHtmlDirective, BindOnceRefDirective, BindOnceSrcDirective, BindOnceTitleDirective, BindTitleDirective, bindOnce, module;\n\n bindOnce = this.taiga.bindOnce;\n\n BindOnceBindDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, $attrs.tgBoBind, function(val) {\n return $el.text(val);\n });\n };\n return {\n link: link\n };\n };\n\n BindOnceHtmlDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, $attrs.tgBoHtml, function(val) {\n return $el.html(val);\n });\n };\n return {\n link: link\n };\n };\n\n BindOnceRefDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, $attrs.tgBoRef, function(val) {\n return $el.html(\"#\" + val + \" \");\n });\n };\n return {\n link: link\n };\n };\n\n BindOnceSrcDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, $attrs.tgBoSrc, function(val) {\n return $el.attr(\"src\", val);\n });\n };\n return {\n link: link\n };\n };\n\n BindOnceHrefDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, $attrs.tgBoHref, function(val) {\n return $el.attr(\"href\", val);\n });\n };\n return {\n link: link\n };\n };\n\n BindOnceAltDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, $attrs.tgBoAlt, function(val) {\n return $el.attr(\"alt\", val);\n });\n };\n return {\n link: link\n };\n };\n\n BindOnceTitleDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, $attrs.tgBoTitle, function(val) {\n return $el.attr(\"title\", val);\n });\n };\n return {\n link: link\n };\n };\n\n BindTitleDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return $scope.$watch($attrs.tgTitleHtml, function(val) {\n if (val != null) {\n return $el.attr(\"title\", val);\n }\n });\n };\n return {\n link: link\n };\n };\n\n BindHtmlDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return $scope.$watch($attrs.tgBindHtml, function(val) {\n if (val != null) {\n return $el.html(val);\n }\n });\n };\n return {\n link: link\n };\n };\n\n module = angular.module(\"taigaBase\");\n\n module.directive(\"tgBoBind\", BindOnceBindDirective);\n\n module.directive(\"tgBoHtml\", BindOnceHtmlDirective);\n\n module.directive(\"tgBoRef\", BindOnceRefDirective);\n\n module.directive(\"tgBoSrc\", BindOnceSrcDirective);\n\n module.directive(\"tgBoHref\", BindOnceHrefDirective);\n\n module.directive(\"tgBoAlt\", BindOnceAltDirective);\n\n module.directive(\"tgBoTitle\", BindOnceTitleDirective);\n\n module.directive(\"tgBindTitle\", BindTitleDirective);\n\n module.directive(\"tgBindHtml\", BindHtmlDirective);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/conf.coffee\n */\n\n(function() {\n var ConfigurationService, module;\n\n ConfigurationService = (function() {\n function ConfigurationService() {\n this.config = window.taigaConfig;\n }\n\n ConfigurationService.prototype.get = function(key, defaultValue) {\n if (defaultValue == null) {\n defaultValue = null;\n }\n if (_.has(this.config, key)) {\n return this.config[key];\n }\n return defaultValue;\n };\n\n return ConfigurationService;\n\n })();\n\n module = angular.module(\"taigaBase\");\n\n module.service(\"$tgConfig\", ConfigurationService);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/contrib.coffee\n */\n\n(function() {\n var ContribController, module, taigaContribPlugins,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taigaContribPlugins = this.taigaContribPlugins = this.taigaContribPlugins || [];\n\n ContribController = (function(superClass) {\n extend(ContribController, superClass);\n\n ContribController.$inject = [\"$rootScope\", \"$scope\", \"$routeParams\", \"$tgRepo\", \"$tgResources\", \"$tgConfirm\", \"$appTitle\"];\n\n function ContribController(rootScope, scope, params, repo, rs, confirm, appTitle) {\n var promise;\n this.rootScope = rootScope;\n this.scope = scope;\n this.params = params;\n this.repo = repo;\n this.rs = rs;\n this.confirm = confirm;\n this.appTitle = appTitle;\n this.scope.adminPlugins = _.where(this.rootScope.contribPlugins, {\n \"type\": \"admin\"\n });\n this.scope.currentPlugin = _.first(_.where(this.scope.adminPlugins, {\n \"slug\": this.params.plugin\n }));\n this.scope.pluginTemplate = \"contrib/\" + this.scope.currentPlugin.slug;\n this.scope.projectSlug = this.params.pslug;\n promise = this.loadInitialData();\n promise.then((function(_this) {\n return function() {\n return _this.appTitle.set(_this.scope.project.name);\n };\n })(this));\n promise.then(null, (function(_this) {\n return function() {\n return _this.confirm.notify(\"error\");\n };\n })(this));\n }\n\n ContribController.prototype.loadProject = function() {\n return this.rs.projects.get(this.scope.projectId).then((function(_this) {\n return function(project) {\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n _this.scope.$broadcast('project:loaded', project);\n return project;\n };\n })(this));\n };\n\n ContribController.prototype.loadInitialData = function() {\n var promise;\n promise = this.repo.resolve({\n pslug: this.params.pslug\n }).then((function(_this) {\n return function(data) {\n _this.scope.projectId = data.project;\n return data;\n };\n })(this));\n return promise.then((function(_this) {\n return function() {\n return _this.loadProject();\n };\n })(this));\n };\n\n return ContribController;\n\n })(taiga.Controller);\n\n module = angular.module(\"taigaBase\");\n\n module.controller(\"ContribController\", ContribController);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/http.coffee\n */\n\n(function() {\n var HttpService, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n HttpService = (function(superClass) {\n extend(HttpService, superClass);\n\n HttpService.$inject = [\"$http\", \"$q\", \"$tgStorage\"];\n\n HttpService.prototype.headers = function() {\n var token;\n token = this.storage.get('token');\n if (token) {\n return {\n \"Authorization\": \"Bearer \" + token\n };\n }\n return {};\n };\n\n function HttpService(http, q, storage) {\n this.http = http;\n this.q = q;\n this.storage = storage;\n HttpService.__super__.constructor.call(this);\n }\n\n HttpService.prototype.request = function(options) {\n options.headers = _.merge({}, options.headers || {}, this.headers());\n if (_.isPlainObject(options.data)) {\n options.data = JSON.stringify(options.data);\n }\n return this.http(options);\n };\n\n HttpService.prototype.get = function(url, params, options) {\n options = _.merge({\n method: \"GET\",\n url: url\n }, options);\n if (params) {\n options.params = params;\n }\n return this.request(options);\n };\n\n HttpService.prototype.post = function(url, data, params, options) {\n options = _.merge({\n method: \"POST\",\n url: url\n }, options);\n if (data) {\n options.data = data;\n }\n if (params) {\n options.params = params;\n }\n return this.request(options);\n };\n\n HttpService.prototype.put = function(url, data, params, options) {\n options = _.merge({\n method: \"PUT\",\n url: url\n }, options);\n if (data) {\n options.data = data;\n }\n if (params) {\n options.params = params;\n }\n return this.request(options);\n };\n\n HttpService.prototype.patch = function(url, data, params, options) {\n options = _.merge({\n method: \"PATCH\",\n url: url\n }, options);\n if (data) {\n options.data = data;\n }\n if (params) {\n options.params = params;\n }\n return this.request(options);\n };\n\n HttpService.prototype[\"delete\"] = function(url, data, params, options) {\n options = _.merge({\n method: \"DELETE\",\n url: url\n }, options);\n if (data) {\n options.data = data;\n }\n if (params) {\n options.params = params;\n }\n return this.request(options);\n };\n\n return HttpService;\n\n })(taiga.Service);\n\n module = angular.module(\"taigaBase\");\n\n module.service(\"$tgHttp\", HttpService);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/i18n.coffee\n */\n\n(function() {\n var I18nDirective, I18nService, bindOnce, defaults, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n bindOnce = this.taiga.bindOnce;\n\n defaults = {\n ns: \"app\",\n fallbackLng: \"en\",\n async: false,\n lng: \"en\"\n };\n\n I18nService = (function(superClass) {\n extend(I18nService, superClass);\n\n function I18nService(rootscope, localesEn) {\n this.rootscope = rootscope;\n this.options = _.clone(defaults, true);\n this.options.resStore = {\n en: {\n app: localesEn\n }\n };\n }\n\n I18nService.prototype.setLanguage = function(language) {\n i18n.setLng(language);\n this.rootscope.currentLang = language;\n return this.rootscope.$broadcast(\"i18n:changeLang\", language);\n };\n\n I18nService.prototype.initialize = function() {\n i18n.init(this.options);\n return this.rootscope.t = i18n.t;\n };\n\n I18nService.prototype.t = function(path, opts) {\n return i18n.t(path, opts);\n };\n\n return I18nService;\n\n })(taiga.Service);\n\n I18nDirective = function($rootscope, $i18n) {\n var link;\n link = function($scope, $el, $attrs) {\n var i, len, ns, options, opts, ref, results, v, values;\n values = $attrs.tr.split(\",\");\n options = $attrs.trOpts || '{}';\n opts = $scope.$eval(options);\n results = [];\n for (i = 0, len = values.length; i < len; i++) {\n v = values[i];\n if (v.indexOf(\":\") === -1) {\n results.push($el.html(_.escape($i18n.t(v, opts))));\n } else {\n ref = v.split(\":\"), ns = ref[0], v = ref[1];\n results.push($el.attr(ns, _.escape($i18n.t(v, opts))));\n }\n }\n return results;\n };\n return {\n link: link,\n restrict: \"A\",\n scope: false\n };\n };\n\n module = angular.module(\"taigaBase\");\n\n module.service(\"$tgI18n\", [\"$rootScope\", \"localesEn\", I18nService]);\n\n module.directive(\"tr\", [\"$rootScope\", \"$tgI18n\", I18nDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/location.coffee\n */\n\n(function() {\n var locationFactory, module;\n\n locationFactory = function($location, $route, $rootscope) {\n $location.noreload = function(scope) {\n var lastRoute, un;\n lastRoute = $route.current;\n un = scope.$on(\"$locationChangeSuccess\", function() {\n $route.current = lastRoute;\n return un();\n });\n return $location;\n };\n $location.isInCurrentRouteParams = function(name, value) {\n var params;\n params = _.merge($route.current.params, $location.search());\n return params[name] === value;\n };\n return $location;\n };\n\n module = angular.module(\"taigaBase\");\n\n module.factory(\"$tgLocation\", [\"$location\", \"$route\", \"$rootScope\", locationFactory]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/model.coffee\n */\n\n(function() {\n var Model, ModelService, module, provider, taiga,\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n Model = (function() {\n function Model(name, data, dataTypes) {\n this._attrs = data;\n this._name = name;\n this._dataTypes = dataTypes;\n this.setAttrs(data);\n this.initialize();\n }\n\n Model.prototype.clone = function() {\n var instance;\n instance = new Model(this._name, this._attrs, this._dataTypes);\n instance._modifiedAttrs = this._modifiedAttrs;\n instance._isModified = this._isModified;\n return instance;\n };\n\n Model.prototype.applyCasts = function() {\n var attrName, castMethod, castName, ref, results;\n ref = this._dataTypes;\n results = [];\n for (attrName in ref) {\n castName = ref[attrName];\n castMethod = service.casts[castName];\n if (!castMethod) {\n continue;\n }\n results.push(this._attrs[attrName] = castMethod(this._attrs[attrName]));\n }\n return results;\n };\n\n Model.prototype.getIdAttrName = function() {\n return \"id\";\n };\n\n Model.prototype.getName = function() {\n return this._name;\n };\n\n Model.prototype.getAttrs = function(patch) {\n if (patch == null) {\n patch = false;\n }\n if (this._attrs.version != null) {\n this._modifiedAttrs.version = this._attrs.version;\n }\n if (patch) {\n return _.extend({}, this._modifiedAttrs);\n }\n return _.extend({}, this._attrs, this._modifiedAttrs);\n };\n\n Model.prototype.setAttrs = function(attrs) {\n this._attrs = attrs;\n this._modifiedAttrs = {};\n this.applyCasts();\n return this._isModified = false;\n };\n\n Model.prototype.setAttr = function(name, value) {\n this._modifiedAttrs[name] = value;\n return this._isModified = true;\n };\n\n Model.prototype.initialize = function() {\n var getter, self, setter;\n self = this;\n getter = function(name) {\n return function() {\n if (typeof name === 'string' && name.substr(0, 2) === \"__\") {\n return self[name];\n }\n if (indexOf.call(_.keys(self._modifiedAttrs), name) < 0) {\n return self._attrs[name];\n }\n return self._modifiedAttrs[name];\n };\n };\n setter = function(name) {\n return function(value) {\n if (typeof name === 'string' && name.substr(0, 2) === \"__\") {\n self[name] = value;\n return;\n }\n if (self._attrs[name] !== value) {\n self._modifiedAttrs[name] = value;\n self._isModified = true;\n } else {\n delete self._modifiedAttrs[name];\n }\n };\n };\n return _.each(this._attrs, function(value, name) {\n var options;\n options = {\n get: getter(name),\n set: setter(name),\n enumerable: true,\n configurable: true\n };\n return Object.defineProperty(self, name, options);\n });\n };\n\n Model.prototype.serialize = function() {\n var data;\n data = {\n \"data\": _.clone(this._attrs),\n \"name\": this._name\n };\n return JSON.stringify(data);\n };\n\n Model.prototype.isModified = function() {\n return this._isModified;\n };\n\n Model.prototype.isAttributeModified = function(attribute) {\n return this._modifiedAttrs[attribute] != null;\n };\n\n Model.prototype.markSaved = function() {\n this._isModified = false;\n this._attrs = this.getAttrs();\n return this._modifiedAttrs = {};\n };\n\n Model.prototype.revert = function() {\n this._modifiedAttrs = {};\n return this._isModified = false;\n };\n\n Model.desSerialize = function(sdata) {\n var ddata, model;\n ddata = JSON.parse(sdata);\n model = new Model(ddata.url, ddata.data);\n return model;\n };\n\n return Model;\n\n })();\n\n taiga = this.taiga;\n\n ModelService = (function(superClass) {\n extend(ModelService, superClass);\n\n ModelService.$inject = [\"$q\", \"$tgUrls\", \"$tgStorage\", \"$tgHttp\"];\n\n function ModelService(q, urls, storage, http) {\n this.q = q;\n this.urls = urls;\n this.storage = storage;\n this.http = http;\n ModelService.__super__.constructor.call(this);\n }\n\n return ModelService;\n\n })(taiga.Service);\n\n provider = function($q, $http, $gmUrls, $gmStorage) {\n var service;\n service = {};\n service.make_model = function(name, data, cls, dataTypes) {\n if (cls == null) {\n cls = Model;\n }\n if (dataTypes == null) {\n dataTypes = {};\n }\n return new cls(name, data, dataTypes);\n };\n service.cls = Model;\n service.casts = {\n int: function(value) {\n return parseInt(value, 10);\n },\n float: function(value) {\n return parseFloat(value, 10);\n }\n };\n return service;\n };\n\n module = angular.module(\"taigaBase\");\n\n module.factory(\"$tgModel\", [\"$q\", \"$http\", \"$tgUrls\", \"$tgStorage\", provider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/navurl.coffee\n */\n\n(function() {\n var NavigationUrlsDirective, NavigationUrlsService, bindOnce, module, taiga, trim,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n trim = this.taiga.trim;\n\n bindOnce = this.taiga.bindOnce;\n\n module = angular.module(\"taigaBase\");\n\n NavigationUrlsService = (function(superClass) {\n extend(NavigationUrlsService, superClass);\n\n function NavigationUrlsService() {\n this.urls = {};\n }\n\n NavigationUrlsService.prototype.update = function(urls) {\n return this.urls = _.merge({}, this.urls, urls || {});\n };\n\n NavigationUrlsService.prototype.formatUrl = function(url, ctx) {\n var replacer;\n if (ctx == null) {\n ctx = {};\n }\n replacer = function(match) {\n match = trim(match, \":\");\n return ctx[match] || \"undefined\";\n };\n return url.replace(/(:\\w+)/g, replacer);\n };\n\n NavigationUrlsService.prototype.resolve = function(name, ctx) {\n var url;\n url = this.urls[name];\n if (!url) {\n return \"\";\n }\n if (ctx) {\n return this.formatUrl(url, ctx);\n }\n return url;\n };\n\n return NavigationUrlsService;\n\n })(taiga.Service);\n\n module.service(\"$tgNavUrls\", NavigationUrlsService);\n\n NavigationUrlsDirective = function($navurls, $auth, $q, $location) {\n var bindOnceP, link, parseNav;\n bindOnceP = function($scope, attr) {\n var defered;\n defered = $q.defer();\n bindOnce($scope, attr, function(v) {\n return defered.resolve(v);\n });\n return defered.promise;\n };\n parseNav = function(data, $scope) {\n var name, params, promises, ref, values;\n ref = _.map(data.split(\":\"), trim), name = ref[0], params = ref[1];\n if (params) {\n params = _.map(params.split(\",\"), trim);\n } else {\n params = [];\n }\n values = _.map(params, function(x) {\n return trim(x.split(\"=\")[1]);\n });\n promises = _.map(values, function(x) {\n return bindOnceP($scope, x);\n });\n return $q.all(promises).then(function() {\n var i, item, key, len, options, ref1, value;\n options = {};\n for (i = 0, len = params.length; i < len; i++) {\n item = params[i];\n ref1 = _.map(item.split(\"=\"), trim), key = ref1[0], value = ref1[1];\n options[key] = $scope.$eval(value);\n }\n return [name, options];\n });\n };\n link = function($scope, $el, $attrs) {\n if ($el.is(\"a\")) {\n $el.attr(\"href\", \"#\");\n }\n $el.on(\"mouseenter\", function(event) {\n var target;\n target = $(event.currentTarget);\n if (!target.data(\"fullUrl\")) {\n return parseNav($attrs.tgNav, $scope).then(function(result) {\n var fullUrl, name, options, url, user;\n name = result[0], options = result[1];\n user = $auth.getUser();\n if (user) {\n options.user = user.username;\n }\n url = $navurls.resolve(name);\n fullUrl = $navurls.formatUrl(url, options);\n target.data(\"fullUrl\", fullUrl);\n if (target.is(\"a\")) {\n target.attr(\"href\", fullUrl);\n }\n return $el.on(\"click\", function(event) {\n event.preventDefault();\n target = $(event.currentTarget);\n if (target.hasClass('noclick')) {\n return;\n }\n fullUrl = target.data(\"fullUrl\");\n switch (event.which) {\n case 1:\n $location.url(fullUrl);\n return $scope.$apply();\n case 2:\n return window.open(fullUrl);\n }\n });\n });\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgNav\", [\"$tgNavUrls\", \"$tgAuth\", \"$q\", \"$tgLocation\", NavigationUrlsDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/repository.coffee\n */\n\n(function() {\n var RepositoryService, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n RepositoryService = (function(superClass) {\n extend(RepositoryService, superClass);\n\n RepositoryService.$inject = [\"$q\", \"$tgModel\", \"$tgStorage\", \"$tgHttp\", \"$tgUrls\"];\n\n function RepositoryService(q, model1, storage, http, urls) {\n this.q = q;\n this.model = model1;\n this.storage = storage;\n this.http = http;\n this.urls = urls;\n RepositoryService.__super__.constructor.call(this);\n }\n\n RepositoryService.prototype.resolveUrlForModel = function(model) {\n var idAttrName;\n idAttrName = model.getIdAttrName();\n return (this.urls.resolve(model.getName())) + \"/\" + model[idAttrName];\n };\n\n RepositoryService.prototype.resolveUrlForAttributeModel = function(model) {\n return this.urls.resolve(model.getName(), model.parent);\n };\n\n RepositoryService.prototype.create = function(name, data, dataTypes, extraParams) {\n var defered, promise, url;\n if (dataTypes == null) {\n dataTypes = {};\n }\n if (extraParams == null) {\n extraParams = {};\n }\n defered = this.q.defer();\n url = this.urls.resolve(name);\n promise = this.http.post(url, JSON.stringify(data));\n promise.success((function(_this) {\n return function(_data, _status) {\n return defered.resolve(_this.model.make_model(name, _data, null, dataTypes));\n };\n })(this));\n promise.error((function(_this) {\n return function(data, status) {\n return defered.reject(data);\n };\n })(this));\n return defered.promise;\n };\n\n RepositoryService.prototype.remove = function(model, params) {\n var defered, promise, url;\n if (params == null) {\n params = {};\n }\n defered = this.q.defer();\n url = this.resolveUrlForModel(model);\n promise = this.http[\"delete\"](url, {}, params);\n promise.success(function(data, status) {\n return defered.resolve(model);\n });\n promise.error(function(data, status) {\n return defered.reject(model);\n });\n return defered.promise;\n };\n\n RepositoryService.prototype.saveAll = function(models, patch) {\n var promises;\n if (patch == null) {\n patch = true;\n }\n promises = _.map(models, (function(_this) {\n return function(x) {\n return _this.save(x, true);\n };\n })(this));\n return this.q.all(promises);\n };\n\n RepositoryService.prototype.save = function(model, patch) {\n var data, defered, promise, url;\n if (patch == null) {\n patch = true;\n }\n defered = this.q.defer();\n if (!model.isModified() && patch) {\n defered.resolve(model);\n return defered.promise;\n }\n url = this.resolveUrlForModel(model);\n data = JSON.stringify(model.getAttrs(patch));\n if (patch) {\n promise = this.http.patch(url, data);\n } else {\n promise = this.http.put(url, data);\n }\n promise.success((function(_this) {\n return function(data, status) {\n model._isModified = false;\n model._attrs = _.extend(model.getAttrs(), data);\n model._modifiedAttrs = {};\n model.applyCasts();\n return defered.resolve(model);\n };\n })(this));\n promise.error(function(data, status) {\n return defered.reject(data);\n });\n return defered.promise;\n };\n\n RepositoryService.prototype.saveAttribute = function(model, attribute, patch) {\n var data, defered, promise, url;\n if (patch == null) {\n patch = true;\n }\n defered = this.q.defer();\n if (!model.isModified() && patch) {\n defered.resolve(model);\n return defered.promise;\n }\n url = this.resolveUrlForAttributeModel(model);\n data = {};\n data[attribute] = model.getAttrs();\n if (patch) {\n promise = this.http.patch(url, data);\n } else {\n promise = this.http.put(url, data);\n }\n promise.success((function(_this) {\n return function(data, status) {\n model._isModified = false;\n model._attrs = _.extend(model.getAttrs(), data);\n model._modifiedAttrs = {};\n model.applyCasts();\n return defered.resolve(model);\n };\n })(this));\n promise.error(function(data, status) {\n return defered.reject(data);\n });\n return defered.promise;\n };\n\n RepositoryService.prototype.refresh = function(model) {\n var defered, promise, url;\n defered = this.q.defer();\n url = this.resolveUrlForModel(model);\n promise = this.http.get(url);\n promise.success(function(data, status) {\n model._modifiedAttrs = {};\n model._attrs = data;\n model._isModified = false;\n model.applyCasts();\n return defered.resolve(model);\n });\n promise.error(function(data, status) {\n return defered.reject(data);\n });\n return defered.promise;\n };\n\n RepositoryService.prototype.queryMany = function(name, params, options) {\n var httpOptions, url;\n if (options == null) {\n options = {};\n }\n url = this.urls.resolve(name);\n httpOptions = {\n headers: {}\n };\n if (!options.enablePagination) {\n httpOptions.headers[\"x-disable-pagination\"] = \"1\";\n }\n return this.http.get(url, params, httpOptions).then((function(_this) {\n return function(data) {\n return _.map(data.data, function(x) {\n return _this.model.make_model(name, x);\n });\n };\n })(this));\n };\n\n RepositoryService.prototype.queryOneAttribute = function(name, id, attribute, params, options) {\n var httpOptions, url;\n if (options == null) {\n options = {};\n }\n url = this.urls.resolve(name, id);\n httpOptions = {\n headers: {}\n };\n if (!options.enablePagination) {\n httpOptions.headers[\"x-disable-pagination\"] = \"1\";\n }\n return this.http.get(url, params, httpOptions).then((function(_this) {\n return function(data) {\n var model;\n model = _this.model.make_model(name, data.data[attribute]);\n model.parent = id;\n return model;\n };\n })(this));\n };\n\n RepositoryService.prototype.queryOne = function(name, id, params, options) {\n var httpOptions, url;\n if (options == null) {\n options = {};\n }\n url = this.urls.resolve(name);\n if (id) {\n url = url + \"/\" + id;\n }\n httpOptions = {\n headers: {}\n };\n if (!options.enablePagination) {\n httpOptions.headers[\"x-disable-pagination\"] = \"1\";\n }\n return this.http.get(url, params, httpOptions).then((function(_this) {\n return function(data) {\n return _this.model.make_model(name, data.data);\n };\n })(this));\n };\n\n RepositoryService.prototype.queryOneRaw = function(name, id, params, options) {\n var httpOptions, url;\n if (options == null) {\n options = {};\n }\n url = this.urls.resolve(name);\n if (id) {\n url = url + \"/\" + id;\n }\n httpOptions = _.merge({\n headers: {}\n }, options);\n if (!options.enablePagination) {\n httpOptions.headers[\"x-disable-pagination\"] = \"1\";\n }\n return this.http.get(url, params, httpOptions).then((function(_this) {\n return function(data) {\n return data.data;\n };\n })(this));\n };\n\n RepositoryService.prototype.queryPaginated = function(name, params, options) {\n var httpOptions, url;\n if (options == null) {\n options = {};\n }\n url = this.urls.resolve(name);\n httpOptions = _.merge({\n headers: {}\n }, options);\n return this.http.get(url, params, httpOptions).then((function(_this) {\n return function(data) {\n var headers, result;\n headers = data.headers();\n result = {};\n result.models = _.map(data.data, function(x) {\n return _this.model.make_model(name, x);\n });\n result.count = parseInt(headers[\"x-pagination-count\"], 10);\n result.current = parseInt(headers[\"x-pagination-current\"] || 1, 10);\n result.paginatedBy = parseInt(headers[\"x-paginated-by\"], 10);\n return result;\n };\n })(this));\n };\n\n RepositoryService.prototype.resolve = function(options) {\n var cache, params;\n params = {};\n if (options.pslug != null) {\n params.project = options.pslug;\n }\n if (options.usref != null) {\n params.us = options.usref;\n }\n if (options.taskref != null) {\n params.task = options.taskref;\n }\n if (options.issueref != null) {\n params.issue = options.issueref;\n }\n if (options.sslug != null) {\n params.milestone = options.sslug;\n }\n if (options.wikipage != null) {\n params.wikipage = options.wikipage;\n }\n cache = !(options.wikipage || options.sslug);\n return this.queryOneRaw(\"resolver\", null, params, {\n cache: cache\n });\n };\n\n return RepositoryService;\n\n })(taiga.Service);\n\n module = angular.module(\"taigaBase\");\n\n module.service(\"$tgRepo\", RepositoryService);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/storage.coffee\n */\n\n(function() {\n var StorageService, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n StorageService = (function(superClass) {\n extend(StorageService, superClass);\n\n StorageService.$inject = [\"$rootScope\"];\n\n function StorageService($rootScope) {\n StorageService.__super__.constructor.call(this);\n }\n\n StorageService.prototype.get = function(key, _default) {\n var serializedValue;\n serializedValue = localStorage.getItem(key);\n if (serializedValue === null) {\n return _default || null;\n }\n return JSON.parse(serializedValue);\n };\n\n StorageService.prototype.set = function(key, val) {\n if (_.isObject(key)) {\n return _.each(key, (function(_this) {\n return function(val, key) {\n return _this.set(key, val);\n };\n })(this));\n } else {\n return localStorage.setItem(key, JSON.stringify(val));\n }\n };\n\n StorageService.prototype.contains = function(key) {\n var value;\n value = this.get(key);\n return value !== null;\n };\n\n StorageService.prototype.remove = function(key) {\n return localStorage.removeItem(key);\n };\n\n StorageService.prototype.clear = function() {\n return localStorage.clear();\n };\n\n return StorageService;\n\n })(taiga.Service);\n\n module = angular.module(\"taigaBase\");\n\n module.service(\"$tgStorage\", StorageService);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/http.coffee\n */\n\n(function() {\n var UrlsService, format, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n format = function(fmt, obj) {\n obj = _.clone(obj);\n return fmt.replace(/%s/g, function(match) {\n return String(obj.shift());\n });\n };\n\n taiga = this.taiga;\n\n UrlsService = (function(superClass) {\n extend(UrlsService, superClass);\n\n UrlsService.$inject = [\"$tgConfig\"];\n\n function UrlsService(config) {\n this.config = config;\n this.urls = {};\n this.mainUrl = this.config.get(\"api\");\n }\n\n UrlsService.prototype.update = function(urls) {\n return this.urls = _.merge(this.urls, urls);\n };\n\n UrlsService.prototype.resolve = function() {\n var args, name, url;\n args = _.toArray(arguments);\n if (args.length === 0) {\n throw Error(\"wrong arguments to setUrls\");\n }\n name = args.slice(0, 1)[0];\n url = format(this.urls[name], args.slice(1));\n return format(\"%s/%s\", [_.str.rtrim(this.mainUrl, \"/\"), _.str.ltrim(url, \"/\")]);\n };\n\n UrlsService.prototype.resolveAbsolute = function() {\n var url;\n url = this.resolve.apply(this, arguments);\n if (/^https?:\\/\\//i.test(url)) {\n return url;\n }\n if (/^\\//.test(url)) {\n return window.location.protocol + \"//\" + window.location.host + url;\n }\n return window.location.protocol + \"//\" + window.location.host + \"/\" + url;\n };\n\n return UrlsService;\n\n })(taiga.Service);\n\n module = angular.module(\"taigaBase\");\n\n module.service('$tgUrls', UrlsService);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/custom-field-values.coffee\n */\n\n(function() {\n var module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n resourceProvider = function($repo) {\n var _get, service;\n _get = function(objectId, resource) {\n return $repo.queryOne(resource, objectId);\n };\n service = {\n userstory: {\n get: function(objectId) {\n return _get(objectId, \"custom-attributes-values/userstory\");\n }\n },\n task: {\n get: function(objectId) {\n return _get(objectId, \"custom-attributes-values/task\");\n }\n },\n issue: {\n get: function(objectId) {\n return _get(objectId, \"custom-attributes-values/issue\");\n }\n }\n };\n return function(instance) {\n return instance.customAttributesValues = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgCustomAttributesValuesResourcesProvider\", [\"$tgRepo\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/projects.coffee\n */\n\n(function() {\n var module, resourceProvider, sizeFormat, taiga;\n\n taiga = this.taiga;\n\n sizeFormat = this.taiga.sizeFormat;\n\n resourceProvider = function($repo) {\n var _list, service;\n _list = function(projectId, resource) {\n return $repo.queryMany(resource, {\n project: projectId\n });\n };\n service = {\n userstory: {\n list: function(projectId) {\n return _list(projectId, \"custom-attributes/userstory\");\n }\n },\n task: {\n list: function(projectId) {\n return _list(projectId, \"custom-attributes/task\");\n }\n },\n issue: {\n list: function(projectId) {\n return _list(projectId, \"custom-attributes/issue\");\n }\n }\n };\n return function(instance) {\n return instance.customAttributes = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgCustomAttributesResourcesProvider\", [\"$tgRepo\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/projects.coffee\n */\n\n(function() {\n var module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n resourceProvider = function($repo) {\n var service;\n service = {};\n service.get = function(token) {\n return $repo.queryOne(\"invitations\", token);\n };\n return function(instance) {\n return instance.invitations = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgInvitationsResourcesProvider\", [\"$tgRepo\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/mdrender.coffee\n */\n\n(function() {\n var module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n resourceProvider = function($repo, $urls, $http) {\n var service;\n service = {};\n service.render = function(projectId, content) {\n var params, url;\n if ((content == null) || content === \"\") {\n content = ' ';\n }\n params = {\n project_id: projectId,\n content: content\n };\n url = $urls.resolve(\"wiki\");\n return $http.post(url + \"/render\", params).then((function(_this) {\n return function(data) {\n return data.data;\n };\n })(this));\n };\n return function(instance) {\n return instance.mdrender = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgMdRenderResourcesProvider\", [\"$tgRepo\", \"$tgUrls\", \"$tgHttp\", resourceProvider]);\n\n}).call(this);\n","(function() {\n var module, resourceProvider;\n\n resourceProvider = function($repo) {\n var service;\n service = {};\n service.list = function(projectId, module) {\n return $repo.queryOneAttribute(\"project-modules\", projectId, module);\n };\n return function(instance) {\n return instance.modules = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgModulesResourcesProvider\", [\"$tgRepo\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/memberships.coffee\n */\n\n(function() {\n var module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n resourceProvider = function($repo, $http, $urls) {\n var service;\n service = {};\n service.get = function(id) {\n return $repo.queryOne(\"notify-policies\", id);\n };\n service.list = function(filters) {\n var params;\n params = _.extend({}, params, filters || {});\n return $repo.queryMany(\"notify-policies\", params);\n };\n return function(instance) {\n return instance.notifyPolicies = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgNotifyPoliciesResourcesProvider\", [\"$tgRepo\", \"$tgHttp\", \"$tgUrls\", resourceProvider]);\n\n}).call(this);\n","(function() {\n var module, resourceProvider;\n\n resourceProvider = function($repo, $urls, $http) {\n var service;\n service = {};\n service.list = function(webhookId) {\n var params;\n params = {\n webhook: webhookId\n };\n return $repo.queryMany(\"webhooklogs\", params);\n };\n service.resend = function(webhooklogId) {\n var url;\n url = $urls.resolve(\"webhooklogs-resend\", webhooklogId);\n return $http.post(url);\n };\n return function(instance) {\n return instance.webhooklogs = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgWebhookLogsResourcesProvider\", [\"$tgRepo\", \"$tgUrls\", \"$tgHttp\", resourceProvider]);\n\n}).call(this);\n","(function() {\n var module, resourceProvider;\n\n resourceProvider = function($repo, $urls, $http) {\n var service;\n service = {};\n service.list = function(projectId) {\n var params;\n params = {\n project: projectId\n };\n return $repo.queryMany(\"webhooks\", params);\n };\n service.test = function(webhookId) {\n var url;\n url = $urls.resolve(\"webhooks-test\", webhookId);\n return $http.post(url);\n };\n return function(instance) {\n return instance.webhooks = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgWebhooksResourcesProvider\", [\"$tgRepo\", \"$tgUrls\", \"$tgHttp\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/user-settings/main.coffee\n */\n\n(function() {\n var UserChangePasswordController, UserChangePasswordDirective, debounce, mixOf, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n mixOf = this.taiga.mixOf;\n\n debounce = this.taiga.debounce;\n\n module = angular.module(\"taigaUserSettings\");\n\n UserChangePasswordController = (function(superClass) {\n extend(UserChangePasswordController, superClass);\n\n UserChangePasswordController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgResources\", \"$routeParams\", \"$q\", \"$tgLocation\", \"$tgNavUrls\", \"$tgAuth\"];\n\n function UserChangePasswordController(scope, rootscope, repo, confirm, rs, params, q, location, navUrls, auth) {\n var promise;\n this.scope = scope;\n this.rootscope = rootscope;\n this.repo = repo;\n this.confirm = confirm;\n this.rs = rs;\n this.params = params;\n this.q = q;\n this.location = location;\n this.navUrls = navUrls;\n this.auth = auth;\n this.scope.sectionName = \"Change Password\";\n this.scope.project = {};\n this.scope.user = this.auth.getUser();\n promise = this.loadInitialData();\n promise.then(null, this.onInitialDataError.bind(this));\n }\n\n UserChangePasswordController.prototype.loadProject = function() {\n return this.rs.projects.get(this.scope.projectId).then((function(_this) {\n return function(project) {\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n return project;\n };\n })(this));\n };\n\n UserChangePasswordController.prototype.loadInitialData = function() {\n var promise;\n promise = this.repo.resolve({\n pslug: this.params.pslug\n }).then((function(_this) {\n return function(data) {\n _this.scope.projectId = data.project;\n return data;\n };\n })(this));\n return promise.then((function(_this) {\n return function() {\n return _this.loadProject();\n };\n })(this));\n };\n\n return UserChangePasswordController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin));\n\n module.controller(\"UserChangePasswordController\", UserChangePasswordController);\n\n UserChangePasswordDirective = function($rs, $confirm, $loading) {\n var link;\n link = function($scope, $el, $attrs, ctrl) {\n var submit, submitButton;\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if ($scope.newPassword1 !== $scope.newPassword2) {\n $confirm.notify('error', \"The passwords dosn't match\");\n return;\n }\n $loading.start(submitButton);\n promise = $rs.userSettings.changePassword($scope.currentPassword, $scope.newPassword1);\n promise.then(function() {\n $loading.finish(submitButton);\n return $confirm.notify('success');\n });\n return promise.then(null, function(response) {\n $loading.finish(submitButton);\n return $confirm.notify('error', response.data._error_message);\n });\n };\n })(this));\n submitButton = $el.find(\".submit-button\");\n $el.on(\"submit\", \"form\", submit);\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgUserChangePassword\", [\"$tgResources\", \"$tgConfirm\", \"$tgLoading\", UserChangePasswordDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/user-settings/notifications.coffee\n */\n\n(function() {\n var UserNotificationsController, UserNotificationsDirective, UserNotificationsListDirective, bindOnce, mixOf, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n mixOf = this.taiga.mixOf;\n\n bindOnce = this.taiga.bindOnce;\n\n module = angular.module(\"taigaUserSettings\");\n\n UserNotificationsController = (function(superClass) {\n extend(UserNotificationsController, superClass);\n\n UserNotificationsController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgResources\", \"$routeParams\", \"$q\", \"$tgLocation\", \"$tgNavUrls\", \"$tgAuth\"];\n\n function UserNotificationsController(scope, rootscope, repo, confirm, rs, params, q, location, navUrls, auth) {\n var promise;\n this.scope = scope;\n this.rootscope = rootscope;\n this.repo = repo;\n this.confirm = confirm;\n this.rs = rs;\n this.params = params;\n this.q = q;\n this.location = location;\n this.navUrls = navUrls;\n this.auth = auth;\n this.scope.sectionName = \"Email Notifications\";\n this.scope.project = {};\n this.scope.user = this.auth.getUser();\n promise = this.loadInitialData();\n promise.then(null, this.onInitialDataError.bind(this));\n }\n\n UserNotificationsController.prototype.loadProject = function() {\n return this.rs.projects.get(this.scope.projectId).then((function(_this) {\n return function(project) {\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n return project;\n };\n })(this));\n };\n\n UserNotificationsController.prototype.loadNotifyPolicies = function() {\n return this.rs.notifyPolicies.list().then((function(_this) {\n return function(notifyPolicies) {\n _this.scope.notifyPolicies = notifyPolicies;\n return notifyPolicies;\n };\n })(this));\n };\n\n UserNotificationsController.prototype.loadInitialData = function() {\n var promise;\n promise = this.repo.resolve({\n pslug: this.params.pslug\n }).then((function(_this) {\n return function(data) {\n _this.scope.projectId = data.project;\n return data;\n };\n })(this));\n return promise.then((function(_this) {\n return function() {\n return _this.loadProject();\n };\n })(this)).then((function(_this) {\n return function() {\n return _this.loadNotifyPolicies();\n };\n })(this));\n };\n\n return UserNotificationsController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin));\n\n module.controller(\"UserNotificationsController\", UserNotificationsController);\n\n UserNotificationsDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgUserNotifications\", UserNotificationsDirective);\n\n UserNotificationsListDirective = function($repo, $confirm) {\n var link, template;\n template = _.template(\"<% _.each(notifyPolicies, function (notifyPolicy, index) { %>\\n
\\\">\\n
<%- notifyPolicy.project_name %>
\\n
\\n
\\n \\\" id=\\\"policy-all-<%- notifyPolicy.id %>\\\"\\n value=\\\"2\\\" <% if (notifyPolicy.notify_level == 2) { %>checked=\\\"checked\\\"<% } %>/>\\n \\n
\\n
\\n
\\n
\\n \\\" id=\\\"policy-involved-<%- notifyPolicy.id %>\\\"\\n value=\\\"1\\\" <% if (notifyPolicy.notify_level == 1) { %>checked=\\\"checked\\\"<% } %> />\\n \\n
\\n
\\n
\\n
\\n \\\" id=\\\"policy-none-<%- notifyPolicy.id %>\\\"\\n value=\\\"3\\\" <% if (notifyPolicy.notify_level == 3) { %>checked=\\\"checked\\\"<% } %> />\\n \\n
\\n
\\n
\\n<% }) %>\");\n link = function($scope, $el, $attrs) {\n var render;\n render = function() {\n $el.off();\n $el.html(template({\n notifyPolicies: $scope.notifyPolicies\n }));\n return $el.on(\"change\", \"input[type=radio]\", function(event) {\n var onError, onSuccess, policy, policyIndex, prev_level, target;\n target = angular.element(event.currentTarget);\n policyIndex = target.parents(\".policy-table-row\").data('index');\n policy = $scope.notifyPolicies[policyIndex];\n prev_level = policy.notify_level;\n policy.notify_level = parseInt(target.val(), 10);\n onSuccess = function() {\n return $confirm.notify(\"success\");\n };\n onError = function() {\n $confirm.notify(\"error\");\n return target.parents(\".policy-table-row\").find(\"input[value=\" + prev_level + \"]\").prop(\"checked\", true);\n };\n return $repo.save(policy).then(onSuccess, onError);\n });\n };\n $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n return bindOnce($scope, $attrs.ngModel, render);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgUserNotificationsList\", [\"$tgRepo\", \"$tgConfirm\", UserNotificationsListDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: plugins/humanshtml/humanshtml.coffee\n */\n\n(function() {\n var configure, module, taiga;\n\n taiga = this.taiga;\n\n module = angular.module(\"taigaPlugins\");\n\n configure = function($routeProvider) {\n return $routeProvider.when(\"/humans.html\", {\n \"templateUrl\": \"/plugins/humanshtml/templates/humans.html\"\n });\n };\n\n module.config([\"$routeProvider\", configure]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: plugins/terms/terms.coffee\n */\n\n(function() {\n var TermsNoticeDirective, module, taiga, template;\n\n taiga = this.taiga;\n\n module = angular.module(\"taigaPlugins\");\n\n template = _.template(\"

\\n By clicking \\\"Sign up\\\", you agree to our
\\n
\\\" title=\\\"See terms of service\\\" target=\\\"_blank\\\"> terms of service\\n and\\n \\\" title=\\\"See privacy policy\\\" target=\\\"_blank\\\"> privacy policy.\\n

\");\n\n TermsNoticeDirective = function($config) {\n var privacyPolicyUrl, templateFn, termsOfServiceUrl;\n privacyPolicyUrl = $config.get(\"privacyPolicyUrl\");\n termsOfServiceUrl = $config.get(\"termsOfServiceUrl\");\n templateFn = function() {\n var ctx;\n if (!(privacyPolicyUrl && termsOfServiceUrl)) {\n return \"\";\n }\n ctx = {\n termsUrl: termsOfServiceUrl,\n privacyUrl: privacyPolicyUrl\n };\n return template(ctx);\n };\n return {\n scope: {},\n restrict: \"AE\",\n template: templateFn\n };\n };\n\n module.directive(\"tgTermsNotice\", [\"$tgConfig\", TermsNoticeDirective]);\n\n}).call(this);\n","angular.module('taigaBase').value('localesEn', {\n \"checksley\": {\n \"defaultMessage\": \"This value seems to be invalid.\",\n \"type-email\": \"This value should be a valid email.\",\n \"type-url\": \"This value should be a valid url.\",\n \"type-urlstrict\": \"This value should be a valid url.\",\n \"type-number\": \"This value should be a valid number.\",\n \"type-digits\": \"This value should be digits.\",\n \"type-dateIso\": \"This value should be a valid date (YYYY-MM-DD).\",\n \"type-alphanum\": \"This value should be alphanumeric.\",\n \"type-phone\": \"This value should be a valid phone number.\",\n \"notnull\": \"This value should not be null.\",\n \"notblank\": \"This value should not be blank.\",\n \"required\": \"This value is required.\",\n \"regexp\": \"This value seems to be invalid.\",\n \"min\": \"This value should be greater than or equal to %s.\",\n \"max\": \"This value should be lower than or equal to %s.\",\n \"range\": \"This value should be between %s and %s.\",\n \"minlength\": \"This value is too short. It should have %s characters or more.\",\n \"maxlength\": \"This value is too long. It should have %s characters or less.\",\n \"rangelength\": \"This value length is invalid. It should be between %s and %s characters long.\",\n \"mincheck\": \"You must select at least %s choices.\",\n \"maxcheck\": \"You must select %s choices or less.\",\n \"rangecheck\": \"You must select between %s and %s choices.\",\n \"equalto\": \"This value should be the same.\"\n },\n \"common\": {\n \"subject\": \"Subject\",\n \"save\": \"Save\",\n \"blocked\": \"Blocked\",\n \"cancel\": \"Cancel\",\n \"status\": \"Status\",\n \"new-bulk\": \"New bulk insert\",\n \"one-item-line\": \"One item per line...\"\n },\n \"pagination\": {\n \"next\": \"Next\",\n \"prev\": \"Previous\"\n },\n \"markdown-editor\": {\n \"heading-1\": \"First Level Heading\",\n \"heading-2\": \"Second Level Heading\",\n \"heading-3\": \"Third Level Heading\",\n \"bold\": \"Bold\",\n \"italic\": \"Italic\",\n \"strike\": \"Strike\",\n \"bulleted-list\": \"Bulleted List\",\n \"numeric-list\": \"Numeric List\",\n \"picture\": \"Picture\",\n \"link\": \"Link\",\n \"quotes\": \"Quotes\",\n \"code-block\": \"Code Block / Code\",\n \"preview\": \"Preview\",\n \"help\": \"Help\",\n \"placeholder\": \"Your title here...\",\n \"link-placeholder\": \"Your text to link here...\"\n },\n \"us\": {\n \"title-new\": \"New User Story\",\n \"team-requirement\": \"Team Requirement\",\n \"client-requirement\": \"Client Requirement\"\n }\n}\n);"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["app.js","classes.js","utils.js","controllerMixins.js","admin.js","auth.js","backlog.js","base.js","common.js","events.js","feedback.js","integrations.js","issues.js","kanban.js","locales.js","nav.js","projects.js","related-tasks.js","resources.js","search.js","taskboard.js","tasks.js","team.js","user-settings.js","userstories.js","wiki.js","analytics.js","attachments.js","bind-scope.js","components.js","confirm.js","custom-field-values.js","estimation.js","filters.js","history.js","importer.js","lightboxes.js","loader.js","loading.js","popovers.js","raven-logger.js","tags.js","wisiwyg.js","main.js","sortable.js","sprints.js","charts.js","detail.js","list.js","memberships.js","project-profile.js","project-values.js","roles.js","third-parties.js","bind.js","conf.js","contrib.js","http.js","i18n.js","location.js","model.js","navurls.js","repository.js","storage.js","urls.js","custom-attributes-values.js","custom-attributes.js","invitations.js","mdrender.js","modules.js","notify-policies.js","webhooklogs.js","webhooks.js","change-password.js","notifications.js","humanshtml/humanshtml.js","terms/terms.js","locales.en.js"],"names":["configure","init","module","modules","taiga","this","taigaContribPlugins","generateHash","components","_","map","x","JSON","stringify","hex_sha1","join","generateUniqueSessionIdentifier","date","randomNumber","Date","getTime","Math","floor","random","sessionId","$routeProvider","$locationProvider","$httpProvider","$provide","$tgEventsProvider","tgLoaderProvider","$compileProvider","authHttpIntercept","defaultHeaders","versionCheckHttpIntercept","when","templateUrl","resolve","loader","add","reloadOnSearch","redirectTo","params","pslug","otherwise","html5Mode","enabled","requireBase","Content-Type","Accept-Language","X-Session-Id","defaults","headers","patch","post","put","get","setSessionId","$q","$location","$navUrls","$lightboxService","httpResponseError","response","nextPath","status","closeAll","path","replace","url","search","reject","responseError","factory","interceptors","push","$confirm","versionErrorMsg","data","version","notify","window","checksley","updateValidators","linewidth","val","width","lines","valid","nl2br","split","every","line","length","updateMessages","debugInfoEnabled","taigaConfig","debugInfo","$log","$i18n","$config","$rootscope","$auth","$events","$analytics","initialize","debug","contribPlugins","adminPlugins","where","type","isAuthenticated","setupConnection","concat","plugin","angular","config","run","call","TaigaBase","TaigaController","TaigaService","extend","child","parent","ctor","constructor","key","hasProp","prototype","__super__","hasOwnProperty","bind","fn","me","apply","arguments","superClass","onInitialDataError","xhr","location","navUrls","q","Base","Service","Controller","bindMethods","bindOnce","cancelTimeout","debounce","debounceLeading","groupBy","joinStr","mixOf","scopeDefer","sizeFormat","slugify","startswith","timeout","toString","toggleText","trim","unslugify","indexOf","item","i","l","slice","str","breakTag","object","dependencies","methods","keys","forIn","value","bindAll","scope","attr","continuation","delBind","$eval","$watch","Mixed","base","method","mixin","mixins","name","ref","char","capitalize","element","texts","nextTextPosition","text","coll","pred","len","result","wait","setTimeout","timeoutVar","clearTimeout","func","defer","$apply","isNumber","isString","isPlainObject","isUndefined","leading","trailing","str1","str2","startsWith","input","precision","number","size","units","isNaN","parseFloat","isFinite","log","pow","toFixed","FiltersMixin","PageMixin","fillUsersAndRoles","users","roles","activeUsers","availableRoles","filter","user","is_active","sortBy","activeUsersById","e","id","usersById","project","memberships","uniq","computableRoles","contains","loadUsersAndRoles","promise","all","rs","projects","usersList","projectId","rolesList","then","_this","results","selectFilter","load","existing","compact","isInCurrentRouteParams","noreload","replaceFilter","replaceAllFilters","filters","unselectFilter","newValues","parsedValues","isEmpty","AuthService","CancelAccountDirective","ChangeEmailDirective","ChangePasswordFromRecoveryDirective","ForgotPasswordDirective","InvitationDirective","LoginDirective","PublicRegisterMessageDirective","RegisterDirective","rootscope","storage","model","http","urls","$inject","getUser","userData","make_model","setUser","auth","$broadcast","default_language","set","getAttrs","clear","remove","setToken","token","getToken","removeToken","login","clone","auth_token","logout","register","getInvitation","invitations","acceptInvitiationWithNewUser","acceptInvitiationWithExistingUser","forgotPassword","changePasswordFromRecovery","changeEmail","cancelAccount","service","templates","template","templateFn","publicRegisterEnabled","restrict","directive","$routeParams","link","$scope","$el","onError","onSuccess","submit","nextUrl","event","form","loginFormType","preventDefault","Form","find","validate","username","password","on","onErrorSubmit","onSuccessSubmit","onlyOneErrorElement","trackEvent","_error_message","setErrors","success","$params","tokenInParams","loginForm","onErrorSubmitLogin","onErrorSubmitRegister","onSuccessSubmitLogin","onSuccessSubmitRegister","registerForm","submitLogin","submitRegister","invitation","dataLogin","project_slug","escape","project_name","dataRegister","$repo","$model","email_token","queryOne","cancel_token","TaigaMainDirective","$window","onresize","home","error","not-found","permission-denied","forgot-password","change-password","change-email","cancel-account","create-project","profile","project-backlog","project-taskboard","project-kanban","project-issues","project-search","project-userstories-detail","project-tasks-detail","project-issues-detail","project-wiki","project-wiki-page","project-team","project-admin-home","project-admin-project-profile-details","project-admin-project-profile-default-values","project-admin-project-profile-modules","project-admin-project-profile-export","project-admin-project-profile-reports","project-admin-project-values-status","project-admin-project-values-points","project-admin-project-values-priorities","project-admin-project-values-severities","project-admin-project-values-types","project-admin-project-values-custom-fields","project-admin-memberships","project-admin-roles","project-admin-third-parties-webhooks","project-admin-third-parties-github","project-admin-third-parties-gitlab","project-admin-third-parties-bitbucket","project-admin-contrib","user-settings-user-profile","user-settings-user-change-password","user-settings-user-avatar","user-settings-mail-notifications","$navurls","update","AnimationFrame","AppTitle","CheckPermissionDirective","ClassPermissionDirective","LimitLineLengthDirective","ProjectUrl","Qqueue","SelectedText","Template","ToggleCommentDirective","$document","getSelection","selection","createRange","render","permission","my_permissions","removeClass","$attrs","addClass","tgCheckPermission","$on","off","checkPermissions","tgClassPermissionWatchAction","unbindWatcher","className","negation","classes","animationFrame","performAnimation","tail","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","shift","$","ctx","slug","is_backlog_activated","is_kanban_activated","is_wiki_activated","is_issues_activated","maxColsPerLine","parseInt","code","keyCode","each","index","substring","deferred","lastPromise","qqueue","bindAdd","args","$templateCache","lodash","tmp","EventsProvider","EventsService","win","subscriptions","connected","pendingMessages","WebSocket","info","loc","scheme","stopExistingConnection","protocol","ltrim","host","ws","addEventListener","onOpen","onMessage","onClose","removeEventListener","close","serialize","message","isObject","sendMessage","messages","msg","send","subscribe","routingKey","callback","subscription","cmd","routing_key","unsubscribe","parse","$get","$win","$conf","provider","FeedbackDirective","$loading","submitButton","start","create","feedback","finish","open","focus","ProjectMenuDirective","ProjectsNavigationController","ProjectsNavigationDirective","navurls","projectUrl","loadInitialData","console","listByMember","filteredProjects","filterText","newProject","filterProjects","toLowerCase","controller","$timeout","tgLoader","$compile","$template","baseTemplate","hideMenu","loadingStart","overlay","projectsTemplate","difftime","timeoutValue","is","one","document","body","css","hide","disablePreventLoading","$ctrls","$ctrl","renderProjects","html","$emit","which","hasClass","show","toggleClass","currentUrl","target","currentTarget","prop","absUrl","preventLoading","require","$tgAuth","getSectionName","mainTemplate","menuEntriesTemplate","renderMainMenu","renderMenuEntries","videoConferenceUrl","sectionName","oldSectionName","targetScope","container","dom","section","feedbackEnabled","replaceWith","baseUrl","videoconferences","videoconferences_salt","popover","listener","stopPropagation","videoconferenceUrl","RelatedTaskAssignedToInlineEditionDirective","RelatedTaskCreateButtonDirective","RelatedTaskCreateFormDirective","RelatedTaskRowDirective","RelatedTasksDirective","templateEdit","templateView","renderEdit","renderView","saveTask","task","subject","save","$modelValue","perms","modify_task","delete_task","select","title","askOnDelete","ngModel","$tgmodel","newTask","assigned_to","createTask","default_task_status","us","$rs","loadTasks","tasks","list","usId","autoSave","notAutoSave","updateRelatedTask","member","imgurl","photo","full_name_display","tgRelatedTaskAssignedToInlineEdition","unbind","userId","updatedRelatedTask","ResourcesService","initResources","initUrls","auth-register","permissions","notify-policies","bulk-create-memberships","milestones","userstories","bulk-create-us","bulk-update-us-backlog-order","bulk-update-us-sprint-order","bulk-update-us-kanban-order","userstories-restore","bulk-create-tasks","bulk-update-task-taskboard-order","tasks-restore","issues","bulk-create-issues","issues-restore","wiki","wiki-restore","wiki-links","choices/userstory-statuses","choices/userstory-statuses/bulk-update-order","choices/points","choices/points/bulk-update-order","choices/task-statuses","choices/task-statuses/bulk-update-order","choices/issue-statuses","choices/issue-statuses/bulk-update-order","choices/issue-types","choices/issue-types/bulk-update-order","choices/priorities","choices/priorities/bulk-update-order","choices/severities","choices/severities/bulk-update-order","sites","project-templates","site-members","site-projects","users-password-recovery","users-change-password-from-recovery","users-change-password","users-change-email","users-cancel-account","user-storage","resolver","userstory-statuses","points","task-statuses","issue-statuses","issue-types","priorities","severities","project-modules","webhooks","webhooks-test","webhooklogs","webhooklogs-resend","history/us","history/issue","history/task","history/wiki","attachments/us","attachments/issue","attachments/task","attachments/wiki_page","custom-attributes/userstory","custom-attributes/issue","custom-attributes/task","custom-attributes-values/userstory","custom-attributes-values/issue","custom-attributes-values/task","exporter","importer","userstories-csv","tasks-csv","issues-csv","$urls","providers","toArray","SearchBoxDirective","SearchController","SearchDirective","scope1","repo","appTitle","loadSearchData","searchTerm","t","term","pageLoaded","loadFilters","defered","loadProject","getBySlug","issueStatusById","issue_statuses","taskStatusById","task_statuses","severityById","priorityById","membersById","usStatusById","us_statuses","searchResults","$route","reload","$templatecache","$routeparams","linkTable","getActiveSection","lastSeatchResults","markSectionTabActive","renderFilterTabs","renderTableContent","tabsDom","maxVal","selectedSectionData","selectedSectionName","wikipages","oldElements","oldScope","children","$destroy","$new","parseHTML","activeSection","sectionData","searchText","AnalyticsService","doc","conf","initialized","accountId","pageEvent","trackRoutes","ignoreFirstPageLoad","injectAnalytics","ga","getUrl","trackPage","s","o","g","r","a","m","createElement","getElementsByTagName","async","src","parentNode","insertBefore","page","category","action","label","AttachmentDirective","AttachmentsController","AttachmentsDirective","confirm","objectId","uploadingAttachments","attachments","attachmentsCount","deprecatedAttachmentsCount","showDeprecated","loadAttachments","urlname","updateCounters","is_deprecated","_createAttachment","attachment","urlName","isCreatedRightNow","splice","createAttachments","promises","addUploadingAttachments","union","reorderAttachment","newIndex","oldIndex","order","updateAttachment","saveAttachments","saveAll","j","revert","removeAttachment","filterAttachments","$templates","showSizeInfo","tdom","sortable","items","handle","containment","dropOnEmpty","scroll","tolerance","placeholder","ui","attach","files","maxFileSize","maxFileSizeMsg","controllerAs","saveAttachment","edit","modifyPermission","created_date","moment","format","description","isDeprecated","tgAttachment","BindScope","jQuery","AssignedToDirective","BlockButtonDirective","CreatedByDisplayDirective","DateRangeDirective","DateSelectorDirective","DeleteButtonDirective","EditableDescriptionDirective","EditableSubjectDirective","ListItemAssignedtoDirective","ListItemIssueStatusDirective","ListItemPriorityDirective","ListItemSeverityDirective","ListItemTaskStatusDirective","ListItemTypeDirective","ListItemUsStatusDirective","SprintProgressBarDirective","TgMainTitleDirective","TgProgressBarDirective","WatchersDirective","renderRange","first","second","endDate","initDate","tgDateRange","valFirst","valSecond","selectedDate","picker","Pikaday","field","onSelect","setDate","renderProgress","percentage","visual_percentage","tgSprintProgressbar","sprint","closedPoints","totalPoints","closed_points","total_points","round","owner","$qqueue","deleteWatcher","isEditable","renderWatchers","ref1","requiredPerm","watchers","$setViewValue","watcherId","watcherIds","pull","renderAssignedTo","issue","assignedTo","assignedToId","ask","instance","is_blocked","onDeleteGoToUrl","onDeleteTitle","subtitle","click","$selectedText","noDescriptionMegEditMode","noDescriptionMegReadMode","noDescriptionMsg","tgListitemIssueStatus","tgListitemTaskStatus","tgListitemUsStatus","tgListitemAssignedto","full_name","domNode","priority","color","tgListitemPriority","severity","tgListitemSeverity","issueTypeById","tgListitemType","el","tgProgressBar","max","min","projectName","ConfirmService","NOTIFICATION_MSG","light-error","lightboxService","loading","lightboxSelector","ok","askChoice","choices","replacement","warning","choicesField","append","selected","stop","percent","time","selector","tsem","CustomAttributeValueDirective","CustomAttributesValuesController","CustomAttributesValuesDirective","customAttributes","customAttributesValues","loadCustomAttributesValues","getAttributeValue","attribute","attributeValue","attributes_values","updateAttributeValue","attributesValues","$storage","collapsedHash","collapsed","hash","requiredEditionPerm","saveAttributeValue","editable","tgCustomAttributeValue","EstimationsService","LbUsEstimationDirective","UsEstimationDirective","$tgEstimationsService","$rootScope","estimationProcess","onSelectedPointForRole","calculateTotalPoints","calculateRoles","roleId","pointId","EstimationProcess","pointsTemplate","$el1","us1","project1","bindClickEvents","pointsById","notNullValues","values","v","reduce","acc","num","role","pointObj","renderPointsSelector","siblings","horizontalList","maxPointLength","point","some","horizontal","closest","defaultFilter","momentFormat","momentFromNow","yesNoFilter","defaultValue","without_suffix","fromNow","HistoryController","HistoryDirective","loadHistory","history","historyResult","values_diff","description_diff","description_html","blocked_note_diff","blocked_note","blocked_note_html","comments","comment","deleteComment","activityId","undeleteComment","templateActivity","templateBase","templateBaseEntries","templateChangeAttachment","templateChangeDiff","templateChangeGeneric","templateChangeList","templateChangePoints","templateDeletedComment","countChanges","formatChange","getHumanizedFieldName","getUserAvatar","getUserFullName","renderActivity","renderAttachmentEntry","renderChange","renderChangeEntries","renderChangeEntry","renderChangesHelperText","renderComment","renderComments","renderCustomAttributesEntry","renderHistory","showAllActivity","showAllComments","humanizedFieldNames","is_closed","finish_date","client_requirement","team_requirement","milestone","user_story","is_iocaine","change","isArray","changes","diff","filename","from","to","flatten","customAttrsChanges","added","removed","difference","ref2","delete_comment_date","delete_comment_user","deleteCommentDate","deleteCommentUser","comment_html","canRestoreComment","pk","avatar","userFullName","creationDate","created_at","changesText","mode","canDeleteComment","entries","totalEntries","showMore","totalComments","last","totalChanges","parents","ngmodel","ImportProjectButtonDirective","trigger","file","errorMsg","AssignedToLightboxDirective","BlockLightboxDirective","BlockingMessageInputDirective","CreateBulkUserstoriesDirective","CreateEditUserstoryDirective","LightboxDirective","LightboxKeyboardNavigationService","LightboxService","WatchersLightboxDirective","docEl","lightboxContent","not","removeAttr","lightboxEl","dispatch","activeElement","next","prev","$tgrepo","block","unblock","finishCallback","watch","isNew","statusList","usStatusList","is_archived","tags","broadcastEvent","keydown","statusId","bulk","bulkCreate","lightboxKeyboardNavigationService","closeLightbox","filterUsers","normalizeString","selectedItem","selectedUser","usersTemplate","string","normalizedString","toUpperCase","partial","searchingText","usersSearch","getFilteredUsers","_filterUsers","Loader","LoaderDirective","onStart","onEnd","startCurrentPageLoader","reset","defaultConfig","forceDisabled","minTime","merge","startLoadTime","force","endTime","TgLoadingService","oldContent","RelatedTaskStatusDirective","UsStatusDirective","usStatusDom","usStatusDomParent","tgUsStatus","onUpdate","statuses","selectionTemplate","updateTaskStatus","taskStatusDom","taskStatusDomParent","tgRelatedTaskStatus","closePopover","isVisible","docViewBottom","docViewLeft","docViewRight","docViewTop","docViewWidth","elemBottom","elemLeft","elemRight","elemTop","elemWidth","display","visibility","scrollTop","height","offset","top","left","fadeOut","fadeIn","ExceptionHandlerFactory","ravenConfig","Raven","install","exception","captureException","ColorizeTagsDirective","LbTagLineDirective","TagLineDirective","TagsDirective","formatter","parser","$formatters","$parsers","backlog","kanban","taskboard","srcTags","tgColorizeTagsType","sort","tag","tags_colors","tgColorizeTags","COMMA_KEY","ENTER_KEY","templateTags","addValue","deleteValue","hideSaveButton","removeInputLastCharacter","renderTags","resetInput","saveInputTag","showSaveButton","tagsColors","style","autocomplete","inputValue","positioningFunction","position","elements","menu","source","my","using","ESC_KEY","hideAddTagButton","hideAddTagButtonText","hideInput","renderInReadModeOnly","showAddTagButton","showAddTagButtonText","showInput","blur","tgMarkitupDirective","$tr","previewTemplate","addLine","closePreviewMode","markdownSettings","markdownTitle","prepareUrlFormatting","preview","previewDomNode","setCaretPosition","urlFormatting","class","markItUpDomNode","markdownDomNode","mdrender","markdown","textarea","caretPosition","range","scrollRelation","totalLines","createTextRange","move","selectionStart","setSelectionRange","scrollHeight","nline","cursorPosition","nameSpace","onShiftEnter","keepDefault","openWith","onEnter","afterInsert","cursorLine","emptyListItem","lastLine","markdownCaretPositon","match","newLineContent","markupSet","placeHolder","closeWith","markItUp","separator","beforeInsert","indices","regex","exec","donotparse","endIndex","startIndex","heading","n","BacklogFiltersDirective","templateSelected","initializeSelectedFilters","renderFilters","renderSelectedFilters","selectQFilter","selectedFilters","showCategories","showFilters","toggleFilterSelection","f","currentFiltersType","loadUserstories","CreateEditSprint","createSprint","hasErrors","estimated_start","estimated_finish","newSprint","copy","setAttr","sprintsCounter","__all__","milestonesCounter","estimatedFinish","estimatedStart","lastSprint","lastSprintNameDom","sprints","BacklogController","BacklogDirective","TgBacklogProgressBarDirective","UsPointsDirective","UsRolePointsSelectorDirective","tgBacklogGraphDirective","params1","events","analytics","showTags","activeFilters","initializeEventHandlers","getShowTags","loadProjectStats","loadSprints","moveUs","loadClosedSprints","unloadClosedSprints","initializeSubscription","routingKey1","routingKey2","toggleShowTags","storeShowTags","toggleActiveFilters","stats","completedPercentage","refreshTagsColors","closedSprints","closed","user_stories","openSprints","reverse","sprintsById","resetFilters","selectedStatuses","selectedTags","filtersQ","filterGrp","httpParams","getUrlFilters","storeQueryParams","listUnassigned","setSearchDataFilters","filterVisibleUserstories","generateFilters","loadBacklog","totalClosedMilestones","total_closed_milestones","visibleUserstories","isFilterSelected","searchdata","Object","prepareBulkUpdateData","uses","us_id","resortUserStories","isModified","usList","newUsIndex","newSprintId","len1","len2","oldSprintId","Array","bulkUpdateBacklogOrder","bulkUpdateSprintOrder","len3","oldSprint","urlfilters","results1","pick","plainStatuses","plainTags","countBy","k","obj","count","editUserStory","deleteUserStory","without","addNewUs","default_us_status","addNewSprint","doomLineTemplate","linkDoomLine","linkFilters","linkToolbar","showHideFilter","showHideTags","addDoomLineDom","getUsItems","reloadDoomLine","removeDoomlineDom","current_sum","domElement","assigned_points","before","rowElements","moveToCurrentSprint","selectedUss","extraPoints","totalExtraPoints","ussCurrent","moveToCurrentSprintDom","selectedUsDom","ussDom","ussToMove","itemScope","elm","sidebar","filtersSearch","disableSelection","numberOfRoles","roleName","rolScope","$tgTemplate","rolesTemplate","bindClickElements","filteringRoleId","renderRolesSelector","selectedRoleId","updatingSelectedRoleId","tgBacklogUsPoints","popRolesDom","redrawChart","dataToDraw","client_increment_line","colors","evolution_line","milestonesRange","optimal_line","options","team_increment_line","zero_line","zip","fillColor","ml","optimal","evolution","grid","borderWidth","right","bottom","borderColor","hoverable","xaxis","ticks","axisLabel","axisLabelUseCanvas","axisLabelFontSizePixels","axisLabelFontFamily","axisLabelPadding","tickFormatter","series","shadowSize","fill","radius","lineWidth","tooltip","tooltipOpts","content","xval","yval","flotItem","seriesIndex","abs","empty","plot","adjustPercentaje","projectPointsPercentaje","closedPointsPercentaje","adjusted","tgBacklogProgressBar","definedPoints","defined_points","BacklogEmptySortableDirective","BacklogSortableDirective","SprintSortableDirective","deleteElement","$tgConfirm","getUsIndex","filterError","cancel","connectWith","cursorAt","itemIndex","itemUs","BacklogSprintDirective","BacklogSprintHeaderDirective","ToggleExcludeClosedSprintsVisualization","refreshSprintTableHeight","slideOptions","sprintTableMinHeight","toggleSprint","duration","easing","sprintTable","sprintArrow","tgBacklogSprint","slideToggle","estimatedDateRange","taskboardUrl","excludeClosedSprints","loadingElm","after","SprintGraphDirective","days","day","unshift","d","optimal_points","open_points","tickSize","daysNames","yaxis","formattedDate","roundedValue","CreateBulkTasksDirective","CreateEditTaskDirective","sprintId","TaskboardController","TaskboardDirective","TaskboardSquishColumnDirective","TaskboardTaskDirective","TaskboardUserDirective","rs1","loadTaskboard","taskMove","loadSprintStats","loadSprint","pointsList","roleById","taskStatusList","completedPointsSum","remainingPointsSum","remainingTasks","totalPointsSum","res","completed_points","total_tasks","completed_tasks","openTasks","usTasks","sslug","refreshTasksOrder","resortTasks","bulkUpdateTaskTaskboardOrder","task_id","taskboard_order","addNewTask","editTaskAssignedTo","tableBodyDom","tableHeaderDom","scrollLeft","avatarWidth","maxColumnWidth","getCeilWidth","recalculateStatusColumnWidth","recalculateTaskboardWidth","refreshTaskboardTableWidth","setStatusColumnWidth","statusesFolded","getStatusColumnModes","usFolded","getUsRowModes","foldStatus","storeStatusColumnModes","foldUs","storeUsRowModes","tasksMatrixSize","sqrt","column","columnWidths","columns","totalWidth","outerWidth","total","statusFoldedWidth","forEach","clickable","username_label","assign","TaskboardSortableDirective","itemEl","newParentScope","oldParentScope","itemTask","newStatusId","newUsId","oldStatusId","oldUsId","parentEl","st","KanbanArchivedStatusHeaderDirective","KanbanArchivedStatusIntroDirective","KanbanController","KanbanDirective","KanbanSquishColumnDirective","KanbanUserDirective","KanbanUserstoryDirective","KanbanWipLimitDirective","defaultViewMode","defaultViewModes","maximized","cardClass","minimized","statusViewModes","onAssignedToChanged","loadUserStoriesForStatus","hideUserStoriesForStatus","changeUsAssignedTo","userid","status__is_archived","listAll","usByStatus","us_archived","loadKanban","generateStatusViewModes","storedStatusViewModes","getStatusViewModes","has","storeStatusViewModes","updateStatusViewMode","newViewMode","getCardClass","kanban_order","itemsToSave","bulkUpdateKanbanOrder","hideArchivedText","showArchivedText","hidden","tgKanbanArchivedStatusHeader","hiddenUserStoriexText","userStories","updateIntroText","tgKanbanArchivedStatusIntro","isArchived","userStoriesLoaded","updateTableWidth","folds","redrawWipLimit","tgKanbanWipLimit","wtid","tgKanbanUserAvatar","KanbanSortableDirective","IssueDetailController","IssuePriorityButtonDirective","IssueSeverityButtonDirective","IssueStatusButtonDirective","IssueStatusDisplayDirective","IssueTypeButtonDirective","PromoteIssueToUsButtonDirective","issueRef","issueref","initializeOnDeleteGoToUrl","loadIssue","statusById","typeById","issue_types","typeList","severityList","priorityList","getByRef","issueId","commentModel","neighbors","previous","previousUrl","typees","severityes","priorityes","generated_from_issue","CreateBulkIssuesDirective","CreateIssueDirective","default_issue_status","default_issue_type","default_priority","default_severity","IssueAssignedToInlineEditionDirective","IssueStatusInlineEditionDirective","IssuesController","IssuesDirective","IssuesFiltersDirective","loadIssues","getFilters","storeFilters","issueStatusList","issueTypes","getUrlFilter","loadMyFilters","getMyFilters","removeNotExistingFiltersFromUrl","currentSearch","existingValues","filterName","filterValue","splittedValues","intersection","markSelectedFilters","isSelected","omit","myFilters","filtersData","choicesFiltersFormat","tagsFilterFormat","usersFiltersFormat","unknownOption","reformatedUsers","unknownItem","u","byIdObject","createdBy","created_by","types","loadIssuesRequests","urlFilters","models","current","paginatedBy","saveCurrentFiltersTo","newFilter","storeMyFilters","deleteMyFilter","addNewIssue","addIssuesInBulk","linkOrdering","linkPagination","$pagEl","afterCurrent","atBegin","atEnd","beforeCurrent","getNumPages","renderPagination","numPages","cpage","pages","showPrevious","showNext","pagenum","colHeadElement","currentOrder","icon","finalOrder","newOrder","filterId","customFilterName","loadPromise","currentfilterstype","updateIssueStatus","issueStatusDom","issueStatusDomParent","tgIssueStatusInlineEdition","updateIssue","tgIssueAssignedToInlineEdition","updatedIssue","UsClientRequirementButtonDirective","UsStatusButtonDirective","UsStatusDisplayDirective","UsTasksProgressDisplayDirective","UsTeamRequirementButtonDirective","UserStoryDetailController","usRef","usref","loadUs","kanbanStaus","noMilestone","order_by","progress","totalClosedTasks","totalTasks","canEdit","isRequired","TaskDetailController","TaskIsIocaineButtonDirective","TaskStatusButtonDirective","TaskStatusDisplayDirective","taskRef","taskref","loadTask","taskId","loadUserStory","isIocaine","LeaveProjectDirective","TeamController","TeamFiltersDirective","TeamMemberCurrentUserDirective","TeamMemberStatsDirective","TeamMembersDirective","setRole","filtersRole","loadMembers","currentUser","membership","totals","is_user_active","issuesEnabled","tasksEnabled","wikiEnabled","loadMemberStats","memberStats","vals","sum","processStats","processStat","stat","singleStat","leave","projectid","EditableWikiContentDirective","WikiDetailController","WikiSummaryDirective","projectSlug","wikiSlug","loadWiki","wikiId","loadWikiLinks","listLinks","wikiLinks","last_modifier","imgUrl","totalEditions","editions","lastModifiedDate","modified_date","wikiPage","cancelEdition","disableEdition","getSelectedText","switchToEditMode","switchToReadMode","button","WikiNavDirective","addWikiLinkPermission","deleteWikiLinkPermission","linkId","linkSlug","href","newLink","CreateMembersDirective","MAX_MEMBERSHIP_FIELDSETS","extraTextTemplate","createFieldSet","resetForm","required","roleList","fieldSet","prepend","lastActionButton","newFieldSet","invitation_extra_text","memberWrappers","destroy","mw","email","memberWrapper","role_id","bulkCreateMemberships","MembershipsController","MembershipsDirective","MembershipsRowActionsDirective","MembershipsRowAdminCheckboxDirective","MembershipsRowAvatarDirective","MembershipsRowRoleSelectorDirective","i_am_owner","httpFilters","addNewMembers","user_email","tgMembershipsRowAvatar","inputId","tgMembershipsRowAdminCheckbox","is_owner","selectedRole","tgMembershipsRowRoleSelector","newRole","activedTemplate","pendingTemplate","tgMembershipsRowActions","resendInvitation","AdminNavigationDirective","tgAdminNavigation","CsvExporterController","CsvExporterIssuesController","CsvExporterTasksController","CsvExporterUserstoriesController","ProjectDefaultValuesDirective","ProjectExportDirective","ProjectModulesDirective","ProjectProfileController","ProjectProfileDirective","prioritiesList","severitiesList","issueTypesList","openDeleteLightbox","newUrl","isVideoconferenceActivated","buttonsEl","hideButtons","hideResult","hideSpinner","resultEl","resultMessageEl","resultTitleEl","setAsyncMessage","setAsyncTitle","setLoadingMessage","setLoadingTitle","setSyncMessage","setSyncTitle","showButtons","showErrorMode","showExportResultAsyncMode","showExportResultSyncMode","showLoadingMode","showResult","showSpinner","spinnerEl","dumpUrl","_generateUuid","setCsvUuid","csvUrl","resolveAbsolute","csvUuid","uuid","regenerateUuid","identity","ColorSelectionDirective","ProjectCustomAttributesController","ProjectCustomAttributesDirective","ProjectValuesController","ProjectValuesDirective","ProjectValuesSectionController","moveValue","loadValues","resource","listValues","maxValueOrder","itemValue","linkDragAndDrop","linkValue","axis","goToBottomList","initializeNewValue","saveNewValue","saveValue","valueType","newValue","table","formEl","row","editionRow","option","onSucces","moveTo","moveCustomAttributes","deleteCustomAttribute","saveCustomAttribute","createCustomAttribute","loadCustomAttributes","maxOrder","attrValues","attrModel","idx","cancelCreate","cancelUpdate","hideAddButton","hideCancelButton","hideCreateForm","hideEditForm","resetNewAttr","revertChangesInCustomAttribute","showAddButton","showCancelButton","showCreateForm","showEditForm","sortableEl","itemAttr","newAttr","EditRoleDirective","NewRoleDirective","RolePermissionsDirective","RolesController","RolesDirective","anyComputableRole","computable","loadExternalUserRole","public_permission","external_user","public_permissions","loadRoles","setComputable","toggleView","toggle","DEFAULT_PERMISSIONS","categoryTemplate","resumeTemplate","generateCategoriesFromRole","renderCategory","renderPermissions","renderResume","categories","isPermissionEditable","issuePermissions","milestonePermissions","setActivePermissions","setActivePermissionsPerCategory","taskPermissions","userStoryPermissions","wikiPermissions","active","is_private","cat","activePermissions","getActivePermissions","categoryId","anon_permissions","BitbucketController","BitbucketWebhooksDirective","GithubController","GithubWebhooksDirective","GitlabController","GitlabWebhooksDirective","NewWebhookDirective","SelectInputText","ValidOriginIpsDirective","WebhookDirective","WebhooksController","loadWebhooks","openHistory","showEditMode","showVisualizationMode","updateLogs","updateShowHideHistoryText","webhook","tgWebhook","validStatus","prettySentHeaders","pairs","request_headers","arg","header","prettySentData","request_data","prettyDate","created","logs_counter","logs","historyElement","textElement","test","resend","addWebhookDOMNode","formDOMNode","loadModules","github","gitlab","bitbucket","saveAttribute","$ngModel","CreateProject","DeleteProjectDirective","$projectUrl","$cacheFactory","removeAll","error_field","error_step","selectors","total_story_points","total_milestones","creation_template","head","step","fields","projectToDelete","ProjectController","ProjectsController","ProjectsListDirective","ProjectsPaginationDirective","recents","loadPageData","checkButtonVisibility","containerSize","hasNextPage","hasPagination","hasPrevPage","nextBtn","nextPage","pageSize","prevBtn","prevPage","visible","lastLi","maxTop","newTop","outerHeight","animate","BindHtmlDirective","BindOnceAltDirective","BindOnceBindDirective","BindOnceHrefDirective","BindOnceHtmlDirective","BindOnceRefDirective","BindOnceSrcDirective","BindOnceTitleDirective","BindTitleDirective","tgBoBind","tgBoHtml","tgBoRef","tgBoSrc","tgBoHref","tgBoAlt","tgBoTitle","tgTitleHtml","tgBindHtml","ConfigurationService","ContribController","rootScope","currentPlugin","pluginTemplate","FiltersStorageService","HttpService","Authorization","request","I18nDirective","I18nService","ns","fallbackLng","lng","localesEn","resStore","en","app","setLanguage","language","i18n","setLng","currentLang","opts","tr","trOpts","locationFactory","lastRoute","un","Model","ModelService","dataTypes","_attrs","_name","_dataTypes","setAttrs","_modifiedAttrs","_isModified","applyCasts","attrName","castMethod","castName","casts","getIdAttrName","getName","attrs","getter","self","setter","substr","enumerable","configurable","defineProperty","isAttributeModified","markSaved","desSerialize","sdata","ddata","cls","int","float","NavigationUrlsDirective","NavigationUrlsService","formatUrl","replacer","bindOnceP","parseNav","tgNav","fullUrl","getURLParams","getURLParamsStr","tgNavGetParams","param","RepositoryService","model1","resolveUrlForModel","idAttrName","resolveUrlForAttributeModel","extraParams","_data","refresh","queryMany","httpOptions","enablePagination","queryOneAttribute","queryOneRaw","queryPaginated","cache","wikipage","StorageService","_default","serializedValue","localStorage","getItem","setItem","removeItem","UrlsService","fmt","String","mainUrl","Error","rtrim","resourceProvider","object_id","uploadComplete","uploadFailed","uploadProgress","evt","progressMessage","loaded","progressPercent","responseText","_error","FormData","XMLHttpRequest","upload","setRequestHeader","_get","userstory","_list","$http","filtersHashSuffix","hashSuffix","myFiltersHashSuffix","getQueryParams","project_id","bulk_issues","innerPromise","hashSuffixStatusColumnModes","hashSuffixStatusViewModes","listByUser","bulk_memberships","notifyPolicies","memberId","regenerate_userstories_csv_uuid","regenerate_issues_csv_uuid","regenerate_tasks_csv_uuid","statusUpdater","complete","failed","get_all","hashSuffixUsRowModes","userStoryId","sprint_id","bulk_tasks","changeAvatar","transformRequest","removeAvatar","changePassword","currentPassword","newPassword","current_password","userSettings","status_id","bulk_stories","webhookId","webhooklogId","UserChangePasswordController","UserChangePasswordDirective","newPassword1","newPassword2","DeleteUserDirective","TaigaAvatarModelDirective","UserAvatarDirective","UserProfileDirective","UserSettingsController","avatarAttachment","$parse","modelSetter","tgAvatarModel","UserSettingsNavigationDirective","tgUserSettingsNavigation","UserNotificationsController","UserNotificationsDirective","UserNotificationsListDirective","loadNotifyPolicies","policy","policyIndex","prev_level","notify_level","TermsNoticeDirective","privacyPolicyUrl","termsOfServiceUrl","termsUrl","privacyUrl","defaultMessage","type-email","type-url","type-urlstrict","type-number","type-digits","type-dateIso","type-alphanum","type-phone","notnull","notblank","regexp","minlength","maxlength","rangelength","mincheck","maxcheck","rangecheck","equalto","common","blocked","new-bulk","one-item-line","pagination","markdown-editor","heading-1","heading-2","heading-3","bold","italic","strike","bulleted-list","numeric-list","picture","quotes","code-block","help","link-placeholder","title-new","team-requirement","client-requirement"],"mappings":"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","file":"app.js","sourcesContent":["\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: app.coffee\n */\n\n(function() {\n var configure, init, module, modules, taiga;\n\n this.taiga = taiga = {};\n\n this.taigaContribPlugins = this.taigaContribPlugins || [];\n\n taiga.generateHash = function(components) {\n if (components == null) {\n components = [];\n }\n components = _.map(components, function(x) {\n return JSON.stringify(x);\n });\n return hex_sha1(components.join(\":\"));\n };\n\n taiga.generateUniqueSessionIdentifier = function() {\n var date, randomNumber;\n date = (new Date()).getTime();\n randomNumber = Math.floor(Math.random() * 0x9000000);\n return taiga.generateHash([date, randomNumber]);\n };\n\n taiga.sessionId = taiga.generateUniqueSessionIdentifier();\n\n configure = function($routeProvider, $locationProvider, $httpProvider, $provide, $tgEventsProvider, tgLoaderProvider, $compileProvider) {\n var authHttpIntercept, defaultHeaders, versionCheckHttpIntercept;\n $routeProvider.when(\"/\", {\n templateUrl: \"project/projects.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/\", {\n templateUrl: \"project/project.html\"\n });\n $routeProvider.when(\"/project/:pslug/search\", {\n templateUrl: \"search/search.html\",\n reloadOnSearch: false\n });\n $routeProvider.when(\"/project/:pslug/backlog\", {\n templateUrl: \"backlog/backlog.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/kanban\", {\n templateUrl: \"kanban/kanban.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/taskboard/:sslug\", {\n templateUrl: \"taskboard/taskboard.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/us/:usref\", {\n templateUrl: \"us/us-detail.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/task/:taskref\", {\n templateUrl: \"task/task-detail.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/wiki\", {\n redirectTo: function(params) {\n return \"/project/\" + params.pslug + \"/wiki/home\";\n }\n });\n $routeProvider.when(\"/project/:pslug/wiki/:slug\", {\n templateUrl: \"wiki/wiki.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/team\", {\n templateUrl: \"team/team.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/issues\", {\n templateUrl: \"issue/issues.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/issue/:issueref\", {\n templateUrl: \"issue/issues-detail.html\",\n resolve: {\n loader: tgLoaderProvider.add()\n }\n });\n $routeProvider.when(\"/project/:pslug/admin/project-profile/details\", {\n templateUrl: \"admin/admin-project-profile.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-profile/default-values\", {\n templateUrl: \"admin/admin-project-default-values.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-profile/modules\", {\n templateUrl: \"admin/admin-project-modules.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-profile/export\", {\n templateUrl: \"admin/admin-project-export.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-profile/reports\", {\n templateUrl: \"admin/admin-project-reports.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-values/status\", {\n templateUrl: \"admin/admin-project-values-status.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-values/points\", {\n templateUrl: \"admin/admin-project-values-points.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-values/priorities\", {\n templateUrl: \"admin/admin-project-values-priorities.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-values/severities\", {\n templateUrl: \"admin/admin-project-values-severities.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-values/types\", {\n templateUrl: \"admin/admin-project-values-types.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-values/custom-fields\", {\n templateUrl: \"admin/admin-project-values-custom-fields.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/memberships\", {\n templateUrl: \"admin/admin-memberships.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/roles\", {\n templateUrl: \"admin/admin-roles.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/third-parties/webhooks\", {\n templateUrl: \"admin/admin-third-parties-webhooks.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/third-parties/github\", {\n templateUrl: \"admin/admin-third-parties-github.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/third-parties/gitlab\", {\n templateUrl: \"admin/admin-third-parties-gitlab.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/third-parties/bitbucket\", {\n templateUrl: \"admin/admin-third-parties-bitbucket.html\"\n });\n $routeProvider.when(\"/project/:pslug/admin/contrib/:plugin\", {\n templateUrl: \"contrib/main.html\"\n });\n $routeProvider.when(\"/project/:pslug/user-settings/user-profile\", {\n templateUrl: \"user/user-profile.html\"\n });\n $routeProvider.when(\"/project/:pslug/user-settings/user-change-password\", {\n templateUrl: \"user/user-change-password.html\"\n });\n $routeProvider.when(\"/project/:pslug/user-settings/user-avatar\", {\n templateUrl: \"user/user-avatar.html\"\n });\n $routeProvider.when(\"/project/:pslug/user-settings/mail-notifications\", {\n templateUrl: \"user/mail-notifications.html\"\n });\n $routeProvider.when(\"/change-email/:email_token\", {\n templateUrl: \"user/change-email.html\"\n });\n $routeProvider.when(\"/cancel-account/:cancel_token\", {\n templateUrl: \"user/cancel-account.html\"\n });\n $routeProvider.when(\"/login\", {\n templateUrl: \"auth/login.html\"\n });\n $routeProvider.when(\"/register\", {\n templateUrl: \"auth/register.html\"\n });\n $routeProvider.when(\"/forgot-password\", {\n templateUrl: \"auth/forgot-password.html\"\n });\n $routeProvider.when(\"/change-password\", {\n templateUrl: \"auth/change-password-from-recovery.html\"\n });\n $routeProvider.when(\"/change-password/:token\", {\n templateUrl: \"auth/change-password-from-recovery.html\"\n });\n $routeProvider.when(\"/invitation/:token\", {\n templateUrl: \"auth/invitation.html\"\n });\n $routeProvider.when(\"/error\", {\n templateUrl: \"error/error.html\"\n });\n $routeProvider.when(\"/not-found\", {\n templateUrl: \"error/not-found.html\"\n });\n $routeProvider.when(\"/permission-denied\", {\n templateUrl: \"error/permission-denied.html\"\n });\n $routeProvider.otherwise({\n redirectTo: '/not-found'\n });\n $locationProvider.html5Mode({\n enabled: true,\n requireBase: false\n });\n defaultHeaders = {\n \"Content-Type\": \"application/json\",\n \"Accept-Language\": \"en\",\n \"X-Session-Id\": taiga.sessionId\n };\n $httpProvider.defaults.headers[\"delete\"] = defaultHeaders;\n $httpProvider.defaults.headers.patch = defaultHeaders;\n $httpProvider.defaults.headers.post = defaultHeaders;\n $httpProvider.defaults.headers.put = defaultHeaders;\n $httpProvider.defaults.headers.get = {\n \"X-Session-Id\": taiga.sessionId\n };\n $tgEventsProvider.setSessionId(taiga.sessionId);\n authHttpIntercept = function($q, $location, $navUrls, $lightboxService) {\n var httpResponseError;\n httpResponseError = function(response) {\n var nextPath;\n if (response.status === 0) {\n $lightboxService.closeAll();\n $location.path($navUrls.resolve(\"error\"));\n $location.replace();\n } else if (response.status === 401) {\n nextPath = $location.path();\n $location.url($navUrls.resolve(\"login\")).search(\"next=\" + nextPath);\n }\n return $q.reject(response);\n };\n return {\n responseError: httpResponseError\n };\n };\n $provide.factory(\"authHttpIntercept\", [\"$q\", \"$location\", \"$tgNavUrls\", \"lightboxService\", authHttpIntercept]);\n $httpProvider.interceptors.push('authHttpIntercept');\n versionCheckHttpIntercept = function($q, $confirm) {\n var httpResponseError, versionErrorMsg;\n versionErrorMsg = \"Someone inside Taiga has changed this before and our Oompa Loompas cannot apply your changes. Please reload and apply your changes again (they will be lost).\";\n httpResponseError = function(response) {\n if (response.status === 400 && response.data.version) {\n $confirm.notify(\"error\", versionErrorMsg, null, 10000);\n return $q.reject(response);\n }\n return $q.reject(response);\n };\n return {\n responseError: httpResponseError\n };\n };\n $provide.factory(\"versionCheckHttpIntercept\", [\"$q\", \"$tgConfirm\", versionCheckHttpIntercept]);\n $httpProvider.interceptors.push('versionCheckHttpIntercept');\n window.checksley.updateValidators({\n linewidth: function(val, width) {\n var lines, valid;\n lines = taiga.nl2br(val).split(\"
\");\n valid = _.every(lines, function(line) {\n return line.length < width;\n });\n return valid;\n }\n });\n window.checksley.updateMessages(\"default\", {\n linewidth: \"The subject must have a maximum size of %s\"\n });\n return $compileProvider.debugInfoEnabled(window.taigaConfig.debugInfo || false);\n };\n\n init = function($log, $i18n, $config, $rootscope, $auth, $events, $analytics) {\n $i18n.initialize($config.get(\"defaultLanguage\"));\n $log.debug(\"Initialize application\");\n $rootscope.contribPlugins = this.taigaContribPlugins;\n $rootscope.adminPlugins = _.where(this.taigaContribPlugins, {\n \"type\": \"admin\"\n });\n if ($auth.isAuthenticated()) {\n $events.setupConnection();\n }\n return $analytics.initialize();\n };\n\n modules = [\"taigaBase\", \"taigaCommon\", \"taigaResources\", \"taigaLocales\", \"taigaAuth\", \"taigaEvents\", \"taigaRelatedTasks\", \"taigaBacklog\", \"taigaTaskboard\", \"taigaKanban\", \"taigaIssues\", \"taigaUserStories\", \"taigaTasks\", \"taigaTeam\", \"taigaWiki\", \"taigaSearch\", \"taigaAdmin\", \"taigaNavMenu\", \"taigaProject\", \"taigaUserSettings\", \"taigaFeedback\", \"taigaPlugins\", \"taigaIntegrations\", \"templates\", \"ngRoute\", \"ngAnimate\"].concat(_.map(this.taigaContribPlugins, function(plugin) {\n return plugin.module;\n }));\n\n module = angular.module(\"taiga\", modules);\n\n module.config([\"$routeProvider\", \"$locationProvider\", \"$httpProvider\", \"$provide\", \"$tgEventsProvider\", \"tgLoaderProvider\", \"$compileProvider\", configure]);\n\n module.run([\"$log\", \"$tgI18n\", \"$tgConfig\", \"$rootScope\", \"$tgAuth\", \"$tgEvents\", \"$tgAnalytics\", init]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: classes.coffee\n */\n\n(function() {\n var TaigaBase, TaigaController, TaigaService,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };\n\n TaigaBase = (function() {\n function TaigaBase() {}\n\n return TaigaBase;\n\n })();\n\n TaigaService = (function(superClass) {\n extend(TaigaService, superClass);\n\n function TaigaService() {\n return TaigaService.__super__.constructor.apply(this, arguments);\n }\n\n return TaigaService;\n\n })(TaigaBase);\n\n TaigaController = (function(superClass) {\n extend(TaigaController, superClass);\n\n function TaigaController() {\n this.onInitialDataError = bind(this.onInitialDataError, this);\n return TaigaController.__super__.constructor.apply(this, arguments);\n }\n\n TaigaController.prototype.onInitialDataError = function(xhr) {\n if (xhr) {\n if (xhr.status === 404) {\n this.location.path(this.navUrls.resolve(\"not-found\"));\n this.location.replace();\n } else if (xhr.status === 403) {\n this.location.path(this.navUrls.resolve(\"permission-denied\"));\n this.location.replace();\n }\n }\n return this.q.reject(xhr);\n };\n\n return TaigaController;\n\n })(TaigaBase);\n\n this.taiga.Base = TaigaBase;\n\n this.taiga.Service = TaigaService;\n\n this.taiga.Controller = TaigaController;\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: utils.coffee\n */\n\n(function() {\n var bindMethods, bindOnce, cancelTimeout, debounce, debounceLeading, groupBy, joinStr, mixOf, nl2br, scopeDefer, sizeFormat, slugify, startswith, taiga, timeout, toString, toggleText, trim, unslugify,\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },\n slice = [].slice,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n nl2br = (function(_this) {\n return function(str) {\n var breakTag;\n breakTag = '
';\n return (str + '').replace(/([^>\\r\\n]?)(\\r\\n|\\n\\r|\\r|\\n)/g, '$1' + breakTag + '$2');\n };\n })(this);\n\n bindMethods = (function(_this) {\n return function(object) {\n var dependencies, methods;\n dependencies = _.keys(object);\n methods = [];\n _.forIn(object, function(value, key) {\n if (indexOf.call(dependencies, key) < 0) {\n return methods.push(key);\n }\n });\n return _.bindAll(object, methods);\n };\n })(this);\n\n bindOnce = (function(_this) {\n return function(scope, attr, continuation) {\n var delBind, val;\n val = scope.$eval(attr);\n if (val !== void 0) {\n return continuation(val);\n }\n delBind = null;\n return delBind = scope.$watch(attr, function(val) {\n if (val === void 0) {\n return;\n }\n continuation(val);\n if (delBind) {\n return delBind();\n }\n });\n };\n })(this);\n\n mixOf = function() {\n var Mixed, base, i, method, mixin, mixins, name, ref;\n base = arguments[0], mixins = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n Mixed = (function(superClass) {\n extend(Mixed, superClass);\n\n function Mixed() {\n return Mixed.__super__.constructor.apply(this, arguments);\n }\n\n return Mixed;\n\n })(base);\n for (i = mixins.length - 1; i >= 0; i += -1) {\n mixin = mixins[i];\n ref = mixin.prototype;\n for (name in ref) {\n method = ref[name];\n Mixed.prototype[name] = method;\n }\n }\n return Mixed;\n };\n\n trim = function(data, char) {\n return _.str.trim(data, char);\n };\n\n slugify = function(data) {\n return _.str.slugify(data);\n };\n\n unslugify = function(data) {\n if (data) {\n return _.str.capitalize(data.replace(/-/g, ' '));\n }\n return data;\n };\n\n toggleText = function(element, texts) {\n var nextTextPosition, text;\n nextTextPosition = element.data('nextTextPosition');\n if ((nextTextPosition == null) || nextTextPosition >= texts.length) {\n nextTextPosition = 0;\n }\n text = texts[nextTextPosition];\n element.data('nextTextPosition', nextTextPosition + 1);\n return element.text(text);\n };\n\n groupBy = function(coll, pred) {\n var i, item, len, result;\n result = {};\n for (i = 0, len = coll.length; i < len; i++) {\n item = coll[i];\n result[pred(item)] = item;\n }\n return result;\n };\n\n timeout = function(wait, continuation) {\n return window.setTimeout(continuation, wait);\n };\n\n cancelTimeout = function(timeoutVar) {\n return window.clearTimeout(timeoutVar);\n };\n\n scopeDefer = function(scope, func) {\n return _.defer((function(_this) {\n return function() {\n return scope.$apply(func);\n };\n })(this));\n };\n\n toString = function(value) {\n if (_.isNumber(value)) {\n return value + \"\";\n } else if (_.isString(value)) {\n return value;\n } else if (_.isPlainObject(value)) {\n return JSON.stringify(value);\n } else if (_.isUndefined(value)) {\n return \"\";\n }\n return value.toString();\n };\n\n joinStr = function(str, coll) {\n return _.str.join(str, coll);\n };\n\n debounce = function(wait, func) {\n return _.debounce(func, wait, {\n leading: true,\n trailing: false\n });\n };\n\n debounceLeading = function(wait, func) {\n return _.debounce(func, wait, {\n leading: false,\n trailing: true\n });\n };\n\n startswith = function(str1, str2) {\n return _.str.startsWith(str1, str2);\n };\n\n sizeFormat = function(input, precision) {\n var number, size, units;\n if (precision == null) {\n precision = 1;\n }\n if (isNaN(parseFloat(input)) || !isFinite(input)) {\n return \"-\";\n }\n if (input === 0) {\n return \"0 bytes\";\n }\n units = [\"bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\n number = Math.floor(Math.log(input) / Math.log(1024));\n if (number > 5) {\n number = 5;\n }\n size = (input / Math.pow(1024, number)).toFixed(precision);\n return size + \" \" + units[number];\n };\n\n taiga = this.taiga;\n\n taiga.nl2br = nl2br;\n\n taiga.bindMethods = bindMethods;\n\n taiga.bindOnce = bindOnce;\n\n taiga.mixOf = mixOf;\n\n taiga.trim = trim;\n\n taiga.slugify = slugify;\n\n taiga.unslugify = unslugify;\n\n taiga.toggleText = toggleText;\n\n taiga.groupBy = groupBy;\n\n taiga.timeout = timeout;\n\n taiga.cancelTimeout = cancelTimeout;\n\n taiga.scopeDefer = scopeDefer;\n\n taiga.toString = toString;\n\n taiga.joinStr = joinStr;\n\n taiga.debounce = debounce;\n\n taiga.debounceLeading = debounceLeading;\n\n taiga.startswith = startswith;\n\n taiga.sizeFormat = sizeFormat;\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/controllerMixins.coffee\n */\n\n(function() {\n var FiltersMixin, PageMixin, groupBy, joinStr, taiga, toString, trim;\n\n taiga = this.taiga;\n\n groupBy = this.taiga.groupBy;\n\n joinStr = this.taiga.joinStr;\n\n trim = this.taiga.trim;\n\n toString = this.taiga.toString;\n\n PageMixin = (function() {\n function PageMixin() {}\n\n PageMixin.prototype.fillUsersAndRoles = function(users, roles) {\n var activeUsers, availableRoles;\n activeUsers = _.filter(users, (function(_this) {\n return function(user) {\n return user.is_active;\n };\n })(this));\n this.scope.activeUsers = _.sortBy(activeUsers, \"full_name_display\");\n this.scope.activeUsersById = groupBy(this.scope.activeUsers, function(e) {\n return e.id;\n });\n this.scope.users = _.sortBy(users, \"full_name_display\");\n this.scope.usersById = groupBy(this.scope.users, function(e) {\n return e.id;\n });\n this.scope.roles = _.sortBy(roles, \"order\");\n availableRoles = _(this.scope.project.memberships).map(\"role\").uniq().value();\n return this.scope.computableRoles = _(roles).filter(\"computable\").filter(function(x) {\n return _.contains(availableRoles, x.id);\n }).value();\n };\n\n PageMixin.prototype.loadUsersAndRoles = function() {\n var promise;\n promise = this.q.all([this.rs.projects.usersList(this.scope.projectId), this.rs.projects.rolesList(this.scope.projectId)]);\n return promise.then((function(_this) {\n return function(results) {\n var roles, users;\n users = results[0], roles = results[1];\n _this.fillUsersAndRoles(users, roles);\n return results;\n };\n })(this));\n };\n\n return PageMixin;\n\n })();\n\n taiga.PageMixin = PageMixin;\n\n FiltersMixin = (function() {\n function FiltersMixin() {}\n\n FiltersMixin.prototype.selectFilter = function(name, value, load) {\n var existing, location, params;\n if (load == null) {\n load = false;\n }\n params = this.location.search();\n if (params[name] !== void 0 && name !== \"page\") {\n existing = _.map(taiga.toString(params[name]).split(\",\"), function(x) {\n return trim(x);\n });\n existing.push(taiga.toString(value));\n existing = _.compact(existing);\n value = joinStr(\",\", _.uniq(existing));\n }\n if (!this.location.isInCurrentRouteParams(name, value)) {\n location = load ? this.location : this.location.noreload(this.scope);\n return location.search(name, value);\n }\n };\n\n FiltersMixin.prototype.replaceFilter = function(name, value, load) {\n var location;\n if (load == null) {\n load = false;\n }\n if (!this.location.isInCurrentRouteParams(name, value)) {\n location = load ? this.location : this.location.noreload(this.scope);\n return location.search(name, value);\n }\n };\n\n FiltersMixin.prototype.replaceAllFilters = function(filters, load) {\n var location;\n if (load == null) {\n load = false;\n }\n location = load ? this.location : this.location.noreload(this.scope);\n return location.search(filters);\n };\n\n FiltersMixin.prototype.unselectFilter = function(name, value, load) {\n var location, newValues, params, parsedValues;\n if (load == null) {\n load = false;\n }\n params = this.location.search();\n if (params[name] === void 0) {\n return;\n }\n if (value === void 0 || value === null) {\n delete params[name];\n }\n parsedValues = _.map(taiga.toString(params[name]).split(\",\"), function(x) {\n return trim(x);\n });\n newValues = _.reject(parsedValues, function(x) {\n return x === taiga.toString(value);\n });\n newValues = _.compact(newValues);\n if (_.isEmpty(newValues)) {\n value = null;\n } else {\n value = joinStr(\",\", _.uniq(newValues));\n }\n location = load ? this.location : this.location.noreload(this.scope);\n return location.search(name, value);\n };\n\n return FiltersMixin;\n\n })();\n\n taiga.FiltersMixin = FiltersMixin;\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/admin.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaAdmin\", []);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/auth.coffee\n */\n\n(function() {\n var AuthService, CancelAccountDirective, ChangeEmailDirective, ChangePasswordFromRecoveryDirective, ForgotPasswordDirective, InvitationDirective, LoginDirective, PublicRegisterMessageDirective, RegisterDirective, debounce, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n debounce = this.taiga.debounce;\n\n module = angular.module(\"taigaAuth\", [\"taigaResources\"]);\n\n AuthService = (function(superClass) {\n extend(AuthService, superClass);\n\n AuthService.$inject = [\"$rootScope\", \"$tgStorage\", \"$tgModel\", \"$tgResources\", \"$tgHttp\", \"$tgUrls\"];\n\n function AuthService(rootscope, storage, model, rs, http, urls) {\n this.rootscope = rootscope;\n this.storage = storage;\n this.model = model;\n this.rs = rs;\n this.http = http;\n this.urls = urls;\n AuthService.__super__.constructor.call(this);\n }\n\n AuthService.prototype.getUser = function() {\n var user, userData;\n if (this.rootscope.user) {\n return this.rootscope.user;\n }\n userData = this.storage.get(\"userInfo\");\n if (userData) {\n user = this.model.make_model(\"users\", userData);\n this.rootscope.user = user;\n return user;\n }\n return null;\n };\n\n AuthService.prototype.setUser = function(user) {\n this.rootscope.auth = user;\n this.rootscope.$broadcast(\"i18n:change\", user.default_language);\n this.storage.set(\"userInfo\", user.getAttrs());\n return this.rootscope.user = user;\n };\n\n AuthService.prototype.clear = function() {\n this.rootscope.auth = null;\n this.rootscope.user = null;\n return this.storage.remove(\"userInfo\");\n };\n\n AuthService.prototype.setToken = function(token) {\n return this.storage.set(\"token\", token);\n };\n\n AuthService.prototype.getToken = function() {\n return this.storage.get(\"token\");\n };\n\n AuthService.prototype.removeToken = function() {\n return this.storage.remove(\"token\");\n };\n\n AuthService.prototype.isAuthenticated = function() {\n if (this.getUser() !== null) {\n return true;\n }\n return false;\n };\n\n AuthService.prototype.login = function(data, type) {\n var url;\n url = this.urls.resolve(\"auth\");\n data = _.clone(data, false);\n data.type = type ? type : \"normal\";\n this.removeToken();\n return this.http.post(url, data).then((function(_this) {\n return function(data, status) {\n var user;\n user = _this.model.make_model(\"users\", data.data);\n _this.setToken(user.auth_token);\n _this.setUser(user);\n return user;\n };\n })(this));\n };\n\n AuthService.prototype.logout = function() {\n this.removeToken();\n return this.clear();\n };\n\n AuthService.prototype.register = function(data, type, existing) {\n var url;\n url = this.urls.resolve(\"auth-register\");\n data = _.clone(data, false);\n data.type = type ? type : \"public\";\n if (type === \"private\") {\n data.existing = existing ? existing : false;\n }\n this.removeToken();\n return this.http.post(url, data).then((function(_this) {\n return function(response) {\n var user;\n user = _this.model.make_model(\"users\", response.data);\n _this.setToken(user.auth_token);\n _this.setUser(user);\n return user;\n };\n })(this));\n };\n\n AuthService.prototype.getInvitation = function(token) {\n return this.rs.invitations.get(token);\n };\n\n AuthService.prototype.acceptInvitiationWithNewUser = function(data) {\n return this.register(data, \"private\", false);\n };\n\n AuthService.prototype.acceptInvitiationWithExistingUser = function(data) {\n return this.register(data, \"private\", true);\n };\n\n AuthService.prototype.forgotPassword = function(data) {\n var url;\n url = this.urls.resolve(\"users-password-recovery\");\n data = _.clone(data, false);\n this.removeToken();\n return this.http.post(url, data);\n };\n\n AuthService.prototype.changePasswordFromRecovery = function(data) {\n var url;\n url = this.urls.resolve(\"users-change-password-from-recovery\");\n data = _.clone(data, false);\n this.removeToken();\n return this.http.post(url, data);\n };\n\n AuthService.prototype.changeEmail = function(data) {\n var url;\n url = this.urls.resolve(\"users-change-email\");\n data = _.clone(data, false);\n return this.http.post(url, data);\n };\n\n AuthService.prototype.cancelAccount = function(data) {\n var url;\n url = this.urls.resolve(\"users-cancel-account\");\n data = _.clone(data, false);\n return this.http.post(url, data);\n };\n\n return AuthService;\n\n })(taiga.Service);\n\n module.service(\"$tgAuth\", AuthService);\n\n PublicRegisterMessageDirective = function($config, $navUrls, templates) {\n var template, templateFn;\n template = templates.get(\"auth/login-text.html\", true);\n templateFn = function() {\n var publicRegisterEnabled;\n publicRegisterEnabled = $config.get(\"publicRegisterEnabled\");\n if (!publicRegisterEnabled) {\n return \"\";\n }\n return template({\n url: $navUrls.resolve(\"register\")\n });\n };\n return {\n restrict: \"AE\",\n scope: {},\n template: templateFn\n };\n };\n\n module.directive(\"tgPublicRegisterMessage\", [\"$tgConfig\", \"$tgNavUrls\", \"$tgTemplate\", PublicRegisterMessageDirective]);\n\n LoginDirective = function($auth, $confirm, $location, $config, $routeParams, $navUrls, $events) {\n var link;\n link = function($scope, $el, $attrs) {\n var onError, onSuccess, submit;\n onSuccess = function(response) {\n var nextUrl;\n if ($routeParams['next'] && $routeParams['next'] !== $navUrls.resolve(\"login\")) {\n nextUrl = $routeParams['next'];\n } else {\n nextUrl = $navUrls.resolve(\"home\");\n }\n $events.setupConnection();\n return $location.path(nextUrl);\n };\n onError = function(response) {\n return $confirm.notify(\"light-error\", \"According to our Oompa Loompas, your username/email or password are incorrect.\");\n };\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var data, form, loginFormType, promise;\n event.preventDefault();\n form = new checksley.Form($el.find(\"form.login-form\"));\n if (!form.validate()) {\n return;\n }\n data = {\n \"username\": $el.find(\"form.login-form input[name=username]\").val(),\n \"password\": $el.find(\"form.login-form input[name=password]\").val()\n };\n loginFormType = $config.get(\"loginFormType\", \"normal\");\n promise = $auth.login(data, loginFormType);\n return promise.then(onSuccess, onError);\n };\n })(this));\n return $el.on(\"submit\", \"form\", submit);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgLogin\", [\"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$tgConfig\", \"$routeParams\", \"$tgNavUrls\", \"$tgEvents\", LoginDirective]);\n\n RegisterDirective = function($auth, $confirm, $location, $navUrls, $config, $analytics) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, onErrorSubmit, onSuccessSubmit, submit;\n if (!$config.get(\"publicRegisterEnabled\")) {\n $location.path($navUrls.resolve(\"not-found\"));\n $location.replace();\n }\n $scope.data = {};\n form = $el.find(\"form\").checksley({\n onlyOneErrorElement: true\n });\n onSuccessSubmit = function(response) {\n $analytics.trackEvent(\"auth\", \"register\", \"user registration\", 1);\n $confirm.notify(\"success\", \"Our Oompa Loompas are happy, welcome to Taiga.\");\n return $location.path($navUrls.resolve(\"home\"));\n };\n onErrorSubmit = function(response) {\n if (response.data._error_message != null) {\n $confirm.notify(\"light-error\", \"According to our Oompa Loompas there was an error. \" + response.data._error_message);\n }\n return form.setErrors(response.data);\n };\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n promise = $auth.register($scope.data);\n return promise.then(onSuccessSubmit, onErrorSubmit);\n };\n })(this));\n return $el.on(\"submit\", \"form\", submit);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgRegister\", [\"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$tgNavUrls\", \"$tgConfig\", \"$tgAnalytics\", RegisterDirective]);\n\n ForgotPasswordDirective = function($auth, $confirm, $location, $navUrls) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, onErrorSubmit, onSuccessSubmit, submit;\n $scope.data = {};\n form = $el.find(\"form\").checksley();\n onSuccessSubmit = function(response) {\n $location.path($navUrls.resolve(\"login\"));\n return $confirm.success(\"Check your inbox!
We have sent you an email with the instructions to set a new password\");\n };\n onErrorSubmit = function(response) {\n return $confirm.notify(\"light-error\", \"According to our Oompa Loompas, your are not registered yet.\");\n };\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n promise = $auth.forgotPassword($scope.data);\n return promise.then(onSuccessSubmit, onErrorSubmit);\n };\n })(this));\n return $el.on(\"submit\", \"form\", submit);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgForgotPassword\", [\"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$tgNavUrls\", ForgotPasswordDirective]);\n\n ChangePasswordFromRecoveryDirective = function($auth, $confirm, $location, $params, $navUrls) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, onErrorSubmit, onSuccessSubmit, submit;\n $scope.data = {};\n if ($params.token != null) {\n $scope.tokenInParams = true;\n $scope.data.token = $params.token;\n } else {\n $scope.tokenInParams = false;\n }\n form = $el.find(\"form\").checksley();\n onSuccessSubmit = function(response) {\n $location.path($navUrls.resolve(\"login\"));\n return $confirm.success(\"Our Oompa Loompas saved your new password.
Try to sign in with it.\");\n };\n onErrorSubmit = function(response) {\n return $confirm.notify(\"light-error\", \"One of our Oompa Loompas say '\" + response.data._error_message + \"'.\");\n };\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n promise = $auth.changePasswordFromRecovery($scope.data);\n return promise.then(onSuccessSubmit, onErrorSubmit);\n };\n })(this));\n return $el.on(\"submit\", \"form\", submit);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgChangePasswordFromRecovery\", [\"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$routeParams\", \"$tgNavUrls\", ChangePasswordFromRecoveryDirective]);\n\n InvitationDirective = function($auth, $confirm, $location, $params, $navUrls, $analytics) {\n var link;\n link = function($scope, $el, $attrs) {\n var loginForm, onErrorSubmitLogin, onErrorSubmitRegister, onSuccessSubmitLogin, onSuccessSubmitRegister, promise, registerForm, submitLogin, submitRegister, token;\n token = $params.token;\n promise = $auth.getInvitation(token);\n promise.then(function(invitation) {\n return $scope.invitation = invitation;\n });\n promise.then(null, function(response) {\n $location.path($navUrls.resolve(\"login\"));\n return $confirm.success(\"Ooops, we have a problem
Our Oompa Loompas can't find your invitation.\");\n });\n $scope.dataLogin = {\n token: token\n };\n loginForm = $el.find(\"form.login-form\").checksley({\n onlyOneErrorElement: true\n });\n onSuccessSubmitLogin = function(response) {\n $analytics.trackEvent(\"auth\", \"invitationAccept\", \"invitation accept with existing user\", 1);\n $location.path($navUrls.resolve(\"project\", {\n project: $scope.invitation.project_slug\n }));\n return $confirm.notify(\"success\", \"You've successfully joined this project\", \"Welcome to \" + (_.escape($scope.invitation.project_name)));\n };\n onErrorSubmitLogin = function(response) {\n return $confirm.notify(\"light-error\", \"According to our Oompa Loompas, your are not registered yet or typed an invalid password.\");\n };\n submitLogin = debounce(2000, (function(_this) {\n return function(event) {\n event.preventDefault();\n if (!loginForm.validate()) {\n return;\n }\n promise = $auth.acceptInvitiationWithExistingUser($scope.dataLogin);\n return promise.then(onSuccessSubmitLogin, onErrorSubmitLogin);\n };\n })(this));\n $el.on(\"submit\", \"form.login-form\", submitLogin);\n $el.on(\"click\", \".button-login\", submitLogin);\n $scope.dataRegister = {\n token: token\n };\n registerForm = $el.find(\"form.register-form\").checksley();\n onSuccessSubmitRegister = function(response) {\n $analytics.trackEvent(\"auth\", \"invitationAccept\", \"invitation accept with new user\", 1);\n $location.path($navUrls.resolve(\"project\", {\n project: $scope.invitation.project_slug\n }));\n return $confirm.notify(\"success\", \"You've successfully joined this project\", \"Welcome to \" + (_.escape($scope.invitation.project_name)));\n };\n onErrorSubmitRegister = function(response) {\n return $confirm.notify(\"light-error\", \"According to our Oompa Loompas, that username or email is already in use.\");\n };\n submitRegister = debounce(2000, (function(_this) {\n return function(event) {\n event.preventDefault();\n if (!registerForm.validate()) {\n return;\n }\n promise = $auth.acceptInvitiationWithNewUser($scope.dataRegister);\n return promise.then(onSuccessSubmitRegister, onErrorSubmitRegister);\n };\n })(this));\n $el.on(\"submit\", \"form.register-form\", submitRegister);\n return $el.on(\"click\", \".button-register\", submitRegister);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgInvitation\", [\"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$routeParams\", \"$tgNavUrls\", \"$tgAnalytics\", InvitationDirective]);\n\n ChangeEmailDirective = function($repo, $model, $auth, $confirm, $location, $params, $navUrls) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, onErrorSubmit, onSuccessSubmit, submit;\n $scope.data = {};\n $scope.data.email_token = $params.email_token;\n form = $el.find(\"form\").checksley();\n onSuccessSubmit = function(response) {\n return $repo.queryOne(\"users\", $auth.getUser().id).then((function(_this) {\n return function(data) {\n $auth.setUser(data);\n $location.path($navUrls.resolve(\"home\"));\n return $confirm.success(\"Our Oompa Loompas updated your email\");\n };\n })(this));\n };\n onErrorSubmit = function(response) {\n return $confirm.notify(\"error\", \"One of our Oompa Loompas says '\" + response.data._error_message + \"'.\");\n };\n submit = function() {\n var promise;\n if (!form.validate()) {\n return;\n }\n promise = $auth.changeEmail($scope.data);\n return promise.then(onSuccessSubmit, onErrorSubmit);\n };\n $el.on(\"submit\", function(event) {\n event.preventDefault();\n return submit();\n });\n return $el.on(\"click\", \"a.button-change-email\", function(event) {\n event.preventDefault();\n return submit();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgChangeEmail\", [\"$tgRepo\", \"$tgModel\", \"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$routeParams\", \"$tgNavUrls\", ChangeEmailDirective]);\n\n CancelAccountDirective = function($repo, $model, $auth, $confirm, $location, $params, $navUrls) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, onErrorSubmit, onSuccessSubmit, submit;\n $scope.data = {};\n $scope.data.cancel_token = $params.cancel_token;\n form = $el.find(\"form\").checksley();\n onSuccessSubmit = function(response) {\n $auth.logout();\n $location.path($navUrls.resolve(\"home\"));\n return $confirm.success(\"Our Oompa Loompas removed your account\");\n };\n onErrorSubmit = function(response) {\n return $confirm.notify(\"error\", \"One of our Oompa Loompas says '\" + response.data._error_message + \"'.\");\n };\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n promise = $auth.cancelAccount($scope.data);\n return promise.then(onSuccessSubmit, onErrorSubmit);\n };\n })(this));\n return $el.on(\"submit\", \"form\", submit);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgCancelAccount\", [\"$tgRepo\", \"$tgModel\", \"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$routeParams\", \"$tgNavUrls\", CancelAccountDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/backlog.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaBacklog\", []);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base.coffee\n */\n\n(function() {\n var TaigaMainDirective, bindOnce, groupBy, init, module, taiga, urls;\n\n taiga = this.taiga;\n\n groupBy = this.taiga.groupBy;\n\n bindOnce = this.taiga.bindOnce;\n\n module = angular.module(\"taigaBase\", [\"taigaLocales\"]);\n\n TaigaMainDirective = function($rootscope, $window) {\n var link;\n link = function($scope, $el, $attrs) {\n return $window.onresize = function() {\n return $rootscope.$broadcast(\"resize\");\n };\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgMain\", [\"$rootScope\", \"$window\", TaigaMainDirective]);\n\n urls = {\n \"home\": \"/\",\n \"error\": \"/error\",\n \"not-found\": \"/not-found\",\n \"permission-denied\": \"/permission-denied\",\n \"login\": \"/login\",\n \"forgot-password\": \"/forgot-password\",\n \"change-password\": \"/change-password/:token\",\n \"change-email\": \"/change-email/:token\",\n \"cancel-account\": \"/cancel-account/:token\",\n \"register\": \"/register\",\n \"invitation\": \"/invitation/:token\",\n \"create-project\": \"/create-project\",\n \"profile\": \"/:user\",\n \"project\": \"/project/:project\",\n \"project-backlog\": \"/project/:project/backlog\",\n \"project-taskboard\": \"/project/:project/taskboard/:sprint\",\n \"project-kanban\": \"/project/:project/kanban\",\n \"project-issues\": \"/project/:project/issues\",\n \"project-search\": \"/project/:project/search\",\n \"project-userstories-detail\": \"/project/:project/us/:ref\",\n \"project-tasks-detail\": \"/project/:project/task/:ref\",\n \"project-issues-detail\": \"/project/:project/issue/:ref\",\n \"project-wiki\": \"/project/:project/wiki\",\n \"project-wiki-page\": \"/project/:project/wiki/:slug\",\n \"project-team\": \"/project/:project/team\",\n \"project-admin-home\": \"/project/:project/admin/project-profile/details\",\n \"project-admin-project-profile-details\": \"/project/:project/admin/project-profile/details\",\n \"project-admin-project-profile-default-values\": \"/project/:project/admin/project-profile/default-values\",\n \"project-admin-project-profile-modules\": \"/project/:project/admin/project-profile/modules\",\n \"project-admin-project-profile-export\": \"/project/:project/admin/project-profile/export\",\n \"project-admin-project-profile-reports\": \"/project/:project/admin/project-profile/reports\",\n \"project-admin-project-values-status\": \"/project/:project/admin/project-values/status\",\n \"project-admin-project-values-points\": \"/project/:project/admin/project-values/points\",\n \"project-admin-project-values-priorities\": \"/project/:project/admin/project-values/priorities\",\n \"project-admin-project-values-severities\": \"/project/:project/admin/project-values/severities\",\n \"project-admin-project-values-types\": \"/project/:project/admin/project-values/types\",\n \"project-admin-project-values-custom-fields\": \"/project/:project/admin/project-values/custom-fields\",\n \"project-admin-memberships\": \"/project/:project/admin/memberships\",\n \"project-admin-roles\": \"/project/:project/admin/roles\",\n \"project-admin-third-parties-webhooks\": \"/project/:project/admin/third-parties/webhooks\",\n \"project-admin-third-parties-github\": \"/project/:project/admin/third-parties/github\",\n \"project-admin-third-parties-gitlab\": \"/project/:project/admin/third-parties/gitlab\",\n \"project-admin-third-parties-bitbucket\": \"/project/:project/admin/third-parties/bitbucket\",\n \"project-admin-contrib\": \"/project/:project/admin/contrib/:plugin\",\n \"user-settings-user-profile\": \"/project/:project/user-settings/user-profile\",\n \"user-settings-user-change-password\": \"/project/:project/user-settings/user-change-password\",\n \"user-settings-user-avatar\": \"/project/:project/user-settings/user-avatar\",\n \"user-settings-mail-notifications\": \"/project/:project/user-settings/mail-notifications\"\n };\n\n init = function($log, $navurls) {\n $log.debug(\"Initialize navigation urls\");\n return $navurls.update(urls);\n };\n\n module.run([\"$log\", \"$tgNavUrls\", init]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common.coffee\n */\n\n(function() {\n var AnimationFrame, AppTitle, CheckPermissionDirective, ClassPermissionDirective, LimitLineLengthDirective, ProjectUrl, Qqueue, SelectedText, Template, ToggleCommentDirective, module, taiga,\n slice = [].slice;\n\n taiga = this.taiga;\n\n module = angular.module(\"taigaCommon\", []);\n\n SelectedText = function($window, $document) {\n var get;\n get = function() {\n if ($window.getSelection) {\n return $window.getSelection().toString();\n } else if ($document.selection) {\n return $document.selection.createRange().text;\n }\n return \"\";\n };\n return {\n get: get\n };\n };\n\n module.factory(\"$selectedText\", [\"$window\", \"$document\", SelectedText]);\n\n CheckPermissionDirective = function() {\n var link, render;\n render = function($el, project, permission) {\n if (project.my_permissions.indexOf(permission) > -1) {\n return $el.removeClass('hidden');\n }\n };\n link = function($scope, $el, $attrs) {\n var permission;\n $el.addClass('hidden');\n permission = $attrs.tgCheckPermission;\n $scope.$watch(\"project\", function(project) {\n if (project != null) {\n return render($el, project, permission);\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgCheckPermission\", CheckPermissionDirective);\n\n ClassPermissionDirective = function() {\n var link, name;\n name = \"tgClassPermission\";\n link = function($scope, $el, $attrs) {\n var checkPermissions, tgClassPermissionWatchAction, unbindWatcher;\n checkPermissions = function(project, className, permission) {\n var negation;\n negation = permission[0] === \"!\";\n if (negation) {\n permission = permission.slice(1);\n }\n if (negation && project.my_permissions.indexOf(permission) === -1) {\n return $el.addClass(className);\n } else if (!negation && project.my_permissions.indexOf(permission) !== -1) {\n return $el.addClass(className);\n } else {\n return $el.removeClass(className);\n }\n };\n tgClassPermissionWatchAction = function(project) {\n var className, classes, permission, results;\n if (project) {\n unbindWatcher();\n classes = $scope.$eval($attrs[name]);\n results = [];\n for (className in classes) {\n permission = classes[className];\n results.push(checkPermissions(project, className, permission));\n }\n return results;\n }\n };\n return unbindWatcher = $scope.$watch(\"project\", tgClassPermissionWatchAction);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgClassPermission\", ClassPermissionDirective);\n\n AnimationFrame = function() {\n var add, animationFrame, performAnimation, tail;\n animationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n performAnimation = (function(_this) {\n return function(time) {\n var fn;\n fn = tail.shift();\n fn();\n if (tail.length) {\n return animationFrame(performAnimation);\n }\n };\n })(this);\n tail = [];\n add = function() {\n var fn, i, len, results;\n results = [];\n for (i = 0, len = arguments.length; i < len; i++) {\n fn = arguments[i];\n tail.push(fn);\n if (tail.length === 1) {\n results.push(animationFrame(performAnimation));\n } else {\n results.push(void 0);\n }\n }\n return results;\n };\n return {\n add: add\n };\n };\n\n module.factory(\"animationFrame\", AnimationFrame);\n\n ToggleCommentDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return $el.find(\"textarea\").on(\"focus\", function() {\n return $el.addClass(\"active\");\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgToggleComment\", ToggleCommentDirective);\n\n AppTitle = function() {\n var set;\n set = function(text) {\n return $(\"title\").text(text);\n };\n return {\n set: set\n };\n };\n\n module.factory(\"$appTitle\", AppTitle);\n\n ProjectUrl = function($navurls) {\n var get;\n get = function(project) {\n var ctx;\n ctx = {\n project: project.slug\n };\n if (project.is_backlog_activated && project.my_permissions.indexOf(\"view_us\") > -1) {\n return $navurls.resolve(\"project-backlog\", ctx);\n }\n if (project.is_kanban_activated && project.my_permissions.indexOf(\"view_us\") > -1) {\n return $navurls.resolve(\"project-kanban\", ctx);\n }\n if (project.is_wiki_activated && project.my_permissions.indexOf(\"view_wiki_pages\") > -1) {\n return $navurls.resolve(\"project-wiki\", ctx);\n }\n if (project.is_issues_activated && project.my_permissions.indexOf(\"view_issues\") > -1) {\n return $navurls.resolve(\"project-issues\", ctx);\n }\n return $navurls.resolve(\"project\", ctx);\n };\n return {\n get: get\n };\n };\n\n module.factory(\"$projectUrl\", [\"$tgNavUrls\", ProjectUrl]);\n\n LimitLineLengthDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var maxColsPerLine;\n maxColsPerLine = parseInt($el.attr(\"cols\"));\n return $el.on(\"keyup\", function(event) {\n var code, lines;\n code = event.keyCode;\n lines = $el.val().split(\"\\n\");\n _.each(lines, function(line, index) {\n return lines[index] = line.substring(0, maxColsPerLine - 2);\n });\n return $el.val(lines.join(\"\\n\"));\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgLimitLineLength\", LimitLineLengthDirective);\n\n Qqueue = function($q) {\n var deferred, lastPromise, qqueue;\n deferred = $q.defer();\n deferred.resolve();\n lastPromise = deferred.promise;\n qqueue = {\n bindAdd: (function(_this) {\n return function(fn) {\n return function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return lastPromise = lastPromise.then(function() {\n return fn.apply(_this, args);\n });\n };\n return qqueue;\n };\n })(this),\n add: (function(_this) {\n return function(fn) {\n if (!lastPromise) {\n lastPromise = fn();\n } else {\n lastPromise = lastPromise.then(fn);\n }\n return qqueue;\n };\n })(this)\n };\n return qqueue;\n };\n\n module.factory(\"$tgQqueue\", [\"$q\", Qqueue]);\n\n Template = function($templateCache) {\n return {\n get: (function(_this) {\n return function(name, lodash) {\n var tmp;\n if (lodash == null) {\n lodash = false;\n }\n tmp = $templateCache.get(name);\n if (lodash) {\n tmp = _.template(tmp);\n }\n return tmp;\n };\n })(this)\n };\n };\n\n module.factory(\"$tgTemplate\", [\"$templateCache\", Template]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/events.coffee\n */\n\n(function() {\n var EventsProvider, EventsService, bindMethods, module, startswith, taiga;\n\n taiga = this.taiga;\n\n startswith = this.taiga.startswith;\n\n bindMethods = this.taiga.bindMethods;\n\n module = angular.module(\"taigaEvents\", []);\n\n EventsService = (function() {\n function EventsService(win, log, config, auth) {\n this.win = win;\n this.log = log;\n this.config = config;\n this.auth = auth;\n bindMethods(this);\n }\n\n EventsService.prototype.initialize = function(sessionId) {\n this.sessionId = sessionId;\n this.subscriptions = {};\n this.connected = false;\n this.error = false;\n this.pendingMessages = [];\n if (this.win.WebSocket === void 0) {\n return this.log.info(\"WebSockets not supported on your browser\");\n }\n };\n\n EventsService.prototype.setupConnection = function() {\n var loc, path, scheme, url;\n this.stopExistingConnection();\n url = this.config.get(\"eventsUrl\");\n if (!url) {\n return;\n }\n if (!startswith(url, \"ws:\") && !startswith(url, \"wss:\")) {\n loc = this.win.location;\n scheme = loc.protocol === \"https:\" ? \"wss:\" : \"ws:\";\n path = _.str.ltrim(url, \"/\");\n url = scheme + \"//\" + loc.host + \"/\" + path;\n }\n this.ws = new this.win.WebSocket(url);\n this.ws.addEventListener(\"open\", this.onOpen);\n this.ws.addEventListener(\"message\", this.onMessage);\n this.ws.addEventListener(\"error\", this.onError);\n return this.ws.addEventListener(\"close\", this.onClose);\n };\n\n EventsService.prototype.stopExistingConnection = function() {\n if (this.ws === void 0) {\n return;\n }\n this.ws.removeEventListener(\"open\", this.onOpen);\n this.ws.removeEventListener(\"close\", this.onClose);\n this.ws.removeEventListener(\"error\", this.onError);\n this.ws.removeEventListener(\"message\", this.onMessage);\n this.ws.close();\n return delete this.ws;\n };\n\n EventsService.prototype.serialize = function(message) {\n if (_.isObject(message)) {\n return JSON.stringify(message);\n }\n return message;\n };\n\n EventsService.prototype.sendMessage = function(message) {\n var i, len, messages, msg, results;\n this.pendingMessages.push(message);\n if (!this.connected) {\n return;\n }\n messages = _.map(this.pendingMessages, this.serialize);\n this.pendingMessages = [];\n results = [];\n for (i = 0, len = messages.length; i < len; i++) {\n msg = messages[i];\n results.push(this.ws.send(msg));\n }\n return results;\n };\n\n EventsService.prototype.subscribe = function(scope, routingKey, callback) {\n var message, subscription;\n if (this.error) {\n return;\n }\n this.log.debug(\"Subscribe to: \" + routingKey);\n subscription = {\n scope: scope,\n routingKey: routingKey,\n callback: _.debounce(callback, 500, {\n \"leading\": true,\n \"trailing\": false\n })\n };\n message = {\n \"cmd\": \"subscribe\",\n \"routing_key\": routingKey\n };\n this.subscriptions[routingKey] = subscription;\n this.sendMessage(message);\n return scope.$on(\"$destroy\", (function(_this) {\n return function() {\n return _this.unsubscribe(routingKey);\n };\n })(this));\n };\n\n EventsService.prototype.unsubscribe = function(routingKey) {\n var message;\n if (this.error) {\n return;\n }\n this.log.debug(\"Unsubscribe from: \" + routingKey);\n message = {\n \"cmd\": \"unsubscribe\",\n \"routing_key\": routingKey\n };\n return this.sendMessage(message);\n };\n\n EventsService.prototype.onOpen = function() {\n var message, token;\n this.connected = true;\n this.log.debug(\"WebSocket connection opened\");\n token = this.auth.getToken();\n message = {\n cmd: \"auth\",\n data: {\n token: token,\n sessionId: this.sessionId\n }\n };\n return this.sendMessage(message);\n };\n\n EventsService.prototype.onMessage = function(event) {\n var data, routingKey, subscription;\n this.log.debug(\"WebSocket message received: \" + event.data);\n data = JSON.parse(event.data);\n routingKey = data.routing_key;\n if (this.subscriptions[routingKey] == null) {\n return;\n }\n subscription = this.subscriptions[routingKey];\n return subscription.scope.$apply(function() {\n return subscription.callback(data.data);\n });\n };\n\n EventsService.prototype.onError = function(error) {\n this.log.error(\"WebSocket error: \" + error);\n return this.error = true;\n };\n\n EventsService.prototype.onClose = function() {\n this.log.debug(\"WebSocket closed.\");\n return this.connected = false;\n };\n\n return EventsService;\n\n })();\n\n EventsProvider = (function() {\n function EventsProvider() {}\n\n EventsProvider.prototype.setSessionId = function(sessionId) {\n return this.sessionId = sessionId;\n };\n\n EventsProvider.prototype.$get = function($win, $log, $conf, $auth) {\n var service;\n service = new EventsService($win, $log, $conf, $auth);\n service.initialize(this.sessionId);\n return service;\n };\n\n EventsProvider.prototype.$get.$inject = [\"$window\", \"$log\", \"$tgConfig\", \"$tgAuth\"];\n\n return EventsProvider;\n\n })();\n\n module.provider(\"$tgEvents\", EventsProvider);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/feedback.coffee\n */\n\n(function() {\n var FeedbackDirective, bindOnce, debounce, groupBy, mixOf, module, taiga, trim;\n\n taiga = this.taiga;\n\n groupBy = this.taiga.groupBy;\n\n bindOnce = this.taiga.bindOnce;\n\n mixOf = this.taiga.mixOf;\n\n debounce = this.taiga.debounce;\n\n trim = this.taiga.trim;\n\n module = angular.module(\"taigaFeedback\", []);\n\n FeedbackDirective = function($lightboxService, $repo, $confirm, $loading) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, submit, submitButton;\n form = $el.find(\"form\").checksley();\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n $loading.start(submitButton);\n promise = $repo.create(\"feedback\", $scope.feedback);\n promise.then(function(data) {\n $loading.finish(submitButton);\n $lightboxService.close($el);\n return $confirm.notify(\"success\", \"\\\\o/ we'll be happy to read your\");\n });\n return promise.then(null, function() {\n $loading.finish(submitButton);\n return $confirm.notify(\"error\");\n });\n };\n })(this));\n submitButton = $el.find(\".submit-button\");\n $el.on(\"submit\", \"form\", submit);\n $scope.$on(\"feedback:show\", function() {\n $scope.$apply(function() {\n return $scope.feedback = {};\n });\n $lightboxService.open($el);\n return $el.find(\"textarea\").focus();\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgLbFeedback\", [\"lightboxService\", \"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", FeedbackDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/integrations.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaIntegrations\", []);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/issues.coffee\n */\n\n(function() {\n var generateHash, module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n generateHash = taiga.generateHash;\n\n resourceProvider = function($repo, $http, $urls, $storage, $q) {\n var filtersHashSuffix, hashSuffix, myFiltersHashSuffix, service;\n service = {};\n hashSuffix = \"issues-queryparams\";\n filtersHashSuffix = \"issues-filters\";\n myFiltersHashSuffix = \"issues-my-filters\";\n service.get = function(projectId, issueId) {\n var params;\n params = service.getQueryParams(projectId);\n params.project = projectId;\n return $repo.queryOne(\"issues\", issueId, params);\n };\n service.getByRef = function(projectId, ref) {\n var params;\n params = service.getQueryParams(projectId);\n params.project = projectId;\n params.ref = ref;\n return $repo.queryOne(\"issues\", \"by_ref\", params);\n };\n service.list = function(projectId, filters, options) {\n var params;\n params = {\n project: projectId\n };\n params = _.extend({}, params, filters || {});\n service.storeQueryParams(projectId, params);\n return $repo.queryPaginated(\"issues\", params, options);\n };\n service.bulkCreate = function(projectId, data) {\n var params, url;\n url = $urls.resolve(\"bulk-create-issues\");\n params = {\n project_id: projectId,\n bulk_issues: data\n };\n return $http.post(url, params);\n };\n service.stats = function(projectId) {\n return $repo.queryOneRaw(\"projects\", projectId + \"/issues_stats\");\n };\n service.filtersData = function(projectId) {\n return $repo.queryOneRaw(\"projects\", projectId + \"/issue_filters_data\");\n };\n service.listValues = function(projectId, type) {\n var params;\n params = {\n \"project\": projectId\n };\n service.storeQueryParams(projectId, params);\n return $repo.queryMany(type, params);\n };\n service.storeQueryParams = function(projectId, params) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffix;\n hash = generateHash([projectId, ns]);\n return $storage.set(hash, params);\n };\n service.getQueryParams = function(projectId) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffix;\n hash = generateHash([projectId, ns]);\n return $storage.get(hash) || {};\n };\n service.storeFilters = function(projectSlug, params) {\n var hash, ns;\n ns = projectSlug + \":\" + filtersHashSuffix;\n hash = generateHash([projectSlug, ns]);\n return $storage.set(hash, params);\n };\n service.getFilters = function(projectSlug) {\n var hash, ns;\n ns = projectSlug + \":\" + filtersHashSuffix;\n hash = generateHash([projectSlug, ns]);\n return $storage.get(hash) || {};\n };\n service.storeMyFilters = function(projectId, myFilters) {\n var deferred, hash, ns, promise, url;\n deferred = $q.defer();\n url = $urls.resolve(\"user-storage\");\n ns = projectId + \":\" + myFiltersHashSuffix;\n hash = generateHash([projectId, ns]);\n if (_.isEmpty(myFilters)) {\n promise = $http[\"delete\"](url + \"/\" + hash, {\n key: hash,\n value: myFilters\n });\n promise.then(function() {\n return deferred.resolve();\n });\n promise.then(null, function() {\n return deferred.reject();\n });\n } else {\n promise = $http.put(url + \"/\" + hash, {\n key: hash,\n value: myFilters\n });\n promise.then(function(data) {\n return deferred.resolve();\n });\n promise.then(null, function(data) {\n var innerPromise;\n innerPromise = $http.post(\"\" + url, {\n key: hash,\n value: myFilters\n });\n innerPromise.then(function() {\n return deferred.resolve();\n });\n return innerPromise.then(null, function() {\n return deferred.reject();\n });\n });\n }\n return deferred.promise;\n };\n service.getMyFilters = function(projectId) {\n var deferred, hash, ns, promise, url;\n deferred = $q.defer();\n url = $urls.resolve(\"user-storage\");\n ns = projectId + \":\" + myFiltersHashSuffix;\n hash = generateHash([projectId, ns]);\n promise = $http.get(url + \"/\" + hash);\n promise.then(function(data) {\n return deferred.resolve(data.data.value);\n });\n promise.then(null, function(data) {\n return deferred.resolve({});\n });\n return deferred.promise;\n };\n return function(instance) {\n return instance.issues = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgIssuesResourcesProvider\", [\"$tgRepo\", \"$tgHttp\", \"$tgUrls\", \"$tgStorage\", \"$q\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/kanban.coffee\n */\n\n(function() {\n var generateHash, module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n generateHash = taiga.generateHash;\n\n resourceProvider = function($storage) {\n var hashSuffixStatusColumnModes, hashSuffixStatusViewModes, service;\n service = {};\n hashSuffixStatusViewModes = \"kanban-statusviewmodels\";\n hashSuffixStatusColumnModes = \"kanban-statuscolumnmodels\";\n service.storeStatusViewModes = function(projectId, params) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffixStatusViewModes;\n hash = generateHash([projectId, ns]);\n return $storage.set(hash, params);\n };\n service.getStatusViewModes = function(projectId) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffixStatusViewModes;\n hash = generateHash([projectId, ns]);\n return $storage.get(hash) || {};\n };\n service.storeStatusColumnModes = function(projectId, params) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffixStatusColumnModes;\n hash = generateHash([projectId, ns]);\n return $storage.set(hash, params);\n };\n service.getStatusColumnModes = function(projectId) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffixStatusColumnModes;\n hash = generateHash([projectId, ns]);\n return $storage.get(hash) || {};\n };\n return function(instance) {\n return instance.kanban = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgKanbanResourcesProvider\", [\"$tgStorage\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/locales.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaLocales\", []);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/user-settings/nav.coffee\n */\n\n(function() {\n var UserSettingsNavigationDirective, module;\n\n UserSettingsNavigationDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var section;\n section = $attrs.tgUserSettingsNavigation;\n $el.find(\".active\").removeClass(\"active\");\n $el.find(\"#usersettingsmenu-\" + section + \" a\").addClass(\"active\");\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module = angular.module(\"taigaUserSettings\");\n\n module.directive(\"tgUserSettingsNavigation\", UserSettingsNavigationDirective);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/projects.coffee\n */\n\n(function() {\n var module, resourceProvider, sizeFormat, taiga;\n\n taiga = this.taiga;\n\n sizeFormat = this.taiga.sizeFormat;\n\n resourceProvider = function($config, $repo, $http, $urls, $auth, $q, $rootScope) {\n var service;\n service = {};\n service.get = function(projectId) {\n return $repo.queryOne(\"projects\", projectId);\n };\n service.getBySlug = function(projectSlug) {\n return $repo.queryOne(\"projects\", \"by_slug?slug=\" + projectSlug);\n };\n service.list = function() {\n return $repo.queryMany(\"projects\");\n };\n service.listByMember = function(memberId) {\n var params;\n params = {\n \"member\": memberId\n };\n return $repo.queryMany(\"projects\", params);\n };\n service.templates = function() {\n return $repo.queryMany(\"project-templates\");\n };\n service.usersList = function(projectId) {\n var params;\n params = {\n \"project\": projectId\n };\n return $repo.queryMany(\"users\", params);\n };\n service.rolesList = function(projectId) {\n var params;\n params = {\n \"project\": projectId\n };\n return $repo.queryMany(\"roles\", params);\n };\n service.stats = function(projectId) {\n return $repo.queryOneRaw(\"projects\", projectId + \"/stats\");\n };\n service.regenerate_userstories_csv_uuid = function(projectId) {\n var url;\n url = ($urls.resolve(\"projects\")) + \"/\" + projectId + \"/regenerate_userstories_csv_uuid\";\n return $http.post(url);\n };\n service.regenerate_issues_csv_uuid = function(projectId) {\n var url;\n url = ($urls.resolve(\"projects\")) + \"/\" + projectId + \"/regenerate_issues_csv_uuid\";\n return $http.post(url);\n };\n service.regenerate_tasks_csv_uuid = function(projectId) {\n var url;\n url = ($urls.resolve(\"projects\")) + \"/\" + projectId + \"/regenerate_tasks_csv_uuid\";\n return $http.post(url);\n };\n service.leave = function(projectId) {\n var url;\n url = ($urls.resolve(\"projects\")) + \"/\" + projectId + \"/leave\";\n return $http.post(url);\n };\n service.memberStats = function(projectId) {\n return $repo.queryOneRaw(\"projects\", projectId + \"/member_stats\");\n };\n service.tagsColors = function(projectId) {\n return $repo.queryOne(\"projects\", projectId + \"/tags_colors\");\n };\n service[\"export\"] = function(projectId) {\n var url;\n url = ($urls.resolve(\"exporter\")) + \"/\" + projectId;\n return $http.get(url);\n };\n service[\"import\"] = function(file, statusUpdater) {\n var complete, data, defered, failed, maxFileSize, response, uploadComplete, uploadFailed, uploadProgress, xhr;\n defered = $q.defer();\n maxFileSize = $config.get(\"maxUploadFileSize\", null);\n if (maxFileSize && file.size > maxFileSize) {\n response = {\n status: 413,\n data: {\n _error_message: \"'\" + file.name + \"' (\" + (sizeFormat(file.size)) + \") is too heavy for our oompa loompas, try it with a smaller than (\" + (sizeFormat(maxFileSize)) + \")\"\n }\n };\n defered.reject(response);\n return defered.promise;\n }\n uploadProgress = (function(_this) {\n return function(evt) {\n var message, percent;\n percent = Math.round((evt.loaded / evt.total) * 100);\n message = \"Uloaded \" + (sizeFormat(evt.loaded)) + \" of \" + (sizeFormat(evt.total));\n return statusUpdater(\"in-progress\", null, message, percent);\n };\n })(this);\n uploadComplete = (function(_this) {\n return function(evt) {\n return statusUpdater(\"done\", \"Importing Project\", \"This process can take a while, please keep the window open.\");\n };\n })(this);\n uploadFailed = (function(_this) {\n return function(evt) {\n return statusUpdater(\"error\");\n };\n })(this);\n complete = (function(_this) {\n return function(evt) {\n var ref;\n response = {};\n try {\n response.data = JSON.parse(evt.target.responseText);\n } catch (_error) {\n response.data = {};\n }\n response.status = evt.target.status;\n if ((ref = response.status) === 201 || ref === 202) {\n defered.resolve(response);\n }\n return defered.reject(response);\n };\n })(this);\n failed = (function(_this) {\n return function(evt) {\n return defered.reject(\"fail\");\n };\n })(this);\n data = new FormData();\n data.append('dump', file);\n xhr = new XMLHttpRequest();\n xhr.upload.addEventListener(\"progress\", uploadProgress, false);\n xhr.upload.addEventListener(\"load\", uploadComplete, false);\n xhr.upload.addEventListener(\"error\", uploadFailed, false);\n xhr.upload.addEventListener(\"abort\", uploadFailed, false);\n xhr.addEventListener(\"load\", complete, false);\n xhr.addEventListener(\"error\", failed, false);\n xhr.open(\"POST\", $urls.resolve(\"importer\"));\n xhr.setRequestHeader(\"Authorization\", \"Bearer \" + ($auth.getToken()));\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send(data);\n return defered.promise;\n };\n return function(instance) {\n return instance.projects = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgProjectsResourcesProvider\", [\"$tgConfig\", \"$tgRepo\", \"$tgHttp\", \"$tgUrls\", \"$tgAuth\", \"$q\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/related-tasks.coffee\n */\n\n(function() {\n var RelatedTaskAssignedToInlineEditionDirective, RelatedTaskCreateButtonDirective, RelatedTaskCreateFormDirective, RelatedTaskRowDirective, RelatedTasksDirective, debounce, module, taiga, trim;\n\n taiga = this.taiga;\n\n trim = this.taiga.trim;\n\n debounce = this.taiga.debounce;\n\n module = angular.module(\"taigaRelatedTasks\", []);\n\n RelatedTaskRowDirective = function($repo, $compile, $confirm, $rootscope, $loading, $template) {\n var link, templateEdit, templateView;\n templateView = $template.get(\"task/related-task-row.html\", true);\n templateEdit = $template.get(\"task/related-task-row-edit.html\", true);\n link = function($scope, $el, $attrs, $model) {\n var renderEdit, renderView, saveTask;\n saveTask = debounce(2000, function(task) {\n var promise;\n task.subject = $el.find('input').val();\n $loading.start($el.find('.task-name'));\n promise = $repo.save(task);\n promise.then((function(_this) {\n return function() {\n $loading.finish($el.find('.task-name'));\n $confirm.notify(\"success\");\n return $rootscope.$broadcast(\"related-tasks:update\");\n };\n })(this));\n promise.then(null, (function(_this) {\n return function() {\n $loading.finish($el.find('.task-name'));\n $el.find('input').val(task.subject);\n return $confirm.notify(\"error\");\n };\n })(this));\n return promise;\n });\n renderEdit = function(task) {\n $el.html($compile(templateEdit({\n task: task\n }))($scope));\n $el.on(\"keyup\", \"input\", function(event) {\n if (event.keyCode === 13) {\n return saveTask($model.$modelValue).then(function() {\n return renderView($model.$modelValue);\n });\n } else if (event.keyCode === 27) {\n return renderView($model.$modelValue);\n }\n });\n $el.on(\"click\", \".icon-floppy\", function(event) {\n return saveTask($model.$modelValue).then(function() {\n return renderView($model.$modelValue);\n });\n });\n return $el.on(\"click\", \".cancel-edit\", function(event) {\n return renderView($model.$modelValue);\n });\n };\n renderView = function(task) {\n var perms;\n $el.off();\n perms = {\n modify_task: $scope.project.my_permissions.indexOf(\"modify_task\") !== -1,\n delete_task: $scope.project.my_permissions.indexOf(\"delete_task\") !== -1\n };\n $el.html($compile(templateView({\n task: task,\n perms: perms\n }))($scope));\n $el.on(\"click\", \".icon-edit\", function() {\n renderEdit($model.$modelValue);\n return $el.find('input').focus().select();\n });\n return $el.on(\"click\", \".delete-task\", function(event) {\n var message, title;\n task = $model.$modelValue;\n title = \"Delete Task\";\n message = task.subject;\n return $confirm.askOnDelete(title, message).then(function(finish) {\n var promise;\n promise = $repo.remove(task);\n promise.then(function() {\n finish();\n $confirm.notify(\"success\");\n return $scope.$emit(\"related-tasks:delete\");\n });\n return promise.then(null, function() {\n return $confirm.notify(\"error\");\n });\n });\n });\n };\n $scope.$watch($attrs.ngModel, function(val) {\n if (!val) {\n return;\n }\n return renderView(val);\n });\n $scope.$on(\"related-tasks:assigned-to-changed\", function() {\n return $rootscope.$broadcast(\"related-tasks:update\");\n });\n $scope.$on(\"related-tasks:status-changed\", function() {\n return $rootscope.$broadcast(\"related-tasks:update\");\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgRelatedTaskRow\", [\"$tgRepo\", \"$compile\", \"$tgConfirm\", \"$rootScope\", \"$tgLoading\", \"$tgTemplate\", RelatedTaskRowDirective]);\n\n RelatedTaskCreateFormDirective = function($repo, $compile, $confirm, $tgmodel, $loading, $analytics, $template) {\n var link, newTask, template;\n template = $template.get(\"task/related-task-create-form.html\", true);\n newTask = {\n subject: \"\",\n assigned_to: null\n };\n link = function($scope, $el, $attrs) {\n var createTask, render;\n createTask = debounce(2000, function(task) {\n var promise;\n task.subject = $el.find('input').val();\n task.assigned_to = $scope.newTask.assigned_to;\n task.status = $scope.newTask.status;\n $scope.newTask.status = $scope.project.default_task_status;\n $scope.newTask.assigned_to = null;\n $loading.start($el.find('.task-name'));\n promise = $repo.create(\"tasks\", task);\n promise.then(function() {\n $analytics.trackEvent(\"task\", \"create\", \"create task on userstory\", 1);\n $loading.finish($el.find('.task-name'));\n $scope.$emit(\"related-tasks:add\");\n return $confirm.notify(\"success\");\n });\n promise.then(null, function() {\n $el.find('input').val(task.subject);\n $loading.finish($el.find('.task-name'));\n return $confirm.notify(\"error\");\n });\n return promise;\n });\n render = function() {\n $el.off();\n $el.html($compile(template())($scope));\n $el.find('input').focus().select();\n $el.addClass('active');\n $el.on(\"keyup\", \"input\", function(event) {\n if (event.keyCode === 13) {\n return createTask(newTask).then(function() {\n return render();\n });\n } else if (event.keyCode === 27) {\n return $el.html(\"\");\n }\n });\n $el.on(\"click\", \".icon-delete\", function(event) {\n return $el.html(\"\");\n });\n return $el.on(\"click\", \".icon-floppy\", function(event) {\n return createTask(newTask).then(function() {\n return $el.html(\"\");\n });\n });\n };\n taiga.bindOnce($scope, \"us\", function(val) {\n newTask[\"status\"] = $scope.project.default_task_status;\n newTask[\"project\"] = $scope.project.id;\n newTask[\"user_story\"] = $scope.us.id;\n $scope.newTask = $tgmodel.make_model(\"tasks\", newTask);\n return $el.html(\"\");\n });\n $scope.$on(\"related-tasks:show-form\", function() {\n return render();\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgRelatedTaskCreateForm\", [\"$tgRepo\", \"$compile\", \"$tgConfirm\", \"$tgModel\", \"$tgLoading\", \"$tgAnalytics\", \"$tgTemplate\", RelatedTaskCreateFormDirective]);\n\n RelatedTaskCreateButtonDirective = function($repo, $compile, $confirm, $tgmodel) {\n var link, template;\n template = _.template(\"\");\n link = function($scope, $el, $attrs) {\n $scope.$watch(\"project\", function(val) {\n if (!val) {\n return;\n }\n $el.off();\n if ($scope.project.my_permissions.indexOf(\"add_task\") !== -1) {\n $el.html(template());\n } else {\n $el.html(\"\");\n }\n return $el.on(\"click\", \".icon\", function(event) {\n return $scope.$emit(\"related-tasks:add-new-clicked\");\n });\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgRelatedTaskCreateButton\", [\"$tgRepo\", \"$compile\", \"$tgConfirm\", \"$tgModel\", RelatedTaskCreateButtonDirective]);\n\n RelatedTasksDirective = function($repo, $rs, $rootscope) {\n var link;\n link = function($scope, $el, $attrs) {\n var loadTasks;\n loadTasks = function() {\n return $rs.tasks.list($scope.projectId, null, $scope.usId).then((function(_this) {\n return function(tasks) {\n $scope.tasks = tasks;\n return tasks;\n };\n })(this));\n };\n $scope.$on(\"related-tasks:add\", function() {\n return loadTasks().then(function() {\n return $rootscope.$broadcast(\"related-tasks:update\");\n });\n });\n $scope.$on(\"related-tasks:delete\", function() {\n return loadTasks().then(function() {\n return $rootscope.$broadcast(\"related-tasks:update\");\n });\n });\n $scope.$on(\"related-tasks:add-new-clicked\", function() {\n return $scope.$broadcast(\"related-tasks:show-form\");\n });\n taiga.bindOnce($scope, \"us\", function(val) {\n return loadTasks();\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgRelatedTasks\", [\"$tgRepo\", \"$tgResources\", \"$rootScope\", RelatedTasksDirective]);\n\n RelatedTaskAssignedToInlineEditionDirective = function($repo, $rootscope, popoverService) {\n var link, template;\n template = _.template(\"\\\" alt=\\\"<%- name %>\\\"/>\\n
<%- name %>
\");\n link = function($scope, $el, $attrs) {\n var $ctrl, autoSave, notAutoSave, task, updateRelatedTask;\n updateRelatedTask = function(task) {\n var ctx, member;\n ctx = {\n name: \"Unassigned\",\n imgurl: \"/images/unnamed.png\"\n };\n member = $scope.usersById[task.assigned_to];\n if (member) {\n ctx.imgurl = member.photo;\n ctx.name = member.full_name_display;\n }\n $el.find(\".avatar\").html(template(ctx));\n return $el.find(\".task-assignedto\").attr('title', ctx.name);\n };\n $ctrl = $el.controller();\n task = $scope.$eval($attrs.tgRelatedTaskAssignedToInlineEdition);\n notAutoSave = $scope.$eval($attrs.notAutoSave);\n autoSave = !notAutoSave;\n updateRelatedTask(task);\n $el.on(\"click\", \".task-assignedto\", function(event) {\n return $rootscope.$broadcast(\"assigned-to:add\", task);\n });\n taiga.bindOnce($scope, \"project\", function(project) {\n if (project.my_permissions.indexOf(\"modify_task\") === -1) {\n $el.unbind(\"click\");\n return $el.find(\"a\").addClass(\"not-clickable\");\n }\n });\n $scope.$on(\"assigned-to:added\", debounce(2000, (function(_this) {\n return function(ctx, userId, updatedRelatedTask) {\n if (updatedRelatedTask.id === task.id) {\n updatedRelatedTask.assigned_to = userId;\n if (autoSave) {\n $repo.save(updatedRelatedTask).then(function() {\n return $scope.$emit(\"related-tasks:assigned-to-changed\");\n });\n }\n return updateRelatedTask(updatedRelatedTask);\n }\n };\n })(this)));\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgRelatedTaskAssignedToInlineEdition\", [\"$tgRepo\", \"$rootScope\", RelatedTaskAssignedToInlineEditionDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources.coffee\n */\n\n(function() {\n var ResourcesService, initResources, initUrls, module, taiga, urls,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n ResourcesService = (function(superClass) {\n extend(ResourcesService, superClass);\n\n function ResourcesService() {\n return ResourcesService.__super__.constructor.apply(this, arguments);\n }\n\n return ResourcesService;\n\n })(taiga.Service);\n\n urls = {\n \"auth\": \"/auth\",\n \"auth-register\": \"/auth/register\",\n \"invitations\": \"/invitations\",\n \"permissions\": \"/permissions\",\n \"roles\": \"/roles\",\n \"projects\": \"/projects\",\n \"memberships\": \"/memberships\",\n \"notify-policies\": \"/notify-policies\",\n \"bulk-create-memberships\": \"/memberships/bulk_create\",\n \"milestones\": \"/milestones\",\n \"userstories\": \"/userstories\",\n \"bulk-create-us\": \"/userstories/bulk_create\",\n \"bulk-update-us-backlog-order\": \"/userstories/bulk_update_backlog_order\",\n \"bulk-update-us-sprint-order\": \"/userstories/bulk_update_sprint_order\",\n \"bulk-update-us-kanban-order\": \"/userstories/bulk_update_kanban_order\",\n \"userstories-restore\": \"/userstories/%s/restore\",\n \"tasks\": \"/tasks\",\n \"bulk-create-tasks\": \"/tasks/bulk_create\",\n \"bulk-update-task-taskboard-order\": \"/tasks/bulk_update_taskboard_order\",\n \"tasks-restore\": \"/tasks/%s/restore\",\n \"issues\": \"/issues\",\n \"bulk-create-issues\": \"/issues/bulk_create\",\n \"issues-restore\": \"/issues/%s/restore\",\n \"wiki\": \"/wiki\",\n \"wiki-restore\": \"/wiki/%s/restore\",\n \"wiki-links\": \"/wiki-links\",\n \"choices/userstory-statuses\": \"/userstory-statuses\",\n \"choices/userstory-statuses/bulk-update-order\": \"/userstory-statuses/bulk_update_order\",\n \"choices/points\": \"/points\",\n \"choices/points/bulk-update-order\": \"/points/bulk_update_order\",\n \"choices/task-statuses\": \"/task-statuses\",\n \"choices/task-statuses/bulk-update-order\": \"/task-statuses/bulk_update_order\",\n \"choices/issue-statuses\": \"/issue-statuses\",\n \"choices/issue-statuses/bulk-update-order\": \"/issue-statuses/bulk_update_order\",\n \"choices/issue-types\": \"/issue-types\",\n \"choices/issue-types/bulk-update-order\": \"/issue-types/bulk_update_order\",\n \"choices/priorities\": \"/priorities\",\n \"choices/priorities/bulk-update-order\": \"/priorities/bulk_update_order\",\n \"choices/severities\": \"/severities\",\n \"choices/severities/bulk-update-order\": \"/severities/bulk_update_order\",\n \"search\": \"/search\",\n \"sites\": \"/sites\",\n \"project-templates\": \"/project-templates\",\n \"site-members\": \"/site-members\",\n \"site-projects\": \"/site-projects\",\n \"users\": \"/users\",\n \"users-password-recovery\": \"/users/password_recovery\",\n \"users-change-password-from-recovery\": \"/users/change_password_from_recovery\",\n \"users-change-password\": \"/users/change_password\",\n \"users-change-email\": \"/users/change_email\",\n \"users-cancel-account\": \"/users/cancel\",\n \"user-storage\": \"/user-storage\",\n \"resolver\": \"/resolver\",\n \"userstory-statuses\": \"/userstory-statuses\",\n \"points\": \"/points\",\n \"task-statuses\": \"/task-statuses\",\n \"issue-statuses\": \"/issue-statuses\",\n \"issue-types\": \"/issue-types\",\n \"priorities\": \"/priorities\",\n \"severities\": \"/severities\",\n \"project-modules\": \"/projects/%s/modules\",\n \"webhooks\": \"/webhooks\",\n \"webhooks-test\": \"/webhooks/%s/test\",\n \"webhooklogs\": \"/webhooklogs\",\n \"webhooklogs-resend\": \"/webhooklogs/%s/resend\",\n \"history/us\": \"/history/userstory\",\n \"history/issue\": \"/history/issue\",\n \"history/task\": \"/history/task\",\n \"history/wiki\": \"/history/wiki\",\n \"attachments/us\": \"/userstories/attachments\",\n \"attachments/issue\": \"/issues/attachments\",\n \"attachments/task\": \"/tasks/attachments\",\n \"attachments/wiki_page\": \"/wiki/attachments\",\n \"custom-attributes/userstory\": \"/userstory-custom-attributes\",\n \"custom-attributes/issue\": \"/issue-custom-attributes\",\n \"custom-attributes/task\": \"/task-custom-attributes\",\n \"custom-attributes-values/userstory\": \"/userstories/custom-attributes-values\",\n \"custom-attributes-values/issue\": \"/issues/custom-attributes-values\",\n \"custom-attributes-values/task\": \"/tasks/custom-attributes-values\",\n \"feedback\": \"/feedback\",\n \"exporter\": \"/exporter\",\n \"importer\": \"/importer/load_dump\",\n \"userstories-csv\": \"/userstories/csv?uuid=%s\",\n \"tasks-csv\": \"/tasks/csv?uuid=%s\",\n \"issues-csv\": \"/issues/csv?uuid=%s\"\n };\n\n initUrls = function($log, $urls) {\n $log.debug(\"Initialize api urls\");\n return $urls.update(urls);\n };\n\n initResources = function($log, $rs) {\n var i, len, provider, providers, results;\n $log.debug(\"Initialize resources\");\n providers = _.toArray(arguments).slice(2);\n results = [];\n for (i = 0, len = providers.length; i < len; i++) {\n provider = providers[i];\n results.push(provider($rs));\n }\n return results;\n };\n\n module = angular.module(\"taigaResources\", [\"taigaBase\"]);\n\n module.service(\"$tgResources\", ResourcesService);\n\n module.run([\"$log\", \"$tgUrls\", initUrls]);\n\n module.run([\"$log\", \"$tgResources\", \"$tgProjectsResourcesProvider\", \"$tgCustomAttributesResourcesProvider\", \"$tgCustomAttributesValuesResourcesProvider\", \"$tgMembershipsResourcesProvider\", \"$tgNotifyPoliciesResourcesProvider\", \"$tgInvitationsResourcesProvider\", \"$tgRolesResourcesProvider\", \"$tgUserSettingsResourcesProvider\", \"$tgSprintsResourcesProvider\", \"$tgUserstoriesResourcesProvider\", \"$tgTasksResourcesProvider\", \"$tgIssuesResourcesProvider\", \"$tgWikiResourcesProvider\", \"$tgSearchResourcesProvider\", \"$tgAttachmentsResourcesProvider\", \"$tgMdRenderResourcesProvider\", \"$tgHistoryResourcesProvider\", \"$tgKanbanResourcesProvider\", \"$tgModulesResourcesProvider\", \"$tgWebhooksResourcesProvider\", \"$tgWebhookLogsResourcesProvider\", initResources]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/search.coffee\n */\n\n(function() {\n var module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n resourceProvider = function($repo, $urls, $http) {\n var service;\n service = {};\n service[\"do\"] = function(projectId, term) {\n var params, url;\n url = $urls.resolve(\"search\");\n params = {\n project: projectId,\n text: term,\n get_all: false\n };\n return $http.get(url, params).then(function(data) {\n return data.data;\n });\n };\n return function(instance) {\n return instance.search = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgSearchResourcesProvider\", [\"$tgRepo\", \"$tgUrls\", \"$tgHttp\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/taskboard.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaTaskboard\", []);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/tasks.coffee\n */\n\n(function() {\n var generateHash, module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n generateHash = taiga.generateHash;\n\n resourceProvider = function($repo, $http, $urls, $storage) {\n var hashSuffix, hashSuffixStatusColumnModes, hashSuffixUsRowModes, service;\n service = {};\n hashSuffix = \"tasks-queryparams\";\n hashSuffixStatusColumnModes = \"tasks-statuscolumnmodels\";\n hashSuffixUsRowModes = \"tasks-usrowmodels\";\n service.get = function(projectId, taskId) {\n var params;\n params = service.getQueryParams(projectId);\n params.project = projectId;\n return $repo.queryOne(\"tasks\", taskId, params);\n };\n service.getByRef = function(projectId, ref) {\n var params;\n params = service.getQueryParams(projectId);\n params.project = projectId;\n params.ref = ref;\n return $repo.queryOne(\"tasks\", \"by_ref\", params);\n };\n service.list = function(projectId, sprintId, userStoryId) {\n var params;\n if (sprintId == null) {\n sprintId = null;\n }\n if (userStoryId == null) {\n userStoryId = null;\n }\n params = {\n project: projectId\n };\n if (sprintId) {\n params.milestone = sprintId;\n }\n if (userStoryId) {\n params.user_story = userStoryId;\n }\n service.storeQueryParams(projectId, params);\n return $repo.queryMany(\"tasks\", params);\n };\n service.bulkCreate = function(projectId, sprintId, usId, data) {\n var params, url;\n url = $urls.resolve(\"bulk-create-tasks\");\n params = {\n project_id: projectId,\n sprint_id: sprintId,\n us_id: usId,\n bulk_tasks: data\n };\n return $http.post(url, params).then(function(result) {\n return result.data;\n });\n };\n service.bulkUpdateTaskTaskboardOrder = function(projectId, data) {\n var params, url;\n url = $urls.resolve(\"bulk-update-task-taskboard-order\");\n params = {\n project_id: projectId,\n bulk_tasks: data\n };\n return $http.post(url, params);\n };\n service.listValues = function(projectId, type) {\n var params;\n params = {\n \"project\": projectId\n };\n return $repo.queryMany(type, params);\n };\n service.storeQueryParams = function(projectId, params) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffix;\n hash = generateHash([projectId, ns]);\n return $storage.set(hash, params);\n };\n service.getQueryParams = function(projectId) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffix;\n hash = generateHash([projectId, ns]);\n return $storage.get(hash) || {};\n };\n service.storeStatusColumnModes = function(projectId, params) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffixStatusColumnModes;\n hash = generateHash([projectId, ns]);\n return $storage.set(hash, params);\n };\n service.getStatusColumnModes = function(projectId) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffixStatusColumnModes;\n hash = generateHash([projectId, ns]);\n return $storage.get(hash) || {};\n };\n service.storeUsRowModes = function(projectId, sprintId, params) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffixUsRowModes;\n hash = generateHash([projectId, sprintId, ns]);\n return $storage.set(hash, params);\n };\n service.getUsRowModes = function(projectId, sprintId) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffixUsRowModes;\n hash = generateHash([projectId, sprintId, ns]);\n return $storage.get(hash) || {};\n };\n return function(instance) {\n return instance.tasks = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgTasksResourcesProvider\", [\"$tgRepo\", \"$tgHttp\", \"$tgUrls\", \"$tgStorage\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/team.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaTeam\", []);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/memberships.coffee\n */\n\n(function() {\n var module, resourceProvider, sizeFormat, taiga;\n\n taiga = this.taiga;\n\n sizeFormat = this.taiga.sizeFormat;\n\n resourceProvider = function($config, $repo, $http, $urls, $q) {\n var service;\n service = {};\n service.changeAvatar = function(file) {\n var data, defered, maxFileSize, options, response, url;\n maxFileSize = $config.get(\"maxUploadFileSize\", null);\n if (maxFileSize && file.size > maxFileSize) {\n response = {\n status: 413,\n data: {\n _error_message: \"'\" + file.name + \"' (\" + (sizeFormat(file.size)) + \") is too heavy for our oompa loompas, try it with a smaller than (\" + (sizeFormat(maxFileSize)) + \")\"\n }\n };\n defered = $q.defer();\n defered.reject(response);\n return defered.promise;\n }\n data = new FormData();\n data.append('avatar', file);\n options = {\n transformRequest: angular.identity,\n headers: {\n 'Content-Type': void 0\n }\n };\n url = ($urls.resolve(\"users\")) + \"/change_avatar\";\n return $http.post(url, data, {}, options);\n };\n service.removeAvatar = function() {\n var url;\n url = ($urls.resolve(\"users\")) + \"/remove_avatar\";\n return $http.post(url);\n };\n service.changePassword = function(currentPassword, newPassword) {\n var data, url;\n url = ($urls.resolve(\"users\")) + \"/change_password\";\n data = {\n current_password: currentPassword,\n password: newPassword\n };\n return $http.post(url, data);\n };\n return function(instance) {\n return instance.userSettings = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgUserSettingsResourcesProvider\", [\"$tgConfig\", \"$tgRepo\", \"$tgHttp\", \"$tgUrls\", \"$q\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/userstories.coffee\n */\n\n(function() {\n var generateHash, module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n generateHash = taiga.generateHash;\n\n resourceProvider = function($repo, $http, $urls, $storage) {\n var hashSuffix, service;\n service = {};\n hashSuffix = \"userstories-queryparams\";\n service.get = function(projectId, usId) {\n var params;\n params = service.getQueryParams(projectId);\n params.project = projectId;\n return $repo.queryOne(\"userstories\", usId, params);\n };\n service.getByRef = function(projectId, ref) {\n var params;\n params = service.getQueryParams(projectId);\n params.project = projectId;\n params.ref = ref;\n return $repo.queryOne(\"userstories\", \"by_ref\", params);\n };\n service.listUnassigned = function(projectId, filters) {\n var params;\n params = {\n \"project\": projectId,\n \"milestone\": \"null\"\n };\n params = _.extend({}, params, filters || {});\n service.storeQueryParams(projectId, params);\n return $repo.queryMany(\"userstories\", params);\n };\n service.listAll = function(projectId, filters) {\n var params;\n params = {\n \"project\": projectId\n };\n params = _.extend({}, params, filters || {});\n service.storeQueryParams(projectId, params);\n return $repo.queryMany(\"userstories\", params);\n };\n service.bulkCreate = function(projectId, status, bulk) {\n var data, url;\n data = {\n project_id: projectId,\n status_id: status,\n bulk_stories: bulk\n };\n url = $urls.resolve(\"bulk-create-us\");\n return $http.post(url, data);\n };\n service.bulkUpdateBacklogOrder = function(projectId, data) {\n var params, url;\n url = $urls.resolve(\"bulk-update-us-backlog-order\");\n params = {\n project_id: projectId,\n bulk_stories: data\n };\n return $http.post(url, params);\n };\n service.bulkUpdateSprintOrder = function(projectId, data) {\n var params, url;\n url = $urls.resolve(\"bulk-update-us-sprint-order\");\n params = {\n project_id: projectId,\n bulk_stories: data\n };\n return $http.post(url, params);\n };\n service.bulkUpdateKanbanOrder = function(projectId, data) {\n var params, url;\n url = $urls.resolve(\"bulk-update-us-kanban-order\");\n params = {\n project_id: projectId,\n bulk_stories: data\n };\n return $http.post(url, params);\n };\n service.listValues = function(projectId, type) {\n var params;\n params = {\n \"project\": projectId\n };\n service.storeQueryParams(projectId, params);\n return $repo.queryMany(type, params);\n };\n service.storeQueryParams = function(projectId, params) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffix;\n hash = generateHash([projectId, ns]);\n return $storage.set(hash, params);\n };\n service.getQueryParams = function(projectId) {\n var hash, ns;\n ns = projectId + \":\" + hashSuffix;\n hash = generateHash([projectId, ns]);\n return $storage.get(hash) || {};\n };\n service.storeShowTags = function(projectId, showTags) {\n var hash;\n hash = generateHash([projectId, 'showTags']);\n return $storage.set(hash, showTags);\n };\n service.getShowTags = function(projectId) {\n var hash;\n hash = generateHash([projectId, 'showTags']);\n return $storage.get(hash) || null;\n };\n return function(instance) {\n return instance.userstories = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgUserstoriesResourcesProvider\", [\"$tgRepo\", \"$tgHttp\", \"$tgUrls\", \"$tgStorage\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/wikis.coffee\n */\n\n(function() {\n var module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n resourceProvider = function($repo, $http, $urls) {\n var service;\n service = {};\n service.get = function(wikiId) {\n return $repo.queryOne(\"wiki\", wikiId);\n };\n service.getBySlug = function(projectId, slug) {\n return $repo.queryOne(\"wiki\", \"by_slug?project=\" + projectId + \"&slug=\" + slug);\n };\n service.listLinks = function(projectId) {\n return $repo.queryMany(\"wiki-links\", {\n project: projectId\n });\n };\n return function(instance) {\n return instance.wiki = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgWikiResourcesProvider\", [\"$tgRepo\", \"$tgHttp\", \"$tgUrls\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/analytics.coffee\n */\n\n(function() {\n var AnalyticsService, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n module = angular.module(\"taigaCommon\");\n\n AnalyticsService = (function(superClass) {\n extend(AnalyticsService, superClass);\n\n AnalyticsService.$inject = [\"$rootScope\", \"$log\", \"$tgConfig\", \"$window\", \"$document\", \"$location\"];\n\n function AnalyticsService(rootscope, log, config, win, doc, location) {\n var conf;\n this.rootscope = rootscope;\n this.log = log;\n this.config = config;\n this.win = win;\n this.doc = doc;\n this.location = location;\n this.initialized = false;\n conf = this.config.get(\"analytics\", {});\n this.accountId = conf.accountId;\n this.pageEvent = conf.pageEvent || \"$routeChangeSuccess\";\n this.trackRoutes = conf.trackRoutes || true;\n this.ignoreFirstPageLoad = conf.ignoreFirstPageLoad || false;\n }\n\n AnalyticsService.prototype.initialize = function() {\n if (!this.accountId) {\n this.log.debug(\"Analytics: no acount id provided. Disabling.\");\n return;\n }\n this.injectAnalytics();\n this.win.ga(\"create\", this.accountId, \"auto\");\n this.win.ga(\"require\", \"displayfeatures\");\n if (this.trackRoutes && (!this.ignoreFirstPageLoad)) {\n this.win.ga(\"send\", \"pageview\", this.getUrl());\n }\n if (this.trackRoutes) {\n this.rootscope.$on(this.pageEvent, (function(_this) {\n return function() {\n return _this.trackPage(_this.getUrl(), \"Taiga\");\n };\n })(this));\n }\n return this.initialized = true;\n };\n\n AnalyticsService.prototype.getUrl = function() {\n return this.location.path();\n };\n\n AnalyticsService.prototype.injectAnalytics = function() {\n var fn;\n fn = (function(i,s,o,g,r,a,m){i[\"GoogleAnalyticsObject\"]=r;i[r]=i[r]||function(){\n (i[r].q=i[r].q||[]).push(arguments);},i[r].l=1*new Date();a=s.createElement(o),\n m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m);});\n return fn(window, document, \"script\", \"//www.google-analytics.com/analytics.js\", \"ga\");\n };\n\n AnalyticsService.prototype.trackPage = function(url, title) {\n if (!this.initialized) {\n return;\n }\n if (!this.win.ga) {\n return;\n }\n title = title || this.doc[0].title;\n return this.win.ga(\"send\", \"pageview\", {\n \"page\": url,\n \"title\": title\n });\n };\n\n AnalyticsService.prototype.trackEvent = function(category, action, label, value) {\n if (!this.initialized) {\n return;\n }\n if (!this.win.ga) {\n return;\n }\n return this.win.ga(\"send\", \"event\", category, action, label, value);\n };\n\n return AnalyticsService;\n\n })(taiga.Service);\n\n module.service(\"$tgAnalytics\", AnalyticsService);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/attachments.coffee\n */\n\n(function() {\n var module, resourceProvider, sizeFormat, taiga;\n\n taiga = this.taiga;\n\n sizeFormat = this.taiga.sizeFormat;\n\n resourceProvider = function($rootScope, $config, $urls, $model, $repo, $auth, $q) {\n var service;\n service = {};\n service.list = function(urlName, objectId, projectId) {\n var params;\n params = {\n object_id: objectId,\n project: projectId\n };\n return $repo.queryMany(urlName, params);\n };\n service.create = function(urlName, projectId, objectId, file) {\n var data, defered, maxFileSize, response, uploadComplete, uploadFailed, uploadProgress, xhr;\n defered = $q.defer();\n if (file === void 0) {\n defered.reject(null);\n return defered.promise;\n }\n maxFileSize = $config.get(\"maxUploadFileSize\", null);\n if (maxFileSize && file.size > maxFileSize) {\n response = {\n status: 413,\n data: {\n _error_message: \"'\" + file.name + \"' (\" + (sizeFormat(file.size)) + \") is too heavy for our oompa loompas, try it with a smaller than (\" + (sizeFormat(maxFileSize)) + \")\"\n }\n };\n defered.reject(response);\n return defered.promise;\n }\n uploadProgress = (function(_this) {\n return function(evt) {\n return $rootScope.$apply(function() {\n file.status = \"in-progress\";\n file.size = sizeFormat(evt.total);\n file.progressMessage = \"upload \" + (sizeFormat(evt.loaded)) + \" of \" + (sizeFormat(evt.total));\n return file.progressPercent = (Math.round((evt.loaded / evt.total) * 100)) + \"%\";\n });\n };\n })(this);\n uploadComplete = (function(_this) {\n return function(evt) {\n return $rootScope.$apply(function() {\n var data, model;\n file.status = \"done\";\n try {\n data = JSON.parse(evt.target.responseText);\n } catch (_error) {\n data = {};\n }\n model = $model.make_model(urlName, data);\n return defered.resolve(model);\n });\n };\n })(this);\n uploadFailed = (function(_this) {\n return function(evt) {\n return $rootScope.$apply(function() {\n file.status = \"error\";\n return defered.reject(\"fail\");\n });\n };\n })(this);\n data = new FormData();\n data.append(\"project\", projectId);\n data.append(\"object_id\", objectId);\n data.append(\"attached_file\", file);\n xhr = new XMLHttpRequest();\n xhr.upload.addEventListener(\"progress\", uploadProgress, false);\n xhr.addEventListener(\"load\", uploadComplete, false);\n xhr.addEventListener(\"error\", uploadFailed, false);\n xhr.open(\"POST\", $urls.resolve(urlName));\n xhr.setRequestHeader(\"Authorization\", \"Bearer \" + ($auth.getToken()));\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send(data);\n return defered.promise;\n };\n return function(instance) {\n return instance.attachments = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgAttachmentsResourcesProvider\", [\"$rootScope\", \"$tgConfig\", \"$tgUrls\", \"$tgModel\", \"$tgRepo\", \"$tgAuth\", \"$q\", resourceProvider]);\n\n}).call(this);\n","(function() {\n var BindScope, module;\n\n module = angular.module(\"taigaCommon\");\n\n BindScope = function(config) {\n var link;\n if (!config.debugInfo) {\n jQuery.fn.scope = function() {\n return this.data('scope');\n };\n }\n link = function($scope, $el) {\n if (!config.debugInfo) {\n return $el.data('scope', $scope).addClass('tg-scope');\n }\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgBindScope\", [\"$tgConfig\", BindScope]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/components.coffee\n */\n\n(function() {\n var AssignedToDirective, BlockButtonDirective, CreatedByDisplayDirective, DateRangeDirective, DateSelectorDirective, DeleteButtonDirective, EditableDescriptionDirective, EditableSubjectDirective, ListItemAssignedtoDirective, ListItemIssueStatusDirective, ListItemPriorityDirective, ListItemSeverityDirective, ListItemTaskStatusDirective, ListItemTypeDirective, ListItemUsStatusDirective, SprintProgressBarDirective, TgMainTitleDirective, TgProgressBarDirective, WatchersDirective, bindOnce, module, taiga;\n\n taiga = this.taiga;\n\n bindOnce = this.taiga.bindOnce;\n\n module = angular.module(\"taigaCommon\");\n\n DateRangeDirective = function() {\n var link, renderRange;\n renderRange = function($el, first, second) {\n var endDate, initDate;\n initDate = moment(first).format(\"DD MMM YYYY\");\n endDate = moment(second).format(\"DD MMM YYYY\");\n return $el.html(initDate + \"-\" + endDate);\n };\n link = function($scope, $el, $attrs) {\n var first, ref, second;\n ref = $attrs.tgDateRange.split(\",\"), first = ref[0], second = ref[1];\n return bindOnce($scope, first, function(valFirst) {\n return bindOnce($scope, second, function(valSecond) {\n return renderRange($el, valFirst, valSecond);\n });\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgDateRange\", DateRangeDirective);\n\n DateSelectorDirective = function() {\n var link;\n link = function($scope, $el, $attrs, $model) {\n var selectedDate;\n selectedDate = null;\n $el.picker = new Pikaday({\n field: $el[0],\n format: \"DD MMM YYYY\",\n onSelect: (function(_this) {\n return function(date) {\n return selectedDate = date;\n };\n })(this),\n onOpen: (function(_this) {\n return function() {\n if (selectedDate != null) {\n return $el.picker.setDate(selectedDate);\n }\n };\n })(this)\n });\n return $scope.$watch($attrs.ngModel, function(val) {\n if (val != null) {\n return $el.picker.setDate(val);\n }\n });\n };\n return {\n link: link,\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgDateSelector\", DateSelectorDirective);\n\n SprintProgressBarDirective = function() {\n var link, renderProgress;\n renderProgress = function($el, percentage, visual_percentage) {\n if ($el.hasClass(\".current-progress\")) {\n return $el.css(\"width\", percentage + \"%\");\n } else {\n $el.find(\".current-progress\").css(\"width\", visual_percentage + \"%\");\n return $el.find(\".number\").html(percentage + \" %\");\n }\n };\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, $attrs.tgSprintProgressbar, function(sprint) {\n var closedPoints, percentage, totalPoints, visual_percentage;\n closedPoints = sprint.closed_points;\n totalPoints = sprint.total_points;\n percentage = 0;\n if (totalPoints !== 0) {\n percentage = Math.round(100 * (closedPoints / totalPoints));\n }\n visual_percentage = 0;\n if (totalPoints !== 0) {\n visual_percentage = Math.round(98 * (closedPoints / totalPoints));\n }\n return renderProgress($el, percentage, visual_percentage);\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgSprintProgressbar\", SprintProgressBarDirective);\n\n CreatedByDisplayDirective = function($template) {\n var link, template;\n template = $template.get(\"common/components/created-by.html\", true);\n link = function($scope, $el, $attrs) {\n var render;\n render = function(model) {\n var html, owner, ref;\n owner = ((ref = $scope.usersById) != null ? ref[model.owner] : void 0) || {\n full_name_display: \"external user\",\n photo: \"/images/unnamed.png\"\n };\n html = template({\n owner: owner,\n date: moment(model.created_date).format(\"DD MMM YYYY HH:mm\")\n });\n return $el.html(html);\n };\n bindOnce($scope, $attrs.ngModel, function(model) {\n if (model != null) {\n return render(model);\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgCreatedByDisplay\", [\"$tgTemplate\", CreatedByDisplayDirective]);\n\n WatchersDirective = function($rootscope, $confirm, $repo, $qqueue, $template) {\n var link, template;\n template = $template.get(\"common/components/watchers.html\", true);\n link = function($scope, $el, $attrs, $model) {\n var deleteWatcher, isEditable, renderWatchers, save;\n isEditable = function() {\n var ref, ref1;\n return ((ref = $scope.project) != null ? (ref1 = ref.my_permissions) != null ? ref1.indexOf($attrs.requiredPerm) : void 0 : void 0) !== -1;\n };\n save = $qqueue.bindAdd((function(_this) {\n return function(watchers) {\n var item, promise;\n item = $model.$modelValue.clone();\n item.watchers = watchers;\n $model.$setViewValue(item);\n promise = $repo.save($model.$modelValue);\n promise.then(function() {\n $confirm.notify(\"success\");\n watchers = _.map(watchers, function(watcherId) {\n return $scope.usersById[watcherId];\n });\n renderWatchers(watchers);\n return $rootscope.$broadcast(\"history:reload\");\n });\n return promise.then(null, function() {\n return $model.$modelValue.revert();\n });\n };\n })(this));\n deleteWatcher = $qqueue.bindAdd((function(_this) {\n return function(watcherIds) {\n var item, promise;\n item = $model.$modelValue.clone();\n item.watchers = watcherIds;\n $model.$setViewValue(item);\n promise = $repo.save($model.$modelValue);\n promise.then(function() {\n var watchers;\n $confirm.notify(\"success\");\n watchers = _.map(item.watchers, function(watcherId) {\n return $scope.usersById[watcherId];\n });\n renderWatchers(watchers);\n return $rootscope.$broadcast(\"history:reload\");\n });\n return promise.then(null, function() {\n item.revert();\n return $confirm.notify(\"error\");\n });\n };\n })(this));\n renderWatchers = function(watchers) {\n var ctx, html;\n ctx = {\n watchers: watchers,\n isEditable: isEditable()\n };\n html = template(ctx);\n $el.html(html);\n if (isEditable() && watchers.length === 0) {\n $el.find(\".title\").text(\"Add watchers\");\n return $el.find(\".watchers-header\").addClass(\"no-watchers\");\n }\n };\n $el.on(\"click\", \".icon-delete\", function(event) {\n var message, target, title, watcherId;\n event.preventDefault();\n if (!isEditable()) {\n return;\n }\n target = angular.element(event.currentTarget);\n watcherId = target.data(\"watcher-id\");\n title = \"Delete watcher\";\n message = $scope.usersById[watcherId].full_name_display;\n return $confirm.askOnDelete(title, message).then((function(_this) {\n return function(finish) {\n var watcherIds;\n finish();\n watcherIds = _.clone($model.$modelValue.watchers, false);\n watcherIds = _.pull(watcherIds, watcherId);\n return deleteWatcher(watcherIds);\n };\n })(this));\n });\n $el.on(\"click\", \".add-watcher\", function(event) {\n event.preventDefault();\n if (!isEditable()) {\n return;\n }\n return $scope.$apply(function() {\n return $rootscope.$broadcast(\"watcher:add\", $model.$modelValue);\n });\n });\n $scope.$on(\"watcher:added\", function(ctx, watcherId) {\n var watchers;\n watchers = _.clone($model.$modelValue.watchers, false);\n watchers.push(watcherId);\n watchers = _.uniq(watchers);\n return save(watchers);\n });\n $scope.$watch($attrs.ngModel, function(item) {\n var watchers;\n if (item == null) {\n return;\n }\n watchers = _.map(item.watchers, function(watcherId) {\n return $scope.usersById[watcherId];\n });\n return renderWatchers(watchers);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgWatchers\", [\"$rootScope\", \"$tgConfirm\", \"$tgRepo\", \"$tgQqueue\", \"$tgTemplate\", WatchersDirective]);\n\n AssignedToDirective = function($rootscope, $confirm, $repo, $loading, $qqueue, $template) {\n var link, template;\n template = $template.get(\"common/components/assigned-to.html\", true);\n link = function($scope, $el, $attrs, $model) {\n var isEditable, renderAssignedTo, save;\n isEditable = function() {\n var ref, ref1;\n return ((ref = $scope.project) != null ? (ref1 = ref.my_permissions) != null ? ref1.indexOf($attrs.requiredPerm) : void 0 : void 0) !== -1;\n };\n save = $qqueue.bindAdd((function(_this) {\n return function(userId) {\n var promise;\n $model.$modelValue.assigned_to = userId;\n $loading.start($el);\n promise = $repo.save($model.$modelValue);\n promise.then(function() {\n $loading.finish($el);\n $confirm.notify(\"success\");\n renderAssignedTo($model.$modelValue);\n return $rootscope.$broadcast(\"history:reload\");\n });\n promise.then(null, function() {\n $model.$modelValue.revert();\n $confirm.notify(\"error\");\n return $loading.finish($el);\n });\n return promise;\n };\n })(this));\n renderAssignedTo = function(issue) {\n var assignedTo, assignedToId, ctx, html;\n assignedToId = issue != null ? issue.assigned_to : void 0;\n assignedTo = assignedToId != null ? $scope.usersById[assignedToId] : null;\n ctx = {\n assignedTo: assignedTo,\n isEditable: isEditable()\n };\n html = template(ctx);\n return $el.html(html);\n };\n $el.on(\"click\", \".user-assigned\", function(event) {\n event.preventDefault();\n if (!isEditable()) {\n return;\n }\n return $scope.$apply(function() {\n return $rootscope.$broadcast(\"assigned-to:add\", $model.$modelValue);\n });\n });\n $el.on(\"click\", \".icon-delete\", function(event) {\n var title;\n event.preventDefault();\n if (!isEditable()) {\n return;\n }\n title = \"Are you sure you want to leave it unassigned?\";\n return $confirm.ask(title).then((function(_this) {\n return function(finish) {\n finish();\n $model.$modelValue.assigned_to = null;\n return save(null);\n };\n })(this));\n });\n $scope.$on(\"assigned-to:added\", function(ctx, userId, item) {\n if (item.id !== $model.$modelValue.id) {\n return;\n }\n return save(userId);\n });\n $scope.$watch($attrs.ngModel, function(instance) {\n return renderAssignedTo(instance);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgAssignedTo\", [\"$rootScope\", \"$tgConfirm\", \"$tgRepo\", \"$tgLoading\", \"$tgQqueue\", \"$tgTemplate\", AssignedToDirective]);\n\n BlockButtonDirective = function($rootscope, $loading, $template) {\n var link, template;\n template = $template.get(\"common/components/block-button.html\");\n link = function($scope, $el, $attrs, $model) {\n var isEditable;\n isEditable = function() {\n return $scope.project.my_permissions.indexOf(\"modify_us\") !== -1;\n };\n $scope.$watch($attrs.ngModel, function(item) {\n if (!item) {\n return;\n }\n if (isEditable()) {\n $el.find('.item-block').addClass('editable');\n }\n if (item.is_blocked) {\n $el.find('.item-block').hide();\n return $el.find('.item-unblock').show();\n } else {\n $el.find('.item-block').show();\n return $el.find('.item-unblock').hide();\n }\n });\n $el.on(\"click\", \".item-block\", function(event) {\n event.preventDefault();\n return $rootscope.$broadcast(\"block\", $model.$modelValue);\n });\n $el.on(\"click\", \".item-unblock\", function(event) {\n var finish;\n event.preventDefault();\n $loading.start($el.find(\".item-unblock\"));\n finish = function() {\n return $loading.finish($el.find(\".item-unblock\"));\n };\n return $rootscope.$broadcast(\"unblock\", $model.$modelValue, finish);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\",\n template: template\n };\n };\n\n module.directive(\"tgBlockButton\", [\"$rootScope\", \"$tgLoading\", \"$tgTemplate\", BlockButtonDirective]);\n\n DeleteButtonDirective = function($log, $repo, $confirm, $location, $template) {\n var link, template;\n template = $template.get(\"common/components/delete-button.html\");\n link = function($scope, $el, $attrs, $model) {\n if (!$attrs.onDeleteGoToUrl) {\n return $log.error(\"DeleteButtonDirective requires on-delete-go-to-url set in scope.\");\n }\n if (!$attrs.onDeleteTitle) {\n return $log.error(\"DeleteButtonDirective requires on-delete-title set in scope.\");\n }\n $el.on(\"click\", \".button\", function(event) {\n var subtitle, title;\n title = $scope.$eval($attrs.onDeleteTitle);\n subtitle = $model.$modelValue.subject;\n return $confirm.askOnDelete(title, subtitle).then((function(_this) {\n return function(finish) {\n var promise;\n promise = $repo.remove($model.$modelValue);\n promise.then(function() {\n var url;\n finish();\n url = $scope.$eval($attrs.onDeleteGoToUrl);\n return $location.path(url);\n });\n return promise.then(null, function() {\n finish(false);\n return $confirm.notify(\"error\");\n });\n };\n })(this));\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\",\n template: template\n };\n };\n\n module.directive(\"tgDeleteButton\", [\"$log\", \"$tgRepo\", \"$tgConfirm\", \"$tgLocation\", \"$tgTemplate\", DeleteButtonDirective]);\n\n EditableSubjectDirective = function($rootscope, $repo, $confirm, $loading, $qqueue, $template) {\n var link, template;\n template = $template.get(\"common/components/editable-subject.html\");\n link = function($scope, $el, $attrs, $model) {\n var isEditable, save;\n isEditable = function() {\n return $scope.project.my_permissions.indexOf($attrs.requiredPerm) !== -1;\n };\n save = $qqueue.bindAdd((function(_this) {\n return function(subject) {\n var promise;\n $model.$modelValue.subject = subject;\n $loading.start($el.find('.save-container'));\n promise = $repo.save($model.$modelValue);\n promise.then(function() {\n $confirm.notify(\"success\");\n $rootscope.$broadcast(\"history:reload\");\n $el.find('.edit-subject').hide();\n return $el.find('.view-subject').show();\n });\n promise.then(null, function() {\n return $confirm.notify(\"error\");\n });\n promise[\"finally\"](function() {\n return $loading.finish($el.find('.save-container'));\n });\n return promise;\n };\n })(this));\n $el.click(function() {\n if (!isEditable()) {\n return;\n }\n $el.find('.edit-subject').show();\n $el.find('.view-subject').hide();\n return $el.find('input').focus();\n });\n $el.on(\"click\", \".save\", function() {\n var subject;\n subject = $scope.item.subject;\n return save(subject);\n });\n $el.on(\"keyup\", \"input\", function(event) {\n var subject;\n if (event.keyCode === 13) {\n subject = $scope.item.subject;\n return save(subject);\n } else if (event.keyCode === 27) {\n $scope.$apply((function(_this) {\n return function() {\n return $model.$modelValue.revert();\n };\n })(this));\n $el.find('div.edit-subject').hide();\n return $el.find('div.view-subject').show();\n }\n });\n $el.find('div.edit-subject').hide();\n $el.find('div.view-subject span.edit').hide();\n $scope.$watch($attrs.ngModel, function(value) {\n if (!value) {\n return;\n }\n $scope.item = value;\n if (!isEditable()) {\n return $el.find('.view-subject .edit').remove();\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\",\n template: template\n };\n };\n\n module.directive(\"tgEditableSubject\", [\"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", \"$tgQqueue\", \"$tgTemplate\", EditableSubjectDirective]);\n\n EditableDescriptionDirective = function($rootscope, $repo, $confirm, $compile, $loading, $selectedText, $qqueue, $template) {\n var link, noDescriptionMegEditMode, noDescriptionMegReadMode, template;\n template = $template.get(\"common/components/editable-description.html\");\n noDescriptionMegEditMode = $template.get(\"common/components/editable-description-msg-edit-mode.html\");\n noDescriptionMegReadMode = $template.get(\"common/components/editable-description-msg-read-mode.html\");\n link = function($scope, $el, $attrs, $model) {\n var isEditable, save;\n $el.find('.edit-description').hide();\n $el.find('.view-description .edit').hide();\n isEditable = function() {\n return $scope.project.my_permissions.indexOf($attrs.requiredPerm) !== -1;\n };\n save = $qqueue.bindAdd((function(_this) {\n return function(description) {\n var promise;\n $model.$modelValue.description = description;\n $loading.start($el.find('.save-container'));\n promise = $repo.save($model.$modelValue);\n promise.then(function() {\n $confirm.notify(\"success\");\n $rootscope.$broadcast(\"history:reload\");\n $el.find('.edit-description').hide();\n return $el.find('.view-description').show();\n });\n promise.then(null, function() {\n return $confirm.notify(\"error\");\n });\n return promise[\"finally\"](function() {\n return $loading.finish($el.find('.save-container'));\n });\n };\n })(this));\n $el.on(\"mouseup\", \".view-description\", function(event) {\n var target;\n target = angular.element(event.target);\n if (!isEditable()) {\n return;\n }\n if (target.is('a')) {\n return;\n }\n if ($selectedText.get().length) {\n return;\n }\n $el.find('.edit-description').show();\n $el.find('.view-description').hide();\n return $el.find('textarea').focus();\n });\n $el.on(\"click\", \".save\", function(e) {\n var description;\n e.preventDefault();\n description = $scope.item.description;\n return save(description);\n });\n $el.on(\"keydown\", \"textarea\", function(event) {\n if (event.keyCode === 27) {\n $scope.$apply((function(_this) {\n return function() {\n return $scope.item.revert();\n };\n })(this));\n $el.find('.edit-description').hide();\n return $el.find('.view-description').show();\n }\n });\n $scope.$watch($attrs.ngModel, function(value) {\n if (!value) {\n return;\n }\n $scope.item = value;\n if (isEditable()) {\n $el.find('.view-description .edit').show();\n $el.find('.view-description .us-content').addClass('editable');\n return $scope.noDescriptionMsg = noDescriptionMegEditMode;\n } else {\n return $scope.noDescriptionMsg = noDescriptionMegReadMode;\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\",\n template: template\n };\n };\n\n module.directive(\"tgEditableDescription\", [\"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$compile\", \"$tgLoading\", \"$selectedText\", \"$tgQqueue\", \"$tgTemplate\", EditableDescriptionDirective]);\n\n ListItemIssueStatusDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var issue;\n issue = $scope.$eval($attrs.tgListitemIssueStatus);\n return bindOnce($scope, \"issueStatusById\", function(issueStatusById) {\n return $el.html(issueStatusById[issue.status].name);\n });\n };\n return {\n link: link\n };\n };\n\n ListItemTaskStatusDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var task;\n task = $scope.$eval($attrs.tgListitemTaskStatus);\n return bindOnce($scope, \"taskStatusById\", function(taskStatusById) {\n return $el.html(taskStatusById[task.status].name);\n });\n };\n return {\n link: link\n };\n };\n\n ListItemUsStatusDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var us;\n us = $scope.$eval($attrs.tgListitemUsStatus);\n return bindOnce($scope, \"usStatusById\", function(usStatusById) {\n return $el.html(usStatusById[us.status].name);\n });\n };\n return {\n link: link\n };\n };\n\n ListItemAssignedtoDirective = function($template) {\n var link, template;\n template = $template.get(\"common/components/list-item-assigned-to-avatar.html\", true);\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, \"membersById\", function(membersById) {\n var ctx, item, member;\n item = $scope.$eval($attrs.tgListitemAssignedto);\n ctx = {\n name: \"Unassigned\",\n imgurl: \"/images/unnamed.png\"\n };\n member = membersById[item.assigned_to];\n if (member) {\n ctx.imgurl = member.photo;\n ctx.name = member.full_name;\n }\n return $el.html(template(ctx));\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgListitemAssignedto\", [\"$tgTemplate\", ListItemAssignedtoDirective]);\n\n ListItemPriorityDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var render;\n render = function(priorityById, issue) {\n var domNode, priority;\n priority = priorityById[issue.priority];\n domNode = $el.find(\".level\");\n domNode.css(\"background-color\", priority.color);\n return domNode.attr(\"title\", priority.name);\n };\n bindOnce($scope, \"priorityById\", function(priorityById) {\n var issue;\n issue = $scope.$eval($attrs.tgListitemPriority);\n return render(priorityById, issue);\n });\n return $scope.$watch($attrs.tgListitemPriority, function(issue) {\n return render($scope.priorityById, issue);\n });\n };\n return {\n link: link,\n templateUrl: \"common/components/level.html\"\n };\n };\n\n module.directive(\"tgListitemPriority\", ListItemPriorityDirective);\n\n ListItemSeverityDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var render;\n render = function(severityById, issue) {\n var domNode, severity;\n severity = severityById[issue.severity];\n domNode = $el.find(\".level\");\n domNode.css(\"background-color\", severity.color);\n return domNode.attr(\"title\", severity.name);\n };\n bindOnce($scope, \"severityById\", function(severityById) {\n var issue;\n issue = $scope.$eval($attrs.tgListitemSeverity);\n return render(severityById, issue);\n });\n return $scope.$watch($attrs.tgListitemSeverity, function(issue) {\n return render($scope.severityById, issue);\n });\n };\n return {\n link: link,\n templateUrl: \"common/components/level.html\"\n };\n };\n\n ListItemTypeDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var render;\n render = function(issueTypeById, issue) {\n var domNode, type;\n type = issueTypeById[issue.type];\n domNode = $el.find(\".level\");\n domNode.css(\"background-color\", type.color);\n return domNode.attr(\"title\", type.name);\n };\n bindOnce($scope, \"issueTypeById\", function(issueTypeById) {\n var issue;\n issue = $scope.$eval($attrs.tgListitemType);\n return render(issueTypeById, issue);\n });\n return $scope.$watch($attrs.tgListitemType, function(issue) {\n return render($scope.issueTypeById, issue);\n });\n };\n return {\n link: link,\n templateUrl: \"common/components/level.html\"\n };\n };\n\n TgProgressBarDirective = function($template) {\n var link, render, template;\n template = $template.get(\"common/components/progress-bar.html\", true);\n render = function(el, percentage) {\n return el.html(template({\n percentage: percentage\n }));\n };\n link = function($scope, $el, $attrs) {\n var element;\n element = angular.element($el);\n $scope.$watch($attrs.tgProgressBar, function(percentage) {\n percentage = _.max([0, percentage]);\n percentage = _.min([100, percentage]);\n return render($el, percentage);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgProgressBar\", [\"$tgTemplate\", TgProgressBarDirective]);\n\n TgMainTitleDirective = function($template) {\n var link, render, template;\n template = $template.get(\"common/components/main-title.html\", true);\n render = function(el, projectName, sectionName) {\n return el.html(template({\n projectName: projectName,\n sectionName: sectionName\n }));\n };\n link = function($scope, $el, $attrs) {\n var element;\n element = angular.element($el);\n $scope.$watch(\"project\", function(project) {\n if (project) {\n return render($el, project.name, $scope.sectionName);\n }\n });\n $scope.$on(\"project:loaded\", (function(_this) {\n return function(ctx, project) {\n return render($el, project.name, $scope.sectionName);\n };\n })(this));\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgMainTitle\", [\"$tgTemplate\", TgMainTitleDirective]);\n\n module.directive(\"tgListitemType\", ListItemTypeDirective);\n\n module.directive(\"tgListitemIssueStatus\", ListItemIssueStatusDirective);\n\n module.directive(\"tgListitemSeverity\", ListItemSeverityDirective);\n\n module.directive(\"tgListitemTaskStatus\", ListItemTaskStatusDirective);\n\n module.directive(\"tgListitemUsStatus\", ListItemUsStatusDirective);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/confirm.coffee\n */\n\n(function() {\n var ConfirmService, NOTIFICATION_MSG, bindMethods, cancelTimeout, debounce, module, taiga, timeout,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n timeout = this.taiga.timeout;\n\n cancelTimeout = this.taiga.cancelTimeout;\n\n debounce = this.taiga.debounce;\n\n bindMethods = this.taiga.bindMethods;\n\n NOTIFICATION_MSG = {\n \"success\": {\n title: \"Everything is ok\",\n message: \"Our Oompa Loompas saved all your changes!\"\n },\n \"error\": {\n title: \"Oops, something happened...\",\n message: \"Our Oompa Loompas are sad, your changes were not saved!\"\n },\n \"light-error\": {\n title: \"Oops, something happened...\",\n message: \"Our Oompa Loompas are sad, your changes were not saved!\"\n }\n };\n\n ConfirmService = (function(superClass) {\n extend(ConfirmService, superClass);\n\n ConfirmService.$inject = [\"$q\", \"lightboxService\", \"$tgLoading\"];\n\n function ConfirmService(q, lightboxService, loading) {\n this.q = q;\n this.lightboxService = lightboxService;\n this.loading = loading;\n bindMethods(this);\n }\n\n ConfirmService.prototype.hide = function(el) {\n if (el) {\n this.lightboxService.close(el);\n return el.off(\".confirm-dialog\");\n }\n };\n\n ConfirmService.prototype.ask = function(title, subtitle, message, lightboxSelector) {\n var defered, el;\n if (lightboxSelector == null) {\n lightboxSelector = \".lightbox-generic-ask\";\n }\n el = angular.element(lightboxSelector);\n el.find(\"h2.title\").html(title);\n el.find(\"span.subtitle\").html(subtitle);\n el.find(\"span.message\").html(message);\n defered = this.q.defer();\n el.on(\"click.confirm-dialog\", \"a.button-green\", debounce(2000, (function(_this) {\n return function(event) {\n var target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n _this.loading.start(target);\n return defered.resolve(function(ok) {\n if (ok == null) {\n ok = true;\n }\n _this.loading.finish(target);\n if (ok) {\n return _this.hide(el);\n }\n });\n };\n })(this)));\n el.on(\"click.confirm-dialog\", \"a.button-red\", (function(_this) {\n return function(event) {\n event.preventDefault();\n defered.reject();\n return _this.hide(el);\n };\n })(this));\n this.lightboxService.open(el);\n return defered.promise;\n };\n\n ConfirmService.prototype.askOnDelete = function(title, message) {\n return this.ask(title, \"Are you sure you want to delete?\", message);\n };\n\n ConfirmService.prototype.askChoice = function(title, subtitle, choices, replacement, warning, lightboxSelector) {\n var choicesField, defered, el;\n if (lightboxSelector == null) {\n lightboxSelector = \".lightbox-ask-choice\";\n }\n el = angular.element(lightboxSelector);\n el.find(\".title\").html(title);\n el.find(\".subtitle\").html(subtitle);\n if (replacement) {\n el.find(\".replacement\").html(replacement);\n } else {\n el.find(\".replacement\").remove();\n }\n if (warning) {\n el.find(\".warning\").html(warning);\n } else {\n el.find(\".warning\").remove();\n }\n choicesField = el.find(\".choices\");\n choicesField.html('');\n _.each(choices, function(value, key) {\n return choicesField.append(angular.element(\"\"));\n });\n defered = this.q.defer();\n el.on(\"click.confirm-dialog\", \"a.button-green\", debounce(2000, (function(_this) {\n return function(event) {\n var target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n _this.loading.start(target);\n return defered.resolve({\n selected: choicesField.val(),\n finish: function() {\n _this.loading.finish(target);\n return _this.hide(el);\n }\n });\n };\n })(this)));\n el.on(\"click.confirm-dialog\", \"a.button-red\", (function(_this) {\n return function(event) {\n event.preventDefault();\n defered.reject();\n return _this.hide(el);\n };\n })(this));\n this.lightboxService.open(el);\n return defered.promise;\n };\n\n ConfirmService.prototype.error = function(message) {\n var defered, el;\n el = angular.element(\".lightbox-generic-error\");\n el.find(\"h2.title\").html(message);\n defered = this.q.defer();\n el.on(\"click.confirm-dialog\", \"a.button-green\", (function(_this) {\n return function(event) {\n event.preventDefault();\n defered.resolve();\n return _this.hide(el);\n };\n })(this));\n el.on(\"click.confirm-dialog\", \"a.close\", (function(_this) {\n return function(event) {\n event.preventDefault();\n defered.resolve();\n return _this.hide(el);\n };\n })(this));\n this.lightboxService.open(el);\n return defered.promise;\n };\n\n ConfirmService.prototype.success = function(title, message) {\n var defered, el;\n el = angular.element(\".lightbox-generic-success\");\n if (title) {\n el.find(\"h2.title\").html(title);\n }\n if (message) {\n el.find(\"p.message\").html(message);\n }\n defered = this.q.defer();\n el.on(\"click.confirm-dialog\", \"a.button-green\", (function(_this) {\n return function(event) {\n event.preventDefault();\n defered.resolve();\n return _this.hide(el);\n };\n })(this));\n el.on(\"click.confirm-dialog\", \"a.close\", (function(_this) {\n return function(event) {\n event.preventDefault();\n defered.resolve();\n return _this.hide(el);\n };\n })(this));\n this.lightboxService.open(el);\n return defered.promise;\n };\n\n ConfirmService.prototype.loader = function(title, message) {\n var el;\n el = angular.element(\".lightbox-generic-loading\");\n if (title) {\n el.find(\"h2.title\").html(title);\n }\n if (message) {\n el.find(\"p.message\").html(message);\n }\n return {\n start: (function(_this) {\n return function() {\n return _this.lightboxService.open(el);\n };\n })(this),\n stop: (function(_this) {\n return function() {\n return _this.lightboxService.close(el);\n };\n })(this),\n update: (function(_this) {\n return function(status, title, message, percent) {\n if (title) {\n el.find(\"h2.title\").html(title);\n }\n if (message) {\n el.find(\"p.message\").html(message);\n }\n if (percent) {\n el.find(\".spin\").addClass(\"hidden\");\n el.find(\".progress-bar-wrapper\").removeClass(\"hidden\");\n el.find(\".progress-bar-wrapper > .bar\").width(percent + '%');\n return el.find(\".progress-bar-wrapper > span\").html(percent + '%').css('left', (percent - 9) + '%');\n } else {\n el.find(\".spin\").removeClass(\"hidden\");\n return el.find(\".progress-bar-wrapper\").addClass(\"hidden\");\n }\n };\n })(this)\n };\n };\n\n ConfirmService.prototype.notify = function(type, message, title, time) {\n var body, el, selector;\n selector = \".notification-message-\" + type;\n el = angular.element(selector);\n if (el.hasClass(\"active\")) {\n return;\n }\n if (title) {\n el.find(\"h4\").html(title);\n } else {\n el.find(\"h4\").html(NOTIFICATION_MSG[type].title);\n }\n if (message) {\n el.find(\"p\").html(message);\n } else {\n el.find(\"p\").html(NOTIFICATION_MSG[type].message);\n }\n body = angular.element(\"body\");\n body.find(\".notification-message .notification-light\").removeClass('active').addClass('inactive');\n body.find(selector).removeClass('inactive').addClass('active');\n if (this.tsem) {\n cancelTimeout(this.tsem);\n }\n if (!time) {\n time = type === 'error' || type === 'light-error' ? 3500 : 1500;\n }\n this.tsem = timeout(time, (function(_this) {\n return function() {\n body.find(selector).removeClass('active').addClass('inactive');\n return delete _this.tsem;\n };\n })(this));\n return el.on(\"click\", \".icon-delete\", (function(_this) {\n return function(event) {\n return body.find(selector).removeClass('active').addClass('inactive');\n };\n })(this));\n };\n\n return ConfirmService;\n\n })(taiga.Service);\n\n module = angular.module(\"taigaCommon\");\n\n module.service(\"$tgConfirm\", ConfirmService);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/custom-field-values.coffee\n */\n\n(function() {\n var CustomAttributeValueDirective, CustomAttributesValuesController, CustomAttributesValuesDirective, bindMethods, bindOnce, debounce, generateHash, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n bindMethods = this.taiga.bindMethods;\n\n bindOnce = this.taiga.bindOnce;\n\n debounce = this.taiga.debounce;\n\n generateHash = taiga.generateHash;\n\n module = angular.module(\"taigaCommon\");\n\n CustomAttributesValuesController = (function(superClass) {\n extend(CustomAttributesValuesController, superClass);\n\n CustomAttributesValuesController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgResources\", \"$tgConfirm\", \"$q\"];\n\n function CustomAttributesValuesController(scope, rootscope, repo, rs, confirm, q) {\n this.scope = scope;\n this.rootscope = rootscope;\n this.repo = repo;\n this.rs = rs;\n this.confirm = confirm;\n this.q = q;\n bindMethods(this);\n this.type = null;\n this.objectId = null;\n this.projectId = null;\n this.customAttributes = [];\n this.customAttributesValues = null;\n }\n\n CustomAttributesValuesController.prototype.initialize = function(type, objectId) {\n this.project = this.scope.project;\n this.type = type;\n this.objectId = objectId;\n return this.projectId = this.scope.projectId;\n };\n\n CustomAttributesValuesController.prototype.loadCustomAttributesValues = function() {\n if (!this.objectId) {\n return this.customAttributesValues;\n }\n return this.rs.customAttributesValues[this.type].get(this.objectId).then((function(_this) {\n return function(customAttributesValues) {\n _this.customAttributes = _this.project[_this.type + \"_custom_attributes\"];\n _this.customAttributesValues = customAttributesValues;\n return customAttributesValues;\n };\n })(this));\n };\n\n CustomAttributesValuesController.prototype.getAttributeValue = function(attribute) {\n var attributeValue;\n attributeValue = _.clone(attribute, false);\n attributeValue.value = this.customAttributesValues.attributes_values[attribute.id];\n return attributeValue;\n };\n\n CustomAttributesValuesController.prototype.updateAttributeValue = function(attributeValue) {\n var attributesValues, onError, onSuccess;\n onSuccess = (function(_this) {\n return function() {\n return _this.rootscope.$broadcast(\"custom-attributes-values:edit\");\n };\n })(this);\n onError = (function(_this) {\n return function(response) {\n _this.confirm.notify(\"error\");\n return _this.q.reject();\n };\n })(this);\n attributesValues = _.clone(this.customAttributesValues.attributes_values, true);\n attributesValues[attributeValue.id] = attributeValue.value;\n this.customAttributesValues.attributes_values = attributesValues;\n this.customAttributesValues.id = this.objectId;\n return this.repo.save(this.customAttributesValues).then(onSuccess, onError);\n };\n\n return CustomAttributesValuesController;\n\n })(taiga.Controller);\n\n CustomAttributesValuesDirective = function($templates, $storage) {\n var collapsedHash, link, template, templateFn;\n template = $templates.get(\"custom-attributes/custom-attributes-values.html\", true);\n collapsedHash = function(type) {\n return generateHash([\"custom-attributes-collapsed\", type]);\n };\n link = function($scope, $el, $attrs, $ctrls) {\n var $ctrl, $model;\n $ctrl = $ctrls[0];\n $model = $ctrls[1];\n bindOnce($scope, $attrs.ngModel, function(value) {\n $ctrl.initialize($attrs.type, value.id);\n return $ctrl.loadCustomAttributesValues();\n });\n $el.on(\"click\", \".custom-fields-header a\", function() {\n var collapsed, hash;\n hash = collapsedHash($attrs.type);\n collapsed = !($storage.get(hash) || false);\n $storage.set(hash, collapsed);\n if (collapsed) {\n $el.find(\".custom-fields-header a\").removeClass(\"open\");\n return $el.find(\".custom-fields-body\").removeClass(\"open\");\n } else {\n $el.find(\".custom-fields-header a\").addClass(\"open\");\n return $el.find(\".custom-fields-body\").addClass(\"open\");\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n templateFn = function($el, $attrs) {\n var collapsed;\n collapsed = $storage.get(collapsedHash($attrs.type)) || false;\n return template({\n requiredEditionPerm: $attrs.requiredEditionPerm,\n collapsed: collapsed\n });\n };\n return {\n require: [\"tgCustomAttributesValues\", \"ngModel\"],\n controller: CustomAttributesValuesController,\n controllerAs: \"ctrl\",\n restrict: \"AE\",\n scope: true,\n link: link,\n template: templateFn\n };\n };\n\n module.directive(\"tgCustomAttributesValues\", [\"$tgTemplate\", \"$tgStorage\", CustomAttributesValuesDirective]);\n\n CustomAttributeValueDirective = function($template, $selectedText) {\n var link, template, templateEdit;\n template = $template.get(\"custom-attributes/custom-attribute-value.html\", true);\n templateEdit = $template.get(\"custom-attributes/custom-attribute-value-edit.html\", true);\n link = function($scope, $el, $attrs, $ctrl) {\n var attributeValue, isEditable, render, saveAttributeValue, submit;\n render = function(attributeValue, edit) {\n var ctx, editable, html, value;\n if (edit == null) {\n edit = false;\n }\n value = attributeValue.value;\n editable = isEditable();\n ctx = {\n id: attributeValue.id,\n name: attributeValue.name,\n description: attributeValue.description,\n value: value,\n isEditable: editable\n };\n if (editable && (edit || !value)) {\n html = templateEdit(ctx);\n } else {\n html = template(ctx);\n }\n return $el.html(html);\n };\n isEditable = function() {\n var permissions, requiredEditionPerm;\n permissions = $scope.project.my_permissions;\n requiredEditionPerm = $attrs.requiredEditionPerm;\n return permissions.indexOf(requiredEditionPerm) > -1;\n };\n saveAttributeValue = function() {\n attributeValue.value = $el.find(\"input\").val();\n return $scope.$apply(function() {\n return $ctrl.updateAttributeValue(attributeValue).then(function() {\n return render(attributeValue, false);\n });\n });\n };\n $el.on(\"keyup\", \"input[name=description]\", function(event) {\n if (event.keyCode === 13) {\n return submit(event);\n } else if (event.keyCode === 27) {\n return render(attributeValue, false);\n }\n });\n $el.on(\"click\", \".custom-field-value.read-mode\", function() {\n if (!isEditable()) {\n return;\n }\n if ($selectedText.get().length) {\n return;\n }\n render(attributeValue, true);\n return $el.find(\"input[name='description']\").focus().select();\n });\n $el.on(\"click\", \"a.icon-edit\", function(event) {\n event.preventDefault();\n render(attributeValue, true);\n return $el.find(\"input[name='description']\").focus().select();\n });\n submit = debounce(2000, (function(_this) {\n return function(event) {\n event.preventDefault();\n return saveAttributeValue();\n };\n })(this));\n $el.on(\"submit\", \"form\", submit);\n $el.on(\"click\", \"a.icon-floppy\", submit);\n $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n attributeValue = $scope.$eval($attrs.tgCustomAttributeValue);\n return render(attributeValue);\n };\n return {\n link: link,\n require: \"^tgCustomAttributesValues\",\n restrict: \"AE\"\n };\n };\n\n module.directive(\"tgCustomAttributeValue\", [\"$tgTemplate\", \"$selectedText\", CustomAttributeValueDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/estimation.coffee\n */\n\n(function() {\n var EstimationsService, LbUsEstimationDirective, UsEstimationDirective, groupBy, module, taiga,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };\n\n taiga = this.taiga;\n\n groupBy = this.taiga.groupBy;\n\n module = angular.module(\"taigaCommon\");\n\n LbUsEstimationDirective = function($tgEstimationsService, $rootScope, $repo, $confirm, $template) {\n var link;\n link = function($scope, $el, $attrs, $model) {\n $scope.$watch($attrs.ngModel, function(us) {\n var estimationProcess;\n if (us) {\n estimationProcess = $tgEstimationsService.create($el, us, $scope.project);\n estimationProcess.onSelectedPointForRole = function(roleId, pointId) {\n return $scope.$apply(function() {\n return $model.$setViewValue(us);\n });\n };\n estimationProcess.render = function() {\n var ctx, html, mainTemplate, template;\n ctx = {\n totalPoints: this.calculateTotalPoints(),\n roles: this.calculateRoles(),\n editable: this.isEditable\n };\n mainTemplate = \"common/estimation/us-estimation-points-per-role.html\";\n template = $template.get(mainTemplate, true);\n html = template(ctx);\n return this.$el.html(html);\n };\n return estimationProcess.render();\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgLbUsEstimation\", [\"$tgEstimationsService\", \"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgTemplate\", LbUsEstimationDirective]);\n\n UsEstimationDirective = function($tgEstimationsService, $rootScope, $repo, $confirm, $qqueue, $template) {\n var link;\n link = function($scope, $el, $attrs, $model) {\n $scope.$watch($attrs.ngModel, function(us) {\n var estimationProcess;\n if (us) {\n estimationProcess = $tgEstimationsService.create($el, us, $scope.project);\n estimationProcess.onSelectedPointForRole = function(roleId, pointId) {\n return this.save(roleId, pointId).then(function() {\n return $rootScope.$broadcast(\"history:reload\");\n });\n };\n estimationProcess.render = function() {\n var ctx, html, mainTemplate, template;\n ctx = {\n totalPoints: this.calculateTotalPoints(),\n roles: this.calculateRoles(),\n editable: this.isEditable\n };\n mainTemplate = \"common/estimation/us-estimation-points-per-role.html\";\n template = $template.get(mainTemplate, true);\n html = template(ctx);\n return this.$el.html(html);\n };\n return estimationProcess.render();\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgUsEstimation\", [\"$tgEstimationsService\", \"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgQqueue\", \"$tgTemplate\", UsEstimationDirective]);\n\n EstimationsService = function($template, $qqueue, $repo, $confirm, $q) {\n var EstimationProcess, create, pointsTemplate;\n pointsTemplate = $template.get(\"common/estimation/us-estimation-points.html\", true);\n EstimationProcess = (function() {\n function EstimationProcess($el1, us1, project1) {\n this.$el = $el1;\n this.us = us1;\n this.project = project1;\n this.bindClickEvents = bind(this.bindClickEvents, this);\n this.isEditable = this.project.my_permissions.indexOf(\"modify_us\") !== -1;\n this.roles = this.project.roles;\n this.points = this.project.points;\n this.pointsById = groupBy(this.points, function(x) {\n return x.id;\n });\n this.onSelectedPointForRole = function(roleId, pointId) {};\n this.render = function() {};\n }\n\n EstimationProcess.prototype.save = function(roleId, pointId) {\n var deferred;\n deferred = $q.defer();\n $qqueue.add((function(_this) {\n return function() {\n var onError, onSuccess;\n onSuccess = function() {\n deferred.resolve();\n return $confirm.notify(\"success\");\n };\n onError = function() {\n $confirm.notify(\"error\");\n _this.us.revert();\n _this.render();\n return deferred.reject();\n };\n return $repo.save(_this.us).then(onSuccess, onError);\n };\n })(this));\n return deferred.promise;\n };\n\n EstimationProcess.prototype.calculateTotalPoints = function() {\n var notNullValues, values;\n values = _.map(this.us.points, (function(_this) {\n return function(v, k) {\n var ref;\n return (ref = _this.pointsById[v]) != null ? ref.value : void 0;\n };\n })(this));\n if (values.length === 0) {\n return \"0\";\n }\n notNullValues = _.filter(values, function(v) {\n return v != null;\n });\n if (notNullValues.length === 0) {\n return \"?\";\n }\n return _.reduce(notNullValues, function(acc, num) {\n return acc + num;\n });\n };\n\n EstimationProcess.prototype.calculateRoles = function() {\n var computableRoles, roles;\n computableRoles = _.filter(this.project.roles, \"computable\");\n roles = _.map(computableRoles, (function(_this) {\n return function(role) {\n var pointId, pointObj;\n pointId = _this.us.points[role.id];\n pointObj = _this.pointsById[pointId];\n role = _.clone(role, true);\n role.points = (pointObj != null) && (pointObj.name != null) ? pointObj.name : \"?\";\n return role;\n };\n })(this));\n return roles;\n };\n\n EstimationProcess.prototype.bindClickEvents = function() {\n this.$el.on(\"click\", \".total.clickable\", (function(_this) {\n return function(event) {\n var roleId, target;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n roleId = target.data(\"role-id\");\n _this.renderPointsSelector(roleId, target);\n target.siblings().removeClass('active');\n return target.addClass('active');\n };\n })(this));\n return this.$el.on(\"click\", \".point\", (function(_this) {\n return function(event) {\n var pointId, points, roleId, target;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n roleId = target.data(\"role-id\");\n pointId = target.data(\"point-id\");\n _this.$el.find(\".popover\").popover().close();\n points = _.clone(_this.us.points, true);\n points[roleId] = pointId;\n _this.us.points = points;\n _this.render();\n return _this.onSelectedPointForRole(roleId, pointId);\n };\n })(this));\n };\n\n EstimationProcess.prototype.renderPointsSelector = function(roleId, target) {\n var horizontalList, html, maxPointLength, points;\n points = _.map(this.points, (function(_this) {\n return function(point) {\n point = _.clone(point, true);\n point.selected = _this.us.points[roleId] === point.id ? false : true;\n return point;\n };\n })(this));\n maxPointLength = 5;\n horizontalList = _.some(points, (function(_this) {\n return function(point) {\n return point.name.length > maxPointLength;\n };\n })(this));\n html = pointsTemplate({\n \"points\": points,\n roleId: roleId,\n horizontal: horizontalList\n });\n this.$el.find(\".popover\").popover().close();\n this.$el.find(\".pop-points-open\").remove();\n if (target != null) {\n this.$el.find(target).append(html);\n } else {\n this.$el.append(html);\n }\n this.$el.find(\".pop-points-open\").popover().open(function() {\n return $(this).removeClass(\"active\").closest(\"li\").removeClass(\"active\");\n });\n return this.$el.find(\".pop-points-open\").show();\n };\n\n return EstimationProcess;\n\n })();\n create = function($el, us, project) {\n var estimationProcess;\n $el.unbind(\"click\");\n estimationProcess = new EstimationProcess($el, us, project);\n if (estimationProcess.isEditable) {\n estimationProcess.bindClickEvents();\n }\n return estimationProcess;\n };\n return {\n create: create\n };\n };\n\n module.factory(\"$tgEstimationsService\", [\"$tgTemplate\", \"$tgQqueue\", \"$tgRepo\", \"$tgConfirm\", \"$q\", EstimationsService]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/filters.coffee\n */\n\n(function() {\n var FiltersStorageService, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n FiltersStorageService = (function(superClass) {\n extend(FiltersStorageService, superClass);\n\n FiltersStorageService.$inject = [\"$tgStorage\", \"$routeParams\"];\n\n function FiltersStorageService(storage, params) {\n this.storage = storage;\n this.params = params;\n }\n\n FiltersStorageService.prototype.generateHash = function(components) {\n if (components == null) {\n components = [];\n }\n components = _.map(components, function(x) {\n return JSON.stringify(x);\n });\n return hex_sha1(components.join(\":\"));\n };\n\n return FiltersStorageService;\n\n })(taiga.Service);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/history.coffee\n */\n\n(function() {\n var module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n resourceProvider = function($repo, $http, $urls) {\n var service;\n service = {};\n service.get = function(type, objectId) {\n return $repo.queryOneRaw(\"history/\" + type, objectId);\n };\n service.deleteComment = function(type, objectId, activityId) {\n var params, url;\n url = $urls.resolve(\"history/\" + type);\n url = url + \"/\" + objectId + \"/delete_comment\";\n params = {\n id: activityId\n };\n return $http.post(url, null, params).then((function(_this) {\n return function(data) {\n return data.data;\n };\n })(this));\n };\n service.undeleteComment = function(type, objectId, activityId) {\n var params, url;\n url = $urls.resolve(\"history/\" + type);\n url = url + \"/\" + objectId + \"/undelete_comment\";\n params = {\n id: activityId\n };\n return $http.post(url, null, params).then((function(_this) {\n return function(data) {\n return data.data;\n };\n })(this));\n };\n return function(instance) {\n return instance.history = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgHistoryResourcesProvider\", [\"$tgRepo\", \"$tgHttp\", \"$tgUrls\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/importer.coffee\n */\n\n(function() {\n var ImportProjectButtonDirective, module;\n\n module = angular.module(\"taigaCommon\");\n\n ImportProjectButtonDirective = function($rs, $confirm, $location, $navUrls) {\n var link;\n link = function($scope, $el, $attrs) {\n $el.on(\"click\", \".import-project-button\", function(event) {\n event.preventDefault();\n $el.find(\"input.import-file\").val(\"\");\n return $el.find(\"input.import-file\").trigger(\"click\");\n });\n return $el.on(\"change\", \"input.import-file\", function(event) {\n var file, loader, onError, onSuccess;\n event.preventDefault();\n file = event.target.files[0];\n if (!file) {\n return;\n }\n loader = $confirm.loader(\"Uploading dump file\");\n onSuccess = function(result) {\n var ctx, message, title;\n loader.stop();\n if (result.status === 202) {\n title = \"Our Oompa Loompas are importing your project\";\n message = \"This process could take a few minutes
We will send you an email when ready\";\n return $confirm.success(title, message);\n } else {\n ctx = {\n project: result.data.slug\n };\n $location.path($navUrls.resolve(\"project-admin-project-profile-details\", ctx));\n return $confirm.notify(\"success\", \"Your project has been imported successfuly.\");\n }\n };\n onError = function(result) {\n var errorMsg, ref;\n loader.stop();\n console.log(\"Error\", result);\n errorMsg = \"Our oompa loompas have some problems importing your dump data. Please try again. \";\n if (result.status === 429) {\n errorMsg = \"Sorry, our oompa loompas are very busy right now. Please try again in a few minutes. \";\n } else if ((ref = result.data) != null ? ref._error_message : void 0) {\n errorMsg = \"Our oompa loompas have some problems importing your dump data: \" + result.data._error_message;\n }\n return $confirm.notify(\"error\", errorMsg);\n };\n loader.start();\n return $rs.projects[\"import\"](file, loader.update).then(onSuccess, onError);\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgImportProjectButton\", [\"$tgResources\", \"$tgConfirm\", \"$location\", \"$tgNavUrls\", ImportProjectButtonDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/issues/lightboxes.coffee\n */\n\n(function() {\n var DeleteUserDirective, bindOnce, debounce, module, taiga;\n\n taiga = this.taiga;\n\n bindOnce = this.taiga.bindOnce;\n\n debounce = this.taiga.debounce;\n\n module = angular.module(\"taigaUserSettings\");\n\n DeleteUserDirective = function($repo, $rootscope, $auth, $location, $navUrls, lightboxService) {\n var link;\n link = function($scope, $el, $attrs) {\n var submit;\n $scope.$on(\"deletelightbox:new\", function(ctx, user) {\n return lightboxService.open($el);\n });\n $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n submit = function() {\n var promise;\n promise = $repo.remove($scope.user);\n promise.then(function(data) {\n lightboxService.close($el);\n $auth.logout();\n return $location.path($navUrls.resolve(\"login\"));\n });\n return promise.then(null, function() {\n return console.log(\"FAIL\");\n });\n };\n $el.on(\"click\", \".button-red\", function(event) {\n event.preventDefault();\n return lightboxService.close($el);\n });\n return $el.on(\"click\", \".button-green\", debounce(2000, function(event) {\n event.preventDefault();\n return submit();\n }));\n };\n return {\n link: link,\n templateUrl: \"user/lightbox/lightbox-delete-account.html\"\n };\n };\n\n module.directive(\"tgLbDeleteUser\", [\"$tgRepo\", \"$rootScope\", \"$tgAuth\", \"$tgLocation\", \"$tgNavUrls\", \"lightboxService\", DeleteUserDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n * Copyright (C) 2014 Juan Francisco Alcántara \n * Copyright (C) 2014 Alejandro Alonso \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/loader.coffee\n */\n\n(function() {\n var Loader, LoaderDirective, module, sizeFormat, taiga, timeout;\n\n taiga = this.taiga;\n\n sizeFormat = this.taiga.sizeFormat;\n\n timeout = this.taiga.timeout;\n\n module = angular.module(\"taigaCommon\");\n\n LoaderDirective = function(tgLoader, $rootscope) {\n var link;\n link = function($scope, $el, $attrs) {\n tgLoader.onStart(function() {\n $(document.body).addClass(\"loader-active\");\n return $el.addClass(\"active\");\n });\n tgLoader.onEnd(function() {\n $(document.body).removeClass(\"loader-active\");\n return $el.removeClass(\"active\");\n });\n $rootscope.$on(\"$routeChangeSuccess\", function(e) {\n return tgLoader.startCurrentPageLoader();\n });\n return $rootscope.$on(\"$locationChangeSuccess\", function(e) {\n return tgLoader.reset();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgLoader\", [\"tgLoader\", \"$rootScope\", LoaderDirective]);\n\n Loader = function() {\n var config, defaultConfig, forceDisabled;\n forceDisabled = false;\n defaultConfig = {\n enabled: false,\n minTime: 300\n };\n config = _.merge({}, defaultConfig);\n this.add = function() {\n return function() {\n if (!forceDisabled) {\n return config.enabled = true;\n }\n };\n };\n this.$get = [\n \"$rootScope\", function($rootscope) {\n var pageLoaded, reset, start, startLoadTime;\n startLoadTime = 0;\n reset = function() {\n return config = _.merge({}, defaultConfig);\n };\n pageLoaded = function(force) {\n var diff, endTime, timeoutValue;\n if (force == null) {\n force = false;\n }\n if (startLoadTime) {\n timeoutValue = 0;\n if (!force) {\n endTime = new Date().getTime();\n diff = endTime - startLoadTime;\n if (diff < config.minTime) {\n timeoutValue = config.minTime - diff;\n }\n }\n return timeout(timeoutValue, function() {\n return $rootscope.$broadcast(\"loader:end\");\n });\n }\n };\n start = function() {\n startLoadTime = new Date().getTime();\n return $rootscope.$broadcast(\"loader:start\");\n };\n return {\n reset: reset,\n pageLoaded: pageLoaded,\n start: start,\n startCurrentPageLoader: function() {\n if (config.enabled) {\n return start();\n }\n },\n onStart: function(fn) {\n return $rootscope.$on(\"loader:start\", fn);\n },\n onEnd: function(fn) {\n return $rootscope.$on(\"loader:end\", fn);\n },\n preventLoading: function() {\n return forceDisabled = true;\n },\n disablePreventLoading: function() {\n return forceDisabled = false;\n }\n };\n }\n ];\n };\n\n module.provider(\"tgLoader\", [Loader]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/lightboxes.coffee\n */\n\n(function() {\n var TgLoadingService, module,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n module = angular.module(\"taigaCommon\");\n\n TgLoadingService = (function(superClass) {\n extend(TgLoadingService, superClass);\n\n function TgLoadingService() {\n return TgLoadingService.__super__.constructor.apply(this, arguments);\n }\n\n TgLoadingService.prototype.start = function(target) {\n if (!target.hasClass('loading')) {\n target.data('loading-old-content', target.html());\n target.addClass('loading');\n return target.html(\"loading...\");\n }\n };\n\n TgLoadingService.prototype.finish = function(target) {\n var oldContent;\n if (target.hasClass('loading')) {\n oldContent = target.data('loading-old-content');\n target.data('loading-old-content', null);\n target.html(oldContent);\n return target.removeClass('loading');\n }\n };\n\n return TgLoadingService;\n\n })(taiga.Service);\n\n module.service(\"$tgLoading\", TgLoadingService);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/popovers.coffee\n */\n\n(function() {\n var RelatedTaskStatusDirective, UsStatusDirective, bindOnce, debounce, module, taiga;\n\n taiga = this.taiga;\n\n bindOnce = this.taiga.bindOnce;\n\n debounce = this.taiga.debounce;\n\n module = angular.module(\"taigaCommon\");\n\n UsStatusDirective = function($repo, $template) {\n\n /*\n Print the status of a US and a popover to change it.\n - tg-us-status: The user story\n - on-update: Method call after US is updated\n \n Example:\n \n div.status(tg-us-status=\"us\" on-update=\"ctrl.loadSprintState()\")\n a.us-status(href=\"\", title=\"Status Name\")\n \n NOTE: This directive need 'usStatusById' and 'project'.\n */\n var link, template;\n template = $template.get(\"common/popover/popover-us-status.html\", true);\n link = function($scope, $el, $attrs) {\n var $ctrl, render, us;\n $ctrl = $el.controller();\n render = function(us) {\n var usStatusById, usStatusDom, usStatusDomParent;\n usStatusDomParent = $el.find(\".us-status\");\n usStatusDom = $el.find(\".us-status .us-status-bind\");\n usStatusById = $scope.usStatusById;\n if (usStatusById[us.status]) {\n usStatusDom.text(usStatusById[us.status].name);\n return usStatusDomParent.css(\"color\", usStatusById[us.status].color);\n }\n };\n $el.on(\"click\", \".us-status\", function(event) {\n event.preventDefault();\n event.stopPropagation();\n return $el.find(\".pop-status\").popover().open();\n });\n $el.on(\"click\", \".status\", debounce(2000, function(event) {\n var target, us;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n us = $scope.$eval($attrs.tgUsStatus);\n us.status = target.data(\"status-id\");\n render(us);\n $el.find(\".pop-status\").popover().close();\n return $scope.$apply(function() {\n return $repo.save(us).then(function() {\n return $scope.$eval($attrs.onUpdate);\n });\n });\n }));\n $scope.$on(\"userstories:loaded\", function() {\n return render($scope.$eval($attrs.tgUsStatus));\n });\n $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n us = $scope.$eval($attrs.tgUsStatus);\n render(us);\n return bindOnce($scope, \"project\", function(project) {\n var html;\n html = template({\n \"statuses\": project.us_statuses\n });\n $el.append(html);\n if ($scope.project.my_permissions.indexOf(\"modify_us\") === -1) {\n $el.unbind(\"click\");\n return $el.find(\"a\").addClass(\"not-clickable\");\n }\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgUsStatus\", [\"$tgRepo\", \"$tgTemplate\", UsStatusDirective]);\n\n RelatedTaskStatusDirective = function($repo, $template) {\n\n /*\n Print the status of a related task and a popover to change it.\n - tg-related-task-status: The related task\n - on-update: Method call after US is updated\n \n Example:\n \n div.status(tg-related-task-status=\"task\" on-update=\"ctrl.loadSprintState()\")\n a.task-status(href=\"\", title=\"Status Name\")\n \n NOTE: This directive need 'taskStatusById' and 'project'.\n */\n var link, selectionTemplate, updateTaskStatus;\n selectionTemplate = $template.get(\"common/popover/popover-related-task-status.html\", true);\n updateTaskStatus = function($el, task, taskStatusById) {\n var taskStatusDom, taskStatusDomParent;\n taskStatusDomParent = $el.find(\".us-status\");\n taskStatusDom = $el.find(\".task-status .task-status-bind\");\n if (taskStatusById[task.status]) {\n taskStatusDom.text(taskStatusById[task.status].name);\n return taskStatusDomParent.css('color', taskStatusById[task.status].color);\n }\n };\n link = function($scope, $el, $attrs) {\n var $ctrl, autoSave, notAutoSave, task;\n $ctrl = $el.controller();\n task = $scope.$eval($attrs.tgRelatedTaskStatus);\n notAutoSave = $scope.$eval($attrs.notAutoSave);\n autoSave = !notAutoSave;\n $el.on(\"click\", \".task-status\", function(event) {\n event.preventDefault();\n event.stopPropagation();\n return $el.find(\".pop-status\").popover().open();\n });\n $el.on(\"click\", \".status\", debounce(2000, function(event) {\n var target;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n task.status = target.data(\"status-id\");\n $el.find(\".pop-status\").popover().close();\n updateTaskStatus($el, task, $scope.taskStatusById);\n if (autoSave) {\n return $scope.$apply(function() {\n return $repo.save(task).then(function() {\n $scope.$eval($attrs.onUpdate);\n return $scope.$emit(\"related-tasks:status-changed\");\n });\n });\n }\n }));\n taiga.bindOnce($scope, \"project\", function(project) {\n $el.append(selectionTemplate({\n 'statuses': project.task_statuses\n }));\n updateTaskStatus($el, task, $scope.taskStatusById);\n if (project.my_permissions.indexOf(\"modify_task\") === -1) {\n $el.unbind(\"click\");\n return $el.find(\"a\").addClass(\"not-clickable\");\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgRelatedTaskStatus\", [\"$tgRepo\", \"$tgTemplate\", RelatedTaskStatusDirective]);\n\n $.fn.popover = function() {\n var $el, close, closeAll, closePopover, isVisible, open;\n $el = this;\n isVisible = (function(_this) {\n return function() {\n var docViewBottom, docViewLeft, docViewRight, docViewTop, docViewWidth, elemBottom, elemLeft, elemRight, elemTop, elemWidth;\n $el.css({\n \"display\": \"block\",\n \"visibility\": \"hidden\"\n });\n docViewTop = $(window).scrollTop();\n docViewBottom = docViewTop + $(window).height();\n docViewWidth = $(window).width();\n docViewRight = docViewWidth;\n docViewLeft = 0;\n elemTop = $el.offset().top;\n elemBottom = elemTop + $el.height();\n elemWidth = $el.width();\n elemLeft = $el.offset().left;\n elemRight = $el.offset().left + elemWidth;\n $el.css({\n \"display\": \"none\",\n \"visibility\": \"visible\"\n });\n return (elemBottom <= docViewBottom) && (elemTop >= docViewTop) && (elemLeft >= docViewLeft) && (elemRight <= docViewRight);\n };\n })(this);\n closePopover = (function(_this) {\n return function(onClose) {\n if (onClose) {\n onClose.call($el);\n }\n $el.fadeOut(function() {\n return $el.removeClass(\"active\").removeClass(\"fix\");\n });\n return $el.off(\"popup:close\");\n };\n })(this);\n closeAll = (function(_this) {\n return function() {\n return $(\".popover.active\").each(function() {\n return $(this).trigger(\"popup:close\");\n });\n };\n })(this);\n open = (function(_this) {\n return function(onClose) {\n if ($el.hasClass(\"active\")) {\n return close();\n } else {\n closeAll();\n if (!isVisible()) {\n $el.addClass(\"fix\");\n }\n $el.fadeIn(function() {\n $el.addClass(\"active\");\n $(document.body).off(\"popover\");\n return $(document.body).one(\"click.popover\", function() {\n return closeAll();\n });\n });\n return $el.on(\"popup:close\", function(e) {\n return closePopover(onClose);\n });\n }\n };\n })(this);\n close = (function(_this) {\n return function() {\n return $el.trigger(\"popup:close\");\n };\n })(this);\n return {\n open: open,\n close: close,\n closeAll: closeAll\n };\n };\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/raven-logger.coffee\n */\n\n(function() {\n var ExceptionHandlerFactory, module, taiga;\n\n taiga = this.taiga;\n\n module = angular.module(\"taigaCommon\");\n\n ExceptionHandlerFactory = function($log, config) {\n var ravenConfig;\n this.config = config;\n ravenConfig = this.config.get(\"ravenConfig\", null);\n if (ravenConfig) {\n $log.debug(\"Using the RavenJS exception handler.\");\n Raven.config(ravenConfig).install();\n return function(exception, cause) {\n $log.error.apply($log, arguments);\n return Raven.captureException(exception);\n };\n } else {\n $log.debug(\"Using the default logging exception handler.\");\n return function(exception, cause) {\n return $log.error.apply($log, arguments);\n };\n }\n };\n\n module.factory(\"$exceptionHandler\", [\"$log\", \"$tgConfig\", ExceptionHandlerFactory]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/tags.coffee\n */\n\n(function() {\n var ColorizeTagsDirective, LbTagLineDirective, TagLineDirective, TagsDirective, bindOnce, module, taiga, trim,\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\n\n taiga = this.taiga;\n\n trim = this.taiga.trim;\n\n bindOnce = this.taiga.bindOnce;\n\n module = angular.module(\"taigaCommon\");\n\n TagsDirective = function() {\n var formatter, link, parser;\n formatter = function(v) {\n if (_.isArray(v)) {\n return v.join(\", \");\n }\n return \"\";\n };\n parser = function(v) {\n var result;\n if (!v) {\n return [];\n }\n result = _(v.split(\",\")).map(function(x) {\n return _.str.trim(x);\n });\n return result.value();\n };\n link = function($scope, $el, $attrs, $ctrl) {\n $ctrl.$formatters.push(formatter);\n $ctrl.$parsers.push(parser);\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n require: \"ngModel\",\n link: link\n };\n };\n\n module.directive(\"tgTags\", TagsDirective);\n\n ColorizeTagsDirective = function() {\n var link, templates;\n templates = {\n backlog: _.template(\"<% _.each(tags, function(tag) { %>\\n \\\"><%- tag.name %>\\n<% }) %>\"),\n kanban: _.template(\"<% _.each(tags, function(tag) { %>\\n \\\" title=\\\"<%- tag.name %>\\\" />\\n<% }) %>\"),\n taskboard: _.template(\"<% _.each(tags, function(tag) { %>\\n \\\" title=\\\"<%- tag.name %>\\\" />\\n<% }) %>\")\n };\n link = function($scope, $el, $attrs, $ctrl) {\n var render;\n render = function(srcTags) {\n var html, tags, template;\n template = templates[$attrs.tgColorizeTagsType];\n srcTags.sort();\n tags = _.map(srcTags, function(tag) {\n var color;\n color = $scope.project.tags_colors[tag];\n return {\n name: tag,\n color: color\n };\n });\n html = template({\n tags: tags\n });\n return $el.html(html);\n };\n $scope.$watch($attrs.tgColorizeTags, function(tags) {\n if (tags != null) {\n return render(tags);\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgColorizeTags\", ColorizeTagsDirective);\n\n LbTagLineDirective = function($rs, $template) {\n var COMMA_KEY, ENTER_KEY, link, templateTags;\n ENTER_KEY = 13;\n COMMA_KEY = 188;\n templateTags = $template.get(\"common/tag/lb-tag-line-tags.html\", true);\n link = function($scope, $el, $attrs, $model) {\n var addValue, deleteValue, hideSaveButton, removeInputLastCharacter, renderTags, resetInput, saveInputTag, showSaveButton;\n renderTags = function(tags, tagsColors) {\n var ctx, html;\n ctx = {\n tags: _.map(tags, function(t) {\n return {\n name: t,\n color: tagsColors[t]\n };\n })\n };\n _.map(ctx.tags, (function(_this) {\n return function(tag) {\n if (tag.color) {\n return tag.style = \"border-left: 5px solid \" + tag.color;\n }\n };\n })(this));\n html = templateTags(ctx);\n return $el.find(\"div.tags-container\").html(html);\n };\n showSaveButton = function() {\n return $el.find(\".save\").removeClass(\"hidden\");\n };\n hideSaveButton = function() {\n return $el.find(\".save\").addClass(\"hidden\");\n };\n resetInput = function() {\n $el.find(\"input\").val(\"\");\n return $el.find(\"input\").autocomplete(\"close\");\n };\n addValue = function(value) {\n var tags;\n value = trim(value.toLowerCase());\n if (value.length === 0) {\n return;\n }\n tags = _.clone($model.$modelValue, false);\n if (tags == null) {\n tags = [];\n }\n if (indexOf.call(tags, value) < 0) {\n tags.push(value);\n }\n $scope.$apply(function() {\n return $model.$setViewValue(tags);\n });\n return hideSaveButton();\n };\n deleteValue = function(value) {\n var tags;\n value = trim(value.toLowerCase());\n if (value.length === 0) {\n return;\n }\n tags = _.clone($model.$modelValue, false);\n tags = _.pull(tags, value);\n return $scope.$apply(function() {\n return $model.$setViewValue(tags);\n });\n };\n saveInputTag = function() {\n var value;\n value = $el.find(\"input\").val();\n addValue(value);\n return resetInput();\n };\n removeInputLastCharacter = (function(_this) {\n return function(input) {\n var inputValue;\n inputValue = input.val();\n return input.val(inputValue.substring(0, inputValue.length - 1));\n };\n })(this);\n $el.on(\"keypress\", \"input\", function(event) {\n if (event.keyCode !== ENTER_KEY) {\n return;\n }\n return event.preventDefault();\n });\n $el.on(\"keyup\", \"input\", function(event) {\n var target;\n target = angular.element(event.currentTarget);\n if (event.keyCode === ENTER_KEY) {\n return saveInputTag();\n } else if (event.keyCode === COMMA_KEY) {\n removeInputLastCharacter(target);\n return saveInputTag();\n } else {\n if (target.val().length) {\n return showSaveButton();\n } else {\n return hideSaveButton();\n }\n }\n });\n $el.on(\"click\", \".save\", function(event) {\n event.preventDefault();\n return saveInputTag();\n });\n $el.on(\"click\", \".icon-delete\", function(event) {\n var target, value;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n value = target.siblings(\".tag-name\").text();\n return deleteValue(value);\n });\n bindOnce($scope, \"project\", function(project) {\n var positioningFunction;\n positioningFunction = function(position, elements) {\n var menu;\n menu = elements.element.element;\n menu.css(\"width\", elements.target.width);\n menu.css(\"top\", position.top);\n return menu.css(\"left\", position.left);\n };\n return $el.find(\"input\").autocomplete({\n source: _.keys(project.tags_colors),\n position: {\n my: \"left top\",\n using: positioningFunction\n },\n select: function(event, ui) {\n addValue(ui.item.value);\n return ui.item.value = \"\";\n }\n });\n });\n $scope.$watch($attrs.ngModel, function(tags) {\n var ref, tagsColors;\n tagsColors = ((ref = $scope.project) != null ? ref.tags_colors : void 0) || [];\n return renderTags(tags, tagsColors);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n require: \"ngModel\",\n templateUrl: \"common/tag/lb-tag-line.html\"\n };\n };\n\n module.directive(\"tgLbTagLine\", [\"$tgResources\", \"$tgTemplate\", LbTagLineDirective]);\n\n TagLineDirective = function($rootScope, $repo, $rs, $confirm, $qqueue, $template) {\n var COMMA_KEY, ENTER_KEY, ESC_KEY, link, templateTags;\n ENTER_KEY = 13;\n ESC_KEY = 27;\n COMMA_KEY = 188;\n templateTags = $template.get(\"common/tag/tags-line-tags.html\", true);\n link = function($scope, $el, $attrs, $model) {\n var addValue, deleteValue, hideAddTagButton, hideAddTagButtonText, hideInput, hideSaveButton, isEditable, removeInputLastCharacter, renderInReadModeOnly, renderTags, resetInput, saveInputTag, showAddTagButton, showAddTagButtonText, showInput, showSaveButton;\n isEditable = function() {\n return $scope.project.my_permissions.indexOf($attrs.requiredPerm) !== -1;\n };\n renderTags = function(tags, tagsColors) {\n var ctx, html;\n ctx = {\n tags: _.map(tags, function(t) {\n return {\n name: t,\n color: tagsColors[t]\n };\n }),\n isEditable: isEditable()\n };\n html = templateTags(ctx);\n return $el.find(\"div.tags-container\").html(html);\n };\n renderInReadModeOnly = function() {\n $el.find(\".add-tag\").remove();\n $el.find(\"input\").remove();\n return $el.find(\".save\").remove();\n };\n showAddTagButton = function() {\n return $el.find(\".add-tag\").removeClass(\"hidden\");\n };\n hideAddTagButton = function() {\n return $el.find(\".add-tag\").addClass(\"hidden\");\n };\n showAddTagButtonText = function() {\n return $el.find(\".add-tag-text\").removeClass(\"hidden\");\n };\n hideAddTagButtonText = function() {\n return $el.find(\".add-tag-text\").addClass(\"hidden\");\n };\n showSaveButton = function() {\n return $el.find(\".save\").removeClass(\"hidden\");\n };\n hideSaveButton = function() {\n return $el.find(\".save\").addClass(\"hidden\");\n };\n showInput = function() {\n return $el.find(\"input\").removeClass(\"hidden\").focus();\n };\n hideInput = function() {\n return $el.find(\"input\").addClass(\"hidden\").blur();\n };\n resetInput = function() {\n $el.find(\"input\").val(\"\");\n return $el.find(\"input\").autocomplete(\"close\");\n };\n addValue = $qqueue.bindAdd(function(value) {\n var model, onError, onSuccess, tags;\n value = trim(value.toLowerCase());\n if (value.length === 0) {\n return;\n }\n tags = _.clone($model.$modelValue.tags, false);\n if (tags == null) {\n tags = [];\n }\n if (indexOf.call(tags, value) < 0) {\n tags.push(value);\n }\n model = $model.$modelValue.clone();\n model.tags = tags;\n $model.$setViewValue(model);\n onSuccess = function() {\n return $rootScope.$broadcast(\"history:reload\");\n };\n onError = function() {\n $confirm.notify(\"error\");\n model.revert();\n return $model.$setViewValue(model);\n };\n $repo.save(model).then(onSuccess, onError);\n return hideSaveButton();\n });\n deleteValue = $qqueue.bindAdd(function(value) {\n var model, onError, onSuccess, tags;\n value = trim(value.toLowerCase());\n if (value.length === 0) {\n return;\n }\n tags = _.clone($model.$modelValue.tags, false);\n tags = _.pull(tags, value);\n model = $model.$modelValue.clone();\n model.tags = tags;\n $model.$setViewValue(model);\n onSuccess = function() {\n return $rootScope.$broadcast(\"history:reload\");\n };\n onError = function() {\n $confirm.notify(\"error\");\n model.revert();\n return $model.$setViewValue(model);\n };\n return $repo.save(model).then(onSuccess, onError);\n });\n saveInputTag = function() {\n var value;\n value = $el.find(\"input\").val();\n addValue(value);\n return resetInput();\n };\n removeInputLastCharacter = (function(_this) {\n return function(input) {\n var inputValue;\n inputValue = input.val();\n return input.val(inputValue.substring(0, inputValue.length - 1));\n };\n })(this);\n $el.on(\"keypress\", \"input\", function(event) {\n var ref;\n if ((ref = event.keyCode) !== ENTER_KEY && ref !== ESC_KEY) {\n return;\n }\n return event.preventDefault();\n });\n $el.on(\"keyup\", \"input\", function(event) {\n var target;\n target = angular.element(event.currentTarget);\n if (event.keyCode === ENTER_KEY) {\n return saveInputTag();\n } else if (event.keyCode === COMMA_KEY) {\n removeInputLastCharacter(target);\n return saveInputTag();\n } else if (event.keyCode === ESC_KEY) {\n resetInput();\n hideInput();\n hideSaveButton();\n return showAddTagButton();\n } else {\n if (target.val().length) {\n return showSaveButton();\n } else {\n return hideSaveButton();\n }\n }\n });\n $el.on(\"click\", \".save\", function(event) {\n event.preventDefault();\n return saveInputTag();\n });\n $el.on(\"click\", \".add-tag\", function(event) {\n event.preventDefault();\n hideAddTagButton();\n return showInput();\n });\n $el.on(\"click\", \".icon-delete\", function(event) {\n var target, value;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n value = target.siblings(\".tag-name\").text();\n return deleteValue(value);\n });\n bindOnce($scope, \"project\", function(project) {\n var positioningFunction;\n if (!isEditable()) {\n renderInReadModeOnly();\n return;\n }\n showAddTagButton();\n positioningFunction = function(position, elements) {\n var menu;\n menu = elements.element.element;\n menu.css(\"width\", elements.target.width);\n menu.css(\"top\", position.top);\n return menu.css(\"left\", position.left);\n };\n return $el.find(\"input\").autocomplete({\n source: _.keys(project.tags_colors),\n position: {\n my: \"left top\",\n using: positioningFunction\n },\n select: function(event, ui) {\n addValue(ui.item.value);\n return ui.item.value = \"\";\n }\n });\n });\n $scope.$watch($attrs.ngModel, function(model) {\n var ref, ref1, tagsColors;\n if (!model) {\n return;\n }\n if ((ref = model.tags) != null ? ref.length : void 0) {\n hideAddTagButtonText();\n } else {\n showAddTagButtonText();\n }\n tagsColors = ((ref1 = $scope.project) != null ? ref1.tags_colors : void 0) || [];\n return renderTags(model.tags, tagsColors);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n require: \"ngModel\",\n templateUrl: \"common/tag/tag-line.html\"\n };\n };\n\n module.directive(\"tgTagLine\", [\"$rootScope\", \"$tgRepo\", \"$tgResources\", \"$tgConfirm\", \"$tgQqueue\", \"$tgTemplate\", TagLineDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/common/wisiwyg.coffee\n */\n\n(function() {\n var bindOnce, module, taiga, tgMarkitupDirective,\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\n\n taiga = this.taiga;\n\n bindOnce = this.taiga.bindOnce;\n\n module = angular.module(\"taigaCommon\");\n\n tgMarkitupDirective = function($rootscope, $rs, $tr, $selectedText, $template) {\n var link, previewTemplate;\n previewTemplate = $template.get(\"common/wysiwyg/wysiwyg-markitup-preview.html\", true);\n link = function($scope, $el, $attrs, $model) {\n var addLine, closePreviewMode, element, markdownSettings, markdownTitle, prepareUrlFormatting, preview, previewDomNode, setCaretPosition, urlFormatting;\n element = angular.element($el);\n previewDomNode = $(\"
\", {\n \"class\": \"preview\"\n });\n closePreviewMode = function() {\n element.parents(\".markdown\").find(\".preview\").remove();\n return element.parents(\".markItUp\").show();\n };\n $scope.$on(\"markdown-editor:submit\", function() {\n return closePreviewMode();\n });\n preview = function() {\n var markItUpDomNode, markdownDomNode;\n markdownDomNode = element.parents(\".markdown\");\n markItUpDomNode = element.parents(\".markItUp\");\n return $rs.mdrender.render($scope.projectId, $model.$modelValue).then(function(data) {\n var markdown;\n markdownDomNode.append(previewTemplate({\n data: data.data\n }));\n markItUpDomNode.hide();\n markdown = element.closest(\".markdown\");\n return markdown.on(\"mouseup.preview\", \".preview\", function(event) {\n var target;\n event.preventDefault();\n target = angular.element(event.target);\n if (!target.is('a') && $selectedText.get().length) {\n return;\n }\n markdown.off(\".preview\");\n return closePreviewMode();\n });\n });\n };\n setCaretPosition = function(textarea, caretPosition) {\n var line, range, scrollRelation, totalLines;\n if (textarea.createTextRange) {\n range = textarea.createTextRange();\n range.move(\"character\", caretPosition);\n range.select();\n } else if (textarea.selectionStart) {\n textarea.focus();\n textarea.setSelectionRange(caretPosition, caretPosition);\n }\n totalLines = textarea.value.split(\"\\n\").length;\n line = textarea.value.slice(0, +(caretPosition - 1) + 1 || 9e9).split(\"\\n\").length;\n scrollRelation = line / totalLines;\n return $el.scrollTop((scrollRelation * $el[0].scrollHeight) - ($el.height() / 2));\n };\n addLine = function(textarea, nline, replace) {\n var cursorPosition, j, key, len, line, lines;\n lines = textarea.value.split(\"\\n\");\n if (replace) {\n lines[nline] = replace + lines[nline];\n } else {\n lines[nline] = \"\";\n }\n cursorPosition = 0;\n for (key = j = 0, len = lines.length; j < len; key = ++j) {\n line = lines[key];\n cursorPosition += line.length + 1 || 1;\n if (key === nline) {\n break;\n }\n }\n textarea.value = lines.join(\"\\n\");\n if (replace) {\n return cursorPosition - lines[nline].length + replace.length - 1;\n } else {\n return cursorPosition;\n }\n };\n markdownSettings = {\n nameSpace: \"markdown\",\n onShiftEnter: {\n keepDefault: false,\n openWith: \"\\n\\n\"\n },\n onEnter: {\n keepDefault: false,\n replaceWith: function() {\n return \"\\n\";\n },\n afterInsert: function(data) {\n var cursorLine, emptyListItem, lastLine, lines, markdownCaretPositon, match, newLineContent;\n lines = data.textarea.value.split(\"\\n\");\n cursorLine = data.textarea.value.slice(0, +(data.caretPosition - 1) + 1 || 9e9).split(\"\\n\").length;\n newLineContent = data.textarea.value.slice(data.caretPosition).split(\"\\n\")[0];\n lastLine = lines[cursorLine - 1];\n match = lastLine.match(/^(\\s*- ).*/);\n if (match) {\n emptyListItem = lastLine.match(/^(\\s*)\\-\\s$/);\n if (emptyListItem) {\n markdownCaretPositon = addLine(data.textarea, cursorLine - 1);\n } else {\n markdownCaretPositon = addLine(data.textarea, cursorLine, \"\" + match[1]);\n }\n }\n match = lastLine.match(/^(\\s*\\* ).*/);\n if (match) {\n emptyListItem = lastLine.match(/^(\\s*\\* )$/);\n if (emptyListItem) {\n markdownCaretPositon = addLine(data.textarea, cursorLine - 1);\n } else {\n markdownCaretPositon = addLine(data.textarea, cursorLine, \"\" + match[1]);\n }\n }\n match = lastLine.match(/^(\\s*)(\\d+)\\.\\s/);\n if (match) {\n emptyListItem = lastLine.match(/^(\\s*)(\\d+)\\.\\s$/);\n if (emptyListItem) {\n markdownCaretPositon = addLine(data.textarea, cursorLine - 1);\n } else {\n markdownCaretPositon = addLine(data.textarea, cursorLine, (match[1] + (parseInt(match[2], 10) + 1)) + \". \");\n }\n }\n if (markdownCaretPositon) {\n return setCaretPosition(data.textarea, markdownCaretPositon);\n }\n }\n },\n markupSet: [\n {\n name: $tr.t(\"markdown-editor.heading-1\"),\n key: \"1\",\n placeHolder: $tr.t(\"markdown-editor.placeholder\"),\n closeWith: function(markItUp) {\n return markdownTitle(markItUp, \"=\");\n }\n }, {\n name: $tr.t(\"markdown-editor.heading-2\"),\n key: \"2\",\n placeHolder: $tr.t(\"markdown-editor.placeholder\"),\n closeWith: function(markItUp) {\n return markdownTitle(markItUp, \"-\");\n }\n }, {\n name: $tr.t(\"markdown-editor.heading-3\"),\n key: \"3\",\n openWith: \"### \",\n placeHolder: $tr.t(\"markdown-editor.placeholder\")\n }, {\n separator: \"---------------\"\n }, {\n name: $tr.t(\"markdown-editor.bold\"),\n key: \"B\",\n openWith: \"**\",\n closeWith: \"**\"\n }, {\n name: $tr.t(\"markdown-editor.italic\"),\n key: \"I\",\n openWith: \"_\",\n closeWith: \"_\"\n }, {\n name: $tr.t(\"markdown-editor.strike\"),\n key: \"S\",\n openWith: \"~~\",\n closeWith: \"~~\"\n }, {\n separator: \"---------------\"\n }, {\n name: $tr.t(\"markdown-editor.bulleted-list\"),\n openWith: \"- \"\n }, {\n name: $tr.t(\"markdown-editor.numeric-list\"),\n openWith: function(markItUp) {\n return markItUp.line + \". \";\n }\n }, {\n separator: \"---------------\"\n }, {\n name: $tr.t(\"markdown-editor.picture\"),\n key: \"P\",\n replaceWith: '![[![Alternative text]!]](<<<[![Url:!:http://]!]>>> \"[![Title]!]\")',\n beforeInsert: function(markItUp) {\n return prepareUrlFormatting(markItUp);\n },\n afterInsert: function(markItUp) {\n return urlFormatting(markItUp);\n }\n }, {\n name: $tr.t(\"markdown-editor.link\"),\n key: \"L\",\n openWith: \"[\",\n closeWith: '](<<<[![Url:!:http://]!]>>> \"[![Title]!]\")',\n placeHolder: $tr.t(\"markdown-editor.link-placeholder\"),\n beforeInsert: function(markItUp) {\n return prepareUrlFormatting(markItUp);\n },\n afterInsert: function(markItUp) {\n return urlFormatting(markItUp);\n }\n }, {\n separator: \"---------------\"\n }, {\n name: $tr.t(\"markdown-editor.quotes\"),\n openWith: \"> \"\n }, {\n name: $tr.t(\"markdown-editor.code-block\"),\n openWith: \"```\\n\",\n closeWith: \"\\n```\"\n }, {\n separator: \"---------------\"\n }, {\n name: $tr.t(\"markdown-editor.preview\"),\n call: preview,\n className: \"preview-icon\"\n }\n ],\n afterInsert: function(event) {\n var target;\n target = angular.element(event.textarea);\n return $model.$setViewValue(target.val());\n }\n };\n prepareUrlFormatting = function(markItUp) {\n var indices, regex, result;\n console.log(markItUp);\n regex = /(<<<|>>>)/gi;\n result = 0;\n indices = [];\n while ((result = regex.exec(markItUp.textarea.value))) {\n indices.push(result.index);\n }\n markItUp.donotparse = indices;\n return console.log(indices);\n };\n urlFormatting = function(markItUp) {\n var endIndex, ref, ref1, regex, result, startIndex, url, value;\n console.log(markItUp.donotparse);\n regex = /<<>>/gi;\n endIndex = 0;\n while (true) {\n result = regex.exec(markItUp.textarea.value);\n if (!result) {\n break;\n }\n if (ref1 = result.index, indexOf.call(markItUp.donotparse, ref1) < 0) {\n endIndex = result.index;\n break;\n }\n }\n value = markItUp.textarea.value;\n url = value.substring(startIndex, endIndex).replace('<<<', '').replace('>>>', '');\n url = url.replace('(', '%28').replace(')', '%29');\n url = url.replace('[', '%5B').replace(']', '%5D');\n value = value.substring(0, startIndex) + url + value.substring(endIndex + 3, value.length);\n markItUp.textarea.value = value;\n return markItUp.donotparse = void 0;\n };\n markdownTitle = function(markItUp, char) {\n var heading, i, j, n, ref;\n heading = \"\";\n n = $.trim(markItUp.selection || markItUp.placeHolder).length;\n for (i = j = 0, ref = n - 1; 0 <= ref ? j <= ref : j >= ref; i = 0 <= ref ? ++j : --j) {\n heading += char;\n }\n return \"\\n\" + heading + \"\\n\";\n };\n element.markItUp(markdownSettings);\n element.on(\"keypress\", function(event) {\n return $scope.$apply();\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgMarkitup\", [\"$rootScope\", \"$tgResources\", \"$tgI18n\", \"$selectedText\", \"$tgTemplate\", tgMarkitupDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: pluggins/main.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaPlugins\", [\"ngRoute\"]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/kanban/sortable.coffee\n */\n\n(function() {\n var KanbanSortableDirective, bindOnce, groupBy, mixOf, module, scopeDefer, taiga, timeout, toggleText;\n\n taiga = this.taiga;\n\n mixOf = this.taiga.mixOf;\n\n toggleText = this.taiga.toggleText;\n\n scopeDefer = this.taiga.scopeDefer;\n\n bindOnce = this.taiga.bindOnce;\n\n groupBy = this.taiga.groupBy;\n\n timeout = this.taiga.timeout;\n\n module = angular.module(\"taigaKanban\");\n\n KanbanSortableDirective = function($repo, $rs, $rootscope) {\n var link;\n link = function($scope, $el, $attrs) {\n bindOnce($scope, \"project\", function(project) {\n var deleteElement, itemEl, newParentScope, oldParentScope, tdom;\n if (!(project.my_permissions.indexOf(\"modify_us\") > -1)) {\n return;\n }\n oldParentScope = null;\n newParentScope = null;\n itemEl = null;\n tdom = $el;\n deleteElement = function(itemEl) {\n itemEl.scope().$destroy();\n itemEl.off();\n return itemEl.remove();\n };\n tdom.sortable({\n handle: \".kanban-task-inner\",\n dropOnEmpty: true,\n connectWith: \".kanban-uses-box\",\n revert: 400\n });\n tdom.on(\"sortstop\", function(event, ui) {\n var itemIndex, itemUs, newStatusId, oldStatusId, parentEl;\n parentEl = ui.item.parent();\n itemEl = ui.item;\n itemUs = itemEl.scope().us;\n itemIndex = itemEl.index();\n newParentScope = parentEl.scope();\n newStatusId = newParentScope.s.id;\n oldStatusId = oldParentScope.s.id;\n if (newStatusId !== oldStatusId) {\n deleteElement(itemEl);\n }\n $scope.$apply(function() {\n return $rootscope.$broadcast(\"kanban:us:move\", itemUs, itemUs.status, newStatusId, itemIndex);\n });\n return ui.item.find('a').removeClass('noclick');\n });\n return tdom.on(\"sortstart\", function(event, ui) {\n oldParentScope = ui.item.parent().scope();\n return ui.item.find('a').addClass('noclick');\n });\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgKanbanSortable\", [\"$tgRepo\", \"$tgResources\", \"$rootScope\", KanbanSortableDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/sprints.coffee\n */\n\n(function() {\n var generateHash, module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n generateHash = taiga.generateHash;\n\n resourceProvider = function($repo, $model, $storage) {\n var service;\n service = {};\n service.get = function(projectId, sprintId) {\n return $repo.queryOne(\"milestones\", sprintId).then(function(sprint) {\n var uses;\n uses = sprint.user_stories;\n uses = _.map(uses, function(u) {\n return $model.make_model(\"userstories\", u);\n });\n sprint._attrs.user_stories = uses;\n return sprint;\n });\n };\n service.stats = function(projectId, sprintId) {\n return $repo.queryOneRaw(\"milestones\", sprintId + \"/stats\");\n };\n service.list = function(projectId, filters) {\n var params;\n params = {\n \"project\": projectId\n };\n params = _.extend({}, params, filters || {});\n return $repo.queryMany(\"milestones\", params).then((function(_this) {\n return function(milestones) {\n var i, len, m, uses;\n for (i = 0, len = milestones.length; i < len; i++) {\n m = milestones[i];\n uses = m.user_stories;\n uses = _.map(uses, function(u) {\n return $model.make_model(\"userstories\", u);\n });\n m._attrs.user_stories = uses;\n }\n return milestones;\n };\n })(this));\n };\n return function(instance) {\n return instance.sprints = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgSprintsResourcesProvider\", [\"$tgRepo\", \"$tgModel\", \"$tgStorage\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/taskboard/charts.coffee\n */\n\n(function() {\n var SprintGraphDirective, bindOnce, groupBy, mixOf, module, scopeDefer, taiga, timeout, toggleText;\n\n taiga = this.taiga;\n\n mixOf = this.taiga.mixOf;\n\n toggleText = this.taiga.toggleText;\n\n scopeDefer = this.taiga.scopeDefer;\n\n bindOnce = this.taiga.bindOnce;\n\n groupBy = this.taiga.groupBy;\n\n timeout = this.taiga.timeout;\n\n module = angular.module(\"taigaTaskboard\");\n\n SprintGraphDirective = function() {\n var link, redrawChart;\n redrawChart = function(element, dataToDraw) {\n var data, days, options, width;\n width = element.width();\n element.height(240);\n days = _.map(dataToDraw, function(x) {\n return moment(x.day);\n });\n data = [];\n data.unshift({\n data: _.zip(days, _.map(dataToDraw, function(d) {\n return d.optimal_points;\n })),\n lines: {\n fillColor: \"rgba(120,120,120,0.2)\"\n }\n });\n data.unshift({\n data: _.zip(days, _.map(dataToDraw, function(d) {\n return d.open_points;\n })),\n lines: {\n fillColor: \"rgba(102,153,51,0.3)\"\n }\n });\n options = {\n grid: {\n borderWidth: {\n top: 0,\n right: 1,\n left: 0,\n bottom: 0\n },\n borderColor: '#ccc',\n hoverable: true\n },\n xaxis: {\n tickSize: [1, \"day\"],\n min: days[0],\n max: _.last(days),\n mode: \"time\",\n daysNames: days,\n axisLabel: 'Day',\n axisLabelUseCanvas: true,\n axisLabelFontSizePixels: 12,\n axisLabelFontFamily: 'Verdana, Arial, Helvetica, Tahoma, sans-serif',\n axisLabelPadding: 5\n },\n yaxis: {\n min: 0\n },\n series: {\n shadowSize: 0,\n lines: {\n show: true,\n fill: true\n },\n points: {\n show: true,\n fill: true,\n radius: 4,\n lineWidth: 2\n }\n },\n colors: [\"rgba(102,153,51,1)\", \"rgba(120,120,120,0.2)\"],\n tooltip: true,\n tooltipOpts: {\n content: function(label, xval, yval, flotItem) {\n var formattedDate, roundedValue;\n formattedDate = moment(xval).format(\"DD MMM\");\n roundedValue = Math.round(yval);\n if (flotItem.seriesIndex === 1) {\n return \"Optimal pending points for day \" + formattedDate + \" should be \" + roundedValue;\n } else {\n return \"Real pending points for day \" + formattedDate + \" is \" + roundedValue;\n }\n }\n }\n };\n element.empty();\n return element.plot(data, options).data(\"plot\");\n };\n link = function($scope, $el, $attrs) {\n var element;\n element = angular.element($el);\n $scope.$on(\"resize\", function() {\n if ($scope.stats) {\n return redrawChart(element, $scope.stats.days);\n }\n });\n $scope.$on(\"taskboard:graph:toggle-visibility\", function() {\n $el.parent().toggleClass('open');\n return timeout(100, function() {\n if ($scope.stats) {\n return redrawChart(element, $scope.stats.days);\n }\n });\n });\n $scope.$watch('stats', function(value) {\n if ($scope.stats == null) {\n return;\n }\n return redrawChart(element, $scope.stats.days);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgSprintGraph\", SprintGraphDirective);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/tasks/detail.coffee\n */\n\n(function() {\n var TaskDetailController, TaskIsIocaineButtonDirective, TaskStatusButtonDirective, TaskStatusDisplayDirective, groupBy, mixOf, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n mixOf = this.taiga.mixOf;\n\n groupBy = this.taiga.groupBy;\n\n module = angular.module(\"taigaTasks\");\n\n TaskDetailController = (function(superClass) {\n extend(TaskDetailController, superClass);\n\n TaskDetailController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgResources\", \"$routeParams\", \"$q\", \"$tgLocation\", \"$log\", \"$appTitle\", \"$tgNavUrls\", \"$tgAnalytics\", \"tgLoader\"];\n\n function TaskDetailController(scope, rootscope, repo, confirm, rs, params, q, location, log, appTitle, navUrls, analytics, tgLoader) {\n var promise;\n this.scope = scope;\n this.rootscope = rootscope;\n this.repo = repo;\n this.confirm = confirm;\n this.rs = rs;\n this.params = params;\n this.q = q;\n this.location = location;\n this.log = log;\n this.appTitle = appTitle;\n this.navUrls = navUrls;\n this.analytics = analytics;\n this.scope.taskRef = this.params.taskref;\n this.scope.sectionName = \"Task Details\";\n this.initializeEventHandlers();\n promise = this.loadInitialData();\n promise.then((function(_this) {\n return function() {\n _this.appTitle.set(_this.scope.task.subject + \" - \" + _this.scope.project.name);\n return _this.initializeOnDeleteGoToUrl();\n };\n })(this));\n promise.then(null, this.onInitialDataError.bind(this));\n promise[\"finally\"](tgLoader.pageLoaded);\n }\n\n TaskDetailController.prototype.initializeEventHandlers = function() {\n this.scope.$on(\"attachment:create\", (function(_this) {\n return function() {\n _this.analytics.trackEvent(\"attachment\", \"create\", \"create attachment on task\", 1);\n return _this.rootscope.$broadcast(\"history:reload\");\n };\n })(this));\n this.scope.$on(\"attachment:edit\", (function(_this) {\n return function() {\n return _this.rootscope.$broadcast(\"history:reload\");\n };\n })(this));\n this.scope.$on(\"attachment:delete\", (function(_this) {\n return function() {\n return _this.rootscope.$broadcast(\"history:reload\");\n };\n })(this));\n return this.scope.$on(\"custom-attributes-values:edit\", (function(_this) {\n return function() {\n return _this.rootscope.$broadcast(\"history:reload\");\n };\n })(this));\n };\n\n TaskDetailController.prototype.initializeOnDeleteGoToUrl = function() {\n var ctx;\n ctx = {\n project: this.scope.project.slug\n };\n this.scope.onDeleteGoToUrl = this.navUrls.resolve(\"project\", ctx);\n if (this.scope.project.is_backlog_activated) {\n if (this.scope.task.milestone) {\n ctx.sprint = this.scope.sprint.slug;\n return this.scope.onDeleteGoToUrl = this.navUrls.resolve(\"project-taskboard\", ctx);\n } else if (this.scope.task.us) {\n ctx.ref = this.scope.us.ref;\n return this.scope.onDeleteGoToUrl = this.navUrls.resolve(\"project-userstories-detail\", ctx);\n }\n } else if (this.scope.project.is_kanban_activated) {\n if (this.scope.us) {\n ctx.ref = this.scope.us.ref;\n return this.scope.onDeleteGoToUrl = this.navUrls.resolve(\"project-userstories-detail\", ctx);\n }\n }\n };\n\n TaskDetailController.prototype.loadProject = function() {\n return this.rs.projects.getBySlug(this.params.pslug).then((function(_this) {\n return function(project) {\n _this.scope.projectId = project.id;\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n _this.scope.statusList = project.task_statuses;\n _this.scope.statusById = groupBy(project.task_statuses, function(x) {\n return x.id;\n });\n _this.scope.membersById = groupBy(project.memberships, function(x) {\n return x.user;\n });\n return project;\n };\n })(this));\n };\n\n TaskDetailController.prototype.loadTask = function() {\n return this.rs.tasks.getByRef(this.scope.projectId, this.params.taskref).then((function(_this) {\n return function(task) {\n var ctx;\n _this.scope.task = task;\n _this.scope.taskId = task.id;\n _this.scope.commentModel = task;\n if (_this.scope.task.neighbors.previous.ref != null) {\n ctx = {\n project: _this.scope.project.slug,\n ref: _this.scope.task.neighbors.previous.ref\n };\n _this.scope.previousUrl = _this.navUrls.resolve(\"project-tasks-detail\", ctx);\n }\n if (_this.scope.task.neighbors.next.ref != null) {\n ctx = {\n project: _this.scope.project.slug,\n ref: _this.scope.task.neighbors.next.ref\n };\n _this.scope.nextUrl = _this.navUrls.resolve(\"project-tasks-detail\", ctx);\n }\n return task;\n };\n })(this));\n };\n\n TaskDetailController.prototype.loadSprint = function() {\n if (this.scope.task.milestone) {\n return this.rs.sprints.get(this.scope.task.project, this.scope.task.milestone).then((function(_this) {\n return function(sprint) {\n _this.scope.sprint = sprint;\n return sprint;\n };\n })(this));\n }\n };\n\n TaskDetailController.prototype.loadUserStory = function() {\n if (this.scope.task.user_story) {\n return this.rs.userstories.get(this.scope.task.project, this.scope.task.user_story).then((function(_this) {\n return function(us) {\n _this.scope.us = us;\n return us;\n };\n })(this));\n }\n };\n\n TaskDetailController.prototype.loadInitialData = function() {\n var promise;\n promise = this.loadProject();\n return promise.then((function(_this) {\n return function(project) {\n _this.fillUsersAndRoles(project.users, project.roles);\n return _this.loadTask().then(function() {\n return _this.q.all([_this.loadSprint(), _this.loadUserStory()]);\n });\n };\n })(this));\n };\n\n return TaskDetailController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin));\n\n module.controller(\"TaskDetailController\", TaskDetailController);\n\n TaskStatusDisplayDirective = function($template) {\n var link, template;\n template = $template.get(\"common/components/status-display.html\", true);\n link = function($scope, $el, $attrs) {\n var render;\n render = function(task) {\n var html, status;\n status = $scope.statusById[task.status];\n html = template({\n is_closed: status.is_closed,\n status: status\n });\n return $el.html(html);\n };\n $scope.$watch($attrs.ngModel, function(task) {\n if (task != null) {\n return render(task);\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgTaskStatusDisplay\", [\"$tgTemplate\", TaskStatusDisplayDirective]);\n\n TaskStatusButtonDirective = function($rootScope, $repo, $confirm, $loading, $qqueue) {\n var link, template;\n template = _.template(\"\");\n link = function($scope, $el, $attrs, $model) {\n var isEditable, render, save;\n isEditable = function() {\n return $scope.project.my_permissions.indexOf(\"modify_task\") !== -1;\n };\n render = (function(_this) {\n return function(task) {\n var html, status;\n status = $scope.statusById[task.status];\n html = template({\n status: status,\n statuses: $scope.statusList,\n editable: isEditable()\n });\n return $el.html(html);\n };\n })(this);\n save = $qqueue.bindAdd((function(_this) {\n return function(status) {\n var onError, onSuccess, task;\n task = $model.$modelValue.clone();\n task.status = status;\n $model.$setViewValue(task);\n onSuccess = function() {\n $confirm.notify(\"success\");\n $rootScope.$broadcast(\"history:reload\");\n return $loading.finish($el.find(\".level-name\"));\n };\n onError = function() {\n $confirm.notify(\"error\");\n task.revert();\n $model.$setViewValue(task);\n return $loading.finish($el.find(\".level-name\"));\n };\n $loading.start($el.find(\".level-name\"));\n return $repo.save($model.$modelValue).then(onSuccess, onError);\n };\n })(this));\n $el.on(\"click\", \".status-data\", function(event) {\n event.preventDefault();\n event.stopPropagation();\n if (!isEditable()) {\n return;\n }\n return $el.find(\".pop-status\").popover().open();\n });\n $el.on(\"click\", \".status\", function(event) {\n var target;\n event.preventDefault();\n event.stopPropagation();\n if (!isEditable()) {\n return;\n }\n target = angular.element(event.currentTarget);\n $.fn.popover().closeAll();\n return save(target.data(\"status-id\"));\n });\n $scope.$watch($attrs.ngModel, function(task) {\n if (task) {\n return render(task);\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgTaskStatusButton\", [\"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", \"$tgQqueue\", TaskStatusButtonDirective]);\n\n TaskIsIocaineButtonDirective = function($rootscope, $tgrepo, $confirm, $loading, $qqueue) {\n var link, template;\n template = _.template(\"
\\n \\n \\n
\");\n link = function($scope, $el, $attrs, $model) {\n var isEditable, render, save;\n isEditable = function() {\n return $scope.project.my_permissions.indexOf(\"modify_task\") !== -1;\n };\n render = function(task) {\n var ctx, html;\n if (!isEditable() && !task.is_iocaine) {\n $el.html(\"\");\n return;\n }\n ctx = {\n isIocaine: task.is_iocaine,\n isEditable: isEditable()\n };\n html = template(ctx);\n return $el.html(html);\n };\n save = $qqueue.bindAdd((function(_this) {\n return function(is_iocaine) {\n var promise, task;\n task = $model.$modelValue.clone();\n task.is_iocaine = is_iocaine;\n $model.$setViewValue(task);\n $loading.start($el.find('label'));\n promise = $tgrepo.save(task);\n promise.then(function() {\n $confirm.notify(\"success\");\n return $rootscope.$broadcast(\"history:reload\");\n });\n promise.then(null, function() {\n task.revert();\n $model.$setViewValue(task);\n return $confirm.notify(\"error\");\n });\n return promise[\"finally\"](function() {\n return $loading.finish($el.find('label'));\n });\n };\n })(this));\n $el.on(\"click\", \".is-iocaine\", function(event) {\n var is_iocaine;\n if (!isEditable()) {\n return;\n }\n is_iocaine = !$model.$modelValue.is_iocaine;\n return save(is_iocaine);\n });\n $scope.$watch($attrs.ngModel, function(task) {\n if (task) {\n return render(task);\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgTaskIsIocaineButton\", [\"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", \"$tgQqueue\", TaskIsIocaineButtonDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/issues/list.coffee\n */\n\n(function() {\n var IssueAssignedToInlineEditionDirective, IssueStatusInlineEditionDirective, IssuesController, IssuesDirective, IssuesFiltersDirective, bindOnce, debounceLeading, groupBy, joinStr, mixOf, module, startswith, taiga, toString, trim,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n mixOf = this.taiga.mixOf;\n\n trim = this.taiga.trim;\n\n toString = this.taiga.toString;\n\n joinStr = this.taiga.joinStr;\n\n groupBy = this.taiga.groupBy;\n\n bindOnce = this.taiga.bindOnce;\n\n debounceLeading = this.taiga.debounceLeading;\n\n startswith = this.taiga.startswith;\n\n module = angular.module(\"taigaIssues\");\n\n IssuesController = (function(superClass) {\n extend(IssuesController, superClass);\n\n IssuesController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgResources\", \"$tgUrls\", \"$routeParams\", \"$q\", \"$tgLocation\", \"$appTitle\", \"$tgNavUrls\", \"$tgEvents\", \"$tgAnalytics\", \"tgLoader\"];\n\n function IssuesController(scope, rootscope, repo, confirm, rs, urls, params, q, location, appTitle, navUrls, events, analytics, tgLoader) {\n var filters, promise;\n this.scope = scope;\n this.rootscope = rootscope;\n this.repo = repo;\n this.confirm = confirm;\n this.rs = rs;\n this.urls = urls;\n this.params = params;\n this.q = q;\n this.location = location;\n this.appTitle = appTitle;\n this.navUrls = navUrls;\n this.events = events;\n this.analytics = analytics;\n this.loadIssues = bind(this.loadIssues, this);\n this.scope.sectionName = \"Issues\";\n this.scope.filters = {};\n if (_.isEmpty(this.location.search())) {\n filters = this.rs.issues.getFilters(this.params.pslug);\n filters.page = 1;\n this.location.search(filters);\n this.location.replace();\n return;\n }\n promise = this.loadInitialData();\n promise.then((function(_this) {\n return function() {\n return _this.appTitle.set(\"Issues - \" + _this.scope.project.name);\n };\n })(this));\n promise.then(null, this.onInitialDataError.bind(this));\n promise[\"finally\"](tgLoader.pageLoaded);\n this.scope.$on(\"issueform:new:success\", (function(_this) {\n return function() {\n _this.analytics.trackEvent(\"issue\", \"create\", \"create issue on issues list\", 1);\n _this.loadIssues();\n return _this.loadFilters();\n };\n })(this));\n }\n\n IssuesController.prototype.initializeSubscription = function() {\n var routingKey;\n routingKey = \"changes.project.\" + this.scope.projectId + \".issues\";\n return this.events.subscribe(this.scope, routingKey, (function(_this) {\n return function(message) {\n return _this.loadIssues();\n };\n })(this));\n };\n\n IssuesController.prototype.storeFilters = function() {\n return this.rs.issues.storeFilters(this.params.pslug, this.location.search());\n };\n\n IssuesController.prototype.loadProject = function() {\n return this.rs.projects.getBySlug(this.params.pslug).then((function(_this) {\n return function(project) {\n if (!project.is_issues_activated) {\n _this.location.path(_this.navUrls.resolve(\"permission-denied\"));\n }\n _this.scope.projectId = project.id;\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n _this.scope.issueStatusById = groupBy(project.issue_statuses, function(x) {\n return x.id;\n });\n _this.scope.issueStatusList = _.sortBy(project.issue_statuses, \"order\");\n _this.scope.severityById = groupBy(project.severities, function(x) {\n return x.id;\n });\n _this.scope.severityList = _.sortBy(project.severities, \"order\");\n _this.scope.priorityById = groupBy(project.priorities, function(x) {\n return x.id;\n });\n _this.scope.priorityList = _.sortBy(project.priorities, \"order\");\n _this.scope.issueTypes = _.sortBy(project.issue_types, \"order\");\n _this.scope.issueTypeById = groupBy(project.issue_types, function(x) {\n return x.id;\n });\n _this.scope.membersById = groupBy(project.memberships, function(x) {\n return x.user;\n });\n return project;\n };\n })(this));\n };\n\n IssuesController.prototype.getUrlFilters = function() {\n var filters;\n filters = _.pick(this.location.search(), \"page\", \"tags\", \"statuses\", \"types\", \"q\", \"severities\", \"priorities\", \"assignedTo\", \"createdBy\", \"orderBy\");\n if (!filters.page) {\n filters.page = 1;\n }\n return filters;\n };\n\n IssuesController.prototype.getUrlFilter = function(name) {\n var filters;\n filters = _.pick(this.location.search(), name);\n return filters[name];\n };\n\n IssuesController.prototype.loadMyFilters = function() {\n return this.rs.issues.getMyFilters(this.scope.projectId).then((function(_this) {\n return function(filters) {\n return _.map(filters, function(value, key) {\n return {\n id: key,\n name: key,\n type: \"myFilters\",\n selected: false\n };\n });\n };\n })(this));\n };\n\n IssuesController.prototype.removeNotExistingFiltersFromUrl = function() {\n var currentSearch, existingValues, filterName, filterValue, splittedValues, urlfilters;\n currentSearch = this.location.search();\n urlfilters = this.getUrlFilters();\n for (filterName in urlfilters) {\n filterValue = urlfilters[filterName];\n if (filterName === \"page\" || filterName === \"orderBy\" || filterName === \"q\") {\n continue;\n }\n if (filterName === \"tags\") {\n splittedValues = _.map((\"\" + filterValue).split(\",\"));\n } else {\n splittedValues = _.map((\"\" + filterValue).split(\",\"), function(x) {\n if (x === \"null\") {\n return null;\n } else {\n return parseInt(x);\n }\n });\n }\n existingValues = _.intersection(splittedValues, _.map(this.scope.filters[filterName], \"id\"));\n if (splittedValues.length !== existingValues.length) {\n this.location.search(filterName, existingValues.join());\n }\n }\n if (currentSearch !== this.location.search()) {\n return this.location.replace();\n }\n };\n\n IssuesController.prototype.markSelectedFilters = function(filters, urlfilters) {\n var isSelected, j, key, len, name, obj, ref, ref1, results, searchdata, val, value;\n searchdata = {};\n ref = _.omit(urlfilters, \"page\", \"orderBy\");\n for (name in ref) {\n value = ref[name];\n if (searchdata[name] == null) {\n searchdata[name] = {};\n }\n ref1 = (\"\" + value).split(\",\");\n for (j = 0, len = ref1.length; j < len; j++) {\n val = ref1[j];\n searchdata[name][val] = true;\n }\n }\n isSelected = function(type, id) {\n if ((searchdata[type] != null) && searchdata[type][id]) {\n return true;\n }\n return false;\n };\n results = [];\n for (key in filters) {\n value = filters[key];\n results.push((function() {\n var k, len1, results1;\n results1 = [];\n for (k = 0, len1 = value.length; k < len1; k++) {\n obj = value[k];\n results1.push(obj.selected = isSelected(obj.type, obj.id) ? true : void 0);\n }\n return results1;\n })());\n }\n return results;\n };\n\n IssuesController.prototype.loadFilters = function() {\n var promise, urlfilters;\n urlfilters = this.getUrlFilters();\n if (urlfilters.q) {\n this.scope.filtersQ = urlfilters.q;\n }\n promise = this.loadMyFilters().then((function(_this) {\n return function(myFilters) {\n _this.scope.filters.myFilters = myFilters;\n return myFilters;\n };\n })(this));\n promise = promise.then((function(_this) {\n return function() {\n return _this.rs.issues.filtersData(_this.scope.projectId);\n };\n })(this));\n return promise.then((function(_this) {\n return function(data) {\n var choicesFiltersFormat, tagsFilterFormat, usersFiltersFormat;\n usersFiltersFormat = function(users, type, unknownOption) {\n var reformatedUsers, unknownItem;\n reformatedUsers = _.map(users, function(t) {\n return {\n id: t[0],\n count: t[1],\n type: type,\n name: t[0] ? _this.scope.usersById[t[0]].full_name_display : unknownOption\n };\n });\n unknownItem = _.remove(reformatedUsers, function(u) {\n return !u.id;\n });\n reformatedUsers = _.sortBy(reformatedUsers, function(u) {\n return u.name.toUpperCase();\n });\n if (unknownItem.length > 0) {\n reformatedUsers.unshift(unknownItem[0]);\n }\n return reformatedUsers;\n };\n choicesFiltersFormat = function(choices, type, byIdObject) {\n return _.map(choices, function(t) {\n return {\n id: t[0],\n name: byIdObject[t[0]].name,\n color: byIdObject[t[0]].color,\n count: t[1],\n type: type\n };\n });\n };\n tagsFilterFormat = function(tags) {\n return _.map(tags, function(t) {\n return {\n id: t[0],\n name: t[0],\n color: _this.scope.project.tags_colors[t[0]],\n count: t[1],\n type: \"tags\"\n };\n });\n };\n _this.scope.filters.statuses = choicesFiltersFormat(data.statuses, \"statuses\", _this.scope.issueStatusById);\n _this.scope.filters.severities = choicesFiltersFormat(data.severities, \"severities\", _this.scope.severityById);\n _this.scope.filters.priorities = choicesFiltersFormat(data.priorities, \"priorities\", _this.scope.priorityById);\n _this.scope.filters.assignedTo = usersFiltersFormat(data.assigned_to, \"assignedTo\", \"Unassigned\");\n _this.scope.filters.createdBy = usersFiltersFormat(data.created_by, \"createdBy\", \"Unknown\");\n _this.scope.filters.types = choicesFiltersFormat(data.types, \"types\", _this.scope.issueTypeById);\n _this.scope.filters.tags = tagsFilterFormat(data.tags);\n _this.removeNotExistingFiltersFromUrl();\n _this.markSelectedFilters(_this.scope.filters, urlfilters);\n return _this.rootscope.$broadcast(\"filters:loaded\", _this.scope.filters);\n };\n })(this));\n };\n\n IssuesController.prototype.loadIssuesRequests = 0;\n\n IssuesController.prototype.loadIssues = function() {\n var name, promise, ref, values;\n this.scope.urlFilters = this.getUrlFilters();\n this.scope.httpParams = {};\n ref = this.scope.urlFilters;\n for (name in ref) {\n values = ref[name];\n if (name === \"severities\") {\n name = \"severity\";\n } else if (name === \"orderBy\") {\n name = \"order_by\";\n } else if (name === \"priorities\") {\n name = \"priority\";\n } else if (name === \"assignedTo\") {\n name = \"assigned_to\";\n } else if (name === \"createdBy\") {\n name = \"owner\";\n } else if (name === \"statuses\") {\n name = \"status\";\n } else if (name === \"types\") {\n name = \"type\";\n }\n this.scope.httpParams[name] = values;\n }\n promise = this.rs.issues.list(this.scope.projectId, this.scope.httpParams);\n this.loadIssuesRequests += 1;\n promise.index = this.loadIssuesRequests;\n return promise.then((function(_this) {\n return function(data) {\n if (promise.index === _this.loadIssuesRequests) {\n _this.scope.issues = data.models;\n _this.scope.page = data.current;\n _this.scope.count = data.count;\n _this.scope.paginatedBy = data.paginatedBy;\n }\n return data;\n };\n })(this));\n };\n\n IssuesController.prototype.loadInitialData = function() {\n var promise;\n promise = this.loadProject();\n return promise.then((function(_this) {\n return function(project) {\n _this.fillUsersAndRoles(project.users, project.roles);\n _this.initializeSubscription();\n return _this.q.all([_this.loadFilters(), _this.loadIssues()]);\n };\n })(this));\n };\n\n IssuesController.prototype.saveCurrentFiltersTo = function(newFilter) {\n var deferred;\n deferred = this.q.defer();\n this.rs.issues.getMyFilters(this.scope.projectId).then((function(_this) {\n return function(filters) {\n filters[newFilter] = _this.location.search();\n return _this.rs.issues.storeMyFilters(_this.scope.projectId, filters).then(function() {\n return deferred.resolve();\n });\n };\n })(this));\n return deferred.promise;\n };\n\n IssuesController.prototype.deleteMyFilter = function(filter) {\n var deferred;\n deferred = this.q.defer();\n this.rs.issues.getMyFilters(this.scope.projectId).then((function(_this) {\n return function(filters) {\n delete filters[filter];\n return _this.rs.issues.storeMyFilters(_this.scope.projectId, filters).then(function() {\n return deferred.resolve();\n });\n };\n })(this));\n return deferred.promise;\n };\n\n IssuesController.prototype.addNewIssue = function() {\n return this.rootscope.$broadcast(\"issueform:new\", this.scope.project);\n };\n\n IssuesController.prototype.addIssuesInBulk = function() {\n return this.rootscope.$broadcast(\"issueform:bulk\", this.scope.projectId);\n };\n\n return IssuesController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin, taiga.FiltersMixin));\n\n module.controller(\"IssuesController\", IssuesController);\n\n IssuesDirective = function($log, $location, $template) {\n var link, linkOrdering, linkPagination, template;\n template = $template.get(\"issue/issue-paginator.html\", true);\n linkPagination = function($scope, $el, $attrs, $ctrl) {\n var $pagEl, afterCurrent, atBegin, atEnd, beforeCurrent, getNumPages, renderPagination;\n afterCurrent = 2;\n beforeCurrent = 4;\n atBegin = 2;\n atEnd = 2;\n $pagEl = $el.find(\".issues-paginator\");\n getNumPages = function() {\n var numPages;\n numPages = $scope.count / $scope.paginatedBy;\n if (parseInt(numPages, 10) < numPages) {\n numPages = parseInt(numPages, 10) + 1;\n } else {\n numPages = parseInt(numPages, 10);\n }\n return numPages;\n };\n renderPagination = function() {\n var cpage, i, j, numPages, options, pages, ref;\n numPages = getNumPages();\n if (numPages <= 1) {\n $pagEl.hide();\n return;\n }\n $pagEl.show();\n pages = [];\n options = {};\n options.pages = pages;\n options.showPrevious = $scope.page > 1;\n options.showNext = !($scope.page === numPages);\n cpage = $scope.page;\n for (i = j = 1, ref = numPages; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) {\n if (i === (cpage + afterCurrent) && numPages > (cpage + afterCurrent + atEnd)) {\n pages.push({\n classes: \"dots\",\n type: \"dots\"\n });\n } else if (i === (cpage - beforeCurrent) && cpage > (atBegin + beforeCurrent)) {\n pages.push({\n classes: \"dots\",\n type: \"dots\"\n });\n } else if (i > (cpage + afterCurrent) && i <= (numPages - atEnd)) {\n\n } else if (i < (cpage - beforeCurrent) && i > atBegin) {\n\n } else if (i === cpage) {\n pages.push({\n classes: \"active\",\n num: i,\n type: \"page-active\"\n });\n } else {\n pages.push({\n classes: \"page\",\n num: i,\n type: \"page\"\n });\n }\n }\n return $pagEl.html(template(options));\n };\n $scope.$watch(\"issues\", function(value) {\n if (!value) {\n return;\n }\n return renderPagination();\n });\n $el.on(\"click\", \".issues-paginator a.next\", function(event) {\n event.preventDefault();\n return $scope.$apply(function() {\n $ctrl.selectFilter(\"page\", $scope.page + 1);\n return $ctrl.loadIssues();\n });\n });\n $el.on(\"click\", \".issues-paginator a.previous\", function(event) {\n event.preventDefault();\n return $scope.$apply(function() {\n $ctrl.selectFilter(\"page\", $scope.page - 1);\n return $ctrl.loadIssues();\n });\n });\n return $el.on(\"click\", \".issues-paginator li.page > a\", function(event) {\n var pagenum, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n pagenum = target.data(\"pagenum\");\n return $scope.$apply(function() {\n $ctrl.selectFilter(\"page\", pagenum);\n return $ctrl.loadIssues();\n });\n });\n };\n linkOrdering = function($scope, $el, $attrs, $ctrl) {\n var colHeadElement, currentOrder, icon;\n currentOrder = $ctrl.getUrlFilter(\"orderBy\") || \"created_date\";\n if (currentOrder) {\n icon = startswith(currentOrder, \"-\") ? \"icon-caret-up\" : \"icon-caret-down\";\n colHeadElement = $el.find(\".row.title > div[data-fieldname='\" + (trim(currentOrder, \"-\")) + \"']\");\n colHeadElement.html((colHeadElement.html()) + \"\");\n }\n return $el.on(\"click\", \".row.title > div\", function(event) {\n var finalOrder, newOrder, target;\n target = angular.element(event.currentTarget);\n currentOrder = $ctrl.getUrlFilter(\"orderBy\");\n newOrder = target.data(\"fieldname\");\n finalOrder = currentOrder === newOrder ? \"-\" + newOrder : newOrder;\n return $scope.$apply(function() {\n $ctrl.replaceFilter(\"orderBy\", finalOrder);\n $ctrl.storeFilters();\n return $ctrl.loadIssues().then(function() {\n $el.find(\".row.title > div > span.icon\").remove();\n icon = startswith(finalOrder, \"-\") ? \"icon-caret-up\" : \"icon-caret-down\";\n return target.html((target.html()) + \"\");\n });\n });\n });\n };\n link = function($scope, $el, $attrs) {\n var $ctrl;\n $ctrl = $el.controller();\n linkOrdering($scope, $el, $attrs, $ctrl);\n linkPagination($scope, $el, $attrs, $ctrl);\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgIssues\", [\"$log\", \"$tgLocation\", \"$tgTemplate\", IssuesDirective]);\n\n IssuesFiltersDirective = function($log, $location, $rs, $confirm, $loading, $template) {\n var link, template, templateSelected;\n template = $template.get(\"issue/issues-filters.html\", true);\n templateSelected = $template.get(\"issue/issues-filters-selected.html\", true);\n link = function($scope, $el, $attrs) {\n var $ctrl, initializeSelectedFilters, renderFilters, renderSelectedFilters, selectQFilter, selectedFilters, showCategories, showFilters, toggleFilterSelection;\n $ctrl = $el.closest(\".wrapper\").controller();\n selectedFilters = [];\n showFilters = function(title, type) {\n $el.find(\".filters-cats\").hide();\n $el.find(\".filter-list\").removeClass(\"hidden\");\n $el.find(\"h2.breadcrumb\").removeClass(\"hidden\");\n $el.find(\"h2 a.subfilter span.title\").html(title);\n return $el.find(\"h2 a.subfilter span.title\").prop(\"data-type\", type);\n };\n showCategories = function() {\n $el.find(\".filters-cats\").show();\n $el.find(\".filter-list\").addClass(\"hidden\");\n return $el.find(\"h2.breadcrumb\").addClass(\"hidden\");\n };\n initializeSelectedFilters = function(filters) {\n var j, len, name, val, values;\n selectedFilters = [];\n for (name in filters) {\n values = filters[name];\n for (j = 0, len = values.length; j < len; j++) {\n val = values[j];\n if (val.selected) {\n selectedFilters.push(val);\n }\n }\n }\n return renderSelectedFilters(selectedFilters);\n };\n renderSelectedFilters = function(selectedFilters) {\n var html;\n _.filter(selectedFilters, (function(_this) {\n return function(f) {\n if (f.color) {\n return f.style = \"border-left: 3px solid \" + f.color;\n }\n };\n })(this));\n html = templateSelected({\n filters: selectedFilters\n });\n $el.find(\".filters-applied\").html(html);\n if (selectedFilters.length > 0) {\n return $el.find(\".save-filters\").show();\n } else {\n return $el.find(\".save-filters\").hide();\n }\n };\n renderFilters = function(filters) {\n var html;\n _.filter(filters, (function(_this) {\n return function(f) {\n if (f.color) {\n return f.style = \"border-left: 3px solid \" + f.color;\n }\n };\n })(this));\n html = template({\n filters: filters\n });\n return $el.find(\".filter-list\").html(html);\n };\n toggleFilterSelection = function(type, id) {\n var currentFiltersType, filter, filterId, filters;\n if (type === \"myFilters\") {\n $rs.issues.getMyFilters($scope.projectId).then(function(data) {\n var filters, myFilters;\n myFilters = data;\n filters = myFilters[id];\n filters.page = 1;\n $ctrl.replaceAllFilters(filters);\n $ctrl.storeFilters();\n $ctrl.loadIssues();\n $ctrl.markSelectedFilters($scope.filters, filters);\n return initializeSelectedFilters($scope.filters);\n });\n return null;\n }\n filters = $scope.filters[type];\n filterId = type === 'tags' ? taiga.toString(id) : id;\n filter = _.find(filters, {\n id: filterId\n });\n filter.selected = !filter.selected;\n if (id === null) {\n id = \"null\";\n }\n if (filter.selected) {\n selectedFilters.push(filter);\n $scope.$apply(function() {\n $ctrl.selectFilter(type, id);\n $ctrl.selectFilter(\"page\", 1);\n $ctrl.storeFilters();\n return $ctrl.loadIssues();\n });\n } else {\n selectedFilters = _.reject(selectedFilters, filter);\n $scope.$apply(function() {\n $ctrl.unselectFilter(type, id);\n $ctrl.selectFilter(\"page\", 1);\n $ctrl.storeFilters();\n return $ctrl.loadIssues();\n });\n }\n renderSelectedFilters(selectedFilters);\n currentFiltersType = $el.find(\"h2 a.subfilter span.title\").prop('data-type');\n if (type === currentFiltersType) {\n return renderFilters(_.reject(filters, \"selected\"));\n }\n };\n $scope.$on(\"filters:loaded\", function(ctx, filters) {\n return initializeSelectedFilters(filters);\n });\n $scope.$on(\"filters:issueupdate\", function(ctx, filters) {\n var html;\n html = template({\n filters: filters.statuses\n });\n return $el.find(\".filter-list\").html(html);\n });\n selectQFilter = debounceLeading(100, function(value) {\n if (value === void 0) {\n return;\n }\n $ctrl.replaceFilter(\"page\", null);\n if (value.length === 0) {\n $ctrl.replaceFilter(\"q\", null);\n $ctrl.storeFilters();\n } else {\n $ctrl.replaceFilter(\"q\", value);\n $ctrl.storeFilters();\n }\n return $ctrl.loadIssues();\n });\n $scope.$watch(\"filtersQ\", selectQFilter);\n $el.on(\"click\", \".filters-cats > ul > li > a\", function(event) {\n var tags, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n tags = $scope.filters[target.data(\"type\")];\n renderFilters(_.reject(tags, \"selected\"));\n return showFilters(target.attr(\"title\"), target.data(\"type\"));\n });\n $el.on(\"click\", \".filters-inner > .filters-step-cat > .breadcrumb > .back\", function(event) {\n event.preventDefault();\n return showCategories($el);\n });\n $el.on(\"click\", \".filters-applied a\", function(event) {\n var id, target, type;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n id = target.data(\"id\") || null;\n type = target.data(\"type\");\n return toggleFilterSelection(type, id);\n });\n $el.on(\"click\", \".filter-list .single-filter\", function(event) {\n var id, target, type;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n target.toggleClass(\"active\");\n id = target.data(\"id\") || null;\n type = target.data(\"type\");\n if (type === \"myFilters\") {\n target.removeClass(\"active\");\n }\n return toggleFilterSelection(type, id);\n });\n $el.on(\"click\", \".filter-list .single-filter .icon-delete\", function(event) {\n var customFilterName, message, target, title;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n customFilterName = target.parent().data('id');\n title = \"Delete custom filter\";\n message = \"the custom filter '\" + customFilterName + \"'\";\n return $confirm.askOnDelete(title, message).then(function(finish) {\n var promise;\n promise = $ctrl.deleteMyFilter(customFilterName);\n promise.then(function() {\n promise = $ctrl.loadMyFilters();\n promise.then(function(filters) {\n finish();\n $scope.filters.myFilters = filters;\n return renderFilters($scope.filters.myFilters);\n });\n return promise.then(null, function() {\n return finish();\n });\n });\n return promise.then(null, function() {\n finish(false);\n return $confirm.notify(\"error\");\n });\n });\n });\n $el.on(\"click\", \".save-filters\", function(event) {\n event.preventDefault();\n renderFilters($scope.filters[\"myFilters\"]);\n showFilters(\"My filters\", \"myFilters\");\n $el.find('.save-filters').hide();\n $el.find('.my-filter-name').removeClass(\"hidden\");\n return $el.find('.my-filter-name').focus();\n });\n return $el.on(\"keyup\", \".my-filter-name\", function(event) {\n var newFilter, promise, target;\n event.preventDefault();\n if (event.keyCode === 13) {\n target = angular.element(event.currentTarget);\n newFilter = target.val();\n $loading.start($el.find(\".new\"));\n promise = $ctrl.saveCurrentFiltersTo(newFilter);\n promise.then(function() {\n var loadPromise;\n loadPromise = $ctrl.loadMyFilters();\n loadPromise.then(function(filters) {\n var currentfilterstype;\n $loading.finish($el.find(\".new\"));\n $scope.filters.myFilters = filters;\n currentfilterstype = $el.find(\"h2 a.subfilter span.title\").prop('data-type');\n if (currentfilterstype === \"myFilters\") {\n renderFilters($scope.filters.myFilters);\n }\n $el.find('.my-filter-name').addClass(\"hidden\");\n return $el.find('.save-filters').show();\n });\n return loadPromise.then(null, function() {\n $loading.finish($el.find(\".new\"));\n return $confirm.notify(\"error\", \"Error loading custom filters\");\n });\n });\n return promise.then(null, function() {\n $loading.finish($el.find(\".new\"));\n $el.find(\".my-filter-name\").val(newFilter).focus().select();\n return $confirm.notify(\"error\", \"Filter not saved\");\n });\n } else if (event.keyCode === 27) {\n $el.find('.my-filter-name').val('');\n $el.find('.my-filter-name').addClass(\"hidden\");\n return $el.find('.save-filters').show();\n }\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgIssuesFilters\", [\"$log\", \"$tgLocation\", \"$tgResources\", \"$tgConfirm\", \"$tgLoading\", \"$tgTemplate\", IssuesFiltersDirective]);\n\n IssueStatusInlineEditionDirective = function($repo, $template, $rootscope) {\n\n /*\n Print the status of an Issue and a popover to change it.\n - tg-issue-status-inline-edition: The issue\n \n Example:\n \n div.status(tg-issue-status-inline-edition=\"issue\")\n a.issue-status(href=\"\")\n \n NOTE: This directive need 'issueStatusById' and 'project'.\n */\n var link, selectionTemplate, updateIssueStatus;\n selectionTemplate = $template.get(\"issue/issue-status-inline-edition-selection.html\", true);\n updateIssueStatus = function($el, issue, issueStatusById) {\n var issueStatusDom, issueStatusDomParent, status;\n issueStatusDomParent = $el.find(\".issue-status\");\n issueStatusDom = $el.find(\".issue-status .issue-status-bind\");\n status = issueStatusById[issue.status];\n if (status) {\n issueStatusDom.text(status.name);\n issueStatusDom.prop(\"title\", status.name);\n return issueStatusDomParent.css('color', status.color);\n }\n };\n link = function($scope, $el, $attrs) {\n var $ctrl, issue;\n $ctrl = $el.controller();\n issue = $scope.$eval($attrs.tgIssueStatusInlineEdition);\n $el.on(\"click\", \".issue-status\", function(event) {\n event.preventDefault();\n event.stopPropagation();\n return $el.find(\".pop-status\").popover().open();\n });\n $el.on(\"click\", \".status\", function(event) {\n var filter, j, len, ref, target;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n ref = $scope.filters.statuses;\n for (j = 0, len = ref.length; j < len; j++) {\n filter = ref[j];\n if (filter.id === issue.status) {\n filter.count--;\n }\n }\n issue.status = target.data(\"status-id\");\n $el.find(\".pop-status\").popover().close();\n updateIssueStatus($el, issue, $scope.issueStatusById);\n return $scope.$apply(function() {\n var k, len1, ref1;\n $repo.save(issue).then;\n ref1 = $scope.filters.statuses;\n for (k = 0, len1 = ref1.length; k < len1; k++) {\n filter = ref1[k];\n if (filter.id === issue.status) {\n filter.count++;\n }\n }\n return $rootscope.$broadcast(\"filters:issueupdate\", $scope.filters);\n });\n });\n taiga.bindOnce($scope, \"project\", function(project) {\n $el.append(selectionTemplate({\n 'statuses': project.issue_statuses\n }));\n updateIssueStatus($el, issue, $scope.issueStatusById);\n if (project.my_permissions.indexOf(\"modify_issue\") === -1) {\n $el.unbind(\"click\");\n return $el.find(\"a\").addClass(\"not-clickable\");\n }\n });\n $scope.$watch($attrs.tgIssueStatusInlineEdition, (function(_this) {\n return function(val) {\n return updateIssueStatus($el, val, $scope.issueStatusById);\n };\n })(this));\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgIssueStatusInlineEdition\", [\"$tgRepo\", \"$tgTemplate\", \"$rootScope\", IssueStatusInlineEditionDirective]);\n\n IssueAssignedToInlineEditionDirective = function($repo, $rootscope, popoverService) {\n var link, template;\n template = _.template(\"\\\" alt=\\\"<%- name %>\\\"/>\\n
<%- name %>
\");\n link = function($scope, $el, $attrs) {\n var $ctrl, issue, updateIssue;\n updateIssue = function(issue) {\n var ctx, member;\n ctx = {\n name: \"Unassigned\",\n imgurl: \"/images/unnamed.png\"\n };\n member = $scope.usersById[issue.assigned_to];\n if (member) {\n ctx.imgurl = member.photo;\n ctx.name = member.full_name_display;\n }\n $el.find(\".avatar\").html(template(ctx));\n return $el.find(\".issue-assignedto\").attr('title', ctx.name);\n };\n $ctrl = $el.controller();\n issue = $scope.$eval($attrs.tgIssueAssignedToInlineEdition);\n updateIssue(issue);\n $el.on(\"click\", \".issue-assignedto\", function(event) {\n return $rootscope.$broadcast(\"assigned-to:add\", issue);\n });\n taiga.bindOnce($scope, \"project\", function(project) {\n if (project.my_permissions.indexOf(\"modify_issue\") === -1) {\n $el.unbind(\"click\");\n return $el.find(\"a\").addClass(\"not-clickable\");\n }\n });\n $scope.$on(\"assigned-to:added\", (function(_this) {\n return function(ctx, userId, updatedIssue) {\n if (updatedIssue.id === issue.id) {\n updatedIssue.assigned_to = userId;\n $repo.save(updatedIssue);\n return updateIssue(updatedIssue);\n }\n };\n })(this));\n $scope.$watch($attrs.tgIssueAssignedToInlineEdition, (function(_this) {\n return function(val) {\n return updateIssue(val);\n };\n })(this));\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgIssueAssignedToInlineEdition\", [\"$tgRepo\", \"$rootScope\", IssueAssignedToInlineEditionDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/memberships.coffee\n */\n\n(function() {\n var module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n resourceProvider = function($repo, $http, $urls) {\n var service;\n service = {};\n service.get = function(id) {\n return $repo.queryOne(\"memberships\", id);\n };\n service.list = function(projectId, filters, enablePagination) {\n var options, params;\n if (enablePagination == null) {\n enablePagination = true;\n }\n params = {\n project: projectId\n };\n params = _.extend({}, params, filters || {});\n if (enablePagination) {\n return $repo.queryPaginated(\"memberships\", params);\n }\n return $repo.queryMany(\"memberships\", params, options = {\n enablePagination: enablePagination\n });\n };\n service.listByUser = function(userId, filters) {\n var params;\n params = {\n user: userId\n };\n params = _.extend({}, params, filters || {});\n return $repo.queryPaginated(\"memberships\", params);\n };\n service.resendInvitation = function(id) {\n var url;\n url = $urls.resolve(\"memberships\");\n return $http.post(url + \"/\" + id + \"/resend_invitation\", {});\n };\n service.bulkCreateMemberships = function(projectId, data, invitation_extra_text) {\n var params, url;\n url = $urls.resolve(\"bulk-create-memberships\");\n params = {\n project_id: projectId,\n bulk_memberships: data,\n invitation_extra_text: invitation_extra_text\n };\n return $http.post(url, params);\n };\n return function(instance) {\n return instance.memberships = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgMembershipsResourcesProvider\", [\"$tgRepo\", \"$tgHttp\", \"$tgUrls\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/admin/project-profile.coffee\n */\n\n(function() {\n var CsvExporterController, CsvExporterIssuesController, CsvExporterTasksController, CsvExporterUserstoriesController, ProjectDefaultValuesDirective, ProjectExportDirective, ProjectModulesDirective, ProjectProfileController, ProjectProfileDirective, bindOnce, debounce, groupBy, joinStr, mixOf, module, taiga, toString, trim,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };\n\n taiga = this.taiga;\n\n mixOf = this.taiga.mixOf;\n\n trim = this.taiga.trim;\n\n toString = this.taiga.toString;\n\n joinStr = this.taiga.joinStr;\n\n groupBy = this.taiga.groupBy;\n\n bindOnce = this.taiga.bindOnce;\n\n debounce = this.taiga.debounce;\n\n module = angular.module(\"taigaAdmin\");\n\n ProjectProfileController = (function(superClass) {\n extend(ProjectProfileController, superClass);\n\n ProjectProfileController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgResources\", \"$routeParams\", \"$q\", \"$tgLocation\", \"$tgNavUrls\", \"$appTitle\"];\n\n function ProjectProfileController(scope, rootscope, repo, confirm, rs, params, q, location, navUrls, appTitle) {\n var promise;\n this.scope = scope;\n this.rootscope = rootscope;\n this.repo = repo;\n this.confirm = confirm;\n this.rs = rs;\n this.params = params;\n this.q = q;\n this.location = location;\n this.navUrls = navUrls;\n this.appTitle = appTitle;\n this.scope.project = {};\n promise = this.loadInitialData();\n promise.then((function(_this) {\n return function() {\n return _this.appTitle.set(\"Project profile - \" + _this.scope.sectionName + \" - \" + _this.scope.project.name);\n };\n })(this));\n promise.then(null, this.onInitialDataError.bind(this));\n this.scope.$on(\"project:loaded\", (function(_this) {\n return function() {\n return _this.appTitle.set(\"Project profile - \" + _this.scope.sectionName + \" - \" + _this.scope.project.name);\n };\n })(this));\n }\n\n ProjectProfileController.prototype.loadProject = function() {\n return this.rs.projects.get(this.scope.projectId).then((function(_this) {\n return function(project) {\n if (!project.i_am_owner) {\n _this.location.path(_this.navUrls.resolve(\"permission-denied\"));\n }\n _this.scope.project = project;\n _this.scope.pointsList = _.sortBy(project.points, \"order\");\n _this.scope.usStatusList = _.sortBy(project.us_statuses, \"order\");\n _this.scope.taskStatusList = _.sortBy(project.task_statuses, \"order\");\n _this.scope.prioritiesList = _.sortBy(project.priorities, \"order\");\n _this.scope.severitiesList = _.sortBy(project.severities, \"order\");\n _this.scope.issueTypesList = _.sortBy(project.issue_types, \"order\");\n _this.scope.issueStatusList = _.sortBy(project.issue_statuses, \"order\");\n _this.scope.$emit('project:loaded', project);\n return project;\n };\n })(this));\n };\n\n ProjectProfileController.prototype.loadInitialData = function() {\n var promise;\n promise = this.repo.resolve({\n pslug: this.params.pslug\n }).then((function(_this) {\n return function(data) {\n _this.scope.projectId = data.project;\n return data;\n };\n })(this));\n return promise.then((function(_this) {\n return function() {\n return _this.loadProject();\n };\n })(this));\n };\n\n ProjectProfileController.prototype.openDeleteLightbox = function() {\n return this.rootscope.$broadcast(\"deletelightbox:new\", this.scope.project);\n };\n\n return ProjectProfileController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin));\n\n module.controller(\"ProjectProfileController\", ProjectProfileController);\n\n ProjectProfileDirective = function($repo, $confirm, $loading, $navurls, $location) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, submit, submitButton;\n form = $el.find(\"form\").checksley({\n \"onlyOneErrorElement\": true\n });\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n $loading.start(submitButton);\n promise = $repo.save($scope.project);\n promise.then(function() {\n var newUrl;\n $loading.finish(submitButton);\n $confirm.notify(\"success\");\n newUrl = $navurls.resolve(\"project-admin-project-profile-details\", {\n project: $scope.project.slug\n });\n $location.path(newUrl);\n return $scope.$emit(\"project:loaded\", $scope.project);\n });\n return promise.then(null, function(data) {\n $loading.finish(target);\n form.setErrors(data);\n if (data._error_message) {\n return $confirm.notify(\"error\", data._error_message);\n }\n });\n };\n })(this));\n submitButton = $el.find(\".submit-button\");\n return $el.on(\"submit\", \"form\", submit);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgProjectProfile\", [\"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", \"$tgNavUrls\", \"$tgLocation\", ProjectProfileDirective]);\n\n ProjectDefaultValuesDirective = function($repo, $confirm, $loading) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, submit, submitButton;\n form = $el.find(\"form\").checksley({\n \"onlyOneErrorElement\": true\n });\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n $loading.start(submitButton);\n promise = $repo.save($scope.project);\n promise.then(function() {\n $loading.finish(submitButton);\n return $confirm.notify(\"success\");\n });\n return promise.then(null, function(data) {\n $loading.finish(target);\n form.setErrors(data);\n if (data._error_message) {\n return $confirm.notify(\"error\", data._error_message);\n }\n });\n };\n })(this));\n submitButton = $el.find(\".submit-button\");\n $el.on(\"submit\", \"form\", submit);\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgProjectDefaultValues\", [\"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", ProjectDefaultValuesDirective]);\n\n ProjectModulesDirective = function($repo, $confirm, $loading) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, submit;\n form = $el.find(\"form\").checksley();\n submit = (function(_this) {\n return function() {\n var promise, target;\n if (!form.validate()) {\n return;\n }\n target = angular.element(\".admin-functionalities a.button-green\");\n $loading.start(target);\n promise = $repo.save($scope.project);\n promise.then(function() {\n $loading.finish(target);\n $confirm.notify(\"success\");\n return $scope.$emit(\"project:loaded\", $scope.project);\n });\n return promise.then(null, function(data) {\n $loading.finish(target);\n return $confirm.notify(\"error\", data._error_message);\n });\n };\n })(this);\n $el.on(\"submit\", \"form\", function(event) {\n event.preventDefault();\n return submit();\n });\n $el.on(\"click\", \".admin-functionalities a.button-green\", function(event) {\n event.preventDefault();\n return submit();\n });\n $scope.$watch(\"isVideoconferenceActivated\", function(isVideoconferenceActivated) {\n if (isVideoconferenceActivated) {\n return $el.find(\".videoconference-attributes\").removeClass(\"hidden\");\n } else {\n $el.find(\".videoconference-attributes\").addClass(\"hidden\");\n $scope.project.videoconferences = null;\n return $scope.project.videoconferences_salt = \"\";\n }\n });\n return $scope.$watch(\"project\", function(project) {\n if (project.videoconferences != null) {\n return $scope.isVideoconferenceActivated = true;\n } else {\n return $scope.isVideoconferenceActivated = false;\n }\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgProjectModules\", [\"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", ProjectModulesDirective]);\n\n ProjectExportDirective = function($window, $rs, $confirm) {\n var link;\n link = function($scope, $el, $attrs) {\n var buttonsEl, hideButtons, hideResult, hideSpinner, resultEl, resultMessageEl, resultTitleEl, setAsyncMessage, setAsyncTitle, setLoadingMessage, setLoadingTitle, setSyncMessage, setSyncTitle, showButtons, showErrorMode, showExportResultAsyncMode, showExportResultSyncMode, showLoadingMode, showResult, showSpinner, spinnerEl;\n buttonsEl = $el.find(\".admin-project-export-buttons\");\n showButtons = function() {\n return buttonsEl.removeClass(\"hidden\");\n };\n hideButtons = function() {\n return buttonsEl.addClass(\"hidden\");\n };\n resultEl = $el.find(\".admin-project-export-result\");\n showResult = function() {\n return resultEl.removeClass(\"hidden\");\n };\n hideResult = function() {\n return resultEl.addClass(\"hidden\");\n };\n spinnerEl = $el.find(\".spin\");\n showSpinner = function() {\n return spinnerEl.removeClass(\"hidden\");\n };\n hideSpinner = function() {\n return spinnerEl.addClass(\"hidden\");\n };\n resultTitleEl = $el.find(\".result-title\");\n setLoadingTitle = function() {\n return resultTitleEl.html(\"We are generating your dump file\");\n };\n setAsyncTitle = function() {\n return resultTitleEl.html(\"We are generating your dump file\");\n };\n setSyncTitle = function() {\n return resultTitleEl.html(\"Your dump file is ready!\");\n };\n resultMessageEl = $el.find(\".result-message \");\n setLoadingMessage = function() {\n return resultMessageEl.html(\"Please don't close this page.\");\n };\n setAsyncMessage = function() {\n return resultMessageEl.html(\"We will send you an email when ready.\");\n };\n setSyncMessage = function(url) {\n return resultMessageEl.html(\"If the download doesn't start automatically click here.\");\n };\n showLoadingMode = function() {\n showSpinner();\n setLoadingTitle();\n setLoadingMessage();\n hideButtons();\n return showResult();\n };\n showExportResultAsyncMode = function() {\n hideSpinner();\n setAsyncTitle();\n return setAsyncMessage();\n };\n showExportResultSyncMode = function(url) {\n hideSpinner();\n setSyncTitle();\n return setSyncMessage(url);\n };\n showErrorMode = function() {\n hideSpinner();\n hideResult();\n return showButtons();\n };\n return $el.on(\"click\", \"a.button-export\", debounce(2000, (function(_this) {\n return function(event) {\n var onError, onSuccess;\n event.preventDefault();\n onSuccess = function(result) {\n var dumpUrl;\n if (result.status === 202) {\n return showExportResultAsyncMode();\n } else {\n dumpUrl = result.data.url;\n showExportResultSyncMode(dumpUrl);\n return $window.open(dumpUrl, \"_blank\");\n }\n };\n onError = function(result) {\n var errorMsg, ref;\n showErrorMode();\n errorMsg = \"Our oompa loompas have some problems generasting your dump. Please try again. \";\n if (result.status === 429) {\n errorMsg = \"Sorry, our oompa loompas are very busy right now. Please try again in a few minutes. \";\n } else if ((ref = result.data) != null ? ref._error_message : void 0) {\n errorMsg = \"Our oompa loompas have some problems generasting your dump: \" + result.data._error_message;\n }\n return $confirm.notify(\"error\", errorMsg);\n };\n showLoadingMode();\n return $rs.projects[\"export\"]($scope.projectId).then(onSuccess, onError);\n };\n })(this)));\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgProjectExport\", [\"$window\", \"$tgResources\", \"$tgConfirm\", ProjectExportDirective]);\n\n CsvExporterController = (function(superClass) {\n extend(CsvExporterController, superClass);\n\n CsvExporterController.$inject = [\"$scope\", \"$rootScope\", \"$tgUrls\", \"$tgConfirm\", \"$tgResources\"];\n\n function CsvExporterController(scope, rootscope, urls, confirm, rs) {\n this.scope = scope;\n this.rootscope = rootscope;\n this.urls = urls;\n this.confirm = confirm;\n this.rs = rs;\n this._generateUuid = bind(this._generateUuid, this);\n this.setCsvUuid = bind(this.setCsvUuid, this);\n this.rootscope.$on(\"project:loaded\", this.setCsvUuid);\n this.scope.$watch(\"csvUuid\", (function(_this) {\n return function(value) {\n if (value) {\n return _this.scope.csvUrl = _this.urls.resolveAbsolute(_this.type + \"-csv\", value);\n } else {\n return _this.scope.csvUrl = \"\";\n }\n };\n })(this));\n }\n\n CsvExporterController.prototype.setCsvUuid = function() {\n return this.scope.csvUuid = this.scope.project[this.type + \"_csv_uuid\"];\n };\n\n CsvExporterController.prototype._generateUuid = function(finish) {\n var promise;\n promise = this.rs.projects[\"regenerate_\" + this.type + \"_csv_uuid\"](this.scope.projectId);\n promise.then((function(_this) {\n return function(data) {\n var ref;\n return _this.scope.csvUuid = (ref = data.data) != null ? ref.uuid : void 0;\n };\n })(this));\n promise.then(null, (function(_this) {\n return function() {\n return _this.confirm.notify(\"error\");\n };\n })(this));\n promise[\"finally\"](function() {\n return finish();\n });\n return promise;\n };\n\n CsvExporterController.prototype.regenerateUuid = function() {\n var subtitle, title;\n if (this.scope.csvUuid) {\n title = \"Change URL\";\n subtitle = \"You going to change the CSV data access url. The previous url will be disabled. Are you sure?\";\n return this.confirm.ask(title, subtitle).then(this._generateUuid);\n } else {\n return this._generateUuid(_.identity);\n }\n };\n\n return CsvExporterController;\n\n })(taiga.Controller);\n\n CsvExporterUserstoriesController = (function(superClass) {\n extend(CsvExporterUserstoriesController, superClass);\n\n function CsvExporterUserstoriesController() {\n return CsvExporterUserstoriesController.__super__.constructor.apply(this, arguments);\n }\n\n CsvExporterUserstoriesController.prototype.type = \"userstories\";\n\n return CsvExporterUserstoriesController;\n\n })(CsvExporterController);\n\n CsvExporterTasksController = (function(superClass) {\n extend(CsvExporterTasksController, superClass);\n\n function CsvExporterTasksController() {\n return CsvExporterTasksController.__super__.constructor.apply(this, arguments);\n }\n\n CsvExporterTasksController.prototype.type = \"tasks\";\n\n return CsvExporterTasksController;\n\n })(CsvExporterController);\n\n CsvExporterIssuesController = (function(superClass) {\n extend(CsvExporterIssuesController, superClass);\n\n function CsvExporterIssuesController() {\n return CsvExporterIssuesController.__super__.constructor.apply(this, arguments);\n }\n\n CsvExporterIssuesController.prototype.type = \"issues\";\n\n return CsvExporterIssuesController;\n\n })(CsvExporterController);\n\n module.controller(\"CsvExporterUserstoriesController\", CsvExporterUserstoriesController);\n\n module.controller(\"CsvExporterTasksController\", CsvExporterTasksController);\n\n module.controller(\"CsvExporterIssuesController\", CsvExporterIssuesController);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/admin/project-profile.coffee\n */\n\n(function() {\n var ColorSelectionDirective, ProjectCustomAttributesController, ProjectCustomAttributesDirective, ProjectValuesController, ProjectValuesDirective, ProjectValuesSectionController, bindOnce, debounce, groupBy, joinStr, mixOf, module, taiga, toString, trim,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };\n\n taiga = this.taiga;\n\n mixOf = this.taiga.mixOf;\n\n trim = this.taiga.trim;\n\n toString = this.taiga.toString;\n\n joinStr = this.taiga.joinStr;\n\n groupBy = this.taiga.groupBy;\n\n bindOnce = this.taiga.bindOnce;\n\n debounce = this.taiga.debounce;\n\n module = angular.module(\"taigaAdmin\");\n\n ProjectValuesSectionController = (function(superClass) {\n extend(ProjectValuesSectionController, superClass);\n\n ProjectValuesSectionController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgResources\", \"$routeParams\", \"$q\", \"$tgLocation\", \"$tgNavUrls\", \"$appTitle\"];\n\n function ProjectValuesSectionController(scope, rootscope, repo, confirm, rs, params, q, location, navUrls, appTitle) {\n var promise;\n this.scope = scope;\n this.rootscope = rootscope;\n this.repo = repo;\n this.confirm = confirm;\n this.rs = rs;\n this.params = params;\n this.q = q;\n this.location = location;\n this.navUrls = navUrls;\n this.appTitle = appTitle;\n this.scope.project = {};\n promise = this.loadInitialData();\n promise.then((function(_this) {\n return function() {\n return _this.appTitle.set(\"Project values - \" + _this.scope.sectionName + \" - \" + _this.scope.project.name);\n };\n })(this));\n promise.then(null, this.onInitialDataError.bind(this));\n }\n\n ProjectValuesSectionController.prototype.loadProject = function() {\n return this.rs.projects.get(this.scope.projectId).then((function(_this) {\n return function(project) {\n if (!project.i_am_owner) {\n _this.location.path(_this.navUrls.resolve(\"permission-denied\"));\n }\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n return project;\n };\n })(this));\n };\n\n ProjectValuesSectionController.prototype.loadInitialData = function() {\n var promise;\n promise = this.repo.resolve({\n pslug: this.params.pslug\n }).then((function(_this) {\n return function(data) {\n _this.scope.projectId = data.project;\n return data;\n };\n })(this));\n return promise.then((function(_this) {\n return function() {\n return _this.loadProject();\n };\n })(this));\n };\n\n return ProjectValuesSectionController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin));\n\n module.controller(\"ProjectValuesSectionController\", ProjectValuesSectionController);\n\n ProjectValuesController = (function(superClass) {\n extend(ProjectValuesController, superClass);\n\n ProjectValuesController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgResources\"];\n\n function ProjectValuesController(scope, rootscope, repo, confirm, rs) {\n this.scope = scope;\n this.rootscope = rootscope;\n this.repo = repo;\n this.confirm = confirm;\n this.rs = rs;\n this.moveValue = bind(this.moveValue, this);\n this.loadValues = bind(this.loadValues, this);\n this.scope.$on(\"admin:project-values:move\", this.moveValue);\n this.rootscope.$on(\"project:loaded\", this.loadValues);\n }\n\n ProjectValuesController.prototype.loadValues = function() {\n return this.rs[this.scope.resource].listValues(this.scope.projectId, this.scope.type).then((function(_this) {\n return function(values) {\n _this.scope.values = values;\n _this.scope.maxValueOrder = _.max(values, \"order\").order;\n return values;\n };\n })(this));\n };\n\n ProjectValuesController.prototype.moveValue = function(ctx, itemValue, itemIndex) {\n var r, values;\n values = this.scope.values;\n r = values.indexOf(itemValue);\n values.splice(r, 1);\n values.splice(itemIndex, 0, itemValue);\n _.each(values, function(value, index) {\n return value.order = index;\n });\n return this.repo.saveAll(values);\n };\n\n return ProjectValuesController;\n\n })(taiga.Controller);\n\n module.controller(\"ProjectValuesController\", ProjectValuesController);\n\n ProjectValuesDirective = function($log, $repo, $confirm, $location, animationFrame) {\n var link, linkDragAndDrop, linkValue;\n linkDragAndDrop = function($scope, $el, $attrs) {\n var itemEl, newParentScope, oldParentScope, tdom;\n oldParentScope = null;\n newParentScope = null;\n itemEl = null;\n tdom = $el.find(\".sortable\");\n tdom.sortable({\n handle: \".row.table-main.visualization\",\n dropOnEmpty: true,\n connectWith: \".project-values-body\",\n revert: 400,\n axis: \"y\"\n });\n tdom.on(\"sortstop\", function(event, ui) {\n var itemIndex, itemValue;\n itemEl = ui.item;\n itemValue = itemEl.scope().value;\n itemIndex = itemEl.index();\n return $scope.$broadcast(\"admin:project-values:move\", itemValue, itemIndex);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n linkValue = function($scope, $el, $attrs) {\n var $ctrl, cancel, goToBottomList, initializeNewValue, saveNewValue, saveValue, valueType;\n $ctrl = $el.controller();\n valueType = $attrs.type;\n initializeNewValue = function() {\n return $scope.newValue = {\n \"name\": \"\",\n \"is_closed\": false,\n \"is_archived\": false\n };\n };\n initializeNewValue();\n goToBottomList = (function(_this) {\n return function(focus) {\n var table;\n if (focus == null) {\n focus = false;\n }\n table = $el.find(\".table-main\");\n $(document.body).scrollTop(table.offset().top + table.height());\n if (focus) {\n return $el.find(\".new-value input:visible\").first().focus();\n }\n };\n })(this);\n saveValue = function(target) {\n var form, formEl, promise, value;\n formEl = target.parents(\"form\");\n form = formEl.checksley();\n if (!form.validate()) {\n return;\n }\n value = formEl.scope().value;\n promise = $repo.save(value);\n promise.then((function(_this) {\n return function() {\n var row;\n row = target.parents(\".row.table-main\");\n row.addClass(\"hidden\");\n return row.siblings(\".visualization\").removeClass('hidden');\n };\n })(this));\n return promise.then(null, function(data) {\n return form.setErrors(data);\n });\n };\n saveNewValue = function(target) {\n var form, formEl, promise;\n formEl = target.parents(\"form\");\n form = formEl.checksley();\n if (!form.validate()) {\n return;\n }\n $scope.newValue.project = $scope.project.id;\n $scope.newValue.order = $scope.maxValueOrder ? $scope.maxValueOrder + 1 : 1;\n promise = $repo.create(valueType, $scope.newValue);\n promise.then((function(_this) {\n return function(data) {\n target.addClass(\"hidden\");\n $scope.values.push(data);\n $scope.maxValueOrder = data.order;\n return initializeNewValue();\n };\n })(this));\n return promise.then(null, function(data) {\n return form.setErrors(data);\n });\n };\n cancel = function(target) {\n var formEl, row, value;\n row = target.parents(\".row.table-main\");\n formEl = target.parents(\"form\");\n value = formEl.scope().value;\n return $scope.$apply(function() {\n row.addClass(\"hidden\");\n value.revert();\n return row.siblings(\".visualization\").removeClass('hidden');\n });\n };\n $el.on(\"click\", \".show-add-new\", function(event) {\n event.preventDefault();\n $el.find(\".new-value\").removeClass('hidden');\n return goToBottomList(true);\n });\n $el.on(\"click\", \".add-new\", debounce(2000, function(event) {\n var target;\n event.preventDefault();\n target = $el.find(\".new-value\");\n return saveNewValue(target);\n }));\n $el.on(\"click\", \".delete-new\", function(event) {\n event.preventDefault();\n $el.find(\".new-value\").addClass(\"hidden\");\n return initializeNewValue();\n });\n $el.on(\"click\", \".edit-value\", function(event) {\n var editionRow, row, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n row = target.parents(\".row.table-main\");\n row.addClass(\"hidden\");\n editionRow = row.siblings(\".edition\");\n editionRow.removeClass('hidden');\n return editionRow.find('input:visible').first().focus().select();\n });\n $el.on(\"keyup\", \".edition input\", function(event) {\n var target;\n if (event.keyCode === 13) {\n target = angular.element(event.currentTarget);\n return saveValue(target);\n } else if (event.keyCode === 27) {\n target = angular.element(event.currentTarget);\n return cancel(target);\n }\n });\n $el.on(\"keyup\", \".new-value input\", function(event) {\n var target;\n if (event.keyCode === 13) {\n target = $el.find(\".new-value\");\n return saveNewValue(target);\n } else if (event.keyCode === 27) {\n $el.find(\".new-value\").addClass(\"hidden\");\n return initializeNewValue();\n }\n });\n $el.on(\"click\", \".save\", function(event) {\n var target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n return saveValue(target);\n });\n $el.on(\"click\", \".cancel\", function(event) {\n var target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n return cancel(target);\n });\n return $el.on(\"click\", \".delete-value\", function(event) {\n var choices, formEl, replacement, subtitle, target, title, value;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n formEl = target.parents(\"form\");\n value = formEl.scope().value;\n choices = {};\n _.each($scope.values, function(option) {\n if (value.id !== option.id) {\n return choices[option.id] = option.name;\n }\n });\n title = \"Delete value\";\n subtitle = value.name;\n replacement = \"All items with this value will be changed to\";\n if (_.keys(choices).length === 0) {\n return $confirm.error(\"You can't delete all values.\");\n }\n return $confirm.askChoice(title, subtitle, choices, replacement).then(function(response) {\n var onError, onSucces;\n onSucces = function() {\n return $ctrl.loadValues()[\"finally\"](function() {\n return response.finish();\n });\n };\n onError = function() {\n return $confirm.notify(\"error\");\n };\n return $repo.remove(value, {\n \"moveTo\": response.selected\n }).then(onSucces, onError);\n });\n });\n };\n link = function($scope, $el, $attrs) {\n linkDragAndDrop($scope, $el, $attrs);\n linkValue($scope, $el, $attrs);\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgProjectValues\", [\"$log\", \"$tgRepo\", \"$tgConfirm\", \"$tgLocation\", \"animationFrame\", ProjectValuesDirective]);\n\n ColorSelectionDirective = function() {\n var link;\n link = function($scope, $el, $attrs, $model) {\n var $ctrl;\n $ctrl = $el.controller();\n $scope.$watch($attrs.ngModel, function(element) {\n return $scope.color = element.color;\n });\n $el.on(\"click\", \".current-color\", function(event) {\n var body, target;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n $el.find(\".select-color\").hide();\n target.siblings(\".select-color\").show();\n body = angular.element(\"body\");\n return body.on(\"click\", (function(_this) {\n return function(event) {\n if (angular.element(event.target).parent(\".select-color\").length === 0) {\n $el.find(\".select-color\").hide();\n return body.unbind(\"click\");\n }\n };\n })(this));\n });\n $el.on(\"click\", \".select-color .color\", function(event) {\n var target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n $scope.$apply(function() {\n return $model.$modelValue.color = target.data(\"color\");\n });\n return $el.find(\".select-color\").hide();\n });\n $el.on(\"click\", \".select-color .selected-color\", function(event) {\n event.preventDefault();\n $scope.$apply(function() {\n return $model.$modelValue.color = $scope.color;\n });\n return $el.find(\".select-color\").hide();\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgColorSelection\", ColorSelectionDirective);\n\n ProjectCustomAttributesController = (function(superClass) {\n extend(ProjectCustomAttributesController, superClass);\n\n ProjectCustomAttributesController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgResources\", \"$routeParams\", \"$q\", \"$tgLocation\", \"$tgNavUrls\", \"$appTitle\"];\n\n function ProjectCustomAttributesController(scope, rootscope, repo, rs, params, q, location, navUrls, appTitle) {\n this.scope = scope;\n this.rootscope = rootscope;\n this.repo = repo;\n this.rs = rs;\n this.params = params;\n this.q = q;\n this.location = location;\n this.navUrls = navUrls;\n this.appTitle = appTitle;\n this.moveCustomAttributes = bind(this.moveCustomAttributes, this);\n this.deleteCustomAttribute = bind(this.deleteCustomAttribute, this);\n this.saveCustomAttribute = bind(this.saveCustomAttribute, this);\n this.createCustomAttribute = bind(this.createCustomAttribute, this);\n this.loadCustomAttributes = bind(this.loadCustomAttributes, this);\n this.scope.project = {};\n this.rootscope.$on(\"project:loaded\", (function(_this) {\n return function() {\n _this.loadCustomAttributes();\n return _this.appTitle.set(\"Project Custom Attributes - \" + _this.scope.sectionName + \" - \" + _this.scope.project.name);\n };\n })(this));\n }\n\n ProjectCustomAttributesController.prototype.loadCustomAttributes = function() {\n return this.rs.customAttributes[this.scope.type].list(this.scope.projectId).then((function(_this) {\n return function(customAttributes) {\n _this.scope.customAttributes = customAttributes;\n _this.scope.maxOrder = _.max(customAttributes, \"order\").order;\n return customAttributes;\n };\n })(this));\n };\n\n ProjectCustomAttributesController.prototype.createCustomAttribute = function(attrValues) {\n return this.repo.create(\"custom-attributes/\" + this.scope.type, attrValues);\n };\n\n ProjectCustomAttributesController.prototype.saveCustomAttribute = function(attrModel) {\n return this.repo.save(attrModel);\n };\n\n ProjectCustomAttributesController.prototype.deleteCustomAttribute = function(attrModel) {\n return this.repo.remove(attrModel);\n };\n\n ProjectCustomAttributesController.prototype.moveCustomAttributes = function(attrModel, newIndex) {\n var customAttributes, r;\n customAttributes = this.scope.customAttributes;\n r = customAttributes.indexOf(attrModel);\n customAttributes.splice(r, 1);\n customAttributes.splice(newIndex, 0, attrModel);\n _.each(customAttributes, function(val, idx) {\n return val.order = idx;\n });\n return this.repo.saveAll(customAttributes);\n };\n\n return ProjectCustomAttributesController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin));\n\n module.controller(\"ProjectCustomAttributesController\", ProjectCustomAttributesController);\n\n ProjectCustomAttributesDirective = function($log, $confirm, animationFrame) {\n var link;\n link = function($scope, $el, $attrs) {\n var $ctrl, cancelCreate, cancelUpdate, create, deleteCustomAttribute, hideAddButton, hideCancelButton, hideCreateForm, hideEditForm, resetNewAttr, revertChangesInCustomAttribute, showAddButton, showCancelButton, showCreateForm, showEditForm, sortableEl, update;\n $ctrl = $el.controller();\n $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n sortableEl = $el.find(\".js-sortable\");\n sortableEl.sortable({\n handle: \".js-view-custom-field\",\n dropOnEmpty: true,\n revert: 400,\n axis: \"y\"\n });\n sortableEl.on(\"sortstop\", function(event, ui) {\n var itemAttr, itemEl, itemIndex;\n itemEl = ui.item;\n itemAttr = itemEl.scope().attr;\n itemIndex = itemEl.index();\n return $ctrl.moveCustomAttributes(itemAttr, itemIndex);\n });\n showCreateForm = function() {\n $el.find(\".js-new-custom-field\").removeClass(\"hidden\");\n return $el.find(\".js-new-custom-field input:visible\").first().focus();\n };\n hideCreateForm = function() {\n return $el.find(\".js-new-custom-field\").addClass(\"hidden\");\n };\n showAddButton = function() {\n return $el.find(\".js-add-custom-field-button\").removeClass(\"hidden\");\n };\n hideAddButton = function() {\n return $el.find(\".js-add-custom-field-button\").addClass(\"hidden\");\n };\n showCancelButton = function() {\n return $el.find(\".js-cancel-new-custom-field-button\").removeClass(\"hidden\");\n };\n hideCancelButton = function() {\n return $el.find(\".js-cancel-new-custom-field-button\").addClass(\"hidden\");\n };\n resetNewAttr = function() {\n return $scope.newAttr = {};\n };\n create = function(formEl) {\n var attr, form, onError, onSucces;\n form = formEl.checksley();\n if (!form.validate()) {\n return;\n }\n onSucces = (function(_this) {\n return function() {\n $ctrl.loadCustomAttributes();\n hideCreateForm();\n resetNewAttr();\n return $confirm.notify(\"success\");\n };\n })(this);\n onError = (function(_this) {\n return function(data) {\n return form.setErrors(data);\n };\n })(this);\n attr = $scope.newAttr;\n attr.project = $scope.projectId;\n attr.order = $scope.maxOrder ? $scope.maxOrder + 1 : 1;\n return $ctrl.createCustomAttribute(attr).then(onSucces, onError);\n };\n cancelCreate = function() {\n hideCreateForm();\n return resetNewAttr();\n };\n $scope.$watch(\"customAttributes\", function(customAttributes) {\n if (!customAttributes) {\n return;\n }\n if (customAttributes.length === 0) {\n hideCancelButton();\n hideAddButton();\n return showCreateForm();\n } else {\n hideCreateForm();\n showAddButton();\n return showCancelButton();\n }\n });\n $el.on(\"click\", \".js-add-custom-field-button\", function(event) {\n event.preventDefault();\n return showCreateForm();\n });\n $el.on(\"click\", \".js-create-custom-field-button\", debounce(2000, function(event) {\n var formEl, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n formEl = target.closest(\"form\");\n return create(formEl);\n }));\n $el.on(\"click\", \".js-cancel-new-custom-field-button\", function(event) {\n event.preventDefault();\n return cancelCreate();\n });\n $el.on(\"keyup\", \".js-new-custom-field input\", function(event) {\n var formEl, target;\n if (event.keyCode === 13) {\n target = angular.element(event.currentTarget);\n formEl = target.closest(\"form\");\n return create(formEl);\n } else if (event.keyCode === 27) {\n return cancelCreate();\n }\n });\n showEditForm = function(formEl) {\n formEl.find(\".js-view-custom-field\").addClass(\"hidden\");\n formEl.find(\".js-edit-custom-field\").removeClass(\"hidden\");\n return formEl.find(\".js-edit-custom-field input:visible\").first().focus().select();\n };\n hideEditForm = function(formEl) {\n formEl.find(\".js-edit-custom-field\").addClass(\"hidden\");\n return formEl.find(\".js-view-custom-field\").removeClass(\"hidden\");\n };\n revertChangesInCustomAttribute = function(formEl) {\n return $scope.$apply(function() {\n return formEl.scope().attr.revert();\n });\n };\n update = function(formEl) {\n var attr, form, onError, onSucces;\n form = formEl.checksley();\n if (!form.validate()) {\n return;\n }\n onSucces = (function(_this) {\n return function() {\n $ctrl.loadCustomAttributes();\n hideEditForm(formEl);\n return $confirm.notify(\"success\");\n };\n })(this);\n onError = (function(_this) {\n return function(data) {\n return form.setErrors(data);\n };\n })(this);\n attr = formEl.scope().attr;\n return $ctrl.saveCustomAttribute(attr).then(onSucces, onError);\n };\n cancelUpdate = function(formEl) {\n hideEditForm(formEl);\n return revertChangesInCustomAttribute(formEl);\n };\n $el.on(\"click\", \".js-edit-custom-field-button\", function(event) {\n var formEl, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n formEl = target.closest(\"form\");\n return showEditForm(formEl);\n });\n $el.on(\"click\", \".js-update-custom-field-button\", debounce(2000, function(event) {\n var formEl, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n formEl = target.closest(\"form\");\n return update(formEl);\n }));\n $el.on(\"click\", \".js-cancel-edit-custom-field-button\", function(event) {\n var formEl, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n formEl = target.closest(\"form\");\n return cancelUpdate(formEl);\n });\n $el.on(\"keyup\", \".js-edit-custom-field input\", function(event) {\n var formEl, target;\n if (event.keyCode === 13) {\n target = angular.element(event.currentTarget);\n formEl = target.closest(\"form\");\n return update(formEl);\n } else if (event.keyCode === 27) {\n target = angular.element(event.currentTarget);\n formEl = target.closest(\"form\");\n return cancelUpdate(formEl);\n }\n });\n deleteCustomAttribute = function(formEl) {\n var attr, message, subtitle, title;\n attr = formEl.scope().attr;\n title = \"Delete custom attribute\";\n subtitle = \"Remeber that all values in this custom field will be deleted.
Are you sure you want to continue?\";\n message = attr.name;\n return $confirm.ask(title, subtitle, message).then(function(finish) {\n var onError, onSucces;\n onSucces = function() {\n return $ctrl.loadCustomAttributes()[\"finally\"](function() {\n return finish();\n });\n };\n onError = function() {\n finish(false);\n return $confirm.notify(\"error\", null, \"We have not been able to delete '\" + message + \"'.\");\n };\n return $ctrl.deleteCustomAttribute(attr).then(onSucces, onError);\n });\n };\n return $el.on(\"click\", \".js-delete-custom-field-button\", debounce(2000, function(event) {\n var formEl, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n formEl = target.closest(\"form\");\n return deleteCustomAttribute(formEl);\n }));\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgProjectCustomAttributes\", [\"$log\", \"$tgConfirm\", \"animationFrame\", ProjectCustomAttributesDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/memberships.coffee\n */\n\n(function() {\n var module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n resourceProvider = function($repo, $http, $urls) {\n var service;\n service = {};\n service.get = function(id) {\n return $repo.queryOne(\"roles\", id);\n };\n service.list = function(projectId) {\n return $repo.queryMany(\"roles\", {\n project: projectId\n });\n };\n return function(instance) {\n return instance.roles = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgRolesResourcesProvider\", [\"$tgRepo\", \"$tgHttp\", \"$tgUrls\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/admin/third-parties.coffee\n */\n\n(function() {\n var BitbucketController, BitbucketWebhooksDirective, GithubController, GithubWebhooksDirective, GitlabController, GitlabWebhooksDirective, NewWebhookDirective, SelectInputText, ValidOriginIpsDirective, WebhookDirective, WebhooksController, bindMethods, debounce, mixOf, module, taiga, timeout,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n mixOf = this.taiga.mixOf;\n\n bindMethods = this.taiga.bindMethods;\n\n debounce = this.taiga.debounce;\n\n timeout = this.taiga.timeout;\n\n module = angular.module(\"taigaAdmin\");\n\n WebhooksController = (function(superClass) {\n extend(WebhooksController, superClass);\n\n WebhooksController.$inject = [\"$scope\", \"$tgRepo\", \"$tgResources\", \"$routeParams\", \"$tgLocation\", \"$tgNavUrls\", \"$appTitle\"];\n\n function WebhooksController(scope, repo, rs, params, location, navUrls, appTitle) {\n var promise;\n this.scope = scope;\n this.repo = repo;\n this.rs = rs;\n this.params = params;\n this.location = location;\n this.navUrls = navUrls;\n this.appTitle = appTitle;\n bindMethods(this);\n this.scope.sectionName = \"Webhooks\";\n this.scope.project = {};\n promise = this.loadInitialData();\n promise.then((function(_this) {\n return function() {\n return _this.appTitle.set(\"Webhooks - \" + _this.scope.project.name);\n };\n })(this));\n promise.then(null, this.onInitialDataError.bind(this));\n this.scope.$on(\"webhooks:reload\", this.loadWebhooks);\n }\n\n WebhooksController.prototype.loadWebhooks = function() {\n return this.rs.webhooks.list(this.scope.projectId).then((function(_this) {\n return function(webhooks) {\n return _this.scope.webhooks = webhooks;\n };\n })(this));\n };\n\n WebhooksController.prototype.loadProject = function() {\n return this.rs.projects.get(this.scope.projectId).then((function(_this) {\n return function(project) {\n if (!project.i_am_owner) {\n _this.location.path(_this.navUrls.resolve(\"permission-denied\"));\n }\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n return project;\n };\n })(this));\n };\n\n WebhooksController.prototype.loadInitialData = function() {\n var promise;\n promise = this.repo.resolve({\n pslug: this.params.pslug\n }).then((function(_this) {\n return function(data) {\n _this.scope.projectId = data.project;\n return data;\n };\n })(this));\n return promise.then((function(_this) {\n return function() {\n return _this.loadProject();\n };\n })(this)).then((function(_this) {\n return function() {\n return _this.loadWebhooks();\n };\n })(this));\n };\n\n return WebhooksController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin, taiga.FiltersMixin));\n\n module.controller(\"WebhooksController\", WebhooksController);\n\n WebhookDirective = function($rs, $repo, $confirm, $loading) {\n var link;\n link = function($scope, $el, $attrs) {\n var cancel, openHistory, save, showEditMode, showVisualizationMode, updateLogs, updateShowHideHistoryText, webhook;\n webhook = $scope.$eval($attrs.tgWebhook);\n updateLogs = function() {\n return $rs.webhooklogs.list(webhook.id).then((function(_this) {\n return function(webhooklogs) {\n var i, len, log, ref;\n for (i = 0, len = webhooklogs.length; i < len; i++) {\n log = webhooklogs[i];\n log.validStatus = (200 <= (ref = log.status) && ref < 300);\n log.prettySentHeaders = _.map(_.pairs(log.request_headers), function(arg) {\n var header, value;\n header = arg[0], value = arg[1];\n return header + \": \" + value;\n }).join(\"\\n\");\n log.prettySentData = JSON.stringify(log.request_data);\n log.prettyDate = moment(log.created).format(\"DD MMM YYYY [at] hh:mm:ss\");\n }\n webhook.logs_counter = webhooklogs.length;\n webhook.logs = webhooklogs;\n return updateShowHideHistoryText();\n };\n })(this));\n };\n updateShowHideHistoryText = function() {\n var historyElement, textElement;\n textElement = $el.find(\".toggle-history\");\n historyElement = textElement.parents(\".single-webhook-wrapper\").find(\".webhooks-history\");\n if (historyElement.hasClass(\"open\")) {\n return textElement.text(\"(Hide history)\");\n } else {\n return textElement.text(\"(Show history)\");\n }\n };\n showVisualizationMode = function() {\n $el.find(\".edition-mode\").addClass(\"hidden\");\n return $el.find(\".visualization-mode\").removeClass(\"hidden\");\n };\n showEditMode = function() {\n $el.find(\".visualization-mode\").addClass(\"hidden\");\n return $el.find(\".edition-mode\").removeClass(\"hidden\");\n };\n openHistory = function() {\n return $el.find(\".webhooks-history\").addClass(\"open\");\n };\n cancel = function() {\n showVisualizationMode();\n return $scope.$apply(function() {\n return webhook.revert();\n });\n };\n save = debounce(2000, function(target) {\n var form, promise;\n form = target.parents(\"form\").checksley();\n if (!form.validate()) {\n return;\n }\n promise = $repo.save(webhook);\n promise.then((function(_this) {\n return function() {\n return showVisualizationMode();\n };\n })(this));\n return promise.then(null, function(data) {\n $confirm.notify(\"error\");\n return form.setErrors(data);\n });\n });\n $el.on(\"click\", \".test-webhook\", function() {\n openHistory();\n return $rs.webhooks.test(webhook.id).then((function(_this) {\n return function() {\n return updateLogs();\n };\n })(this));\n });\n $el.on(\"click\", \".edit-webhook\", function() {\n return showEditMode();\n });\n $el.on(\"click\", \".cancel-existing\", function() {\n return cancel();\n });\n $el.on(\"click\", \".edit-existing\", function(event) {\n var target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n return save(target);\n });\n $el.on(\"keyup\", \".edition-mode input\", function(event) {\n var target;\n if (event.keyCode === 13) {\n target = angular.element(event.currentTarget);\n return save(target);\n } else if (event.keyCode === 27) {\n target = angular.element(event.currentTarget);\n return cancel(target);\n }\n });\n $el.on(\"click\", \".delete-webhook\", function() {\n var message, title;\n title = \"Delete webhook\";\n message = \"Webhook '\" + webhook.name + \"'\";\n return $confirm.askOnDelete(title, message).then((function(_this) {\n return function(finish) {\n var onError, onSucces;\n onSucces = function() {\n finish();\n return $scope.$emit(\"webhooks:reload\");\n };\n onError = function() {\n finish(false);\n return $confirm.notify(\"error\");\n };\n return $repo.remove(webhook).then(onSucces, onError);\n };\n })(this));\n });\n $el.on(\"click\", \".toggle-history\", function(event) {\n var target;\n target = angular.element(event.currentTarget);\n if ((webhook.logs == null) || webhook.logs.length === 0) {\n return updateLogs().then(function() {\n return timeout(0, function() {\n $el.find(\".webhooks-history\").toggleClass(\"open\");\n return updateShowHideHistoryText();\n });\n });\n } else {\n $el.find(\".webhooks-history\").toggleClass(\"open\");\n return $scope.$apply(function() {\n return updateShowHideHistoryText();\n });\n }\n });\n $el.on(\"click\", \".history-single\", function(event) {\n var target;\n target = angular.element(event.currentTarget);\n target.toggleClass(\"history-single-open\");\n return target.siblings(\".history-single-response\").toggleClass(\"open\");\n });\n return $el.on(\"click\", \".resend-request\", function(event) {\n var log, target;\n target = angular.element(event.currentTarget);\n log = target.data(\"log\");\n return $rs.webhooklogs.resend(log).then((function(_this) {\n return function() {\n return updateLogs();\n };\n })(this));\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgWebhook\", [\"$tgResources\", \"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", WebhookDirective]);\n\n NewWebhookDirective = function($rs, $repo, $confirm, $loading) {\n var link;\n link = function($scope, $el, $attrs) {\n var addWebhookDOMNode, formDOMNode, initializeNewValue, save, webhook;\n webhook = $scope.$eval($attrs.tgWebhook);\n formDOMNode = $el.find(\".new-webhook-form\");\n addWebhookDOMNode = $el.find(\".add-webhook\");\n initializeNewValue = function() {\n return $scope.newValue = {\n \"name\": \"\",\n \"url\": \"\",\n \"key\": \"\"\n };\n };\n initializeNewValue();\n $scope.$watch(\"webhooks\", function(webhooks) {\n if (webhooks != null) {\n if (webhooks.length === 0) {\n formDOMNode.removeClass(\"hidden\");\n addWebhookDOMNode.addClass(\"hidden\");\n return formDOMNode.find(\"input\")[0].focus();\n } else {\n formDOMNode.addClass(\"hidden\");\n return addWebhookDOMNode.removeClass(\"hidden\");\n }\n }\n });\n save = debounce(2000, function() {\n var form, promise;\n form = formDOMNode.checksley();\n if (!form.validate()) {\n return;\n }\n $scope.newValue.project = $scope.project.id;\n promise = $repo.create(\"webhooks\", $scope.newValue);\n promise.then((function(_this) {\n return function() {\n $scope.$emit(\"webhooks:reload\");\n return initializeNewValue();\n };\n })(this));\n return promise.then(null, function(data) {\n $confirm.notify(\"error\");\n return form.setErrors(data);\n });\n });\n formDOMNode.on(\"click\", \".add-new\", function(event) {\n event.preventDefault();\n return save();\n });\n formDOMNode.on(\"keyup\", \"input\", function(event) {\n if (event.keyCode === 13) {\n return save();\n }\n });\n formDOMNode.on(\"click\", \".cancel-new\", function(event) {\n return $scope.$apply(function() {\n return initializeNewValue();\n });\n });\n return addWebhookDOMNode.on(\"click\", function(event) {\n formDOMNode.removeClass(\"hidden\");\n return formDOMNode.find(\"input\")[0].focus();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgNewWebhook\", [\"$tgResources\", \"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", NewWebhookDirective]);\n\n GithubController = (function(superClass) {\n extend(GithubController, superClass);\n\n GithubController.$inject = [\"$scope\", \"$tgRepo\", \"$tgResources\", \"$routeParams\", \"$appTitle\"];\n\n function GithubController(scope, repo, rs, params, appTitle) {\n var promise;\n this.scope = scope;\n this.repo = repo;\n this.rs = rs;\n this.params = params;\n this.appTitle = appTitle;\n bindMethods(this);\n this.scope.sectionName = \"Github\";\n this.scope.project = {};\n promise = this.loadInitialData();\n promise.then((function(_this) {\n return function() {\n return _this.appTitle.set(\"Github - \" + _this.scope.project.name);\n };\n })(this));\n promise.then(null, this.onInitialDataError.bind(this));\n }\n\n GithubController.prototype.loadModules = function() {\n return this.rs.modules.list(this.scope.projectId, \"github\").then((function(_this) {\n return function(github) {\n return _this.scope.github = github;\n };\n })(this));\n };\n\n GithubController.prototype.loadProject = function() {\n return this.rs.projects.get(this.scope.projectId).then((function(_this) {\n return function(project) {\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n return project;\n };\n })(this));\n };\n\n GithubController.prototype.loadInitialData = function() {\n var promise;\n promise = this.repo.resolve({\n pslug: this.params.pslug\n }).then((function(_this) {\n return function(data) {\n _this.scope.projectId = data.project;\n return data;\n };\n })(this));\n return promise.then((function(_this) {\n return function() {\n return _this.loadProject();\n };\n })(this)).then((function(_this) {\n return function() {\n return _this.loadModules();\n };\n })(this));\n };\n\n return GithubController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin, taiga.FiltersMixin));\n\n module.controller(\"GithubController\", GithubController);\n\n GitlabController = (function(superClass) {\n extend(GitlabController, superClass);\n\n GitlabController.$inject = [\"$scope\", \"$tgRepo\", \"$tgResources\", \"$routeParams\", \"$appTitle\"];\n\n function GitlabController(scope, repo, rs, params, appTitle) {\n var promise;\n this.scope = scope;\n this.repo = repo;\n this.rs = rs;\n this.params = params;\n this.appTitle = appTitle;\n bindMethods(this);\n this.scope.sectionName = \"Gitlab\";\n this.scope.project = {};\n promise = this.loadInitialData();\n promise.then((function(_this) {\n return function() {\n return _this.appTitle.set(\"Gitlab - \" + _this.scope.project.name);\n };\n })(this));\n promise.then(null, this.onInitialDataError.bind(this));\n this.scope.$on(\"project:modules:reload\", (function(_this) {\n return function() {\n return _this.loadModules();\n };\n })(this));\n }\n\n GitlabController.prototype.loadModules = function() {\n return this.rs.modules.list(this.scope.projectId, \"gitlab\").then((function(_this) {\n return function(gitlab) {\n return _this.scope.gitlab = gitlab;\n };\n })(this));\n };\n\n GitlabController.prototype.loadProject = function() {\n return this.rs.projects.get(this.scope.projectId).then((function(_this) {\n return function(project) {\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n return project;\n };\n })(this));\n };\n\n GitlabController.prototype.loadInitialData = function() {\n var promise;\n promise = this.repo.resolve({\n pslug: this.params.pslug\n }).then((function(_this) {\n return function(data) {\n _this.scope.projectId = data.project;\n return data;\n };\n })(this));\n return promise.then((function(_this) {\n return function() {\n return _this.loadProject();\n };\n })(this)).then((function(_this) {\n return function() {\n return _this.loadModules();\n };\n })(this));\n };\n\n return GitlabController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin, taiga.FiltersMixin));\n\n module.controller(\"GitlabController\", GitlabController);\n\n BitbucketController = (function(superClass) {\n extend(BitbucketController, superClass);\n\n BitbucketController.$inject = [\"$scope\", \"$tgRepo\", \"$tgResources\", \"$routeParams\", \"$appTitle\"];\n\n function BitbucketController(scope, repo, rs, params, appTitle) {\n var promise;\n this.scope = scope;\n this.repo = repo;\n this.rs = rs;\n this.params = params;\n this.appTitle = appTitle;\n bindMethods(this);\n this.scope.sectionName = \"Bitbucket\";\n this.scope.project = {};\n promise = this.loadInitialData();\n promise.then((function(_this) {\n return function() {\n return _this.appTitle.set(\"Bitbucket - \" + _this.scope.project.name);\n };\n })(this));\n promise.then(null, this.onInitialDataError.bind(this));\n this.scope.$on(\"project:modules:reload\", (function(_this) {\n return function() {\n return _this.loadModules();\n };\n })(this));\n }\n\n BitbucketController.prototype.loadModules = function() {\n return this.rs.modules.list(this.scope.projectId, \"bitbucket\").then((function(_this) {\n return function(bitbucket) {\n return _this.scope.bitbucket = bitbucket;\n };\n })(this));\n };\n\n BitbucketController.prototype.loadProject = function() {\n return this.rs.projects.get(this.scope.projectId).then((function(_this) {\n return function(project) {\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n return project;\n };\n })(this));\n };\n\n BitbucketController.prototype.loadInitialData = function() {\n var promise;\n promise = this.repo.resolve({\n pslug: this.params.pslug\n }).then((function(_this) {\n return function(data) {\n _this.scope.projectId = data.project;\n return data;\n };\n })(this));\n return promise.then((function(_this) {\n return function() {\n return _this.loadProject();\n };\n })(this)).then((function(_this) {\n return function() {\n return _this.loadModules();\n };\n })(this));\n };\n\n return BitbucketController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin, taiga.FiltersMixin));\n\n module.controller(\"BitbucketController\", BitbucketController);\n\n SelectInputText = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return $el.on(\"click\", \".select-input-content\", function() {\n $el.find(\"input\").select();\n return $el.find(\".help-copy\").addClass(\"visible\");\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgSelectInputText\", SelectInputText);\n\n GithubWebhooksDirective = function($repo, $confirm, $loading) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, submit, submitButton;\n form = $el.find(\"form\").checksley({\n \"onlyOneErrorElement\": true\n });\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n $loading.start(submitButton);\n promise = $repo.saveAttribute($scope.github, \"github\");\n promise.then(function() {\n $loading.finish(submitButton);\n return $confirm.notify(\"success\");\n });\n return promise.then(null, function(data) {\n $loading.finish(submitButton);\n form.setErrors(data);\n if (data._error_message) {\n return $confirm.notify(\"error\", data._error_message);\n }\n });\n };\n })(this));\n submitButton = $el.find(\".submit-button\");\n return $el.on(\"submit\", \"form\", submit);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgGithubWebhooks\", [\"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", GithubWebhooksDirective]);\n\n GitlabWebhooksDirective = function($repo, $confirm, $loading) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, submit, submitButton;\n form = $el.find(\"form\").checksley({\n \"onlyOneErrorElement\": true\n });\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n $loading.start(submitButton);\n promise = $repo.saveAttribute($scope.gitlab, \"gitlab\");\n promise.then(function() {\n $loading.finish(submitButton);\n $confirm.notify(\"success\");\n return $scope.$emit(\"project:modules:reload\");\n });\n return promise.then(null, function(data) {\n $loading.finish(submitButton);\n form.setErrors(data);\n if (data._error_message) {\n return $confirm.notify(\"error\", data._error_message);\n }\n });\n };\n })(this));\n submitButton = $el.find(\".submit-button\");\n return $el.on(\"submit\", \"form\", submit);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgGitlabWebhooks\", [\"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", GitlabWebhooksDirective]);\n\n BitbucketWebhooksDirective = function($repo, $confirm, $loading) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, submit, submitButton;\n form = $el.find(\"form\").checksley({\n \"onlyOneErrorElement\": true\n });\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n $loading.start(submitButton);\n promise = $repo.saveAttribute($scope.bitbucket, \"bitbucket\");\n promise.then(function() {\n $loading.finish(submitButton);\n $confirm.notify(\"success\");\n return $scope.$emit(\"project:modules:reload\");\n });\n return promise.then(null, function(data) {\n $loading.finish(submitButton);\n form.setErrors(data);\n if (data._error_message) {\n return $confirm.notify(\"error\", data._error_message);\n }\n });\n };\n })(this));\n submitButton = $el.find(\".submit-button\");\n return $el.on(\"submit\", \"form\", submit);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgBitbucketWebhooks\", [\"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", BitbucketWebhooksDirective]);\n\n ValidOriginIpsDirective = function() {\n var link;\n link = function($scope, $el, $attrs, $ngModel) {\n return $ngModel.$parsers.push(function(value) {\n value = $.trim(value);\n if (value === \"\") {\n return [];\n }\n return value.split(\",\");\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgValidOriginIps\", ValidOriginIpsDirective);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/bind.coffee\n */\n\n(function() {\n var BindHtmlDirective, BindOnceAltDirective, BindOnceBindDirective, BindOnceHrefDirective, BindOnceHtmlDirective, BindOnceRefDirective, BindOnceSrcDirective, BindOnceTitleDirective, BindTitleDirective, bindOnce, module;\n\n bindOnce = this.taiga.bindOnce;\n\n BindOnceBindDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, $attrs.tgBoBind, function(val) {\n return $el.text(val);\n });\n };\n return {\n link: link\n };\n };\n\n BindOnceHtmlDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, $attrs.tgBoHtml, function(val) {\n return $el.html(val);\n });\n };\n return {\n link: link\n };\n };\n\n BindOnceRefDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, $attrs.tgBoRef, function(val) {\n return $el.html(\"#\" + val + \" \");\n });\n };\n return {\n link: link\n };\n };\n\n BindOnceSrcDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, $attrs.tgBoSrc, function(val) {\n return $el.attr(\"src\", val);\n });\n };\n return {\n link: link\n };\n };\n\n BindOnceHrefDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, $attrs.tgBoHref, function(val) {\n return $el.attr(\"href\", val);\n });\n };\n return {\n link: link\n };\n };\n\n BindOnceAltDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, $attrs.tgBoAlt, function(val) {\n return $el.attr(\"alt\", val);\n });\n };\n return {\n link: link\n };\n };\n\n BindOnceTitleDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, $attrs.tgBoTitle, function(val) {\n return $el.attr(\"title\", val);\n });\n };\n return {\n link: link\n };\n };\n\n BindTitleDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return $scope.$watch($attrs.tgTitleHtml, function(val) {\n if (val != null) {\n return $el.attr(\"title\", val);\n }\n });\n };\n return {\n link: link\n };\n };\n\n BindHtmlDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return $scope.$watch($attrs.tgBindHtml, function(val) {\n if (val != null) {\n return $el.html(val);\n }\n });\n };\n return {\n link: link\n };\n };\n\n module = angular.module(\"taigaBase\");\n\n module.directive(\"tgBoBind\", BindOnceBindDirective);\n\n module.directive(\"tgBoHtml\", BindOnceHtmlDirective);\n\n module.directive(\"tgBoRef\", BindOnceRefDirective);\n\n module.directive(\"tgBoSrc\", BindOnceSrcDirective);\n\n module.directive(\"tgBoHref\", BindOnceHrefDirective);\n\n module.directive(\"tgBoAlt\", BindOnceAltDirective);\n\n module.directive(\"tgBoTitle\", BindOnceTitleDirective);\n\n module.directive(\"tgBindTitle\", BindTitleDirective);\n\n module.directive(\"tgBindHtml\", BindHtmlDirective);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/conf.coffee\n */\n\n(function() {\n var ConfigurationService, module;\n\n ConfigurationService = (function() {\n function ConfigurationService() {\n this.config = window.taigaConfig;\n }\n\n ConfigurationService.prototype.get = function(key, defaultValue) {\n if (defaultValue == null) {\n defaultValue = null;\n }\n if (_.has(this.config, key)) {\n return this.config[key];\n }\n return defaultValue;\n };\n\n return ConfigurationService;\n\n })();\n\n module = angular.module(\"taigaBase\");\n\n module.service(\"$tgConfig\", ConfigurationService);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/contrib.coffee\n */\n\n(function() {\n var ContribController, module, taigaContribPlugins,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taigaContribPlugins = this.taigaContribPlugins = this.taigaContribPlugins || [];\n\n ContribController = (function(superClass) {\n extend(ContribController, superClass);\n\n ContribController.$inject = [\"$rootScope\", \"$scope\", \"$routeParams\", \"$tgRepo\", \"$tgResources\", \"$tgConfirm\", \"$appTitle\"];\n\n function ContribController(rootScope, scope, params, repo, rs, confirm, appTitle) {\n var promise;\n this.rootScope = rootScope;\n this.scope = scope;\n this.params = params;\n this.repo = repo;\n this.rs = rs;\n this.confirm = confirm;\n this.appTitle = appTitle;\n this.scope.adminPlugins = _.where(this.rootScope.contribPlugins, {\n \"type\": \"admin\"\n });\n this.scope.currentPlugin = _.first(_.where(this.scope.adminPlugins, {\n \"slug\": this.params.plugin\n }));\n this.scope.pluginTemplate = \"contrib/\" + this.scope.currentPlugin.slug;\n this.scope.projectSlug = this.params.pslug;\n promise = this.loadInitialData();\n promise.then((function(_this) {\n return function() {\n return _this.appTitle.set(_this.scope.project.name);\n };\n })(this));\n promise.then(null, (function(_this) {\n return function() {\n return _this.confirm.notify(\"error\");\n };\n })(this));\n }\n\n ContribController.prototype.loadProject = function() {\n return this.rs.projects.get(this.scope.projectId).then((function(_this) {\n return function(project) {\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n _this.scope.$broadcast('project:loaded', project);\n return project;\n };\n })(this));\n };\n\n ContribController.prototype.loadInitialData = function() {\n var promise;\n promise = this.repo.resolve({\n pslug: this.params.pslug\n }).then((function(_this) {\n return function(data) {\n _this.scope.projectId = data.project;\n return data;\n };\n })(this));\n return promise.then((function(_this) {\n return function() {\n return _this.loadProject();\n };\n })(this));\n };\n\n return ContribController;\n\n })(taiga.Controller);\n\n module = angular.module(\"taigaBase\");\n\n module.controller(\"ContribController\", ContribController);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/http.coffee\n */\n\n(function() {\n var HttpService, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n HttpService = (function(superClass) {\n extend(HttpService, superClass);\n\n HttpService.$inject = [\"$http\", \"$q\", \"$tgStorage\"];\n\n HttpService.prototype.headers = function() {\n var token;\n token = this.storage.get('token');\n if (token) {\n return {\n \"Authorization\": \"Bearer \" + token\n };\n }\n return {};\n };\n\n function HttpService(http, q, storage) {\n this.http = http;\n this.q = q;\n this.storage = storage;\n HttpService.__super__.constructor.call(this);\n }\n\n HttpService.prototype.request = function(options) {\n options.headers = _.merge({}, options.headers || {}, this.headers());\n if (_.isPlainObject(options.data)) {\n options.data = JSON.stringify(options.data);\n }\n return this.http(options);\n };\n\n HttpService.prototype.get = function(url, params, options) {\n options = _.merge({\n method: \"GET\",\n url: url\n }, options);\n if (params) {\n options.params = params;\n }\n return this.request(options);\n };\n\n HttpService.prototype.post = function(url, data, params, options) {\n options = _.merge({\n method: \"POST\",\n url: url\n }, options);\n if (data) {\n options.data = data;\n }\n if (params) {\n options.params = params;\n }\n return this.request(options);\n };\n\n HttpService.prototype.put = function(url, data, params, options) {\n options = _.merge({\n method: \"PUT\",\n url: url\n }, options);\n if (data) {\n options.data = data;\n }\n if (params) {\n options.params = params;\n }\n return this.request(options);\n };\n\n HttpService.prototype.patch = function(url, data, params, options) {\n options = _.merge({\n method: \"PATCH\",\n url: url\n }, options);\n if (data) {\n options.data = data;\n }\n if (params) {\n options.params = params;\n }\n return this.request(options);\n };\n\n HttpService.prototype[\"delete\"] = function(url, data, params, options) {\n options = _.merge({\n method: \"DELETE\",\n url: url\n }, options);\n if (data) {\n options.data = data;\n }\n if (params) {\n options.params = params;\n }\n return this.request(options);\n };\n\n return HttpService;\n\n })(taiga.Service);\n\n module = angular.module(\"taigaBase\");\n\n module.service(\"$tgHttp\", HttpService);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/i18n.coffee\n */\n\n(function() {\n var I18nDirective, I18nService, bindOnce, defaults, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n bindOnce = this.taiga.bindOnce;\n\n defaults = {\n ns: \"app\",\n fallbackLng: \"en\",\n async: false,\n lng: \"en\"\n };\n\n I18nService = (function(superClass) {\n extend(I18nService, superClass);\n\n function I18nService(rootscope, localesEn) {\n this.rootscope = rootscope;\n this.options = _.clone(defaults, true);\n this.options.resStore = {\n en: {\n app: localesEn\n }\n };\n }\n\n I18nService.prototype.setLanguage = function(language) {\n i18n.setLng(language);\n this.rootscope.currentLang = language;\n return this.rootscope.$broadcast(\"i18n:changeLang\", language);\n };\n\n I18nService.prototype.initialize = function() {\n i18n.init(this.options);\n return this.rootscope.t = i18n.t;\n };\n\n I18nService.prototype.t = function(path, opts) {\n return i18n.t(path, opts);\n };\n\n return I18nService;\n\n })(taiga.Service);\n\n I18nDirective = function($rootscope, $i18n) {\n var link;\n link = function($scope, $el, $attrs) {\n var i, len, ns, options, opts, ref, results, v, values;\n values = $attrs.tr.split(\",\");\n options = $attrs.trOpts || '{}';\n opts = $scope.$eval(options);\n results = [];\n for (i = 0, len = values.length; i < len; i++) {\n v = values[i];\n if (v.indexOf(\":\") === -1) {\n results.push($el.html(_.escape($i18n.t(v, opts))));\n } else {\n ref = v.split(\":\"), ns = ref[0], v = ref[1];\n results.push($el.attr(ns, _.escape($i18n.t(v, opts))));\n }\n }\n return results;\n };\n return {\n link: link,\n restrict: \"A\",\n scope: false\n };\n };\n\n module = angular.module(\"taigaBase\");\n\n module.service(\"$tgI18n\", [\"$rootScope\", \"localesEn\", I18nService]);\n\n module.directive(\"tr\", [\"$rootScope\", \"$tgI18n\", I18nDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/location.coffee\n */\n\n(function() {\n var locationFactory, module;\n\n locationFactory = function($location, $route, $rootscope) {\n $location.noreload = function(scope) {\n var lastRoute, un;\n lastRoute = $route.current;\n un = scope.$on(\"$locationChangeSuccess\", function() {\n $route.current = lastRoute;\n return un();\n });\n return $location;\n };\n $location.isInCurrentRouteParams = function(name, value) {\n var params;\n params = _.merge($route.current.params, $location.search());\n return params[name] === value;\n };\n return $location;\n };\n\n module = angular.module(\"taigaBase\");\n\n module.factory(\"$tgLocation\", [\"$location\", \"$route\", \"$rootScope\", locationFactory]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/model.coffee\n */\n\n(function() {\n var Model, ModelService, module, provider, taiga,\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n Model = (function() {\n function Model(name, data, dataTypes) {\n this._attrs = data;\n this._name = name;\n this._dataTypes = dataTypes;\n this.setAttrs(data);\n this.initialize();\n }\n\n Model.prototype.clone = function() {\n var instance;\n instance = new Model(this._name, this._attrs, this._dataTypes);\n instance._modifiedAttrs = this._modifiedAttrs;\n instance._isModified = this._isModified;\n return instance;\n };\n\n Model.prototype.applyCasts = function() {\n var attrName, castMethod, castName, ref, results;\n ref = this._dataTypes;\n results = [];\n for (attrName in ref) {\n castName = ref[attrName];\n castMethod = service.casts[castName];\n if (!castMethod) {\n continue;\n }\n results.push(this._attrs[attrName] = castMethod(this._attrs[attrName]));\n }\n return results;\n };\n\n Model.prototype.getIdAttrName = function() {\n return \"id\";\n };\n\n Model.prototype.getName = function() {\n return this._name;\n };\n\n Model.prototype.getAttrs = function(patch) {\n if (patch == null) {\n patch = false;\n }\n if (this._attrs.version != null) {\n this._modifiedAttrs.version = this._attrs.version;\n }\n if (patch) {\n return _.extend({}, this._modifiedAttrs);\n }\n return _.extend({}, this._attrs, this._modifiedAttrs);\n };\n\n Model.prototype.setAttrs = function(attrs) {\n this._attrs = attrs;\n this._modifiedAttrs = {};\n this.applyCasts();\n return this._isModified = false;\n };\n\n Model.prototype.setAttr = function(name, value) {\n this._modifiedAttrs[name] = value;\n return this._isModified = true;\n };\n\n Model.prototype.initialize = function() {\n var getter, self, setter;\n self = this;\n getter = function(name) {\n return function() {\n if (typeof name === 'string' && name.substr(0, 2) === \"__\") {\n return self[name];\n }\n if (indexOf.call(_.keys(self._modifiedAttrs), name) < 0) {\n return self._attrs[name];\n }\n return self._modifiedAttrs[name];\n };\n };\n setter = function(name) {\n return function(value) {\n if (typeof name === 'string' && name.substr(0, 2) === \"__\") {\n self[name] = value;\n return;\n }\n if (self._attrs[name] !== value) {\n self._modifiedAttrs[name] = value;\n self._isModified = true;\n } else {\n delete self._modifiedAttrs[name];\n }\n };\n };\n return _.each(this._attrs, function(value, name) {\n var options;\n options = {\n get: getter(name),\n set: setter(name),\n enumerable: true,\n configurable: true\n };\n return Object.defineProperty(self, name, options);\n });\n };\n\n Model.prototype.serialize = function() {\n var data;\n data = {\n \"data\": _.clone(this._attrs),\n \"name\": this._name\n };\n return JSON.stringify(data);\n };\n\n Model.prototype.isModified = function() {\n return this._isModified;\n };\n\n Model.prototype.isAttributeModified = function(attribute) {\n return this._modifiedAttrs[attribute] != null;\n };\n\n Model.prototype.markSaved = function() {\n this._isModified = false;\n this._attrs = this.getAttrs();\n return this._modifiedAttrs = {};\n };\n\n Model.prototype.revert = function() {\n this._modifiedAttrs = {};\n return this._isModified = false;\n };\n\n Model.desSerialize = function(sdata) {\n var ddata, model;\n ddata = JSON.parse(sdata);\n model = new Model(ddata.url, ddata.data);\n return model;\n };\n\n return Model;\n\n })();\n\n taiga = this.taiga;\n\n ModelService = (function(superClass) {\n extend(ModelService, superClass);\n\n ModelService.$inject = [\"$q\", \"$tgUrls\", \"$tgStorage\", \"$tgHttp\"];\n\n function ModelService(q, urls, storage, http) {\n this.q = q;\n this.urls = urls;\n this.storage = storage;\n this.http = http;\n ModelService.__super__.constructor.call(this);\n }\n\n return ModelService;\n\n })(taiga.Service);\n\n provider = function($q, $http, $gmUrls, $gmStorage) {\n var service;\n service = {};\n service.make_model = function(name, data, cls, dataTypes) {\n if (cls == null) {\n cls = Model;\n }\n if (dataTypes == null) {\n dataTypes = {};\n }\n return new cls(name, data, dataTypes);\n };\n service.cls = Model;\n service.casts = {\n int: function(value) {\n return parseInt(value, 10);\n },\n float: function(value) {\n return parseFloat(value, 10);\n }\n };\n return service;\n };\n\n module = angular.module(\"taigaBase\");\n\n module.factory(\"$tgModel\", [\"$q\", \"$http\", \"$tgUrls\", \"$tgStorage\", provider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/navurl.coffee\n */\n\n(function() {\n var NavigationUrlsDirective, NavigationUrlsService, bindOnce, module, taiga, trim,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n trim = this.taiga.trim;\n\n bindOnce = this.taiga.bindOnce;\n\n module = angular.module(\"taigaBase\");\n\n NavigationUrlsService = (function(superClass) {\n extend(NavigationUrlsService, superClass);\n\n function NavigationUrlsService() {\n this.urls = {};\n }\n\n NavigationUrlsService.prototype.update = function(urls) {\n return this.urls = _.merge({}, this.urls, urls || {});\n };\n\n NavigationUrlsService.prototype.formatUrl = function(url, ctx) {\n var replacer;\n if (ctx == null) {\n ctx = {};\n }\n replacer = function(match) {\n match = trim(match, \":\");\n return ctx[match] || \"undefined\";\n };\n return url.replace(/(:\\w+)/g, replacer);\n };\n\n NavigationUrlsService.prototype.resolve = function(name, ctx) {\n var url;\n url = this.urls[name];\n if (!url) {\n return \"\";\n }\n if (ctx) {\n return this.formatUrl(url, ctx);\n }\n return url;\n };\n\n return NavigationUrlsService;\n\n })(taiga.Service);\n\n module.service(\"$tgNavUrls\", NavigationUrlsService);\n\n NavigationUrlsDirective = function($navurls, $auth, $q, $location) {\n var bindOnceP, link, parseNav;\n bindOnceP = function($scope, attr) {\n var defered;\n defered = $q.defer();\n bindOnce($scope, attr, function(v) {\n return defered.resolve(v);\n });\n return defered.promise;\n };\n parseNav = function(data, $scope) {\n var name, params, promises, ref, values;\n ref = _.map(data.split(\":\"), trim), name = ref[0], params = ref[1];\n if (params) {\n params = _.map(params.split(\",\"), trim);\n } else {\n params = [];\n }\n values = _.map(params, function(x) {\n return trim(x.split(\"=\")[1]);\n });\n promises = _.map(values, function(x) {\n return bindOnceP($scope, x);\n });\n return $q.all(promises).then(function() {\n var i, item, key, len, options, ref1, value;\n options = {};\n for (i = 0, len = params.length; i < len; i++) {\n item = params[i];\n ref1 = _.map(item.split(\"=\"), trim), key = ref1[0], value = ref1[1];\n options[key] = $scope.$eval(value);\n }\n return [name, options];\n });\n };\n link = function($scope, $el, $attrs) {\n if ($el.is(\"a\")) {\n $el.attr(\"href\", \"#\");\n }\n $el.on(\"mouseenter\", function(event) {\n var target;\n target = $(event.currentTarget);\n if (!target.data(\"fullUrl\")) {\n return parseNav($attrs.tgNav, $scope).then(function(result) {\n var fullUrl, getURLParams, getURLParamsStr, name, options, url, user;\n name = result[0], options = result[1];\n user = $auth.getUser();\n if (user) {\n options.user = user.username;\n }\n url = $navurls.resolve(name);\n fullUrl = $navurls.formatUrl(url, options);\n if ($attrs.tgNavGetParams) {\n getURLParams = JSON.parse($attrs.tgNavGetParams);\n getURLParamsStr = $.param(getURLParams);\n fullUrl = fullUrl + \"?\" + getURLParamsStr;\n }\n target.data(\"fullUrl\", fullUrl);\n if (target.is(\"a\")) {\n target.attr(\"href\", fullUrl);\n }\n return $el.on(\"click\", function(event) {\n event.preventDefault();\n target = $(event.currentTarget);\n if (target.hasClass('noclick')) {\n return;\n }\n fullUrl = target.data(\"fullUrl\");\n switch (event.which) {\n case 1:\n $location.url(fullUrl);\n return $scope.$apply();\n case 2:\n return window.open(fullUrl);\n }\n });\n });\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgNav\", [\"$tgNavUrls\", \"$tgAuth\", \"$q\", \"$tgLocation\", NavigationUrlsDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/repository.coffee\n */\n\n(function() {\n var RepositoryService, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n RepositoryService = (function(superClass) {\n extend(RepositoryService, superClass);\n\n RepositoryService.$inject = [\"$q\", \"$tgModel\", \"$tgStorage\", \"$tgHttp\", \"$tgUrls\"];\n\n function RepositoryService(q, model1, storage, http, urls) {\n this.q = q;\n this.model = model1;\n this.storage = storage;\n this.http = http;\n this.urls = urls;\n RepositoryService.__super__.constructor.call(this);\n }\n\n RepositoryService.prototype.resolveUrlForModel = function(model) {\n var idAttrName;\n idAttrName = model.getIdAttrName();\n return (this.urls.resolve(model.getName())) + \"/\" + model[idAttrName];\n };\n\n RepositoryService.prototype.resolveUrlForAttributeModel = function(model) {\n return this.urls.resolve(model.getName(), model.parent);\n };\n\n RepositoryService.prototype.create = function(name, data, dataTypes, extraParams) {\n var defered, promise, url;\n if (dataTypes == null) {\n dataTypes = {};\n }\n if (extraParams == null) {\n extraParams = {};\n }\n defered = this.q.defer();\n url = this.urls.resolve(name);\n promise = this.http.post(url, JSON.stringify(data));\n promise.success((function(_this) {\n return function(_data, _status) {\n return defered.resolve(_this.model.make_model(name, _data, null, dataTypes));\n };\n })(this));\n promise.error((function(_this) {\n return function(data, status) {\n return defered.reject(data);\n };\n })(this));\n return defered.promise;\n };\n\n RepositoryService.prototype.remove = function(model, params) {\n var defered, promise, url;\n if (params == null) {\n params = {};\n }\n defered = this.q.defer();\n url = this.resolveUrlForModel(model);\n promise = this.http[\"delete\"](url, {}, params);\n promise.success(function(data, status) {\n return defered.resolve(model);\n });\n promise.error(function(data, status) {\n return defered.reject(model);\n });\n return defered.promise;\n };\n\n RepositoryService.prototype.saveAll = function(models, patch) {\n var promises;\n if (patch == null) {\n patch = true;\n }\n promises = _.map(models, (function(_this) {\n return function(x) {\n return _this.save(x, true);\n };\n })(this));\n return this.q.all(promises);\n };\n\n RepositoryService.prototype.save = function(model, patch) {\n var data, defered, promise, url;\n if (patch == null) {\n patch = true;\n }\n defered = this.q.defer();\n if (!model.isModified() && patch) {\n defered.resolve(model);\n return defered.promise;\n }\n url = this.resolveUrlForModel(model);\n data = JSON.stringify(model.getAttrs(patch));\n if (patch) {\n promise = this.http.patch(url, data);\n } else {\n promise = this.http.put(url, data);\n }\n promise.success((function(_this) {\n return function(data, status) {\n model._isModified = false;\n model._attrs = _.extend(model.getAttrs(), data);\n model._modifiedAttrs = {};\n model.applyCasts();\n return defered.resolve(model);\n };\n })(this));\n promise.error(function(data, status) {\n return defered.reject(data);\n });\n return defered.promise;\n };\n\n RepositoryService.prototype.saveAttribute = function(model, attribute, patch) {\n var data, defered, promise, url;\n if (patch == null) {\n patch = true;\n }\n defered = this.q.defer();\n if (!model.isModified() && patch) {\n defered.resolve(model);\n return defered.promise;\n }\n url = this.resolveUrlForAttributeModel(model);\n data = {};\n data[attribute] = model.getAttrs();\n if (patch) {\n promise = this.http.patch(url, data);\n } else {\n promise = this.http.put(url, data);\n }\n promise.success((function(_this) {\n return function(data, status) {\n model._isModified = false;\n model._attrs = _.extend(model.getAttrs(), data);\n model._modifiedAttrs = {};\n model.applyCasts();\n return defered.resolve(model);\n };\n })(this));\n promise.error(function(data, status) {\n return defered.reject(data);\n });\n return defered.promise;\n };\n\n RepositoryService.prototype.refresh = function(model) {\n var defered, promise, url;\n defered = this.q.defer();\n url = this.resolveUrlForModel(model);\n promise = this.http.get(url);\n promise.success(function(data, status) {\n model._modifiedAttrs = {};\n model._attrs = data;\n model._isModified = false;\n model.applyCasts();\n return defered.resolve(model);\n });\n promise.error(function(data, status) {\n return defered.reject(data);\n });\n return defered.promise;\n };\n\n RepositoryService.prototype.queryMany = function(name, params, options) {\n var httpOptions, url;\n if (options == null) {\n options = {};\n }\n url = this.urls.resolve(name);\n httpOptions = {\n headers: {}\n };\n if (!options.enablePagination) {\n httpOptions.headers[\"x-disable-pagination\"] = \"1\";\n }\n return this.http.get(url, params, httpOptions).then((function(_this) {\n return function(data) {\n return _.map(data.data, function(x) {\n return _this.model.make_model(name, x);\n });\n };\n })(this));\n };\n\n RepositoryService.prototype.queryOneAttribute = function(name, id, attribute, params, options) {\n var httpOptions, url;\n if (options == null) {\n options = {};\n }\n url = this.urls.resolve(name, id);\n httpOptions = {\n headers: {}\n };\n if (!options.enablePagination) {\n httpOptions.headers[\"x-disable-pagination\"] = \"1\";\n }\n return this.http.get(url, params, httpOptions).then((function(_this) {\n return function(data) {\n var model;\n model = _this.model.make_model(name, data.data[attribute]);\n model.parent = id;\n return model;\n };\n })(this));\n };\n\n RepositoryService.prototype.queryOne = function(name, id, params, options) {\n var httpOptions, url;\n if (options == null) {\n options = {};\n }\n url = this.urls.resolve(name);\n if (id) {\n url = url + \"/\" + id;\n }\n httpOptions = {\n headers: {}\n };\n if (!options.enablePagination) {\n httpOptions.headers[\"x-disable-pagination\"] = \"1\";\n }\n return this.http.get(url, params, httpOptions).then((function(_this) {\n return function(data) {\n return _this.model.make_model(name, data.data);\n };\n })(this));\n };\n\n RepositoryService.prototype.queryOneRaw = function(name, id, params, options) {\n var httpOptions, url;\n if (options == null) {\n options = {};\n }\n url = this.urls.resolve(name);\n if (id) {\n url = url + \"/\" + id;\n }\n httpOptions = _.merge({\n headers: {}\n }, options);\n if (!options.enablePagination) {\n httpOptions.headers[\"x-disable-pagination\"] = \"1\";\n }\n return this.http.get(url, params, httpOptions).then((function(_this) {\n return function(data) {\n return data.data;\n };\n })(this));\n };\n\n RepositoryService.prototype.queryPaginated = function(name, params, options) {\n var httpOptions, url;\n if (options == null) {\n options = {};\n }\n url = this.urls.resolve(name);\n httpOptions = _.merge({\n headers: {}\n }, options);\n return this.http.get(url, params, httpOptions).then((function(_this) {\n return function(data) {\n var headers, result;\n headers = data.headers();\n result = {};\n result.models = _.map(data.data, function(x) {\n return _this.model.make_model(name, x);\n });\n result.count = parseInt(headers[\"x-pagination-count\"], 10);\n result.current = parseInt(headers[\"x-pagination-current\"] || 1, 10);\n result.paginatedBy = parseInt(headers[\"x-paginated-by\"], 10);\n return result;\n };\n })(this));\n };\n\n RepositoryService.prototype.resolve = function(options) {\n var cache, params;\n params = {};\n if (options.pslug != null) {\n params.project = options.pslug;\n }\n if (options.usref != null) {\n params.us = options.usref;\n }\n if (options.taskref != null) {\n params.task = options.taskref;\n }\n if (options.issueref != null) {\n params.issue = options.issueref;\n }\n if (options.sslug != null) {\n params.milestone = options.sslug;\n }\n if (options.wikipage != null) {\n params.wikipage = options.wikipage;\n }\n cache = !(options.wikipage || options.sslug);\n return this.queryOneRaw(\"resolver\", null, params, {\n cache: cache\n });\n };\n\n return RepositoryService;\n\n })(taiga.Service);\n\n module = angular.module(\"taigaBase\");\n\n module.service(\"$tgRepo\", RepositoryService);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/storage.coffee\n */\n\n(function() {\n var StorageService, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n StorageService = (function(superClass) {\n extend(StorageService, superClass);\n\n StorageService.$inject = [\"$rootScope\"];\n\n function StorageService($rootScope) {\n StorageService.__super__.constructor.call(this);\n }\n\n StorageService.prototype.get = function(key, _default) {\n var serializedValue;\n serializedValue = localStorage.getItem(key);\n if (serializedValue === null) {\n return _default || null;\n }\n return JSON.parse(serializedValue);\n };\n\n StorageService.prototype.set = function(key, val) {\n if (_.isObject(key)) {\n return _.each(key, (function(_this) {\n return function(val, key) {\n return _this.set(key, val);\n };\n })(this));\n } else {\n return localStorage.setItem(key, JSON.stringify(val));\n }\n };\n\n StorageService.prototype.contains = function(key) {\n var value;\n value = this.get(key);\n return value !== null;\n };\n\n StorageService.prototype.remove = function(key) {\n return localStorage.removeItem(key);\n };\n\n StorageService.prototype.clear = function() {\n return localStorage.clear();\n };\n\n return StorageService;\n\n })(taiga.Service);\n\n module = angular.module(\"taigaBase\");\n\n module.service(\"$tgStorage\", StorageService);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/base/http.coffee\n */\n\n(function() {\n var UrlsService, format, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n format = function(fmt, obj) {\n obj = _.clone(obj);\n return fmt.replace(/%s/g, function(match) {\n return String(obj.shift());\n });\n };\n\n taiga = this.taiga;\n\n UrlsService = (function(superClass) {\n extend(UrlsService, superClass);\n\n UrlsService.$inject = [\"$tgConfig\"];\n\n function UrlsService(config) {\n this.config = config;\n this.urls = {};\n this.mainUrl = this.config.get(\"api\");\n }\n\n UrlsService.prototype.update = function(urls) {\n return this.urls = _.merge(this.urls, urls);\n };\n\n UrlsService.prototype.resolve = function() {\n var args, name, url;\n args = _.toArray(arguments);\n if (args.length === 0) {\n throw Error(\"wrong arguments to setUrls\");\n }\n name = args.slice(0, 1)[0];\n url = format(this.urls[name], args.slice(1));\n return format(\"%s/%s\", [_.str.rtrim(this.mainUrl, \"/\"), _.str.ltrim(url, \"/\")]);\n };\n\n UrlsService.prototype.resolveAbsolute = function() {\n var url;\n url = this.resolve.apply(this, arguments);\n if (/^https?:\\/\\//i.test(url)) {\n return url;\n }\n if (/^\\//.test(url)) {\n return window.location.protocol + \"//\" + window.location.host + url;\n }\n return window.location.protocol + \"//\" + window.location.host + \"/\" + url;\n };\n\n return UrlsService;\n\n })(taiga.Service);\n\n module = angular.module(\"taigaBase\");\n\n module.service('$tgUrls', UrlsService);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/custom-field-values.coffee\n */\n\n(function() {\n var module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n resourceProvider = function($repo) {\n var _get, service;\n _get = function(objectId, resource) {\n return $repo.queryOne(resource, objectId);\n };\n service = {\n userstory: {\n get: function(objectId) {\n return _get(objectId, \"custom-attributes-values/userstory\");\n }\n },\n task: {\n get: function(objectId) {\n return _get(objectId, \"custom-attributes-values/task\");\n }\n },\n issue: {\n get: function(objectId) {\n return _get(objectId, \"custom-attributes-values/issue\");\n }\n }\n };\n return function(instance) {\n return instance.customAttributesValues = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgCustomAttributesValuesResourcesProvider\", [\"$tgRepo\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/projects.coffee\n */\n\n(function() {\n var module, resourceProvider, sizeFormat, taiga;\n\n taiga = this.taiga;\n\n sizeFormat = this.taiga.sizeFormat;\n\n resourceProvider = function($repo) {\n var _list, service;\n _list = function(projectId, resource) {\n return $repo.queryMany(resource, {\n project: projectId\n });\n };\n service = {\n userstory: {\n list: function(projectId) {\n return _list(projectId, \"custom-attributes/userstory\");\n }\n },\n task: {\n list: function(projectId) {\n return _list(projectId, \"custom-attributes/task\");\n }\n },\n issue: {\n list: function(projectId) {\n return _list(projectId, \"custom-attributes/issue\");\n }\n }\n };\n return function(instance) {\n return instance.customAttributes = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgCustomAttributesResourcesProvider\", [\"$tgRepo\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/projects.coffee\n */\n\n(function() {\n var module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n resourceProvider = function($repo) {\n var service;\n service = {};\n service.get = function(token) {\n return $repo.queryOne(\"invitations\", token);\n };\n return function(instance) {\n return instance.invitations = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgInvitationsResourcesProvider\", [\"$tgRepo\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/mdrender.coffee\n */\n\n(function() {\n var module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n resourceProvider = function($repo, $urls, $http) {\n var service;\n service = {};\n service.render = function(projectId, content) {\n var params, url;\n if ((content == null) || content === \"\") {\n content = ' ';\n }\n params = {\n project_id: projectId,\n content: content\n };\n url = $urls.resolve(\"wiki\");\n return $http.post(url + \"/render\", params).then((function(_this) {\n return function(data) {\n return data.data;\n };\n })(this));\n };\n return function(instance) {\n return instance.mdrender = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgMdRenderResourcesProvider\", [\"$tgRepo\", \"$tgUrls\", \"$tgHttp\", resourceProvider]);\n\n}).call(this);\n","(function() {\n var module, resourceProvider;\n\n resourceProvider = function($repo) {\n var service;\n service = {};\n service.list = function(projectId, module) {\n return $repo.queryOneAttribute(\"project-modules\", projectId, module);\n };\n return function(instance) {\n return instance.modules = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgModulesResourcesProvider\", [\"$tgRepo\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/resources/memberships.coffee\n */\n\n(function() {\n var module, resourceProvider, taiga;\n\n taiga = this.taiga;\n\n resourceProvider = function($repo, $http, $urls) {\n var service;\n service = {};\n service.get = function(id) {\n return $repo.queryOne(\"notify-policies\", id);\n };\n service.list = function(filters) {\n var params;\n params = _.extend({}, params, filters || {});\n return $repo.queryMany(\"notify-policies\", params);\n };\n return function(instance) {\n return instance.notifyPolicies = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgNotifyPoliciesResourcesProvider\", [\"$tgRepo\", \"$tgHttp\", \"$tgUrls\", resourceProvider]);\n\n}).call(this);\n","(function() {\n var module, resourceProvider;\n\n resourceProvider = function($repo, $urls, $http) {\n var service;\n service = {};\n service.list = function(webhookId) {\n var params;\n params = {\n webhook: webhookId\n };\n return $repo.queryMany(\"webhooklogs\", params);\n };\n service.resend = function(webhooklogId) {\n var url;\n url = $urls.resolve(\"webhooklogs-resend\", webhooklogId);\n return $http.post(url);\n };\n return function(instance) {\n return instance.webhooklogs = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgWebhookLogsResourcesProvider\", [\"$tgRepo\", \"$tgUrls\", \"$tgHttp\", resourceProvider]);\n\n}).call(this);\n","(function() {\n var module, resourceProvider;\n\n resourceProvider = function($repo, $urls, $http) {\n var service;\n service = {};\n service.list = function(projectId) {\n var params;\n params = {\n project: projectId\n };\n return $repo.queryMany(\"webhooks\", params);\n };\n service.test = function(webhookId) {\n var url;\n url = $urls.resolve(\"webhooks-test\", webhookId);\n return $http.post(url);\n };\n return function(instance) {\n return instance.webhooks = service;\n };\n };\n\n module = angular.module(\"taigaResources\");\n\n module.factory(\"$tgWebhooksResourcesProvider\", [\"$tgRepo\", \"$tgUrls\", \"$tgHttp\", resourceProvider]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/user-settings/main.coffee\n */\n\n(function() {\n var UserChangePasswordController, UserChangePasswordDirective, debounce, mixOf, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n mixOf = this.taiga.mixOf;\n\n debounce = this.taiga.debounce;\n\n module = angular.module(\"taigaUserSettings\");\n\n UserChangePasswordController = (function(superClass) {\n extend(UserChangePasswordController, superClass);\n\n UserChangePasswordController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgResources\", \"$routeParams\", \"$q\", \"$tgLocation\", \"$tgNavUrls\", \"$tgAuth\"];\n\n function UserChangePasswordController(scope, rootscope, repo, confirm, rs, params, q, location, navUrls, auth) {\n var promise;\n this.scope = scope;\n this.rootscope = rootscope;\n this.repo = repo;\n this.confirm = confirm;\n this.rs = rs;\n this.params = params;\n this.q = q;\n this.location = location;\n this.navUrls = navUrls;\n this.auth = auth;\n this.scope.sectionName = \"Change Password\";\n this.scope.project = {};\n this.scope.user = this.auth.getUser();\n promise = this.loadInitialData();\n promise.then(null, this.onInitialDataError.bind(this));\n }\n\n UserChangePasswordController.prototype.loadProject = function() {\n return this.rs.projects.get(this.scope.projectId).then((function(_this) {\n return function(project) {\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n return project;\n };\n })(this));\n };\n\n UserChangePasswordController.prototype.loadInitialData = function() {\n var promise;\n promise = this.repo.resolve({\n pslug: this.params.pslug\n }).then((function(_this) {\n return function(data) {\n _this.scope.projectId = data.project;\n return data;\n };\n })(this));\n return promise.then((function(_this) {\n return function() {\n return _this.loadProject();\n };\n })(this));\n };\n\n return UserChangePasswordController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin));\n\n module.controller(\"UserChangePasswordController\", UserChangePasswordController);\n\n UserChangePasswordDirective = function($rs, $confirm, $loading) {\n var link;\n link = function($scope, $el, $attrs, ctrl) {\n var submit, submitButton;\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if ($scope.newPassword1 !== $scope.newPassword2) {\n $confirm.notify('error', \"The passwords dosn't match\");\n return;\n }\n $loading.start(submitButton);\n promise = $rs.userSettings.changePassword($scope.currentPassword, $scope.newPassword1);\n promise.then(function() {\n $loading.finish(submitButton);\n return $confirm.notify('success');\n });\n return promise.then(null, function(response) {\n $loading.finish(submitButton);\n return $confirm.notify('error', response.data._error_message);\n });\n };\n })(this));\n submitButton = $el.find(\".submit-button\");\n $el.on(\"submit\", \"form\", submit);\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgUserChangePassword\", [\"$tgResources\", \"$tgConfirm\", \"$tgLoading\", UserChangePasswordDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: modules/user-settings/notifications.coffee\n */\n\n(function() {\n var UserNotificationsController, UserNotificationsDirective, UserNotificationsListDirective, bindOnce, mixOf, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n mixOf = this.taiga.mixOf;\n\n bindOnce = this.taiga.bindOnce;\n\n module = angular.module(\"taigaUserSettings\");\n\n UserNotificationsController = (function(superClass) {\n extend(UserNotificationsController, superClass);\n\n UserNotificationsController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgResources\", \"$routeParams\", \"$q\", \"$tgLocation\", \"$tgNavUrls\", \"$tgAuth\"];\n\n function UserNotificationsController(scope, rootscope, repo, confirm, rs, params, q, location, navUrls, auth) {\n var promise;\n this.scope = scope;\n this.rootscope = rootscope;\n this.repo = repo;\n this.confirm = confirm;\n this.rs = rs;\n this.params = params;\n this.q = q;\n this.location = location;\n this.navUrls = navUrls;\n this.auth = auth;\n this.scope.sectionName = \"Email Notifications\";\n this.scope.project = {};\n this.scope.user = this.auth.getUser();\n promise = this.loadInitialData();\n promise.then(null, this.onInitialDataError.bind(this));\n }\n\n UserNotificationsController.prototype.loadProject = function() {\n return this.rs.projects.get(this.scope.projectId).then((function(_this) {\n return function(project) {\n _this.scope.project = project;\n _this.scope.$emit('project:loaded', project);\n return project;\n };\n })(this));\n };\n\n UserNotificationsController.prototype.loadNotifyPolicies = function() {\n return this.rs.notifyPolicies.list().then((function(_this) {\n return function(notifyPolicies) {\n _this.scope.notifyPolicies = notifyPolicies;\n return notifyPolicies;\n };\n })(this));\n };\n\n UserNotificationsController.prototype.loadInitialData = function() {\n var promise;\n promise = this.repo.resolve({\n pslug: this.params.pslug\n }).then((function(_this) {\n return function(data) {\n _this.scope.projectId = data.project;\n return data;\n };\n })(this));\n return promise.then((function(_this) {\n return function() {\n return _this.loadProject();\n };\n })(this)).then((function(_this) {\n return function() {\n return _this.loadNotifyPolicies();\n };\n })(this));\n };\n\n return UserNotificationsController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin));\n\n module.controller(\"UserNotificationsController\", UserNotificationsController);\n\n UserNotificationsDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgUserNotifications\", UserNotificationsDirective);\n\n UserNotificationsListDirective = function($repo, $confirm) {\n var link, template;\n template = _.template(\"<% _.each(notifyPolicies, function (notifyPolicy, index) { %>\\n
\\\">\\n
<%- notifyPolicy.project_name %>
\\n
\\n
\\n \\\" id=\\\"policy-all-<%- notifyPolicy.id %>\\\"\\n value=\\\"2\\\" <% if (notifyPolicy.notify_level == 2) { %>checked=\\\"checked\\\"<% } %>/>\\n \\n
\\n
\\n
\\n
\\n \\\" id=\\\"policy-involved-<%- notifyPolicy.id %>\\\"\\n value=\\\"1\\\" <% if (notifyPolicy.notify_level == 1) { %>checked=\\\"checked\\\"<% } %> />\\n \\n
\\n
\\n
\\n
\\n \\\" id=\\\"policy-none-<%- notifyPolicy.id %>\\\"\\n value=\\\"3\\\" <% if (notifyPolicy.notify_level == 3) { %>checked=\\\"checked\\\"<% } %> />\\n \\n
\\n
\\n
\\n<% }) %>\");\n link = function($scope, $el, $attrs) {\n var render;\n render = function() {\n $el.off();\n $el.html(template({\n notifyPolicies: $scope.notifyPolicies\n }));\n return $el.on(\"change\", \"input[type=radio]\", function(event) {\n var onError, onSuccess, policy, policyIndex, prev_level, target;\n target = angular.element(event.currentTarget);\n policyIndex = target.parents(\".policy-table-row\").data('index');\n policy = $scope.notifyPolicies[policyIndex];\n prev_level = policy.notify_level;\n policy.notify_level = parseInt(target.val(), 10);\n onSuccess = function() {\n return $confirm.notify(\"success\");\n };\n onError = function() {\n $confirm.notify(\"error\");\n return target.parents(\".policy-table-row\").find(\"input[value=\" + prev_level + \"]\").prop(\"checked\", true);\n };\n return $repo.save(policy).then(onSuccess, onError);\n });\n };\n $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n return bindOnce($scope, $attrs.ngModel, render);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgUserNotificationsList\", [\"$tgRepo\", \"$tgConfirm\", UserNotificationsListDirective]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: plugins/humanshtml/humanshtml.coffee\n */\n\n(function() {\n var configure, module, taiga;\n\n taiga = this.taiga;\n\n module = angular.module(\"taigaPlugins\");\n\n configure = function($routeProvider) {\n return $routeProvider.when(\"/humans.html\", {\n \"templateUrl\": \"/plugins/humanshtml/templates/humans.html\"\n });\n };\n\n module.config([\"$routeProvider\", configure]);\n\n}).call(this);\n","\n/*\n * Copyright (C) 2014 Andrey Antukh \n * Copyright (C) 2014 Jesús Espino Garcia \n * Copyright (C) 2014 David Barragán Merino \n#\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n#\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n#\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n#\n * File: plugins/terms/terms.coffee\n */\n\n(function() {\n var TermsNoticeDirective, module, taiga, template;\n\n taiga = this.taiga;\n\n module = angular.module(\"taigaPlugins\");\n\n template = _.template(\"

\\n By clicking \\\"Sign up\\\", you agree to our
\\n
\\\" title=\\\"See terms of service\\\" target=\\\"_blank\\\"> terms of service\\n and\\n \\\" title=\\\"See privacy policy\\\" target=\\\"_blank\\\"> privacy policy.\\n

\");\n\n TermsNoticeDirective = function($config) {\n var privacyPolicyUrl, templateFn, termsOfServiceUrl;\n privacyPolicyUrl = $config.get(\"privacyPolicyUrl\");\n termsOfServiceUrl = $config.get(\"termsOfServiceUrl\");\n templateFn = function() {\n var ctx;\n if (!(privacyPolicyUrl && termsOfServiceUrl)) {\n return \"\";\n }\n ctx = {\n termsUrl: termsOfServiceUrl,\n privacyUrl: privacyPolicyUrl\n };\n return template(ctx);\n };\n return {\n scope: {},\n restrict: \"AE\",\n template: templateFn\n };\n };\n\n module.directive(\"tgTermsNotice\", [\"$tgConfig\", TermsNoticeDirective]);\n\n}).call(this);\n","angular.module('taigaBase').value('localesEn', {\n \"checksley\": {\n \"defaultMessage\": \"This value seems to be invalid.\",\n \"type-email\": \"This value should be a valid email.\",\n \"type-url\": \"This value should be a valid url.\",\n \"type-urlstrict\": \"This value should be a valid url.\",\n \"type-number\": \"This value should be a valid number.\",\n \"type-digits\": \"This value should be digits.\",\n \"type-dateIso\": \"This value should be a valid date (YYYY-MM-DD).\",\n \"type-alphanum\": \"This value should be alphanumeric.\",\n \"type-phone\": \"This value should be a valid phone number.\",\n \"notnull\": \"This value should not be null.\",\n \"notblank\": \"This value should not be blank.\",\n \"required\": \"This value is required.\",\n \"regexp\": \"This value seems to be invalid.\",\n \"min\": \"This value should be greater than or equal to %s.\",\n \"max\": \"This value should be lower than or equal to %s.\",\n \"range\": \"This value should be between %s and %s.\",\n \"minlength\": \"This value is too short. It should have %s characters or more.\",\n \"maxlength\": \"This value is too long. It should have %s characters or less.\",\n \"rangelength\": \"This value length is invalid. It should be between %s and %s characters long.\",\n \"mincheck\": \"You must select at least %s choices.\",\n \"maxcheck\": \"You must select %s choices or less.\",\n \"rangecheck\": \"You must select between %s and %s choices.\",\n \"equalto\": \"This value should be the same.\"\n },\n \"common\": {\n \"subject\": \"Subject\",\n \"save\": \"Save\",\n \"blocked\": \"Blocked\",\n \"cancel\": \"Cancel\",\n \"status\": \"Status\",\n \"new-bulk\": \"New bulk insert\",\n \"one-item-line\": \"One item per line...\"\n },\n \"pagination\": {\n \"next\": \"Next\",\n \"prev\": \"Previous\"\n },\n \"markdown-editor\": {\n \"heading-1\": \"First Level Heading\",\n \"heading-2\": \"Second Level Heading\",\n \"heading-3\": \"Third Level Heading\",\n \"bold\": \"Bold\",\n \"italic\": \"Italic\",\n \"strike\": \"Strike\",\n \"bulleted-list\": \"Bulleted List\",\n \"numeric-list\": \"Numeric List\",\n \"picture\": \"Picture\",\n \"link\": \"Link\",\n \"quotes\": \"Quotes\",\n \"code-block\": \"Code Block / Code\",\n \"preview\": \"Preview\",\n \"help\": \"Help\",\n \"placeholder\": \"Your title here...\",\n \"link-placeholder\": \"Your text to link here...\"\n },\n \"us\": {\n \"title-new\": \"New User Story\",\n \"team-requirement\": \"Team Requirement\",\n \"client-requirement\": \"Client Requirement\"\n }\n}\n);"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/dist/js/libs.js b/dist/js/libs.js index 016942b..52f23a6 100644 --- a/dist/js/libs.js +++ b/dist/js/libs.js @@ -1,9 +1,9 @@ -function hex_sha1(s){return binb2hex(core_sha1(str2binb(s),s.length*chrsz))}function b64_sha1(s){return binb2b64(core_sha1(str2binb(s),s.length*chrsz))}function str_sha1(s){return binb2str(core_sha1(str2binb(s),s.length*chrsz))}function hex_hmac_sha1(key,data){return binb2hex(core_hmac_sha1(key,data))}function b64_hmac_sha1(key,data){return binb2b64(core_hmac_sha1(key,data))}function str_hmac_sha1(key,data){return binb2str(core_hmac_sha1(key,data))}function sha1_vm_test(){return"a9993e364706816aba3e25717850c26c9cd0d89d"==hex_sha1("abc")}function core_sha1(x,len){x[len>>5]|=128<<24-len%32,x[(len+64>>9<<4)+15]=len;for(var w=Array(80),a=1732584193,b=-271733879,c=-1732584194,d=271733878,e=-1009589776,i=0;ij;j++){w[j]=16>j?x[i+j]:rol(w[j-3]^w[j-8]^w[j-14]^w[j-16],1);var t=safe_add(safe_add(rol(a,5),sha1_ft(j,b,c,d)),safe_add(safe_add(e,w[j]),sha1_kt(j)));e=d,d=c,c=rol(b,30),b=a,a=t}a=safe_add(a,olda),b=safe_add(b,oldb),c=safe_add(c,oldc),d=safe_add(d,oldd),e=safe_add(e,olde)}return Array(a,b,c,d,e)}function sha1_ft(t,b,c,d){return 20>t?b&c|~b&d:40>t?b^c^d:60>t?b&c|b&d|c&d:b^c^d}function sha1_kt(t){return 20>t?1518500249:40>t?1859775393:60>t?-1894007588:-899497514}function core_hmac_sha1(key,data){var bkey=str2binb(key);bkey.length>16&&(bkey=core_sha1(bkey,key.length*chrsz));for(var ipad=Array(16),opad=Array(16),i=0;16>i;i++)ipad[i]=909522486^bkey[i],opad[i]=1549556828^bkey[i];var hash=core_sha1(ipad.concat(str2binb(data)),512+data.length*chrsz);return core_sha1(opad.concat(hash),672)}function safe_add(x,y){var lsw=(65535&x)+(65535&y),msw=(x>>16)+(y>>16)+(lsw>>16);return msw<<16|65535&lsw}function rol(num,cnt){return num<>>32-cnt}function str2binb(str){for(var bin=Array(),mask=(1<>5]|=(str.charCodeAt(i/chrsz)&mask)<<32-chrsz-i%32;return bin}function binb2str(bin){for(var str="",mask=(1<>5]>>>32-chrsz-i%32&mask);return str}function binb2hex(binarray){for(var hex_tab=hexcase?"0123456789ABCDEF":"0123456789abcdef",str="",i=0;i<4*binarray.length;i++)str+=hex_tab.charAt(binarray[i>>2]>>8*(3-i%4)+4&15)+hex_tab.charAt(binarray[i>>2]>>8*(3-i%4)&15);return str}function binb2b64(binarray){for(var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",str="",i=0;i<4*binarray.length;i+=3)for(var triplet=(binarray[i>>2]>>8*(3-i%4)&255)<<16|(binarray[i+1>>2]>>8*(3-(i+1)%4)&255)<<8|binarray[i+2>>2]>>8*(3-(i+2)%4)&255,j=0;4>j;j++)str+=8*i+6*j>32*binarray.length?b64pad:tab.charAt(triplet>>6*(3-j)&63);return str}!function(global,factory){"object"==typeof module&&"object"==typeof module.exports?module.exports=global.document?factory(global,!0):function(w){if(!w.document)throw new Error("jQuery requires a window with a document");return factory(w)}:factory(global)}("undefined"!=typeof window?window:this,function(window,noGlobal){function isArraylike(obj){var length=obj.length,type=jQuery.type(obj);return"function"===type||jQuery.isWindow(obj)?!1:1===obj.nodeType&&length?!0:"array"===type||0===length||"number"==typeof length&&length>0&&length-1 in obj}function winnow(elements,qualifier,not){if(jQuery.isFunction(qualifier))return jQuery.grep(elements,function(elem,i){return!!qualifier.call(elem,i,elem)!==not});if(qualifier.nodeType)return jQuery.grep(elements,function(elem){return elem===qualifier!==not});if("string"==typeof qualifier){if(risSimple.test(qualifier))return jQuery.filter(qualifier,elements,not);qualifier=jQuery.filter(qualifier,elements)}return jQuery.grep(elements,function(elem){return indexOf.call(qualifier,elem)>=0!==not})}function sibling(cur,dir){for(;(cur=cur[dir])&&1!==cur.nodeType;);return cur}function createOptions(options){var object=optionsCache[options]={};return jQuery.each(options.match(rnotwhite)||[],function(_,flag){object[flag]=!0}),object}function completed(){document.removeEventListener("DOMContentLoaded",completed,!1),window.removeEventListener("load",completed,!1),jQuery.ready()}function Data(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=jQuery.expando+Data.uid++}function dataAttr(elem,key,data){var name;if(void 0===data&&1===elem.nodeType)if(name="data-"+key.replace(rmultiDash,"-$1").toLowerCase(),data=elem.getAttribute(name),"string"==typeof data){try{data="true"===data?!0:"false"===data?!1:"null"===data?null:+data+""===data?+data:rbrace.test(data)?jQuery.parseJSON(data):data}catch(e){}data_user.set(elem,key,data)}else data=void 0;return data}function returnTrue(){return!0}function returnFalse(){return!1}function safeActiveElement(){try{return document.activeElement}catch(err){}}function manipulationTarget(elem,content){return jQuery.nodeName(elem,"table")&&jQuery.nodeName(11!==content.nodeType?content:content.firstChild,"tr")?elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody")):elem}function disableScript(elem){return elem.type=(null!==elem.getAttribute("type"))+"/"+elem.type,elem}function restoreScript(elem){var match=rscriptTypeMasked.exec(elem.type);return match?elem.type=match[1]:elem.removeAttribute("type"),elem}function setGlobalEval(elems,refElements){for(var i=0,l=elems.length;l>i;i++)data_priv.set(elems[i],"globalEval",!refElements||data_priv.get(refElements[i],"globalEval"))}function cloneCopyEvent(src,dest){var i,l,type,pdataOld,pdataCur,udataOld,udataCur,events;if(1===dest.nodeType){if(data_priv.hasData(src)&&(pdataOld=data_priv.access(src),pdataCur=data_priv.set(dest,pdataOld),events=pdataOld.events)){delete pdataCur.handle,pdataCur.events={};for(type in events)for(i=0,l=events[type].length;l>i;i++)jQuery.event.add(dest,type,events[type][i])}data_user.hasData(src)&&(udataOld=data_user.access(src),udataCur=jQuery.extend({},udataOld),data_user.set(dest,udataCur))}}function getAll(context,tag){var ret=context.getElementsByTagName?context.getElementsByTagName(tag||"*"):context.querySelectorAll?context.querySelectorAll(tag||"*"):[];return void 0===tag||tag&&jQuery.nodeName(context,tag)?jQuery.merge([context],ret):ret}function fixInput(src,dest){var nodeName=dest.nodeName.toLowerCase();"input"===nodeName&&rcheckableType.test(src.type)?dest.checked=src.checked:("input"===nodeName||"textarea"===nodeName)&&(dest.defaultValue=src.defaultValue)}function actualDisplay(name,doc){var style,elem=jQuery(doc.createElement(name)).appendTo(doc.body),display=window.getDefaultComputedStyle&&(style=window.getDefaultComputedStyle(elem[0]))?style.display:jQuery.css(elem[0],"display");return elem.detach(),display}function defaultDisplay(nodeName){var doc=document,display=elemdisplay[nodeName];return display||(display=actualDisplay(nodeName,doc),"none"!==display&&display||(iframe=(iframe||jQuery("'),"after"==options.previewPosition?iFrame.insertAfter(footer):iFrame.insertBefore(header),previewWindow=iFrame[iFrame.length-1].contentWindow||frame[iFrame.length-1]):altKey===!0&&(iFrame?iFrame.remove():previewWindow.close(),previewWindow=iFrame=!1),options.previewAutoRefresh||refreshPreview(),options.previewInWindow&&previewWindow.focus()}function refreshPreview(){renderPreview()}function renderPreview(){if(options.previewHandler&&"function"==typeof options.previewHandler)options.previewHandler($$.val());else if(options.previewParser&&"function"==typeof options.previewParser){var data=options.previewParser($$.val());writeInPreview(localize(data,1))}else""!==options.previewParserPath?$.ajax({type:"POST",dataType:"text",global:!1,url:options.previewParserPath,data:options.previewParserVar+"="+encodeURIComponent($$.val()),success:function(data){writeInPreview(localize(data,1))}}):template||$.ajax({url:options.previewTemplatePath,dataType:"text",global:!1,success:function(data){writeInPreview(localize(data,1).replace(//g,$$.val()))}});return!1}function writeInPreview(data){if(options.previewInElement)$(options.previewInElement).html(data);else if(previewWindow&&previewWindow.document){try{sp=previewWindow.document.documentElement.scrollTop}catch(e){sp=0}previewWindow.document.open(),previewWindow.document.write(data),previewWindow.document.close(),previewWindow.document.documentElement.scrollTop=sp}}function keyPressed(e){if(shiftKey=e.shiftKey,altKey=e.altKey,ctrlKey=e.altKey&&e.ctrlKey?!1:e.ctrlKey||e.metaKey,"keydown"===e.type){if(ctrlKey===!0&&(li=$('a[accesskey="'+(13==e.keyCode?"\\n":String.fromCharCode(e.keyCode))+'"]',header).parent("li"),0!==li.length))return ctrlKey=!1,setTimeout(function(){li.triggerHandler("mouseup")},1),!1;if(13===e.keyCode||10===e.keyCode)return ctrlKey===!0?(ctrlKey=!1,markup(options.onCtrlEnter),options.onCtrlEnter.keepDefault):shiftKey===!0?(shiftKey=!1,markup(options.onShiftEnter),options.onShiftEnter.keepDefault):(markup(options.onEnter),options.onEnter.keepDefault);if(9===e.keyCode)return 1==shiftKey||1==ctrlKey||1==altKey?!1:-1!==caretOffset?(get(),caretOffset=$$.val().length-caretOffset,set(caretOffset,0),caretOffset=-1,!1):(markup(options.onTab),options.onTab.keepDefault)}}function remove(){$$.unbind(".markItUp").removeClass("markItUpEditor"),$$.parent("div").parent("div.markItUp").parent("div").replaceWith($$),$$.data("markItUp",null)}var $$,textarea,levels,scrollPosition,caretPosition,caretOffset,clicked,hash,header,footer,previewWindow,template,iFrame,abort;if($$=$(this),textarea=this,levels=[],abort=!1,scrollPosition=caretPosition=0,caretOffset=-1,options.previewParserPath=localize(options.previewParserPath),options.previewTemplatePath=localize(options.previewTemplatePath),method)switch(method){case"remove":remove();break;case"insert":markup(params);break;default:$.error("Method "+method+" does not exist on jQuery.markItUp")}else init()})},$.fn.markItUpRemove=function(){return this.each(function(){$(this).markItUp("remove")})},$.markItUp=function(settings){var options={target:!1};return $.extend(options,settings),options.target?$(options.target).each(function(){$(this).focus(),$(this).trigger("insertion",[options])}):void $("textarea").trigger("insertion",[options])}}(jQuery),!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height"); -j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||f>n)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})}),!function(e){"undefined"!=typeof module&&module.exports?module.exports=e:e(jQuery,window,document)}(function(e){!function(t){var o="function"==typeof define&&define.amd,a="undefined"!=typeof module&&module.exports,n="https:"==document.location.protocol?"https:":"http:",i="cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.12/jquery.mousewheel.min.js";o||(a?require("jquery-mousewheel")(e):e.event.special.mousewheel||e("head").append(decodeURI("%3Cscript src="+n+"//"+i+"%3E%3C/script%3E"))),t()}(function(){var t,o="mCustomScrollbar",a="mCS",n=".mCustomScrollbar",i={setTop:0,setLeft:0,axis:"y",scrollbarPosition:"inside",scrollInertia:950,autoDraggerLength:!0,alwaysShowScrollbar:0,snapOffset:0,mouseWheel:{enable:!0,scrollAmount:"auto",axis:"y",deltaFactor:"auto",disableOver:["select","option","keygen","datalist","textarea"]},scrollButtons:{scrollType:"stepless",scrollAmount:"auto"},keyboard:{enable:!0,scrollType:"stepless",scrollAmount:"auto"},contentTouchScroll:25,advanced:{autoScrollOnFocus:"input,textarea,select,button,datalist,keygen,a[tabindex],area,object,[contenteditable='true']",updateOnContentResize:!0,updateOnImageLoad:!0},theme:"light",callbacks:{onTotalScrollOffset:0,onTotalScrollBackOffset:0,alwaysTriggerOffsets:!0}},r=0,l={},s=window.attachEvent&&!window.addEventListener?1:0,c=!1,d=["mCSB_dragger_onDrag","mCSB_scrollTools_onDrag","mCS_img_loaded","mCS_disabled","mCS_destroyed","mCS_no_scrollbar","mCS-autoHide","mCS-dir-rtl","mCS_no_scrollbar_y","mCS_no_scrollbar_x","mCS_y_hidden","mCS_x_hidden","mCSB_draggerContainer","mCSB_buttonUp","mCSB_buttonDown","mCSB_buttonLeft","mCSB_buttonRight"],u={init:function(t){var t=e.extend(!0,{},i,t),o=f.call(this);if(t.live){var s=t.liveSelector||this.selector||n,c=e(s);if("off"===t.live)return void m(s);l[s]=setTimeout(function(){c.mCustomScrollbar(t),"once"===t.live&&c.length&&m(s)},500)}else m(s);return t.setWidth=t.set_width?t.set_width:t.setWidth,t.setHeight=t.set_height?t.set_height:t.setHeight,t.axis=t.horizontalScroll?"x":p(t.axis),t.scrollInertia=t.scrollInertia>0&&t.scrollInertia<17?17:t.scrollInertia,"object"!=typeof t.mouseWheel&&1==t.mouseWheel&&(t.mouseWheel={enable:!0,scrollAmount:"auto",axis:"y",preventDefault:!1,deltaFactor:"auto",normalizeDelta:!1,invert:!1}),t.mouseWheel.scrollAmount=t.mouseWheelPixels?t.mouseWheelPixels:t.mouseWheel.scrollAmount,t.mouseWheel.normalizeDelta=t.advanced.normalizeMouseWheelDelta?t.advanced.normalizeMouseWheelDelta:t.mouseWheel.normalizeDelta,t.scrollButtons.scrollType=g(t.scrollButtons.scrollType),h(t),e(o).each(function(){var o=e(this);if(!o.data(a)){o.data(a,{idx:++r,opt:t,scrollRatio:{y:null,x:null},overflowed:null,contentReset:{y:null,x:null},bindEvents:!1,tweenRunning:!1,sequential:{},langDir:o.css("direction"),cbOffsets:null,trigger:null});var n=o.data(a),i=n.opt,l=o.data("mcs-axis"),s=o.data("mcs-scrollbar-position"),c=o.data("mcs-theme");l&&(i.axis=l),s&&(i.scrollbarPosition=s),c&&(i.theme=c,h(i)),v.call(this),e("#mCSB_"+n.idx+"_container img:not(."+d[2]+")").addClass(d[2]),u.update.call(null,o)}})},update:function(t,o){var n=t||f.call(this);return e(n).each(function(){var t=e(this);if(t.data(a)){var n=t.data(a),i=n.opt,r=e("#mCSB_"+n.idx+"_container"),l=[e("#mCSB_"+n.idx+"_dragger_vertical"),e("#mCSB_"+n.idx+"_dragger_horizontal")];if(!r.length)return;n.tweenRunning&&V(t),t.hasClass(d[3])&&t.removeClass(d[3]),t.hasClass(d[4])&&t.removeClass(d[4]),S.call(this),_.call(this),"y"===i.axis||i.advanced.autoExpandHorizontalScroll||r.css("width",x(r.children())),n.overflowed=B.call(this),O.call(this),i.autoDraggerLength&&b.call(this),C.call(this),k.call(this);var s=[Math.abs(r[0].offsetTop),Math.abs(r[0].offsetLeft)];"x"!==i.axis&&(n.overflowed[0]?l[0].height()>l[0].parent().height()?T.call(this):(Q(t,s[0].toString(),{dir:"y",dur:0,overwrite:"none"}),n.contentReset.y=null):(T.call(this),"y"===i.axis?M.call(this):"yx"===i.axis&&n.overflowed[1]&&Q(t,s[1].toString(),{dir:"x",dur:0,overwrite:"none"}))),"y"!==i.axis&&(n.overflowed[1]?l[1].width()>l[1].parent().width()?T.call(this):(Q(t,s[1].toString(),{dir:"x",dur:0,overwrite:"none"}),n.contentReset.x=null):(T.call(this),"x"===i.axis?M.call(this):"yx"===i.axis&&n.overflowed[0]&&Q(t,s[0].toString(),{dir:"y",dur:0,overwrite:"none"}))),o&&n&&(2===o&&i.callbacks.onImageLoad&&"function"==typeof i.callbacks.onImageLoad?i.callbacks.onImageLoad.call(this):3===o&&i.callbacks.onSelectorChange&&"function"==typeof i.callbacks.onSelectorChange?i.callbacks.onSelectorChange.call(this):i.callbacks.onUpdate&&"function"==typeof i.callbacks.onUpdate&&i.callbacks.onUpdate.call(this)),X.call(this)}})},scrollTo:function(t,o){if("undefined"!=typeof t&&null!=t){var n=f.call(this);return e(n).each(function(){var n=e(this);if(n.data(a)){var i=n.data(a),r=i.opt,l={trigger:"external",scrollInertia:r.scrollInertia,scrollEasing:"mcsEaseInOut",moveDragger:!1,timeout:60,callbacks:!0,onStart:!0,onUpdate:!0,onComplete:!0},s=e.extend(!0,{},l,o),c=Y.call(this,t),d=s.scrollInertia>0&&s.scrollInertia<17?17:s.scrollInertia;c[0]=j.call(this,c[0],"y"),c[1]=j.call(this,c[1],"x"),s.moveDragger&&(c[0]*=i.scrollRatio.y,c[1]*=i.scrollRatio.x),s.dur=d,setTimeout(function(){null!==c[0]&&"undefined"!=typeof c[0]&&"x"!==r.axis&&i.overflowed[0]&&(s.dir="y",s.overwrite="all",Q(n,c[0].toString(),s)),null!==c[1]&&"undefined"!=typeof c[1]&&"y"!==r.axis&&i.overflowed[1]&&(s.dir="x",s.overwrite="none",Q(n,c[1].toString(),s))},s.timeout)}})}},stop:function(){var t=f.call(this);return e(t).each(function(){var t=e(this);t.data(a)&&V(t)})},disable:function(t){var o=f.call(this);return e(o).each(function(){var o=e(this);o.data(a)&&(o.data(a),X.call(this,"remove"),M.call(this),t&&T.call(this),O.call(this,!0),o.addClass(d[3]))})},destroy:function(){var t=f.call(this);return e(t).each(function(){var n=e(this);if(n.data(a)){var i=n.data(a),r=i.opt,l=e("#mCSB_"+i.idx),s=e("#mCSB_"+i.idx+"_container"),c=e(".mCSB_"+i.idx+"_scrollbar");r.live&&m(r.liveSelector||e(t).selector),X.call(this,"remove"),M.call(this),T.call(this),n.removeData(a),Z(this,"mcs"),c.remove(),s.find("img."+d[2]).removeClass(d[2]),l.replaceWith(s.contents()),n.removeClass(o+" _"+a+"_"+i.idx+" "+d[6]+" "+d[7]+" "+d[5]+" "+d[3]).addClass(d[4])}})}},f=function(){return"object"!=typeof e(this)||e(this).length<1?n:this},h=function(t){var o=["rounded","rounded-dark","rounded-dots","rounded-dots-dark"],a=["rounded-dots","rounded-dots-dark","3d","3d-dark","3d-thick","3d-thick-dark","inset","inset-dark","inset-2","inset-2-dark","inset-3","inset-3-dark"],n=["minimal","minimal-dark"],i=["minimal","minimal-dark"],r=["minimal","minimal-dark"];t.autoDraggerLength=e.inArray(t.theme,o)>-1?!1:t.autoDraggerLength,t.autoExpandScrollbar=e.inArray(t.theme,a)>-1?!1:t.autoExpandScrollbar,t.scrollButtons.enable=e.inArray(t.theme,n)>-1?!1:t.scrollButtons.enable,t.autoHideScrollbar=e.inArray(t.theme,i)>-1?!0:t.autoHideScrollbar,t.scrollbarPosition=e.inArray(t.theme,r)>-1?"outside":t.scrollbarPosition},m=function(e){l[e]&&(clearTimeout(l[e]),Z(l,e))},p=function(e){return"yx"===e||"xy"===e||"auto"===e?"yx":"x"===e||"horizontal"===e?"x":"y"},g=function(e){return"stepped"===e||"pixels"===e||"step"===e||"click"===e?"stepped":"stepless"},v=function(){var t=e(this),n=t.data(a),i=n.opt,r=i.autoExpandScrollbar?" "+d[1]+"_expand":"",l=["
","
"],s="yx"===i.axis?"mCSB_vertical_horizontal":"x"===i.axis?"mCSB_horizontal":"mCSB_vertical",c="yx"===i.axis?l[0]+l[1]:"x"===i.axis?l[1]:l[0],u="yx"===i.axis?"
":"",f=i.autoHideScrollbar?" "+d[6]:"",h="x"!==i.axis&&"rtl"===n.langDir?" "+d[7]:"";i.setWidth&&t.css("width",i.setWidth),i.setHeight&&t.css("height",i.setHeight),i.setLeft="y"!==i.axis&&"rtl"===n.langDir?"989999px":i.setLeft,t.addClass(o+" _"+a+"_"+n.idx+f+h).wrapInner("
");var m=e("#mCSB_"+n.idx),p=e("#mCSB_"+n.idx+"_container");"y"===i.axis||i.advanced.autoExpandHorizontalScroll||p.css("width",x(p.children())),"outside"===i.scrollbarPosition?("static"===t.css("position")&&t.css("position","relative"),t.css("overflow","visible"),m.addClass("mCSB_outside").after(c)):(m.addClass("mCSB_inside").append(c),p.wrap(u)),w.call(this);var g=[e("#mCSB_"+n.idx+"_dragger_vertical"),e("#mCSB_"+n.idx+"_dragger_horizontal")];g[0].css("min-height",g[0].height()),g[1].css("min-width",g[1].width())},x=function(t){return Math.max.apply(Math,t.map(function(){return e(this).outerWidth(!0)}).get())},_=function(){var t=e(this),o=t.data(a),n=o.opt,i=e("#mCSB_"+o.idx+"_container");n.advanced.autoExpandHorizontalScroll&&"y"!==n.axis&&i.css({position:"absolute",width:"auto"}).wrap("
").css({width:Math.ceil(i[0].getBoundingClientRect().right+.4)-Math.floor(i[0].getBoundingClientRect().left),position:"relative"}).unwrap()},w=function(){var t=e(this),o=t.data(a),n=o.opt,i=e(".mCSB_"+o.idx+"_scrollbar:first"),r=tt(n.scrollButtons.tabindex)?"tabindex='"+n.scrollButtons.tabindex+"'":"",l=["","","",""],s=["x"===n.axis?l[2]:l[0],"x"===n.axis?l[3]:l[1],l[2],l[3]];n.scrollButtons.enable&&i.prepend(s[0]).append(s[1]).next(".mCSB_scrollTools").prepend(s[2]).append(s[3])},S=function(){var t=e(this),o=t.data(a),n=e("#mCSB_"+o.idx),i=t.css("max-height")||"none",r=-1!==i.indexOf("%"),l=t.css("box-sizing");if("none"!==i){var s=r?t.parent().height()*parseInt(i)/100:parseInt(i);"border-box"===l&&(s-=t.innerHeight()-t.height()+(t.outerHeight()-t.innerHeight())),n.css("max-height",Math.round(s))}},b=function(){var t=e(this),o=t.data(a),n=e("#mCSB_"+o.idx),i=e("#mCSB_"+o.idx+"_container"),r=[e("#mCSB_"+o.idx+"_dragger_vertical"),e("#mCSB_"+o.idx+"_dragger_horizontal")],l=[n.height()/i.outerHeight(!1),n.width()/i.outerWidth(!1)],c=[parseInt(r[0].css("min-height")),Math.round(l[0]*r[0].parent().height()),parseInt(r[1].css("min-width")),Math.round(l[1]*r[1].parent().width())],d=s&&c[1]n.height(),l>n.width()]},T=function(){var t=e(this),o=t.data(a),n=o.opt,i=e("#mCSB_"+o.idx),r=e("#mCSB_"+o.idx+"_container"),l=[e("#mCSB_"+o.idx+"_dragger_vertical"),e("#mCSB_"+o.idx+"_dragger_horizontal")];if(V(t),("x"!==n.axis&&!o.overflowed[0]||"y"===n.axis&&o.overflowed[0])&&(l[0].add(r).css("top",0),Q(t,"_resetY")),"y"!==n.axis&&!o.overflowed[1]||"x"===n.axis&&o.overflowed[1]){var s=dx=0;"rtl"===o.langDir&&(s=i.width()-r.outerWidth(!1),dx=Math.abs(s/o.scrollRatio.x)),r.css("left",s),l[1].css("left",dx),Q(t,"_resetX")}},k=function(){function t(){r=setTimeout(function(){e.event.special.mousewheel?(clearTimeout(r),W.call(o[0])):t()},100)}var o=e(this),n=o.data(a),i=n.opt;if(!n.bindEvents){if(R.call(this),i.contentTouchScroll&&E.call(this),D.call(this),i.mouseWheel.enable){var r;t()}P.call(this),H.call(this),i.advanced.autoScrollOnFocus&&z.call(this),i.scrollButtons.enable&&U.call(this),i.keyboard.enable&&q.call(this),n.bindEvents=!0}},M=function(){var t=e(this),o=t.data(a),n=o.opt,i=a+"_"+o.idx,r=".mCSB_"+o.idx+"_scrollbar",l=e("#mCSB_"+o.idx+",#mCSB_"+o.idx+"_container,#mCSB_"+o.idx+"_container_wrapper,"+r+" ."+d[12]+",#mCSB_"+o.idx+"_dragger_vertical,#mCSB_"+o.idx+"_dragger_horizontal,"+r+">a"),s=e("#mCSB_"+o.idx+"_container");n.advanced.releaseDraggableSelectors&&l.add(e(n.advanced.releaseDraggableSelectors)),o.bindEvents&&(e(document).unbind("."+i),l.each(function(){e(this).unbind("."+i)}),clearTimeout(t[0]._focusTimeout),Z(t[0],"_focusTimeout"),clearTimeout(o.sequential.step),Z(o.sequential,"step"),clearTimeout(s[0].onCompleteTimeout),Z(s[0],"onCompleteTimeout"),o.bindEvents=!1)},O=function(t){var o=e(this),n=o.data(a),i=n.opt,r=e("#mCSB_"+n.idx+"_container_wrapper"),l=r.length?r:e("#mCSB_"+n.idx+"_container"),s=[e("#mCSB_"+n.idx+"_scrollbar_vertical"),e("#mCSB_"+n.idx+"_scrollbar_horizontal")],c=[s[0].find(".mCSB_dragger"),s[1].find(".mCSB_dragger")];"x"!==i.axis&&(n.overflowed[0]&&!t?(s[0].add(c[0]).add(s[0].children("a")).css("display","block"),l.removeClass(d[8]+" "+d[10])):(i.alwaysShowScrollbar?(2!==i.alwaysShowScrollbar&&c[0].css("display","none"),l.removeClass(d[10])):(s[0].css("display","none"),l.addClass(d[10])),l.addClass(d[8]))),"y"!==i.axis&&(n.overflowed[1]&&!t?(s[1].add(c[1]).add(s[1].children("a")).css("display","block"),l.removeClass(d[9]+" "+d[11])):(i.alwaysShowScrollbar?(2!==i.alwaysShowScrollbar&&c[1].css("display","none"),l.removeClass(d[11])):(s[1].css("display","none"),l.addClass(d[11])),l.addClass(d[9]))),n.overflowed[0]||n.overflowed[1]?o.removeClass(d[5]):o.addClass(d[5])},I=function(e){var t=e.type;switch(t){case"pointerdown":case"MSPointerDown":case"pointermove":case"MSPointerMove":case"pointerup":case"MSPointerUp":return e.target.ownerDocument!==document?[e.originalEvent.screenY,e.originalEvent.screenX,!1]:[e.originalEvent.pageY,e.originalEvent.pageX,!1];case"touchstart":case"touchmove":case"touchend":var o=e.originalEvent.touches[0]||e.originalEvent.changedTouches[0],a=e.originalEvent.touches.length||e.originalEvent.changedTouches.length;return e.target.ownerDocument!==document?[o.screenY,o.screenX,a>1]:[o.pageY,o.pageX,a>1];default:return[e.pageY,e.pageX,!1]}},R=function(){function t(e){var t=m.find("iframe");if(t.length){var o=e?"auto":"none";t.css("pointer-events",o)}}function o(e,t,o,a){if(m[0].idleTimer=u.scrollInertia<233?250:0,n.attr("id")===h[1])var i="x",r=(n[0].offsetLeft-t+a)*d.scrollRatio.x;else var i="y",r=(n[0].offsetTop-e+o)*d.scrollRatio.y;Q(l,r.toString(),{dir:i,drag:!0})}var n,i,r,l=e(this),d=l.data(a),u=d.opt,f=a+"_"+d.idx,h=["mCSB_"+d.idx+"_dragger_vertical","mCSB_"+d.idx+"_dragger_horizontal"],m=e("#mCSB_"+d.idx+"_container"),p=e("#"+h[0]+",#"+h[1]),g=u.advanced.releaseDraggableSelectors?p.add(e(u.advanced.releaseDraggableSelectors)):p;p.bind("mousedown."+f+" touchstart."+f+" pointerdown."+f+" MSPointerDown."+f,function(o){if(o.stopImmediatePropagation(),o.preventDefault(),$(o)){c=!0,s&&(document.onselectstart=function(){return!1}),t(!1),V(l),n=e(this);var a=n.offset(),d=I(o)[0]-a.top,f=I(o)[1]-a.left,h=n.height()+a.top,m=n.width()+a.left;h>d&&d>0&&m>f&&f>0&&(i=d,r=f),y(n,"active",u.autoExpandScrollbar)}}).bind("touchmove."+f,function(e){e.stopImmediatePropagation(),e.preventDefault();var t=n.offset(),a=I(e)[0]-t.top,l=I(e)[1]-t.left;o(i,r,a,l)}),e(document).bind("mousemove."+f+" pointermove."+f+" MSPointerMove."+f,function(e){if(n){var t=n.offset(),a=I(e)[0]-t.top,l=I(e)[1]-t.left;if(i===a)return;o(i,r,a,l)}}).add(g).bind("mouseup."+f+" touchend."+f+" pointerup."+f+" MSPointerUp."+f,function(){n&&(y(n,"active",u.autoExpandScrollbar),n=null),c=!1,s&&(document.onselectstart=null),t(!0)})},E=function(){function o(e){if(!et(e)||c||I(e)[2])return void(t=0);t=1,S=0,b=0;var o=M.offset();d=I(e)[0]-o.top,u=I(e)[1]-o.left,A=[I(e)[0],I(e)[1]]}function n(e){if(et(e)&&!c&&!I(e)[2]&&(e.stopImmediatePropagation(),!b||S)){p=J();var t=k.offset(),o=I(e)[0]-t.top,a=I(e)[1]-t.left,n="mcsLinearOut";if(R.push(o),E.push(a),A[2]=Math.abs(I(e)[0]-A[0]),A[3]=Math.abs(I(e)[1]-A[1]),y.overflowed[0])var i=O[0].parent().height()-O[0].height(),r=d-o>0&&o-d>-(i*y.scrollRatio.y)&&(2*A[3]0&&a-u>-(l*y.scrollRatio.x)&&(2*A[2]30)){x=1e3/(g-m);var n="mcsEaseOut",i=2.5>x,r=i?[R[R.length-2],E[E.length-2]]:[0,0];v=i?[o-r[0],a-r[1]]:[o-f,a-h];var d=[Math.abs(v[0]),Math.abs(v[1])];x=i?[Math.abs(v[0]/4),Math.abs(v[1]/4)]:[x,x];var u=[Math.abs(M[0].offsetTop)-v[0]*l(d[0]/x[0],x[0]),Math.abs(M[0].offsetLeft)-v[1]*l(d[1]/x[1],x[1])];_="yx"===B.axis?[u[0],u[1]]:"x"===B.axis?[null,u[1]]:[u[0],null],w=[4*d[0]+B.scrollInertia,4*d[1]+B.scrollInertia];var C=parseInt(B.contentTouchScroll)||0;_[0]=d[0]>C?_[0]:0,_[1]=d[1]>C?_[1]:0,y.overflowed[0]&&s(_[0],w[0],n,"y",W,!1),y.overflowed[1]&&s(_[1],w[1],n,"x",W,!1)}}}function l(e,t){var o=[1.5*t,2*t,t/1.5,t/2];return e>90?t>4?o[0]:o[3]:e>60?t>3?o[3]:o[2]:e>30?t>8?o[1]:t>6?o[0]:t>4?t:o[2]:t>8?t:o[3]}function s(e,t,o,a,n,i){e&&Q(C,e.toString(),{dur:t,scrollEasing:o,dir:a,overwrite:n,drag:i})}var d,u,f,h,m,p,g,v,x,_,w,S,b,C=e(this),y=C.data(a),B=y.opt,T=a+"_"+y.idx,k=e("#mCSB_"+y.idx),M=e("#mCSB_"+y.idx+"_container"),O=[e("#mCSB_"+y.idx+"_dragger_vertical"),e("#mCSB_"+y.idx+"_dragger_horizontal")],R=[],E=[],D=0,W="yx"===B.axis?"none":"all",A=[],P=M.find("iframe"),z=["touchstart."+T+" pointerdown."+T+" MSPointerDown."+T,"touchmove."+T+" pointermove."+T+" MSPointerMove."+T,"touchend."+T+" pointerup."+T+" MSPointerUp."+T];M.bind(z[0],function(e){o(e)}).bind(z[1],function(e){n(e)}),k.bind(z[0],function(e){i(e)}).bind(z[2],function(e){r(e)}),P.length&&P.each(function(){e(this).load(function(){L(this)&&e(this.contentDocument||this.contentWindow.document).bind(z[0],function(e){o(e),i(e)}).bind(z[1],function(e){n(e)}).bind(z[2],function(e){r(e)})})})},D=function(){function o(){return window.getSelection?window.getSelection().toString():document.selection&&"Control"!=document.selection.type?document.selection.createRange().text:0}function n(e,t,o){d.type=o&&i?"stepped":"stepless",d.scrollAmount=10,F(r,e,t,"mcsLinearOut",o?60:null)}var i,r=e(this),l=r.data(a),s=l.opt,d=l.sequential,u=a+"_"+l.idx,f=e("#mCSB_"+l.idx+"_container"),h=f.parent();f.bind("mousedown."+u,function(){t||i||(i=1,c=!0)}).add(document).bind("mousemove."+u,function(e){if(!t&&i&&o()){var a=f.offset(),r=I(e)[0]-a.top+f[0].offsetTop,c=I(e)[1]-a.left+f[0].offsetLeft;r>0&&r0&&cr?n("on",38):r>h.height()&&n("on",40)),"y"!==s.axis&&l.overflowed[1]&&(0>c?n("on",37):c>h.width()&&n("on",39)))}}).bind("mouseup."+u,function(){t||(i&&(i=0,n("off",null)),c=!1)})},W=function(){function t(t,a){if(V(o),!A(o,t.target)){var r="auto"!==i.mouseWheel.deltaFactor?parseInt(i.mouseWheel.deltaFactor):s&&t.deltaFactor<100?100:t.deltaFactor||100;if("x"===i.axis||"x"===i.mouseWheel.axis)var d="x",u=[Math.round(r*n.scrollRatio.x),parseInt(i.mouseWheel.scrollAmount)],f="auto"!==i.mouseWheel.scrollAmount?u[1]:u[0]>=l.width()?.9*l.width():u[0],h=Math.abs(e("#mCSB_"+n.idx+"_container")[0].offsetLeft),m=c[1][0].offsetLeft,p=c[1].parent().width()-c[1].width(),g=t.deltaX||t.deltaY||a;else var d="y",u=[Math.round(r*n.scrollRatio.y),parseInt(i.mouseWheel.scrollAmount)],f="auto"!==i.mouseWheel.scrollAmount?u[1]:u[0]>=l.height()?.9*l.height():u[0],h=Math.abs(e("#mCSB_"+n.idx+"_container")[0].offsetTop),m=c[0][0].offsetTop,p=c[0].parent().height()-c[0].height(),g=t.deltaY||a;"y"===d&&!n.overflowed[0]||"x"===d&&!n.overflowed[1]||(i.mouseWheel.invert&&(g=-g),i.mouseWheel.normalizeDelta&&(g=0>g?-1:1),(g>0&&0!==m||0>g&&m!==p||i.mouseWheel.preventDefault)&&(t.stopImmediatePropagation(),t.preventDefault()),Q(o,(h-g*f).toString(),{dir:d}))}}var o=e(this),n=o.data(a),i=n.opt,r=a+"_"+n.idx,l=e("#mCSB_"+n.idx),c=[e("#mCSB_"+n.idx+"_dragger_vertical"),e("#mCSB_"+n.idx+"_dragger_horizontal")],d=e("#mCSB_"+n.idx+"_container").find("iframe");n&&(d.length&&d.each(function(){e(this).load(function(){L(this)&&e(this.contentDocument||this.contentWindow.document).bind("mousewheel."+r,function(e,o){t(e,o)})})}),l.bind("mousewheel."+r,function(e,o){t(e,o)}))},L=function(e){var t=null;try{var o=e.contentDocument||e.contentWindow.document;t=o.body.innerHTML}catch(a){}return null!==t},A=function(t,o){var n=o.nodeName.toLowerCase(),i=t.data(a).opt.mouseWheel.disableOver,r=["select","textarea"];return e.inArray(n,i)>-1&&!(e.inArray(n,r)>-1&&!e(o).is(":focus"))},P=function(){var t=e(this),o=t.data(a),n=a+"_"+o.idx,i=e("#mCSB_"+o.idx+"_container"),r=i.parent(),l=e(".mCSB_"+o.idx+"_scrollbar ."+d[12]);l.bind("touchstart."+n+" pointerdown."+n+" MSPointerDown."+n,function(){c=!0}).bind("touchend."+n+" pointerup."+n+" MSPointerUp."+n,function(){c=!1}).bind("click."+n,function(a){if(e(a.target).hasClass(d[12])||e(a.target).hasClass("mCSB_draggerRail")){V(t);var n=e(this),l=n.find(".mCSB_dragger");if(n.parent(".mCSB_scrollTools_horizontal").length>0){if(!o.overflowed[1])return;var s="x",c=a.pageX>l.offset().left?-1:1,u=Math.abs(i[0].offsetLeft)-.9*c*r.width()}else{if(!o.overflowed[0])return;var s="y",c=a.pageY>l.offset().top?-1:1,u=Math.abs(i[0].offsetTop)-.9*c*r.height()}Q(t,u.toString(),{dir:s,scrollEasing:"mcsEaseInOut"})}})},z=function(){var t=e(this),o=t.data(a),n=o.opt,i=a+"_"+o.idx,r=e("#mCSB_"+o.idx+"_container"),l=r.parent();r.bind("focusin."+i,function(){var o=e(document.activeElement),a=r.find(".mCustomScrollBox").length,i=0;o.is(n.advanced.autoScrollOnFocus)&&(V(t),clearTimeout(t[0]._focusTimeout),t[0]._focusTimer=a?(i+17)*a:0,t[0]._focusTimeout=setTimeout(function(){var e=[ot(o)[0],ot(o)[1]],a=[r[0].offsetTop,r[0].offsetLeft],s=[a[0]+e[0]>=0&&a[0]+e[0]=0&&a[0]+e[1]a");s.bind("mousedown."+r+" touchstart."+r+" pointerdown."+r+" MSPointerDown."+r+" mouseup."+r+" touchend."+r+" pointerup."+r+" MSPointerUp."+r+" mouseout."+r+" pointerout."+r+" MSPointerOut."+r+" click."+r,function(a){function r(e,o){i.scrollAmount=n.snapAmount||n.scrollButtons.scrollAmount,F(t,e,o)}if(a.preventDefault(),$(a)){var l=e(this).attr("class");switch(i.type=n.scrollButtons.scrollType,a.type){case"mousedown":case"touchstart":case"pointerdown":case"MSPointerDown":if("stepped"===i.type)return;c=!0,o.tweenRunning=!1,r("on",l);break;case"mouseup":case"touchend":case"pointerup":case"MSPointerUp":case"mouseout":case"pointerout":case"MSPointerOut":if("stepped"===i.type)return;c=!1,i.dir&&r("off",l);break;case"click":if("stepped"!==i.type||o.tweenRunning)return;r("on",l)}}})},q=function(){function t(t){function a(e,t){r.type=i.keyboard.scrollType,r.scrollAmount=i.snapAmount||i.keyboard.scrollAmount,"stepped"===r.type&&n.tweenRunning||F(o,e,t)}switch(t.type){case"blur":n.tweenRunning&&r.dir&&a("off",null);break;case"keydown":case"keyup":var l=t.keyCode?t.keyCode:t.which,s="on";if("x"!==i.axis&&(38===l||40===l)||"y"!==i.axis&&(37===l||39===l)){if((38===l||40===l)&&!n.overflowed[0]||(37===l||39===l)&&!n.overflowed[1])return;"keyup"===t.type&&(s="off"),e(document.activeElement).is(u)||(t.preventDefault(),t.stopImmediatePropagation(),a(s,l))}else if(33===l||34===l){if((n.overflowed[0]||n.overflowed[1])&&(t.preventDefault(),t.stopImmediatePropagation()),"keyup"===t.type){V(o);var f=34===l?-1:1;if("x"===i.axis||"yx"===i.axis&&n.overflowed[1]&&!n.overflowed[0])var h="x",m=Math.abs(c[0].offsetLeft)-.9*f*d.width();else var h="y",m=Math.abs(c[0].offsetTop)-.9*f*d.height();Q(o,m.toString(),{dir:h,scrollEasing:"mcsEaseInOut"})}}else if((35===l||36===l)&&!e(document.activeElement).is(u)&&((n.overflowed[0]||n.overflowed[1])&&(t.preventDefault(),t.stopImmediatePropagation()),"keyup"===t.type)){if("x"===i.axis||"yx"===i.axis&&n.overflowed[1]&&!n.overflowed[0])var h="x",m=35===l?Math.abs(d.width()-c.outerWidth(!1)):0;else var h="y",m=35===l?Math.abs(d.height()-c.outerHeight(!1)):0;Q(o,m.toString(),{dir:h,scrollEasing:"mcsEaseInOut"})}}}var o=e(this),n=o.data(a),i=n.opt,r=n.sequential,l=a+"_"+n.idx,s=e("#mCSB_"+n.idx),c=e("#mCSB_"+n.idx+"_container"),d=c.parent(),u="input,textarea,select,datalist,keygen,[contenteditable='true']",f=c.find("iframe"),h=["blur."+l+" keydown."+l+" keyup."+l];f.length&&f.each(function(){e(this).load(function(){L(this)&&e(this.contentDocument||this.contentWindow.document).bind(h[0],function(e){t(e)})})}),s.attr("tabindex","0").bind(h[0],function(e){t(e)})},F=function(t,o,n,i,r){function l(e){var o="stepped"!==f.type,a=r?r:e?o?p/1.5:g:1e3/60,n=e?o?7.5:40:2.5,s=[Math.abs(h[0].offsetTop),Math.abs(h[0].offsetLeft)],d=[c.scrollRatio.y>10?10:c.scrollRatio.y,c.scrollRatio.x>10?10:c.scrollRatio.x],u="x"===f.dir[0]?s[1]+f.dir[1]*d[1]*n:s[0]+f.dir[1]*d[0]*n,m="x"===f.dir[0]?s[1]+f.dir[1]*parseInt(f.scrollAmount):s[0]+f.dir[1]*parseInt(f.scrollAmount),v="auto"!==f.scrollAmount?m:u,x=i?i:e?o?"mcsLinearOut":"mcsEaseInOut":"mcsLinear",_=e?!0:!1;return e&&17>a&&(v="x"===f.dir[0]?s[1]:s[0]),Q(t,v.toString(),{dir:f.dir[0],scrollEasing:x,dur:a,onComplete:_}),e?void(f.dir=!1):(clearTimeout(f.step),void(f.step=setTimeout(function(){l()},a)))}function s(){clearTimeout(f.step),Z(f,"step"),V(t)}var c=t.data(a),u=c.opt,f=c.sequential,h=e("#mCSB_"+c.idx+"_container"),m="stepped"===f.type?!0:!1,p=u.scrollInertia<26?26:u.scrollInertia,g=u.scrollInertia<1?17:u.scrollInertia;switch(o){case"on":if(f.dir=[n===d[16]||n===d[15]||39===n||37===n?"x":"y",n===d[13]||n===d[15]||38===n||37===n?-1:1],V(t),tt(n)&&"stepped"===f.type)return;l(m);break;case"off":s(),(m||c.tweenRunning&&f.dir)&&l(!0)}},Y=function(t){var o=e(this).data(a).opt,n=[];return"function"==typeof t&&(t=t()),t instanceof Array?n=t.length>1?[t[0],t[1]]:"x"===o.axis?[null,t[0]]:[t[0],null]:(n[0]=t.y?t.y:t.x||"x"===o.axis?null:t,n[1]=t.x?t.x:t.y||"y"===o.axis?null:t),"function"==typeof n[0]&&(n[0]=n[0]()),"function"==typeof n[1]&&(n[1]=n[1]()),n},j=function(t,o){if(null!=t&&"undefined"!=typeof t){var n=e(this),i=n.data(a),r=i.opt,l=e("#mCSB_"+i.idx+"_container"),s=l.parent(),c=typeof t;o||(o="x"===r.axis?"x":"y");var d="x"===o?l.outerWidth(!1):l.outerHeight(!1),f="x"===o?l[0].offsetLeft:l[0].offsetTop,h="x"===o?"left":"top";switch(c){case"function":return t();case"object":var m=t.jquery?t:e(t);if(!m.length)return;return"x"===o?ot(m)[1]:ot(m)[0];case"string":case"number":if(tt(t))return Math.abs(t);if(-1!==t.indexOf("%"))return Math.abs(d*parseInt(t)/100);if(-1!==t.indexOf("-="))return Math.abs(f-parseInt(t.split("-=")[1]));if(-1!==t.indexOf("+=")){var p=f+parseInt(t.split("+=")[1]);return p>=0?0:Math.abs(p)}if(-1!==t.indexOf("px")&&tt(t.split("px")[0]))return Math.abs(t.split("px")[0]);if("top"===t||"left"===t)return 0;if("bottom"===t)return Math.abs(s.height()-l.outerHeight(!1));if("right"===t)return Math.abs(s.width()-l.outerWidth(!1));if("first"===t||"last"===t){var m=l.find(":"+t);return"x"===o?ot(m)[1]:ot(m)[0]}return e(t).length?"x"===o?ot(e(t))[1]:ot(e(t))[0]:(l.css(h,t),void u.update.call(null,n[0]))}}},X=function(t){function o(){clearTimeout(h[0].autoUpdate),h[0].autoUpdate=setTimeout(function(){return f.advanced.updateOnSelectorChange&&(m=r(),m!==w)?(l(3),void(w=m)):(f.advanced.updateOnContentResize&&(p=[h.outerHeight(!1),h.outerWidth(!1),v.height(),v.width(),_()[0],_()[1]],(p[0]!==S[0]||p[1]!==S[1]||p[2]!==S[2]||p[3]!==S[3]||p[4]!==S[4]||p[5]!==S[5])&&(l(p[0]!==S[0]||p[1]!==S[1]),S=p)),f.advanced.updateOnImageLoad&&(g=n(),g!==b&&(h.find("img").each(function(){i(this)}),b=g)),void((f.advanced.updateOnSelectorChange||f.advanced.updateOnContentResize||f.advanced.updateOnImageLoad)&&o()))},60)}function n(){var e=0;return f.advanced.updateOnImageLoad&&(e=h.find("img").length),e}function i(t){function o(e,t){return function(){return t.apply(e,arguments)}}function a(){this.onload=null,e(t).addClass(d[2]),l(2)}if(e(t).hasClass(d[2]))return void l(); -var n=new Image;n.onload=o(n,a),n.src=t.src}function r(){f.advanced.updateOnSelectorChange===!0&&(f.advanced.updateOnSelectorChange="*");var t=0,o=h.find(f.advanced.updateOnSelectorChange);return f.advanced.updateOnSelectorChange&&o.length>0&&o.each(function(){t+=e(this).height()+e(this).width()}),t}function l(e){clearTimeout(h[0].autoUpdate),u.update.call(null,s[0],e)}var s=e(this),c=s.data(a),f=c.opt,h=e("#mCSB_"+c.idx+"_container");if(t)return clearTimeout(h[0].autoUpdate),void Z(h[0],"autoUpdate");var m,p,g,v=h.parent(),x=[e("#mCSB_"+c.idx+"_scrollbar_vertical"),e("#mCSB_"+c.idx+"_scrollbar_horizontal")],_=function(){return[x[0].is(":visible")?x[0].outerHeight(!0):0,x[1].is(":visible")?x[1].outerWidth(!0):0]},w=r(),S=[h.outerHeight(!1),h.outerWidth(!1),v.height(),v.width(),_()[0],_()[1]],b=n();o()},N=function(e,t,o){return Math.round(e/t)*t-o},V=function(t){var o=t.data(a),n=e("#mCSB_"+o.idx+"_container,#mCSB_"+o.idx+"_container_wrapper,#mCSB_"+o.idx+"_dragger_vertical,#mCSB_"+o.idx+"_dragger_horizontal");n.each(function(){K.call(this)})},Q=function(t,o,n){function i(e){return s&&c.callbacks[e]&&"function"==typeof c.callbacks[e]}function r(){return[c.callbacks.alwaysTriggerOffsets||_>=w[0]+b,c.callbacks.alwaysTriggerOffsets||-C>=_]}function l(){var e=[h[0].offsetTop,h[0].offsetLeft],o=[v[0].offsetTop,v[0].offsetLeft],a=[h.outerHeight(!1),h.outerWidth(!1)],i=[f.height(),f.width()];t[0].mcs={content:h,top:e[0],left:e[1],draggerTop:o[0],draggerLeft:o[1],topPct:Math.round(100*Math.abs(e[0])/(Math.abs(a[0])-i[0])),leftPct:Math.round(100*Math.abs(e[1])/(Math.abs(a[1])-i[1])),direction:n.dir}}var s=t.data(a),c=s.opt,d={trigger:"internal",dir:"y",scrollEasing:"mcsEaseOut",drag:!1,dur:c.scrollInertia,overwrite:"all",callbacks:!0,onStart:!0,onUpdate:!0,onComplete:!0},n=e.extend(d,n),u=[n.dur,n.drag?0:n.dur],f=e("#mCSB_"+s.idx),h=e("#mCSB_"+s.idx+"_container"),m=h.parent(),p=c.callbacks.onTotalScrollOffset?Y.call(t,c.callbacks.onTotalScrollOffset):[0,0],g=c.callbacks.onTotalScrollBackOffset?Y.call(t,c.callbacks.onTotalScrollBackOffset):[0,0];if(s.trigger=n.trigger,(0!==m.scrollTop()||0!==m.scrollLeft())&&(e(".mCSB_"+s.idx+"_scrollbar").css("visibility","visible"),m.scrollTop(0).scrollLeft(0)),"_resetY"!==o||s.contentReset.y||(i("onOverflowYNone")&&c.callbacks.onOverflowYNone.call(t[0]),s.contentReset.y=1),"_resetX"!==o||s.contentReset.x||(i("onOverflowXNone")&&c.callbacks.onOverflowXNone.call(t[0]),s.contentReset.x=1),"_resetY"!==o&&"_resetX"!==o){switch(!s.contentReset.y&&t[0].mcs||!s.overflowed[0]||(i("onOverflowY")&&c.callbacks.onOverflowY.call(t[0]),s.contentReset.x=null),!s.contentReset.x&&t[0].mcs||!s.overflowed[1]||(i("onOverflowX")&&c.callbacks.onOverflowX.call(t[0]),s.contentReset.x=null),c.snapAmount&&(o=N(o,c.snapAmount,c.snapOffset)),n.dir){case"x":var v=e("#mCSB_"+s.idx+"_dragger_horizontal"),x="left",_=h[0].offsetLeft,w=[f.width()-h.outerWidth(!1),v.parent().width()-v.width()],S=[o,0===o?0:o/s.scrollRatio.x],b=p[1],C=g[1],B=b>0?b/s.scrollRatio.x:0,T=C>0?C/s.scrollRatio.x:0;break;case"y":var v=e("#mCSB_"+s.idx+"_dragger_vertical"),x="top",_=h[0].offsetTop,w=[f.height()-h.outerHeight(!1),v.parent().height()-v.height()],S=[o,0===o?0:o/s.scrollRatio.y],b=p[0],C=g[0],B=b>0?b/s.scrollRatio.y:0,T=C>0?C/s.scrollRatio.y:0}S[1]<0||0===S[0]&&0===S[1]?S=[0,0]:S[1]>=w[1]?S=[w[0],w[1]]:S[0]=-S[0],t[0].mcs||(l(),i("onInit")&&c.callbacks.onInit.call(t[0])),clearTimeout(h[0].onCompleteTimeout),(s.tweenRunning||!(0===_&&S[0]>=0||_===w[0]&&S[0]<=w[0]))&&(G(v[0],x,Math.round(S[1]),u[1],n.scrollEasing),G(h[0],x,Math.round(S[0]),u[0],n.scrollEasing,n.overwrite,{onStart:function(){n.callbacks&&n.onStart&&!s.tweenRunning&&(i("onScrollStart")&&(l(),c.callbacks.onScrollStart.call(t[0])),s.tweenRunning=!0,y(v),s.cbOffsets=r())},onUpdate:function(){n.callbacks&&n.onUpdate&&i("whileScrolling")&&(l(),c.callbacks.whileScrolling.call(t[0]))},onComplete:function(){if(n.callbacks&&n.onComplete){"yx"===c.axis&&clearTimeout(h[0].onCompleteTimeout);var e=h[0].idleTimer||0;h[0].onCompleteTimeout=setTimeout(function(){i("onScroll")&&(l(),c.callbacks.onScroll.call(t[0])),i("onTotalScroll")&&S[1]>=w[1]-B&&s.cbOffsets[0]&&(l(),c.callbacks.onTotalScroll.call(t[0])),i("onTotalScrollBack")&&S[1]<=T&&s.cbOffsets[1]&&(l(),c.callbacks.onTotalScrollBack.call(t[0])),s.tweenRunning=!1,h[0].idleTimer=0,y(v,"hide")},e)}}}))}},G=function(e,t,o,a,n,i,r){function l(){S.stop||(x||m.call(),x=J()-v,s(),x>=S.time&&(S.time=x>S.time?x+f-(x-S.time):x+f-1,S.time0?(S.currVal=u(S.time,_,b,a,n),w[t]=Math.round(S.currVal)+"px"):w[t]=o+"px",p.call()}function c(){f=1e3/60,S.time=x+f,h=window.requestAnimationFrame?window.requestAnimationFrame:function(e){return s(),setTimeout(e,.01)},S.id=h(l)}function d(){null!=S.id&&(window.requestAnimationFrame?window.cancelAnimationFrame(S.id):clearTimeout(S.id),S.id=null)}function u(e,t,o,a,n){switch(n){case"linear":case"mcsLinear":return o*e/a+t;case"mcsLinearOut":return e/=a,e--,o*Math.sqrt(1-e*e)+t;case"easeInOutSmooth":return e/=a/2,1>e?o/2*e*e+t:(e--,-o/2*(e*(e-2)-1)+t);case"easeInOutStrong":return e/=a/2,1>e?o/2*Math.pow(2,10*(e-1))+t:(e--,o/2*(-Math.pow(2,-10*e)+2)+t);case"easeInOut":case"mcsEaseInOut":return e/=a/2,1>e?o/2*e*e*e+t:(e-=2,o/2*(e*e*e+2)+t);case"easeOutSmooth":return e/=a,e--,-o*(e*e*e*e-1)+t;case"easeOutStrong":return o*(-Math.pow(2,-10*e/a)+1)+t;case"easeOut":case"mcsEaseOut":default:var i=(e/=a)*e,r=i*e;return t+o*(.499999999999997*r*i+-2.5*i*i+5.5*r+-6.5*i+4*e)}}e._mTween||(e._mTween={top:{},left:{}});var f,h,r=r||{},m=r.onStart||function(){},p=r.onUpdate||function(){},g=r.onComplete||function(){},v=J(),x=0,_=e.offsetTop,w=e.style,S=e._mTween[t];"left"===t&&(_=e.offsetLeft);var b=o-_;S.stop=0,"none"!==i&&d(),c()},J=function(){return window.performance&&window.performance.now?window.performance.now():window.performance&&window.performance.webkitNow?window.performance.webkitNow():Date.now?Date.now():(new Date).getTime()},K=function(){var e=this;e._mTween||(e._mTween={top:{},left:{}});for(var t=["top","left"],o=0;o=0&&a[0]+ot(n)[0]=0&&a[1]+ot(n)[1]i;i++)callback.call(null,i,obj[i])}function setAuthQueryString(){authQueryString="?sentry_version=4&sentry_client=raven-js/"+Raven.VERSION+"&sentry_key="+globalKey}function handleStackInfo(stackInfo,options){var frames=[];stackInfo.stack&&stackInfo.stack.length&&each(stackInfo.stack,function(i,stack){var frame=normalizeFrame(stack);frame&&frames.push(frame)}),triggerEvent("handle",{stackInfo:stackInfo,options:options}),processException(stackInfo.name,stackInfo.message,stackInfo.url,stackInfo.lineno,frames,options)}function normalizeFrame(frame){if(frame.url){var i,normalized={filename:frame.url,lineno:frame.line,colno:frame.column,"function":frame.func||"?"},context=extractContextFromFrame(frame);if(context){var keys=["pre_context","context_line","post_context"];for(i=3;i--;)normalized[keys[i]]=context[i]}return normalized.in_app=!(!globalOptions.includePaths.test(normalized.filename)||/(Raven|TraceKit)\./.test(normalized["function"])||/raven\.(min\.)?js$/.test(normalized.filename)),normalized}}function extractContextFromFrame(frame){if(frame.context&&globalOptions.fetchContext){for(var context=frame.context,pivot=~~(context.length/2),i=context.length,isMinified=!1;i--;)if(context[i].length>300){isMinified=!0;break}if(isMinified){if(isUndefined(frame.column))return;return[[],context[pivot].substr(frame.column,50),[]]}return[context.slice(0,pivot),context[pivot],context.slice(pivot+1)]}}function processException(type,message,fileurl,lineno,frames,options){var stacktrace,label;message+="",("Error"!==type||message)&&(globalOptions.ignoreErrors.test(message)||(frames&&frames.length?(fileurl=frames[0].filename||fileurl,frames.reverse(),stacktrace={frames:frames}):fileurl&&(stacktrace={frames:[{filename:fileurl,lineno:lineno,in_app:!0}]}),message=truncate(message,globalOptions.maxMessageLength),globalOptions.ignoreUrls&&globalOptions.ignoreUrls.test(fileurl)||(!globalOptions.whitelistUrls||globalOptions.whitelistUrls.test(fileurl))&&(label=lineno?message+" at "+lineno:message,send(objectMerge({exception:{type:type,value:message},stacktrace:stacktrace,culprit:fileurl,message:label},options)))))}function objectMerge(obj1,obj2){return obj2?(each(obj2,function(key,value){obj1[key]=value}),obj1):obj1}function truncate(str,max){return str.length<=max?str:str.substr(0,max)+"…"}function now(){return+new Date}function getHttpData(){var http={url:document.location.href,headers:{"User-Agent":navigator.userAgent}};return document.referrer&&(http.headers.Referer=document.referrer),http}function send(data){isSetup()&&(data=objectMerge({project:globalProject,logger:globalOptions.logger,platform:"javascript",request:getHttpData()},data),data.tags=objectMerge(objectMerge({},globalOptions.tags),data.tags),data.extra=objectMerge(objectMerge({},globalOptions.extra),data.extra),data.extra=objectMerge({"session:duration":now()-startTime},data.extra),isEmptyObject(data.tags)&&delete data.tags,globalUser&&(data.user=globalUser),globalOptions.release&&(data.release=globalOptions.release),isFunction(globalOptions.dataCallback)&&(data=globalOptions.dataCallback(data)),(!isFunction(globalOptions.shouldSendCallback)||globalOptions.shouldSendCallback(data))&&(lastEventId=data.event_id||(data.event_id=uuid4()),makeRequest(data)))}function makeRequest(data){var img=new Image,src=globalServer+authQueryString+"&sentry_data="+encodeURIComponent(JSON.stringify(data));img.crossOrigin="anonymous",img.onload=function(){triggerEvent("success",{data:data,src:src})},img.onerror=img.onabort=function(){triggerEvent("failure",{data:data,src:src})},img.src=src}function isSetup(){return hasJSON?globalServer?!0:(logDebug("error","Error: Raven has not been configured."),!1):!1}function joinRegExp(patterns){for(var pattern,sources=[],i=0,len=patterns.length;len>i;i++)pattern=patterns[i],isString(pattern)?sources.push(pattern.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1")):pattern&&pattern.source&&sources.push(pattern.source);return new RegExp(sources.join("|"),"i")}function uuid4(){return"xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g,function(c){var r=16*Math.random()|0,v="x"==c?r:3&r|8;return v.toString(16)})}function logDebug(level,message){window.console&&console[level]&&Raven.debug&&console[level](message)}function afterLoad(){var RavenConfig=window.RavenConfig;RavenConfig&&Raven.config(RavenConfig.dsn,RavenConfig.config).install()}var TraceKit={remoteFetching:!1,collectWindowErrors:!0,linesOfContext:7},_slice=[].slice,UNKNOWN_FUNCTION="?";TraceKit.wrap=function(func){function wrapped(){try{return func.apply(this,arguments)}catch(e){throw TraceKit.report(e),e}}return wrapped},TraceKit.report=function(){function subscribe(handler){installGlobalHandler(),handlers.push(handler)}function unsubscribe(handler){for(var i=handlers.length-1;i>=0;--i)handlers[i]===handler&&handlers.splice(i,1)}function unsubscribeAll(){uninstallGlobalHandler(),handlers=[]}function notifyHandlers(stack,isWindowError){var exception=null;if(!isWindowError||TraceKit.collectWindowErrors){for(var i in handlers)if(hasKey(handlers,i))try{handlers[i].apply(null,[stack].concat(_slice.call(arguments,2)))}catch(inner){exception=inner}if(exception)throw exception}}function traceKitWindowOnError(message,url,lineNo,colNo,ex){var stack=null;if(lastExceptionStack)TraceKit.computeStackTrace.augmentStackTraceWithInitialElement(lastExceptionStack,url,lineNo,message),processLastException();else if(ex)stack=TraceKit.computeStackTrace(ex),notifyHandlers(stack,!0);else{var location={url:url,line:lineNo,column:colNo};location.func=TraceKit.computeStackTrace.guessFunctionName(location.url,location.line),location.context=TraceKit.computeStackTrace.gatherContext(location.url,location.line),stack={message:message,url:document.location.href,stack:[location]},notifyHandlers(stack,!0)}return _oldOnerrorHandler?_oldOnerrorHandler.apply(this,arguments):!1}function installGlobalHandler(){_onErrorHandlerInstalled||(_oldOnerrorHandler=window.onerror,window.onerror=traceKitWindowOnError,_onErrorHandlerInstalled=!0)}function uninstallGlobalHandler(){_onErrorHandlerInstalled&&(window.onerror=_oldOnerrorHandler,_onErrorHandlerInstalled=!1,_oldOnerrorHandler=undefined)}function processLastException(){var _lastExceptionStack=lastExceptionStack,_lastArgs=lastArgs;lastArgs=null,lastExceptionStack=null,lastException=null,notifyHandlers.apply(null,[_lastExceptionStack,!1].concat(_lastArgs))}function report(ex,rethrow){var args=_slice.call(arguments,1);if(lastExceptionStack){if(lastException===ex)return;processLastException()}var stack=TraceKit.computeStackTrace(ex);if(lastExceptionStack=stack,lastException=ex,lastArgs=args,window.setTimeout(function(){lastException===ex&&processLastException()},stack.incomplete?2e3:0),rethrow!==!1)throw ex}var _oldOnerrorHandler,_onErrorHandlerInstalled,handlers=[],lastArgs=null,lastException=null,lastExceptionStack=null;return report.subscribe=subscribe,report.unsubscribe=unsubscribe,report.uninstall=unsubscribeAll,report}(),TraceKit.computeStackTrace=function(){function loadSource(url){if(!TraceKit.remoteFetching)return"";try{var getXHR=function(){try{return new window.XMLHttpRequest}catch(e){return new window.ActiveXObject("Microsoft.XMLHTTP")}},request=getXHR();return request.open("GET",url,!1),request.send(""),request.responseText}catch(e){return""}}function getSource(url){if(!isString(url))return[];if(!hasKey(sourceCache,url)){var source="";-1!==url.indexOf(document.domain)&&(source=loadSource(url)),sourceCache[url]=source?source.split("\n"):[]}return sourceCache[url]}function guessFunctionName(url,lineNo){var m,reFunctionArgNames=/function ([^(]*)\(([^)]*)\)/,reGuessFunction=/['"]?([0-9A-Za-z$_]+)['"]?\s*[:=]\s*(function|eval|new Function)/,line="",maxLines=10,source=getSource(url);if(!source.length)return UNKNOWN_FUNCTION;for(var i=0;maxLines>i;++i)if(line=source[lineNo-i]+line,!isUndefined(line)){if(m=reGuessFunction.exec(line))return m[1];if(m=reFunctionArgNames.exec(line))return m[1]}return UNKNOWN_FUNCTION}function gatherContext(url,line){var source=getSource(url);if(!source.length)return null;var context=[],linesBefore=Math.floor(TraceKit.linesOfContext/2),linesAfter=linesBefore+TraceKit.linesOfContext%2,start=Math.max(0,line-linesBefore-1),end=Math.min(source.length,line+linesAfter-1);line-=1;for(var i=start;end>i;++i)isUndefined(source[i])||context.push(source[i]);return context.length>0?context:null}function escapeRegExp(text){return text.replace(/[\-\[\]{}()*+?.,\\\^$|#]/g,"\\$&")}function escapeCodeAsRegExpForMatchingInsideHTML(body){return escapeRegExp(body).replace("<","(?:<|<)").replace(">","(?:>|>)").replace("&","(?:&|&)").replace('"','(?:"|")').replace(/\s+/g,"\\s+")}function findSourceInUrls(re,urls){for(var source,m,i=0,j=urls.length;j>i;++i)if((source=getSource(urls[i])).length&&(source=source.join("\n"),m=re.exec(source)))return{url:urls[i],line:source.substring(0,m.index).split("\n").length,column:m.index-source.lastIndexOf("\n",m.index)-1};return null}function findSourceInLine(fragment,url,line){var m,source=getSource(url),re=new RegExp("\\b"+escapeRegExp(fragment)+"\\b");return line-=1,source&&source.length>line&&(m=re.exec(source[line]))?m.index:null}function findSourceByFunctionBody(func){for(var body,re,parts,result,urls=[window.location.href],scripts=document.getElementsByTagName("script"),code=""+func,codeRE=/^function(?:\s+([\w$]+))?\s*\(([\w\s,]*)\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/,eventRE=/^function on([\w$]+)\s*\(event\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/,i=0;ii;++i){if(parts=gecko.exec(lines[i]))element={url:parts[3],func:parts[1]||UNKNOWN_FUNCTION,args:parts[2]?parts[2].split(","):"",line:+parts[4],column:parts[5]?+parts[5]:null};else{if(!(parts=chrome.exec(lines[i])))continue;element={url:parts[2],func:parts[1]||UNKNOWN_FUNCTION,line:+parts[3],column:parts[4]?+parts[4]:null}}!element.func&&element.line&&(element.func=guessFunctionName(element.url,element.line)),element.line&&(element.context=gatherContext(element.url,element.line)),stack.push(element)}return stack.length?(stack[0].line&&!stack[0].column&&reference?stack[0].column=findSourceInLine(reference[1],stack[0].url,stack[0].line):stack[0].column||isUndefined(ex.columnNumber)||(stack[0].column=ex.columnNumber+1),{name:ex.name,message:ex.message,url:document.location.href,stack:stack}):null}function computeStackTraceFromStacktraceProp(ex){for(var parts,stacktrace=ex.stacktrace,testRE=/ line (\d+), column (\d+) in (?:]+)>|([^\)]+))\((.*)\) in (.*):\s*$/i,lines=stacktrace.split("\n"),stack=[],i=0,j=lines.length;j>i;i+=2)if(parts=testRE.exec(lines[i])){var element={line:+parts[1],column:+parts[2],func:parts[3]||parts[4],args:parts[5]?parts[5].split(","):[],url:parts[6]};if(!element.func&&element.line&&(element.func=guessFunctionName(element.url,element.line)),element.line)try{element.context=gatherContext(element.url,element.line)}catch(exc){}element.context||(element.context=[lines[i+1]]),stack.push(element)}return stack.length?{name:ex.name,message:ex.message,url:document.location.href,stack:stack}:null}function computeStackTraceFromOperaMultiLineMessage(ex){var lines=ex.message.split("\n");if(lines.length<4)return null;var parts,i,len,source,lineRE1=/^\s*Line (\d+) of linked script ((?:file|https?)\S+)(?:: in function (\S+))?\s*$/i,lineRE2=/^\s*Line (\d+) of inline#(\d+) script in ((?:file|https?)\S+)(?:: in function (\S+))?\s*$/i,lineRE3=/^\s*Line (\d+) of function script\s*$/i,stack=[],scripts=document.getElementsByTagName("script"),inlineScriptBlocks=[];for(i in scripts)hasKey(scripts,i)&&!scripts[i].src&&inlineScriptBlocks.push(scripts[i]);for(i=2,len=lines.length;len>i;i+=2){var item=null;if(parts=lineRE1.exec(lines[i]))item={url:parts[2],func:parts[3],line:+parts[1]};else if(parts=lineRE2.exec(lines[i])){item={url:parts[3],func:parts[4]};var relativeLine=+parts[1],script=inlineScriptBlocks[parts[2]-1];if(script&&(source=getSource(item.url))){source=source.join("\n");var pos=source.indexOf(script.innerText);pos>=0&&(item.line=relativeLine+source.substring(0,pos).split("\n").length)}}else if(parts=lineRE3.exec(lines[i])){var url=window.location.href.replace(/#.*$/,""),line=parts[1],re=new RegExp(escapeCodeAsRegExpForMatchingInsideHTML(lines[i+1]));source=findSourceInUrls(re,[url]),item={url:url,line:source?source.line:line,func:""}}if(item){item.func||(item.func=guessFunctionName(item.url,item.line));var context=gatherContext(item.url,item.line),midline=context?context[Math.floor(context.length/2)]:null;item.context=context&&midline.replace(/^\s*/,"")===lines[i+1].replace(/^\s*/,"")?context:[lines[i+1]],stack.push(item)}}return stack.length?{name:ex.name,message:lines[0],url:document.location.href,stack:stack}:null}function augmentStackTraceWithInitialElement(stackInfo,url,lineNo,message){var initial={url:url,line:lineNo};if(initial.url&&initial.line){stackInfo.incomplete=!1,initial.func||(initial.func=guessFunctionName(initial.url,initial.line)),initial.context||(initial.context=gatherContext(initial.url,initial.line));var reference=/ '([^']+)' /.exec(message);if(reference&&(initial.column=findSourceInLine(reference[1],initial.url,initial.line)),stackInfo.stack.length>0&&stackInfo.stack[0].url===initial.url){if(stackInfo.stack[0].line===initial.line)return!1;if(!stackInfo.stack[0].line&&stackInfo.stack[0].func===initial.func)return stackInfo.stack[0].line=initial.line,stackInfo.stack[0].context=initial.context,!1}return stackInfo.stack.unshift(initial),stackInfo.partial=!0,!0}return stackInfo.incomplete=!0,!1}function computeStackTraceByWalkingCallerChain(ex,depth){for(var parts,item,source,functionName=/function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i,stack=[],funcs={},recursion=!1,curr=computeStackTraceByWalkingCallerChain.caller;curr&&!recursion;curr=curr.caller)if(curr!==computeStackTrace&&curr!==TraceKit.report){if(item={url:null,func:UNKNOWN_FUNCTION,line:null,column:null},curr.name?item.func=curr.name:(parts=functionName.exec(curr.toString()))&&(item.func=parts[1]),source=findSourceByFunctionBody(curr)){item.url=source.url,item.line=source.line,item.func===UNKNOWN_FUNCTION&&(item.func=guessFunctionName(item.url,item.line));var reference=/ '([^']+)' /.exec(ex.message||ex.description);reference&&(item.column=findSourceInLine(reference[1],source.url,source.line))}funcs[""+curr]?recursion=!0:funcs[""+curr]=!0,stack.push(item)}depth&&stack.splice(0,depth);var result={name:ex.name,message:ex.message,url:document.location.href,stack:stack};return augmentStackTraceWithInitialElement(result,ex.sourceURL||ex.fileName,ex.line||ex.lineNumber,ex.message||ex.description),result}function computeStackTrace(ex,depth){var stack=null;depth=null==depth?0:+depth;try{if(stack=computeStackTraceFromStacktraceProp(ex))return stack}catch(e){if(debug)throw e}try{if(stack=computeStackTraceFromStackProp(ex))return stack}catch(e){if(debug)throw e}try{if(stack=computeStackTraceFromOperaMultiLineMessage(ex))return stack}catch(e){if(debug)throw e}try{if(stack=computeStackTraceByWalkingCallerChain(ex,depth+1))return stack}catch(e){if(debug)throw e}return{}}var debug=!1,sourceCache={};return computeStackTrace.augmentStackTraceWithInitialElement=augmentStackTraceWithInitialElement,computeStackTrace.computeStackTraceFromStackProp=computeStackTraceFromStackProp,computeStackTrace.guessFunctionName=guessFunctionName,computeStackTrace.gatherContext=gatherContext,computeStackTrace}();var lastCapturedException,lastEventId,globalServer,globalUser,globalKey,globalProject,authQueryString,_Raven=window.Raven,hasJSON=!("object"!=typeof JSON||!JSON.stringify),globalOptions={logger:"javascript",ignoreErrors:[],ignoreUrls:[],whitelistUrls:[],includePaths:[],collectWindowErrors:!0,tags:{},maxMessageLength:100,extra:{}},isRavenInstalled=!1,objectPrototype=Object.prototype,startTime=now(),Raven={VERSION:"1.1.17",debug:!0,noConflict:function(){return window.Raven=_Raven,Raven},config:function(dsn,options){if(globalServer)return logDebug("error","Error: Raven has already been configured"),Raven;if(!dsn)return Raven;var uri=parseDSN(dsn),lastSlash=uri.path.lastIndexOf("/"),path=uri.path.substr(1,lastSlash);return options&&each(options,function(key,value){globalOptions[key]=value}),globalOptions.ignoreErrors.push(/^Script error\.?$/),globalOptions.ignoreErrors.push(/^Javascript error: Script error\.? on line 0$/),globalOptions.ignoreErrors=joinRegExp(globalOptions.ignoreErrors),globalOptions.ignoreUrls=globalOptions.ignoreUrls.length?joinRegExp(globalOptions.ignoreUrls):!1,globalOptions.whitelistUrls=globalOptions.whitelistUrls.length?joinRegExp(globalOptions.whitelistUrls):!1,globalOptions.includePaths=joinRegExp(globalOptions.includePaths),globalKey=uri.user,globalProject=uri.path.substr(lastSlash+1),globalServer="//"+uri.host+(uri.port?":"+uri.port:"")+"/"+path+"api/"+globalProject+"/store/",uri.protocol&&(globalServer=uri.protocol+":"+globalServer),globalOptions.fetchContext&&(TraceKit.remoteFetching=!0),globalOptions.linesOfContext&&(TraceKit.linesOfContext=globalOptions.linesOfContext),TraceKit.collectWindowErrors=!!globalOptions.collectWindowErrors,setAuthQueryString(),Raven},install:function(){return isSetup()&&!isRavenInstalled&&(TraceKit.report.subscribe(handleStackInfo),isRavenInstalled=!0),Raven},context:function(options,func,args){return isFunction(options)&&(args=func||[],func=options,options=undefined),Raven.wrap(options,func).apply(this,args)},wrap:function(options,func){function wrapped(){for(var args=[],i=arguments.length,deep=!options||options&&options.deep!==!1;i--;)args[i]=deep?Raven.wrap(options,arguments[i]):arguments[i];try{return func.apply(this,args)}catch(e){throw Raven.captureException(e,options),e}}if(isUndefined(func)&&!isFunction(options))return options;if(isFunction(options)&&(func=options,options=undefined),!isFunction(func))return func;if(func.__raven__)return func;for(var property in func)hasKey(func,property)&&(wrapped[property]=func[property]);return wrapped.__raven__=!0,wrapped.__inner__=func,wrapped},uninstall:function(){return TraceKit.report.uninstall(),isRavenInstalled=!1,Raven},captureException:function(ex,options){if(!isError(ex))return Raven.captureMessage(ex,options);lastCapturedException=ex;try{TraceKit.report(ex,options)}catch(ex1){if(ex!==ex1)throw ex1}return Raven},captureMessage:function(msg,options){return globalOptions.ignoreErrors.test&&globalOptions.ignoreErrors.test(msg)?void 0:(send(objectMerge({message:msg+""},options)),Raven)},setUserContext:function(user){return globalUser=user,Raven},setExtraContext:function(extra){return globalOptions.extra=extra||{},Raven},setTagsContext:function(tags){return globalOptions.tags=tags||{},Raven},setReleaseContext:function(release){return globalOptions.release=release,Raven},lastException:function(){return lastCapturedException},lastEventId:function(){return lastEventId},isSetup:function(){return isSetup()}};Raven.setUser=Raven.setUserContext;var dsnKeys="source protocol user pass host port path".split(" "),dsnPattern=/^(?:(\w+):)?\/\/(\w+)(:\w+)?@([\w\.-]+)(?::(\d+))?(\/.*)/;RavenConfigError.prototype=new Error,RavenConfigError.prototype.constructor=RavenConfigError,afterLoad(),"function"==typeof define&&define.amd?(window.Raven=Raven,define("raven",[],function(){return Raven})):"object"==typeof module?module.exports=Raven:"object"==typeof exports?exports=Raven:window.Raven=Raven}(window),function(window,undefined){var gEval=function(js){(window.execScript||function(js){window.eval.call(window,js)})(js)},isA=function(a,b){return a instanceof(b||Array)},D=document,getElementsByTagName="getElementsByTagName",length="length",readyState="readyState",onreadystatechange="onreadystatechange",scripts=D[getElementsByTagName]("script"),scriptTag=scripts[scripts[length]-1],script=scriptTag.innerHTML.replace(/^\s+|\s+$/g,"");if(!window.ljs){var checkLoaded=scriptTag.src.match(/checkLoaded/)?1:0,header=D[getElementsByTagName]("head")[0]||D.documentElement,urlParse=function(url){var parts={};return parts.u=url.replace(/#(=)?([^#]*)?/g,function(m,a,b){return parts[a?"f":"i"]=b,""}),parts},appendElmt=function(type,attrs,cb){var i,e=D.createElement(type);cb&&(e[readyState]?e[onreadystatechange]=function(){("loaded"===e[readyState]||"complete"===e[readyState])&&(e[onreadystatechange]=null,cb())}:e.onload=cb);for(i in attrs)attrs[i]&&(e[i]=attrs[i]);header.appendChild(e)},load=function(url,cb){if(this.aliases&&this.aliases[url]){var args=this.aliases[url].slice(0);return isA(args)||(args=[args]),cb&&args.push(cb),this.load.apply(this,args)}if(isA(url)){for(var l=url[length];l--;)this.load(url[l]);return cb&&url.push(cb),this.load.apply(this,url)}return url.match(/\.css\b/)?this.loadcss(url,cb):this.loadjs(url,cb)},loaded={},loader={aliases:{},loadjs:function(url,cb){var parts=urlParse(url);return url=parts.u,loaded[url]===!0?(cb&&cb(),this):loaded[url]!==undefined?(cb&&(loaded[url]=function(ocb,cb){return function(){ocb&&ocb(),cb&&cb()}}(loaded[url],cb)),this):(loaded[url]=function(cb){return function(){loaded[url]=!0,cb&&cb()}}(cb),cb=function(){loaded[url]()},appendElmt("script",{type:"text/javascript",src:url,id:parts.i,onerror:function(error){if(parts.f){var c=error.currentTarget;c.parentNode.removeChild(c),appendElmt("script",{type:"text/javascript",src:parts.f,id:parts.i},cb)}}},cb),this)},loadcss:function(url,cb){var parts=urlParse(url);return url=parts.u,loaded[url]||appendElmt("link",{type:"text/css",rel:"stylesheet",href:url,id:parts.i}),loaded[url]=!0,cb&&cb(),this},load:function(){var argv=arguments,argc=argv[length];return 1===argc&&isA(argv[0],Function)?(argv[0](),this):(load.call(this,argv[0],1>=argc?undefined:function(){loader.load.apply(loader,[].slice.call(argv,1))}),this)},addAliases:function(aliases){for(var i in aliases)this.aliases[i]=isA(aliases[i])?aliases[i].slice(0):aliases[i];return this}};if(checkLoaded){var i,l,links,url; -for(i=0,l=scripts[length];l>i;i++)(url=scripts[i].getAttribute("src"))&&(loaded[url.replace(/#.*$/,"")]=!0);for(links=D[getElementsByTagName]("link"),i=0,l=links[length];l>i;i++)("stylesheet"===links[i].rel||"text/css"===links[i].type)&&(loaded[links[i].getAttribute("href").replace(/#.*$/,"")]=!0)}window.ljs=loader}script&&gEval(script)}(window),function(factory){"function"==typeof define&&define.amd?define(["jquery"],factory):factory(jQuery)}(function($){function focusable(element,isTabIndexNotNaN){var map,mapName,img,nodeName=element.nodeName.toLowerCase();return"area"===nodeName?(map=element.parentNode,mapName=map.name,element.href&&mapName&&"map"===map.nodeName.toLowerCase()?(img=$("img[usemap=#"+mapName+"]")[0],!!img&&visible(img)):!1):(/input|select|textarea|button|object/.test(nodeName)?!element.disabled:"a"===nodeName?element.href||isTabIndexNotNaN:isTabIndexNotNaN)&&visible(element)}function visible(element){return $.expr.filters.visible(element)&&!$(element).parents().addBack().filter(function(){return"hidden"===$.css(this,"visibility")}).length}$.ui=$.ui||{},$.extend($.ui,{version:"@VERSION",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),$.fn.extend({scrollParent:function(){var position=this.css("position"),excludeStaticParent="absolute"===position,scrollParent=this.parents().filter(function(){var parent=$(this);return excludeStaticParent&&"static"===parent.css("position")?!1:/(auto|scroll)/.test(parent.css("overflow")+parent.css("overflow-y")+parent.css("overflow-x"))}).eq(0);return"fixed"!==position&&scrollParent.length?scrollParent:$(this[0].ownerDocument||document)},uniqueId:function(){var uuid=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++uuid)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&$(this).removeAttr("id")})}}),$.extend($.expr[":"],{data:$.expr.createPseudo?$.expr.createPseudo(function(dataName){return function(elem){return!!$.data(elem,dataName)}}):function(elem,i,match){return!!$.data(elem,match[3])},focusable:function(element){return focusable(element,!isNaN($.attr(element,"tabindex")))},tabbable:function(element){var tabIndex=$.attr(element,"tabindex"),isTabIndexNaN=isNaN(tabIndex);return(isTabIndexNaN||tabIndex>=0)&&focusable(element,!isTabIndexNaN)}}),$("").outerWidth(1).jquery||$.each(["Width","Height"],function(i,name){function reduce(elem,size,border,margin){return $.each(side,function(){size-=parseFloat($.css(elem,"padding"+this))||0,border&&(size-=parseFloat($.css(elem,"border"+this+"Width"))||0),margin&&(size-=parseFloat($.css(elem,"margin"+this))||0)}),size}var side="Width"===name?["Left","Right"]:["Top","Bottom"],type=name.toLowerCase(),orig={innerWidth:$.fn.innerWidth,innerHeight:$.fn.innerHeight,outerWidth:$.fn.outerWidth,outerHeight:$.fn.outerHeight};$.fn["inner"+name]=function(size){return void 0===size?orig["inner"+name].call(this):this.each(function(){$(this).css(type,reduce(this,size)+"px")})},$.fn["outer"+name]=function(size,margin){return"number"!=typeof size?orig["outer"+name].call(this,size):this.each(function(){$(this).css(type,reduce(this,size,!0,margin)+"px")})}}),$.fn.addBack||($.fn.addBack=function(selector){return this.add(null==selector?this.prevObject:this.prevObject.filter(selector))}),$("").data("a-b","a").removeData("a-b").data("a-b")&&($.fn.removeData=function(removeData){return function(key){return arguments.length?removeData.call(this,$.camelCase(key)):removeData.call(this)}}($.fn.removeData)),$.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),$.fn.extend({focus:function(orig){return function(delay,fn){return"number"==typeof delay?this.each(function(){var elem=this;setTimeout(function(){$(elem).focus(),fn&&fn.call(elem)},delay)}):orig.apply(this,arguments)}}($.fn.focus),disableSelection:function(){var eventType="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(eventType+".ui-disableSelection",function(event){event.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(zIndex){if(void 0!==zIndex)return this.css("zIndex",zIndex);if(this.length)for(var position,value,elem=$(this[0]);elem.length&&elem[0]!==document;){if(position=elem.css("position"),("absolute"===position||"relative"===position||"fixed"===position)&&(value=parseInt(elem.css("zIndex"),10),!isNaN(value)&&0!==value))return value;elem=elem.parent()}return 0}}),$.ui.plugin={add:function(module,option,set){var i,proto=$.ui[module].prototype;for(i in set)proto.plugins[i]=proto.plugins[i]||[],proto.plugins[i].push([option,set[i]])},call:function(instance,name,args,allowDisconnected){var i,set=instance.plugins[name];if(set&&(allowDisconnected||instance.element[0].parentNode&&11!==instance.element[0].parentNode.nodeType))for(i=0;iinputIndex;inputIndex++)for(key in input[inputIndex])value=input[inputIndex][key],input[inputIndex].hasOwnProperty(key)&&void 0!==value&&(target[key]=$.isPlainObject(value)?$.isPlainObject(target[key])?$.widget.extend({},target[key],value):$.widget.extend({},value):value);return target},$.widget.bridge=function(name,object){var fullName=object.prototype.widgetFullName||name;$.fn[name]=function(options){var isMethodCall="string"==typeof options,args=widget_slice.call(arguments,1),returnValue=this;return options=!isMethodCall&&args.length?$.widget.extend.apply(null,[options].concat(args)):options,this.each(isMethodCall?function(){var methodValue,instance=$.data(this,fullName);return"instance"===options?(returnValue=instance,!1):instance?$.isFunction(instance[options])&&"_"!==options.charAt(0)?(methodValue=instance[options].apply(instance,args),methodValue!==instance&&void 0!==methodValue?(returnValue=methodValue&&methodValue.jquery?returnValue.pushStack(methodValue.get()):methodValue,!1):void 0):$.error("no such method '"+options+"' for "+name+" widget instance"):$.error("cannot call methods on "+name+" prior to initialization; attempted to call method '"+options+"'")}:function(){var instance=$.data(this,fullName);instance?(instance.option(options||{}),instance._init&&instance._init()):$.data(this,fullName,new object(options,this))}),returnValue}},$.Widget=function(){},$.Widget._childConstructors=[],$.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{disabled:!1,create:null},_createWidget:function(options,element){element=$(element||this.defaultElement||this)[0],this.element=$(element),this.uuid=widget_uuid++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=$.widget.extend({},this.options,this._getCreateOptions(),options),this.bindings=$(),this.hoverable=$(),this.focusable=$(),element!==this&&($.data(element,this.widgetFullName,this),this._on(!0,this.element,{remove:function(event){event.target===element&&this.destroy()}}),this.document=$(element.style?element.ownerDocument:element.document||element),this.window=$(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:$.noop,_getCreateEventData:$.noop,_create:$.noop,_init:$.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData($.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:$.noop,widget:function(){return this.element},option:function(key,value){var parts,curOption,i,options=key;if(0===arguments.length)return $.widget.extend({},this.options);if("string"==typeof key)if(options={},parts=key.split("."),key=parts.shift(),parts.length){for(curOption=options[key]=$.widget.extend({},this.options[key]),i=0;i=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})}),function(factory){"function"==typeof define&&define.amd?define(["jquery","./core","./mouse","./widget"],factory):factory(jQuery)}(function($){return $.widget("ui.draggable",$.ui.mouse,{version:"@VERSION",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"!==this.options.helper||/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._setHandleClassName(),this._mouseInit()},_setOption:function(key,value){this._super(key,value),"handle"===key&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?void(this.destroyOnClear=!0):(this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._removeHandleClassName(),void this._mouseDestroy())},_mouseCapture:function(event){var document=this.document[0],o=this.options;try{document.activeElement&&"body"!==document.activeElement.nodeName.toLowerCase()&&$(document.activeElement).blur()}catch(error){}return this.helper||o.disabled||$(event.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(event),this.handle?($(o.iframeFix===!0?"iframe":o.iframeFix).each(function(){$("
").css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css($(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(event){var o=this.options;return this.helper=this._createHelper(event),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),$.ui.ddmanager&&($.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offsetParent=this.helper.offsetParent(),this.offsetParentCssPosition=this.offsetParent.css("position"),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},this.offset.scroll=!1,$.extend(this.offset,{click:{left:event.pageX-this.offset.left,top:event.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(event,!1),this.originalPageX=event.pageX,this.originalPageY=event.pageY,o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this._setContainment(),this._trigger("start",event)===!1?(this._clear(),!1):(this._cacheHelperProportions(),$.ui.ddmanager&&!o.dropBehaviour&&$.ui.ddmanager.prepareOffsets(this,event),this._mouseDrag(event,!0),$.ui.ddmanager&&$.ui.ddmanager.dragStart(this,event),!0)},_mouseDrag:function(event,noPropagation){if("fixed"===this.offsetParentCssPosition&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(event,!0),this.positionAbs=this._convertPositionTo("absolute"),!noPropagation){var ui=this._uiHash();if(this._trigger("drag",event,ui)===!1)return this._mouseUp({}),!1;this.position=ui.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",$.ui.ddmanager&&$.ui.ddmanager.drag(this,event),!1},_mouseStop:function(event){var that=this,dropped=!1;return $.ui.ddmanager&&!this.options.dropBehaviour&&(dropped=$.ui.ddmanager.drop(this,event)),this.dropped&&(dropped=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!dropped||"valid"===this.options.revert&&dropped||this.options.revert===!0||$.isFunction(this.options.revert)&&this.options.revert.call(this.element,dropped)?$(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){that._trigger("stop",event)!==!1&&that._clear()}):this._trigger("stop",event)!==!1&&this._clear(),!1},_mouseUp:function(event){return $("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),$.ui.ddmanager&&$.ui.ddmanager.dragStop(this,event),this.element.focus(),$.ui.mouse.prototype._mouseUp.call(this,event)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(event){return this.options.handle?!!$(event.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this.handleElement.addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.handleElement.removeClass("ui-draggable-handle")},_createHelper:function(event){var o=this.options,helper=$.isFunction(o.helper)?$(o.helper.apply(this.element[0],[event])):"clone"===o.helper?this.element.clone().removeAttr("id"):this.element;return helper.parents("body").length||helper.appendTo("parent"===o.appendTo?this.element[0].parentNode:o.appendTo),helper[0]===this.element[0]||/(fixed|absolute)/.test(helper.css("position"))||helper.css("position","absolute"),helper},_adjustOffsetFromHelper:function(obj){"string"==typeof obj&&(obj=obj.split(" ")),$.isArray(obj)&&(obj={left:+obj[0],top:+obj[1]||0}),"left"in obj&&(this.offset.click.left=obj.left+this.margins.left),"right"in obj&&(this.offset.click.left=this.helperProportions.width-obj.right+this.margins.left),"top"in obj&&(this.offset.click.top=obj.top+this.margins.top),"bottom"in obj&&(this.offset.click.top=this.helperProportions.height-obj.bottom+this.margins.top)},_isRootNode:function(element){return/(html|body)/i.test(element.tagName)||element===this.document[0]},_getParentOffset:function(){var po=this.offsetParent.offset(),document=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&$.contains(this.scrollParent[0],this.offsetParent[0])&&(po.left+=this.scrollParent.scrollLeft(),po.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(po={top:0,left:0}),{top:po.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:po.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var p=this.element.position(),scrollIsRootNode=this._isRootNode(this.scrollParent[0]);return{top:p.top-(parseInt(this.helper.css("top"),10)||0)+(scrollIsRootNode?0:this.scrollParent.scrollTop()),left:p.left-(parseInt(this.helper.css("left"),10)||0)+(scrollIsRootNode?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var over,c,ce,o=this.options,document=this.document[0];return this.relative_container=null,o.containment?"window"===o.containment?void(this.containment=[$(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,$(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,$(window).scrollLeft()+$(window).width()-this.helperProportions.width-this.margins.left,$(window).scrollTop()+($(window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):"document"===o.containment?void(this.containment=[0,0,$(document).width()-this.helperProportions.width-this.margins.left,($(document).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):o.containment.constructor===Array?void(this.containment=o.containment):("parent"===o.containment&&(o.containment=this.helper[0].parentNode),c=$(o.containment),ce=c[0],void(ce&&(over="hidden"!==c.css("overflow"),this.containment=[(parseInt(c.css("borderLeftWidth"),10)||0)+(parseInt(c.css("paddingLeft"),10)||0),(parseInt(c.css("borderTopWidth"),10)||0)+(parseInt(c.css("paddingTop"),10)||0),(over?Math.max(ce.scrollWidth,ce.offsetWidth):ce.offsetWidth)-(parseInt(c.css("borderRightWidth"),10)||0)-(parseInt(c.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(over?Math.max(ce.scrollHeight,ce.offsetHeight):ce.offsetHeight)-(parseInt(c.css("borderBottomWidth"),10)||0)-(parseInt(c.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=c))):void(this.containment=null)},_convertPositionTo:function(d,pos){pos||(pos=this.position);var mod="absolute"===d?1:-1,scrollIsRootNode=this._isRootNode(this.scrollParent[0]);return{top:pos.top+this.offset.relative.top*mod+this.offset.parent.top*mod-("fixed"===this.cssPosition?-this.offset.scroll.top:scrollIsRootNode?0:this.offset.scroll.top)*mod,left:pos.left+this.offset.relative.left*mod+this.offset.parent.left*mod-("fixed"===this.cssPosition?-this.offset.scroll.left:scrollIsRootNode?0:this.offset.scroll.left)*mod}},_generatePosition:function(event,constrainPosition){var containment,co,top,left,o=this.options,scrollIsRootNode=this._isRootNode(this.scrollParent[0]),pageX=event.pageX,pageY=event.pageY;return scrollIsRootNode&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),constrainPosition&&(this.containment&&(this.relative_container?(co=this.relative_container.offset(),containment=[this.containment[0]+co.left,this.containment[1]+co.top,this.containment[2]+co.left,this.containment[3]+co.top]):containment=this.containment,event.pageX-this.offset.click.leftcontainment[2]&&(pageX=containment[2]+this.offset.click.left),event.pageY-this.offset.click.top>containment[3]&&(pageY=containment[3]+this.offset.click.top)),o.grid&&(top=o.grid[1]?this.originalPageY+Math.round((pageY-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,pageY=containment?top-this.offset.click.top>=containment[1]||top-this.offset.click.top>containment[3]?top:top-this.offset.click.top>=containment[1]?top-o.grid[1]:top+o.grid[1]:top,left=o.grid[0]?this.originalPageX+Math.round((pageX-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,pageX=containment?left-this.offset.click.left>=containment[0]||left-this.offset.click.left>containment[2]?left:left-this.offset.click.left>=containment[0]?left-o.grid[0]:left+o.grid[0]:left),"y"===o.axis&&(pageX=this.originalPageX),"x"===o.axis&&(pageY=this.originalPageY)),{top:pageY-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:scrollIsRootNode?0:this.offset.scroll.top),left:pageX-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:scrollIsRootNode?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(type,event,ui){return ui=ui||this._uiHash(),$.ui.plugin.call(this,type,[event,ui,this],!0),"drag"===type&&(this.positionAbs=this._convertPositionTo("absolute")),$.Widget.prototype._trigger.call(this,type,event,ui)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),$.ui.plugin.add("draggable","connectToSortable",{start:function(event,ui,inst){var o=inst.options,uiSortable=$.extend({},ui,{item:inst.element});inst.sortables=[],$(o.connectToSortable).each(function(){var sortable=$(this).sortable("instance");sortable&&!sortable.options.disabled&&(inst.sortables.push({instance:sortable,shouldRevert:sortable.options.revert}),sortable.refreshPositions(),sortable._trigger("activate",event,uiSortable))})},stop:function(event,ui,inst){var uiSortable=$.extend({},ui,{item:inst.element});$.each(inst.sortables,function(){this.instance.isOver?(this.instance.isOver=0,inst.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=this.shouldRevert),this.instance._mouseStop(event),this.instance.options.helper=this.instance.options._helper,"original"===inst.options.helper&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",event,uiSortable))})},drag:function(event,ui,inst){var that=this;$.each(inst.sortables,function(){var innermostIntersecting=!1,thisSortable=this;this.instance.positionAbs=inst.positionAbs,this.instance.helperProportions=inst.helperProportions,this.instance.offset.click=inst.offset.click,this.instance._intersectsWith(this.instance.containerCache)&&(innermostIntersecting=!0,$.each(inst.sortables,function(){return this.instance.positionAbs=inst.positionAbs,this.instance.helperProportions=inst.helperProportions,this.instance.offset.click=inst.offset.click,this!==thisSortable&&this.instance._intersectsWith(this.instance.containerCache)&&$.contains(thisSortable.instance.element[0],this.instance.element[0])&&(innermostIntersecting=!1),innermostIntersecting})),innermostIntersecting?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=$(that).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return ui.helper[0]},event.target=this.instance.currentItem[0],this.instance._mouseCapture(event,!0),this.instance._mouseStart(event,!0,!0),this.instance.offset.click.top=inst.offset.click.top,this.instance.offset.click.left=inst.offset.click.left,this.instance.offset.parent.left-=inst.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=inst.offset.parent.top-this.instance.offset.parent.top,inst._trigger("toSortable",event),inst.dropped=this.instance.element,inst.currentItem=inst.element,this.instance.fromOutside=inst),this.instance.currentItem&&this.instance._mouseDrag(event)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",event,this.instance._uiHash(this.instance)),this.instance._mouseStop(event,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),inst._trigger("fromSortable",event),inst.dropped=!1) -})}}),$.ui.plugin.add("draggable","cursor",{start:function(event,ui,instance){var t=$("body"),o=instance.options;t.css("cursor")&&(o._cursor=t.css("cursor")),t.css("cursor",o.cursor)},stop:function(event,ui,instance){var o=instance.options;o._cursor&&$("body").css("cursor",o._cursor)}}),$.ui.plugin.add("draggable","opacity",{start:function(event,ui,instance){var t=$(ui.helper),o=instance.options;t.css("opacity")&&(o._opacity=t.css("opacity")),t.css("opacity",o.opacity)},stop:function(event,ui,instance){var o=instance.options;o._opacity&&$(ui.helper).css("opacity",o._opacity)}}),$.ui.plugin.add("draggable","scroll",{start:function(event,ui,i){i.scrollParent[0]!==i.document[0]&&"HTML"!==i.scrollParent[0].tagName&&(i.overflowOffset=i.scrollParent.offset())},drag:function(event,ui,i){var o=i.options,scrolled=!1,document=i.document[0];i.scrollParent[0]!==document&&"HTML"!==i.scrollParent[0].tagName?(o.axis&&"x"===o.axis||(i.overflowOffset.top+i.scrollParent[0].offsetHeight-event.pageY=0;i--)l=inst.snapElements[i].left,r=l+inst.snapElements[i].width,t=inst.snapElements[i].top,b=t+inst.snapElements[i].height,l-d>x2||x1>r+d||t-d>y2||y1>b+d||!$.contains(inst.snapElements[i].item.ownerDocument,inst.snapElements[i].item)?(inst.snapElements[i].snapping&&inst.options.snap.release&&inst.options.snap.release.call(inst.element,event,$.extend(inst._uiHash(),{snapItem:inst.snapElements[i].item})),inst.snapElements[i].snapping=!1):("inner"!==o.snapMode&&(ts=Math.abs(t-y2)<=d,bs=Math.abs(b-y1)<=d,ls=Math.abs(l-x2)<=d,rs=Math.abs(r-x1)<=d,ts&&(ui.position.top=inst._convertPositionTo("relative",{top:t-inst.helperProportions.height,left:0}).top-inst.margins.top),bs&&(ui.position.top=inst._convertPositionTo("relative",{top:b,left:0}).top-inst.margins.top),ls&&(ui.position.left=inst._convertPositionTo("relative",{top:0,left:l-inst.helperProportions.width}).left-inst.margins.left),rs&&(ui.position.left=inst._convertPositionTo("relative",{top:0,left:r}).left-inst.margins.left)),first=ts||bs||ls||rs,"outer"!==o.snapMode&&(ts=Math.abs(t-y1)<=d,bs=Math.abs(b-y2)<=d,ls=Math.abs(l-x1)<=d,rs=Math.abs(r-x2)<=d,ts&&(ui.position.top=inst._convertPositionTo("relative",{top:t,left:0}).top-inst.margins.top),bs&&(ui.position.top=inst._convertPositionTo("relative",{top:b-inst.helperProportions.height,left:0}).top-inst.margins.top),ls&&(ui.position.left=inst._convertPositionTo("relative",{top:0,left:l}).left-inst.margins.left),rs&&(ui.position.left=inst._convertPositionTo("relative",{top:0,left:r-inst.helperProportions.width}).left-inst.margins.left)),!inst.snapElements[i].snapping&&(ts||bs||ls||rs||first)&&inst.options.snap.snap&&inst.options.snap.snap.call(inst.element,event,$.extend(inst._uiHash(),{snapItem:inst.snapElements[i].item})),inst.snapElements[i].snapping=ts||bs||ls||rs||first)}}),$.ui.plugin.add("draggable","stack",{start:function(event,ui,instance){var min,o=instance.options,group=$.makeArray($(o.stack)).sort(function(a,b){return(parseInt($(a).css("zIndex"),10)||0)-(parseInt($(b).css("zIndex"),10)||0)});group.length&&(min=parseInt($(group[0]).css("zIndex"),10)||0,$(group).each(function(i){$(this).css("zIndex",min+i)}),this.css("zIndex",min+group.length))}}),$.ui.plugin.add("draggable","zIndex",{start:function(event,ui,instance){var t=$(ui.helper),o=instance.options;t.css("zIndex")&&(o._zIndex=t.css("zIndex")),t.css("zIndex",o.zIndex)},stop:function(event,ui,instance){var o=instance.options;o._zIndex&&$(ui.helper).css("zIndex",o._zIndex)}}),$.ui.draggable}),function(factory){"function"==typeof define&&define.amd?define(["jquery","./core","./widget","./mouse","./draggable"],factory):factory(jQuery)}(function($){return $.widget("ui.droppable",{version:"@VERSION",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var proportions,o=this.options,accept=o.accept;this.isover=!1,this.isout=!0,this.accept=$.isFunction(accept)?accept:function(d){return d.is(accept)},this.proportions=function(){return arguments.length?void(proportions=arguments[0]):proportions?proportions:proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(o.scope),o.addClasses&&this.element.addClass("ui-droppable")},_addToManager:function(scope){$.ui.ddmanager.droppables[scope]=$.ui.ddmanager.droppables[scope]||[],$.ui.ddmanager.droppables[scope].push(this)},_splice:function(drop){for(var i=0;i=reference&&reference+size>x}return function(draggable,droppable,toleranceMode){if(!droppable.offset)return!1;var draggableLeft,draggableTop,x1=(draggable.positionAbs||draggable.position.absolute).left,y1=(draggable.positionAbs||draggable.position.absolute).top,x2=x1+draggable.helperProportions.width,y2=y1+draggable.helperProportions.height,l=droppable.offset.left,t=droppable.offset.top,r=l+droppable.proportions().width,b=t+droppable.proportions().height;switch(toleranceMode){case"fit":return x1>=l&&r>=x2&&y1>=t&&b>=y2;case"intersect":return l=t&&b>=y1||y2>=t&&b>=y2||t>y1&&y2>b)&&(x1>=l&&r>=x1||x2>=l&&r>=x2||l>x1&&x2>r);default:return!1}}}(),$.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,event){var i,j,m=$.ui.ddmanager.droppables[t.options.scope]||[],type=event?event.type:null,list=(t.currentItem||t.element).find(":data(ui-droppable)").addBack();droppablesLoop:for(i=0;i0?!0:(el[scroll]=1,has=el[scroll]>0,el[scroll]=0,has)},_create:function(){var n,i,handle,axis,hname,that=this,o=this.options;if(this.element.addClass("ui-resizable"),$.extend(this,{_aspectRatio:!!o.aspectRatio,aspectRatio:o.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:o.helper||o.ghost||o.animate?o.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap($("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=o.handles||($(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),n=this.handles.split(","),this.handles={},i=0;i
"),axis.css({zIndex:o.zIndex}),"se"===handle&&axis.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[handle]=".ui-resizable-"+handle,this.element.append(axis);this._renderAxis=function(target){var i,axis,padPos,padWrapper;target=target||this.element;for(i in this.handles)this.handles[i].constructor===String&&(this.handles[i]=this.element.children(this.handles[i]).first().show()),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)&&(axis=$(this.handles[i],this.element),padWrapper=/sw|ne|nw|se|n|s/.test(i)?axis.outerHeight():axis.outerWidth(),padPos=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),target.css(padPos,padWrapper),this._proportionallyResize()),$(this.handles[i]).length},this._renderAxis(this.element),this._handles=$(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){that.resizing||(this.className&&(axis=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),that.axis=axis&&axis[1]?axis[1]:"se")}),o.autoHide&&(this._handles.hide(),$(this.element).addClass("ui-resizable-autohide").mouseenter(function(){o.disabled||($(this).removeClass("ui-resizable-autohide"),that._handles.show())}).mouseleave(function(){o.disabled||that.resizing||($(this).addClass("ui-resizable-autohide"),that._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var wrapper,_destroy=function(exp){$(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(_destroy(this.element),wrapper=this.element,this.originalElement.css({position:wrapper.css("position"),width:wrapper.outerWidth(),height:wrapper.outerHeight(),top:wrapper.css("top"),left:wrapper.css("left")}).insertAfter(wrapper),wrapper.remove()),this.originalElement.css("resize",this.originalResizeStyle),_destroy(this.originalElement),this},_mouseCapture:function(event){var i,handle,capture=!1;for(i in this.handles)handle=$(this.handles[i])[0],(handle===event.target||$.contains(handle,event.target))&&(capture=!0);return!this.options.disabled&&capture},_mouseStart:function(event){var curleft,curtop,cursor,o=this.options,el=this.element;return this.resizing=!0,this._renderProxy(),curleft=this._num(this.helper.css("left")),curtop=this._num(this.helper.css("top")),o.containment&&(curleft+=$(o.containment).scrollLeft()||0,curtop+=$(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:curleft,top:curtop},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:el.width(),height:el.height()},this.originalSize=this._helper?{width:el.outerWidth(),height:el.outerHeight()}:{width:el.width(),height:el.height()},this.originalPosition={left:curleft,top:curtop},this.sizeDiff={width:el.outerWidth()-el.width(),height:el.outerHeight()-el.height()},this.originalMousePosition={left:event.pageX,top:event.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,cursor=$(".ui-resizable-"+this.axis).css("cursor"),$("body").css("cursor","auto"===cursor?this.axis+"-resize":cursor),el.addClass("ui-resizable-resizing"),this._propagate("start",event),!0},_mouseDrag:function(event){var data,props,smp=this.originalMousePosition,a=this.axis,dx=event.pageX-smp.left||0,dy=event.pageY-smp.top||0,trigger=this._change[a];return this._updatePrevProperties(),trigger?(data=trigger.apply(this,[event,dx,dy]),this._updateVirtualBoundaries(event.shiftKey),(this._aspectRatio||event.shiftKey)&&(data=this._updateRatio(data,event)),data=this._respectSize(data,event),this._updateCache(data),this._propagate("resize",event),props=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),$.isEmptyObject(props)||(this._updatePrevProperties(),this._trigger("resize",event,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(event){this.resizing=!1;var pr,ista,soffseth,soffsetw,s,left,top,o=this.options,that=this;return this._helper&&(pr=this._proportionallyResizeElements,ista=pr.length&&/textarea/i.test(pr[0].nodeName),soffseth=ista&&this._hasScroll(pr[0],"left")?0:that.sizeDiff.height,soffsetw=ista?0:that.sizeDiff.width,s={width:that.helper.width()-soffsetw,height:that.helper.height()-soffseth},left=parseInt(that.element.css("left"),10)+(that.position.left-that.originalPosition.left)||null,top=parseInt(that.element.css("top"),10)+(that.position.top-that.originalPosition.top)||null,o.animate||this.element.css($.extend(s,{top:top,left:left})),that.helper.height(that.size.height),that.helper.width(that.size.width),this._helper&&!o.animate&&this._proportionallyResize()),$("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",event),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var props={};return this.position.top!==this.prevPosition.top&&(props.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(props.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(props.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(props.height=this.size.height+"px"),this.helper.css(props),props},_updateVirtualBoundaries:function(forceAspectRatio){var pMinWidth,pMaxWidth,pMinHeight,pMaxHeight,b,o=this.options;b={minWidth:this._isNumber(o.minWidth)?o.minWidth:0,maxWidth:this._isNumber(o.maxWidth)?o.maxWidth:1/0,minHeight:this._isNumber(o.minHeight)?o.minHeight:0,maxHeight:this._isNumber(o.maxHeight)?o.maxHeight:1/0},(this._aspectRatio||forceAspectRatio)&&(pMinWidth=b.minHeight*this.aspectRatio,pMinHeight=b.minWidth/this.aspectRatio,pMaxWidth=b.maxHeight*this.aspectRatio,pMaxHeight=b.maxWidth/this.aspectRatio,pMinWidth>b.minWidth&&(b.minWidth=pMinWidth),pMinHeight>b.minHeight&&(b.minHeight=pMinHeight),pMaxWidthdata.width,isminh=this._isNumber(data.height)&&o.minHeight&&o.minHeight>data.height,dw=this.originalPosition.left+this.originalSize.width,dh=this.position.top+this.size.height,cw=/sw|nw|w/.test(a),ch=/nw|ne|n/.test(a);return isminw&&(data.width=o.minWidth),isminh&&(data.height=o.minHeight),ismaxw&&(data.width=o.maxWidth),ismaxh&&(data.height=o.maxHeight),isminw&&cw&&(data.left=dw-o.minWidth),ismaxw&&cw&&(data.left=dw-o.maxWidth),isminh&&ch&&(data.top=dh-o.minHeight),ismaxh&&ch&&(data.top=dh-o.maxHeight),data.width||data.height||data.left||!data.top?data.width||data.height||data.top||!data.left||(data.left=null):data.top=null,data},_proportionallyResize:function(){if(this._proportionallyResizeElements.length){var i,j,borders,paddings,prel,element=this.helper||this.element;for(i=0;i
"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++o.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(event,dx){return{width:this.originalSize.width+dx}},w:function(event,dx){var cs=this.originalSize,sp=this.originalPosition;return{left:sp.left+dx,width:cs.width-dx}},n:function(event,dx,dy){var cs=this.originalSize,sp=this.originalPosition;return{top:sp.top+dy,height:cs.height-dy}},s:function(event,dx,dy){return{height:this.originalSize.height+dy}},se:function(event,dx,dy){return $.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[event,dx,dy]))},sw:function(event,dx,dy){return $.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[event,dx,dy]))},ne:function(event,dx,dy){return $.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[event,dx,dy]))},nw:function(event,dx,dy){return $.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[event,dx,dy]))}},_propagate:function(n,event){$.ui.plugin.call(this,n,[event,this.ui()]),"resize"!==n&&this._trigger(n,event,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),$.ui.plugin.add("resizable","animate",{stop:function(event){var that=$(this).resizable("instance"),o=that.options,pr=that._proportionallyResizeElements,ista=pr.length&&/textarea/i.test(pr[0].nodeName),soffseth=ista&&that._hasScroll(pr[0],"left")?0:that.sizeDiff.height,soffsetw=ista?0:that.sizeDiff.width,style={width:that.size.width-soffsetw,height:that.size.height-soffseth},left=parseInt(that.element.css("left"),10)+(that.position.left-that.originalPosition.left)||null,top=parseInt(that.element.css("top"),10)+(that.position.top-that.originalPosition.top)||null;that.element.animate($.extend(style,top&&left?{top:top,left:left}:{}),{duration:o.animateDuration,easing:o.animateEasing,step:function(){var data={width:parseInt(that.element.css("width"),10),height:parseInt(that.element.css("height"),10),top:parseInt(that.element.css("top"),10),left:parseInt(that.element.css("left"),10)};pr&&pr.length&&$(pr[0]).css({width:data.width,height:data.height}),that._updateCache(data),that._propagate("resize",event)}})}}),$.ui.plugin.add("resizable","containment",{start:function(){var element,p,co,ch,cw,width,height,that=$(this).resizable("instance"),o=that.options,el=that.element,oc=o.containment,ce=oc instanceof $?oc.get(0):/parent/.test(oc)?el.parent().get(0):oc;ce&&(that.containerElement=$(ce),/document/.test(oc)||oc===document?(that.containerOffset={left:0,top:0},that.containerPosition={left:0,top:0},that.parentData={element:$(document),left:0,top:0,width:$(document).width(),height:$(document).height()||document.body.parentNode.scrollHeight}):(element=$(ce),p=[],$(["Top","Right","Left","Bottom"]).each(function(i,name){p[i]=that._num(element.css("padding"+name))}),that.containerOffset=element.offset(),that.containerPosition=element.position(),that.containerSize={height:element.innerHeight()-p[3],width:element.innerWidth()-p[1]},co=that.containerOffset,ch=that.containerSize.height,cw=that.containerSize.width,width=that._hasScroll(ce,"left")?ce.scrollWidth:cw,height=that._hasScroll(ce)?ce.scrollHeight:ch,that.parentData={element:ce,left:co.left,top:co.top,width:width,height:height}))},resize:function(event){var woset,hoset,isParent,isOffsetRelative,that=$(this).resizable("instance"),o=that.options,co=that.containerOffset,cp=that.position,pRatio=that._aspectRatio||event.shiftKey,cop={top:0,left:0},ce=that.containerElement,continueResize=!0;ce[0]!==document&&/static/.test(ce.css("position"))&&(cop=co),cp.left<(that._helper?co.left:0)&&(that.size.width=that.size.width+(that._helper?that.position.left-co.left:that.position.left-cop.left),pRatio&&(that.size.height=that.size.width/that.aspectRatio,continueResize=!1),that.position.left=o.helper?co.left:0),cp.top<(that._helper?co.top:0)&&(that.size.height=that.size.height+(that._helper?that.position.top-co.top:that.position.top),pRatio&&(that.size.width=that.size.height*that.aspectRatio,continueResize=!1),that.position.top=that._helper?co.top:0),that.offset.left=that.parentData.left+that.position.left,that.offset.top=that.parentData.top+that.position.top,woset=Math.abs((that._helper?that.offset.left-cop.left:that.offset.left-co.left)+that.sizeDiff.width),hoset=Math.abs((that._helper?that.offset.top-cop.top:that.offset.top-co.top)+that.sizeDiff.height),isParent=that.containerElement.get(0)===that.element.parent().get(0),isOffsetRelative=/relative|absolute/.test(that.containerElement.css("position")),isParent&&isOffsetRelative&&(woset-=Math.abs(that.parentData.left)),woset+that.size.width>=that.parentData.width&&(that.size.width=that.parentData.width-woset,pRatio&&(that.size.height=that.size.width/that.aspectRatio,continueResize=!1)),hoset+that.size.height>=that.parentData.height&&(that.size.height=that.parentData.height-hoset,pRatio&&(that.size.width=that.size.height*that.aspectRatio,continueResize=!1)),continueResize||(that.position.left=that.prevPosition.left,that.position.top=that.prevPosition.top,that.size.width=that.prevSize.width,that.size.height=that.prevSize.height)},stop:function(){var that=$(this).resizable("instance"),o=that.options,co=that.containerOffset,cop=that.containerPosition,ce=that.containerElement,helper=$(that.helper),ho=helper.offset(),w=helper.outerWidth()-that.sizeDiff.width,h=helper.outerHeight()-that.sizeDiff.height;that._helper&&!o.animate&&/relative/.test(ce.css("position"))&&$(this).css({left:ho.left-cop.left-co.left,width:w,height:h}),that._helper&&!o.animate&&/static/.test(ce.css("position"))&&$(this).css({left:ho.left-cop.left-co.left,width:w,height:h})}}),$.ui.plugin.add("resizable","alsoResize",{start:function(){var that=$(this).resizable("instance"),o=that.options,_store=function(exp){$(exp).each(function(){var el=$(this);el.data("ui-resizable-alsoresize",{width:parseInt(el.width(),10),height:parseInt(el.height(),10),left:parseInt(el.css("left"),10),top:parseInt(el.css("top"),10)})})};"object"!=typeof o.alsoResize||o.alsoResize.parentNode?_store(o.alsoResize):o.alsoResize.length?(o.alsoResize=o.alsoResize[0],_store(o.alsoResize)):$.each(o.alsoResize,function(exp){_store(exp)})},resize:function(event,ui){var that=$(this).resizable("instance"),o=that.options,os=that.originalSize,op=that.originalPosition,delta={height:that.size.height-os.height||0,width:that.size.width-os.width||0,top:that.position.top-op.top||0,left:that.position.left-op.left||0},_alsoResize=function(exp,c){$(exp).each(function(){var el=$(this),start=$(this).data("ui-resizable-alsoresize"),style={},css=c&&c.length?c:el.parents(ui.originalElement[0]).length?["width","height"]:["width","height","top","left"];$.each(css,function(i,prop){var sum=(start[prop]||0)+(delta[prop]||0);sum&&sum>=0&&(style[prop]=sum||null)}),el.css(style)})};"object"!=typeof o.alsoResize||o.alsoResize.nodeType?_alsoResize(o.alsoResize):$.each(o.alsoResize,function(exp,c){_alsoResize(exp,c)})},stop:function(){$(this).removeData("resizable-alsoresize")}}),$.ui.plugin.add("resizable","ghost",{start:function(){var that=$(this).resizable("instance"),o=that.options,cs=that.size;that.ghost=that.originalElement.clone(),that.ghost.css({opacity:.25,display:"block",position:"relative",height:cs.height,width:cs.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof o.ghost?o.ghost:""),that.ghost.appendTo(that.helper) -},resize:function(){var that=$(this).resizable("instance");that.ghost&&that.ghost.css({position:"relative",height:that.size.height,width:that.size.width})},stop:function(){var that=$(this).resizable("instance");that.ghost&&that.helper&&that.helper.get(0).removeChild(that.ghost.get(0))}}),$.ui.plugin.add("resizable","grid",{resize:function(){var that=$(this).resizable("instance"),o=that.options,cs=that.size,os=that.originalSize,op=that.originalPosition,a=that.axis,grid="number"==typeof o.grid?[o.grid,o.grid]:o.grid,gridX=grid[0]||1,gridY=grid[1]||1,ox=Math.round((cs.width-os.width)/gridX)*gridX,oy=Math.round((cs.height-os.height)/gridY)*gridY,newWidth=os.width+ox,newHeight=os.height+oy,isMaxWidth=o.maxWidth&&o.maxWidthnewWidth,isMinHeight=o.minHeight&&o.minHeight>newHeight;o.grid=grid,isMinWidth&&(newWidth+=gridX),isMinHeight&&(newHeight+=gridY),isMaxWidth&&(newWidth-=gridX),isMaxHeight&&(newHeight-=gridY),/^(se|s|e)$/.test(a)?(that.size.width=newWidth,that.size.height=newHeight):/^(ne)$/.test(a)?(that.size.width=newWidth,that.size.height=newHeight,that.position.top=op.top-oy):/^(sw)$/.test(a)?(that.size.width=newWidth,that.size.height=newHeight,that.position.left=op.left-ox):(newHeight-gridY>0?(that.size.height=newHeight,that.position.top=op.top-oy):(that.size.height=gridY,that.position.top=op.top+os.height-gridY),newWidth-gridX>0?(that.size.width=newWidth,that.position.left=op.left-ox):(that.size.width=gridX,that.position.left=op.left+os.width-gridX))}}),$.ui.resizable}),function(factory){"function"==typeof define&&define.amd?define(["jquery","./core","./mouse","./widget"],factory):factory(jQuery)}(function($){return $.widget("ui.selectable",$.ui.mouse,{version:"@VERSION",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var selectees,that=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){selectees=$(that.options.filter,that.element[0]),selectees.addClass("ui-selectee"),selectees.each(function(){var $this=$(this),pos=$this.offset();$.data(this,"selectable-item",{element:this,$element:$this,left:pos.left,top:pos.top,right:pos.left+$this.outerWidth(),bottom:pos.top+$this.outerHeight(),startselected:!1,selected:$this.hasClass("ui-selected"),selecting:$this.hasClass("ui-selecting"),unselecting:$this.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=selectees.addClass("ui-selectee"),this._mouseInit(),this.helper=$("
")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(event){var that=this,options=this.options;this.opos=[event.pageX,event.pageY],this.options.disabled||(this.selectees=$(options.filter,this.element[0]),this._trigger("start",event),$(options.appendTo).append(this.helper),this.helper.css({left:event.pageX,top:event.pageY,width:0,height:0}),options.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var selectee=$.data(this,"selectable-item");selectee.startselected=!0,event.metaKey||event.ctrlKey||(selectee.$element.removeClass("ui-selected"),selectee.selected=!1,selectee.$element.addClass("ui-unselecting"),selectee.unselecting=!0,that._trigger("unselecting",event,{unselecting:selectee.element}))}),$(event.target).parents().addBack().each(function(){var doSelect,selectee=$.data(this,"selectable-item");return selectee?(doSelect=!event.metaKey&&!event.ctrlKey||!selectee.$element.hasClass("ui-selected"),selectee.$element.removeClass(doSelect?"ui-unselecting":"ui-selected").addClass(doSelect?"ui-selecting":"ui-unselecting"),selectee.unselecting=!doSelect,selectee.selecting=doSelect,selectee.selected=doSelect,doSelect?that._trigger("selecting",event,{selecting:selectee.element}):that._trigger("unselecting",event,{unselecting:selectee.element}),!1):void 0}))},_mouseDrag:function(event){if(this.dragged=!0,!this.options.disabled){var tmp,that=this,options=this.options,x1=this.opos[0],y1=this.opos[1],x2=event.pageX,y2=event.pageY;return x1>x2&&(tmp=x2,x2=x1,x1=tmp),y1>y2&&(tmp=y2,y2=y1,y1=tmp),this.helper.css({left:x1,top:y1,width:x2-x1,height:y2-y1}),this.selectees.each(function(){var selectee=$.data(this,"selectable-item"),hit=!1;selectee&&selectee.element!==that.element[0]&&("touch"===options.tolerance?hit=!(selectee.left>x2||selectee.righty2||selectee.bottomx1&&selectee.righty1&&selectee.bottom *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(x,reference,size){return x>=reference&&reference+size>x},_isFloating:function(item){return/left|right/.test(item.css("float"))||/inline|table-cell/.test(item.css("display"))},_create:function(){var o=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?"x"===o.axis||this._isFloating(this.items[0].item):!1,this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(key,value){this._super(key,value),"handle"===key&&this._setHandleClassName()},_setHandleClassName:function(){this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"),$.each(this.items,function(){(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item).addClass("ui-sortable-handle")})},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"),this._mouseDestroy();for(var i=this.items.length-1;i>=0;i--)this.items[i].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(event,overrideHandle){var currentItem=null,validHandle=!1,that=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(event),$(event.target).parents().each(function(){return $.data(this,that.widgetName+"-item")===that?(currentItem=$(this),!1):void 0}),$.data(event.target,that.widgetName+"-item")===that&&(currentItem=$(event.target)),currentItem&&(!this.options.handle||overrideHandle||($(this.options.handle,currentItem).find("*").addBack().each(function(){this===event.target&&(validHandle=!0)}),validHandle))?(this.currentItem=currentItem,this._removeCurrentsFromItems(),!0):!1)},_mouseStart:function(event,overrideHandle,noActivation){var i,body,o=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(event),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},$.extend(this.offset,{click:{left:event.pageX-this.offset.left,top:event.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(event),this.originalPageX=event.pageX,this.originalPageY=event.pageY,o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),o.containment&&this._setContainment(),o.cursor&&"auto"!==o.cursor&&(body=this.document.find("body"),this.storedCursor=body.css("cursor"),body.css("cursor",o.cursor),this.storedStylesheet=$("").appendTo(body)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",event,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!noActivation)for(i=this.containers.length-1;i>=0;i--)this.containers[i]._trigger("activate",event,this._uiHash(this));return $.ui.ddmanager&&($.ui.ddmanager.current=this),$.ui.ddmanager&&!o.dropBehaviour&&$.ui.ddmanager.prepareOffsets(this,event),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(event),!0},_mouseDrag:function(event){var i,item,itemElement,intersection,o=this.options,scrolled=!1;for(this.position=this._generatePosition(event),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-event.pageY=0;i--)if(item=this.items[i],itemElement=item.item[0],intersection=this._intersectsWithPointer(item),!item.item.data("dragMultipleActive")&&intersection&&item.instance===this.currentContainer&&itemElement!==this.currentItem[0]&&this.placeholder[1===intersection?"next":"prev"]()[0]!==itemElement&&!$.contains(this.placeholder[0],itemElement)&&("semi-dynamic"===this.options.type?!$.contains(this.element[0],itemElement):!0)){if(this.direction=1===intersection?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(item))break;this._rearrange(event,item),this._trigger("change",event,this._uiHash());break}return this._contactContainers(event),$.ui.ddmanager&&$.ui.ddmanager.drag(this,event),this._trigger("sort",event,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(event,noPropagation){if(event){if($.ui.ddmanager&&!this.options.dropBehaviour&&$.ui.ddmanager.drop(this,event),this.options.revert){var that=this,cur=this.placeholder.offset(),axis=this.options.axis,animation={};axis&&"x"!==axis||(animation.left=cur.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollLeft)),axis&&"y"!==axis||(animation.top=cur.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,$(this.helper).animate(animation,parseInt(this.options.revert,10)||500,function(){that._clear(event)})}else this._clear(event,noPropagation);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var i=this.containers.length-1;i>=0;i--)this.containers[i]._trigger("deactivate",null,this._uiHash(this)),this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",null,this._uiHash(this)),this.containers[i].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),$.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?$(this.domPosition.prev).after(this.currentItem):$(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(o){var items=this._getItemsAsjQuery(o&&o.connected),str=[];return o=o||{},$(items).each(function(){var res=($(o.item||this).attr(o.attribute||"id")||"").match(o.expression||/(.+)[\-=_](.+)/);res&&str.push((o.key||res[1]+"[]")+"="+(o.key&&o.expression?res[1]:res[2]))}),!str.length&&o.key&&str.push(o.key+"="),str.join("&")},toArray:function(o){var items=this._getItemsAsjQuery(o&&o.connected),ret=[];return o=o||{},items.each(function(){ret.push($(o.item||this).attr(o.attribute||"id")||"")}),ret},_intersectsWith:function(item){var x1=this.positionAbs.left,x2=x1+this.helperProportions.width,y1=this.positionAbs.top,y2=y1+this.helperProportions.height,l=item.left,r=l+item.width,t=item.top,b=t+item.height,dyClick=this.offset.click.top,dxClick=this.offset.click.left,isOverElementHeight="x"===this.options.axis||y1+dyClick>t&&b>y1+dyClick,isOverElementWidth="y"===this.options.axis||x1+dxClick>l&&r>x1+dxClick,isOverElement=isOverElementHeight&&isOverElementWidth;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>item[this.floating?"width":"height"]?isOverElement:l0?"down":"up")},_getDragHorizontalDirection:function(){var delta=this.positionAbs.left-this.lastPositionAbs.left;return 0!==delta&&(delta>0?"right":"left")},refresh:function(event){return this._refreshItems(event),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var options=this.options;return options.connectWith.constructor===String?[options.connectWith]:options.connectWith},_getItemsAsjQuery:function(connected){function addItems(){items.push(this)}var i,j,cur,inst,items=[],queries=[],connectWith=this._connectWith();if(connectWith&&connected)for(i=connectWith.length-1;i>=0;i--)for(cur=$(connectWith[i]),j=cur.length-1;j>=0;j--)inst=$.data(cur[j],this.widgetFullName),inst&&inst!==this&&!inst.options.disabled&&queries.push([$.isFunction(inst.options.items)?inst.options.items.call(inst.element):$(inst.options.items,inst.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),inst]);for(queries.push([$.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):$(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),i=queries.length-1;i>=0;i--)queries[i][0].each(addItems);return $(items)},_removeCurrentsFromItems:function(){var list=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=$.grep(this.items,function(item){for(var j=0;j=0;i--)for(cur=$(connectWith[i]),j=cur.length-1;j>=0;j--)inst=$.data(cur[j],this.widgetFullName),inst&&inst!==this&&!inst.options.disabled&&(queries.push([$.isFunction(inst.options.items)?inst.options.items.call(inst.element[0],event,{item:this.currentItem}):$(inst.options.items,inst.element),inst]),this.containers.push(inst));for(i=queries.length-1;i>=0;i--)for(targetData=queries[i][1],_queries=queries[i][0],j=0,queriesLength=_queries.length;queriesLength>j;j++)item=$(_queries[j]),item.data(this.widgetName+"-item",targetData),items.push({item:item,instance:targetData,width:0,height:0,left:0,top:0})},refreshPositions:function(fast){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,item,t,p;for(i=this.items.length-1;i>=0;i--)item=this.items[i],$(item.item).data("dragMultipleActive")||item.instance!==this.currentContainer&&this.currentContainer&&item.item[0]!==this.currentItem[0]||(t=this.options.toleranceElement?$(this.options.toleranceElement,item.item):item.item,fast||(item.width=t.outerWidth(),item.height=t.outerHeight()),p=t.offset(),item.left=p.left,item.top=p.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)p=this.containers[i].element.offset(),this.containers[i].containerCache.left=p.left,this.containers[i].containerCache.top=p.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(that){that=that||this;var className,o=that.options;o.placeholder&&o.placeholder.constructor!==String||(className=o.placeholder,o.placeholder={element:function(){var nodeName=that.currentItem[0].nodeName.toLowerCase(),element=$("<"+nodeName+">",that.document[0]).addClass(className||that.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tr"===nodeName?that.currentItem.children().each(function(){$(" ",that.document[0]).attr("colspan",$(this).attr("colspan")||1).appendTo(element)}):"img"===nodeName&&element.attr("src",that.currentItem.attr("src")),className||element.css("visibility","hidden"),element},update:function(container,p){(!className||o.forcePlaceholderSize)&&(p.height()||p.height(that.currentItem.innerHeight()-parseInt(that.currentItem.css("paddingTop")||0,10)-parseInt(that.currentItem.css("paddingBottom")||0,10)),p.width()||p.width(that.currentItem.innerWidth()-parseInt(that.currentItem.css("paddingLeft")||0,10)-parseInt(that.currentItem.css("paddingRight")||0,10)))}}),that.placeholder=$(o.placeholder.element.call(that.element,that.currentItem)),that.currentItem.after(that.placeholder),o.placeholder.update(that,that.placeholder)},_contactContainers:function(event){var i,j,dist,itemWithLeastDistance,posProperty,sizeProperty,cur,nearBottom,floating,axis,innermostContainer=null,innermostIndex=null;for(i=this.containers.length-1;i>=0;i--)if(!$.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(innermostContainer&&$.contains(this.containers[i].element[0],innermostContainer.element[0]))continue;innermostContainer=this.containers[i],innermostIndex=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",event,this._uiHash(this)),this.containers[i].containerCache.over=0);if(innermostContainer)if(1===this.containers.length)this.containers[innermostIndex].containerCache.over||(this.containers[innermostIndex]._trigger("over",event,this._uiHash(this)),this.containers[innermostIndex].containerCache.over=1);else{for(dist=1e4,itemWithLeastDistance=null,floating=innermostContainer.floating||this._isFloating(this.currentItem),posProperty=floating?"left":"top",sizeProperty=floating?"width":"height",axis=floating?"clientX":"clientY",j=this.items.length-1;j>=0;j--)$.contains(this.containers[innermostIndex].element[0],this.items[j].item[0])&&this.items[j].item[0]!==this.currentItem[0]&&(cur=this.items[j].item.offset()[posProperty],nearBottom=!1,event[axis]-cur>this.items[j][sizeProperty]/2&&(nearBottom=!0),Math.abs(event[axis]-cur)this.containment[2]&&(pageX=this.containment[2]+this.offset.click.left),event.pageY-this.offset.click.top>this.containment[3]&&(pageY=this.containment[3]+this.offset.click.top)),o.grid&&(top=this.originalPageY+Math.round((pageY-this.originalPageY)/o.grid[1])*o.grid[1],pageY=this.containment?top-this.offset.click.top>=this.containment[1]&&top-this.offset.click.top<=this.containment[3]?top:top-this.offset.click.top>=this.containment[1]?top-o.grid[1]:top+o.grid[1]:top,left=this.originalPageX+Math.round((pageX-this.originalPageX)/o.grid[0])*o.grid[0],pageX=this.containment?left-this.offset.click.left>=this.containment[0]&&left-this.offset.click.left<=this.containment[2]?left:left-this.offset.click.left>=this.containment[0]?left-o.grid[0]:left+o.grid[0]:left)),{top:pageY-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():scrollIsRootNode?0:scroll.scrollTop()),left:pageX-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():scrollIsRootNode?0:scroll.scrollLeft())}},_rearrange:function(event,i,a,hardRefresh){a?a[0].appendChild(this.placeholder[0]):i.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?i.item[0]:i.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var counter=this.counter;this._delay(function(){counter===this.counter&&this.refreshPositions(!hardRefresh)})},_clear:function(event,noPropagation){function delayEvent(type,instance,container){return function(event){container._trigger(type,event,instance._uiHash(instance))}}this.reverting=!1;var i,delayedTriggers=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(i in this._storedCSS)("auto"===this._storedCSS[i]||"static"===this._storedCSS[i])&&(this._storedCSS[i]=""); -this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!noPropagation&&delayedTriggers.push(function(event){this._trigger("receive",event,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||noPropagation||delayedTriggers.push(function(event){this._trigger("update",event,this._uiHash())}),this!==this.currentContainer&&(noPropagation||(delayedTriggers.push(function(event){this._trigger("remove",event,this._uiHash())}),delayedTriggers.push(function(c){return function(event){c._trigger("receive",event,this._uiHash(this))}}.call(this,this.currentContainer)),delayedTriggers.push(function(c){return function(event){c._trigger("update",event,this._uiHash(this))}}.call(this,this.currentContainer)))),i=this.containers.length-1;i>=0;i--)noPropagation||delayedTriggers.push(delayEvent("deactivate",this,this.containers[i])),this.containers[i].containerCache.over&&(delayedTriggers.push(delayEvent("out",this,this.containers[i])),this.containers[i].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,this.cancelHelperRemoval){if(!noPropagation){for(this._trigger("beforeStop",event,this._uiHash()),i=0;ivalue?0:type.max6*h?p+(q-p)*h*6:1>2*h?q:2>3*h?p+(q-p)*(2/3-h)*6:p}var colors,stepHooks="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",rplusequals=/^([\-+])=\s*(\d+\.?\d*)/,stringParsers=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(execResult){return[execResult[1],execResult[2],execResult[3],execResult[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(execResult){return[2.55*execResult[1],2.55*execResult[2],2.55*execResult[3],execResult[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(execResult){return[parseInt(execResult[1],16),parseInt(execResult[2],16),parseInt(execResult[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(execResult){return[parseInt(execResult[1]+execResult[1],16),parseInt(execResult[2]+execResult[2],16),parseInt(execResult[3]+execResult[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(execResult){return[execResult[1],execResult[2]/100,execResult[3]/100,execResult[4]]}}],color=jQuery.Color=function(color,green,blue,alpha){return new jQuery.Color.fn.parse(color,green,blue,alpha)},spaces={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},propTypes={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},support=color.support={},supportElem=jQuery("

")[0],each=jQuery.each;supportElem.style.cssText="background-color:rgba(1,1,1,.5)",support.rgba=supportElem.style.backgroundColor.indexOf("rgba")>-1,each(spaces,function(spaceName,space){space.cache="_"+spaceName,space.props.alpha={idx:3,type:"percent",def:1}}),color.fn=jQuery.extend(color.prototype,{parse:function(red,green,blue,alpha){if(red===undefined)return this._rgba=[null,null,null,null],this;(red.jquery||red.nodeType)&&(red=jQuery(red).css(green),green=undefined);var inst=this,type=jQuery.type(red),rgba=this._rgba=[];return green!==undefined&&(red=[red,green,blue,alpha],type="array"),"string"===type?this.parse(stringParse(red)||colors._default):"array"===type?(each(spaces.rgba.props,function(key,prop){rgba[prop.idx]=clamp(red[prop.idx],prop)}),this):"object"===type?(red instanceof color?each(spaces,function(spaceName,space){red[space.cache]&&(inst[space.cache]=red[space.cache].slice())}):each(spaces,function(spaceName,space){var cache=space.cache;each(space.props,function(key,prop){if(!inst[cache]&&space.to){if("alpha"===key||null==red[key])return;inst[cache]=space.to(inst._rgba)}inst[cache][prop.idx]=clamp(red[key],prop,!0)}),inst[cache]&&jQuery.inArray(null,inst[cache].slice(0,3))<0&&(inst[cache][3]=1,space.from&&(inst._rgba=space.from(inst[cache])))}),this):void 0},is:function(compare){var is=color(compare),same=!0,inst=this;return each(spaces,function(_,space){var localCache,isCache=is[space.cache];return isCache&&(localCache=inst[space.cache]||space.to&&space.to(inst._rgba)||[],each(space.props,function(_,prop){return null!=isCache[prop.idx]?same=isCache[prop.idx]===localCache[prop.idx]:void 0})),same}),same},_space:function(){var used=[],inst=this;return each(spaces,function(spaceName,space){inst[space.cache]&&used.push(spaceName)}),used.pop()},transition:function(other,distance){var end=color(other),spaceName=end._space(),space=spaces[spaceName],startColor=0===this.alpha()?color("transparent"):this,start=startColor[space.cache]||space.to(startColor._rgba),result=start.slice();return end=end[space.cache],each(space.props,function(key,prop){var index=prop.idx,startValue=start[index],endValue=end[index],type=propTypes[prop.type]||{};null!==endValue&&(null===startValue?result[index]=endValue:(type.mod&&(endValue-startValue>type.mod/2?startValue+=type.mod:startValue-endValue>type.mod/2&&(startValue-=type.mod)),result[index]=clamp((endValue-startValue)*distance+startValue,prop)))}),this[spaceName](result)},blend:function(opaque){if(1===this._rgba[3])return this;var rgb=this._rgba.slice(),a=rgb.pop(),blend=color(opaque)._rgba;return color(jQuery.map(rgb,function(v,i){return(1-a)*blend[i]+a*v}))},toRgbaString:function(){var prefix="rgba(",rgba=jQuery.map(this._rgba,function(v,i){return null==v?i>2?1:0:v});return 1===rgba[3]&&(rgba.pop(),prefix="rgb("),prefix+rgba.join()+")"},toHslaString:function(){var prefix="hsla(",hsla=jQuery.map(this.hsla(),function(v,i){return null==v&&(v=i>2?1:0),i&&3>i&&(v=Math.round(100*v)+"%"),v});return 1===hsla[3]&&(hsla.pop(),prefix="hsl("),prefix+hsla.join()+")"},toHexString:function(includeAlpha){var rgba=this._rgba.slice(),alpha=rgba.pop();return includeAlpha&&rgba.push(~~(255*alpha)),"#"+jQuery.map(rgba,function(v){return v=(v||0).toString(16),1===v.length?"0"+v:v}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),color.fn.parse.prototype=color.fn,spaces.hsla.to=function(rgba){if(null==rgba[0]||null==rgba[1]||null==rgba[2])return[null,null,null,rgba[3]];var h,s,r=rgba[0]/255,g=rgba[1]/255,b=rgba[2]/255,a=rgba[3],max=Math.max(r,g,b),min=Math.min(r,g,b),diff=max-min,add=max+min,l=.5*add;return h=min===max?0:r===max?60*(g-b)/diff+360:g===max?60*(b-r)/diff+120:60*(r-g)/diff+240,s=0===diff?0:.5>=l?diff/add:diff/(2-add),[Math.round(h)%360,s,l,null==a?1:a]},spaces.hsla.from=function(hsla){if(null==hsla[0]||null==hsla[1]||null==hsla[2])return[null,null,null,hsla[3]];var h=hsla[0]/360,s=hsla[1],l=hsla[2],a=hsla[3],q=.5>=l?l*(1+s):l+s-l*s,p=2*l-q;return[Math.round(255*hue2rgb(p,q,h+1/3)),Math.round(255*hue2rgb(p,q,h)),Math.round(255*hue2rgb(p,q,h-1/3)),a]},each(spaces,function(spaceName,space){var props=space.props,cache=space.cache,to=space.to,from=space.from;color.fn[spaceName]=function(value){if(to&&!this[cache]&&(this[cache]=to(this._rgba)),value===undefined)return this[cache].slice();var ret,type=jQuery.type(value),arr="array"===type||"object"===type?value:arguments,local=this[cache].slice();return each(props,function(key,prop){var val=arr["object"===type?key:prop.idx];null==val&&(val=local[prop.idx]),local[prop.idx]=clamp(val,prop)}),from?(ret=color(from(local)),ret[cache]=local,ret):color(local)},each(props,function(key,prop){color.fn[key]||(color.fn[key]=function(value){var match,vtype=jQuery.type(value),fn="alpha"===key?this._hsla?"hsla":"rgba":spaceName,local=this[fn](),cur=local[prop.idx];return"undefined"===vtype?cur:("function"===vtype&&(value=value.call(this,cur),vtype=jQuery.type(value)),null==value&&prop.empty?this:("string"===vtype&&(match=rplusequals.exec(value),match&&(value=cur+parseFloat(match[2])*("+"===match[1]?1:-1))),local[prop.idx]=value,this[fn](local)))})})}),color.hook=function(hook){var hooks=hook.split(" ");each(hooks,function(i,hook){jQuery.cssHooks[hook]={set:function(elem,value){var parsed,curElem,backgroundColor="";if("transparent"!==value&&("string"!==jQuery.type(value)||(parsed=stringParse(value)))){if(value=color(parsed||value),!support.rgba&&1!==value._rgba[3]){for(curElem="backgroundColor"===hook?elem.parentNode:elem;(""===backgroundColor||"transparent"===backgroundColor)&&curElem&&curElem.style;)try{backgroundColor=jQuery.css(curElem,"backgroundColor"),curElem=curElem.parentNode}catch(e){}value=value.blend(backgroundColor&&"transparent"!==backgroundColor?backgroundColor:"_default")}value=value.toRgbaString()}try{elem.style[hook]=value}catch(e){}}},jQuery.fx.step[hook]=function(fx){fx.colorInit||(fx.start=color(fx.elem,hook),fx.end=color(fx.end),fx.colorInit=!0),jQuery.cssHooks[hook].set(fx.elem,fx.start.transition(fx.end,fx.pos))}})},color.hook(stepHooks),jQuery.cssHooks.borderColor={expand:function(value){var expanded={};return each(["Top","Right","Bottom","Left"],function(i,part){expanded["border"+part+"Color"]=value}),expanded}},colors=jQuery.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function getElementStyles(elem){var key,len,style=elem.ownerDocument.defaultView?elem.ownerDocument.defaultView.getComputedStyle(elem,null):elem.currentStyle,styles={};if(style&&style.length&&style[0]&&style[style[0]])for(len=style.length;len--;)key=style[len],"string"==typeof style[key]&&(styles[$.camelCase(key)]=style[key]);else for(key in style)"string"==typeof style[key]&&(styles[key]=style[key]);return styles}function styleDifference(oldStyle,newStyle){var name,value,diff={};for(name in newStyle)value=newStyle[name],oldStyle[name]!==value&&(shorthandStyles[name]||($.fx.step[name]||!isNaN(parseFloat(value)))&&(diff[name]=value));return diff}var classAnimationActions=["add","remove","toggle"],shorthandStyles={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};$.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(_,prop){$.fx.step[prop]=function(fx){("none"!==fx.end&&!fx.setAttr||1===fx.pos&&!fx.setAttr)&&(jQuery.style(fx.elem,prop,fx.end),fx.setAttr=!0)}}),$.fn.addBack||($.fn.addBack=function(selector){return this.add(null==selector?this.prevObject:this.prevObject.filter(selector))}),$.effects.animateClass=function(value,duration,easing,callback){var o=$.speed(duration,easing,callback);return this.queue(function(){var applyClassChange,animated=$(this),baseClass=animated.attr("class")||"",allAnimations=o.children?animated.find("*").addBack():animated;allAnimations=allAnimations.map(function(){var el=$(this);return{el:el,start:getElementStyles(this)}}),applyClassChange=function(){$.each(classAnimationActions,function(i,action){value[action]&&animated[action+"Class"](value[action])})},applyClassChange(),allAnimations=allAnimations.map(function(){return this.end=getElementStyles(this.el[0]),this.diff=styleDifference(this.start,this.end),this}),animated.attr("class",baseClass),allAnimations=allAnimations.map(function(){var styleInfo=this,dfd=$.Deferred(),opts=$.extend({},o,{queue:!1,complete:function(){dfd.resolve(styleInfo)}});return this.el.animate(this.diff,opts),dfd.promise()}),$.when.apply($,allAnimations.get()).done(function(){applyClassChange(),$.each(arguments,function(){var el=this.el;$.each(this.diff,function(key){el.css(key,"")})}),o.complete.call(animated[0])})})},$.fn.extend({addClass:function(orig){return function(classNames,speed,easing,callback){return speed?$.effects.animateClass.call(this,{add:classNames},speed,easing,callback):orig.apply(this,arguments)}}($.fn.addClass),removeClass:function(orig){return function(classNames,speed,easing,callback){return arguments.length>1?$.effects.animateClass.call(this,{remove:classNames},speed,easing,callback):orig.apply(this,arguments)}}($.fn.removeClass),toggleClass:function(orig){return function(classNames,force,speed,easing,callback){return"boolean"==typeof force||void 0===force?speed?$.effects.animateClass.call(this,force?{add:classNames}:{remove:classNames},speed,easing,callback):orig.apply(this,arguments):$.effects.animateClass.call(this,{toggle:classNames},force,speed,easing)}}($.fn.toggleClass),switchClass:function(remove,add,speed,easing,callback){return $.effects.animateClass.call(this,{add:add,remove:remove},speed,easing,callback)}})}(),function(){function _normalizeArguments(effect,options,speed,callback){return $.isPlainObject(effect)&&(options=effect,effect=effect.effect),effect={effect:effect},null==options&&(options={}),$.isFunction(options)&&(callback=options,speed=null,options={}),("number"==typeof options||$.fx.speeds[options])&&(callback=speed,speed=options,options={}),$.isFunction(speed)&&(callback=speed,speed=null),options&&$.extend(effect,options),speed=speed||options.duration,effect.duration=$.fx.off?0:"number"==typeof speed?speed:speed in $.fx.speeds?$.fx.speeds[speed]:$.fx.speeds._default,effect.complete=callback||options.complete,effect}function standardAnimationOption(option){return!option||"number"==typeof option||$.fx.speeds[option]?!0:"string"!=typeof option||$.effects.effect[option]?$.isFunction(option)?!0:"object"!=typeof option||option.effect?!1:!0:!0}$.extend($.effects,{version:"@VERSION",save:function(element,set){for(var i=0;i

").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),size={width:element.width(),height:element.height()},active=document.activeElement;try{active.id}catch(e){active=document.body}return element.wrap(wrapper),(element[0]===active||$.contains(element[0],active))&&$(active).focus(),wrapper=element.parent(),"static"===element.css("position")?(wrapper.css({position:"relative"}),element.css({position:"relative"})):($.extend(props,{position:element.css("position"),zIndex:element.css("z-index")}),$.each(["top","left","bottom","right"],function(i,pos){props[pos]=element.css(pos),isNaN(parseInt(props[pos],10))&&(props[pos]="auto")}),element.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),element.css(size),wrapper.css(props).show()},removeWrapper:function(element){var active=document.activeElement;return element.parent().is(".ui-effects-wrapper")&&(element.parent().replaceWith(element),(element[0]===active||$.contains(element[0],active))&&$(active).focus()),element},setTransition:function(element,list,factor,value){return value=value||{},$.each(list,function(i,x){var unit=element.cssUnit(x);unit[0]>0&&(value[x]=unit[0]*factor+unit[1])}),value}}),$.fn.extend({effect:function(){function run(next){function done(){$.isFunction(complete)&&complete.call(elem[0]),$.isFunction(next)&&next()}var elem=$(this),complete=args.complete,mode=args.mode;(elem.is(":hidden")?"hide"===mode:"show"===mode)?(elem[mode](),done()):effectMethod.call(elem[0],args,done)}var args=_normalizeArguments.apply(this,arguments),mode=args.mode,queue=args.queue,effectMethod=$.effects.effect[args.effect];return $.fx.off||!effectMethod?mode?this[mode](args.duration,args.complete):this.each(function(){args.complete&&args.complete.call(this)}):queue===!1?this.each(run):this.queue(queue||"fx",run)},show:function(orig){return function(option){if(standardAnimationOption(option))return orig.apply(this,arguments);var args=_normalizeArguments.apply(this,arguments);return args.mode="show",this.effect.call(this,args)}}($.fn.show),hide:function(orig){return function(option){if(standardAnimationOption(option))return orig.apply(this,arguments);var args=_normalizeArguments.apply(this,arguments);return args.mode="hide",this.effect.call(this,args)}}($.fn.hide),toggle:function(orig){return function(option){if(standardAnimationOption(option)||"boolean"==typeof option)return orig.apply(this,arguments);var args=_normalizeArguments.apply(this,arguments);return args.mode="toggle",this.effect.call(this,args)}}($.fn.toggle),cssUnit:function(key){var style=this.css(key),val=[];return $.each(["em","px","%","pt"],function(i,unit){style.indexOf(unit)>0&&(val=[parseFloat(style),unit])}),val}})}(),function(){var baseEasings={};$.each(["Quad","Cubic","Quart","Quint","Expo"],function(i,name){baseEasings[name]=function(p){return Math.pow(p,i+2)}}),$.extend(baseEasings,{Sine:function(p){return 1-Math.cos(p*Math.PI/2)},Circ:function(p){return 1-Math.sqrt(1-p*p)},Elastic:function(p){return 0===p||1===p?p:-Math.pow(2,8*(p-1))*Math.sin((80*(p-1)-7.5)*Math.PI/15)},Back:function(p){return p*p*(3*p-2)},Bounce:function(p){for(var pow2,bounce=4;p<((pow2=Math.pow(2,--bounce))-1)/11;);return 1/Math.pow(4,3-bounce)-7.5625*Math.pow((3*pow2-2)/22-p,2)}}),$.each(baseEasings,function(name,easeIn){$.easing["easeIn"+name]=easeIn,$.easing["easeOut"+name]=function(p){return 1-easeIn(1-p)},$.easing["easeInOut"+name]=function(p){return.5>p?easeIn(2*p)/2:1-easeIn(-2*p+2)/2}})}(),$.effects}),function(factory){"function"==typeof define&&define.amd?define(["jquery","./core","./widget"],factory):factory(jQuery)}(function($){return $.widget("ui.accordion",{version:"@VERSION",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var options=this.options;this.prevShow=this.prevHide=$(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),options.collapsible||options.active!==!1&&null!=options.active||(options.active=0),this._processPanels(),options.active<0&&(options.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():$()}},_createIcons:function(){var icons=this.options.icons;icons&&($("").addClass("ui-accordion-header-icon ui-icon "+icons.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(icons.header).addClass(icons.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var contents;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId(),this._destroyIcons(),contents=this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&contents.css("height","")},_setOption:function(key,value){return"active"===key?void this._activate(value):("event"===key&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(value)),this._super(key,value),"collapsible"!==key||value||this.options.active!==!1||this._activate(0),"icons"===key&&(this._destroyIcons(),value&&this._createIcons()),void("disabled"===key&&(this.element.toggleClass("ui-state-disabled",!!value).attr("aria-disabled",value),this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!value))))},_keydown:function(event){if(!event.altKey&&!event.ctrlKey){var keyCode=$.ui.keyCode,length=this.headers.length,currentIndex=this.headers.index(event.target),toFocus=!1;switch(event.keyCode){case keyCode.RIGHT:case keyCode.DOWN:toFocus=this.headers[(currentIndex+1)%length];break;case keyCode.LEFT:case keyCode.UP:toFocus=this.headers[(currentIndex-1+length)%length];break;case keyCode.SPACE:case keyCode.ENTER:this._eventHandler(event);break;case keyCode.HOME:toFocus=this.headers[0];break;case keyCode.END:toFocus=this.headers[length-1]}toFocus&&($(event.target).attr("tabIndex",-1),$(toFocus).attr("tabIndex",0),toFocus.focus(),event.preventDefault())}},_panelKeyDown:function(event){event.keyCode===$.ui.keyCode.UP&&event.ctrlKey&&$(event.currentTarget).prev().focus()},refresh:function(){var options=this.options;this._processPanels(),options.active===!1&&options.collapsible===!0||!this.headers.length?(options.active=!1,this.active=$()):options.active===!1?this._activate(0):this.active.length&&!$.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(options.active=!1,this.active=$()):this._activate(Math.max(0,options.active-1)):options.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all"),this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide()},_refresh:function(){var maxHeight,options=this.options,heightStyle=options.heightStyle,parent=this.element.parent();this.active=this._findActive(options.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(){var header=$(this),headerId=header.uniqueId().attr("id"),panel=header.next(),panelId=panel.uniqueId().attr("id");header.attr("aria-controls",panelId),panel.attr("aria-labelledby",headerId)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(options.event),"fill"===heightStyle?(maxHeight=parent.height(),this.element.siblings(":visible").each(function(){var elem=$(this),position=elem.css("position");"absolute"!==position&&"fixed"!==position&&(maxHeight-=elem.outerHeight(!0))}),this.headers.each(function(){maxHeight-=$(this).outerHeight(!0)}),this.headers.next().each(function(){$(this).height(Math.max(0,maxHeight-$(this).innerHeight()+$(this).height()))}).css("overflow","auto")):"auto"===heightStyle&&(maxHeight=0,this.headers.next().each(function(){maxHeight=Math.max(maxHeight,$(this).css("height","").height())}).height(maxHeight))},_activate:function(index){var active=this._findActive(index)[0];active!==this.active[0]&&(active=active||this.active[0],this._eventHandler({target:active,currentTarget:active,preventDefault:$.noop}))},_findActive:function(selector){return"number"==typeof selector?this.headers.eq(selector):$()},_setupEvents:function(event){var events={keydown:"_keydown"};event&&$.each(event.split(" "),function(index,eventName){events[eventName]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,events),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(event){var options=this.options,active=this.active,clicked=$(event.currentTarget),clickedIsActive=clicked[0]===active[0],collapsing=clickedIsActive&&options.collapsible,toShow=collapsing?$():clicked.next(),toHide=active.next(),eventData={oldHeader:active,oldPanel:toHide,newHeader:collapsing?$():clicked,newPanel:toShow};event.preventDefault(),clickedIsActive&&!options.collapsible||this._trigger("beforeActivate",event,eventData)===!1||(options.active=collapsing?!1:this.headers.index(clicked),this.active=clickedIsActive?$():clicked,this._toggle(eventData),active.removeClass("ui-accordion-header-active ui-state-active"),options.icons&&active.children(".ui-accordion-header-icon").removeClass(options.icons.activeHeader).addClass(options.icons.header),clickedIsActive||(clicked.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),options.icons&&clicked.children(".ui-accordion-header-icon").removeClass(options.icons.header).addClass(options.icons.activeHeader),clicked.next().addClass("ui-accordion-content-active")))},_toggle:function(data){var toShow=data.newPanel,toHide=this.prevShow.length?this.prevShow:data.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=toShow,this.prevHide=toHide,this.options.animate?this._animate(toShow,toHide,data):(toHide.hide(),toShow.show(),this._toggleComplete(data)),toHide.attr({"aria-hidden":"true"}),toHide.prev().attr("aria-selected","false"),toShow.length&&toHide.length?toHide.prev().attr({tabIndex:-1,"aria-expanded":"false"}):toShow.length&&this.headers.filter(function(){return 0===$(this).attr("tabIndex")}).attr("tabIndex",-1),toShow.attr("aria-hidden","false").prev().attr({"aria-selected":"true",tabIndex:0,"aria-expanded":"true"})},_animate:function(toShow,toHide,data){var total,easing,duration,that=this,adjust=0,down=toShow.length&&(!toHide.length||toShow.index()",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var suppressKeyPress,suppressKeyPressRepeat,suppressInput,nodeName=this.element[0].nodeName.toLowerCase(),isTextarea="textarea"===nodeName,isInput="input"===nodeName;this.isMultiLine=isTextarea?!0:isInput?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[isTextarea||isInput?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(event){if(this.element.prop("readOnly"))return suppressKeyPress=!0,suppressInput=!0,void(suppressKeyPressRepeat=!0);suppressKeyPress=!1,suppressInput=!1,suppressKeyPressRepeat=!1;var keyCode=$.ui.keyCode;switch(event.keyCode){case keyCode.PAGE_UP:suppressKeyPress=!0,this._move("previousPage",event);break;case keyCode.PAGE_DOWN:suppressKeyPress=!0,this._move("nextPage",event);break;case keyCode.UP:suppressKeyPress=!0,this._keyEvent("previous",event);break;case keyCode.DOWN:suppressKeyPress=!0,this._keyEvent("next",event);break;case keyCode.ENTER:this.menu.active&&(suppressKeyPress=!0,event.preventDefault(),this.menu.select(event));break;case keyCode.TAB:this.menu.active&&this.menu.select(event);break;case keyCode.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(event),event.preventDefault());break;default:suppressKeyPressRepeat=!0,this._searchTimeout(event)}},keypress:function(event){if(suppressKeyPress)return suppressKeyPress=!1,void((!this.isMultiLine||this.menu.element.is(":visible"))&&event.preventDefault()); -if(!suppressKeyPressRepeat){var keyCode=$.ui.keyCode;switch(event.keyCode){case keyCode.PAGE_UP:this._move("previousPage",event);break;case keyCode.PAGE_DOWN:this._move("nextPage",event);break;case keyCode.UP:this._keyEvent("previous",event);break;case keyCode.DOWN:this._keyEvent("next",event)}}},input:function(event){return suppressInput?(suppressInput=!1,void event.preventDefault()):void this._searchTimeout(event)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(event){return this.cancelBlur?void delete this.cancelBlur:(clearTimeout(this.searching),this.close(event),void this._change(event))}}),this._initSource(),this.menu=$("