taiga-front-dist/dist/v-1525361023952/js/templates.js

17 lines
552 KiB
JavaScript

angular.module("templates",[]).run(["$templateCache",function(t){t.put("admin/admin-membership-paginator.html",'\n<ul class="paginator"><% if (showPrevious) { %>\n <li class="previous"><a href="" class="previous next_prev_button disabled"><span translate="PAGINATION.PREVIOUS"></span></a></li><% } %>\n <% _.each(pages, function(item) { %>\n <li class="<%- item.classes %>"><% if (item.type === "page") { %><a href="" data-pagenum="<%- item.num %>"><%- item.num %></a></a><% } else if (item.type === "page-active") { %><span class="active"><%- item.num %></span><% } else { %><span>...</span><% } %></li><% }); %>\n <% if (showNext) { %>\n <li class="next"><a href="" class="next next_prev_button disabled"><span translate="PAGINATION.NEXT"></span></a></li><% } %>\n</ul>'),t.put("admin/admin-memberships-row-checkbox.html",'\n<div class="check js-check">\n <input type="checkbox" id="<%- inputId %>"/>\n <div></div><span translate="COMMON.YES" class="check-text check-yes"></span><span translate="COMMON.NO" class="check-text check-no"></span>\n</div>'),t.put("admin/admin-memberships.html",'<!DOCTYPE html>\n<div ng-controller="MembershipsController as ctrl" ng-init="section=\'admin\'; sectionName=\'ADMIN.MEMBERSHIPS.TITLE\'" tg-memberships class="wrapper memberships">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="memberships" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section class="main admin-membership admin-common">\n <div class="header-with-actions">\n <header>\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <tg-no-more-memberships-explanation ng-if="canAddUsers == false" project="project"></tg-no-more-memberships-explanation>\n </header>\n <div class="action-buttons">\n <button translate="ADMIN.MEMBERSHIPS.ADD_BUTTON" title="{{ ADMIN.MEMBERSHIPS.ADD_BUTTON_TITLE | translate }}" ng-click="ctrl.addNewMembers()" ng-disabled="canAddUsers == false" class="button-green"></button>\n </div>\n </div>\n <section class="admin-membership-table basic-table">\n <div class="row title">\n <div translate="ADMIN.MEMBERSHIP.COLUMN_MEMBER" class="header-member"></div>\n <div translate="ADMIN.MEMBERSHIP.COLUMN_ADMIN" class="header-admin"></div>\n <div translate="ADMIN.MEMBERSHIP.COLUMN_ROLE" class="header-role"></div>\n <div translate="ADMIN.MEMBERSHIP.COLUMN_STATUS" class="header-status"></div>\n </div>\n <div ng-repeat="member in memberships" class="row">\n <div tg-memberships-row-avatar="member" class="row-member"></div>\n <div tg-memberships-row-admin-checkbox="member" class="row-admin"></div>\n <div tg-memberships-row-role-selector="member" class="row-role"></div>\n <div tg-memberships-row-actions="member" class="row-status"></div>\n </div>\n </section>\n <div class="paginator memberships-paginator"></div>\n </section>\n</div>'),t.put("admin/admin-project-change-owner.html",'\n<div class="owner-avatar"><img tg-avatar="owner" alt="{{::owner.full_name_display}}"/></div>\n<div class="owner-info">\n <div class="owner-info-title">{{ \'ADMIN.PROJECT_PROFILE.PROJECT_OWNER\' | translate }}</div>\n <div class="owner-name">{{::owner.full_name_display}}</div>\n</div><a href="" ng-click="changeOwner()" ng-if="members &gt; 1" class="request">{{ \'ADMIN.PROJECT_PROFILE.CHANGE_OWNER\' | translate }}</a>'),t.put("admin/admin-project-default-values.html",'<!DOCTYPE html>\n<div tg-project-default-values ng-controller="ProjectProfileController as ctrl" ng-init="section=\'admin\'; sectionName=\'ADMIN.PROJECT_DEFAULT_VALUES.TITLE\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="project-profile" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <sidebar tg-admin-navigation="default-values" class="menu-tertiary sidebar">\n <section class="admin-submenu">\n <nav>\n <ul>\n <li id="adminmenu-details"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.PROJECT_PROFILE.PROJECT_DETAILS" class="title"></span></a></li>\n <li id="adminmenu-default-values"><a href="" tg-nav="project-admin-project-profile-default-values:project=project.slug"><span translate="ADMIN.PROJECT_DEFAULT_VALUES.TITLE" class="title"></span></a></li>\n <li id="adminmenu-modules"><a href="" tg-nav="project-admin-project-profile-modules:project=project.slug"><span translate="ADMIN.MODULES.TITLE" class="title"></span></a></li>\n <li id="adminmenu-export"><a href="" tg-nav="project-admin-project-profile-export:project=project.slug"><span translate="ADMIN.PROJECT_EXPORT.TITLE" class="title"></span></a></li>\n <li id="adminmenu-reports"><a href="" tg-nav="project-admin-project-profile-reports:project=project.slug"><span translate="ADMIN.REPORTS.TITLE" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section class="main admin-common">\n <header>\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <p translate="ADMIN.PROJECT_DEFAULT_VALUES.SUBTITLE" class="admin-subtitle"></p>\n </header>\n <section class="default-values">\n <form>\n <fieldset>\n <label for="default-value-epic" translate="ADMIN.DEFAULT_VALUES.LABEL_EPIC_STATUS"></label>\n <select id="default-value-epic" ng-model="project.default_epic_status" ng-options="s.id as s.name for s in epicStatusList"></select>\n </fieldset>\n <fieldset>\n <label for="default-value-us" translate="ADMIN.DEFAULT_VALUES.LABEL_US_STATUS"></label>\n <select id="default-value-us" ng-model="project.default_us_status" ng-options="s.id as s.name for s in usStatusList"></select>\n </fieldset>\n <fieldset>\n <label for="default-points" translate="ADMIN.DEFAULT_VALUES.LABEL_POINTS"></label>\n <select id="default-points" ng-model="project.default_points" ng-options="s.id as s.name for s in pointsList"></select>\n </fieldset>\n <fieldset>\n <label for="default-value-task" translate="ADMIN.DEFAULT_VALUES.LABEL_TASK_STATUS"></label>\n <select id="default-value-task" ng-model="project.default_task_status" ng-options="s.id as s.name for s in taskStatusList"></select>\n </fieldset>\n <fieldset>\n <label for="default-value-issue-type" translate="ADMIN.DEFAULT_VALUES.LABEL_ISSUE_TYPE"></label>\n <select id="default-value-issue-type" ng-model="project.default_issue_type" ng-options="s.id as s.name for s in issueTypesList"></select>\n </fieldset>\n <fieldset>\n <label for="default-value-issue-status" translate="ADMIN.DEFAULT_VALUES.LABEL_ISSUE_STATUS"></label>\n <select id="default-value-issue-status" ng-model="project.default_issue_status" ng-options="s.id as s.name for s in issueStatusList"></select>\n </fieldset>\n <fieldset>\n <label for="default-value-priority" translate="ADMIN.DEFAULT_VALUES.LABEL_PRIORITY"></label>\n <select id="default-value-priority" ng-model="project.default_priority" ng-options="s.id as s.name for s in prioritiesList"></select>\n </fieldset>\n <fieldset>\n <label for="default-value-severity" translate="ADMIN.DEFAULT_VALUES.LABEL_SEVERITY"></label>\n <select id="default-value-severity" ng-model="project.default_severity" ng-options="s.id as s.name for s in severitiesList"></select>\n </fieldset>\n <fieldset>\n <button type="submit" title="{{\'COMMON.SAVE\' | translate}}" class="button-green submit-button"><span translate="COMMON.SAVE"></span></button>\n </fieldset>\n </form>\n </section>\n </section>\n</div>'),t.put("admin/admin-project-export.html",'<!DOCTYPE html>\n<div ng-controller="ProjectProfileController as ctrl" ng-init="section=\'admin\'; sectionName=\'ADMIN.PROJECT_EXPORT.TITLE\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="project-profile" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <sidebar tg-admin-navigation="export" class="menu-tertiary sidebar">\n <section class="admin-submenu">\n <nav>\n <ul>\n <li id="adminmenu-details"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.PROJECT_PROFILE.PROJECT_DETAILS" class="title"></span></a></li>\n <li id="adminmenu-default-values"><a href="" tg-nav="project-admin-project-profile-default-values:project=project.slug"><span translate="ADMIN.PROJECT_DEFAULT_VALUES.TITLE" class="title"></span></a></li>\n <li id="adminmenu-modules"><a href="" tg-nav="project-admin-project-profile-modules:project=project.slug"><span translate="ADMIN.MODULES.TITLE" class="title"></span></a></li>\n <li id="adminmenu-export"><a href="" tg-nav="project-admin-project-profile-export:project=project.slug"><span translate="ADMIN.PROJECT_EXPORT.TITLE" class="title"></span></a></li>\n <li id="adminmenu-reports"><a href="" tg-nav="project-admin-project-profile-reports:project=project.slug"><span translate="ADMIN.REPORTS.TITLE" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section tg-project-export class="main admin-common">\n <header>\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <p translate="ADMIN.PROJECT_EXPORT.SUBTITLE" class="admin-subtitle"></p>\n </header>\n <div class="admin-project-export-buttons"><a href="" title="{{ \'ADMIN.PROJECT_EXPORT.EXPORT_BUTTON_TITLE\' | translate }}" class="button-green button-export"><span translate="ADMIN.PROJECT_EXPORT.EXPORT_BUTTON"></span></a></div>\n <div class="admin-project-export-result hidden">\n <div class="spin hidden"><img src="/v-1525361023952/svg/spinner-circle.svg" alt="{{ \'COMMON.LOADING\' | translate }}"></div>\n <h3 class="result-title"></h3>\n <p class="result-message"></p>\n </div><a href="https://tree.taiga.io/support/admin/import-export-projects/" target="_blank" class="help-button">\n <tg-svg svg-icon="icon-question"></tg-svg><span translate="ADMIN.HELP"></span></a>\n </section>\n</div>'),t.put("admin/admin-project-modules.html",'<!DOCTYPE html>\n<div tg-project-modules ng-controller="ProjectProfileController as ctrl" ng-init="section=\'admin\'; sectionName=\'ADMIN.MODULES.TITLE\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="project-profile" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <sidebar tg-admin-navigation="modules" class="menu-tertiary sidebar">\n <section class="admin-submenu">\n <nav>\n <ul>\n <li id="adminmenu-details"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.PROJECT_PROFILE.PROJECT_DETAILS" class="title"></span></a></li>\n <li id="adminmenu-default-values"><a href="" tg-nav="project-admin-project-profile-default-values:project=project.slug"><span translate="ADMIN.PROJECT_DEFAULT_VALUES.TITLE" class="title"></span></a></li>\n <li id="adminmenu-modules"><a href="" tg-nav="project-admin-project-profile-modules:project=project.slug"><span translate="ADMIN.MODULES.TITLE" class="title"></span></a></li>\n <li id="adminmenu-export"><a href="" tg-nav="project-admin-project-profile-export:project=project.slug"><span translate="ADMIN.PROJECT_EXPORT.TITLE" class="title"></span></a></li>\n <li id="adminmenu-reports"><a href="" tg-nav="project-admin-project-profile-reports:project=project.slug"><span translate="ADMIN.REPORTS.TITLE" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section class="main admin-functionalities">\n <header>\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n </header>\n <form class="module-container">\n <div ng-class="{true:\'active\', false:\'\'}[project.is_epics_activated]" class="module module-epics">\n <div class="module-icon">\n <tg-svg svg-icon="icon-epics"></tg-svg>\n </div>\n <div translate="ADMIN.MODULES.EPICS" class="module-name"></div>\n <div class="module-desc">\n <p translate="ADMIN.MODULES.EPICS_DESCRIPTION"></p>\n </div>\n <div class="module-activation module-direct-active">\n <div class="check">\n <input id="functionality-epics" name="functionality-epics" type="checkbox" ng-checked="project.is_epics_activated" ng-model="project.is_epics_activated" class="activate-input">\n <div></div><span translate="COMMON.YES" class="check-text check-yes"></span><span translate="COMMON.NO" class="check-text check-no"></span>\n </div>\n </div>\n </div>\n <div ng-class="{true:\'active\', false:\'\'}[project.is_backlog_activated]" class="module module-scrum">\n <div class="module-icon">\n <tg-svg svg-icon="icon-scrum"></tg-svg>\n </div>\n <div translate="ADMIN.MODULES.BACKLOG" class="module-name"></div>\n <div class="module-desc">\n <p translate="ADMIN.MODULES.BACKLOG_DESCRIPTION"> </p>\n <div ng-if="project.is_backlog_activated" class="module-desc-options">\n <fieldset>\n <label for="total-sprints">{{ \'ADMIN.MODULES.NUMBER_SPRINTS\' | translate }}</label>\n <input id="total-sprints" name="total-sprints" type="number" min="0" placeholder="{{\'ADMIN.MODULES.NUMBER_SPRINTS_HELP\' | translate}}" ng-model="project.total_milestones" data-type="digits">\n </fieldset>\n <fieldset>\n <label for="total-story-points">{{ \'ADMIN.MODULES.NUMBER_US_POINTS\' | translate }}</label>\n <input id="total-story-points" name="total-story-points" type="number" min="0" placeholder="{{\'ADMIN.MODULES.NUMBER_US_POINTS_HELP\' | translate}}" ng-model="project.total_story_points" data-type="digits">\n </fieldset>\n <div class="options"><a href="" ng-if="project.is_backlog_activated" class="save">\n <tg-svg svg-icon="icon-save"></tg-svg></a></div>\n </div>\n </div>\n <div class="module-activation module-direct-active">\n <div class="check">\n <input id="functionality-backlog" name="functionality-backlog" type="checkbox" ng-checked="project.is_backlog_activated" ng-model="project.is_backlog_activated" class="activate-input">\n <div></div><span translate="COMMON.YES" class="check-text check-yes"></span><span translate="COMMON.NO" class="check-text check-no"></span>\n </div>\n </div>\n </div>\n <div ng-class="{true:\'active\', false:\'\'}[project.is_kanban_activated]" class="module module-kanban">\n <div class="module-icon">\n <tg-svg svg-icon="icon-kanban"></tg-svg>\n </div>\n <div translate="ADMIN.MODULES.KANBAN" class="module-name"></div>\n <div translate="ADMIN.MODULES.KANBAN_DESCRIPTION" class="module-desc"></div>\n <div class="module-activation module-direct-active">\n <div class="check">\n <input id="functionality-kanban" name="functionality-kanban" type="checkbox" ng-checked="project.is_kanban_activated" ng-model="project.is_kanban_activated" class="activate-input">\n <div></div><span translate="COMMON.YES" class="check-text check-yes"></span><span translate="COMMON.NO" class="check-text check-no"></span>\n </div>\n </div>\n </div>\n <div ng-class="{true:\'active\', false:\'\'}[project.is_issues_activated]" class="module module-issues">\n <div class="module-icon">\n <tg-svg svg-icon="icon-issues"></tg-svg>\n </div>\n <div translate="ADMIN.MODULES.ISSUES" class="module-name"></div>\n <div translate="ADMIN.MODULES.ISSUES_DESCRIPTION" class="module-desc"></div>\n <div class="module-activation module-direct-active">\n <div class="check">\n <input id="functionality-issues" name="functionality-issues" type="checkbox" ng-checked="project.is_issues_activated" ng-model="project.is_issues_activated" class="activate-input">\n <div></div><span translate="COMMON.YES" class="check-text check-yes"></span><span translate="COMMON.NO" class="check-text check-no"></span>\n </div>\n </div>\n </div>\n <div ng-class="{true:\'active\', false:\'\'}[project.is_wiki_activated]" class="module module-wiki">\n <div class="module-icon">\n <tg-svg svg-icon="icon-wiki"></tg-svg>\n </div>\n <div translate="ADMIN.MODULES.WIKI" class="module-name"></div>\n <div translate="ADMIN.MODULES.WIKI_DESCRIPTION" class="module-desc"></div>\n <div class="module-activation module-direct-active">\n <div class="check">\n <input id="functionality-wiki" name="functionality-wiki" type="checkbox" ng-checked="project.is_wiki_activated" ng-model="project.is_wiki_activated" class="activate-input">\n <div></div><span translate="COMMON.YES" class="check-text check-yes"></span><span translate="COMMON.NO" class="check-text check-no"></span>\n </div>\n </div>\n </div>\n <div ng-class="{true:\'active\', false:\'\'}[isVideoconferenceActivated]" class="module module-videoconference">\n <div class="module-icon">\n <tg-svg svg-icon="icon-bubble-empty"></tg-svg>\n </div>\n <div translate="ADMIN.MODULES.MEETUP" class="module-name"></div>\n <div class="module-desc">\n <p translate="ADMIN.MODULES.MEETUP_DESCRIPTION"></p>\n <div ng-if="isVideoconferenceActivated" class="videoconference-attributes">\n <select id="videoconference-type" name="videoconference-type" ng-model="project.videoconferences" ng-options="e.id as e.name|translate for e in [{\'id\':\'appear-in\', \'name\':\'ADMIN.MODULES.APPEARIN_CHAT_ROOM\'},{\'id\':\'jitsi\', \'name\': \'ADMIN.MODULES.JITSI_CHAT_ROOM\'},{\'id\':\'talky\', \'name\': \'ADMIN.MODULES.TALKY_CHAT_ROOM\'},{\'id\':\'custom\', \'name\': \'ADMIN.MODULES.CUSTOM_CHAT_ROOM\'}]">\n <option value="" translate="ADMIN.MODULES.SELECT_VIDEOCONFERENCE"></option>\n </select>\n <fieldset ng-if="project.videoconferences &amp;&amp; project.videoconferences != \'custom\'">\n <input id="videoconference-prefix" name="videoconference-prefix" type="text" ng-model="project.videoconferences_extra_data" data-maxlength="250" placeholder="{{\'ADMIN.MODULES.SALT_CHAT_ROOM\' | translate}}">\n </fieldset>\n <fieldset ng-if="project.videoconferences == \'custom\'">\n <input id="videoconference-url" name="videoconference-url" type="url" ng-model="project.videoconferences_extra_data" data-maxlength="250" placeholder="{{\'ADMIN.MODULES.URL_CHAT_ROOM\' | translate}}" data-type="url" data-required="true">\n </fieldset>\n <fieldset class="options"><a href="" ng-if="project.videoconferences" class="save">\n <tg-svg svg-icon="icon-save"></tg-svg></a></fieldset>\n </div>\n </div>\n <div class="module-activation">\n <div class="check">\n <input id="functionality-video" name="functionality-video" type="checkbox" ng-checked="project.isVideoconferenceActivated" ng-model="isVideoconferenceActivated" class="activate-input">\n <div></div><span translate="COMMON.YES" class="check-text check-yes"></span><span translate="COMMON.NO" class="check-text check-no"></span>\n </div>\n </div>\n </div>\n </form>\n </section>\n</div>'),t.put("admin/admin-project-profile.html",'<!DOCTYPE html>\n<div tg-project-profile ng-controller="ProjectProfileController as ctrl" ng-init="section=\'admin\'; sectionName=\'ADMIN.PROJECT_PROFILE.PROJECT_DETAILS\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="project-profile" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <sidebar tg-admin-navigation="details" class="menu-tertiary sidebar">\n <section class="admin-submenu">\n <nav>\n <ul>\n <li id="adminmenu-details"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.PROJECT_PROFILE.PROJECT_DETAILS" class="title"></span></a></li>\n <li id="adminmenu-default-values"><a href="" tg-nav="project-admin-project-profile-default-values:project=project.slug"><span translate="ADMIN.PROJECT_DEFAULT_VALUES.TITLE" class="title"></span></a></li>\n <li id="adminmenu-modules"><a href="" tg-nav="project-admin-project-profile-modules:project=project.slug"><span translate="ADMIN.MODULES.TITLE" class="title"></span></a></li>\n <li id="adminmenu-export"><a href="" tg-nav="project-admin-project-profile-export:project=project.slug"><span translate="ADMIN.PROJECT_EXPORT.TITLE" class="title"></span></a></li>\n <li id="adminmenu-reports"><a href="" tg-nav="project-admin-project-profile-reports:project=project.slug"><span translate="ADMIN.REPORTS.TITLE" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section class="main project-details">\n <header>\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n </header>\n <form>\n <div tg-project-logo class="project-details-image">\n <fieldset class="image-container"><img tg-project-logo-big-src="project._attrs" alt="logo" class="image">\n <div class="loading-overlay"><img src="/v-1525361023952/svg/spinner-circle.svg" alt="{{\'COMMON.LOADING\' | translate}}" class="loading-spinner"></div>\n <input type="file" id="logo-field" tg-project-logo-model="logoAttachment" class="hidden">\n </fieldset><a href="#" title="{{\'ADMIN.PROJECT_PROFILE.CHANGE_LOGO\' | translate}}" class="button-green change-image js-change-logo">{{\'ADMIN.PROJECT_PROFILE.CHANGE_LOGO\' | translate}}</a><a href="#" title="{{ \'ADMIN.PROJECT_PROFILE.ACTION_USE_DEFAULT_LOGO\' | translate }}" class="use-default-image js-use-default-logo">{{ \'ADMIN.PROJECT_PROFILE.ACTION_USE_DEFAULT_LOGO\' | translate }}</a>\n </div>\n <div class="project-details-form-data">\n <fieldset>\n <label for="project-name">{{ \'ADMIN.PROJECT_PROFILE.PROJECT_NAME\' | translate }}</label>\n <input type="text" name="name" placeholder="{{\'ADMIN.PROJECT_PROFILE.PROJECT_NAME\' | translate}}" id="project-name" ng-model="project.name" data-required="true" maxlength="45">\n </fieldset>\n <fieldset>\n <label for="project-description">{{ \'ADMIN.PROJECT_PROFILE.DESCRIPTION\' | translate }}</label>\n <textarea name="description" ng-attr-placeholder="{{\'ADMIN.PROJECT_PROFILE.DESCRIPTION\' | translate}}" id="project-description" ng-model="project.description" data-required="true"></textarea>\n </fieldset>\n <fieldset>\n <label for="tags">{{ \'ADMIN.PROJECT_PROFILE.TAGS\' | translate }}</label>\n <tg-tag-line-common disable-color-selection project="project" tags="projectTags" permissions="modify_project" on-add-tag="ctrl.addTag(name)" on-delete-tag="ctrl.deleteTag(tag)" class="tags-block"></tg-tag-line-common>\n </fieldset>\n <fieldset ng-if="project.owner.id != user.id">\n <tg-admin-project-request-ownership owner="project.owner" project-id="project.id" class="admin-project-profile-owner-actions"></tg-admin-project-request-ownership>\n </fieldset>\n <fieldset ng-if="project.owner.id == user.id">\n <tg-admin-project-change-owner members="project.members.length" owner="project.owner" project-id="project.id" active-users="activeUsers" class="admin-project-profile-owner-actions"></tg-admin-project-change-owner>\n </fieldset>\n <fieldset class="looking-for-people">\n <div class="looking-for-people-selector"><span>{{ \'ADMIN.PROJECT_PROFILE.RECRUITING\' | translate }}</span>\n <tg-svg svg-icon="icon-recruit" svg-title-translate="ADMIN.PROJECT_PROFILE.RECRUITING_MESSAGE"></tg-svg>\n <div class="check">\n <input type="checkbox" ng-model="project.is_looking_for_people">\n <div></div><span translate="COMMON.YES" class="check-text check-yes"></span><span translate="COMMON.NO" class="check-text check-no"></span>\n </div>\n </div>\n <div ng-show="project.is_looking_for_people" class="looking-for-people-reason">\n <label>{{ \'ADMIN.PROJECT_PROFILE.RECRUITING_MESSAGE\' | translate }}</label>\n <input type="text" maxlength="200" ng-model="project.looking_for_people_note" placeholder="{{ \'ADMIN.PROJECT_PROFILE.RECRUITING_PLACEHOLDER\' | translate }}">\n </div>\n </fieldset>\n <fieldset class="get-feedback">\n <div class="get-feedback-inner"><span>{{ \'ADMIN.PROJECT_PROFILE.FEEDBACK\' | translate }}</span>\n <div class="check">\n <input type="checkbox" ng-model="project.is_contact_activated">\n <div></div><span translate="COMMON.YES" class="check-text check-yes"></span><span translate="COMMON.NO" class="check-text check-no"></span>\n </div>\n </div>\n </fieldset>\n <tg-admin-project-restrictions project="project"></tg-admin-project-restrictions>\n <fieldset>\n <div class="project-privacy-settings">\n <div class="privacy-option">\n <input ng-disabled="project.is_private &amp;&amp; !project.is_private_extra_info.can_be_updated" type="radio" id="private-project" name="privacy-project" ng-model="project.is_private" ng-value="false" class="privacy-project">\n <label for="private-project" class="trans-button">{{ \'ADMIN.PROJECT_PROFILE.PUBLIC_PROJECT\' | translate }}</label>\n </div>\n <div class="privacy-option">\n <input ng-disabled="!project.is_private &amp;&amp; !project.is_private_extra_info.can_be_updated" type="radio" id="public-project" name="privacy-project" ng-model="project.is_private" ng-value="true" class="privacy-project">\n <label for="public-project" class="trans-button">{{\'ADMIN.PROJECT_PROFILE.PRIVATE_PROJECT\' | translate }}</label>\n </div>\n </div><a href="https://tree.taiga.io/support/frequently-asked-questions/whats-the-difference-between-public-and-private-projects/" target="_blank" class="private-or-public">\n <tg-svg svg-icon="icon-question" svg-title-translate="ADMIN.PROJECT_PROFILE.PRIVATE_OR_PUBLIC"></tg-svg><span>{{\'ADMIN.PROJECT_PROFILE.PRIVATE_OR_PUBLIC\' | translate }}</span></a>\n </fieldset>\n <button type="submit" title="{{\'COMMON.SAVE\' | translate}}" translate="COMMON.SAVE" class="button-green submit-button"></button><a href="" title="{{\'ADMIN.PROJECT_PROFILE.DELETE\' | translate}}" ng-click="ctrl.openDeleteLightbox()" class="delete-project">{{ \'ADMIN.PROJECT_PROFILE.DELETE\' | translate }}</a>\n </div>\n </form>\n </section>\n</div>\n<div tg-lb-delete-project class="lightbox lightbox-delete-project">\n <tg-lightbox-close></tg-lightbox-close>\n <form>\n <h2 translate="LIGHTBOX.DELETE_PROJECT.TITLE" class="title"></h2>\n <p><span translate="LIGHTBOX.DELETE_PROJECT.QUESTION" class="question"></span><span translate="LIGHTBOX.DELETE_PROJECT.SUBTITLE" class="subtitle"></span></p>\n <div class="options"><a href="" title="{{\'LIGHTBOX.DELETE_PROJECT.CONFIRM\' | translate}}" class="button-green"><span translate="LIGHTBOX.DELETE_PROJECT.CONFIRM"></span></a><a href="" title="{{\'COMMON.CANCEL\' | translate}}" class="button-red"><span translate="COMMON.CANCEL"></span></a></div>\n </form>\n</div>'),
t.put("admin/admin-project-reports.html",'<!DOCTYPE html>\n<div ng-controller="ProjectProfileController as ctrl" ng-init="section=\'admin\'; sectionName=\'ADMIN.REPORTS.TITLE\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="project-profile" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <sidebar tg-admin-navigation="reports" class="menu-tertiary sidebar">\n <section class="admin-submenu">\n <nav>\n <ul>\n <li id="adminmenu-details"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.PROJECT_PROFILE.PROJECT_DETAILS" class="title"></span></a></li>\n <li id="adminmenu-default-values"><a href="" tg-nav="project-admin-project-profile-default-values:project=project.slug"><span translate="ADMIN.PROJECT_DEFAULT_VALUES.TITLE" class="title"></span></a></li>\n <li id="adminmenu-modules"><a href="" tg-nav="project-admin-project-profile-modules:project=project.slug"><span translate="ADMIN.MODULES.TITLE" class="title"></span></a></li>\n <li id="adminmenu-export"><a href="" tg-nav="project-admin-project-profile-export:project=project.slug"><span translate="ADMIN.PROJECT_EXPORT.TITLE" class="title"></span></a></li>\n <li id="adminmenu-reports"><a href="" tg-nav="project-admin-project-profile-reports:project=project.slug"><span translate="ADMIN.REPORTS.TITLE" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section tg-project-export class="main admin-common">\n <header>\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <p translate="ADMIN.REPORTS.SUBTITLE" class="admin-subtitle"></p>\n </header>\n <p translate="ADMIN.REPORTS.DESCRIPTION"></p>\n <div tg-csv-epic class="admin-attributes-section"></div>\n <div tg-csv-us class="admin-attributes-section"></div>\n <div tg-csv-task class="admin-attributes-section"></div>\n <div tg-csv-issue class="admin-attributes-section"></div>\n <div><a href="https://tree.taiga.io/support/admin/csv-reports/" target="_blank" class="help-button">\n <tg-svg svg-icon="icon-question"></tg-svg><span translate="ADMIN.REPORTS.HELP"></span></a></div>\n </section>\n</div>'),t.put("admin/admin-project-request-ownership.html",'\n<div class="owner-avatar"><img tg-avatar="owner" alt="{{::owner.full_name_display}}"/></div>\n<div class="owner-info">\n <div class="title">{{ \'ADMIN.PROJECT_PROFILE.PROJECT_OWNER\' | translate }}</div>\n <div class="owner-name">{{::owner.full_name_display}}</div>\n</div><a href="" ng-click="requestOwnership()" class="request">{{ \'ADMIN.PROJECT_PROFILE.REQUEST_OWNERSHIP\' | translate }}</a>'),t.put("admin/admin-project-restrictions.html",'\n<fieldset ng-if="!project.is_private_extra_info.can_be_updated &amp;&amp; project.i_am_owner" ng-switch="project.is_private_extra_info.reason"><span ng-switch-when="max_private_projects">{{ \'ADMIN.PROJECT_PROFILE.MAX_PRIVATE_PROJECTS\' | translate }}</span><span ng-switch-when="max_private_projects_memberships">{{ \'ADMIN.PROJECT_PROFILE.MAX_PRIVATE_PROJECTS_MEMBERS\' | translate }}</span><span ng-switch-when="max_public_projects">{{ \'ADMIN.PROJECT_PROFILE.MAX_PUBLIC_PROJECTS\' | translate }}</span><span ng-switch-when="max_public_projects_memberships">{{ \'ADMIN.PROJECT_PROFILE.MAX_PUBLIC_PROJECTS_MEMBERS\' | translate }}</span></fieldset>'),t.put("admin/admin-project-values-custom-fields.html",'<!DOCTYPE html>\n<div ng-controller="ProjectValuesSectionController" ng-init="sectionName=\'ADMIN.CUSTOM_FIELDS.TITLE\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="project-values" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <sidebar tg-admin-navigation="values-custom-fields" class="menu-tertiary sidebar">\n <section class="admin-submenu">\n <nav>\n <ul>\n <li id="adminmenu-values-status"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.STATUS" class="title"></span></a></li>\n <li id="adminmenu-values-points"><a href="" tg-nav="project-admin-project-values-points:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.POINTS" class="title"></span></a></li>\n <li id="adminmenu-values-priorities"><a href="" tg-nav="project-admin-project-values-priorities:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.PRIORITIES" class="title"></span></a></li>\n <li id="adminmenu-values-severities"><a href="" tg-nav="project-admin-project-values-severities:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.SEVERITIES" class="title"></span></a></li>\n <li id="adminmenu-values-types"><a href="" tg-nav="project-admin-project-values-types:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.TYPES" class="title"></span></a></li>\n <li id="adminmenu-values-custom-fields"><a href="" tg-nav="project-admin-project-values-custom-fields:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.CUSTOM_FIELDS" class="title"></span></a></li>\n <li id="adminmenu-values-tags"><a href="" tg-nav="project-admin-project-values-tags:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.TAGS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section class="main admin-common admin-attributes">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <p translate="ADMIN.CUSTOM_FIELDS.SUBTITLE" class="admin-subtitle"></p>\n <div tg-project-custom-attributes ng-controller="ProjectCustomAttributesController as ctrl" ng-init="init(\'epic\'); customFieldSectionTitle=\'ADMIN.CUSTOM_FIELDS.EPIC_DESCRIPTION\'; customFieldButtonTitle=\'ADMIN.CUSTOM_FIELDS.EPIC_ADD\'" class="admin-attributes-section">\n <section class="custom-fields-table basic-table">\n <div class="project-values-title">\n <h2>{{ customFieldSectionTitle | translate }}</h2><a href="" title="{{ customFieldButtonTitle | translate }}" translate="ADMIN.CUSTOM_ATTRIBUTES.ADD" class="button button-gray show-add-new js-add-custom-field-button"></a>\n </div>\n <div class="table-header">\n <div class="row">\n <div translate="COMMON.FIELDS.NAME" class="custom-name"></div>\n <div translate="COMMON.FIELDS.DESCRIPTION" class="custom-description"></div>\n <div translate="COMMON.FIELDS.TYPE" class="custom-field-type"></div>\n <div class="custom-options"></div>\n </div>\n </div>\n <div class="table-body">\n <div class="js-sortable">\n <div ng-repeat="attr in customAttributes track by attr.id" tg-bind-scope class="">\n <form tg-bind-scope class="js-form">\n <div class="row single-custom-field js-view-custom-field">\n <tg-svg svg-icon="icon-drag" class=""></tg-svg>\n <div class="custom-name">{{ attr.name }}</div>\n <div class="custom-description">{{ attr.description }}</div>\n <div ng-switch on="attr.type" class="custom-field-type"><span ng-switch-default translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_TEXT"></span><span ng-switch-when="richtext" translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_RICHTEXT"></span><span ng-switch-when="multiline" translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_MULTI"></span><span ng-switch-when="date" translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_DATE"></span><span ng-switch-when="url" translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_URL"></span></div>\n <div class="custom-options">\n <div class="custom-options-wrapper"><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.EDIT\' | translate}}" class="js-edit-custom-field-button">\n <tg-svg svg-icon="icon-edit"></tg-svg></a><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.DELETE\' | translate}}" class="js-delete-custom-field-button">\n <tg-svg svg-icon="icon-trash"></tg-svg></a></div>\n </div>\n </div>\n <div class="row single-custom-field js-edit-custom-field hidden">\n <fieldset class="custom-name">\n <input type="text" name="name" placeholder="{{\'ADMIN.CUSTOM_ATTRIBUTES.SET_FIELD_NAME\' | translate}}" ng-model="attr.name" data-required="true" data-maxlength="64">\n </fieldset>\n <fieldset class="custom-description">\n <input type="text" name="description" placeholder="{{\'ADMIN.CUSTOM_ATTRIBUTES.SET_FIELD_DESCRIPTION\' | translate}}" ng-model="attr.description">\n </fieldset>\n <fieldset class="custom-field-type">\n <select ng-model="attr.type" ng-options="type.key as type.name|translate for type in TYPE_CHOICES"></select>\n </fieldset>\n <fieldset class="custom-options">\n <div class="custom-options-wrapper"><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.ACTION_UPDATE\' | translate}}" class="js-update-custom-field-button">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.ACTION_CANCEL_EDITION\' | translate}}" class="js-cancel-edit-custom-field-button">\n <tg-svg svg-icon="icon-close"></tg-svg></a></div>\n </fieldset>\n </div>\n </form>\n </div>\n </div>\n <form class="row single-custom-field js-new-custom-field hidden">\n <fieldset class="custom-name">\n <input type="text" name="name" placeholder="{{\'ADMIN.CUSTOM_ATTRIBUTES.SET_FIELD_NAME\' | translate}}" ng-model="newAttr.name" data-required="true" data-maxlength="64">\n </fieldset>\n <fieldset class="custom-description">\n <input type="text" name="description" placeholder="{{\'ADMIN.CUSTOM_ATTRIBUTES.SET_FIELD_DESCRIPTION\' | translate}}" ng-model="newAttr.description">\n </fieldset>\n <fieldset class="custom-field-type">\n <select ng-model="newAttr.type" ng-options="type.key as type.name|translate for type in TYPE_CHOICES">\n <option value="" translate="ADMIN.CUSTOM_ATTRIBUTES.FIELD_TYPE_DEFAULT"></option>\n </select>\n </fieldset>\n <fieldset class="custom-options">\n <div class="custom-options-wrapper"><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.SAVE_TITLE\' | translate}}" class="js-create-custom-field-button">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.CANCEL_TITLE\' | translate}}" class="js-cancel-new-custom-field-button">\n <tg-svg svg-icon="icon-close"></tg-svg></a></div>\n </fieldset>\n </form>\n </div>\n </section>\n </div>\n <div tg-project-custom-attributes ng-controller="ProjectCustomAttributesController as ctrl" ng-init="init(\'userstory\'); customFieldSectionTitle=\'ADMIN.CUSTOM_FIELDS.US_DESCRIPTION\'; customFieldButtonTitle=\'ADMIN.CUSTOM_FIELDS.US_ADD\'" class="admin-attributes-section">\n <section class="custom-fields-table basic-table">\n <div class="project-values-title">\n <h2>{{ customFieldSectionTitle | translate }}</h2><a href="" title="{{ customFieldButtonTitle | translate }}" translate="ADMIN.CUSTOM_ATTRIBUTES.ADD" class="button button-gray show-add-new js-add-custom-field-button"></a>\n </div>\n <div class="table-header">\n <div class="row">\n <div translate="COMMON.FIELDS.NAME" class="custom-name"></div>\n <div translate="COMMON.FIELDS.DESCRIPTION" class="custom-description"></div>\n <div translate="COMMON.FIELDS.TYPE" class="custom-field-type"></div>\n <div class="custom-options"></div>\n </div>\n </div>\n <div class="table-body">\n <div class="js-sortable">\n <div ng-repeat="attr in customAttributes track by attr.id" tg-bind-scope class="">\n <form tg-bind-scope class="js-form">\n <div class="row single-custom-field js-view-custom-field">\n <tg-svg svg-icon="icon-drag" class=""></tg-svg>\n <div class="custom-name">{{ attr.name }}</div>\n <div class="custom-description">{{ attr.description }}</div>\n <div ng-switch on="attr.type" class="custom-field-type"><span ng-switch-default translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_TEXT"></span><span ng-switch-when="richtext" translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_RICHTEXT"></span><span ng-switch-when="multiline" translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_MULTI"></span><span ng-switch-when="date" translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_DATE"></span><span ng-switch-when="url" translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_URL"></span></div>\n <div class="custom-options">\n <div class="custom-options-wrapper"><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.EDIT\' | translate}}" class="js-edit-custom-field-button">\n <tg-svg svg-icon="icon-edit"></tg-svg></a><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.DELETE\' | translate}}" class="js-delete-custom-field-button">\n <tg-svg svg-icon="icon-trash"></tg-svg></a></div>\n </div>\n </div>\n <div class="row single-custom-field js-edit-custom-field hidden">\n <fieldset class="custom-name">\n <input type="text" name="name" placeholder="{{\'ADMIN.CUSTOM_ATTRIBUTES.SET_FIELD_NAME\' | translate}}" ng-model="attr.name" data-required="true" data-maxlength="64">\n </fieldset>\n <fieldset class="custom-description">\n <input type="text" name="description" placeholder="{{\'ADMIN.CUSTOM_ATTRIBUTES.SET_FIELD_DESCRIPTION\' | translate}}" ng-model="attr.description">\n </fieldset>\n <fieldset class="custom-field-type">\n <select ng-model="attr.type" ng-options="type.key as type.name|translate for type in TYPE_CHOICES"></select>\n </fieldset>\n <fieldset class="custom-options">\n <div class="custom-options-wrapper"><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.ACTION_UPDATE\' | translate}}" class="js-update-custom-field-button">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.ACTION_CANCEL_EDITION\' | translate}}" class="js-cancel-edit-custom-field-button">\n <tg-svg svg-icon="icon-close"></tg-svg></a></div>\n </fieldset>\n </div>\n </form>\n </div>\n </div>\n <form class="row single-custom-field js-new-custom-field hidden">\n <fieldset class="custom-name">\n <input type="text" name="name" placeholder="{{\'ADMIN.CUSTOM_ATTRIBUTES.SET_FIELD_NAME\' | translate}}" ng-model="newAttr.name" data-required="true" data-maxlength="64">\n </fieldset>\n <fieldset class="custom-description">\n <input type="text" name="description" placeholder="{{\'ADMIN.CUSTOM_ATTRIBUTES.SET_FIELD_DESCRIPTION\' | translate}}" ng-model="newAttr.description">\n </fieldset>\n <fieldset class="custom-field-type">\n <select ng-model="newAttr.type" ng-options="type.key as type.name|translate for type in TYPE_CHOICES">\n <option value="" translate="ADMIN.CUSTOM_ATTRIBUTES.FIELD_TYPE_DEFAULT"></option>\n </select>\n </fieldset>\n <fieldset class="custom-options">\n <div class="custom-options-wrapper"><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.SAVE_TITLE\' | translate}}" class="js-create-custom-field-button">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.CANCEL_TITLE\' | translate}}" class="js-cancel-new-custom-field-button">\n <tg-svg svg-icon="icon-close"></tg-svg></a></div>\n </fieldset>\n </form>\n </div>\n </section>\n </div>\n <div tg-project-custom-attributes ng-controller="ProjectCustomAttributesController as ctrl" ng-init="init(\'task\'); customFieldSectionTitle=\'ADMIN.CUSTOM_FIELDS.TASK_DESCRIPTION\'; customFieldButtonTitle=\'ADMIN.CUSTOM_FIELDS.TASK_ADD\'" class="admin-attributes-section">\n <section class="custom-fields-table basic-table">\n <div class="project-values-title">\n <h2>{{ customFieldSectionTitle | translate }}</h2><a href="" title="{{ customFieldButtonTitle | translate }}" translate="ADMIN.CUSTOM_ATTRIBUTES.ADD" class="button button-gray show-add-new js-add-custom-field-button"></a>\n </div>\n <div class="table-header">\n <div class="row">\n <div translate="COMMON.FIELDS.NAME" class="custom-name"></div>\n <div translate="COMMON.FIELDS.DESCRIPTION" class="custom-description"></div>\n <div translate="COMMON.FIELDS.TYPE" class="custom-field-type"></div>\n <div class="custom-options"></div>\n </div>\n </div>\n <div class="table-body">\n <div class="js-sortable">\n <div ng-repeat="attr in customAttributes track by attr.id" tg-bind-scope class="">\n <form tg-bind-scope class="js-form">\n <div class="row single-custom-field js-view-custom-field">\n <tg-svg svg-icon="icon-drag" class=""></tg-svg>\n <div class="custom-name">{{ attr.name }}</div>\n <div class="custom-description">{{ attr.description }}</div>\n <div ng-switch on="attr.type" class="custom-field-type"><span ng-switch-default translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_TEXT"></span><span ng-switch-when="richtext" translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_RICHTEXT"></span><span ng-switch-when="multiline" translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_MULTI"></span><span ng-switch-when="date" translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_DATE"></span><span ng-switch-when="url" translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_URL"></span></div>\n <div class="custom-options">\n <div class="custom-options-wrapper"><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.EDIT\' | translate}}" class="js-edit-custom-field-button">\n <tg-svg svg-icon="icon-edit"></tg-svg></a><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.DELETE\' | translate}}" class="js-delete-custom-field-button">\n <tg-svg svg-icon="icon-trash"></tg-svg></a></div>\n </div>\n </div>\n <div class="row single-custom-field js-edit-custom-field hidden">\n <fieldset class="custom-name">\n <input type="text" name="name" placeholder="{{\'ADMIN.CUSTOM_ATTRIBUTES.SET_FIELD_NAME\' | translate}}" ng-model="attr.name" data-required="true" data-maxlength="64">\n </fieldset>\n <fieldset class="custom-description">\n <input type="text" name="description" placeholder="{{\'ADMIN.CUSTOM_ATTRIBUTES.SET_FIELD_DESCRIPTION\' | translate}}" ng-model="attr.description">\n </fieldset>\n <fieldset class="custom-field-type">\n <select ng-model="attr.type" ng-options="type.key as type.name|translate for type in TYPE_CHOICES"></select>\n </fieldset>\n <fieldset class="custom-options">\n <div class="custom-options-wrapper"><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.ACTION_UPDATE\' | translate}}" class="js-update-custom-field-button">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.ACTION_CANCEL_EDITION\' | translate}}" class="js-cancel-edit-custom-field-button">\n <tg-svg svg-icon="icon-close"></tg-svg></a></div>\n </fieldset>\n </div>\n </form>\n </div>\n </div>\n <form class="row single-custom-field js-new-custom-field hidden">\n <fieldset class="custom-name">\n <input type="text" name="name" placeholder="{{\'ADMIN.CUSTOM_ATTRIBUTES.SET_FIELD_NAME\' | translate}}" ng-model="newAttr.name" data-required="true" data-maxlength="64">\n </fieldset>\n <fieldset class="custom-description">\n <input type="text" name="description" placeholder="{{\'ADMIN.CUSTOM_ATTRIBUTES.SET_FIELD_DESCRIPTION\' | translate}}" ng-model="newAttr.description">\n </fieldset>\n <fieldset class="custom-field-type">\n <select ng-model="newAttr.type" ng-options="type.key as type.name|translate for type in TYPE_CHOICES">\n <option value="" translate="ADMIN.CUSTOM_ATTRIBUTES.FIELD_TYPE_DEFAULT"></option>\n </select>\n </fieldset>\n <fieldset class="custom-options">\n <div class="custom-options-wrapper"><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.SAVE_TITLE\' | translate}}" class="js-create-custom-field-button">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.CANCEL_TITLE\' | translate}}" class="js-cancel-new-custom-field-button">\n <tg-svg svg-icon="icon-close"></tg-svg></a></div>\n </fieldset>\n </form>\n </div>\n </section>\n </div>\n <div tg-project-custom-attributes ng-controller="ProjectCustomAttributesController as ctrl" ng-init="init(\'issue\'); customFieldSectionTitle=\'ADMIN.CUSTOM_FIELDS.ISSUE_DESCRIPTION\'; customFieldButtonTitle=\'ADMIN.CUSTOM_FIELDS.ISSUE_ADD\'" class="admin-attributes-section">\n <section class="custom-fields-table basic-table">\n <div class="project-values-title">\n <h2>{{ customFieldSectionTitle | translate }}</h2><a href="" title="{{ customFieldButtonTitle | translate }}" translate="ADMIN.CUSTOM_ATTRIBUTES.ADD" class="button button-gray show-add-new js-add-custom-field-button"></a>\n </div>\n <div class="table-header">\n <div class="row">\n <div translate="COMMON.FIELDS.NAME" class="custom-name"></div>\n <div translate="COMMON.FIELDS.DESCRIPTION" class="custom-description"></div>\n <div translate="COMMON.FIELDS.TYPE" class="custom-field-type"></div>\n <div class="custom-options"></div>\n </div>\n </div>\n <div class="table-body">\n <div class="js-sortable">\n <div ng-repeat="attr in customAttributes track by attr.id" tg-bind-scope class="">\n <form tg-bind-scope class="js-form">\n <div class="row single-custom-field js-view-custom-field">\n <tg-svg svg-icon="icon-drag" class=""></tg-svg>\n <div class="custom-name">{{ attr.name }}</div>\n <div class="custom-description">{{ attr.description }}</div>\n <div ng-switch on="attr.type" class="custom-field-type"><span ng-switch-default translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_TEXT"></span><span ng-switch-when="richtext" translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_RICHTEXT"></span><span ng-switch-when="multiline" translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_MULTI"></span><span ng-switch-when="date" translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_DATE"></span><span ng-switch-when="url" translate="ADMIN.CUSTOM_FIELDS.FIELD_TYPE_URL"></span></div>\n <div class="custom-options">\n <div class="custom-options-wrapper"><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.EDIT\' | translate}}" class="js-edit-custom-field-button">\n <tg-svg svg-icon="icon-edit"></tg-svg></a><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.DELETE\' | translate}}" class="js-delete-custom-field-button">\n <tg-svg svg-icon="icon-trash"></tg-svg></a></div>\n </div>\n </div>\n <div class="row single-custom-field js-edit-custom-field hidden">\n <fieldset class="custom-name">\n <input type="text" name="name" placeholder="{{\'ADMIN.CUSTOM_ATTRIBUTES.SET_FIELD_NAME\' | translate}}" ng-model="attr.name" data-required="true" data-maxlength="64">\n </fieldset>\n <fieldset class="custom-description">\n <input type="text" name="description" placeholder="{{\'ADMIN.CUSTOM_ATTRIBUTES.SET_FIELD_DESCRIPTION\' | translate}}" ng-model="attr.description">\n </fieldset>\n <fieldset class="custom-field-type">\n <select ng-model="attr.type" ng-options="type.key as type.name|translate for type in TYPE_CHOICES"></select>\n </fieldset>\n <fieldset class="custom-options">\n <div class="custom-options-wrapper"><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.ACTION_UPDATE\' | translate}}" class="js-update-custom-field-button">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.ACTION_CANCEL_EDITION\' | translate}}" class="js-cancel-edit-custom-field-button">\n <tg-svg svg-icon="icon-close"></tg-svg></a></div>\n </fieldset>\n </div>\n </form>\n </div>\n </div>\n <form class="row single-custom-field js-new-custom-field hidden">\n <fieldset class="custom-name">\n <input type="text" name="name" placeholder="{{\'ADMIN.CUSTOM_ATTRIBUTES.SET_FIELD_NAME\' | translate}}" ng-model="newAttr.name" data-required="true" data-maxlength="64">\n </fieldset>\n <fieldset class="custom-description">\n <input type="text" name="description" placeholder="{{\'ADMIN.CUSTOM_ATTRIBUTES.SET_FIELD_DESCRIPTION\' | translate}}" ng-model="newAttr.description">\n </fieldset>\n <fieldset class="custom-field-type">\n <select ng-model="newAttr.type" ng-options="type.key as type.name|translate for type in TYPE_CHOICES">\n <option value="" translate="ADMIN.CUSTOM_ATTRIBUTES.FIELD_TYPE_DEFAULT"></option>\n </select>\n </fieldset>\n <fieldset class="custom-options">\n <div class="custom-options-wrapper"><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.SAVE_TITLE\' | translate}}" class="js-create-custom-field-button">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'ADMIN.CUSTOM_ATTRIBUTES.CANCEL_TITLE\' | translate}}" class="js-cancel-new-custom-field-button">\n <tg-svg svg-icon="icon-close"></tg-svg></a></div>\n </fieldset>\n </form>\n </div>\n </section>\n </div>\n </section>\n</div>'),t.put("admin/admin-project-values-points.html",'<!DOCTYPE html>\n<div ng-controller="ProjectValuesSectionController" ng-init="sectionName=\'ADMIN.PROJECT_VALUES_POINTS.TITLE\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="project-values" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <sidebar tg-admin-navigation="values-points" class="menu-tertiary sidebar">\n <section class="admin-submenu">\n <nav>\n <ul>\n <li id="adminmenu-values-status"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.STATUS" class="title"></span></a></li>\n <li id="adminmenu-values-points"><a href="" tg-nav="project-admin-project-values-points:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.POINTS" class="title"></span></a></li>\n <li id="adminmenu-values-priorities"><a href="" tg-nav="project-admin-project-values-priorities:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.PRIORITIES" class="title"></span></a></li>\n <li id="adminmenu-values-severities"><a href="" tg-nav="project-admin-project-values-severities:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.SEVERITIES" class="title"></span></a></li>\n <li id="adminmenu-values-types"><a href="" tg-nav="project-admin-project-values-types:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.TYPES" class="title"></span></a></li>\n <li id="adminmenu-values-custom-fields"><a href="" tg-nav="project-admin-project-values-custom-fields:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.CUSTOM_FIELDS" class="title"></span></a></li>\n <li id="adminmenu-values-tags"><a href="" tg-nav="project-admin-project-values-tags:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.TAGS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section class="main admin-common admin-attributes">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <p translate="ADMIN.PROJECT_VALUES_POINTS.SUBTITLE" class="admin-subtitle"></p>\n <div tg-project-values ng-controller="ProjectValuesController as ctrl" ng-init="section=\'admin\'; resource=\'userstories\'; type=\'points\'; sectionName=\'ADMIN.PROJECT_VALUES_POINTS.US_TITLE\'" objName="points" type="points" class="admin-attributes-section">\n <section class="project-values-table">\n <div class="project-values-title">\n <h2>{{sectionName | translate}}</h2><a href="" title="{{\'ADMIN.PROJECT_VALUES_POINTS.ACTION_ADD\' | translate}}" class="button button-gray show-add-new"><span translate="ADMIN.PROJECT_VALUES_POINTS.ACTION_ADD"></span></a>\n </div>\n <div class="project-values-header">\n <div class="project-values-row">\n <div class="project-values-name"><span translate="COMMON.FIELDS.NAME"></span></div>\n <div class="project-values-value"><span translate="COMMON.FIELDS.VALUE"></span></div>\n <div class="project-values-settings"></div>\n </div>\n </div>\n <div class="project-values-body">\n <div class="sortable">\n <div ng-repeat="value in values track by value.id" tg-bind-scope>\n <form tg-bind-scope>\n <div class="project-values-row row table-main visualization">\n <tg-svg svg-icon="icon-drag"></tg-svg>\n <div class="project-values-name"><span>{{ value.name }}</span></div>\n <div class="project-values-value"><span>{{ value.value }}</span></div>\n <div class="project-values-settings"><a href="" class="edit-value">\n <tg-svg title="{{\'ADMIN.COMMON.TITLE_ACTION_EDIT_VALUE\' | translate}}" svg-icon="icon-edit"></tg-svg></a><a href="" class="delete-value">\n <tg-svg title="{{\'ADMIN.COMMON.TITLE_ACTION_DELETE_VALUE\' | translate}}" svg-icon="icon-trash"></tg-svg></a></div>\n </div>\n <div class="project-values-row row table-main edition hidden">\n <div class="project-values-name">\n <input name="name" type="text" placeholder="{{\'COMMON.FIELDS.NAME\' | translate}}" ng-model="value.name">\n </div>\n <div class="project-values-value">\n <input name="value" type="text" placeholder="{{\'COMMON.FIELDS.VALUE\' | translate}}" ng-model="value.value" data-type="number">\n </div>\n <div class="project-values-settings"><a href="" title="{{\'COMMON.SAVE\' | translate}}" class="save ">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'COMMON.CANCEL\' | translate}}" class="cancel">\n <tg-svg svg-icon="icon-close" class="cancel"></tg-svg></a></div>\n </div>\n </form>\n </div>\n </div>\n <form>\n <div class="project-values-row new-value hidden">\n <div class="project-values-name">\n <input name="name" type="text" placeholder="{{\'COMMON.FIELDS.NAME\' | translate}}" ng-model="newValue.name" data-required="true">\n </div>\n <div class="project-values-value">\n <input name="value" type="text" placeholder="{{\'COMMON.FIELDS.VALUE\' | translate}}" ng-model="newValue.value" data-type="number">\n </div>\n <div class="project-values-settings"><a href="" title="{{\'COMMON.ADD\' | translate}}" class="add-new ">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'COMMON.CANCEL\' | translate}}" class="delete-new">\n <tg-svg svg-icon="icon-close"></tg-svg></a></div>\n </div>\n </form>\n </div>\n </section>\n </div>\n </section>\n</div>'),
t.put("admin/admin-project-values-priorities.html",'<!DOCTYPE html>\n<div ng-controller="ProjectValuesSectionController" ng-init="sectionName=\'ADMIN.PROJECT_VALUES_PRIORITIES.TITLE\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="project-values" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <sidebar tg-admin-navigation="values-priorities" class="menu-tertiary sidebar">\n <section class="admin-submenu">\n <nav>\n <ul>\n <li id="adminmenu-values-status"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.STATUS" class="title"></span></a></li>\n <li id="adminmenu-values-points"><a href="" tg-nav="project-admin-project-values-points:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.POINTS" class="title"></span></a></li>\n <li id="adminmenu-values-priorities"><a href="" tg-nav="project-admin-project-values-priorities:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.PRIORITIES" class="title"></span></a></li>\n <li id="adminmenu-values-severities"><a href="" tg-nav="project-admin-project-values-severities:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.SEVERITIES" class="title"></span></a></li>\n <li id="adminmenu-values-types"><a href="" tg-nav="project-admin-project-values-types:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.TYPES" class="title"></span></a></li>\n <li id="adminmenu-values-custom-fields"><a href="" tg-nav="project-admin-project-values-custom-fields:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.CUSTOM_FIELDS" class="title"></span></a></li>\n <li id="adminmenu-values-tags"><a href="" tg-nav="project-admin-project-values-tags:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.TAGS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section class="main admin-common admin-attributes">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <p translate="ADMIN.PROJECT_VALUES_PRIORITIES.SUBTITLE" class="admin-subtitle"></p>\n <div tg-project-values ng-controller="ProjectValuesController as ctrl" ng-init="section=\'admin\'; resource=\'issues\'; type=\'priorities\'; sectionName=\'ADMIN.PROJECT_VALUES_PRIORITIES.ISSUE_TITLE\';" objName="priorities" type="priorities" class="admin-attributes-section">\n <section class="colors-table">\n <div class="project-values-title">\n <h2>{{ sectionName | translate }}</h2><a href="" title="{{ addNewElementText }}" class="button button-gray show-add-new"><span ng-bind="addNewElementText"></span></a>\n </div>\n <div class="table-header">\n <div class="row">\n <div translate="COMMON.FIELDS.COLOR" class="color-column"></div>\n <div translate="COMMON.FIELDS.NAME" class="status-name"></div>\n <div class="options-column"></div>\n </div>\n </div>\n <div class="table-main">\n <div class="sortable">\n <div ng-repeat="value in values" tg-bind-scope>\n <form tg-bind-scope>\n <div class="row table-main visualization">\n <tg-svg svg-icon="icon-drag"></tg-svg>\n <div class="color-column">\n <div ng-style="{background: value.color}" class="current-color"></div>\n </div>\n <div class="status-name"><span>{{ value.name }}</span></div>\n <div class="options-column"><a href="" class="edit-value">\n <tg-svg svg-icon="icon-edit" title="{{\'ADMIN.COMMON.TITLE_ACTION_EDIT_VALUE\' | translate}}"></tg-svg></a><a href="" class="delete-value">\n <tg-svg svg-icon="icon-trash" title="{{\'ADMIN.COMMON.TITLE_ACTION_DELETE_VALUE\' | translate}}"></tg-svg></a></div>\n </div>\n <div class="row table-main edition hidden">\n <div tg-color-selection ng-model="value" class="color-column">\n <div ng-style="{background: value.color}" class="current-color"></div>\n <div class="popover select-color">\n <ul>\n <li ng-repeat="c in colorList" ng-style="::{background: c}" data-color="{{::c }}" class="color"></li>\n <li ng-if="allowEmpty" data-color="" class="color empty-color"></li>\n </ul>\n <input type="text" placeholder="personalized colors" ng-model="color">\n <div ng-style="{\'background-color\': color}" ng-if="color !== null" class="selected-color"></div>\n <div ng-style="{\'background-color\': none}" ng-if="color === null" class="selected-color"></div>\n </div>\n </div>\n <div class="status-name">\n <input name="name" type="text" placeholder="{{\'ADMIN.TYPES.PLACEHOLDER_WRITE_NAME\' | translate}}" ng-model="value.name" data-required="true" data-maxlength="255">\n </div>\n <div class="options-column"><a href="" class="save ">\n <tg-svg title="{{\'COMMON.SAVE\' | translate}}" svg-icon="icon-save"></tg-svg></a><a href="" class="cancel">\n <tg-svg title="{{\'COMMON.CANCEL\' | translate}}" svg-icon="icon-close"></tg-svg></a></div>\n </div>\n </form>\n </div>\n </div>\n <form>\n <div class="row table-main new-value hidden">\n <div tg-color-selection ng-model="newValue" class="color-column">\n <div ng-style="{background: newValue.color}" class="current-color"></div>\n <div class="popover select-color">\n <ul>\n <li ng-repeat="c in colorList" ng-style="::{background: c}" data-color="{{::c }}" class="color"></li>\n <li ng-if="allowEmpty" data-color="" class="color empty-color"></li>\n </ul>\n <input type="text" placeholder="personalized colors" ng-model="color">\n <div ng-style="{\'background-color\': color}" ng-if="color !== null" class="selected-color"></div>\n <div ng-style="{\'background-color\': none}" ng-if="color === null" class="selected-color"></div>\n </div>\n </div>\n <div class="status-name">\n <input name="name" type="text" placeholder="{{\'ADMIN.TYPES.PLACEHOLDER_WRITE_NAME\' | translate}}" ng-model="newValue.name" data-required="true" data-maxlength="255">\n </div>\n <div class="options-column"><a href="" class="add-new ">\n <tg-svg title="{{\'COMMON.ADD\' | translate}}" svg-icon="icon-save"></tg-svg></a><a href="" class="delete-new">\n <tg-svg title="{{\'COMMON.CANCEL\' | translate}}" svg-icon="icon-close"></tg-svg></a></div>\n </div>\n </form>\n </div>\n </section>\n </div>\n </section>\n</div>'),t.put("admin/admin-project-values-severities.html",'<!DOCTYPE html>\n<div ng-controller="ProjectValuesSectionController" ng-init="sectionName=\'ADMIN.PROJECT_VALUES_SEVERITIES.TITLE\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="project-values" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <sidebar tg-admin-navigation="values-severities" class="menu-tertiary sidebar">\n <section class="admin-submenu">\n <nav>\n <ul>\n <li id="adminmenu-values-status"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.STATUS" class="title"></span></a></li>\n <li id="adminmenu-values-points"><a href="" tg-nav="project-admin-project-values-points:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.POINTS" class="title"></span></a></li>\n <li id="adminmenu-values-priorities"><a href="" tg-nav="project-admin-project-values-priorities:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.PRIORITIES" class="title"></span></a></li>\n <li id="adminmenu-values-severities"><a href="" tg-nav="project-admin-project-values-severities:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.SEVERITIES" class="title"></span></a></li>\n <li id="adminmenu-values-types"><a href="" tg-nav="project-admin-project-values-types:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.TYPES" class="title"></span></a></li>\n <li id="adminmenu-values-custom-fields"><a href="" tg-nav="project-admin-project-values-custom-fields:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.CUSTOM_FIELDS" class="title"></span></a></li>\n <li id="adminmenu-values-tags"><a href="" tg-nav="project-admin-project-values-tags:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.TAGS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section class="main admin-common admin-attributes">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <p translate="ADMIN.PROJECT_VALUES_SEVERITIES.SUBTITLE" class="admin-subtitle"></p>\n <div tg-project-values ng-controller="ProjectValuesController as ctrl" ng-init="section=\'admin\'; resource=\'issues\'; type=\'severities\'; sectionName=\'ADMIN.PROJECT_VALUES_SEVERITIES.ISSUE_TITLE\';" objName="severities" type="severities" class="admin-attributes-section">\n <section class="colors-table">\n <div class="project-values-title">\n <h2>{{ sectionName | translate }}</h2><a href="" title="{{ addNewElementText }}" class="button button-gray show-add-new"><span ng-bind="addNewElementText"></span></a>\n </div>\n <div class="table-header">\n <div class="row">\n <div translate="COMMON.FIELDS.COLOR" class="color-column"></div>\n <div translate="COMMON.FIELDS.NAME" class="status-name"></div>\n <div class="options-column"></div>\n </div>\n </div>\n <div class="table-main">\n <div class="sortable">\n <div ng-repeat="value in values" tg-bind-scope>\n <form tg-bind-scope>\n <div class="row table-main visualization">\n <tg-svg svg-icon="icon-drag"></tg-svg>\n <div class="color-column">\n <div ng-style="{background: value.color}" class="current-color"></div>\n </div>\n <div class="status-name"><span>{{ value.name }}</span></div>\n <div class="options-column"><a href="" class="edit-value">\n <tg-svg svg-icon="icon-edit" title="{{\'ADMIN.COMMON.TITLE_ACTION_EDIT_VALUE\' | translate}}"></tg-svg></a><a href="" class="delete-value">\n <tg-svg svg-icon="icon-trash" title="{{\'ADMIN.COMMON.TITLE_ACTION_DELETE_VALUE\' | translate}}"></tg-svg></a></div>\n </div>\n <div class="row table-main edition hidden">\n <div tg-color-selection ng-model="value" class="color-column">\n <div ng-style="{background: value.color}" class="current-color"></div>\n <div class="popover select-color">\n <ul>\n <li ng-repeat="c in colorList" ng-style="::{background: c}" data-color="{{::c }}" class="color"></li>\n <li ng-if="allowEmpty" data-color="" class="color empty-color"></li>\n </ul>\n <input type="text" placeholder="personalized colors" ng-model="color">\n <div ng-style="{\'background-color\': color}" ng-if="color !== null" class="selected-color"></div>\n <div ng-style="{\'background-color\': none}" ng-if="color === null" class="selected-color"></div>\n </div>\n </div>\n <div class="status-name">\n <input name="name" type="text" placeholder="{{\'ADMIN.TYPES.PLACEHOLDER_WRITE_NAME\' | translate}}" ng-model="value.name" data-required="true" data-maxlength="255">\n </div>\n <div class="options-column"><a href="" class="save ">\n <tg-svg title="{{\'COMMON.SAVE\' | translate}}" svg-icon="icon-save"></tg-svg></a><a href="" class="cancel">\n <tg-svg title="{{\'COMMON.CANCEL\' | translate}}" svg-icon="icon-close"></tg-svg></a></div>\n </div>\n </form>\n </div>\n </div>\n <form>\n <div class="row table-main new-value hidden">\n <div tg-color-selection ng-model="newValue" class="color-column">\n <div ng-style="{background: newValue.color}" class="current-color"></div>\n <div class="popover select-color">\n <ul>\n <li ng-repeat="c in colorList" ng-style="::{background: c}" data-color="{{::c }}" class="color"></li>\n <li ng-if="allowEmpty" data-color="" class="color empty-color"></li>\n </ul>\n <input type="text" placeholder="personalized colors" ng-model="color">\n <div ng-style="{\'background-color\': color}" ng-if="color !== null" class="selected-color"></div>\n <div ng-style="{\'background-color\': none}" ng-if="color === null" class="selected-color"></div>\n </div>\n </div>\n <div class="status-name">\n <input name="name" type="text" placeholder="{{\'ADMIN.TYPES.PLACEHOLDER_WRITE_NAME\' | translate}}" ng-model="newValue.name" data-required="true" data-maxlength="255">\n </div>\n <div class="options-column"><a href="" class="add-new ">\n <tg-svg title="{{\'COMMON.ADD\' | translate}}" svg-icon="icon-save"></tg-svg></a><a href="" class="delete-new">\n <tg-svg title="{{\'COMMON.CANCEL\' | translate}}" svg-icon="icon-close"></tg-svg></a></div>\n </div>\n </form>\n </div>\n </section>\n </div>\n </section>\n</div>'),t.put("admin/admin-project-values-status.html",'<!DOCTYPE html>\n<div ng-controller="ProjectValuesSectionController" ng-init="section=\'admin\'; sectionName=\'ADMIN.PROJECT_VALUES_STATUS.TITLE\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="project-values" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <sidebar tg-admin-navigation="values-status" class="menu-tertiary sidebar">\n <section class="admin-submenu">\n <nav>\n <ul>\n <li id="adminmenu-values-status"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.STATUS" class="title"></span></a></li>\n <li id="adminmenu-values-points"><a href="" tg-nav="project-admin-project-values-points:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.POINTS" class="title"></span></a></li>\n <li id="adminmenu-values-priorities"><a href="" tg-nav="project-admin-project-values-priorities:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.PRIORITIES" class="title"></span></a></li>\n <li id="adminmenu-values-severities"><a href="" tg-nav="project-admin-project-values-severities:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.SEVERITIES" class="title"></span></a></li>\n <li id="adminmenu-values-types"><a href="" tg-nav="project-admin-project-values-types:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.TYPES" class="title"></span></a></li>\n <li id="adminmenu-values-custom-fields"><a href="" tg-nav="project-admin-project-values-custom-fields:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.CUSTOM_FIELDS" class="title"></span></a></li>\n <li id="adminmenu-values-tags"><a href="" tg-nav="project-admin-project-values-tags:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.TAGS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section class="main admin-common admin-attributes">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <p translate="ADMIN.PROJECT_VALUES_STATUS.SUBTITLE" class="admin-subtitle"></p>\n <div tg-project-values type="epic-statuses" ng-controller="ProjectValuesController as ctrl" ng-init="section=\'admin\'; resource=\'epics\'; type=\'epic-statuses\'; sectionName=\'ADMIN.PROJECT_VALUES_STATUS.EPIC_TITLE\'" objName="status" class="admin-attributes-section">\n <section class="colors-table admin-status-table">\n <div class="project-values-title">\n <h2>{{ sectionName | translate }}</h2><a href="" title="{{\'ADMIN.US_STATUS.ACTION_ADD_STATUS\' | translate}}" class="button button-gray show-add-new"><span translate="ADMIN.US_STATUS.ACTION_ADD_STATUS"></span></a>\n </div>\n <div class="table-header">\n <div class="row">\n <div translate="COMMON.FIELDS.COLOR" class="color-column"></div>\n <div translate="COMMON.FIELDS.NAME" class="status-name"></div>\n <div translate="COMMON.FIELDS.SLUG" class="status-slug"></div>\n <div translate="COMMON.FIELDS.IS_CLOSED" class="is-closed-column"></div>\n <div class="options-column"></div>\n </div>\n </div>\n <div class="table-main">\n <div class="sortable">\n <div ng-repeat="value in values" tg-bind-scope>\n <form tg-bind-scope>\n <div class="row table-main visualization">\n <tg-svg svg-icon="icon-drag"></tg-svg>\n <div class="color-column">\n <div ng-style="{background: value.color}" class="current-color"></div>\n </div>\n <div class="status-name"><span>{{ value.name }}</span></div>\n <div class="status-slug"><span>{{ value.slug }}</span></div>\n <div class="is-closed-column">\n <tg-svg ng-show="value.is_closed" svg-icon="icon-check"></tg-svg>\n </div>\n <div class="options-column"><a href="" class="edit-value">\n <tg-svg title="{{\'ADMIN.COMMON.TITLE_ACTION_EDIT_VALUE\' | translate}}" svg-icon="icon-edit"></tg-svg></a><a href="" class="delete-value">\n <tg-svg title="{{\'ADMIN.COMMON.TITLE_ACTION_DELETE_VALUE\' | translate}}" svg-icon="icon-trash"></tg-svg></a></div>\n </div>\n <div class="row table-main edition hidden">\n <div tg-color-selection ng-model="value" class="color-column">\n <div ng-style="{background: value.color}" class="current-color"></div>\n <div class="popover select-color">\n <ul>\n <li ng-repeat="c in colorList" ng-style="::{background: c}" data-color="{{::c }}" class="color"></li>\n <li ng-if="allowEmpty" data-color="" class="color empty-color"></li>\n </ul>\n <input type="text" placeholder="personalized colors" ng-model="color">\n <div ng-style="{\'background-color\': color}" ng-if="color !== null" class="selected-color"></div>\n <div ng-style="{\'background-color\': none}" ng-if="color === null" class="selected-color"></div>\n </div>\n </div>\n <div class="status-name">\n <input name="name" type="text" placeholder="{{\'ADMIN.STATUS.PLACEHOLDER_WRITE_STATUS_NAME\' | translate}}" ng-model="value.name" data-required="true" data-maxlength="255">\n </div>\n <div class="is-closed-column">\n <select name="is_closed" ng-model="value.is_closed" data-required="true" ng-options="e.id as e.name | translate for e in [{\'id\':true, \'name\':\'COMMON.YES\'},{\'id\':false, \'name\': \'COMMON.NO\'}]"></select>\n </div>\n <div class="options-column"><a href="" title="{{\'COMMON.SAVE\' | translate}}" class="save ">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'COMMON.CANCEL\' | translate}}" class="cancel">\n <tg-svg svg-icon="icon-close" class="cancel"></tg-svg></a></div>\n </div>\n </form>\n </div>\n </div>\n <form>\n <div class="row table-main new-value hidden">\n <div tg-color-selection ng-model="newValue" class="color-column">\n <div ng-style="{background: newValue.color}" class="current-color"></div>\n <div class="popover select-color">\n <ul>\n <li ng-repeat="c in colorList" ng-style="::{background: c}" data-color="{{::c }}" class="color"></li>\n <li ng-if="allowEmpty" data-color="" class="color empty-color"></li>\n </ul>\n <input type="text" placeholder="personalized colors" ng-model="color">\n <div ng-style="{\'background-color\': color}" ng-if="color !== null" class="selected-color"></div>\n <div ng-style="{\'background-color\': none}" ng-if="color === null" class="selected-color"></div>\n </div>\n </div>\n <div class="status-name">\n <input name="name" type="text" placeholder="{{\'ADMIN.STATUS.PLACEHOLDER_WRITE_STATUS_NAME\' | translate}}" ng-model="newValue.name" data-required="true" data-maxlength="255">\n </div>\n <div class="is-closed-column">\n <select name="is_closed" ng-model="newValue.is_closed" data-required="true" ng-options="e.id as e.name | translate for e in [{\'id\':true, \'name\': \'COMMON.YES\'},{\'id\':false, \'name\': \'COMMON.NO\'}]"></select>\n </div>\n <div class="options-column"><a href="" title="{{\'COMMON.ADD\' | translate}}" class="add-new ">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'COMMON.CANCEL\' | translate}}" class="delete-new">\n <tg-svg svg-icon="icon-close"></tg-svg></a></div>\n </div>\n </form>\n </div>\n </section>\n </div>\n <div tg-project-values type="userstory-statuses" ng-controller="ProjectValuesController as ctrl" ng-init="section=\'admin\'; resource=\'userstories\'; type=\'userstory-statuses\'; sectionName=\'ADMIN.PROJECT_VALUES_STATUS.US_TITLE\'" objName="status" class="admin-attributes-section">\n <section class="project-us-status">\n <div class="project-values-title">\n <h2>{{ sectionName | translate }}</h2><a href="" title="{{\'ADMIN.US_STATUS.ACTION_ADD_STATUS\' | translate}}" class="button button-gray show-add-new"><span translate="ADMIN.US_STATUS.ACTION_ADD_STATUS"></span></a>\n </div>\n <div class="colors-table">\n <div class="table-header">\n <div class="row">\n <div translate="COMMON.FIELDS.COLOR" class="color-column"></div>\n <div translate="COMMON.FIELDS.NAME" class="status-name"></div>\n <div translate="COMMON.FIELDS.SLUG" class="status-slug"></div>\n <div translate="ADMIN.US_STATUS.IS_CLOSED_COLUMN" class="is-closed-column"></div>\n <div translate="ADMIN.US_STATUS.IS_ARCHIVED_COLUMN" class="is-archived-column"></div>\n <div translate="ADMIN.US_STATUS.WIP_LIMIT_COLUMN" class="status-wip-limit"></div>\n <div class="options-column"></div>\n </div>\n </div>\n <div class="table-main">\n <div class="sortable">\n <div ng-repeat="value in values" tg-bind-scope>\n <form tg-bind-scope>\n <div class="row table-main visualization">\n <tg-svg svg-icon="icon-drag"></tg-svg>\n <div class="color-column">\n <div ng-style="{background: value.color}" class="current-color"></div>\n </div>\n <div class="status-name"><span>{{ value.name }}</span></div>\n <div class="status-slug"><span>{{ value.slug }}</span></div>\n <div class="is-closed-column">\n <tg-svg ng-show="value.is_closed" svg-icon="icon-check"></tg-svg>\n </div>\n <div class="is-archived-column">\n <tg-svg ng-show="value.is_archived" svg-icon="icon-check"></tg-svg>\n </div>\n <div class="status-wip-limit"><span ng-hide="value.is_archived">{{ value.wip_limit }}</span></div>\n <div class="options-column"><a href="" class="edit-value">\n <tg-svg title="{{\'ADMIN.COMMON.TITLE_ACTION_EDIT_VALUE\' | translate}}" svg-icon="icon-edit"></tg-svg></a><a href="" class="delete-value">\n <tg-svg title="{{\'ADMIN.COMMON.TITLE_ACTION_DELETE_VALUE\' | translate}}" svg-icon="icon-trash"></tg-svg></a></div>\n </div>\n <div class="row table-main edition hidden">\n <div tg-color-selection ng-model="value" class="color-column">\n <div ng-style="{background: value.color}" class="current-color"></div>\n <div class="popover select-color">\n <ul>\n <li ng-repeat="c in colorList" ng-style="::{background: c}" data-color="{{::c }}" class="color"></li>\n <li ng-if="allowEmpty" data-color="" class="color empty-color"></li>\n </ul>\n <input type="text" placeholder="personalized colors" ng-model="color">\n <div ng-style="{\'background-color\': color}" ng-if="color !== null" class="selected-color"></div>\n <div ng-style="{\'background-color\': none}" ng-if="color === null" class="selected-color"></div>\n </div>\n </div>\n <div class="status-name">\n <input name="name" type="text" placeholder="{{\'ADMIN.US_STATUS.PLACEHOLDER_WRITE_NAME\' | translate}}" ng-model="value.name" data-required="true" data-maxlength="255">\n </div>\n <div class="is-closed-column">\n <select name="is_closed" ng-model="value.is_closed" data-required="true" ng-options="e.id as e.name | translate for e in [{\'id\':true, \'name\':\'COMMON.YES\'},{\'id\':false, \'name\': \'COMMON.NO\'}]"></select>\n </div>\n <div class="is-archived-column">\n <select name="is_archived" ng-model="value.is_archived" data-required="true" ng-options="e.id as e.name | translate for e in [{\'id\':true, \'name\':\'COMMON.YES\'},{\'id\':false, \'name\': \'COMMON.NO\'}]"></select>\n </div>\n <div class="status-wip-limit">\n <input name="wip_limit" type="number" ng-hide="value.is_archived" ng-model="value.wip_limit" data-type="digits" placeholder="{{\'ADMIN.US_STATUS.WIP_LIMIT_COLUMN\' | translate}}">\n </div>\n <div class="options-column"><a href="" title="{{\'COMMON.SAVE\' | translate}}" class="save ">\n <tg-svg svg-icon="icon-save"></tg-svg></a></div><a href="" title="{{\'COMMON.CANCEL\' | translate}}" class="cancel">\n <tg-svg svg-icon="icon-close"></tg-svg></a>\n </div>\n </form>\n </div>\n </div>\n <form>\n <div class="row table-main new-value hidden">\n <div tg-color-selection ng-model="newValue" class="color-column">\n <div ng-style="{background: newValue.color}" class="current-color"></div>\n <div class="popover select-color">\n <ul>\n <li ng-repeat="c in colorList" ng-style="::{background: c}" data-color="{{::c }}" class="color"></li>\n <li ng-if="allowEmpty" data-color="" class="color empty-color"></li>\n </ul>\n <input type="text" placeholder="personalized colors" ng-model="color">\n <div ng-style="{\'background-color\': color}" ng-if="color !== null" class="selected-color"></div>\n <div ng-style="{\'background-color\': none}" ng-if="color === null" class="selected-color"></div>\n </div>\n </div>\n <div class="status-name">\n <input name="name" type="text" ng-model="newValue.name" data-required="true" data-maxlength="255" placeholder="{{\'ADMIN.US_STATUS.PLACEHOLDER_WRITE_NAME\' | translate}}">\n </div>\n <div class="is-closed-column">\n <select name="is_closed" ng-model="newValue.is_closed" data-required="true" ng-options="e.id as e.name | translate for e in [{\'id\':true, \'name\':\'COMMON.YES\'},{\'id\':false, \'name\': \'COMMON.NO\'}]"></select>\n </div>\n <div class="is-archived-column">\n <select name="is_archived" ng-model="newValue.is_archived" data-required="true" ng-options="e.id as e.name | translate for e in [{\'id\':true, \'name\':\'COMMON.YES\'},{\'id\':false, \'name\': \'COMMON.NO\'}]"></select>\n </div>\n <div class="status-wip-limit">\n <input name="wip_limit" type="number" ng-hide="newValue.is_archived" ng-model="newValue.wip_limit" data-type="digits" placeholder="{{\'ADMIN.US_STATUS.WIP_LIMIT_COLUMN\' | translate}}">\n </div>\n <div class="options-column"><a href="" title="{{\'COMMON.ADD\' | translate}}" class="add-new ">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'COMMON.CANCEL\' | translate}}" class="delete-new">\n <tg-svg svg-icon="icon-trash"></tg-svg></a></div>\n </div>\n </form>\n </div>\n </div>\n </section>\n </div>\n <div tg-project-values type="task-statuses" ng-controller="ProjectValuesController as ctrl" ng-init="section=\'admin\'; resource=\'tasks\'; type=\'task-statuses\'; sectionName=\'ADMIN.PROJECT_VALUES_STATUS.TASK_TITLE\'" objName="status" class="admin-attributes-section">\n <section class="colors-table admin-status-table">\n <div class="project-values-title">\n <h2>{{ sectionName | translate }}</h2><a href="" title="{{\'ADMIN.US_STATUS.ACTION_ADD_STATUS\' | translate}}" class="button button-gray show-add-new"><span translate="ADMIN.US_STATUS.ACTION_ADD_STATUS"></span></a>\n </div>\n <div class="table-header">\n <div class="row">\n <div translate="COMMON.FIELDS.COLOR" class="color-column"></div>\n <div translate="COMMON.FIELDS.NAME" class="status-name"></div>\n <div translate="COMMON.FIELDS.SLUG" class="status-slug"></div>\n <div translate="COMMON.FIELDS.IS_CLOSED" class="is-closed-column"></div>\n <div class="options-column"></div>\n </div>\n </div>\n <div class="table-main">\n <div class="sortable">\n <div ng-repeat="value in values" tg-bind-scope>\n <form tg-bind-scope>\n <div class="row table-main visualization">\n <tg-svg svg-icon="icon-drag"></tg-svg>\n <div class="color-column">\n <div ng-style="{background: value.color}" class="current-color"></div>\n </div>\n <div class="status-name"><span>{{ value.name }}</span></div>\n <div class="status-slug"><span>{{ value.slug }}</span></div>\n <div class="is-closed-column">\n <tg-svg ng-show="value.is_closed" svg-icon="icon-check"></tg-svg>\n </div>\n <div class="options-column"><a href="" class="edit-value">\n <tg-svg title="{{\'ADMIN.COMMON.TITLE_ACTION_EDIT_VALUE\' | translate}}" svg-icon="icon-edit"></tg-svg></a><a href="" class="delete-value">\n <tg-svg title="{{\'ADMIN.COMMON.TITLE_ACTION_DELETE_VALUE\' | translate}}" svg-icon="icon-trash"></tg-svg></a></div>\n </div>\n <div class="row table-main edition hidden">\n <div tg-color-selection ng-model="value" class="color-column">\n <div ng-style="{background: value.color}" class="current-color"></div>\n <div class="popover select-color">\n <ul>\n <li ng-repeat="c in colorList" ng-style="::{background: c}" data-color="{{::c }}" class="color"></li>\n <li ng-if="allowEmpty" data-color="" class="color empty-color"></li>\n </ul>\n <input type="text" placeholder="personalized colors" ng-model="color">\n <div ng-style="{\'background-color\': color}" ng-if="color !== null" class="selected-color"></div>\n <div ng-style="{\'background-color\': none}" ng-if="color === null" class="selected-color"></div>\n </div>\n </div>\n <div class="status-name">\n <input name="name" type="text" placeholder="{{\'ADMIN.STATUS.PLACEHOLDER_WRITE_STATUS_NAME\' | translate}}" ng-model="value.name" data-required="true" data-maxlength="255">\n </div>\n <div class="is-closed-column">\n <select name="is_closed" ng-model="value.is_closed" data-required="true" ng-options="e.id as e.name | translate for e in [{\'id\':true, \'name\':\'COMMON.YES\'},{\'id\':false, \'name\': \'COMMON.NO\'}]"></select>\n </div>\n <div class="options-column"><a href="" title="{{\'COMMON.SAVE\' | translate}}" class="save ">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'COMMON.CANCEL\' | translate}}" class="cancel">\n <tg-svg svg-icon="icon-close" class="cancel"></tg-svg></a></div>\n </div>\n </form>\n </div>\n </div>\n <form>\n <div class="row table-main new-value hidden">\n <div tg-color-selection ng-model="newValue" class="color-column">\n <div ng-style="{background: newValue.color}" class="current-color"></div>\n <div class="popover select-color">\n <ul>\n <li ng-repeat="c in colorList" ng-style="::{background: c}" data-color="{{::c }}" class="color"></li>\n <li ng-if="allowEmpty" data-color="" class="color empty-color"></li>\n </ul>\n <input type="text" placeholder="personalized colors" ng-model="color">\n <div ng-style="{\'background-color\': color}" ng-if="color !== null" class="selected-color"></div>\n <div ng-style="{\'background-color\': none}" ng-if="color === null" class="selected-color"></div>\n </div>\n </div>\n <div class="status-name">\n <input name="name" type="text" placeholder="{{\'ADMIN.STATUS.PLACEHOLDER_WRITE_STATUS_NAME\' | translate}}" ng-model="newValue.name" data-required="true" data-maxlength="255">\n </div>\n <div class="is-closed-column">\n <select name="is_closed" ng-model="newValue.is_closed" data-required="true" ng-options="e.id as e.name | translate for e in [{\'id\':true, \'name\': \'COMMON.YES\'},{\'id\':false, \'name\': \'COMMON.NO\'}]"></select>\n </div>\n <div class="options-column"><a href="" title="{{\'COMMON.ADD\' | translate}}" class="add-new ">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'COMMON.CANCEL\' | translate}}" class="delete-new">\n <tg-svg svg-icon="icon-close"></tg-svg></a></div>\n </div>\n </form>\n </div>\n </section>\n </div>\n <div tg-project-values type="issue-statuses" ng-controller="ProjectValuesController as ctrl" ng-init="section=\'admin\'; resource=\'issues\'; type=\'issue-statuses\'; sectionName=\'ADMIN.PROJECT_VALUES_STATUS.ISSUE_TITLE\'" objName="status" class="admin-attributes-section">\n <section class="colors-table admin-status-table">\n <div class="project-values-title">\n <h2>{{ sectionName | translate }}</h2><a href="" title="{{\'ADMIN.US_STATUS.ACTION_ADD_STATUS\' | translate}}" class="button button-gray show-add-new"><span translate="ADMIN.US_STATUS.ACTION_ADD_STATUS"></span></a>\n </div>\n <div class="table-header">\n <div class="row">\n <div translate="COMMON.FIELDS.COLOR" class="color-column"></div>\n <div translate="COMMON.FIELDS.NAME" class="status-name"></div>\n <div translate="COMMON.FIELDS.SLUG" class="status-slug"></div>\n <div translate="COMMON.FIELDS.IS_CLOSED" class="is-closed-column"></div>\n <div class="options-column"></div>\n </div>\n </div>\n <div class="table-main">\n <div class="sortable">\n <div ng-repeat="value in values" tg-bind-scope>\n <form tg-bind-scope>\n <div class="row table-main visualization">\n <tg-svg svg-icon="icon-drag"></tg-svg>\n <div class="color-column">\n <div ng-style="{background: value.color}" class="current-color"></div>\n </div>\n <div class="status-name"><span>{{ value.name }}</span></div>\n <div class="status-slug"><span>{{ value.slug }}</span></div>\n <div class="is-closed-column">\n <tg-svg ng-show="value.is_closed" svg-icon="icon-check"></tg-svg>\n </div>\n <div class="options-column"><a href="" class="edit-value">\n <tg-svg title="{{\'ADMIN.COMMON.TITLE_ACTION_EDIT_VALUE\' | translate}}" svg-icon="icon-edit"></tg-svg></a><a href="" class="delete-value">\n <tg-svg title="{{\'ADMIN.COMMON.TITLE_ACTION_DELETE_VALUE\' | translate}}" svg-icon="icon-trash"></tg-svg></a></div>\n </div>\n <div class="row table-main edition hidden">\n <div tg-color-selection ng-model="value" class="color-column">\n <div ng-style="{background: value.color}" class="current-color"></div>\n <div class="popover select-color">\n <ul>\n <li ng-repeat="c in colorList" ng-style="::{background: c}" data-color="{{::c }}" class="color"></li>\n <li ng-if="allowEmpty" data-color="" class="color empty-color"></li>\n </ul>\n <input type="text" placeholder="personalized colors" ng-model="color">\n <div ng-style="{\'background-color\': color}" ng-if="color !== null" class="selected-color"></div>\n <div ng-style="{\'background-color\': none}" ng-if="color === null" class="selected-color"></div>\n </div>\n </div>\n <div class="status-name">\n <input name="name" type="text" placeholder="{{\'ADMIN.STATUS.PLACEHOLDER_WRITE_STATUS_NAME\' | translate}}" ng-model="value.name" data-required="true" data-maxlength="255">\n </div>\n <div class="is-closed-column">\n <select name="is_closed" ng-model="value.is_closed" data-required="true" ng-options="e.id as e.name | translate for e in [{\'id\':true, \'name\':\'COMMON.YES\'},{\'id\':false, \'name\': \'COMMON.NO\'}]"></select>\n </div>\n <div class="options-column"><a href="" title="{{\'COMMON.SAVE\' | translate}}" class="save ">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'COMMON.CANCEL\' | translate}}" class="cancel">\n <tg-svg svg-icon="icon-close" class="cancel"></tg-svg></a></div>\n </div>\n </form>\n </div>\n </div>\n <form>\n <div class="row table-main new-value hidden">\n <div tg-color-selection ng-model="newValue" class="color-column">\n <div ng-style="{background: newValue.color}" class="current-color"></div>\n <div class="popover select-color">\n <ul>\n <li ng-repeat="c in colorList" ng-style="::{background: c}" data-color="{{::c }}" class="color"></li>\n <li ng-if="allowEmpty" data-color="" class="color empty-color"></li>\n </ul>\n <input type="text" placeholder="personalized colors" ng-model="color">\n <div ng-style="{\'background-color\': color}" ng-if="color !== null" class="selected-color"></div>\n <div ng-style="{\'background-color\': none}" ng-if="color === null" class="selected-color"></div>\n </div>\n </div>\n <div class="status-name">\n <input name="name" type="text" placeholder="{{\'ADMIN.STATUS.PLACEHOLDER_WRITE_STATUS_NAME\' | translate}}" ng-model="newValue.name" data-required="true" data-maxlength="255">\n </div>\n <div class="is-closed-column">\n <select name="is_closed" ng-model="newValue.is_closed" data-required="true" ng-options="e.id as e.name | translate for e in [{\'id\':true, \'name\': \'COMMON.YES\'},{\'id\':false, \'name\': \'COMMON.NO\'}]"></select>\n </div>\n <div class="options-column"><a href="" title="{{\'COMMON.ADD\' | translate}}" class="add-new ">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'COMMON.CANCEL\' | translate}}" class="delete-new">\n <tg-svg svg-icon="icon-close"></tg-svg></a></div>\n </div>\n </form>\n </div>\n </section>\n </div>\n </section>\n</div>'),
t.put("admin/admin-project-values-tags.html",'<!DOCTYPE html>\n<div ng-controller="ProjectValuesSectionController" ng-init="sectionName=\'ADMIN.PROJECT_VALUES_TAGS.TITLE\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="project-values" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <sidebar tg-admin-navigation="values-tags" class="menu-tertiary sidebar">\n <section class="admin-submenu">\n <nav>\n <ul>\n <li id="adminmenu-values-status"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.STATUS" class="title"></span></a></li>\n <li id="adminmenu-values-points"><a href="" tg-nav="project-admin-project-values-points:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.POINTS" class="title"></span></a></li>\n <li id="adminmenu-values-priorities"><a href="" tg-nav="project-admin-project-values-priorities:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.PRIORITIES" class="title"></span></a></li>\n <li id="adminmenu-values-severities"><a href="" tg-nav="project-admin-project-values-severities:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.SEVERITIES" class="title"></span></a></li>\n <li id="adminmenu-values-types"><a href="" tg-nav="project-admin-project-values-types:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.TYPES" class="title"></span></a></li>\n <li id="adminmenu-values-custom-fields"><a href="" tg-nav="project-admin-project-values-custom-fields:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.CUSTOM_FIELDS" class="title"></span></a></li>\n <li id="adminmenu-values-tags"><a href="" tg-nav="project-admin-project-values-tags:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.TAGS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section tg-project-tags ng-controller="ProjectTagsController as ctrl" class="main admin-common admin-attributes colors-table tags-table">\n <header class="header-with-actions">\n <div class="title">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <p translate="ADMIN.PROJECT_VALUES_TAGS.SUBTITLE" class="admin-subtitle"></p>\n </div>\n <div class="action-buttons"><a href="" title="{{ \'ADMIN.PROJECT_VALUES_TAGS.NEW_TAG\'|translate }}" translate="ADMIN.PROJECT_VALUES_TAGS.NEW_TAG" class="button button-green show-add-new"></a></div>\n </header>\n <div class="admin-attributes-section">\n <section>\n <div ng-if="!projectTagsAll.length &amp;&amp; ctrl.loading" tg-loading="ctrl.loading" class="admin-tags-section-wrapper-empty"></div>\n <div class="admin-tags-section-wrapper">\n <form class="add-tag-container new-value hidden">\n <tg-color-selector is-color-required="false" init-color="newValue.color" on-select-color="newValue.color = color" class="color-column"></tg-color-selector>\n <div class="tag-name">\n <input name="tag" type="text" placeholder="{{\'ADMIN.TYPES.PLACEHOLDER_WRITE_NAME\' | translate}}" ng-model="newValue.tag" data-required="true" data-maxlength="255">\n </div>\n <div tg-loading="loadingCreate" class="options-column"><a href="" class="add-new ">\n <tg-svg title="{{\'COMMON.ADD\' | translate}}" svg-icon="icon-save"></tg-svg></a><a href="" class="delete-new">\n <tg-svg title="{{\'COMMON.CANCEL\' | translate}}" svg-icon="icon-close"></tg-svg></a></div>\n </form>\n <div ng-if="!projectTagsAll.length &amp;&amp; !ctrl.loading" class="empty-large tags-empty"><img src="/v-1525361023952/images/empty/empty_field.png" alt="{{\'BACKLOG.EMPTY\' | translate}}">\n <p translate="ADMIN.PROJECT_VALUES_TAGS.EMPTY" class="title"></p>\n </div>\n <div ng-if="projectTagsAll.length" class="table-header table-tags-editor">\n <div class="row header-tag-row">\n <div translate="COMMON.FIELDS.COLOR" class="color-column"></div>\n <div translate="COMMON.FIELDS.NAME" class="status-name"></div>\n <div class="color-filter">\n <input id="filter-tags-input" type="text" name="name" ng-model="tagsFilter.name" ng-model-options="{debounce: 200}" class="">\n <label for="filter-tags-input">\n <tg-svg svg-icon="icon-search"></tg-svg>\n </label>\n </div>\n </div>\n </div>\n <div ng-if="projectTagsAll.length" class="table-main table-admin-tags">\n <div ng-show="!mixingTags.toTag">\n <div ng-show="!projectTags.length" tg-loading="ctrl.loading" class="empty-large admin-attributes-section-wrapper-empty"><img src="/v-1525361023952/images/empty/empty_moon.png" alt="{{\'BACKLOG.EMPTY\' | translate}}">\n <p translate="ADMIN.PROJECT_VALUES_TAGS.EMPTY_SEARCH"></p>\n </div>\n <div ng-repeat="tag in projectTags" tg-bind-scope class="">\n <form tg-bind-scope>\n <div ng-class="{{ ctrl.mixingClass(tag) }}" class="row tag-row table-main visualization">\n <div class="color-column">\n <div ng-style="{background: tag.color}" ng-if="tag.color" class="current-color"></div>\n <div ng-if="!tag.color" class="current-color empty-color"></div>\n </div>\n <div class="status-name"><span tg-bo-html="tag.name"></span></div>\n <div class="options-column"><a href="" class="mix-tags">\n <tg-svg title="{{\'ADMIN.PROJECT_VALUES_TAGS.MIXING_MERGE\' | translate}}" svg-icon="icon-merge"></tg-svg>\n <div class="popover merge-explanation"><span translate="ADMIN.PROJECT_VALUES_TAGS.MIXING_MERGE"></span></div></a><a href="" class="edit-value">\n <tg-svg svg-icon="icon-edit" title="{{\'ADMIN.COMMON.TITLE_ACTION_EDIT_VALUE\' | translate}}"></tg-svg></a><a href="" tg-loading="loadingDelete" class="delete-tag">\n <tg-svg svg-icon="icon-trash" title="{{\'ADMIN.COMMON.TITLE_ACTION_DELETE_VALUE\' | translate}}"></tg-svg></a></div>\n </div>\n <div class="row tag-row table-main edition hidden">\n <tg-color-selector is-color-required="false" ng-model="tag" init-color="tag.color" on-select-color="tag.color = color" class="color-column"></tg-color-selector>\n <div class="status-name">\n <input name="to_tag" type="text" placeholder="{{\'ADMIN.TYPES.PLACEHOLDER_WRITE_NAME\' | translate}}" ng-model="tag.name" data-required="true" data-maxlength="255">\n </div>\n <div tg-loading="loadingEdit" class="options-column"><a href="" class="save ">\n <tg-svg title="{{\'COMMON.SAVE\' | translate}}" svg-icon="icon-save"></tg-svg></a><a href="" class="cancel">\n <tg-svg title="{{\'COMMON.CANCEL\' | translate}}" svg-icon="icon-close"></tg-svg></a></div>\n </div>\n </form>\n </div>\n </div>\n <div ng-show="mixingTags.toTag">\n <div ng-repeat="tag in projectTags" tg-bind-scope>\n <form tg-bind-scope>\n <div ng-class="ctrl.mixingClass(tag)" class="row mixing-row table-main visualization">\n <div class="color-column">\n <div ng-if="tag.color" ng-style="{background: tag.color}" class="current-color"></div>\n <div ng-if="!tag.color" class="current-color empty-color"></div>\n </div>\n <div class="status-name"><span tg-bo-html="tag.name"></span></div>\n <div ng-if="mixingTags.toTag === tag.name" tg-loading="loadingMixing" class="mixing-options-column">\n <div translate="ADMIN.PROJECT_VALUES_TAGS.MIXING_HELP_TEXT" class="mixing-help-text"></div><a href="" ng-if="mixingTags.fromTags.length" translate="ADMIN.PROJECT_VALUES_TAGS.MIXING_MERGE" class="mixing-confirm button-green"></a><a href="" translate="COMMON.CANCEL" class="mixing-cancel button-gray"></a>\n </div>\n <div ng-if="mixingTags.fromTags.indexOf(tag.name) !== -1" class="mixing-options-column">\n <tg-svg title="{{\'ADMIN.PROJECT_VALUES_TAGS.SELECTED\' | translate}}" svg-icon="icon-merge" class="mixing-selected"></tg-svg>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n </div>\n </section>\n </div>\n </section>\n</div>'),t.put("admin/admin-project-values-types.html",'<!DOCTYPE html>\n<div ng-controller="ProjectValuesSectionController" ng-init="sectionName=\'ADMIN.PROJECT_VALUES_TYPES.TITLE\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="project-values" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <sidebar tg-admin-navigation="values-types" class="menu-tertiary sidebar">\n <section class="admin-submenu">\n <nav>\n <ul>\n <li id="adminmenu-values-status"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.STATUS" class="title"></span></a></li>\n <li id="adminmenu-values-points"><a href="" tg-nav="project-admin-project-values-points:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.POINTS" class="title"></span></a></li>\n <li id="adminmenu-values-priorities"><a href="" tg-nav="project-admin-project-values-priorities:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.PRIORITIES" class="title"></span></a></li>\n <li id="adminmenu-values-severities"><a href="" tg-nav="project-admin-project-values-severities:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.SEVERITIES" class="title"></span></a></li>\n <li id="adminmenu-values-types"><a href="" tg-nav="project-admin-project-values-types:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.TYPES" class="title"></span></a></li>\n <li id="adminmenu-values-custom-fields"><a href="" tg-nav="project-admin-project-values-custom-fields:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.CUSTOM_FIELDS" class="title"></span></a></li>\n <li id="adminmenu-values-tags"><a href="" tg-nav="project-admin-project-values-tags:project=project.slug"><span translate="ADMIN.SUBMENU_PROJECT_VALUES.TAGS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section class="main admin-common admin-attributes">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <p translate="ADMIN.PROJECT_VALUES_TYPES.SUBTITLE" class="admin-subtitle"></p>\n <div tg-project-values ng-controller="ProjectValuesController as ctrl" ng-init="section=\'admin\'; resource=\'issues\'; sectionName=\'ADMIN.PROJECT_VALUES_TYPES.ISSUE_TITLE\'; type=\'issue-types\';" objName="types" type="issue-types" class="admin-attributes-section">\n <section class="colors-table">\n <div class="project-values-title">\n <h2>{{ sectionName | translate }}</h2><a href="" title="{{ addNewElementText }}" class="button button-gray show-add-new"><span ng-bind="addNewElementText"></span></a>\n </div>\n <div class="table-header">\n <div class="row">\n <div translate="COMMON.FIELDS.COLOR" class="color-column"></div>\n <div translate="COMMON.FIELDS.NAME" class="status-name"></div>\n <div class="options-column"></div>\n </div>\n </div>\n <div class="table-main">\n <div class="sortable">\n <div ng-repeat="value in values" tg-bind-scope>\n <form tg-bind-scope>\n <div class="row table-main visualization">\n <tg-svg svg-icon="icon-drag"></tg-svg>\n <div class="color-column">\n <div ng-style="{background: value.color}" class="current-color"></div>\n </div>\n <div class="status-name"><span>{{ value.name }}</span></div>\n <div class="options-column"><a href="" class="edit-value">\n <tg-svg svg-icon="icon-edit" title="{{\'ADMIN.COMMON.TITLE_ACTION_EDIT_VALUE\' | translate}}"></tg-svg></a><a href="" class="delete-value">\n <tg-svg svg-icon="icon-trash" title="{{\'ADMIN.COMMON.TITLE_ACTION_DELETE_VALUE\' | translate}}"></tg-svg></a></div>\n </div>\n <div class="row table-main edition hidden">\n <div tg-color-selection ng-model="value" class="color-column">\n <div ng-style="{background: value.color}" class="current-color"></div>\n <div class="popover select-color">\n <ul>\n <li ng-repeat="c in colorList" ng-style="::{background: c}" data-color="{{::c }}" class="color"></li>\n <li ng-if="allowEmpty" data-color="" class="color empty-color"></li>\n </ul>\n <input type="text" placeholder="personalized colors" ng-model="color">\n <div ng-style="{\'background-color\': color}" ng-if="color !== null" class="selected-color"></div>\n <div ng-style="{\'background-color\': none}" ng-if="color === null" class="selected-color"></div>\n </div>\n </div>\n <div class="status-name">\n <input name="name" type="text" placeholder="{{\'ADMIN.TYPES.PLACEHOLDER_WRITE_NAME\' | translate}}" ng-model="value.name" data-required="true" data-maxlength="255">\n </div>\n <div class="options-column"><a href="" class="save ">\n <tg-svg title="{{\'COMMON.SAVE\' | translate}}" svg-icon="icon-save"></tg-svg></a><a href="" class="cancel">\n <tg-svg title="{{\'COMMON.CANCEL\' | translate}}" svg-icon="icon-close"></tg-svg></a></div>\n </div>\n </form>\n </div>\n </div>\n <form>\n <div class="row table-main new-value hidden">\n <div tg-color-selection ng-model="newValue" class="color-column">\n <div ng-style="{background: newValue.color}" class="current-color"></div>\n <div class="popover select-color">\n <ul>\n <li ng-repeat="c in colorList" ng-style="::{background: c}" data-color="{{::c }}" class="color"></li>\n <li ng-if="allowEmpty" data-color="" class="color empty-color"></li>\n </ul>\n <input type="text" placeholder="personalized colors" ng-model="color">\n <div ng-style="{\'background-color\': color}" ng-if="color !== null" class="selected-color"></div>\n <div ng-style="{\'background-color\': none}" ng-if="color === null" class="selected-color"></div>\n </div>\n </div>\n <div class="status-name">\n <input name="name" type="text" placeholder="{{\'ADMIN.TYPES.PLACEHOLDER_WRITE_NAME\' | translate}}" ng-model="newValue.name" data-required="true" data-maxlength="255">\n </div>\n <div class="options-column"><a href="" class="add-new ">\n <tg-svg title="{{\'COMMON.ADD\' | translate}}" svg-icon="icon-save"></tg-svg></a><a href="" class="delete-new">\n <tg-svg title="{{\'COMMON.CANCEL\' | translate}}" svg-icon="icon-close"></tg-svg></a></div>\n </div>\n </form>\n </div>\n </section>\n </div>\n </section>\n</div>'),t.put("admin/admin-roles.html",'<!DOCTYPE html>\n<div ng-controller="RolesController as ctrl" ng-init="section=\'admin\'" tg-roles class="wrapper roles">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="roles" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <sidebar class="menu-tertiary sidebar">\n <section ng-if="roles" class="admin-submenu admin-submenu-roles">\n <nav>\n <ul>\n <li ng-repeat="item in roles"><a href="" ng-click="ctrl.setRole(item)" ng-class="{active: role.id == item.id}"><span class="single-role">{{ item.name }}</span></a></li>\n </ul>\n <div tg-new-role><a href="" title="{{\'ADMIN.SUBMENU_ROLES.TITLE_ACTION_NEW_ROLE\' | translate}}" translate="ADMIN.SUBMENU_ROLES.ACTION_NEW_ROLE" class="button-gray add-button"></a>\n <input type="text" class="hidden new">\n </div>\n </nav>\n </section>\n </sidebar>\n <section class="main admin-roles admin-common">\n <header class="header-with-actions">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <div ng-if="!role.external_user" class="action-buttons"><a href="" title="{{\'COMMON.DELETE\' | translate}}" ng-click="ctrl.delete()" class="button-red delete-role"><span translate="COMMON.DELETE"></span></a></div>\n </header>\n <tg-edit-role ng-if="!role.external_user">\n <div class="edit-role">\n <input type="text" value="{{ role.name }}"><a href="" title="{{\'COMMON.SAVE\' | translate}}" class="save">\n <tg-svg svg-icon="icon-save"></tg-svg></a>\n </div>\n <p class="total"><span title="{{\'ADMIN.ROLES.COUNT_MEMBERS\' | translate}}" class="role-name">{{ role.name }}</span><a href="" class="edit-value">\n <tg-svg svg-icon="icon-edit"></tg-svg></a></p>\n </tg-edit-role>\n <div ng-if="role.external_user">\n <p class="total"><span class="role-name">{{ role.name }}</span></p>\n </div>\n <div ng-hide="anyComputableRole" translate="ADMIN.ROLES.WARNING_NO_ROLE" class="any-computable-role"></div>\n <div ng-if="role.external_user" class="general-category external-user"><span translate="ADMIN.ROLES.NOTE_EXTERNAL_USERS"></span></div>\n <div ng-if="!role.external_user" class="general-category"><span translate="ADMIN.ROLES.HELP_ROLE_ENABLED"></span>\n <div class="check">\n <input type="checkbox" ng-model="role.computable" ng-change="ctrl.toggleComputable()">\n <div></div><span translate="COMMON.YES" class="check-text check-yes"></span><span translate="COMMON.NO" class="check-text check-no"></span>\n </div>\n </div>\n <div tg-role-permissions ng-model="role"></div>\n </section>\n</div>'),t.put("admin/admin-third-parties-bitbucket.html",'<!DOCTYPE html>\n<div tg-bitbucket-webhooks ng-controller="BitbucketController as ctrl" ng-init="section=\'admin\'" class="wrapper roles">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="third-parties" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <sidebar tg-admin-navigation="third-parties-bitbucket" class="menu-tertiary sidebar">\n <section class="admin-submenu">\n <nav>\n <ul>\n <li id="adminmenu-third-parties-webhooks" class="third-parties-webhooks"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span class="title">Webhooks</span></a></li>\n <li id="adminmenu-third-parties-github"><a href="" tg-nav="project-admin-third-parties-github:project=project.slug"><span class="title">Github</span></a></li>\n <li id="adminmenu-third-parties-gitlab"><a href="" tg-nav="project-admin-third-parties-gitlab:project=project.slug"><span class="title">Gitlab</span></a></li>\n <li id="adminmenu-third-parties-bitbucket"><a href="" tg-nav="project-admin-third-parties-bitbucket:project=project.slug"><span class="title">Bitbucket</span></a></li>\n <li id="adminmenu-third-parties-gogs"><a href="" tg-nav="project-admin-third-parties-gogs:project=project.slug"><span class="title">Gogs</span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section class="main admin-common admin-third-parties">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <form>\n <fieldset>\n <label for="secret-key" translate="ADMIN.THIRD_PARTIES.SECRET_KEY"></label>\n <input id="secret-key" type="text" name="secret-key" ng-model="bitbucket.secret" placeholder="{{\'ADMIN.THIRD_PARTIES.SECRET_KEY\' | translate}}">\n </fieldset>\n <fieldset>\n <div tg-select-input-text class="select-input-text">\n <div>\n <label for="payload-url" translate="ADMIN.THIRD_PARTIES.PAYLOAD_URL"></label>\n <div class="field-with-option">\n <input id="payload-url" type="text" name="payload-url" readonly="readonly" ng-model="bitbucket.webhooks_url" placeholder="{{\'ADMIN.THIRD_PARTIES.PAYLOAD_URL\' | translate}}">\n <div class="option-wrapper select-input-content">\n <tg-svg svg-icon="icon-clipboard"></tg-svg>\n </div>\n </div>\n <div translate="COMMON.COPY_TO_CLIPBOARD" class="help-copy"></div>\n </div>\n </div>\n </fieldset>\n <fieldset>\n <label for="valid-origin-ips" translate="ADMIN.THIRD_PARTIES.VALID_IPS"></label>\n <input id="valid-origin-ips" type="text" name="valid-origin-ips" tg-valid-origin-ips ng-model="bitbucket.valid_origin_ips" placeholder="{{\'ADMIN.BITBUCKET.INFO_VERIFYING_IP\' | translate}}">\n </fieldset>\n <button type="submit" title="{{\'COMMON.SAVE\' | translate}}" translate="COMMON.SAVE" class="button-green submit-button"></button>\n </form><a href="https://tree.taiga.io/support/integrations/bitbucket-integration/" target="_blank" class="help-button">\n <tg-svg svg-icon="icon-question"></tg-svg><span translate="ADMIN.HELP"></span></a>\n </section>\n</div>'),t.put("admin/admin-third-parties-github.html",'<!DOCTYPE html>\n<div tg-github-webhooks ng-controller="GithubController as ctrl" ng-init="section=\'admin\'" class="wrapper roles">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="third-parties" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <sidebar tg-admin-navigation="third-parties-github" class="menu-tertiary sidebar">\n <section class="admin-submenu">\n <nav>\n <ul>\n <li id="adminmenu-third-parties-webhooks" class="third-parties-webhooks"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span class="title">Webhooks</span></a></li>\n <li id="adminmenu-third-parties-github"><a href="" tg-nav="project-admin-third-parties-github:project=project.slug"><span class="title">Github</span></a></li>\n <li id="adminmenu-third-parties-gitlab"><a href="" tg-nav="project-admin-third-parties-gitlab:project=project.slug"><span class="title">Gitlab</span></a></li>\n <li id="adminmenu-third-parties-bitbucket"><a href="" tg-nav="project-admin-third-parties-bitbucket:project=project.slug"><span class="title">Bitbucket</span></a></li>\n <li id="adminmenu-third-parties-gogs"><a href="" tg-nav="project-admin-third-parties-gogs:project=project.slug"><span class="title">Gogs</span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section class="main admin-common admin-third-parties">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <form>\n <fieldset>\n <label for="secret-key" translate="ADMIN.THIRD_PARTIES.SECRET_KEY"></label>\n <input id="secret-key" type="text" name="secret-key" ng-model="github.secret" placeholder="{{\'ADMIN.THIRD_PARTIES.SECRET_KEY\' | translate}}">\n </fieldset>\n <fieldset>\n <div tg-select-input-text class="select-input-text">\n <div>\n <label for="payload-url" translate="ADMIN.THIRD_PARTIES.PAYLOAD_URL"></label>\n <div class="field-with-option">\n <input id="payload-url" type="text" name="payload-url" readonly="readonly" ng-model="github.webhooks_url" placeholder="{{\'ADMIN.THIRD_PARTIES.PAYLOAD_URL\' | translate}}">\n <div class="option-wrapper select-input-content">\n <tg-svg svg-icon="icon-clipboard"></tg-svg>\n </div>\n </div>\n <div translate="COMMON.COPY_TO_CLIPBOARD" class="help-copy"></div>\n </div>\n </div>\n </fieldset>\n <button type="submit" title="{{\'COMMON.SAVE\' | translate}}" translate="COMMON.SAVE" class="button-green submit-button"></button>\n </form><a href="https://tree.taiga.io/support/integrations/github-integration/" target="_blank" class="help-button">\n <tg-svg svg-icon="icon-question"></tg-svg><span translate="ADMIN.HELP"></span></a>\n </section>\n</div>'),t.put("admin/admin-third-parties-gitlab.html",'<!DOCTYPE html>\n<div tg-gitlab-webhooks ng-controller="GitlabController as ctrl" ng-init="section=\'admin\'" class="wrapper roles">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="third-parties" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <sidebar tg-admin-navigation="third-parties-gitlab" class="menu-tertiary sidebar">\n <section class="admin-submenu">\n <nav>\n <ul>\n <li id="adminmenu-third-parties-webhooks" class="third-parties-webhooks"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span class="title">Webhooks</span></a></li>\n <li id="adminmenu-third-parties-github"><a href="" tg-nav="project-admin-third-parties-github:project=project.slug"><span class="title">Github</span></a></li>\n <li id="adminmenu-third-parties-gitlab"><a href="" tg-nav="project-admin-third-parties-gitlab:project=project.slug"><span class="title">Gitlab</span></a></li>\n <li id="adminmenu-third-parties-bitbucket"><a href="" tg-nav="project-admin-third-parties-bitbucket:project=project.slug"><span class="title">Bitbucket</span></a></li>\n <li id="adminmenu-third-parties-gogs"><a href="" tg-nav="project-admin-third-parties-gogs:project=project.slug"><span class="title">Gogs</span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section class="main admin-common admin-third-parties">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <form>\n <fieldset>\n <label for="secret-key" translate="ADMIN.THIRD_PARTIES.SECRET_KEY"></label>\n <input id="secret-key" type="text" name="secret-key" ng-model="gitlab.secret" placeholder="{{\'ADMIN.THIRD_PARTIES.SECRET_KEY\' | translate}}">\n </fieldset>\n <fieldset>\n <div tg-select-input-text class="select-input-text">\n <div>\n <label for="payload-url" translate="ADMIN.THIRD_PARTIES.PAYLOAD_URL"></label>\n <div class="field-with-option">\n <input id="payload-url" type="text" name="payload-url" readonly="readonly" ng-model="gitlab.webhooks_url" placeholder="{{\'ADMIN.THIRD_PARTIES.PAYLOAD_URL\' | translate}}">\n <div class="option-wrapper select-input-content">\n <tg-svg svg-icon="icon-clipboard"></tg-svg>\n </div>\n </div>\n <div translate="COMMON.COPY_TO_CLIPBOARD" class="help-copy"></div>\n </div>\n </div>\n </fieldset>\n <fieldset>\n <label for="valid-origin-ips" translate="ADMIN.THIRD_PARTIES.VALID_IPS"></label>\n <input id="valid-origin-ips" type="text" name="valid-origin-ips" tg-valid-origin-ips ng-model="gitlab.valid_origin_ips" placeholder="{{\'ADMIN.GITLAB.INFO_VERIFYING_IP\' | translate}}">\n </fieldset>\n <button type="submit" title="{{\'COMMON.SAVE\' | translate}}" translate="COMMON.SAVE" class="button-green submit-button"></button>\n </form><a href="https://tree.taiga.io/support/integrations/gitlab-integration/" target="_blank" class="help-button">\n <tg-svg svg-icon="icon-question"></tg-svg><span translate="ADMIN.HELP"></span></a>\n </section>\n</div>'),
t.put("admin/admin-third-parties-gogs.html",'<!DOCTYPE html>\n<div tg-gogs-webhooks ng-controller="GogsController as ctrl" ng-init="section=\'admin\'" class="wrapper roles">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="third-parties" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <sidebar tg-admin-navigation="third-parties-gogs" class="menu-tertiary sidebar">\n <section class="admin-submenu">\n <nav>\n <ul>\n <li id="adminmenu-third-parties-webhooks" class="third-parties-webhooks"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span class="title">Webhooks</span></a></li>\n <li id="adminmenu-third-parties-github"><a href="" tg-nav="project-admin-third-parties-github:project=project.slug"><span class="title">Github</span></a></li>\n <li id="adminmenu-third-parties-gitlab"><a href="" tg-nav="project-admin-third-parties-gitlab:project=project.slug"><span class="title">Gitlab</span></a></li>\n <li id="adminmenu-third-parties-bitbucket"><a href="" tg-nav="project-admin-third-parties-bitbucket:project=project.slug"><span class="title">Bitbucket</span></a></li>\n <li id="adminmenu-third-parties-gogs"><a href="" tg-nav="project-admin-third-parties-gogs:project=project.slug"><span class="title">Gogs</span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section class="main admin-common admin-third-parties">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <form>\n <fieldset>\n <label for="secret-key" translate="ADMIN.THIRD_PARTIES.SECRET_KEY"></label>\n <input id="secret-key" type="text" name="secret-key" ng-model="gogs.secret" placeholder="{{\'ADMIN.THIRD_PARTIES.SECRET_KEY\' | translate}}">\n </fieldset>\n <fieldset>\n <div tg-select-input-text class="select-input-text">\n <div>\n <label for="payload-url" translate="ADMIN.THIRD_PARTIES.PAYLOAD_URL"></label>\n <div class="field-with-option">\n <input id="payload-url" type="text" name="payload-url" readonly="readonly" ng-model="gogs.webhooks_url" placeholder="{{\'ADMIN.THIRD_PARTIES.PAYLOAD_URL\' | translate}}">\n <div class="option-wrapper select-input-content">\n <tg-svg svg-icon="icon-clipboard"></tg-svg>\n </div>\n </div>\n <div translate="COMMON.COPY_TO_CLIPBOARD" class="help-copy"></div>\n </div>\n </div>\n </fieldset>\n <button type="submit" title="{{\'COMMON.SAVE\' | translate}}" translate="COMMON.SAVE" class="button-green submit-button"></button>\n </form><a href="https://tree.taiga.io/support/integrations/gogs-integration/" target="_blank" class="help-button">\n <tg-svg svg-icon="icon-question"></tg-svg><span translate="ADMIN.HELP"></span></a>\n </section>\n</div>'),t.put("admin/admin-third-parties-webhooks.html",'<!DOCTYPE html>\n<div ng-controller="WebhooksController as ctrl" ng-init="section=\'admin\'" class="wrapper roles">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="third-parties" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <sidebar tg-admin-navigation="third-parties-webhooks" class="menu-tertiary sidebar">\n <section class="admin-submenu">\n <nav>\n <ul>\n <li id="adminmenu-third-parties-webhooks" class="third-parties-webhooks"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span class="title">Webhooks</span></a></li>\n <li id="adminmenu-third-parties-github"><a href="" tg-nav="project-admin-third-parties-github:project=project.slug"><span class="title">Github</span></a></li>\n <li id="adminmenu-third-parties-gitlab"><a href="" tg-nav="project-admin-third-parties-gitlab:project=project.slug"><span class="title">Gitlab</span></a></li>\n <li id="adminmenu-third-parties-bitbucket"><a href="" tg-nav="project-admin-third-parties-bitbucket:project=project.slug"><span class="title">Bitbucket</span></a></li>\n <li id="adminmenu-third-parties-gogs"><a href="" tg-nav="project-admin-third-parties-gogs:project=project.slug"><span class="title">Gogs</span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section tg-new-webhook class="main admin-common admin-webhooks">\n <header class="header-with-actions">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <div class="action-buttons"><a href="" title="{{\'ADMIN.WEBHOOKS.ADD_NEW\' | translate}}" translate="ADMIN.WEBHOOKS.ADD_NEW" class="button-green hidden add-webhook"></a></div>\n </header>\n <section class="webhooks-table basic-table">\n <div class="table-header">\n <div class="row">\n <div translate="COMMON.FIELDS.NAME" class="webhook-service"></div>\n <div translate="COMMON.FIELDS.URL" class="webhook-url"></div>\n <div class="webhook-options"></div>\n </div>\n </div>\n <div class="table-body">\n <div tg-webhook="webhook" ng-repeat="webhook in webhooks" class="single-webhook-wrapper">\n <div class="edition-mode hidden">\n <form class="row">\n <fieldset class="webhook-service">\n <input type="text" name="name" data-required="true" ng-model="webhook.name" placeholder="{{\'ADMIN.WEBHOOKS.TYPE_NAME\' | translate}}">\n </fieldset>\n <div class="webhook-url">\n <div class="webhook-url-inputs">\n <fieldset>\n <input type="text" name="url" data-type="url" placeholder="{{\'ADMIN.WEBHOOKS.TYPE_PAYLOAD_URL\' | translate}}" data-required="true" ng-model="webhook.url">\n </fieldset>\n <fieldset>\n <input type="text" name="key" placeholder="{{\'ADMIN.WEBHOOKS.TYPE_SERVICE_SECRET\' | translate}}" data-required="true" ng-model="webhook.key">\n </fieldset>\n </div>\n </div>\n <div class="webhook-options"><a href="" title="{{\'ADMIN.WEBHOOKS.SAVE\' | translate}}" class="edit-existing">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'ADMIN.WEBHOOKS.CANCEL\' | translate}}" class="cancel-existing">\n <tg-svg svg-icon="icon-close"></tg-svg></a></div>\n </form>\n </div>\n <div class="visualization-mode">\n <div class="row">\n <div ng-bind="webhook.name" class="webhook-service"></div>\n <div class="webhook-url"><span ng-bind="webhook.url"></span><a href="" title="{{\'ADMIN.WEBHOOKS.SHOW_HISTORY_TITLE\' | translate}}" ng-show="webhook.logs_counter" translate="ADMIN.WEBHOOKS.SHOW_HISTORY" class="show-history toggle-history"></a></div>\n <div class="webhook-options">\n <div class="webhook-options-wrapper"><a href="" title="{{\'ADMIN.WEBHOOKS.TEST\' | translate}}" class="test-webhook">\n <tg-svg svg-icon="icon-check-empty"></tg-svg></a><a href="" title="{{\'ADMIN.WEBHOOKS.EDIT\' | translate}}" class="edit-webhook">\n <tg-svg svg-icon="icon-edit"></tg-svg></a><a href="" title="{{\'ADMIN.WEBHOOKS.DELETE\' | translate}}" class="delete-webhook">\n <tg-svg svg-icon="icon-trash"></tg-svg></a></div>\n </div>\n </div>\n <div class="webhooks-history">\n <div ng-repeat="log in webhook.logs" class="history-single-wrapper">\n <div class="history-single">\n <div><span ng-class="log.validStatus ? \'history-success\' : \'history-error\'" title="{{log.status}}" class="history-response-icon"></span><span ng-bind="log.prettyDate" class="history-date"></span></div><a href="" class="toggle-log">\n <tg-svg svg-icon="icon-arrow-down"></tg-svg></a>\n </div>\n <div class="history-single-response">\n <div class="history-single-request-header"><span translate="ADMIN.WEBHOOKS.REQUEST"></span><a href="" title="{{\'ADMIN.WEBHOOKS.RESEND_REQUEST\' | translate}}" data-log="{{log.id}}" class="resend-request">\n <tg-svg svg-icon="icon-reload"></tg-svg><span translate="ADMIN.WEBHOOKS.RESEND_REQUEST"></span></a></div>\n <div class="history-single-request-body">\n <div class="response-container"><span translate="ADMIN.WEBHOOKS.HEADERS" class="response-title"></span>\n <textarea name="headers" ng-bind="log.prettySentHeaders"> </textarea>\n </div>\n <div class="response-container"><span translate="ADMIN.WEBHOOKS.PAYLOAD" class="response-title"></span>\n <textarea name="payload" ng-bind="log.prettySentData"></textarea>\n </div>\n </div>\n <div class="history-single-response-header"><span translate="ADMIN.WEBHOOKS.RESPONSE"></span></div>\n <div class="history-single-response-body">\n <div class="response-container">\n <textarea name="response-data" ng-bind="log.response_data"></textarea>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <form class="new-webhook-form row hidden">\n <fieldset class="webhook-service">\n <input type="text" name="name" data-required="true" ng-model="newValue.name" placeholder="{{\'ADMIN.WEBHOOKS.TYPE_NAME\' | translate}}">\n </fieldset>\n <div class="webhook-url">\n <div class="webhook-url-inputs">\n <fieldset>\n <input type="text" name="url" data-type="url" data-required="true" ng-model="newValue.url" placeholder="{{\'ADMIN.WEBHOOKS.TYPE_PAYLOAD_URL\' | translate}}">\n </fieldset>\n <fieldset>\n <input type="text" name="key" placeholder="{{\'ADMIN.WEBHOOKS.TYPE_SERVICE_SECRET\' | translate}}" data-required="true" ng-model="newValue.key">\n </fieldset>\n </div>\n </div>\n <div class="webhook-options"><a href="" title="{{\'ADMIN.WEBHOOKS.SAVE\' | translate}}" class="add-new">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'ADMIN.WEBHOOKS.CANCEL\' | translate}}" class="cancel-new">\n <tg-svg svg-icon="icon-close"></tg-svg></a></div>\n </form>\n </div>\n </section><a href="https://tree.taiga.io/support/integrations/webhooks/" target="_blank" class="help-button">\n <tg-svg svg-icon="icon-question"></tg-svg><span translate="ADMIN.HELP"></span></a>\n </section>\n</div>'),t.put("admin/lightbox-add-members.html",'\n<tg-lightbox-close></tg-lightbox-close>\n<div class="add-member-wrapper">\n <h2 translate="LIGHTBOX.ADD_MEMBER.TITLE" class="title"></h2>\n <form ng-submit="vm.submit()" class="add-member-form">\n <div ng-repeat="member in vm.memberInvites" class="add-single-member">\n <fieldset>\n <input ng-if="$first" type="email" required="required" placeholder="{{\'LIGHTBOX.CREATE_MEMBER.PLACEHOLDER_TYPE_EMAIL\' | translate}}" data-required="true" name="email-{{$index}}" data-type="email" ng-model="member.email"/>\n <input ng-if="!$first" type="email" placeholder="{{\'LIGHTBOX.CREATE_MEMBER.PLACEHOLDER_TYPE_EMAIL\' | translate}}" name="email-{{$index}}" data-type="email" ng-model="member.email"/>\n </fieldset>\n <fieldset>\n <select ng-if="vm.project" name="role-{{$index}}" ng-model="member.role_id" ng-options="role.id as role.name for role in vm.project.roles"></select>\n </fieldset>\n <fieldset><a href="" ng-click="vm.addSingleMember()" ng-if="$last &amp;&amp; vm.canAddUsers" class="add-fieldset ng-animate-disabled">\n <tg-svg svg-icon="icon-add"></tg-svg></a><a href="" ng-click="vm.removeSingleMember($index)" ng-if="!$last || ($last &amp;&amp; !vm.canAddUsers &amp;&amp; vm.membersLimit &gt; 1)" class="remove-fieldset ng-animate-disabled">\n <tg-svg svg-icon="icon-trash"></tg-svg></a></fieldset>\n </div>\n <tg-lightbox-add-members-warning-message ng-if="vm.showWarningMessage" project="vm.project"></tg-lightbox-add-members-warning-message>\n <fieldset class="invitation-text">\n <textarea ng-attr-placeholder="{{\'LIGHTBOX.CREATE_MEMBER.PLACEHOLDER_INVITATION_TEXT\' | translate}}" maxlength="255" ng-model="vm.invitationText"></textarea>\n </fieldset>\n <button type="submit" title="{{\'COMMON.CREATE\' | translate}}" translate="COMMON.CREATE" tg-loading="vm.submitInvites" class="button-green submit-button"></button>\n </form>\n <p translate="LIGHTBOX.ADD_MEMBER.HELP_TEXT" class="help-text"></p>\n</div>'),t.put("admin/memberships-row-avatar.html",'\n<div class="avatar"><img src="<%- imgurl %>" alt="<%- full_name %>" style="background-color: <%- bg %>"/>\n <div class="user-data">\n <div class="name"><span ng-non-bindable="ng-non-bindable"><%- full_name %></span><% if (isOwner) { %>\n <tg-svg svg-icon="icon-badge" svg-title-translate="COMMON.OWNER" class="owner-badge"></tg-svg><% } %>\n </div>\n <div class="data"><span class="email"><%- email %></span><% if (pending) { %><span class="pending"><%- pending %></span><% } %></div>\n </div>\n</div>'),t.put("admin/memberships-warning-message.html",'\n<p ng-if="project.get(\'i_am_owner\') == true" translate="LIGHTBOX.CREATE_MEMBER.LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER" translate-values="{maxMembers: project.get(\'max_memberships\')}" class="member-limit-warning"></p>\n<p ng-if="project.get(\'i_am_owner\') == false" translate="LIGHTBOX.CREATE_MEMBER.LIMIT_USERS_WARNING_MESSAGE" translate-values="{maxMembers: project.get(\'max_memberships\')}" class="member-limit-warning"></p>'),t.put("admin/no-more-memberships-explanation.html",'\n<p ng-if="project.i_am_owner == true" translate="ADMIN.MEMBERSHIPS.LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER" translate-values="{members: project.total_memberships}" class="admin-subtitle"></p>\n<p ng-if="project.i_am_owner == false" translate="ADMIN.MEMBERSHIPS.LIMIT_USERS_WARNING_MESSAGE_FOR_ADMIN" translate-values="{members: project.total_memberships}" class="admin-subtitle"></p>'),t.put("admin/project-csv.html",'\n<section tg-select-input-text="tg-select-input-text" class="project-csv">\n <div class="project-values-title">\n <h2 translate="{{::sectionTitle}}"></h2><a title="{{\'ADMIN.CSV.DOWNLOAD\' | translate}}" ng-href="{{csvUrl}}" ng-show="csvUrl" target="_blank" class="button button-gray"><span translate="ADMIN.CSV.DOWNLOAD"></span></a>\n </div>\n <div class="csv-regenerate-field">\n <div class="field-with-options">\n <input type="text" placeholder="{{\'ADMIN.CSV.URL_FIELD_PLACEHOLDER\' | translate}}" readonly="readonly" ng-model="csvUrl"/>\n <div class="option-wrapper select-input-content">\n <tg-svg svg-icon="icon-clipboard"></tg-svg>\n </div>\n </div><a href="" title="{{\'ADMIN.CSV.TITLE_REGENERATE_URL\' | translate}}" ng-click="ctrl.regenerateUuid()">\n <tg-svg svg-icon="icon-add" ng-hide="csvUrl"></tg-svg><span ng-hide="csvUrl" translate="ADMIN.CSV.ACTION_GENERATE_URL"></span>\n <tg-svg svg-icon="icon-reload" ng-show="csvUrl"></tg-svg><span ng-Show="csvUrl" translate="ADMIN.CSV.ACTION_REGENERATE"></span></a>\n </div>\n</section>'),t.put("auth/change-password-from-recovery.html",'<!DOCTYPE html>\n<div class="wrapper">\n <div class="auth">\n <div class="auth-container">\n <div class="logo-svg"><?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg preserveAspectRatio="xMidYMid meet" version="1.1" viewBox="0 0 267.204 267.245" xmlns:svg="http://www.w3.org/2000/svg">\n <path d="M228.256 39.167l-11.755 82.74-82.74 11.756 11.756-82.74z" fill="#a295ae" opacity=".8"/>\n <path d="M39.19 228.134l11.755-82.74 82.74-11.756-11.755 82.74z" fill="#5d6f6d" opacity=".8"/>\n <path d="M39.19 39.277l82.74 11.755 11.756 82.74-82.74-11.755z" fill="#8cd592" opacity=".8"/>\n <path d="M228.16 228.144l-82.74-11.755-11.756-82.742 82.74 11.756z" fill="#665e74" opacity=".8"/>\n <path d="M133.738 267.245l-50.194-66.82 50.194-66.817 50.194 66.818z" fill="#3c3647" opacity=".8"/>\n <path d="M267.204 133.48l-66.82 50.195-66.817-50.194 66.818-50.193z" fill="#837193" opacity=".8"/>\n <path d="M133.616 0l50.194 66.82-50.194 66.817L83.422 66.82z" fill="#a2f4ac" opacity=".8"/>\n <path d="M0 133.706l66.82-50.194 66.817 50.194L66.82 183.9z" fill="#7ea685" opacity=".8"/>\n <path d="M133.602 101.85l31.772 31.772-31.772 31.772-31.772-31.772z" fill="#3c3647"/>\n</svg>\n\n </div>\n <h1 class="logo">Taiga</h1>\n <div tg-change-password-from-recovery class="change-password-form-container">\n <p class="change-password-text"><strong translate="CHANGE_PASSWORD_RECOVERY_FORM.TITLE"></strong><br><span translate="CHANGE_PASSWORD_RECOVERY_FORM.SUBTITLE"></span></p>\n <form>\n <fieldset>\n <input type="password" name="password" id="password" tg-capslock ng-model="data.password" data-required="true" placeholder="{{\'CHANGE_PASSWORD_RECOVERY_FORM.PLACEHOLDER_NEW_PASSWORD\' | translate}}">\n </fieldset>\n <fieldset>\n <input type="password" name="password2" id="password2" tg-capslock ng-model="data.password2" data-required="true" data-equalto="#password" placeholder="{{\'CHANGE_PASSWORD_RECOVERY_FORM.PLACEHOLDER_RE_TYPE_NEW_PASSWORD\' | translate}}">\n </fieldset>\n <fieldset>\n <button type="submit" title="{{\'CHANGE_PASSWORD_RECOVERY_FORM.ACTION_RESET_PASSWORD\' | translate}}" translate="CHANGE_PASSWORD_RECOVERY_FORM.ACTION_RESET_PASSWORD" class="button-change-password button-gray submit-button"></button>\n </fieldset>\n </form>\n </div>\n </div>\n </div>\n</div>'),t.put("auth/forgot-password.html",'<!DOCTYPE html>\n<div class="wrapper">\n <div class="auth">\n <div class="auth-container">\n <div class="logo-svg"><?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg preserveAspectRatio="xMidYMid meet" version="1.1" viewBox="0 0 267.204 267.245" xmlns:svg="http://www.w3.org/2000/svg">\n <path d="M228.256 39.167l-11.755 82.74-82.74 11.756 11.756-82.74z" fill="#a295ae" opacity=".8"/>\n <path d="M39.19 228.134l11.755-82.74 82.74-11.756-11.755 82.74z" fill="#5d6f6d" opacity=".8"/>\n <path d="M39.19 39.277l82.74 11.755 11.756 82.74-82.74-11.755z" fill="#8cd592" opacity=".8"/>\n <path d="M228.16 228.144l-82.74-11.755-11.756-82.742 82.74 11.756z" fill="#665e74" opacity=".8"/>\n <path d="M133.738 267.245l-50.194-66.82 50.194-66.817 50.194 66.818z" fill="#3c3647" opacity=".8"/>\n <path d="M267.204 133.48l-66.82 50.195-66.817-50.194 66.818-50.193z" fill="#837193" opacity=".8"/>\n <path d="M133.616 0l50.194 66.82-50.194 66.817L83.422 66.82z" fill="#a2f4ac" opacity=".8"/>\n <path d="M0 133.706l66.82-50.194 66.817 50.194L66.82 183.9z" fill="#7ea685" opacity=".8"/>\n <path d="M133.602 101.85l31.772 31.772-31.772 31.772-31.772-31.772z" fill="#3c3647"/>\n</svg>\n\n </div>\n <h1 class="logo">Taiga</h1>\n <div tg-forgot-password class="forgot-form-container">\n <p class="forgot-text"><strong translate="FORGOT_PASSWORD_FORM.TITLE"></strong><br><strong translate="FORGOT_PASSWORD_FORM.SUBTITLE"></strong></p>\n <form ng-submit="ctrl.submit()">\n <fieldset>\n <input type="text" autocorrect="off" autocapitalize="none" name="username" ng-model="data.username" data-required="true" placeholder="{{\'FORGOT_PASSWORD_FORM.PLACEHOLDER_FIELD\' | translate}}">\n </fieldset>\n <fieldset>\n <button type="submit" title="{{\'FORGOT_PASSWORD_FORM.ACTION_RESET_PASSWORD\' | translate}}" translate="FORGOT_PASSWORD_FORM.ACTION_RESET_PASSWORD" class="button-gray submit-button button-forgot"></button>\n </fieldset><a href="" tg-nav="login" translate="FORGOT_PASSWORD_FORM.LINK_CANCEL"></a>\n </form>\n </div>\n </div>\n </div>\n</div>'),t.put("auth/invitation.html",'\n<div class="wrapper">\n <div class="invitation-main">\n <div tg-invitation="tg-invitation" class="centered invitation-container"><a href="" tg-bo-title="invitation.invited_by.full_name_display" class="avatar"><img tg-avatar="invitation.invited_by" tg-bo-alt="invitation.invited_by.full_name_display"/><span tg-bo-bind="invitation.invited_by.full_name_display" class="person-name"></span></a><span class="invitation-text">\n <p translate="AUTH.INVITED_YOU"></p>\n <p tg-bo-bind="invitation.project_name" class="project-name"></p></span>\n <div class="invitation-form">\n <form class="login-form">\n <p translate="LOGIN_COMMON.HEADER" class="form-header"></p>\n <fieldset>\n <input type="text" autocorrect="off" autocapitalize="none" name="username" ng-model="dataLogin.username" data-required="true" placeholder="{{\'LOGIN_COMMON.PLACEHOLDER_AUTH_NAME\' | translate}}"/>\n </fieldset>\n <fieldset class="login-password">\n <input type="password" name="password" tg-capslock="tg-capslock" ng-model="dataLogin.password" data-required="true" placeholder="{{\'LOGIN_COMMON.PLACEHOLDER_AUTH_PASSWORD\' | translate}}"/>\n <!-- This should be hidden when focus on pass--><a href="" tg-nav="forgot-password" title="{{\'LOGIN_COMMON.TITLE_LINK_FORGOT_PASSWORD\' | translate}}" translate="LOGIN_COMMON.LINK_FORGOT_PASSWORD" class="forgot-pass"></a>\n </fieldset>\n <fieldset>\n <button type="submit" translate="LOGIN_COMMON.ACTION_ENTER" class="button-green submit-button"></button>\n </fieldset>\n <div ng-if="contribPlugins.length" class="contrib-plugins-wrapper">\n <label translate="LOGIN_COMMON.ALT_LOGIN"></label>\n <fieldset ng-repeat="plugin in contribPlugins|filter:{type: \'auth\'}" ng-include="plugin.template"></fieldset>\n </div>\n </form>\n <form class="register-form">\n <p translate="REGISTER_FORM.TITLE" class="form-header"></p>\n <fieldset>\n <input type="text" autocorrect="off" autocapitalize="none" name="username" ng-model="dataRegister.username" data-required="true" data-maxlength="255" data-regexp="^[\\w.-]+$" placeholder="{{\'REGISTER_FORM.PLACEHOLDER_NAME\' | translate}}"/>\n </fieldset>\n <fieldset>\n <input type="text" name="full_name" ng-model="dataRegister.full_name" data-required="true" data-maxlength="256" placeholder="{{\'REGISTER_FORM.PLACEHOLDER_FULL_NAME\' | translate}}"/>\n </fieldset>\n <fieldset>\n <input type="email" name="email" ng-model="dataRegister.email" data-required="true" data-maxlength="255" placeholder="{{\'REGISTER_FORM.PLACEHOLDER_EMAIL\' | translate}}"/>\n </fieldset>\n <fieldset>\n <input type="password" name="password" tg-capslock="tg-capslock" ng-model="dataRegister.password" data-required="true" placeholder="{{\'REGISTER_FORM.PLACEHOLDER_PASSWORD\' | translate}}"/>\n </fieldset>\n <fieldset>\n <button type="submit" title="{{\'REGISTER_FORM.ACTION_SIGN_UP\' | translate}}" translate="REGISTER_FORM.ACTION_SIGN_UP" class="button-register button-green submit-button"></button>\n </fieldset>\n <tg-terms-of-service-and-privacy-policy-notice></tg-terms-of-service-and-privacy-policy-notice>\n </form>\n </div>\n </div>\n </div>\n</div>'),t.put("auth/login-text.html",'\n<p class="login-text"><span translate="AUTH.NOT_REGISTERED_YET"></span>&nbsp;<a href="<%- url %>" title="{{&quot;AUTH.REGISTER&quot; | translate}}" translate="AUTH.CREATE_ACCOUNT"></a></p>'),t.put("auth/login.html",'<!DOCTYPE html>\n<div class="wrapper">\n <div class="auth">\n <div class="auth-container">\n <div class="logo-svg"><?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg preserveAspectRatio="xMidYMid meet" version="1.1" viewBox="0 0 267.204 267.245" xmlns:svg="http://www.w3.org/2000/svg">\n <path d="M228.256 39.167l-11.755 82.74-82.74 11.756 11.756-82.74z" fill="#a295ae" opacity=".8"/>\n <path d="M39.19 228.134l11.755-82.74 82.74-11.756-11.755 82.74z" fill="#5d6f6d" opacity=".8"/>\n <path d="M39.19 39.277l82.74 11.755 11.756 82.74-82.74-11.755z" fill="#8cd592" opacity=".8"/>\n <path d="M228.16 228.144l-82.74-11.755-11.756-82.742 82.74 11.756z" fill="#665e74" opacity=".8"/>\n <path d="M133.738 267.245l-50.194-66.82 50.194-66.817 50.194 66.818z" fill="#3c3647" opacity=".8"/>\n <path d="M267.204 133.48l-66.82 50.195-66.817-50.194 66.818-50.193z" fill="#837193" opacity=".8"/>\n <path d="M133.616 0l50.194 66.82-50.194 66.817L83.422 66.82z" fill="#a2f4ac" opacity=".8"/>\n <path d="M0 133.706l66.82-50.194 66.817 50.194L66.82 183.9z" fill="#7ea685" opacity=".8"/>\n <path d="M133.602 101.85l31.772 31.772-31.772 31.772-31.772-31.772z" fill="#3c3647"/>\n</svg>\n\n </div>\n <h1 class="logo">Taiga</h1>\n <h2 translate="COMMON.TAG_LINE_2" class="tagline"></h2>\n <div tg-login class="login-form-container">\n <form class="login-form">\n <fieldset>\n <input type="text" autocorrect="off" autocapitalize="none" autofocus required name="username" data-required="true" placeholder="{{\'LOGIN_COMMON.PLACEHOLDER_AUTH_NAME\' | translate}}">\n </fieldset>\n <fieldset class="login-password">\n <input type="password" name="password" data-required="true" placeholder="{{\'LOGIN_COMMON.PLACEHOLDER_AUTH_PASSWORD\' | translate}}" ng-focus="capslockIcon = !capslockIcon" ng-keyup="onKeyUp($event)"><a href="" tg-nav="forgot-password" title="{{\'LOGIN_COMMON.TITLE_LINK_FORGOT_PASSWORD\' | translate}}" translate="LOGIN_COMMON.LINK_FORGOT_PASSWORD" class="forgot-pass"></a>\n <tg-capslock></tg-capslock>\n </fieldset>\n <fieldset>\n <button type="submit" title="{{\'LOGIN_COMMON.ACTION_SIGN_IN\' | translate}}" translate="LOGIN_COMMON.ACTION_SIGN_IN" class="button-green submit-button"></button>\n </fieldset>\n <div ng-if="contribPlugins.length" class="contrib-plugins-wrapper">\n <label translate="LOGIN_COMMON.ALT_LOGIN"></label>\n <fieldset ng-repeat="plugin in contribPlugins|filter:{type: \'auth\'}" ng-include="plugin.template"></fieldset>\n </div>\n </form>\n <tg-public-register-message></tg-public-register-message>\n </div>\n </div>\n </div>\n</div>'),t.put("auth/register.html",'<!DOCTYPE html>\n<div class="wrapper">\n <div class="auth">\n <div class="auth-container">\n <div class="logo-svg"><?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg preserveAspectRatio="xMidYMid meet" version="1.1" viewBox="0 0 267.204 267.245" xmlns:svg="http://www.w3.org/2000/svg">\n <path d="M228.256 39.167l-11.755 82.74-82.74 11.756 11.756-82.74z" fill="#a295ae" opacity=".8"/>\n <path d="M39.19 228.134l11.755-82.74 82.74-11.756-11.755 82.74z" fill="#5d6f6d" opacity=".8"/>\n <path d="M39.19 39.277l82.74 11.755 11.756 82.74-82.74-11.755z" fill="#8cd592" opacity=".8"/>\n <path d="M228.16 228.144l-82.74-11.755-11.756-82.742 82.74 11.756z" fill="#665e74" opacity=".8"/>\n <path d="M133.738 267.245l-50.194-66.82 50.194-66.817 50.194 66.818z" fill="#3c3647" opacity=".8"/>\n <path d="M267.204 133.48l-66.82 50.195-66.817-50.194 66.818-50.193z" fill="#837193" opacity=".8"/>\n <path d="M133.616 0l50.194 66.82-50.194 66.817L83.422 66.82z" fill="#a2f4ac" opacity=".8"/>\n <path d="M0 133.706l66.82-50.194 66.817 50.194L66.82 183.9z" fill="#7ea685" opacity=".8"/>\n <path d="M133.602 101.85l31.772 31.772-31.772 31.772-31.772-31.772z" fill="#3c3647"/>\n</svg>\n\n </div>\n <h1 class="logo">Taiga</h1>\n <div tg-register class="register-form-container">\n <form class="register-form">\n <fieldset>\n <input type="text" autocorrect="off" autocapitalize="none" name="username" ng-model="data.username" data-required="true" data-maxlength="255" data-regexp="^[\\w.-]+$" placeholder="{{\'REGISTER_FORM.PLACEHOLDER_NAME\' | translate}}">\n </fieldset>\n <fieldset>\n <input type="text" name="full_name" ng-model="data.full_name" data-required="true" data-maxlength="256" placeholder="{{\'REGISTER_FORM.PLACEHOLDER_FULL_NAME\' | translate}}">\n </fieldset>\n <fieldset>\n <input type="email" name="email" ng-model="data.email" data-required="true" data-maxlength="255" placeholder="{{\'REGISTER_FORM.PLACEHOLDER_EMAIL\' | translate}}">\n </fieldset>\n <fieldset>\n <input type="password" name="password" tg-capslock ng-model="data.password" data-required="true" data-minlength="4" placeholder="{{\'REGISTER_FORM.PLACEHOLDER_PASSWORD\' | translate}}">\n </fieldset>\n <fieldset>\n <button type="submit" title="{{\'REGISTER_FORM.ACTION_SIGN_UP\' | translate}}" translate="REGISTER_FORM.ACTION_SIGN_UP" class="button-register button-green submit-button"></button>\n </fieldset>\n <div ng-if="contribPlugins.length" class="contrib-plugins-wrapper">\n <label translate="LOGIN_COMMON.ALT_LOGIN"></label>\n <fieldset ng-repeat="plugin in contribPlugins|filter:{type: \'auth\'}" ng-include="plugin.template"></fieldset>\n </div>\n <tg-terms-of-service-and-privacy-policy-notice></tg-terms-of-service-and-privacy-policy-notice><a href="" title="{{\'REGISTER_FORM.TITLE_LINK_LOGIN\' | translate}}" tg-nav="login" tg-nav-get-params="{&quot;next&quot;: &quot;{{nextUrl}}&quot;}" translate="REGISTER_FORM.LINK_LOGIN" class="register-text-top"></a>\n </form>\n </div>\n </div>\n </div>\n</div>'),
t.put("backlog/backlog.html",'<!DOCTYPE html>\n<div tg-backlog ng-controller="BacklogController as ctrl" ng-init="section=\'backlog\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <sidebar class="backlog-filter">\n <tg-filter q="ctrl.filterQ" filters="ctrl.filters" custom-filters="ctrl.customFilters" selected-filters="ctrl.selectedFilters" customFilters="ctl.customFilters" on-save-custom-filter="ctrl.saveCustomFilter(name)" on-add-filter="ctrl.addFilter(filter)" on-select-custom-filter="ctrl.selectCustomFilter(filter)" on-remove-custom-filter="ctrl.removeCustomFilter(filter)" on-remove-filter="ctrl.removeFilter(filter)" on-change-q="ctrl.changeQ(q)"></tg-filter>\n </sidebar>\n <section class="main backlog">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <div tg-toggle-burndown-visibility class="backlog-summary">\n <div class="summary">\n <div tg-backlog-progress-bar="stats" class="summary-progress-bar"></div>\n <div class="data"><span ng-bind="stats.completedPercentage + \'%\'" class="number"></span></div>\n <div ng-if="stats.total_points" class="summary-stats"><span ng-bind="stats.total_points | number" class="number">--</span><span translate="BACKLOG.SUMMARY.PROJECT_POINTS" class="description"></span></div>\n <div class="summary-stats"><span ng-bind="stats.defined_points | number" class="number">--</span><span translate="BACKLOG.SUMMARY.DEFINED_POINTS" class="description"></span></div>\n <div class="summary-stats"><span ng-bind="stats.closed_points | number" class="number">--</span><span translate="BACKLOG.SUMMARY.CLOSED_POINTS" class="description"></span></div>\n <div class="summary-stats"><span ng-bind="stats.speed | number:0" class="number">--</span><span translate="BACKLOG.SUMMARY.POINTS_PER_SPRINT" class="description"></span></div>\n <div title="{{\'BACKLOG.SPRINT_SUMMARY.TOGGLE_BAKLOG_GRAPH\' | translate}}" ng-if="!showGraphPlaceholder" class="stats js-toggle-burndown-visibility-button">\n <tg-svg svg-icon="icon-graph"></tg-svg>\n </div>\n </div>\n <div ng-if="showGraphPlaceholder &amp;&amp; project.i_am_admin" class="empty-burndown">\n <tg-svg svg-icon="icon-graph"></tg-svg>\n <div class="empty-text">\n <p translate="BACKLOG.CUSTOMIZE_GRAPH" class="title"></p>\n <p>{{\'BACKLOG.CUSTOMIZE_GRAPH_TEXT\' | translate}} <a href="" tg-nav="project-admin-project-profile-modules:project=project.slug" title="{{\'BACKLOG.CUSTOMIZE_GRAPH_TITLE\' | translate}}">{{\'BACKLOG.CUSTOMIZE_GRAPH_ADMIN\' | translate}}</a></p>\n </div>\n </div>\n <div class="graphics-container js-burndown-graph">\n <div tg-burndown-backlog-graph class="burndown">\n <section class="burndown-container">\n <div class="burndown"></div>\n </section>\n </div>\n </div>\n </div>\n <div class="backlog-menu">\n <div class="backlog-table-options"><a ng-if="currentSprint" href="" title="{{\'BACKLOG.MOVE_US_TO_CURRENT_SPRINT\' | translate}}" id="move-to-current-sprint" class="menu-button move-to-current-sprint move-to-sprint ">\n <tg-svg svg-icon="icon-move"></tg-svg><span translate="BACKLOG.MOVE_US_TO_CURRENT_SPRINT" class="text"></span></a><a ng-if="!currentSprint" href="" title="{{\'BACKLOG.MOVE_US_TO_LATEST_SPRINT\' | translate}}" id="move-to-latest-sprint" class="menu-button move-to-latest-sprint move-to-sprint ">\n <tg-svg svg-icon="icon-move"></tg-svg><span translate="BACKLOG.MOVE_US_TO_LATEST_SPRINT" class="text"></span></a><a ng-if="!ctrl.activeFilters" href="" title="{{\'BACKLOG.FILTERS.TOGGLE\' | translate}}" id="show-filters-button" translate="BACKLOG.FILTERS.SHOW" class="menu-button ng-animate-disabled"></a><a ng-if="ctrl.activeFilters" href="" title="{{\'BACKLOG.FILTERS.HIDE\' | translate}}" id="show-filters-button" translate="BACKLOG.FILTERS.HIDE" class="menu-button active ng-animate-disabled"></a><a ng-if="userstories.length" href="" title="{{\'BACKLOG.TAGS.TOGGLE\' | translate}}" id="show-tags" translate="BACKLOG.TAGS.SHOW" class="menu-button"></a><a ng-if="userstories.length &amp;&amp; ctrl.displayVelocity " href="" title="{{\'BACKLOG.FORECASTING.TITLE\' | translate}}" translate="BACKLOG.FORECASTING.BACKLOG" ng-click="ctrl.toggleVelocityForecasting()" tg-check-permission="add_milestone" class="menu-button velocity-forecasting-btn ng-animate-disabled "></a><a ng-if="userstories.length &amp;&amp; !ctrl.displayVelocity &amp;&amp; stats.speed &gt; 0" href="" title="{{\'BACKLOG.FORECASTING.BACKLOG\' | translate}}" translate="BACKLOG.FORECASTING.TITLE" ng-click="ctrl.toggleVelocityForecasting()" tg-check-permission="add_milestone" class="menu-button velocity-forecasting-btn ng-animate-disabled "></a></div>\n <div class="new-us"><a href="" title="{{\'US.ADD\' | translate}}" ng-click="ctrl.addNewUs(\'standard\')" tg-check-permission="add_us" class="button-green"><span class="text">{{\'US.ADD\' | translate}}</span></a><a href="" title="{{\'US.ADD_BULK\' | translate}}" ng-click="ctrl.addNewUs(\'bulk\')" tg-check-permission="add_us" class="button-bulk">\n <tg-svg svg-icon="icon-bulk"></tg-svg></a></div>\n </div>\n <section ng-class="{\'hidden\': !userstories.length}" class="backlog-table">\n <div class="backlog-table-header">\n <div class="row backlog-table-title">\n <div tg-check-permission="modify_us" class="input"></div>\n <div translate="COMMON.FIELDS.VOTES" class="votes"></div>\n <div translate="BACKLOG.TABLE.COLUMN_US" class="user-stories"></div>\n <div translate="COMMON.FIELDS.STATUS" class="status"></div>\n <div tg-us-role-points-selector title="{{\'BACKLOG.TABLE.TITLE_COLUMN_POINTS\' | translate}}" class="points"><span translate="COMMON.FIELDS.POINTS" class="header-points"></span>\n <tg-svg svg-icon="icon-arrow-down"></tg-svg>\n </div>\n </div>\n </div>\n <div tg-backlog-sortable ng-class="{\'show-tags\': ctrl.showTags, \'active-filters\': ctrl.activeFilters, \'forecasted-stories\': ctrl.displayVelocity}" infinite-scroll="ctrl.loadUserstories()" infinite-scroll-disabled="ctrl.disablePagination || !ctrl.firstLoadComplete" infinite-scroll-immediate-check="false" class="backlog-table-body">\n <div ng-repeat="us in userstories | inArray:visibleUserStories:\'ref\'" tg-bind-scope ng-class="{blocked: us.is_blocked}" tg-class-permission="{\'readonly\': \'!modify_us\'}" class="row us-item-row">\n <div tg-check-permission="modify_us" class="input">\n <input type="checkbox" name="">\n </div>\n <div ng-class="{\'inactive\': !us.total_voters, \'is-voted\': us.is_voter}" title="{{ \'COMMON.VOTE_BUTTON.COUNTER_TITLE\'|translate:{total:us.total_voters||0}:\'messageformat\' }}" class="votes">\n <tg-svg svg-icon="icon-upvote"></tg-svg><span>{{ ::us.total_voters }}</span>\n </div>\n <div class="user-stories">\n <div tg-colorize-backlog-tags="us.tags" class="tags-block"></div>\n <div class="user-story-name"><a href="" tg-nav="project-userstories-detail:project=project.slug,ref=us.ref" tg-nav-get-params="{&quot;no-milestone&quot;: 1}" title="#{{ us.ref }} {{ us.subject }}" class="clickable"><span tg-bo-ref="us.ref"></span><span ng-bind-html="us.subject | emojify"></span>\n <tg-due-date due-date="us.due_date" due-date-status="us.due_date_status" ng-if="us.due_date"></tg-due-date>\n <tg-belong-to-epics format="pill" ng-if="us.epics" epics="us.epics"></tg-belong-to-epics></a>\n <div class="us-settings"><a href="" tg-check-permission="modify_us" ng-click="ctrl.editUserStory(us.project, us.ref, $event)" title="{{\'COMMON.EDIT\' | translate}}" class=" edit-story">\n <tg-svg svg-icon="icon-edit"></tg-svg></a><a href="" tg-check-permission="delete_us" ng-click="ctrl.deleteUserStory(us)" title="{{\'COMMON.DELETE\' | translate}}" class="">\n <tg-svg svg-icon="icon-trash"></tg-svg></a></div>\n </div>\n </div>\n <div tg-us-status="us" on-update="ctrl.updateUserStoryStatus()" class="status"><a href="" title="{{\'BACKLOG.STATUS_NAME\' | translate}}" class="us-status"><span class="us-status-bind"></span>\n <tg-svg tg-check-permission="modify_us" svg-icon="icon-arrow-down"></tg-svg></a></div>\n <div tg-backlog-us-points="us" class="points"><a href="" title="{{\'COMMON.FIELDS.POINTS\' | translate}}" class="us-points"></a></div><a tg-check-permission="modify_us" href="" title="{{\'COMMON.DRAG\' | translate}}" class="">\n <tg-svg svg-icon="icon-drag"></tg-svg></a>\n </div>\n <div tg-loading="ctrl.loadingUserstories"></div>\n </div>\n </section>\n <div ng-if="ctrl.displayVelocity" class="forecasting-add-sprint ">\n <tg-svg svg-icon="icon-add"></tg-svg><span ng-if="!currentSprint" translate="BACKLOG.FORECASTING.NEW_SPRINT"></span><span ng-if="currentSprint" translate="BACKLOG.FORECASTING.CURRENT_SPRINT"></span>\n </div>\n <div ng-class="{\'hidden\': userstories === undefined || userstories.length}" class="empty-large js-empty-backlog"><img src="/v-1525361023952/images/empty/empty_mex.png" alt="{{\'BACKLOG.EMPTY\' | translate}}">\n <p translate="BACKLOG.EMPTY" class="title"></p><a href="" title="{{\'BACKLOG.CREATE_NEW_US\' | translate}}" ng-click="ctrl.addNewUs(\'standard\')" tg-check-permission="add_us" translate="BACKLOG.CREATE_NEW_US_EMPTY_HELP"></a>\n </div>\n </section>\n <sidebar class="menu-secondary sidebar">\n <section class="sprints">\n <header class="sprint-header">\n <h1><span ng-bind="totalMilestones" ng-if="totalMilestones" class="number"></span><span translate="BACKLOG.SPRINTS.TITLE"></span></h1><a href="" title="{{ \'BACKLOG.SPRINTS.TITLE_ACTION_NEW_SPRINT\' | translate}}" ng-click="ctrl.addNewSprint()" ng-if="totalMilestones" tg-check-permission="add_milestone" class="add-sprint">\n <tg-svg svg-icon="icon-add"></tg-svg></a>\n </header>\n <div ng-if="totalMilestones === 0" class="empty-small"><img src="/v-1525361023952/images/empty/empty_sprint.png" alt="{{\'BACKLOG.SPRINTS.EMPTY\' | translate}}">\n <p translate="BACKLOG.SPRINTS.EMPTY" class="title"></p><a href="" ng-click="ctrl.addNewSprint()" title="{{\'BACKLOG.SPRINTS.TITLE_ACTION_NEW_SPRINT\' | translate}}" translate="BACKLOG.SPRINTS.TEXT_ACTION_NEW_SPRINT" tg-check-permission="add_milestone"></a>\n </div>\n <div ng-repeat="sprint in ctrl.openSprints() track by sprint.id" tg-backlog-sprint="sprint" tg-sprint-sortable class="sprint sprint-open">\n <header tg-backlog-sprint-header></header>\n <div class="summary-progress-wrapper">\n <div tg-progress-bar="100 * sprint.closed_points / sprint.total_points" class="sprint-progress-bar"></div>\n </div>\n <div tg-bind-scope ng-class="{\'sprint-empty-wrapper\': !sprint.user_stories.length}" class="sprint-table">\n <div ng-if="!sprint.user_stories.length" class="sprint-empty"><span tg-class-permission="{\'hidden\': \'modify_us\'}">{{ \'BACKLOG.SPRINTS.WARNING_EMPTY_SPRINT_ANONYMOUS\' | translate }}</span><span tg-class-permission="{\'hidden\': \'!modify_us\'}">{{ \'BACKLOG.SPRINTS.WARNING_EMPTY_SPRINT\' | translate }}</span></div>\n <div ng-repeat="us in sprint.user_stories track by us.id" tg-bind-scope tg-class-permission="{\'readonly\': \'!modify_us\'}" class="row milestone-us-item-row">\n <div class="column-us"><a tg-nav="project-userstories-detail:project=project.slug,ref=us.ref" tg-nav-get-params="{&quot;milestone&quot;: {{us.milestone}}}" tg-bo-title="\'#\' + us.ref + \' \' + us.subject" ng-class="{closed: us.is_closed, blocked: us.is_blocked}" class="us-name clickable"><span tg-bo-ref="us.ref"></span><span tg-bind-html="us.subject | emojify"></span>\n <tg-belong-to-epics format="pill" ng-if="us.epics" epics="us.epics"></tg-belong-to-epics></a></div>\n <div tg-bo-bind="us.total_points" ng-class="{closed: us.is_closed, blocked: us.is_blocked}" class="column-points width-1"></div>\n </div>\n </div><a title="{{ \'BACKLOG.SPRINTS.TITLE_LINK_TASKBOARD\' | translate: {&quot;name&quot;: sprint.name} }}" tg-nav="project-taskboard:project=project.slug,sprint=sprint.slug" tg-check-permission="view_milestones" class="button-gray"><span translate="BACKLOG.SPRINTS.LINK_TASKBOARD"></span></a>\n </div><a href="" tg-backlog-toggle-closed-sprints-visualization ng-if="totalClosedMilestones" class="filter-closed-sprints">\n <tg-svg svg-icon="icon-archive"></tg-svg><span translate="BACKLOG.SPRINTS.ACTION_SHOW_CLOSED_SPRINTS" class="text"></span></a>\n <div ng-repeat="sprint in closedSprints track by sprint.id" tg-backlog-sprint="sprint" tg-sprint-sortable class="sprint sprint-closed">\n <header tg-backlog-sprint-header></header>\n <div class="summary-progress-wrapper">\n <div tg-progress-bar="100 * sprint.closed_points / sprint.total_points" class="sprint-progress-bar"></div>\n </div>\n <div tg-bind-scope ng-class="{\'sprint-empty-wrapper\': !sprint.user_stories.length}" class="sprint-table">\n <div ng-if="!sprint.user_stories.length" class="sprint-empty"><span tg-class-permission="{\'hidden\': \'modify_us\'}">{{ \'BACKLOG.SPRINTS.WARNING_EMPTY_SPRINT_ANONYMOUS\' | translate }}</span><span tg-class-permission="{\'hidden\': \'!modify_us\'}">{{ \'BACKLOG.SPRINTS.WARNING_EMPTY_SPRINT\' | translate }}</span></div>\n <div ng-repeat="us in sprint.user_stories track by us.id" tg-bind-scope tg-class-permission="{\'readonly\': \'!modify_us\'}" class="row milestone-us-item-row">\n <div class="column-us"><a tg-nav="project-userstories-detail:project=project.slug,ref=us.ref" tg-nav-get-params="{&quot;milestone&quot;: {{us.milestone}}}" tg-bo-title="\'#\' + us.ref + \' \' + us.subject" ng-class="{closed: us.is_closed, blocked: us.is_blocked}" class="us-name clickable"><span tg-bo-ref="us.ref"></span><span tg-bind-html="us.subject | emojify"></span>\n <tg-belong-to-epics format="pill" ng-if="us.epics" epics="us.epics"></tg-belong-to-epics></a></div>\n <div tg-bo-bind="us.total_points" ng-class="{closed: us.is_closed, blocked: us.is_blocked}" class="column-points width-1"></div>\n </div>\n </div><a title="{{ \'BACKLOG.SPRINTS.TITLE_LINK_TASKBOARD\' | translate: {&quot;name&quot;: sprint.name} }}" tg-nav="project-taskboard:project=project.slug,sprint=sprint.slug" tg-check-permission="view_milestones" class="button-gray"><span translate="BACKLOG.SPRINTS.LINK_TASKBOARD"></span></a>\n </div>\n </section>\n </sidebar>\n <div tg-lb-create-edit-userstory class="lightbox lightbox-generic-form lb-create-edit-userstory">\n <tg-lightbox-close></tg-lightbox-close>\n <form>\n <h2 translate="LIGHTBOX.CREATE_EDIT_US.TITLE" class="title"></h2>\n <fieldset>\n <input type="text" name="subject" ng-model-options="{ debounce: 200 }" ng-model="us.subject" placeholder="{{\'COMMON.FIELDS.SUBJECT\' | translate}}" data-required="true" data-maxlength="500">\n </fieldset>\n <fieldset class="ticket-estimation">\n <tg-lb-us-estimation ng-model="us"></tg-lb-us-estimation>\n </fieldset>\n <fieldset>\n <select name="status" ng-model="us.status" ng-options="s.id as s.name for s in usStatusList"></select>\n </fieldset>\n <fieldset>\n <tg-tag-line-common ng-if="project &amp;&amp; createEditUsOpen" project="project" tags="us.tags" permissions="add_us" on-add-tag="addTag(name, color)" on-delete-tag="deleteTag(tag)" class="tags-block"></tg-tag-line-common>\n </fieldset>\n <fieldset>\n <textarea name="description" ng-model="us.description" ng-model-options="{ debounce: 200 }" ng-attr-placeholder="{{\'LIGHTBOX.CREATE_EDIT_US.PLACEHOLDER_DESCRIPTION\' | translate}}" class="description"></textarea>\n </fieldset>\n <fieldset>\n <section>\n <tg-attachments-simple attachments="attachments" on-add="addAttachment(attachment)" on-delete="deleteAttachment(attachment)"></tg-attachments-simple>\n </section>\n </fieldset>\n <div class="settings">\n <fieldset class="team-requirement">\n <input type="checkbox" name="team_requirement" ng-model="us.team_requirement" id="team-requirement" ng-value="true">\n <label for="team-requirement" translate="US.FIELDS.TEAM_REQUIREMENT" class="requirement trans-button"></label>\n </fieldset>\n <fieldset class="client-requirement">\n <input type="checkbox" name="client_requirement" ng-model="us.client_requirement" id="client-requirement" ng-value="true">\n <label for="client-requirement" translate="US.FIELDS.CLIENT_REQUIREMENT" class="requirement trans-button"></label>\n </fieldset>\n <fieldset class="blocking-flag">\n <input type="checkbox" name="is_blocked" ng-model="us.is_blocked" id="blocked-us" ng-value="true">\n <label for="blocked-us" translate="COMMON.BLOCKED" class="blocked trans-button"></label>\n </fieldset>\n </div>\n <tg-blocking-message-input watch="us.is_blocked" ng-model="us.blocked_note"></tg-blocking-message-input>\n <button type="submit" title="{{\'COMMON.CREATE\' | translate}}" translate="COMMON.CREATE" class="button-green submit-button"></button>\n </form>\n </div>\n <div tg-lb-create-bulk-userstories class="lightbox lightbox-generic-bulk">\n <tg-lightbox-close></tg-lightbox-close>\n <form>\n <h2 translate="COMMON.NEW_BULK" class="title"></h2>\n <fieldset>\n <textarea cols="200" wrap="off" ng-model="new.bulk" data-required="true" data-linewidth="200" ng-attr-placeholder="{{\'COMMON.ONE_ITEM_LINE\' | translate}}"></textarea>\n </fieldset>\n <button type="submit" title="{{\'COMMON.SAVE\' | translate}}" translate="COMMON.SAVE" class="button-green submit-button"></button>\n </form>\n </div>\n <div tg-lb-create-edit-sprint class="lightbox lightbox-sprint-add-edit">\n <tg-lightbox-close></tg-lightbox-close>\n <form>\n <h2 translate="LIGHTBOX.ADD_EDIT_SPRINT.TITLE" class="title"></h2>\n <fieldset>\n <input type="text" name="name" ng-model="newSprint.name" ng-model-options="{ debounce: 200 }" data-required="true" data-maxlength="500" placeholder="{{\'LIGHTBOX.ADD_EDIT_SPRINT.PLACEHOLDER_SPRINT_NAME\' | translate}}" class="sprint-name ">\n <label class="last-sprint-name"></label>\n </fieldset>\n <fieldset class="dates">\n <div>\n <input type="text" name="estimated_start" picker-value="{{newSprint.estimated_start}}" data-required="true" tg-date-selector placeholder="{{\'LIGHTBOX.ADD_EDIT_SPRINT.PLACEHOLDER_SPRINT_START\' | translate}}" class="date-start">\n </div>\n <div>\n <input type="text" name="estimated_finish" picker-value="{{newSprint.estimated_finish}}" data-required="true" tg-date-selector placeholder="{{\'LIGHTBOX.ADD_EDIT_SPRINT.PLACEHOLDER_SPRINT_END\' | translate}}" class="date-end">\n </div>\n </fieldset>\n <button type="submit" title="{{\'COMMON.CREATE\' | translate}}" translate="COMMON.CREATE" class="button-green submit-button"></button><a tg-check-permission="delete_milestone" href="" title="{{\'LIGHTBOX.ADD_EDIT_SPRINT.TITLE_ACTION_DELETE_SPRINT\' | translate}}" class="delete-sprint"><span>{{\'LIGHTBOX.ADD_EDIT_SPRINT.ACTION_DELETE_SPRINT\' | translate }}</span>\n <tg-svg svg-icon="icon-trash"></tg-svg></a>\n </form>\n </div>\n</div>'),t.put("backlog/progress-bar.html",'\n<div title="{{\'BACKLOG.EXCESS_OF_POINTS\' | translate}}" class="defined-points"></div>\n<div title="{{\'BACKLOG.PENDING_POINTS\' | translate}}" style="width: <%- projectPointsPercentaje %>%" class="project-points-progress"></div>\n<div title="{{\'BACKLOG.CLOSED_POINTS\' | translate}}" style="width: <%- closedPointsPercentaje %>%" class="closed-points-progress"></div>'),t.put("backlog/sprint-header.html",'\n<div class="sprint-name"><a href="" title="{{\'BACKLOG.COMPACT_SPRINT\' | translate}}" class="compact-sprint">\n <tg-svg svg-icon="icon-arrow-right"></tg-svg></a><a ng-if="::isVisible" href="{{::taskboardUrl}}" title="{{\'BACKLOG.GO_TO_TASKBOARD\' | translate}}"><span>{{::name}}</span></a><a ng-if="::isEditable" href="" title="{{\'BACKLOG.EDIT_SPRINT\' | translate}}" class="edit-sprint">\n <tg-svg svg-icon="icon-edit"></tg-svg></a></div>\n<div class="sprint-summary">\n <div class="sprint-date">{{::estimatedDateRange}}</div>\n <ul>\n <li><span class="number">{{::closedPoints | number}}</span><span translate="BACKLOG.CLOSED_POINTS" class="description"></span></li>\n <li><span class="number">{{::totalPoints | number}}</span><span translate="BACKLOG.TOTAL_POINTS" class="description"></span></li>\n </ul>\n</div>'),t.put("backlog/us-role-points-popover.html",'\n<ul class="popover pop-role">\n <li><a href="" title="{{\'COMMON.ROLES.ALL\' | translate}}" translate="COMMON.ROLES.ALL" class="clear-selection"></a></li><% _.each(roles, function(role) { %>\n <li><a href="" title="<%- role.name %>" data-role-id="<%- role.id %>" class="role"><%- role.name %></a></li><% }); %>\n</ul>'),t.put("common/lightbox-feedback.html",'\n<tg-lightbox-close></tg-lightbox-close>\n<form>\n <h2 translate="LIGHTBOX.FEEDBACK.TITLE" class="title"></h2>\n <fieldset>\n <textarea ng-model="feedback.comment" data-required="true" ng-attr-placeholder="{{\'LIGHTBOX.FEEDBACK.COMMENT\' | translate}}"></textarea>\n </fieldset>\n <fieldset>\n <button type="submit" title="{{\'LIGHTBOX.FEEDBACK.ACTION_SEND\' | translate}}" translate="LIGHTBOX.FEEDBACK.ACTION_SEND" class="button-green submit-button"></button>\n </fieldset>\n</form>'),t.put("contrib/main.html",'<!DOCTYPE html>\n<div ng-init="section=\'admin\'" ng-controller="ContribController as ctrl" class="wrapper roles">\n <tg-project-menu></tg-project-menu>\n <sidebar tg-admin-navigation="contrib" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="adminmenu-project-profile"><a href="" tg-nav="project-admin-project-profile-details:project=project.slug"><span translate="ADMIN.MENU.PROJECT" class="title"></span></a></li>\n <li id="adminmenu-project-values"><a href="" tg-nav="project-admin-project-values-status:project=project.slug"><span translate="ADMIN.MENU.ATTRIBUTES" class="title"></span></a></li>\n <li id="adminmenu-memberships"><a href="" tg-nav="project-admin-memberships:project=project.slug"><span translate="ADMIN.MENU.MEMBERS" class="title"></span></a></li>\n <li id="adminmenu-roles"><a href="" tg-nav="project-admin-roles:project=project.slug"><span translate="ADMIN.MENU.PERMISSIONS" class="title"></span></a></li>\n <li id="adminmenu-third-parties"><a href="" tg-nav="project-admin-third-parties-webhooks:project=project.slug"><span translate="ADMIN.MENU.INTEGRATIONS" class="title"></span></a></li>\n <li id="adminmenu-contrib" ng-show="adminPlugins.length &gt; 0"><a href="" tg-nav="project-admin-contrib:project=project.slug,plugin=adminPlugins[0].slug"><span translate="COMMON.PLUGINS" class="title"></span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <sidebar class="menu-tertiary sidebar">\n <section class="admin-submenu">\n <nav>\n <ul>\n <li id="adminmenu-contrib" ng-repeat="plugin in adminPlugins"><a href="" tg-nav="project-admin-contrib:project=projectSlug,plugin=plugin.slug" ng-class="{active: plugin.slug == currentPlugin.slug}"><span class="title">{{ plugin.name }}</span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section ng-include="currentPlugin.template" class="main admin-common admin-contrib"></section>\n</div>'),t.put("contrib/user-settings.html",'<!DOCTYPE html>\n<div ng-controller="ContribUserSettingsController as ctrl" ng-init="section=\'user-settings\'" class="wrapper">\n <sidebar tg-user-settings-navigation class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="usersettingsmenu-user-profile"><a href="" tg-nav="user-settings-user-profile" title="{{ \'USER_SETTINGS.MENU.USER_PROFILE\' | translate }}"><span translate="USER_SETTINGS.MENU.USER_PROFILE" class="title"></span></a></li>\n <li id="usersettingsmenu-change-password"><a href="" tg-nav="user-settings-user-change-password" title="{{ \'USER_SETTINGS.MENU.CHANGE_PASSWORD\' | translate }}"><span translate="USER_SETTINGS.MENU.CHANGE_PASSWORD" class="title"></span></a></li>\n <li id="usersettingsmenu-mail-notifications"><a href="" tg-nav="user-settings-mail-notifications" title="{{ \'USER_SETTINGS.MENU.EMAIL_NOTIFICATIONS\' | translate }}"><span translate="USER_SETTINGS.MENU.EMAIL_NOTIFICATIONS" class="title"></span></a></li>\n <li id="usersettingsmenu-live-notifications"><a href="" tg-nav="user-settings-live-notifications" title="{{ \'USER_SETTINGS.MENU.DESKTOP_NOTIFICATIONS\' | translate }}"><span translate="USER_SETTINGS.MENU.DESKTOP_NOTIFICATIONS" class="title"></span></a></li>\n <li id="usersettings-contrib" ng-repeat="plugin in userSettingsPlugins"><a href="" tg-nav="user-settings-contrib:plugin=plugin.slug" ng-class="{active: plugin.slug == currentPlugin.slug}"><span class="title">{{ plugin.name }}</span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section ng-include="currentPlugin.template" class="main"></section>\n</div>'),t.put("custom-attributes/custom-attribute-value-edit.html",'\n<form class="custom-field-single editable">\n <div class="custom-field-data">\n <label for="custom-field-value" class="custom-field-name"><%- name %></label><% if (description){ %><span class="custom-field-description"><%- description %></span><% } %>\n </div>\n <div class="custom-field-value"><% if (type=="text") { %>\n <input id="custom-field-value" name="value" type="text" value="<%- value %>"/><% } else if (type=="multiline") { %>\n <textarea id="custom-field-value" name="value"><%- value %></textarea><% } else if (type=="richtext") { %>\n <tg-custom-field-edit-wysiwyg></tg-custom-field-edit-wysiwyg><% } else if (type=="date") { %>\n <input id="custom-field-value" name="value" type="text" data-pikaday="data-pikaday" value="<%- value %>"/><% } else if (type=="url") { %>\n <input id="custom-field-value" name="value" type="url" value="<%- value %>"/><% } else { %>\n <input id="custom-field-value" name="value" type="text" value="<%- value %>"/><% } %>\n </div><% if (type != "richtext") { %>\n <div class="custom-field-options"><a href="" title="{{\'COMMON.CUSTOM_ATTRIBUTES.SAVE\' | translate}}" class="js-save-description">\n <tg-svg svg-icon="icon-save"></tg-svg></a></div><% } %>\n</form>'),t.put("custom-attributes/custom-attribute-value.html",'\n<div class="custom-field-single">\n <div class="custom-field-data"><span class="custom-field-name"><%- name %></span><% if (description){ %><span class="custom-field-description"><%- description %></span><% } %></div><% if (type=="url") { %>\n <div class="custom-field-value js-value-view-mode"><span><a href="<%- value %>"><%- value %></a></span></div><% } else if (type=="richtext") { %>\n <div class="custom-field-value js-value-view-mode wysiwyg">\n <div ng-bind-html="attributeHtml"></div>\n </div><% } else { %>\n <div class="custom-field-value js-value-view-mode"><span><%- value %></span></div><% } %>\n <% if (isEditable) { %>\n <div class="custom-field-options"><a href="" title="{{\'COMMON.CUSTOM_ATTRIBUTES.EDIT\' | translate}}" class="js-edit-description">\n <tg-svg svg-icon="icon-edit"></tg-svg></a></div><% } %>\n</div>'),t.put("custom-attributes/custom-attributes-values.html",'\n<section ng-show="ctrl.customAttributes.length" class="duty-custom-fields">\n <div class="custom-fields-header"><span translate="COMMON.CUSTOM_ATTRIBUTES.CUSTOM_FIELDS"></span><a href="" ng-class="{\'open\': !collapsed}" ng-click="toggleCollapse()" class="collapse">\n <tg-svg svg-icon="icon-arrow-down"></tg-svg></a></div>\n <div ng-show="!collapsed" ng-class="{\'collapse-fields\': ctrl.customAttributes.length &gt; 6}" class="custom-fields-body">\n <div ng-repeat="attr in ctrl.customAttributes" tg-custom-attribute-value="ctrl.getAttributeValue(attr)" required-edition-perm="<%- requiredEditionPerm %>" class="custom-attribute"></div>\n </div>\n</section>'),t.put("epic/epic-detail.html",'<!DOCTYPE html>\n<div ng-controller="EpicDetailController as ctrl" ng-init="section=\'epics\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <div class="main us-detail">\n <div class="us-detail-header header-with-actions">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n </div>\n <section class="us-story-main-data">\n <header>\n <tg-vote-button item="epic" on-upvote="ctrl.onUpvote" on-downvote="ctrl.onDownvote" class="upvote-btn"></tg-vote-button>\n <div ng-class="{blocked: epic.is_blocked}" class="detail-header-container epic-header-container">\n <tg-color-selector is-color-required="true" init-color="epic.color" on-select-color="ctrl.onSelectColor(color)" required-perm="modify_epic" class="color-selector"></tg-color-selector>\n <tg-detail-header item="epic" project="project" required-perm="modify_epic" ng-if="project &amp;&amp; epic" format="text"></tg-detail-header>\n </div>\n </header>\n <div class="subheader">\n <tg-tag-line ng-if="epic &amp;&amp; project" project="project" item="epic" permissions="modify_epic" class="tags-block"></tg-tag-line>\n <tg-created-by-display ng-model="epic" class="ticket-created-by"></tg-created-by-display>\n </div>\n </section>\n <section class="duty-content">\n <tg-item-wysiwyg type="epic" model="epic" required-perm="modify_epic"></tg-item-wysiwyg>\n </section>\n <!-- Custom Fields-->\n <tg-custom-attributes-values ng-model="epic" type="epic" project="project" required-edition-perm="modify_epic"></tg-custom-attributes-values>\n <tg-related-userstories project="immutableProject" userstories="userstories" epic="immutableEpic"></tg-related-userstories>\n <tg-attachments-full obj-id="epic.id" type="epic" project-id="projectId" edit-permission="modify_epic"></tg-attachments-full>\n <tg-history-section ng-if="epic" type="epic" name="epic" id="epic.id" project-id="projectId"></tg-history-section>\n </div>\n <sidebar class="menu-secondary sidebar ticket-data">\n <div class="ticket-header"><span tg-epic-status-display ng-model="epic" class="ticket-title"></span><span tg-epic-status-button ng-model="epic" class="detail-status"></span></div>\n <section tg-assigned-to ng-model="epic" required-perm="modify_epic" class="ticket-assigned-to"></section>\n <section class="ticket-watch-buttons">\n <div tg-watch-button item="epic" data-environment="ticket" on-watch="ctrl.onWatch" on-unwatch="ctrl.onUnwatch" class="ticket-watch"></div>\n <div tg-watchers ng-model="epic" required-perm="modify_epic" class="ticket-watchers"></div>\n </section>\n <section class="ticket-detail-settings">\n <tg-us-team-requirement-button ng-model="epic"></tg-us-team-requirement-button>\n <tg-us-client-requirement-button ng-model="epic"></tg-us-client-requirement-button>\n <tg-block-button tg-check-permission="modify_epic" ng-model="epic"></tg-block-button>\n <tg-delete-button tg-check-permission="delete_epic" on-delete-title="{{\'EPIC.ACTION_DELETE\' | translate}}" on-delete-go-to-url="onDeleteGoToUrl" ng-model="epic"></tg-delete-button>\n </section>\n </sidebar>\n <div tg-lb-block ng-model="epic" title="EPIC.LIGHTBOX_TITLE_BLOKING_EPIC" class="lightbox lightbox-block"></div>\n <div tg-lb-assignedto class="lightbox lightbox-select-user"></div>\n <div tg-lb-watchers class="lightbox lightbox-select-user"></div>\n</div>'),
t.put("error/error.html",'<!DOCTYPE html>\n<div class="error-main">\n <div class="error-container"><img src="/v-1525361023952/svg/logo.svg" alt="TAIGA" width="143px">\n <h1 class="logo">Taiga</h1>\n <p translate="ERROR.TEXT1" class="error-text"></p><a href="/" title="" translate="COMMON.GO_HOME"></a>\n </div>\n</div>'),t.put("error/not-found.html",'<!DOCTYPE html>\n<div class="error-main">\n <div class="error-container"><img src="/v-1525361023952/svg/logo.svg" alt="TAIGA" width="143px">\n <h1 translate="ERROR.NOT_FOUND" class="logo"></h1>\n <p translate="ERROR.NOT_FOUND_TEXT" class="error-text"></p><a href="/" title="" translate="COMMON.GO_HOME"></a>\n </div>\n</div>'),t.put("error/permission-denied.html",'<!DOCTYPE html>\n<div class="error-main">\n <div class="error-container"><img ng-src="/v-1525361023952/svg/logo.svg" alt="TAIGA" class="logo-svg">\n <h1 translate="ERROR.PERMISSION_DENIED" class="logo"></h1>\n <p translate="ERROR.PERMISSION_DENIED_TEXT" class="error-text"></p><a href="/" title="" translate="COMMON.GO_HOME"></a>\n </div>\n</div>'),t.put("issue/iocaine-button.html",'\n<fieldset title="{{ \'TASK.TITLE_ACTION_IOCAINE\' | translate }}">\n <label for="is-iocaine" class="button-gray is-iocaine <% if(isEditable){ %>is-editable<% }; %> <% if(isIocaine){ %>active<% }; %>">\n <tg-svg svg-icon="icon-iocaine"></tg-svg>\n </label>\n <input type="checkbox" id="is-iocaine" name="is-iocaine"/>\n</fieldset>'),t.put("issue/issue-paginator.html",'\n<ul class="paginator"><% if (showPrevious) { %>\n <li class="previous"><a href="" class="previous next_prev_button disabled"><span translate="PAGINATION.PREVIOUS"></span></a></li><% } %>\n <% _.each(pages, function(item) { %>\n <li class="<%- item.classes %>"><% if (item.type === "page") { %><a href="" data-pagenum="<%- item.num %>"><%- item.num %></a></a><% } else if (item.type === "page-active") { %><span class="active"><%- item.num %></span><% } else { %><span>...</span><% } %></li><% }); %>\n <% if (showNext) { %>\n <li class="next"><a href="" class="next next_prev_button disabled"><span translate="PAGINATION.NEXT"></span></a></li><% } %>\n</ul>'),t.put("issue/issue-priority-button.html",'\n<div class="priority-data <% if(editable){ %>clickable<% }%>"><span style="background-color:<%- priority.color %>" class="level"></span><span class="priority-priority"><%- priority.name %></span><% if(editable){ %>\n <tg-svg svg-icon="icon-arrow-down"></tg-svg><% }%><span translate="COMMON.FIELDS.PRIORITY" class="level-name"></span>\n <ul class="popover pop-priority"><% _.each(priorityes, function(pr) { %>\n <li><a href="" title="<%- pr.name %>" data-priority-id="<%- pr.id %>" class="priority"><%- pr.name %></a></li><% }); %>\n </ul>\n</div>'),t.put("issue/issue-severity-button.html",'\n<div class="severity-data <% if(editable){ %>clickable<% }%>"><span style="background-color:<%- severity.color %>" class="level"></span><span class="severity-severity"><%- severity.name %></span><% if(editable){ %>\n <tg-svg svg-icon="icon-arrow-down"></tg-svg><% }%><span translate="COMMON.FIELDS.SEVERITY" class="level-name"></span>\n <ul class="popover pop-severity"><% _.each(severityes, function(sv) { %>\n <li><a href="" title="<%- sv.name %>" data-severity-id="<%- sv.id %>" class="severity"><%- sv.name %></a></li><% }); %>\n </ul>\n</div>'),t.put("issue/issue-status-inline-edition-selection.html",'\n<ul class="popover pop-status"><% _.forEach(statuses, function(status) { %>\n <li><a href="" title="<%- status.name %>" data-status-id="<%- status.id %>" class="status"><%- status.name %></a></li><% }); %>\n</ul>'),t.put("issue/issue-type-button.html",'\n<div class="type-data <% if(editable){ %>clickable<% }%>"><span style="background-color:<%- type.color %>" class="level"></span><span class="type-type"><%- type.name %></span><% if(editable){ %>\n <tg-svg svg-icon="icon-arrow-down"></tg-svg><% }%><span translate="COMMON.FIELDS.TYPE" class="level-name"></span>\n <ul class="popover pop-type"><% _.each(typees, function(tp) { %>\n <li><a href="" title="<%- tp.name %>" data-type-id="<%- tp.id %>" class="type"><%- tp.name %></a></li><% }); %>\n </ul>\n</div>'),t.put("issue/issues-detail.html",'<!DOCTYPE html>\n<div ng-controller="IssueDetailController as ctrl" ng-init="section=\'issues\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <div class="main us-detail">\n <div class="us-detail-header header-with-actions">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n </div>\n <section class="us-story-main-data">\n <header>\n <tg-vote-button item="issue" on-upvote="ctrl.onUpvote" on-downvote="ctrl.onDownvote" class="upvote-btn"></tg-vote-button>\n <tg-detail-header item="issue" project="project" required-perm="modify_issue" ng-class="{blocked: issue.is_blocked}" ng-if="project &amp;&amp; issue" format="text" class="detail-header-container"></tg-detail-header>\n </header>\n <div class="subheader">\n <tg-tag-line ng-if="issue &amp;&amp; project" project="project" item="issue" permissions="modify_issue" class="tags-block"></tg-tag-line>\n <tg-created-by-display ng-model="issue" class="ticket-created-by"></tg-created-by-display>\n </div>\n </section>\n <section class="duty-content">\n <tg-item-wysiwyg type="issue" model="issue" required-perm="modify_issue"></tg-item-wysiwyg>\n </section>\n <!-- Custom Fields-->\n <tg-custom-attributes-values ng-model="issue" type="issue" project="project" required-edition-perm="modify_issue"></tg-custom-attributes-values>\n <tg-attachments-full obj-id="issue.id" type="issue" project-id="projectId" edit-permission="modify_issue"></tg-attachments-full>\n <tg-history-section ng-if="issue" type="issue" name="issue" id="issue.id" project-id="projectId"></tg-history-section>\n </div>\n <sidebar class="menu-secondary sidebar ticket-data">\n <div class="ticket-header"><span tg-issue-status-display ng-model="issue" class="ticket-title"></span><span tg-issue-status-button ng-model="issue" class="detail-status"></span></div>\n <!--tg-created-by-display.ticket-created-by(ng-model="issue")-->\n <div class="ticket-data-container">\n <div tg-issue-type-button ng-model="issue" class="ticket-status"></div>\n <div tg-issue-severity-button ng-model="issue" class="ticket-status"></div>\n <div tg-issue-priority-button ng-model="issue" class="ticket-status"></div>\n </div>\n <section tg-assigned-to ng-model="issue" required-perm="modify_issue" class="ticket-assigned-to"></section>\n <section class="ticket-watch-buttons">\n <div tg-watch-button item="issue" data-environment="ticket" on-watch="ctrl.onWatch" on-unwatch="ctrl.onUnwatch" class="ticket-watch"></div>\n <div tg-watchers ng-model="issue" required-perm="modify_us" class="ticket-watchers"></div>\n </section>\n <section class="ticket-detail-settings">\n <tg-due-date tg-check-permission="modify_issue" due-date="issue.due_date" due-date-status="issue.due_date_status" is-closed="issue.is_closed" item="issue" format="button"></tg-due-date>\n <tg-promote-issue-to-us-button tg-check-permission="add_us" ng-model="issue"></tg-promote-issue-to-us-button>\n <tg-block-button tg-check-permission="modify_issue" ng-model="issue"></tg-block-button>\n <tg-delete-button tg-check-permission="delete_issue" on-delete-title="{{\'ISSUES.ACTION_DELETE\' | translate}}" on-delete-go-to-url="onDeleteGoToUrl" ng-model="issue"></tg-delete-button>\n </section>\n </sidebar>\n <div tg-lb-block ng-model="issue" title="ISSUES.LIGHTBOX_TITLE_BLOKING_ISSUE" class="lightbox lightbox-block"></div>\n <div tg-lb-assignedto class="lightbox lightbox-select-user"></div>\n <div tg-lb-watchers class="lightbox lightbox-select-user"></div>\n</div>'),t.put("issue/issues.html",'<!DOCTYPE html>\n<div tg-issues ng-controller="IssuesController as ctrl" ng-init="section=\'issues\'" class="wrapper issues lightbox-generic-form">\n <tg-project-menu></tg-project-menu>\n <sidebar class="filters-bar">\n <tg-filter q="ctrl.filterQ" filters="ctrl.filters" custom-filters="ctrl.customFilters" selected-filters="ctrl.selectedFilters" customFilters="ctl.customFilters" on-save-custom-filter="ctrl.saveCustomFilter(name)" on-add-filter="ctrl.addFilter(filter)" on-select-custom-filter="ctrl.selectCustomFilter(filter)" on-remove-custom-filter="ctrl.removeCustomFilter(filter)" on-remove-filter="ctrl.removeFilter(filter)" on-change-q="ctrl.changeQ(q)"></tg-filter>\n </sidebar>\n <section class="main issues-page">\n <header>\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n </header>\n <section tg-check-permission="add_issue" class="issues-options">\n <div class="new-issue"><a href="" ng-click="ctrl.addNewIssue()" class="button-green"><span translate="ISSUES.ACTION_NEW_ISSUE" class="text"></span></a><a href="" ng-click="ctrl.addIssuesInBulk()" class="button-bulk">\n <tg-svg svg-icon="icon-bulk"></tg-svg></a></div>\n </section>\n <section ng-class="{empty: !issues.length}" class="issues-table basic-table">\n <div class="row title">\n <div data-fieldname="type" class="level-field">{{"ISSUES.TABLE.COLUMNS.TYPE" | translate}}</div>\n <div data-fieldname="severity" class="level-field">{{"ISSUES.TABLE.COLUMNS.SEVERITY" | translate}}</div>\n <div data-fieldname="priority" class="level-field">{{"ISSUES.TABLE.COLUMNS.PRIORITY" | translate}}</div>\n <div data-fieldname="total_voters" class="votes">{{"ISSUES.TABLE.COLUMNS.VOTES" | translate}}</div>\n <div data-fieldname="subject" class="subject">{{"ISSUES.TABLE.COLUMNS.SUBJECT" | translate}}</div>\n <div data-fieldname="status" class="issue-field">{{"ISSUES.TABLE.COLUMNS.STATUS" | translate}}</div>\n <div data-fieldname="created_date" class="created-field">{{"ISSUES.TABLE.COLUMNS.CREATED" | translate}}</div>\n <div data-fieldname="assigned_to" class="assigned-field">{{"ISSUES.TABLE.COLUMNS.ASSIGNED_TO" | translate}}</div>\n </div>\n <div ng-repeat="issue in issues track by issue.id" ng-class="{\'is-blocked\': issue.is_blocked}" class="row table-main">\n <div tg-listitem-type="issue" class="level-field"></div>\n <div tg-listitem-severity="issue" class="level-field"></div>\n <div tg-listitem-priority="issue" class="level-field"></div>\n <div ng-class="{\'inactive\': !issue.total_voters}" ng-if="!issue.is_voter" title="{{ \'COMMON.VOTE_BUTTON.COUNTER_TITLE\'|translate:{total:issue.total_voters||0}:\'messageformat\' }}" ng-click="ctrl.upVoteIssue(issue.id)" tg-loading="ctrl.voting == issue.id" class="votes ng-animate-disabled">\n <tg-svg svg-icon="icon-upvote"></tg-svg><span>{{ issue.total_voters }}</span>\n </div>\n <div ng-class="{\'is-voted\': issue.is_voter}" ng-if="issue.is_voter" title="{{ \'COMMON.VOTE_BUTTON.COUNTER_TITLE\'|translate:{total:issue.total_voters||0}:\'messageformat\' }}" ng-click="ctrl.downVoteIssue(issue.id)" tg-loading="ctrl.voting == issue.id" class="votes ng-animate-disabled">\n <tg-svg svg-icon="icon-upvote"></tg-svg><span>{{ issue.total_voters }}</span>\n </div>\n <div class="subject"><a href="" tg-nav="project-issues-detail:project=project.slug,ref=issue.ref" title="#{{ ::issue.ref }} {{ ::issue.subject }}"><span tg-bo-ref="issue.ref"></span><span ng-if="issue.is_blocked" title="{{issue.blocked_note}}" class="blocked-text">{{\'ISSUES.TABLE.BLOCKED\' | translate}}</span><span ng-bind-html="issue.subject | emojify"></span>\n <tg-due-date due-date="issue.due_date" due-date-status="issue.due_date_status" ng-if="issue.due_date"></tg-due-date></a></div>\n <div tg-issue-status-inline-edition="issue" class="issue-field"><a href="" title="{{\'ISSUES.TABLE.TITLE_ACTION_CHANGE_STATUS\' | translate}}" class="issue-status"><span class="issue-status-bind"></span>\n <tg-svg tg-check-permission="modify_issue" svg-icon="icon-arrow-down"></tg-svg></a></div>\n <div tg-bo-bind="issue.created_date|momentFormat:\'DD MMM YYYY\'" tg-bo-title="issue.created_date|momentFormat:\'DD MMM YYYY HH:mm\'" class="created-field"></div>\n <div tg-issue-assigned-to-inline-edition="issue" class="assigned-field">\n <div title="{{\'ISSUES.TABLE.TITLE_ACTION_ASSIGNED_TO\' | translate}}" class="issue-assignedto">\n <figure class="avatar"></figure>\n <tg-svg tg-check-permission="modify_issue" svg-icon="icon-arrow-down"></tg-svg>\n </div>\n </div>\n </div>\n </section>\n <section ng-if="issues != undefined &amp;&amp; issues.length == 0" class="empty-large"><img src="/v-1525361023952/images/empty/empty_moon.png" alt="{{ISSUES.TABLE.EMPTY.TITLE | translate }}">\n <p translate="ISSUES.TABLE.EMPTY.TITLE" class="title"></p><a href="" ng-click="ctrl.addNewIssue()" tg-check-permission="add_issue" title="{{ ISSUES.ACTION_NEW_ISSUE | translate }}" translate="ISSUES.TABLE.EMPTY.SUBTITLE"></a>\n </section>\n <!-- Paginator is rendered using js.-->\n <div class="paginator issues-paginator"></div>\n </section>\n <div tg-lb-assignedto class="lightbox lightbox-select-user"></div>\n <div tg-lb-create-issue class="lightbox lightbox-create-issue">\n <tg-lightbox-close></tg-lightbox-close>\n <form>\n <h2 translate="LIGHTBOX.CREATE_ISSUE.TITLE" class="title"></h2>\n <fieldset>\n <input type="text" ng-model="issue.subject" ng-attr-placeholder="{{\'COMMON.FIELDS.SUBJECT\' | translate}}" ng-model-options="{ debounce: 200 }" data-required="true" data-maxlength="500">\n </fieldset>\n <div class="fieldset-row">\n <fieldset>\n <select ng-model="issue.type" ng-options="t.id as t.name for t in issueTypes" class="type"></select>\n </fieldset>\n <fieldset>\n <select ng-model="issue.priority" ng-options="p.id as p.name for p in priorityList" class="priority"></select>\n </fieldset>\n <fieldset>\n <select ng-model="issue.severity" ng-options="s.id as s.name for s in severityList" class="severity"></select>\n </fieldset>\n </div>\n <fieldset>\n <tg-tag-line-common ng-if="project &amp;&amp; createIssueOpen" project="project" tags="issue.tags" permissions="add_issue" on-add-tag="addTag(name, color)" on-delete-tag="deleteTag(tag)" class="tags-block"></tg-tag-line-common>\n </fieldset>\n <fieldset>\n <section>\n <tg-attachments-simple attachments="attachments" on-add="addAttachment(attachment)" on-delete="deleteAttachment(attachment)"></tg-attachments-simple>\n </section>\n </fieldset>\n <fieldset>\n <textarea ng-attr-placeholder="{{\'COMMON.FIELDS.DESCRIPTION\' | translate}}" ng-model="issue.description" class="description"></textarea>\n </fieldset>\n <!-- include lightbox-attachments-->\n <button type="submit" title="{{\'COMMON.CREATE\' | translate}}" translate="COMMON.CREATE" class="button-green submit-button"></button>\n </form>\n </div>\n <div tg-lb-create-bulk-issues class="lightbox lightbox-generic-bulk">\n <tg-lightbox-close></tg-lightbox-close>\n <form>\n <h2 translate="COMMON.NEW_BULK" class="title"></h2>\n <fieldset>\n <textarea cols="200" wrap="off" ng-model="new.bulk" data-required="true" data-linewidth="200" ng-attr-placeholder="{{\'COMMON.ONE_ITEM_LINE\' | translate}}"></textarea>\n </fieldset>\n <button type="submit" title="{{\'COMMON.SAVE\' | translate}}" translate="COMMON.SAVE" class="button-green submit-button"></button>\n </form>\n </div>\n</div>'),t.put("issue/promote-issue-to-us-button.html",'<a href="" tg-check-permission="add_us" title="{{ \'ISSUES.ACTION_PROMOTE_TO_US\' | translate }}" class="promote-button button-gray is-editable">\n <tg-svg svg-icon="icon-promote"></tg-svg></a>'),t.put("kanban/kanban.html",'<!DOCTYPE html>\n<div tg-kanban ng-controller="KanbanController as ctrl" ng-init="section=\'kanban\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <section class="main kanban">\n <tg-filter open="{{ctrl.openFilter}}" q="ctrl.filterQ" filters="ctrl.filters" custom-filters="ctrl.customFilters" selected-filters="ctrl.selectedFilters" customFilters="ctl.customFilters" on-save-custom-filter="ctrl.saveCustomFilter(name)" on-add-filter="ctrl.addFilter(filter)" on-select-custom-filter="ctrl.selectCustomFilter(filter)" on-remove-custom-filter="ctrl.removeCustomFilter(filter)" on-remove-filter="ctrl.removeFilter(filter)" on-change-q="ctrl.changeQ(q)"></tg-filter>\n <div class="kanban-header">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <div class="taskboard-actions">\n <div tg-loading="ctrl.zoomLoading" class="zoom-loading"></div>\n <tg-kanban-board-zoom on-zoom-change="ctrl.setZoom(zoomLevel, zoom)"></tg-kanban-board-zoom>\n <button ng-click="ctrl.openFilter = !ctrl.openFilter" title="{{ctrl.selectedFilters.length}} {{\'COMMON.FILTERS.APPLIED_FILTERS_NUM\' | translate}}" class="button-filter "><span ng-if="ctrl.selectedFilters.length" class="filter-num">{{ctrl.selectedFilters.length}}</span>\n <tg-svg svg-icon="icon-filters"></tg-svg>\n </button>\n </div>\n </div>\n <div tg-kanban-squish-column tg-kanban-sortable ng-class="{\'zoom-0\': ctrl.zoomLevel == 0}" class="kanban-table">\n <div class="kanban-table-header">\n <div class="kanban-table-inner">\n <h2 ng-repeat="s in usStatusList track by s.id" ng-style="{\'border-top-color\':s.color}" tg-bo-title="s.name" ng-class="{vfold:folds[s.id]}" tg-class-permission="{\'readonly\': \'!modify_task\'}" class="task-colum-name">\n <div class="title">\n <div tg-bo-bind="s.name" class="name"></div>\n <div class="counter"><span ng-if="usByStatus.get(s.id.toString()).size">{{ usByStatus.get(s.id.toString()).size }}</span><span ng-if="!usByStatus.get(s.id.toString()).size" ng-class="{hidden:!s.wip_limit}">0</span><span tg-bo-bind="\' / \' + s.wip_limit" ng-if="s.wip_limit"></span></div>\n </div>\n <div class="options"><a href="" ng-click="foldStatus(s)" title="{{\'KANBAN.TITLE_ACTION_FOLD\' | translate}}" ng-class="{hidden:folds[s.id]}" class="option">\n <tg-svg svg-icon="icon-fold-column"></tg-svg></a><a href="" ng-click="foldStatus(s)" title="{{\'KANBAN.TITLE_ACTION_UNFOLD\' | translate}}" ng-class="{hidden:!folds[s.id]}" class="option hunfold">\n <tg-svg svg-icon="icon-unfold-column"></tg-svg></a><a href="" title="{{\'KANBAN.TITLE_ACTION_ADD_US\' | translate}}" ng-click="ctrl.addNewUs(\'standard\', s.id)" tg-check-permission="add_us" ng-hide="s.is_archived" class="option">\n <tg-svg svg-icon="icon-add" class="add-action"></tg-svg></a><a href="" title="{{\'KANBAN.TITLE_ACTION_ADD_BULK\' | translate}}" ng-click="ctrl.addNewUs(\'bulk\', s.id)" tg-check-permission="add_us" ng-hide="s.is_archived" class="option">\n <tg-svg svg-icon="icon-bulk" class="bulk-action"></tg-svg></a><a href="" ng-attr-title="{{title}}" ng-class="class" ng-if="s.is_archived" tg-kanban-archived-status-header="s" class="option ">\n <tg-svg svg-icon="{{class}}" class="bulk-action"></tg-svg></a></div>\n </h2>\n </div>\n </div>\n <div class="kanban-table-body">\n <div class="kanban-table-inner">\n <div ng-class="{vfold:folds[s.id]}" ng-repeat="s in ::usStatusList track by s.id" tg-kanban-wip-limit="s" tg-kanban-column-height-fixer tg-bind-scope class="kanban-uses-box task-column">\n <div ng-if="ctrl.showPlaceHolder(s.id)" ng-include="\'common/components/kanban-placeholder.html\'" class="card-placeholder"></div>\n <tg-card tg-repeat="us in usByStatus.get(s.id.toString()) track by us.getIn([\'model\', \'id\'])" ng-class="{\'kanban-task-maximized\': ctrl.isMaximized(s.id), \'kanban-task-minimized\': ctrl.isMinimized(s.id), \'kanban-task-selected\': ctrl.selectedUss[us.get(\'id\')], \'ui-multisortable-multiple\': ctrl.selectedUss[us.get(\'id\')]}" tg-class-permission="{\'readonly\': \'!modify_task\'}" tg-bind-scope on-toggle-fold="ctrl.toggleFold(id)" on-click-edit="ctrl.editUs(id)" on-click-delete="ctrl.deleteUs(id)" on-click-assigned-to="ctrl.changeUsAssignedUsers(id)" project="project" item="us" zoom="ctrl.zoom" zoom-level="ctrl.zoomLevel" archived="ctrl.isUsInArchivedHiddenStatus(us.get(\'id\'))" ng-click="($event.ctrlKey || $event.metaKey) &amp;&amp; ctrl.toggleSelectedUs(us.get(\'id\'))" class="card ng-animate-disabled"></tg-card>\n <div ng-if="s.is_archived" tg-kanban-archived-status-intro="s" class="kanban-column-intro"></div>\n </div>\n </div>\n </div>\n </div>\n </section>\n <div tg-lb-create-edit-userstory class="lightbox lightbox-generic-form lb-create-edit-userstory">\n <tg-lightbox-close></tg-lightbox-close>\n <form>\n <h2 translate="LIGHTBOX.CREATE_EDIT_US.TITLE" class="title"></h2>\n <fieldset>\n <input type="text" name="subject" ng-model-options="{ debounce: 200 }" ng-model="us.subject" placeholder="{{\'COMMON.FIELDS.SUBJECT\' | translate}}" data-required="true" data-maxlength="500">\n </fieldset>\n <fieldset class="ticket-estimation">\n <tg-lb-us-estimation ng-model="us"></tg-lb-us-estimation>\n </fieldset>\n <fieldset>\n <select name="status" ng-model="us.status" ng-options="s.id as s.name for s in usStatusList"></select>\n </fieldset>\n <fieldset>\n <tg-tag-line-common ng-if="project &amp;&amp; createEditUsOpen" project="project" tags="us.tags" permissions="add_us" on-add-tag="addTag(name, color)" on-delete-tag="deleteTag(tag)" class="tags-block"></tg-tag-line-common>\n </fieldset>\n <fieldset>\n <textarea name="description" ng-model="us.description" ng-model-options="{ debounce: 200 }" ng-attr-placeholder="{{\'LIGHTBOX.CREATE_EDIT_US.PLACEHOLDER_DESCRIPTION\' | translate}}" class="description"></textarea>\n </fieldset>\n <fieldset>\n <section>\n <tg-attachments-simple attachments="attachments" on-add="addAttachment(attachment)" on-delete="deleteAttachment(attachment)"></tg-attachments-simple>\n </section>\n </fieldset>\n <div class="settings">\n <fieldset class="team-requirement">\n <input type="checkbox" name="team_requirement" ng-model="us.team_requirement" id="team-requirement" ng-value="true">\n <label for="team-requirement" translate="US.FIELDS.TEAM_REQUIREMENT" class="requirement trans-button"></label>\n </fieldset>\n <fieldset class="client-requirement">\n <input type="checkbox" name="client_requirement" ng-model="us.client_requirement" id="client-requirement" ng-value="true">\n <label for="client-requirement" translate="US.FIELDS.CLIENT_REQUIREMENT" class="requirement trans-button"></label>\n </fieldset>\n <fieldset class="blocking-flag">\n <input type="checkbox" name="is_blocked" ng-model="us.is_blocked" id="blocked-us" ng-value="true">\n <label for="blocked-us" translate="COMMON.BLOCKED" class="blocked trans-button"></label>\n </fieldset>\n </div>\n <tg-blocking-message-input watch="us.is_blocked" ng-model="us.blocked_note"></tg-blocking-message-input>\n <button type="submit" title="{{\'COMMON.CREATE\' | translate}}" translate="COMMON.CREATE" class="button-green submit-button"></button>\n </form>\n </div>\n <div tg-lb-create-bulk-userstories class="lightbox lightbox-generic-bulk">\n <tg-lightbox-close></tg-lightbox-close>\n <form>\n <h2 translate="COMMON.NEW_BULK" class="title"></h2>\n <fieldset>\n <textarea cols="200" wrap="off" ng-model="new.bulk" data-required="true" data-linewidth="200" ng-attr-placeholder="{{\'COMMON.ONE_ITEM_LINE\' | translate}}"></textarea>\n </fieldset>\n <button type="submit" title="{{\'COMMON.SAVE\' | translate}}" translate="COMMON.SAVE" class="button-green submit-button"></button>\n </form>\n </div>\n <div tg-lb-assigned-users class="lightbox lightbox-select-user"></div>\n</div>'),t.put("search/lightbox-search.html",'\n<tg-lightbox-close></tg-lightbox-close>\n<form>\n <h2 translate="LIGHTBOX.SEARCH.TITLE" class="title"></h2>\n <fieldset>\n <input type="text" name="text" id="search-text" placeholder="{{\'LIGHTBOX.SEARCH.PLACEHOLDER_SEARCH\' | translate}}" data-required="true"/>\n </fieldset>\n <fieldset>\n <button type="submit" title="{{\' LIGHTBOX.SEARCH.TITLE\' | translate}}" translate="LIGHTBOX.SEARCH.TITLE" class="button-green submit-button"></button>\n </fieldset>\n</form>'),t.put("search/search.html",'<!DOCTYPE html>\n<div tg-search ng-controller="SearchController as ctrl" ng-init="section=\'search\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <sidebar class="menu-secondary sidebar">\n <section class="search-in">\n <header>\n <fieldset>\n <input type="text" placeholder="{{\'SEARCH.PLACEHOLDER_SEARCH\' | translate}}" ng-model="searchTerm">\n <div tg-loading="loading" class="icon-search-wrapper">\n <tg-svg svg-icon="icon-search" title="{{\'SEARCH.TITLE_ACTION_SEARCH\' | translate}}"></tg-svg>\n </div>\n </fieldset>\n </header>\n </section>\n </sidebar>\n <section class="main search-result">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <ul class="search-filter">\n <li data-name="epics" class="epics"><a href="#" title="{{ \'SEARCH.FILTER_EPICS\' | translate }}">\n <tg-svg svg-icon="icon-epics"></tg-svg><span class="num"></span><span translate="SEARCH.FILTER_EPICS" class="name"></span></a></li>\n <li data-name="userstories" class="userstories"><a href="#" title="{{ \'SEARCH.FILTER_USER_STORIES\' | translate }}" class="active">\n <tg-svg svg-icon="icon-bulk"></tg-svg><span class="num"></span><span translate="SEARCH.FILTER_USER_STORIES" class="name"></span></a></li>\n <li data-name="issues" class="issues"><a href="#" title="{{ \'SEARCH.FILTER_ISSUES\' | translate }}">\n <tg-svg svg-icon="icon-issues"></tg-svg><span class="num"></span><span translate="SEARCH.FILTER_ISSUES" class="name"></span></a></li>\n <li data-name="tasks" class="tasks"><a href="#" title="{{ \'SEARCH.FILTER_TASKS\' | translate }}">\n <tg-svg svg-icon="icon-bulk"></tg-svg><span class="num"></span><span translate="SEARCH.FILTER_TASKS" class="name"></span></a></li>\n <li data-name="wikipages" class="wikipages"><a href="#" title="{{ \'SEARCH.FILTER_WIKI\' | translate }}">\n <tg-svg svg-icon="icon-wiki"></tg-svg><span class="num"></span><span translate="SEARCH.FILTER_WIKI" class="name"></span></a></li>\n </ul>\n <section class="search-result-table"></section>\n <script type="text/ng-template" id="search-issues">\n <div ng-class="{\'hidden\': !issues.length}" tg-bind-scope class="search-result-table-container">\n <div class="search-result-table-header">\n <div class="row title">\n <div translate="COMMON.FIELDS.REF" class="ref"></div>\n <div translate="SEARCH.FILTER_ISSUES" class="user-stories"></div>\n <div translate="COMMON.FIELDS.STATUS" class="status"></div>\n <div translate="COMMON.FIELDS.ASSIGNED_TO" class="assigned-to"></div>\n </div>\n </div>\n <div class="search-result-table-body">\n <div ng-repeat="issue in issues track by issue.id" class="row table-main">\n <div tg-bo-ref="issue.ref" class="ref"></div>\n <div class="user-stories">\n <div class="user-story-name"><a href="" tg-nav="project-issues-detail:project=project.slug,ref=issue.ref" tg-bind-html="issue.subject | emojify"></a></div>\n </div>\n <div tg-listitem-issue-status="issue" class="status"></div>\n <div tg-listitem-assignedto="issue" class="assigned-to"></div>\n </div>\n </div>\n </div>\n <div ng-class="{\'hidden\': issues.length}" class="empty-large"><img src="/v-1525361023952/images/empty/empty_tex.png" alt="{{ \'SEARCH.EMPTY_TITLE\' | translate }}">\n <p class="title">{{ \'SEARCH.EMPTY_TITLE\' | translate }}</p>\n <p>{{ \'SEARCH.EMPTY_DESCRIPTION\' | translate }}</p>\n </div>\n </script>\n <script type="text/ng-template" id="search-epics">\n <div ng-class="{\'hidden\': !epics.length}" tg-bind-scope class="search-result-table-container">\n <div class="search-result-table-header">\n <div class="row title">\n <div translate="COMMON.FIELDS.REF" class="ref"></div>\n <div translate="SEARCH.FILTER_EPICS" class="user-stories"></div>\n <div translate="COMMON.FIELDS.STATUS" class="status"></div>\n </div>\n </div>\n <div class="search-result-table-body">\n <div ng-repeat="epic in epics track by epic.id" class="row table-main">\n <div tg-bo-ref="epic.ref" class="ref"></div>\n <div class="user-stories">\n <div class="user-story-name"><a href="" tg-nav="project-epics-detail:project=project.slug,ref=epic.ref" tg-bind-html="epic.subject | emojify"></a></div>\n </div>\n <div tg-listitem-epic-status="epic" class="status"></div>\n </div>\n </div>\n </div>\n <div ng-class="{\'hidden\': epics.length}" class="empty-search-results"><img src="/v-1525361023952/images/empty/empty_tex.png" alt="{{ \'SEARCH.EMPTY_TITLE\' | translate }}">\n <p class="title">{{ \'SEARCH.EMPTY_TITLE\' | translate }}</p>\n <p>{{ \'SEARCH.EMPTY_DESCRIPTION\' | translate }}</p>\n </div>\n </script>\n <script type="text/ng-template" id="search-userstories">\n <div ng-class="{\'hidden\': !userstories.length}" tg-bind-scope class="search-result-table-container">\n <div class="search-result-table-header">\n <div class="row title">\n <div translate="COMMON.FIELDS.REF" class="ref"></div>\n <div translate="SEARCH.FILTER_USER_STORIES" class="user-stories"></div>\n <div translate="COMMON.FIELDS.SPRINT" class="sprint"></div>\n <div translate="COMMON.FIELDS.STATUS" class="status"></div>\n <div translate="COMMON.FIELDS.POINTS" class="points"></div>\n </div>\n </div>\n <div class="search-result-table-body">\n <div ng-repeat="us in userstories track by us.id" class="row table-main">\n <div tg-bo-ref="us.ref" class="ref"></div>\n <div class="user-stories">\n <div class="user-story-name"><a href="" tg-nav="project-userstories-detail:project=project.slug,ref=us.ref" tg-bind-html="us.subject | emojify"></a></div>\n </div>\n <div class="sprint">\n <div class="sprint-link"><a href="" tg-nav="project-taskboard:project=project.slug,sprint=us.milestone_slug" tg-bo-bind="us.milestone_name"></a></div>\n </div>\n <div tg-listitem-us-status="us" class="status"></div>\n <div tg-bo-bind="us.total_points" class="points"></div>\n </div>\n </div>\n </div>\n <div ng-class="{\'hidden\': userstories.length}" class="empty-large"><img src="/v-1525361023952/images/empty/empty_tex.png" alt="{{ \'SEARCH.EMPTY_TITLE\' | translate }}">\n <p class="title">{{ \'SEARCH.EMPTY_TITLE\' | translate }}</p>\n <p>{{ \'SEARCH.EMPTY_DESCRIPTION\' | translate }}</p>\n </div>\n </script>\n <script type="text/ng-template" id="search-tasks">\n <div ng-class="{\'hidden\': !tasks.length}" tg-bind-scope class="search-result-table-container">\n <div class="search-result-table-header">\n <div class="row title">\n <div translate="COMMON.FIELDS.REF" class="ref"></div>\n <div translate="SEARCH.FILTER_TASKS" class="user-stories"></div>\n <div translate="COMMON.FIELDS.STATUS" class="status"></div>\n <div translate="COMMON.FIELDS.ASSIGNED_TO" class="assigned-to"></div>\n </div>\n </div>\n <div class="search-result-table-body">\n <div ng-repeat="task in tasks track by task.id" class="row table-main">\n <div tg-bo-ref="task.ref" class="ref"></div>\n <div class="user-stories">\n <div class="user-story-name"><a href="" tg-nav="project-tasks-detail:project=project.slug,ref=task.ref" tg-bind-html="task.subject | emojify"></a></div>\n </div>\n <div tg-listitem-task-status="task" class="status"></div>\n <div tg-listitem-assignedto="task" class="assigned-to"></div>\n </div>\n </div>\n </div>\n <div ng-class="{\'hidden\': tasks.length}" class="empty-large"><img src="/v-1525361023952/images/empty/empty_tex.png" alt="{{ \'SEARCH.EMPTY_TITLE\' | translate }}">\n <p class="title">{{ \'SEARCH.EMPTY_TITLE\' | translate }}</p>\n <p>{{ \'SEARCH.EMPTY_DESCRIPTION\' | translate }}</p>\n </div>\n </script>\n <script type="text/ng-template" id="search-wikipages">\n <div ng-class="{\'hidden\': !wikipages.length}" tg-bind-scope class="search-result-table-container">\n <div class="search-result-table-header">\n <div class="row title">\n <div translate="SEARCH.FILTER_WIKI" class="user-stories"></div>\n </div>\n </div>\n <div class="search-result-table-body">\n <div ng-repeat="wikipage in wikipages track by wikipage.id" class="row table-main">\n <div class="user-stories">\n <div class="user-story-name"><a href="" tg-nav="project-wiki-page:project=project.slug,slug=wikipage.slug" tg-bo-bind="wikipage.slug"></a></div>\n </div>\n </div>\n </div>\n </div>\n <div ng-class="{\'hidden\': wikipages.length}" class="empty-large"><img src="/v-1525361023952/images/empty/empty_tex.png" alt="{{ \'SEARCH.EMPTY_TITLE\' | translate }}">\n <p class="title">{{ \'SEARCH.EMPTY_TITLE\' | translate }}</p>\n <p>{{ \'SEARCH.EMPTY_DESCRIPTION\' | translate }}</p>\n </div>\n </script>\n </section>\n</div>'),
t.put("task/related-task-create-form.html",'\n<div ng-if="openNewRelatedTask" class="row single-related-task related-task-create-form active">\n <div class="task-name">\n <input type="text" tg-autofocus="tg-autofocus" placeholder="{{\'TASK.PLACEHOLDER_SUBJECT\' | translate}}"/>\n </div>\n <div class="task-settings"><a ng-click="save()" title="{{\'COMMON.SAVE\' | translate}}" class="save-task">\n <tg-svg svg-icon="icon-save"></tg-svg></a></div>\n <div tg-related-task-status="newTask" ng-model="newTask" not-auto-save="true" class="status"><a href="" title="{{\'TASK.TITLE_SELECT_STATUS\' | translate}}" class="task-status"><span class="task-status-bind"></span>\n <tg-svg svg-icon="icon-arrow-down"></tg-svg></a></div>\n <div tg-related-task-assigned-to-inline-edition="newTask" not-auto-save="true" class="assigned-to">\n <div title="{{\'COMMON.FIELDS.ASSIGNED_TO\' | translate}}" class="task-assignedto">\n <figure class="avatar"></figure>\n <tg-svg svg-icon="icon-arrow-down"></tg-svg>\n </div>\n </div>\n</div>'),t.put("task/related-task-row-edit.html",'\n<div class="task-name">\n <input type="text" placeholder="{{\'TASK.PLACEHOLDER_SUBJECT\' | translate}}"/>\n</div>\n<div class="task-settings"><a href="" title="{{\'COMMON.SAVE\' | translate}}" class="save-task">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="" title="{{\'COMMON.CANCEL\' | translate}}" class="cancel-edit">\n <tg-svg svg-icon="icon-cancel"></tg-svg></a></div>\n<div tg-related-task-status="task" ng-model="task" class="status"><a href="" title="{{\'TASK.TITLE_SELECT_STATUS\' | translate}}" class="task-status"><span class="task-status-bind"></span>\n <tg-svg svg-icon="icon-arrow-down"></tg-svg></a></div>\n<div tg-related-task-assigned-to-inline-edition="task" class="assigned-to">\n <div title="{{\'COMMON.FIELDS.ASSIGNED_TO\' | translate}}" class="task-assignedto">\n <figure class="avatar"></figure>\n <tg-svg svg-icon="icon-arrow-down"></tg-svg>\n </div>\n</div>'),t.put("task/related-task-row.html",'\n<div class="task-name"><a tg-nav="project-tasks-detail:project=project.slug,ref=task.ref" class="clickable"><span>#<%- task.ref %></span><span ng-non-bindable="ng-non-bindable"><%= emojify(task.subject) %></span></a>\n <tg-due-date due-date="task.due_date" due-date-status="task.due_date_status" ng-if="task.due_date"></tg-due-date>\n</div>\n<div class="task-settings"><% if(perms.modify_task) { %><a href="" title="{{\'COMMON.EDIT\' | translate}}" class="edit-task">\n <tg-svg svg-icon="icon-edit"></tg-svg></a><% } %>\n <% if(perms.delete_task) { %><a title="{{\'COMMON.DELETE\' | translate}}" href="" class="delete-task">\n <tg-svg svg-icon="icon-trash"></tg-svg></a><% } %>\n</div>\n<div tg-related-task-status="task" ng-model="task" class="status"><a href="" title="{{\'TASK.TITLE_SELECT_STATUS\' | translate}}" ng-style="{\'color\': task.status_extra_info.color}" class="task-status"><span class="task-status-bind"></span><% if(perms.modify_task) { %>\n <tg-svg svg-icon="icon-arrow-down" ng-style="{\'fill\': task.status_extra_info.color}"></tg-svg><% } %></a></div>\n<div tg-related-task-assigned-to-inline-edition="task" class="assigned-to">\n <div title="{{\'COMMON.FIELDS.ASSIGNED_TO\' | translate}}" class="task-assignedto &lt;% if(perms.modify_task) { %&gt;editable&lt;% } %&gt;">\n <figure class="avatar"></figure><% if(perms.modify_task) { %>\n <tg-svg svg-icon="icon-arrow-down"></tg-svg><% } %>\n </div>\n</div>'),t.put("task/task-detail.html",'<!DOCTYPE html>\n<div ng-controller="TaskDetailController as ctrl" ng-init="section=\'backlog-kanban\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <div class="main us-detail">\n <div class="us-detail-header header-with-actions">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <div class="action-buttons"><a href="" title="{{\'TASK.TITLE_LINK_TASKBOARD\' | translate}}" tg-check-permission="view_milestones" tg-nav="project-taskboard:project=project.slug,sprint=sprint.slug" ng-if="sprint &amp;&amp; project.is_backlog_activated" translate="TASK.LINK_TASKBOARD" class="button-gray"></a></div>\n </div>\n <section class="us-story-main-data">\n <header>\n <tg-vote-button item="task" on-upvote="ctrl.onUpvote" on-downvote="ctrl.onDownvote" class="upvote-btn"></tg-vote-button>\n <tg-detail-header item="task" project="project" required-perm="modify_task" ng-class="{blocked: task.is_blocked}" ng-if="project &amp;&amp; task" type="text" class="detail-header-container"></tg-detail-header>\n </header>\n <div class="subheader">\n <tg-tag-line ng-if="task &amp;&amp; project" project="project" item="task" permissions="modify_task" class="tags-block"></tg-tag-line>\n <tg-created-by-display ng-model="task" class="ticket-created-by"></tg-created-by-display>\n </div>\n </section>\n <section class="duty-content">\n <tg-item-wysiwyg type="task" model="task" required-perm="modify_task"></tg-item-wysiwyg>\n </section>\n <!-- Custom Fields-->\n <tg-custom-attributes-values ng-model="task" type="task" project="project" required-edition-perm="modify_task"></tg-custom-attributes-values>\n <tg-attachments-full obj-id="task.id" type="task" project-id="projectId" edit-permission="modify_task"></tg-attachments-full>\n <tg-history-section ng-if="task" type="task" name="task" id="task.id" project-id="projectId"></tg-history-section>\n </div>\n <sidebar class="menu-secondary sidebar ticket-data">\n <div class="ticket-header"><span tg-task-status-display ng-model="task" class="ticket-title"></span><span tg-task-status-button ng-model="task" class="detail-status"></span></div>\n <section tg-assigned-to ng-model="task" required-perm="modify_task" class="ticket-assigned-to"></section>\n <section class="ticket-watch-buttons">\n <div tg-watch-button item="task" data-environment="ticket" on-watch="ctrl.onWatch" on-unwatch="ctrl.onUnwatch" class="ticket-watch"></div>\n <div tg-watchers ng-model="task" required-perm="modify_us" class="ticket-watchers"></div>\n </section>\n <section class="ticket-detail-settings">\n <tg-due-date tg-check-permission="modify_task" due-date="task.due_date" due-date-status="task.due_date_status" is-closed="task.is_closed" item="task" format="button"></tg-due-date>\n <tg-task-is-iocaine-button ng-model="task"></tg-task-is-iocaine-button>\n <tg-block-button tg-check-permission="modify_task" ng-model="task"></tg-block-button>\n <tg-delete-button tg-check-permission="delete_task" on-delete-title="{{\'TASK.TITLE_DELETE_ACTION\' | translate}}" on-delete-go-to-url="onDeleteGoToUrl" ng-model="task"></tg-delete-button>\n </section>\n </sidebar>\n <div tg-lb-block ng-model="task" title="TASK.LIGHTBOX_TITLE_BLOKING_TASK" class="lightbox lightbox-block"></div>\n <div tg-lb-assignedto class="lightbox lightbox-select-user"></div>\n <div tg-lb-watchers class="lightbox lightbox-select-user"></div>\n</div>'),t.put("taskboard/taskboard-user.html",'\n<figure class="avatar avatar-assigned-to"><a href="#" title="{{\'TASKBOARD.TITLE_ACTION_ASSIGN\' | translate}}" ng-class="{\'not-clickable\': !clickable}"><img ng-style="{\'background-color\': avatar.bg}" ng-src="{{avatar.url}}"/></a></figure>\n<figure class="avatar avatar-task-link"><a tg-nav="project-tasks-detail:project=project.slug,ref=task.ref" ng-attr-title="{{task.subject}}"><img ng-style="{\'background-color\': avatar.bg}" ng-src="{{avatar.url}}"/></a></figure>'),t.put("taskboard/taskboard.html",'<!DOCTYPE html>\n<div tg-taskboard ng-controller="TaskboardController as ctrl" ng-init="section=\'backlog\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <section class="main taskboard">\n <tg-filter open="{{ctrl.openFilter}}" q="ctrl.filterQ" filters="ctrl.filters" custom-filters="ctrl.customFilters" selected-filters="ctrl.selectedFilters" customFilters="ctl.customFilters" on-save-custom-filter="ctrl.saveCustomFilter(name)" on-add-filter="ctrl.addFilter(filter)" on-select-custom-filter="ctrl.selectCustomFilter(filter)" on-remove-custom-filter="ctrl.removeCustomFilter(filter)" on-remove-filter="ctrl.removeFilter(filter)" on-change-q="ctrl.changeQ(q)"></tg-filter>\n <div class="taskboard-header">\n <h1><span tg-bo-bind="project.name" class="project-name-short"></span><span tg-bo-bind="sprint.name" class="green"></span><span tg-date-range="sprint.estimated_start,sprint.estimated_finish" class="date"></span></h1>\n <div class="taskboard-actions">\n <div tg-loading="ctrl.zoomLoading" class="zoom-loading"></div>\n <tg-taskboard-zoom on-zoom-change="ctrl.setZoom(zoomLevel, zoom)"></tg-taskboard-zoom>\n <button ng-click="ctrl.openFilter = !ctrl.openFilter" class="button-filter "><span ng-if="ctrl.selectedFilters.length" class="filter-num">{{ctrl.selectedFilters.length}}</span>\n <tg-svg svg-icon="icon-filters"></tg-svg>\n </button>\n </div>\n </div>\n <div class="taskboard-inner">\n <div class="summary large-summary">\n <div class="large-summary-wrapper">\n <div class="summary-progress-wrapper">\n <div tg-progress-bar="stats.completedPercentage" class="summary-progress-bar"></div>\n <div class="data"><span ng-bind="stats.completedPercentage + \'%\'" class="number"></span></div>\n </div>\n <div ng-class="{\'show-role-points\': showRolePoints}" class="stats-wrapper">\n <div class="main-summary-stats"><span ng-click="showRolePoints = true" class="summary-stats toggle-points-per-role">\n <tg-svg svg-icon="icon-arrow-down"></tg-svg><span ng-bind="stats.totalPointsSum|default:\'--\'" class="number"></span><span translate="BACKLOG.SPRINT_SUMMARY.TOTAL_POINTS" class="description"></span></span>\n <div class="summary-stats summary-completed-points"><span ng-bind="stats.completedPointsSum|default:\'--\'" class="number"></span><span translate="BACKLOG.SPRINT_SUMMARY.COMPLETED_POINTS" class="description"></span></div>\n <div class="summary-stats summary-open-tasks">\n <tg-svg svg-icon="icon-bulk"></tg-svg><span ng-bind="stats.openTasks|default:\'--\'" class="number"></span><span translate="BACKLOG.SPRINT_SUMMARY.OPEN_TASKS" class="description"></span>\n </div>\n <div class="summary-stats summary-closed-tasks"><span ng-bind="stats.completed_tasks|default:\'--\'" class="number"></span><span translate="BACKLOG.SPRINT_SUMMARY.CLOSED_TASKS" class="description"></span></div>\n <div title="{{\'COMMON.IOCAINE_TEXT\' | translate}}" class="summary-stats summary-iocaine">\n <tg-svg svg-icon="icon-iocaine"></tg-svg><span ng-bind="stats.iocaine_doses|default:\'--\'" class="number"></span><span translate="BACKLOG.SPRINT_SUMMARY.IOCAINE_DOSES" class="description"></span>\n </div>\n </div>\n <div ng-click="showRolePoints = false" class="points-per-role-stats toggle-points-per-role"><span class="points-per-role-stats-title">\n <tg-svg svg-icon="icon-arrow-up"></tg-svg><span translate="BACKLOG.SPRINT_SUMMARY.POINTS_PER_ROLE"></span></span>\n <div class="points-per-role-stats-content">\n <div ng-repeat="rolePoint in pointsByRole" class="summary-stats"><span class="number">{{rolePoint.points}}</span><span class="role">{{rolePoint.name}}</span></div>\n </div>\n </div>\n </div>\n </div>\n <div title="{{\'BACKLOG.SPRINT_SUMMARY.SHOW_STATISTICS_TITLE\' | translate}}" class="stats toggle-analytics-visibility">\n <tg-svg svg-icon="icon-graph"></tg-svg>\n </div>\n </div>\n <div class="graphics-container">\n <div tg-sprint-graph class="burndown">\n <section class="burndown-container">\n <div class="burndown"></div>\n </section>\n </div>\n </div>\n <div tg-taskboard-squish-column tg-taskboard-sortable ng-class="{\'zoom-0\': ctrl.zoomLevel == 0}" class="taskboard-table">\n <div class="taskboard-table-header">\n <div class="taskboard-table-inner">\n <h2 translate="TASKBOARD.TABLE.COLUMN" class="task-colum-name"></h2>\n <h2 ng-repeat="s in ::taskStatusList track by s.id" ng-style="{\'border-top-color\':s.color}" ng-class="{\'column-fold\':statusesFolded[s.id]}" tg-bo-title="s.name" class="task-colum-name squish-status-{{s.id}}"><span tg-bo-bind="s.name"></span>\n <tg-svg svg-icon="icon-fold-row" ng-click="foldStatus(s)" title="{{\'TASKBOARD.TABLE.TITLE_ACTION_FOLD\' | translate}}" ng-class="{hidden:statusesFolded[s.id]}" class="hfold fold-action"></tg-svg>\n <tg-svg svg-icon="icon-unfold-row" ng-click="foldStatus(s)" title="{{\'TASKBOARD.TABLE.TITLE_ACTION_UNFOLD\' | translate}}" ng-class="{hidden:!statusesFolded[s.id]}" class="hunfold fold-action"></tg-svg>\n </h2>\n </div>\n </div>\n <div tg-taskboard-table-height-fixer class="taskboard-table-body">\n <div class="taskboard-table-inner">\n <div ng-repeat="us in userstories track by us.id" ng-class="{blocked: us.is_blocked, \'row-fold\':usFolded[us.id]}" class="task-row">\n <div tg-bo-title="us.blocked_note" class="taskboard-userstory-box task-column">\n <tg-svg svg-icon="icon-fold-row" ng-click="foldUs(us)" title="{{\'TASKBOARD.TABLE.TITLE_ACTION_FOLD_ROW\' | translate}}" ng-class="{hidden:usFolded[us.id]}" class="vfold fold-action"></tg-svg>\n <tg-svg svg-icon="icon-unfold-row" ng-click="foldUs(us)" title="{{\'TASKBOARD.TABLE.TITLE_ACTION_UNFOLD_ROW\' | translate}}" ng-class="{hidden:!usFolded[us.id]}" class="vunfold fold-action"></tg-svg>\n <h3 class="us-title"><a href="" tg-nav="project-userstories-detail:project=project.slug,ref=us.ref" tg-nav-get-params="{&quot;milestone&quot;: {{us.milestone}}}" tg-bo-title="\'#\' + us.ref + \' \' + us.subject"><span tg-bo-ref="us.ref" class="us-ref"></span><span ng-bind-html="us.subject | emojify"></span>\n <tg-belong-to-epics format="pill" ng-if="us.epics" epics="us.epics"></tg-belong-to-epics></a></h3>\n <p class="points-value"><span ng-bind="us.total_points"></span><span translate="TASKBOARD.TABLE.FIELD_POINTS"></span></p>\n <tg-svg tg-check-permission="add_task" title="{{\'TASKBOARD.TITLE_ACTION_ADD\' | translate}}" ng-click="ctrl.addNewTask(\'standard\', us)" svg-icon="icon-add" class="add-action"></tg-svg>\n <tg-svg title="{{\'TASKBOARD.TITLE_ACTION_ADD_BULK\' | translate}}" ng-click="ctrl.addNewTask(\'bulk\', us)" tg-check-permission="add_task" svg-icon="icon-bulk" class="bulk-action"></tg-svg>\n </div>\n <div ng-repeat="st in ::taskStatusList track by st.id" ng-class="{\'column-fold\':statusesFolded[st.id]}" tg-bind-scope class="taskboard-tasks-box task-column squish-status-{{st.id}}">\n <div ng-if="ctrl.showPlaceHolder(st.id, us.id)" ng-include="\'common/components/taskboard-placeholder.html\'" class="card-placeholder"></div>\n <tg-card tg-repeat="task in usTasks.getIn([us.id.toString(), st.id.toString()]) track by task.get(\'id\')" ng-class="{\'kanban-task-maximized\': ctrl.isMaximized(s.id), \'kanban-task-minimized\': ctrl.isMinimized(s.id)}" tg-class-permission="{\'readonly\': \'!modify_task\'}" tg-bind-scope on-toggle-fold="ctrl.toggleFold(id)" on-click-edit="ctrl.editTask(id)" on-click-delete="ctrl.deleteTask(id)" on-click-assigned-to="ctrl.changeTaskAssignedTo(id)" project="project" item="task" zoom="ctrl.zoom" zoom-level="ctrl.zoomLevel" type="task" class="card ng-animate-disabled"></tg-card>\n </div>\n </div>\n <div ng-init="us = null" ng-class="{\'row-fold\':usFolded[null]}" class="task-row">\n <div class="taskboard-userstory-box task-column"><a href="" title="{{\'TASKBOARD.TABLE.TITLE_ACTION_FOLD_ROW\' | translate}}" ng-click="foldUs()" ng-class="{hidden:usFolded[null]}" class="vfold">\n <tg-svg svg-icon="icon-fold-row" class="fold-action"></tg-svg></a><a href="" title="{{\'TASKBOARD.TABLE.TITLE_ACTION_UNFOLD_ROW\' | translate}}" ng-click="foldUs()" ng-class="{hidden:!usFolded[null]}" class="vunfold">\n <tg-svg svg-icon="icon-unfold-row" class="fold-action"></tg-svg></a>\n <h3 class="us-title"><span translate="TASKBOARD.TABLE.ROW_UNASSIGED_TASKS_TITLE"></span></h3>\n <tg-svg tg-check-permission="add_task" title="{{\'TASKBOARD.TITLE_ACTION_ADD\' | translate}}" ng-click="ctrl.addNewTask(\'standard\', us)" svg-icon="icon-add" class="add-action"></tg-svg>\n <tg-svg title="{{\'TASKBOARD.TITLE_ACTION_ADD_BULK\' | translate}}" ng-click="ctrl.addNewTask(\'bulk\', us)" tg-check-permission="add_task" svg-icon="icon-bulk" class="bulk-action"></tg-svg>\n </div>\n <div ng-repeat="st in ::taskStatusList track by st.id" ng-class="{\'column-fold\':statusesFolded[st.id]}" tg-bind-scope class="taskboard-tasks-box task-column squish-status-{{st.id}}">\n <div ng-if="ctrl.showPlaceHolder(st.id, us.id)" ng-include="\'common/components/taskboard-placeholder.html\'" class="card-placeholder"></div>\n <tg-card tg-bind-scope tg-repeat="task in usTasks.getIn([\'null\', st.id.toString()]) track by task.get(\'id\')" ng-class="{\'kanban-task-maximized\': ctrl.isMaximized(s.id), \'kanban-task-minimized\': ctrl.isMinimized(s.id)}" tg-class-permission="{\'readonly\': \'!modify_task\'}" on-toggle-fold="ctrl.toggleFold(id)" on-click-edit="ctrl.editTask(id)" on-click-delete="ctrl.deleteTask(id)" on-click-assigned-to="ctrl.changeTaskAssignedTo(id)" project="project" item="task" zoom="ctrl.zoom" zoom-level="ctrl.zoomLevel" type="task" class="card ng-animate-disabled"></tg-card>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n <div tg-lb-create-edit-task class="lightbox lightbox-generic-form">\n <tg-lightbox-close></tg-lightbox-close>\n <form>\n <h2 translate="LIGHTBOX.CREATE_EDIT_TASK.TITLE" class="title"></h2>\n <fieldset>\n <input type="text" ng-model="task.subject" ng-attr-placeholder="{{\'LIGHTBOX.CREATE_EDIT_TASK.PLACEHOLDER_SUBJECT\' | translate}}" ng-model-options="{ debounce: 200 }" data-required="true" data-maxlength="500">\n </fieldset>\n <fieldset>\n <select ng-model="task.status" ng-options="s.id as s.name for s in taskStatusList" placeholder="{{\'LIGHTBOX.CREATE_EDIT_TASK.PLACEHOLDER_STATUS\' | translate}}"></select>\n </fieldset>\n <fieldset>\n <select ng-model="task.assigned_to" ng-options="s.id as s.full_name_display for s in users" placeholder="{{\'Assigned to\'}}">\n <option value="" translate="LIGHTBOX.CREATE_EDIT_TASK.OPTION_UNASSIGNED"></option>\n </select>\n </fieldset>\n <fieldset>\n <tg-tag-line-common ng-if="project &amp;&amp; createEditTaskOpen" project="project" tags="task.tags" permissions="add_task" on-add-tag="addTag(name, color)" on-delete-tag="deleteTag(tag)" class="tags-block"></tg-tag-line-common>\n </fieldset>\n <fieldset>\n <section>\n <tg-attachments-simple attachments="attachments" on-add="addAttachment(attachment)" on-delete="deleteAttachment(attachment)"></tg-attachments-simple>\n </section>\n </fieldset>\n <fieldset>\n <textarea ng-attr-placeholder="{{\'LIGHTBOX.CREATE_EDIT_TASK.PLACEHOLDER_SHORT_DESCRIPTION\' | translate}}" ng-model="task.description" ng-model-options="{ debounce: 200 }" class="description"></textarea>\n </fieldset>\n <div class="settings">\n <fieldset title="{{\'COMMON.IOCAINE_TEXT\' | translate}}" class="iocaine-flag">\n <input type="checkbox" ng-model="task.is_iocaine" name="iocaine-task" id="iocaine-task" ng-value="true">\n <label for="iocaine-task" class="iocaine trans-button">\n <tg-svg svg-icon="icon-iocaine"></tg-svg><span>Iocaine</span>\n </label>\n </fieldset>\n <fieldset class="blocking-flag">\n <input type="checkbox" ng-model="task.is_blocked" name="blocked-task" id="blocked-task" ng-value="true">\n <label for="blocked-task" translate="COMMON.BLOCKED" class="blocked trans-button"></label>\n </fieldset>\n </div>\n <tg-blocking-message-input watch="task.is_blocked" ng-model="task.blocked_note"></tg-blocking-message-input>\n <button type="submit" title="{{\'COMMON.CREATE\' | translate}}" translate="COMMON.CREATE" class="button-green submit-button"></button>\n </form>\n </div>\n <div tg-lb-create-bulk-tasks class="lightbox lightbox-generic-bulk lightbox-task-bulk">\n <tg-lightbox-close></tg-lightbox-close>\n <form>\n <h2 translate="COMMON.NEW_BULK" class="title"></h2>\n <fieldset>\n <textarea cols="200" wrap="off" ng-model="form.data" data-required="true" data-linewidth="200" ng-attr-placeholder="{{\'COMMON.ONE_ITEM_LINE\' | translate}}"></textarea>\n </fieldset>\n <button type="submit" title="{{\'COMMON.SAVE\' | translate}}" translate="COMMON.SAVE" class="button-green submit-button"></button>\n </form>\n </div>\n <div tg-lb-assignedto class="lightbox lightbox-select-user">\n <tg-lightbox-close></tg-lightbox-close>\n <div class="form">\n <h2 translate="LIGHTBOX.ASSIGNED_TO.SELECT" class="title"></h2>\n <fieldset>\n <input type="text" data-maxlength="500" placeholder="{{\'LIGHTBOX.ASSIGNED_TO.SEARCH\' | translate}}" ng-model="usersSearch">\n </fieldset>\n <div class="assigned-to-list"></div>\n </div>\n </div>\n</div>'),t.put("us/us-client-requirement-button.html",'\n<label for="client-requirement" title="{{ \'COMMON.CLIENT_REQUIREMENT\' | translate }}" class="button-gray client-requirement <% if(canEdit){ %>is-editable<% }; %> <% if(isRequired){ %>active<% }; %>">\n <tg-svg svg-icon="icon-client-requirement"></tg-svg>\n</label>\n<input type="checkbox" id="client-requirement" name="client-requirement"/>'),t.put("us/us-detail.html",'<!DOCTYPE html>\n<div ng-controller="UserStoryDetailController as ctrl" ng-init="section=\'backlog-kanban\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <div class="main us-detail">\n <div class="us-detail-header header-with-actions">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <div class="action-buttons"><a href="" tg-check-permission="view_milestones" tg-nav="project-taskboard:project=project.slug,sprint=sprint.slug" ng-if="sprint &amp;&amp; project.is_backlog_activated" title="{{\'US.TITLE_LINK_TASKBOARD\' | translate}}" translate="US.LINK_TASKBOARD" class="button-gray"></a></div>\n </div>\n <section class="us-story-main-data">\n <header>\n <tg-vote-button item="us" on-upvote="ctrl.onUpvote" on-downvote="ctrl.onDownvote" class="upvote-btn"></tg-vote-button>\n <tg-detail-header item="us" project="project" required-perm="modify_us" ng-class="{blocked: us.is_blocked}" ng-if="project &amp;&amp; us" type="text" class="detail-header-container"></tg-detail-header>\n </header>\n <div class="subheader">\n <tg-tag-line ng-if="us &amp;&amp; project" project="project" item="us" permissions="modify_us" class="tags-block"></tg-tag-line>\n <tg-created-by-display ng-model="us" class="ticket-created-by"></tg-created-by-display>\n </div>\n </section>\n <section class="duty-content">\n <tg-item-wysiwyg type="us" model="us" required-perm="modify_us"></tg-item-wysiwyg>\n </section>\n <!-- Custom Fields-->\n <tg-custom-attributes-values ng-model="us" type="userstory" project="project" required-edition-perm="modify_us"></tg-custom-attributes-values>\n <section tg-related-tasks ng-show="showRelatedTasks()" class="related-tasks">\n <div class="related-tasks-header"><span translate="COMMON.RELATED_TASKS" class="related-tasks-title"></span>\n <div tg-related-task-create-button></div>\n </div>\n <div class="related-tasks-body">\n <div ng-repeat="task in tasks" ng-class="{closed: task.is_closed, blocked: task.is_blocked, iocaine: task.is_iocaine}" tg-related-task-row ng-model="task" class="row single-related-task js-related-task"></div>\n <div tg-related-task-create-form></div>\n </div>\n </section>\n <tg-attachments-full obj-id="us.id" type="us" project-id="projectId" edit-permission="modify_us"></tg-attachments-full>\n <tg-history-section ng-if="us" type="us" name="us" id="us.id" project-id="projectId"></tg-history-section>\n </div>\n <sidebar class="menu-secondary sidebar ticket-data">\n <section class="ticket-header"><span tg-us-status-display ng-model="us" class="ticket-title"></span><span tg-us-status-button ng-model="us" class="detail-status"></span>\n <tg-tribe-linked ng-if="tribeEnabled &amp;&amp; us.tribe_gig" gig-title="us.tribe_gig.title" gig-id="us.tribe_gig.id"></tg-tribe-linked>\n </section>\n <tg-us-estimation ng-model="us" class="ticket-estimation"></tg-us-estimation>\n <section tg-assigned-users ng-model="us" required-perm="modify_us" class="ticket-assigned-users"></section>\n <section class="ticket-watch-buttons">\n <div tg-watch-button item="us" data-environment="ticket" on-watch="ctrl.onWatch" on-unwatch="ctrl.onUnwatch" class="ticket-watch"></div>\n <div tg-watchers ng-model="us" required-perm="modify_us" class="ticket-watchers"></div>\n </section>\n <section ng-if="tribeEnabled &amp;&amp; !us.tribe_gig" class="ticket-to-tribe">\n <tg-tribe-button us-id="us.id" project-slug="project.slug"></tg-tribe-button><a href="" title="{{\'US.TRIBE.PUBLISH_TITLE\' | translate}}" ng-click="ctrl.onTribeInfo()" class="tribe-more-info">{{\'US.TRIBE.PUBLISH_INFO\' | translate}}</a>\n </section>\n <section class="ticket-detail-settings">\n <tg-due-date tg-check-permission="modify_us" due-date="us.due_date" due-date-status="us.due_date_status" is-closed="us.is_closed" item="us" format="button"></tg-due-date>\n <tg-us-team-requirement-button ng-model="us"></tg-us-team-requirement-button>\n <tg-us-client-requirement-button ng-model="us"></tg-us-client-requirement-button>\n <tg-block-button tg-check-permission="modify_us" ng-model="us"></tg-block-button>\n <tg-delete-button tg-check-permission="delete_us" on-delete-title="{{\'Delete User Story\' | translate}}" on-delete-go-to-url="onDeleteGoToUrl" ng-model="us"></tg-delete-button>\n </section>\n </sidebar>\n <div tg-lb-block title="{{ \'US.LIGHTBOX_TITLE_BLOKING_US\' | translate }}" ng-model="us" class="lightbox lightbox-block"></div>\n <div tg-lb-assignedto class="lightbox lightbox-select-user"></div>\n <div tg-lb-assigned-users class="lightbox lightbox-select-user"></div>\n <div tg-lb-watchers class="lightbox lightbox-select-user"></div>\n</div>'),t.put("us/us-team-requirement-button.html",'\n<label for="team-requirement" title="{{ \'COMMON.TEAM_REQUIREMENT\' | translate }}" class="button-gray team-requirement <% if(canEdit){ %>is-editable<% }; %> <% if(isRequired){ %>active<% }; %>">\n <tg-svg svg-icon="icon-team-requirement"></tg-svg>\n</label>\n<input type="checkbox" id="team-requirement" name="team-requirement"/>'),t.put("user/cancel-account.html",'<!DOCTYPE html>\n<div class="wrapper cancel-account">\n <div class="auth">\n <div class="auth-container">\n <div class="logo-svg"><?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg preserveAspectRatio="xMidYMid meet" version="1.1" viewBox="0 0 267.204 267.245" xmlns:svg="http://www.w3.org/2000/svg">\n <path d="M228.256 39.167l-11.755 82.74-82.74 11.756 11.756-82.74z" fill="#a295ae" opacity=".8"/>\n <path d="M39.19 228.134l11.755-82.74 82.74-11.756-11.755 82.74z" fill="#5d6f6d" opacity=".8"/>\n <path d="M39.19 39.277l82.74 11.755 11.756 82.74-82.74-11.755z" fill="#8cd592" opacity=".8"/>\n <path d="M228.16 228.144l-82.74-11.755-11.756-82.742 82.74 11.756z" fill="#665e74" opacity=".8"/>\n <path d="M133.738 267.245l-50.194-66.82 50.194-66.817 50.194 66.818z" fill="#3c3647" opacity=".8"/>\n <path d="M267.204 133.48l-66.82 50.195-66.817-50.194 66.818-50.193z" fill="#837193" opacity=".8"/>\n <path d="M133.616 0l50.194 66.82-50.194 66.817L83.422 66.82z" fill="#a2f4ac" opacity=".8"/>\n <path d="M0 133.706l66.82-50.194 66.817 50.194L66.82 183.9z" fill="#7ea685" opacity=".8"/>\n <path d="M133.602 101.85l31.772 31.772-31.772 31.772-31.772-31.772z" fill="#3c3647"/>\n</svg>\n\n </div>\n <h1 class="logo">Taiga</h1>\n <h2 translate="COMMON.TAG_LINE" class="tagline"></h2>\n <div tg-cancel-account class="cancel-account">\n <p><strong translate="CANCEL_ACCOUNT.TITLE"></strong></p>\n <p><span translate="CANCEL_ACCOUNT.SUBTITLE"></span></p>\n <form>\n <fieldset>\n <input type="hidden" name="cancel_token" ng-model="data.cancel_token" data-required="true" placeholder="{{\'CANCEL_ACCOUNT.PLACEHOLDER_INPUT_TOKEN\' | translate}}">\n <button type="submit" title="{{\'CANCEL_ACCOUNT.ACTION_LEAVING\' | translate}}" translate="CANCEL_ACCOUNT.ACTION_LEAVING" class="button-cancel-account button-gray"></button>\n </fieldset>\n </form>\n </div>\n </div>\n </div>\n</div>'),t.put("user/change-email.html",'<!DOCTYPE html>\n<div class="wrapper">\n <div class="auth">\n <div class="auth-container">\n <div class="logo-svg"><?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg preserveAspectRatio="xMidYMid meet" version="1.1" viewBox="0 0 267.204 267.245" xmlns:svg="http://www.w3.org/2000/svg">\n <path d="M228.256 39.167l-11.755 82.74-82.74 11.756 11.756-82.74z" fill="#a295ae" opacity=".8"/>\n <path d="M39.19 228.134l11.755-82.74 82.74-11.756-11.755 82.74z" fill="#5d6f6d" opacity=".8"/>\n <path d="M39.19 39.277l82.74 11.755 11.756 82.74-82.74-11.755z" fill="#8cd592" opacity=".8"/>\n <path d="M228.16 228.144l-82.74-11.755-11.756-82.742 82.74 11.756z" fill="#665e74" opacity=".8"/>\n <path d="M133.738 267.245l-50.194-66.82 50.194-66.817 50.194 66.818z" fill="#3c3647" opacity=".8"/>\n <path d="M267.204 133.48l-66.82 50.195-66.817-50.194 66.818-50.193z" fill="#837193" opacity=".8"/>\n <path d="M133.616 0l50.194 66.82-50.194 66.817L83.422 66.82z" fill="#a2f4ac" opacity=".8"/>\n <path d="M0 133.706l66.82-50.194 66.817 50.194L66.82 183.9z" fill="#7ea685" opacity=".8"/>\n <path d="M133.602 101.85l31.772 31.772-31.772 31.772-31.772-31.772z" fill="#3c3647"/>\n</svg>\n\n </div>\n <h1 class="logo">Taiga</h1>\n <div tg-change-email class="change-email-form">\n <p><strong translate="CHANGE_EMAIL_FORM.TITLE"></strong></p>\n <p><span translate="CHANGE_EMAIL_FORM.SUBTITLE"></span></p>\n <form>\n <fieldset>\n <input type="hidden" name="email_token" ng-model="data.email_token" data-required="true" placeholder="{{\'CHANGE_EMAIL_FORM.PLACEHOLDER_INPUT_TOKEN\' | translate}}"><a href="" title="{{\'CHANGE_EMAIL_FORM.ACTION_CHANGE_EMAIL\' | translate}}" translate="CHANGE_EMAIL_FORM.ACTION_CHANGE_EMAIL" class="button-change-email button-gray"></a>\n <button type="submit" class="hidden"></button>\n </fieldset>\n </form>\n </div>\n </div>\n </div>\n</div>'),t.put("user/live-notifications.html",'<!DOCTYPE html>\n<div tg-user-live-notifications ng-controller="UserLiveNotificationsController as ctrl" ng-init="section=\'live-notifications\'" class="wrapper">\n <sidebar tg-user-settings-navigation="live-notifications" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="usersettingsmenu-user-profile"><a href="" tg-nav="user-settings-user-profile" title="{{ \'USER_SETTINGS.MENU.USER_PROFILE\' | translate }}"><span translate="USER_SETTINGS.MENU.USER_PROFILE" class="title"></span></a></li>\n <li id="usersettingsmenu-change-password"><a href="" tg-nav="user-settings-user-change-password" title="{{ \'USER_SETTINGS.MENU.CHANGE_PASSWORD\' | translate }}"><span translate="USER_SETTINGS.MENU.CHANGE_PASSWORD" class="title"></span></a></li>\n <li id="usersettingsmenu-mail-notifications"><a href="" tg-nav="user-settings-mail-notifications" title="{{ \'USER_SETTINGS.MENU.EMAIL_NOTIFICATIONS\' | translate }}"><span translate="USER_SETTINGS.MENU.EMAIL_NOTIFICATIONS" class="title"></span></a></li>\n <li id="usersettingsmenu-live-notifications"><a href="" tg-nav="user-settings-live-notifications" title="{{ \'USER_SETTINGS.MENU.DESKTOP_NOTIFICATIONS\' | translate }}"><span translate="USER_SETTINGS.MENU.DESKTOP_NOTIFICATIONS" class="title"></span></a></li>\n <li id="usersettings-contrib" ng-repeat="plugin in userSettingsPlugins"><a href="" tg-nav="user-settings-contrib:plugin=plugin.slug" ng-class="{active: plugin.slug == currentPlugin.slug}"><span class="title">{{ plugin.name }}</span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section class="main admin-common">\n <header>\n <h1><span class="green">{{sectionName | translate}}</span></h1>\n </header>\n <p translate="NOTIFICATION.DESKTOP" class="total"></p>\n <section class="policy-table">\n <div class="policy-table-header">\n <div class="policy-table-row">\n <div class="policy-table-project"><span translate="USER_SETTINGS.NOTIFICATIONS.COLUMN_PROJECT"></span></div>\n <div class="policy-table-all"><span translate="USER_SETTINGS.NOTIFICATIONS.COLUMN_RECEIVE_ALL"></span></div>\n <div class="policy-table-involved"><span translate="USER_SETTINGS.NOTIFICATIONS.COLUMN_ONLY_INVOLVED"></span></div>\n <div class="policy-table-none"><span translate="USER_SETTINGS.NOTIFICATIONS.COLUMN_NO_NOTIFICATIONS"></span></div>\n </div>\n </div>\n <div tg-user-live-notifications-list ng-model="notifyPolicies" class="policy-table-body"></div>\n </section>\n </section>\n</div>'),
t.put("user/mail-notifications.html",'<!DOCTYPE html>\n<div tg-user-notifications ng-controller="UserNotificationsController as ctrl" ng-init="section=\'mail-notifications\'" class="wrapper">\n <sidebar tg-user-settings-navigation="mail-notifications" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="usersettingsmenu-user-profile"><a href="" tg-nav="user-settings-user-profile" title="{{ \'USER_SETTINGS.MENU.USER_PROFILE\' | translate }}"><span translate="USER_SETTINGS.MENU.USER_PROFILE" class="title"></span></a></li>\n <li id="usersettingsmenu-change-password"><a href="" tg-nav="user-settings-user-change-password" title="{{ \'USER_SETTINGS.MENU.CHANGE_PASSWORD\' | translate }}"><span translate="USER_SETTINGS.MENU.CHANGE_PASSWORD" class="title"></span></a></li>\n <li id="usersettingsmenu-mail-notifications"><a href="" tg-nav="user-settings-mail-notifications" title="{{ \'USER_SETTINGS.MENU.EMAIL_NOTIFICATIONS\' | translate }}"><span translate="USER_SETTINGS.MENU.EMAIL_NOTIFICATIONS" class="title"></span></a></li>\n <li id="usersettingsmenu-live-notifications"><a href="" tg-nav="user-settings-live-notifications" title="{{ \'USER_SETTINGS.MENU.DESKTOP_NOTIFICATIONS\' | translate }}"><span translate="USER_SETTINGS.MENU.DESKTOP_NOTIFICATIONS" class="title"></span></a></li>\n <li id="usersettings-contrib" ng-repeat="plugin in userSettingsPlugins"><a href="" tg-nav="user-settings-contrib:plugin=plugin.slug" ng-class="{active: plugin.slug == currentPlugin.slug}"><span class="title">{{ plugin.name }}</span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section class="main admin-common">\n <header>\n <h1><span class="green">{{sectionName | translate}}</span></h1>\n </header>\n <p translate="NOTIFICATION.MAIL" class="total"></p>\n <section class="policy-table">\n <div class="policy-table-header">\n <div class="policy-table-row">\n <div class="policy-table-project"><span translate="USER_SETTINGS.NOTIFICATIONS.COLUMN_PROJECT"></span></div>\n <div class="policy-table-all"><span translate="USER_SETTINGS.NOTIFICATIONS.COLUMN_RECEIVE_ALL"></span></div>\n <div class="policy-table-involved"><span translate="USER_SETTINGS.NOTIFICATIONS.COLUMN_ONLY_INVOLVED"></span></div>\n <div class="policy-table-none"><span translate="USER_SETTINGS.NOTIFICATIONS.COLUMN_NO_NOTIFICATIONS"></span></div>\n </div>\n </div>\n <div tg-user-notifications-list ng-model="notifyPolicies" class="policy-table-body"></div>\n </section>\n </section>\n</div>'),t.put("user/user-change-password.html",'<!DOCTYPE html>\n<div tg-user-change-password ng-controller="UserChangePasswordController as ctrl" ng-init="section=\'user-settings\'" class="wrapper">\n <sidebar tg-user-settings-navigation="change-password" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="usersettingsmenu-user-profile"><a href="" tg-nav="user-settings-user-profile" title="{{ \'USER_SETTINGS.MENU.USER_PROFILE\' | translate }}"><span translate="USER_SETTINGS.MENU.USER_PROFILE" class="title"></span></a></li>\n <li id="usersettingsmenu-change-password"><a href="" tg-nav="user-settings-user-change-password" title="{{ \'USER_SETTINGS.MENU.CHANGE_PASSWORD\' | translate }}"><span translate="USER_SETTINGS.MENU.CHANGE_PASSWORD" class="title"></span></a></li>\n <li id="usersettingsmenu-mail-notifications"><a href="" tg-nav="user-settings-mail-notifications" title="{{ \'USER_SETTINGS.MENU.EMAIL_NOTIFICATIONS\' | translate }}"><span translate="USER_SETTINGS.MENU.EMAIL_NOTIFICATIONS" class="title"></span></a></li>\n <li id="usersettingsmenu-live-notifications"><a href="" tg-nav="user-settings-live-notifications" title="{{ \'USER_SETTINGS.MENU.DESKTOP_NOTIFICATIONS\' | translate }}"><span translate="USER_SETTINGS.MENU.DESKTOP_NOTIFICATIONS" class="title"></span></a></li>\n <li id="usersettings-contrib" ng-repeat="plugin in userSettingsPlugins"><a href="" tg-nav="user-settings-contrib:plugin=plugin.slug" ng-class="{active: plugin.slug == currentPlugin.slug}"><span class="title">{{ plugin.name }}</span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section class="main user-change-password">\n <header>\n <h1><span class="green">{{sectionName | translate}}</span></h1>\n </header>\n <form>\n <fieldset>\n <label for="current-password" translate="CHANGE_PASSWORD.FIELD_CURRENT_PASSWORD"></label>\n <input type="password" name="password" id="current-password" tg-capslock ng-model="currentPassword" placeholder="{{\'CHANGE_PASSWORD.PLACEHOLDER_CURRENT_PASSWORD\' | translate}}">\n </fieldset>\n <fieldset>\n <label for="new-password" translate="CHANGE_PASSWORD.FIELD_NEW_PASSWORD"></label>\n <input data-required="true" type="password" name="new-password" id="new-password" tg-capslock ng-model="newPassword1" placeholder="{{\'CHANGE_PASSWORD.PLACEHOLDER_NEW_PASSWORD\' | translate}}">\n </fieldset>\n <fieldset>\n <label for="retype-password" translate="CHANGE_PASSWORD.FIELD_RETYPE_PASSWORD"></label>\n <input data-required="true" type="password" name="retype-password" id="retype-password" tg-capslock ng-model="newPassword2" placeholder="{{\'CHANGE_PASSWORD.PLACEHOLDER_RETYPE_PASSWORD\' | translate}}">\n </fieldset>\n <fieldset>\n <button type="submit" title="{{\'COMMON.SAVE\' | translate}}" translate="COMMON.SAVE" class="button-green submit-button"></button>\n </fieldset>\n </form>\n </section>\n</div>'),t.put("user/user-profile.html",'<!DOCTYPE html>\n<div tg-user-profile ng-controller="UserSettingsController as ctrl" ng-init="section=\'user-settings\'" class="wrapper">\n <sidebar tg-user-settings-navigation="user-profile" class="menu-secondary sidebar settings-nav">\n <section class="admin-menu">\n <nav>\n <ul>\n <li id="usersettingsmenu-user-profile"><a href="" tg-nav="user-settings-user-profile" title="{{ \'USER_SETTINGS.MENU.USER_PROFILE\' | translate }}"><span translate="USER_SETTINGS.MENU.USER_PROFILE" class="title"></span></a></li>\n <li id="usersettingsmenu-change-password"><a href="" tg-nav="user-settings-user-change-password" title="{{ \'USER_SETTINGS.MENU.CHANGE_PASSWORD\' | translate }}"><span translate="USER_SETTINGS.MENU.CHANGE_PASSWORD" class="title"></span></a></li>\n <li id="usersettingsmenu-mail-notifications"><a href="" tg-nav="user-settings-mail-notifications" title="{{ \'USER_SETTINGS.MENU.EMAIL_NOTIFICATIONS\' | translate }}"><span translate="USER_SETTINGS.MENU.EMAIL_NOTIFICATIONS" class="title"></span></a></li>\n <li id="usersettingsmenu-live-notifications"><a href="" tg-nav="user-settings-live-notifications" title="{{ \'USER_SETTINGS.MENU.DESKTOP_NOTIFICATIONS\' | translate }}"><span translate="USER_SETTINGS.MENU.DESKTOP_NOTIFICATIONS" class="title"></span></a></li>\n <li id="usersettings-contrib" ng-repeat="plugin in userSettingsPlugins"><a href="" tg-nav="user-settings-contrib:plugin=plugin.slug" ng-class="{active: plugin.slug == currentPlugin.slug}"><span class="title">{{ plugin.name }}</span></a></li>\n </ul>\n </nav>\n </section>\n </sidebar>\n <section class="main user-profile">\n <header>\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n </header>\n <form>\n <div tg-user-avatar class="project-details-image">\n <fieldset class="image-container"><img tg-avatar-big="user" alt="avatar" class="image">\n <div class="loading-overlay"><img src="/v-1525361023952/svg/spinner-circle.svg" alt="{{\'COMMON.LOADING\' | translate}}" class="loading-spinner"></div>\n <input type="file" id="avatar-field" tg-avatar-model="avatarAttachment" class="hidden">\n </fieldset><a href="#" title="{{\'USER_PROFILE.CHANGE_PHOTO\' | translate}}" class="button-green change-image js-change-avatar">{{\'USER_PROFILE.CHANGE_PHOTO\' | translate}}</a><a href="#" title="{{ \'USER_PROFILE.ACTION_USE_GRAVATAR\' | translate }}" class="use-default-image js-use-gravatar">{{ \'USER_PROFILE.ACTION_USE_GRAVATAR\' | translate }}</a>\n </div>\n <div class="project-details-form-data">\n <fieldset>\n <label for="username" translate="USER_PROFILE.FIELD.USERNAME"></label>\n <input type="text" autocorrect="off" autocapitalize="none" name="username" id="username" ng-model="user.username" data-required="true" data-maxlength="255" data-regexp="^[\\w.-]+$" placeholder="{{\'USER_PROFILE.FIELD.USERNAME\' | translate}}">\n </fieldset>\n <fieldset>\n <label for="email" translate="USER_PROFILE.FIELD.EMAIL"></label>\n <input type="email" name="email" id="email" ng-model="user.email" data-type="email" data-required="true" data-maxlength="255" placeholder="{{\'USER_PROFILE.FIELD.EMAIL\' | translate}}">\n </fieldset>\n <fieldset>\n <label for="full-name" translate="USER_PROFILE.FIELD.FULL_NAME"></label>\n <input type="text" name="full_name" id="full-name" ng-model="user.full_name" data-required="true" data-maxlength="256" placeholder="{{\'USER_PROFILE.FIELD.PLACEHOLDER_FULL_NAME\' | translate}}">\n </fieldset>\n <fieldset>\n <label for="lang" translate="USER_PROFILE.FIELD.LANGUAGE"></label>\n <select name="lang" id="lang" ng-model="lang" ng-options="locale.code as locale.name for locale in locales">\n <option value="" translate="USER_PROFILE.FIELD.LANGUAGE_DEFAULT"></option>\n </select>\n </fieldset>\n <fieldset>\n <label for="theme" translate="USER_PROFILE.FIELD.THEME"></label>\n <select name="theme" id="theme" ng-model="theme" ng-options="availableTheme for availableTheme in availableThemes">\n <option value="" translate="USER_PROFILE.FIELD.THEME_DEFAULT"></option>\n </select>\n </fieldset>\n <fieldset>\n <label for="bio" translate="USER_PROFILE.FIELD.BIO"></label>\n <textarea name="bio" id="bio" ng-model="user.bio" ng-attr-placeholder="{{\'USER_PROFILE.FIELD.PLACEHOLDER_BIO\' | translate}}" ng-maxlength="210" maxlength="210"></textarea>\n </fieldset>\n <fieldset class="submit">\n <button type="submit" title="{{\'COMMON.SAVE\' | translate}}" translate="COMMON.SAVE" class="button-green submit-button"></button><a href="" title="{{\'USER_PROFILE.ACTION_DELETE_ACCOUNT\' | translate}}" ng-click="ctrl.openDeleteLightbox()" translate="USER_PROFILE.ACTION_DELETE_ACCOUNT" class="delete-account"></a>\n </fieldset>\n </div>\n </form>\n </section>\n</div>\n<div tg-lb-delete-user class="lightbox lightbox-delete-account"></div>'),t.put("wiki/wiki-list.html",'<!DOCTYPE html>\n<div ng-controller="WikiPagesListController as ctrl" ng-init="section=\'wiki\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <sidebar ng-if="linksVisible" tg-wiki-nav ng-model="wikiLinks" class="menu-secondary extrabar wiki-nav"></sidebar>\n <section class="main">\n <header>\n <h1><span tg-bo-bind="project.name"></span><span translate="PROJECT.SECTION.WIKI" class="green"></span><span translate="WIKI.SECTION_PAGES_LIST" class="date"></span></h1>\n </header>\n <section class="wiki-pages-table basic-table">\n <div class="row title">\n <div translate="WIKI.PAGES_LIST_COLUMNS.TITLE" class="title-field"></div>\n <div translate="WIKI.PAGES_LIST_COLUMNS.EDITIONS" class="editions-field"></div>\n <div translate="WIKI.PAGES_LIST_COLUMNS.CREATOR" class="creator-field"></div>\n <div translate="WIKI.PAGES_LIST_COLUMNS.CREATED" class="created-field"></div>\n <div translate="WIKI.PAGES_LIST_COLUMNS.LAST_MODIFIER" class="last-modifier-field"></div>\n <div translate="WIKI.PAGES_LIST_COLUMNS.MODIFIED" class="modified-field"></div>\n </div>\n <div ng-repeat="wikipage in wikipages track by wikipage.slug" class="row table-main">\n <div class="title-field"><a href="" tg-nav="project-wiki-page:project=project.slug,slug=wikipage.slug">{{wikipage.slug}}</a></div>\n <div class="editions-field">{{wikipage.editions}}</div>\n <div tg-user-display tg-user-id="{{wikipage.owner}}" class="creator-field"></div>\n <div tg-bo-bind="wikipage.created_date|momentFormat:\'DD MMM YYYY HH:mm\'" class="created-field"></div>\n <div tg-user-display tg-user-id="{{wikipage.last_modifier}}" class="last-modifier-field"></div>\n <div tg-bo-bind="wikipage.modified_date|momentFormat:\'DD MMM YYYY HH:mm\'" class="modified-field"></div>\n </div>\n </section>\n </section>\n</div>'),t.put("wiki/wiki-nav.html",'\n<header>\n <h1 translate="WIKI.NAVIGATION.SECTION_NAME" class="title"></h1>\n</header>\n<ul class="wiki-link-container">\n <li class="wiki-link fixed-link"><a href="" tg-nav="project-wiki:project=project.slug" translate="WIKI.NAVIGATION.HOME" class="link-title"></a></li>\n</ul>\n<ul class="sortable wiki-link-container">\n <li ng-repeat="link in wikiLinks" data-id="{{ $index }}" tg-bind-scope="tg-bind-scope" tg-class-permission="{\'is-sortable\': \'add_wiki_link\'}" class="wiki-link "><% if (addWikiLinkPermission) { %>\n <tg-svg svg-icon="icon-drag" class="dragger"></tg-svg><% } %><a title="{{ link.title }}" href="{{ link.url }}" class="link-title">{{ link.title }}</a><% if (deleteWikiLinkPermission) { %><a title="{{\'WIKI.DELETE_LINK_TITLE\' | translate}}" class="js-delete-link remove-wiki-page">\n <tg-svg svg-icon="icon-trash"></tg-svg></a><% } %>\n <input type="text" placeholder="{{\'COMMON.FIELDS.NAME\' | translate}}" value="{{ link.title }}" class="hidden"/>\n </li>\n</ul>\n<ul class="sortable wiki-link-container">\n <li class="new hidden">\n <input type="text" placeholder="{{\'COMMON.FIELDS.NAME\' | translate}}"/>\n </li>\n</ul><% if (addWikiLinkPermission) { %><a href="" title="{{\'WIKI.NAVIGATION.ACTION_ADD_LINK\' | translate}}" class="add-button">\n <tg-svg svg-icon="icon-add"></tg-svg><span translate="WIKI.NAVIGATION.ACTION_ADD_LINK"></span></a><% } %>\n<ul ng-if="wikiLinks.length" class="wiki-link-container wiki-all-links">\n <li class="wiki-link fixed-link"><a href="" tg-nav="project-wiki-list:project=project.slug" translate="WIKI.NAVIGATION.ALL_PAGES" class="link-title"></a></li>\n</ul>'),t.put("wiki/wiki-summary.html",'\n<div class="wiki-username-edition">\n <div class="avatar"><img style="background-color: <%- user.avatar.bg %>" src="<%- user.avatar.url %>" alt="<%- user.name %>"/></div>\n <div class="wiki-user-modification"><span translate="WIKI.SUMMARY.LAST_MODIFICATION" class="description"></span><span class="username"><%- user.name %></span></div>\n</div>\n<div class="wiki-last-modified"><span class="number"><%- lastModifiedDate %></span><span translate="WIKI.SUMMARY.LAST_EDIT" class="description"></span></div>\n<div class="wiki-times-edited"><span class="number"><%- totalEditions %></span><span translate="WIKI.SUMMARY.TIMES_EDITED" class="description"></span></div>\n<tg-svg tg-check-permission="delete_wiki_page" title="{{\'WIKI.REMOVE\' | translate}}" ng-click="ctrl.delete()" svg-icon="icon-trash" ng-if="wiki.id" class="remove"></tg-svg>'),t.put("wiki/wiki.html",'<!DOCTYPE html>\n<div ng-controller="WikiDetailController as ctrl" ng-init="section=\'wiki\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <sidebar ng-if="linksVisible" tg-wiki-nav ng-model="wikiLinks" class="menu-secondary extrabar wiki-nav"></sidebar>\n <section class="main wiki">\n <header>\n <h1><span tg-bo-bind="project.name"></span><span translate="PROJECT.SECTION.WIKI" class="green"></span></h1>\n </header>\n <tg-wiki-wysiwyg model="wiki"></tg-wiki-wysiwyg>\n <div tg-wiki-summary ng-model="wiki" ng-if="wiki.id" class="summary wiki-summary"></div>\n <tg-attachments-full ng-if="wiki.id" obj-id="wiki.id" type="wiki_page" project-id="projectId" edit-permission="modify_wiki_page"></tg-attachments-full>\n <tg-wiki-history ng-if="wiki.id" wiki-id="wiki.id"></tg-wiki-history>\n </section>\n</div>'),t.put("team/leave-project.html",'<a ng-click="leave()" href="" class="leave-project">\n <tg-svg svg-icon="icon-close"></tg-svg><span>{{ \'TEAM.ACTION_LEAVE_PROJECT\' | translate }}</span></a>'),t.put("team/team-filter.html",'\n<ul>\n <li><a ng-class="{active: !filtersRole.id}" ng-click="ctrl.setRole()" href=""><span translate="TEAM.SECTION_FILTER_ALL" class="title"></span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg></a></li>\n <li ng-repeat="role in roles"><a ng-class="{active: role.id == filtersRole.id}" ng-click="ctrl.setRole(role)" href=""><span tg-bo-bind="role.name" class="title"></span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg></a></li>\n</ul>'),t.put("team/team-member-current-user.html",'\n<div class="row">\n <div class="username">\n <div class="avatar"><img tg-avatar="currentUser" tg-bo-alt="currentUser.full_name_display"/>\n <div class="avatar-data">\n <div class="name"><span tg-bo-bind="currentUser.full_name_display"></span>\n <tg-svg ng-if="currentUser.id == owner" svg-icon="icon-badge" svg-title-translate="COMMON.OWNER"></tg-svg>\n </div>\n <div tg-bo-bind="currentUser.role_name" class="position"></div>\n <div tg-leave-project="" project="project" user="currentUser"></div>\n </div>\n </div>\n </div>\n <div tg-team-member-stats="tg-team-member-stats" stats="stats" user="currentUser.id" issuesEnabled="issuesEnabled" tasksenabled="tasksEnabled" wikienabled="wikiEnabled" class="member-stats"></div>\n</div>'),t.put("team/team-member-stats.html",'\n<div ng-if="issuesEnabled" class="attribute">\n <tg-svg svg-icon="icon-briefcase" ng-style="{\'opacity\': stats.closed_bugs[userId]}" ng-class="{\'top\': stats.closed_bugs[userId] == 1}"></tg-svg>\n</div>\n<div ng-if="tasksEnabled" class="attribute">\n <tg-svg svg-icon="icon-iocaine" ng-style="{\'opacity\': stats.iocaine_tasks[userId]}" ng-class="{\'top\': stats.iocaine_tasks[userId] == 1}"></tg-svg>\n</div>\n<div ng-if="wikiEnabled" class="attribute">\n <tg-svg svg-icon="icon-edit" ng-style="{\'opacity\': stats.wiki_changes[userId]}" ng-class="{\'top\': stats.wiki_changes[userId] == 1}"></tg-svg>\n</div>\n<div ng-if="issuesEnabled" class="attribute">\n <tg-svg svg-icon="icon-bug" ng-style="{\'opacity\': stats.created_bugs[userId]}" ng-class="{\'top\': stats.created_bugs[userId] == 1}"></tg-svg>\n</div>\n<div ng-if="tasksEnabled" class="attribute">\n <tg-svg svg-icon="icon-task" ng-style="{\'opacity\': stats.closed_tasks[userId]}" ng-class="{\'top\': stats.closed_tasks[userId] == 1}"></tg-svg>\n</div>\n<div class="attribute"><span ng-bind="stats.totals[userId]" class="points"></span></div>'),t.put("team/team-members.html",'\n<div ng-repeat="user in memberships | membersFilter:filtersQ:filtersRole" class="row member">\n <div class="username">\n <div class="avatar"><img tg-avatar="user" tg-bo-alt="user.full_name_display"/>\n <div class="avatar-data"><a tg-nav="user-profile:username=user.username" title="{{::user.full_name_display}}" class="name">{{::user.full_name_display}}\n <tg-svg ng-if="user.id == owner" svg-icon="icon-badge" svg-title-translate="COMMON.OWNER"></tg-svg></a><span class="position">{{::user.role_name}}</span></div>\n </div>\n </div>\n <div tg-team-member-stats="tg-team-member-stats" stats="stats" user="user.id" issuesEnabled="issuesEnabled" tasksenabled="tasksEnabled" wikienabled="wikiEnabled" class="member-stats"></div>\n</div>'),t.put("team/team.html",'<!DOCTYPE html>\n<div ng-controller="TeamController as ctrl" ng-init="section=\'team\'" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <sidebar class="menu-secondary">\n <section class="team-filters">\n <div class="team-filters-inner">\n <header>\n <h1 translate="COMMON.FILTERS.TITLE"></h1>\n </header>\n <form class="search-in">\n <fieldset>\n <input type="text" placeholder="{{\'TEAM.PLACEHOLDER_INPUT_SEARCH\' | translate}}" ng-model="filtersQ">\n <div class="icon-search-wrapper">\n <tg-svg svg-icon="icon-search" title="{{\'COMMON.FILTERS.TITLE_ACTION_FILTER_BUTTON\' | translate}}"></tg-svg>\n </div>\n </fieldset>\n </form>\n <nav tg-team-filters></nav>\n </div>\n </section>\n </sidebar>\n <section class="main team">\n <header>\n <h1 tg-main-title project-name="project.name" i18n-section-name="{{ sectionName }}"></h1>\n </header>\n <section class="table-team basic-table">\n <header class="row team-header">\n <div class="username"></div>\n <div class="member-stats">\n <div ng-if="issuesEnabled" class="attribute attribute-name"><span translate="TEAM.COLUMN_MR_WOLF"></span>\n <div class="popover attribute-explanation"><span translate="TEAM.EXPLANATION_COLUMN_MR_WOLF"></span></div>\n </div>\n <div ng-if="tasksEnabled" class="attribute"><span translate="TEAM.COLUMN_IOCAINE"></span>\n <div class="popover attribute-explanation"><span translate="TEAM.EXPLANATION_COLUMN_IOCAINE"></span></div>\n </div>\n <div ng-if="wikiEnabled" class="attribute"><span translate="TEAM.COLUMN_CERVANTES"></span>\n <div class="popover attribute-explanation"><span translate="TEAM.EXPLANATION_COLUMN_CERVANTES"></span></div>\n </div>\n <div ng-if="issuesEnabled" class="attribute"><span translate="TEAM.COLUMN_BUG_HUNTER"></span>\n <div class="popover attribute-explanation"><span translate="TEAM.EXPLANATION_COLUMN_BUG_HUNTER"></span></div>\n </div>\n <div ng-if="tasksEnabled" class="attribute"><span translate="TEAM.COLUMN_NIGHT_SHIFT"></span>\n <div class="popover attribute-explanation"><span translate="TEAM.EXPLANATION_COLUMN_NIGHT_SHIFT"></span></div>\n </div>\n <div class="attribute"><span translate="TEAM.COLUMN_TOTAL_POWER"></span>\n <div class="popover attribute-explanation"><span translate="TEAM.EXPLANATION_COLUMN_TOTAL_POWER"></span></div>\n </div>\n </div>\n </header>\n <div tg-team-current-user stats="stats" currentuser="currentUser" project="project" issuesEnabled="issuesEnabled" tasksenabled="tasksEnabled" wikienabled="wikiEnabled" owner="owner" ng-if="::currentUser" class="hero"></div>\n </section>\n <h2 ng-show="memberships.length"><span translate="TEAM.SECTION_TITLE_TEAM"></span><span> {{filtersRole.name || ("TEAM.SECTION_FILTER_ALL" | translate)}}</span></h2>\n <section tg-team-members memberships="memberships" stats="stats" filtersq="filtersQ" filtersrole="filtersRole" issuesEnabled="issuesEnabled" tasksenabled="tasksEnabled" wikienabled="wikiEnabled" owner="owner" class="table-team basic-table"></section>\n </section>\n</div>'),t.put("common/estimation/us-estimation-points-per-role.html",'\n<ul class="points-per-role"><% _.each(roles, function(role) { %>\n <li data-role-id="<%- role.id %>" title="<%- role.name %>" class="ticket-role-points total <% if(editable){ %>clickable<% } %>"><span class="points"><%- role.points %>\n <tg-svg svg-icon="icon-arrow-down"></tg-svg></span><span tg-loading="<%- loading == role.id %>" class="role"><%- role.name %></span></li><% }); %>\n <li class="ticket-role-points total"><span class="points"><%- totalPoints %></span><span translate="US.TOTAL_POINTS" class="role"></span></li>\n</ul>'),t.put("common/estimation/us-estimation-points.html",'\n<ul class="popover pop-points-open <% if (horizontal) { %>horizontal<% }; %>"><% _.each(points, function(point) { %>\n <li><% if (point.selected) { %><a href="" title="<%- point.name %>" data-point-id="<%- point.id %>" data-role-id="<%- roleId %>" class="point"><%- point.name %></a><% } else { %><a href="" title="<%- point.name %>" data-point-id="<%- point.id %>" data-role-id="<%- roleId %>" class="point active"><%- point.name %></a><% } %></li><% }); %>\n</ul>'),t.put("common/estimation/us-estimation-total.html",'<a href="" title="<%= title %>" class="us-points <% if (!editable) { %>not-clickable<% } %>"><span class="points-value"><%= text %></span><% if (editable) { %>\n <tg-svg svg-icon="icon-arrow-down" tg-check-permission="modify_us"></tg-svg><% } %></a>'),t.put("common/estimation/us-points-roles-popover.html",'\n<ul class="popover pop-role"><% _.each(roles, function(role) { %>\n <li><a href="" title="<%- role.name %>" data-role-id="<%- role.id %>" class="role"><%- role.name %> (<%- role.points %>)</a></li><% }); %>\n</ul>'),t.put("common/components/add-button.html",'<a href="" class="add-button">\n <tg-svg svg-icon="icon-add"></tg-svg></a>'),t.put("common/components/assigned-to.html",'\n<div class="user-avatar <% if (isIocaine) { %> is-iocaine <% }; %>"><img style="background-color: <%- bg %>" src="<%- avatar %>" alt="<%- fullName %>"/><% if (isIocaine) { %>\n <div title="{{ \'TASK.TITLE_ACTION_IOCAINE\' | translate }}" class="iocaine-symbol">\n <tg-svg svg-icon="icon-iocaine"></tg-svg>\n </div><% }; %>\n</div>\n<div class="assigned-to"><% if (isUnassigned) { %>\n <div class="assigned-title">{{ "COMMON.ASSIGNED_TO.NOT_ASSIGNED" | translate }}</div><% } else { %>\n <div class="assigned-title">{{ "COMMON.FIELDS.ASSIGNED_TO" | translate }}</div><% }; %>\n <div class="assigned-to-options"><% if (!isEditable && fullNameVisible) { %><span ng-non-bindable="ng-non-bindable" class="assigned-name"><%- fullName %></span><% }; %>\n <% if (isEditable) { %><a href="" title="{{ \'COMMON.ASSIGNED_TO.TITLE_ACTION_EDIT_ASSIGNMENT\'|translate }}" class="user-assigned <% if (isEditable) { %>editable<% }; %>"><span ng-non-bindable="ng-non-bindable" class="assigned-name">\n <% if (fullNameVisible) { %>\n <%- fullName %>\n <% }; %>\n <% if (!isUnassigned) { %>\n <tg-svg svg-icon="icon-arrow-down"></tg-svg><% }; %></span></a><% }; %>\n <% if (isEditable && isUnassigned) { %><span translate="COMMON.OR"></span>&nbsp;<a href="#" title="{{\'COMMON.ASSIGNED_TO.SELF\' | translate}}" class="assign-to-me"><span>{{ "COMMON.ASSIGNED_TO.SELF" | translate }}</span></a><% }; %>\n </div><% if (isEditable && !isUnassigned) { %>\n <tg-svg svg-icon="icon-close" title="{{\'COMMON.ASSIGNED_TO.DELETE_ASSIGNMENT\' | translate}}" class="remove-user"></tg-svg><% } %>\n</div>'),t.put("common/components/assigned-users.html",'\n<div ng-if="!isAssigned" class="assigned-title">{{ "COMMON.ASSIGNED_TO.NOT_ASSIGNED" | translate }}</div>\n<div ng-if="isAssigned" class="assigned-title">{{ "COMMON.FIELDS.ASSIGNED_TO" | translate }}</div>\n<div class="tg-assigned-users">\n <div ng-if="!isAssigned" class="not-assigned-users">\n <div ng-class="{\'is-iocaine\': isIocaine}" class="user-avatar"><img tg-avatar="" alt="{{ \'COMMON.ASSIGNED_TO.ASSIGN\' | translate }}"/>\n </div>\n <div class="assigned-to">\n <div ng-if="isEditable" class="assigned-users-options"><a href="" title="{{ \'COMMON.ASSIGNED_TO.TITLE_ACTION_EDIT_ASSIGNMENT\'|translate }}" ng-class="{editable: isEditable}" ng-click="openAssignedUsers()" class="user-assigned"><span class="assigned-name">{{ "COMMON.ASSIGNED_TO.ASSIGN" | translate }}</span></a><span ng-if="!isAssigned"><span translate="COMMON.OR"></span>&nbsp;<a href="#" title="{{\'COMMON.ASSIGNED_TO.SELF\' | translate}}" ng-click="assignToMe()" class="assign-to-me"><span>{{ "COMMON.ASSIGNED_TO.SELF" | translate }}</span></a></span></div>\n </div>\n </div>\n <div ng-repeat="assignedUser in assignedUsers" class="user-list-single">\n <div class="user-list-avatar"><img tg-avatar="assignedUser" alt="{{assignedUser.full_name_display}}"/></div>\n <div class="user-list-name assigned-users-options"><a href="" title="{{ \'COMMON.ASSIGNED_TO.TITLE_ACTION_EDIT_ASSIGNMENT\'|translate }}" class="user-assigned <% if (isEditable) { %>editable<% }; %>"><span class="assigned-name">{{assignedUser.full_name_display}}</span></a>\n <tg-svg ng-if="isEditable" data-assigned-user-id="{{assignedUser.id}}" svg-icon="icon-close" title="{{\'COMMON.ASSIGNED_TO.DELETE_ASSIGNMENT\' | translate}}" class="remove-user"></tg-svg>\n </div>\n </div>\n</div>\n<div ng-if="isAssigned &amp;&amp; isEditable" class="tg-add-assigned">\n <tg-svg ng-if="isEditable" data-assigned-user-id="{{assignedUser.id}}" ng-click="openAssignedUsers()" svg-icon="icon-add" title="{{\'COMMON.ASSIGNED_USERS.ADD_ASSIGNED\' | translate}}" class="add-assigned"></tg-svg><span>{{ "COMMON.ASSIGNED_USERS.ADD_ASSIGNED" | translate }}</span>\n</div>'),t.put("common/components/block-button.html",'<a href="" title="{{ \'COMMON.BLOCK_TITLE\' | translate }}" class="button-gray item-block">\n <tg-svg svg-icon="icon-lock"></tg-svg></a><a href="" title="{{ \'COMMON.UNBLOCK_TITLE\' | translate }}" class="button-red item-unblock">\n <tg-svg svg-icon="icon-unlock"></tg-svg></a>'),t.put("common/components/created-by.html",'\n<div class="created-by"><a href="{{url}}" title="{{owner.full_name_display}}" translate="COMMON.CREATED_BY" translate-values="{ \'fullDisplayName\': owner.full_name_display}" class="created-title"></a>\n <div class="created-date">{{date}}</div>\n</div>\n<div class="user-avatar"><a href="{{url}}" title="{{owner.full_name_display}}"><img ng-style="{\'background\': owner.bg}" ng-src="{{owner.avatar}}" alt="{{owner.full_name_display}}"/></a></div>'),t.put("common/components/delete-button.html",'<a href="" title="{{ \'COMMON.DELETE\' | translate }}" class="button-red button-delete">\n <tg-svg svg-icon="icon-trash"></tg-svg></a>'),t.put("common/components/editable-description-msg-edit-mode.html",'\n<p translate="COMMON.DESCRIPTION.EMPTY" class="no-description editable"></p>'),t.put("common/components/editable-description-msg-read-mode.html",'\n<p translate="COMMON.DESCRIPTION.NO_DESCRIPTION" class="no-description"></p>'),t.put("common/components/editable-subject.html",'\n<div class="view-subject">{{ item.subject }}\n <tg-svg svg-icon="icon-edit" title="{{\'COMMON.EDIT\' | translate}}" class="edit"></tg-svg>\n</div>\n<div class="edit-subject">\n <input type="text" ng-model="item.subject" data-required="true" data-maxlength="500" ng-model-options="{ debounce: 200 }"/><span class="save-container"><a href="" class="save">\n <tg-svg svg-icon="icon-save" svg-title-translate="COMMON.SAVE"></tg-svg></a></span>\n</div>'),t.put("common/components/kanban-placeholder.html",'\n<div class="placeholder-avatar">\n <div class="image"></div>\n <div class="text">\n <div class="line"></div>\n <div class="line"></div>\n </div>\n</div>\n<p class="title">{{\'KANBAN.PLACEHOLDER_CARD_TITLE\' | translate}}</p>\n<p>{{\'KANBAN.PLACEHOLDER_CARD_TEXT\' | translate}}</p>'),t.put("common/components/level.html",'\n<div class="level"></div>'),t.put("common/components/list-item-assigned-to-avatar.html",'\n<div class="avatar"><img style="background-color: <%- bg %>" src="<%- imgurl %>" alt="<%- name %>"/><span class="avatar-caption"><%- name %></span></div>'),t.put("common/components/main-title.html",'<span ng-if="projectName" class="project-name">{{ projectName }}</span><span class="green">{{ sectionName | translate }}</span>'),t.put("common/components/progress-bar.html",'\n<div style="width: <%- percentage %>%" class="current-progress"></div>'),t.put("common/components/status-button.html",'<span class="detail-status-inner js-edit-status <% if(editable){ %>clickable<% }%>"><span style="background-color:<%- status.color %>"><span class=""><%- status.name %></span><% if(editable){ %>\n <tg-svg svg-icon="icon-arrow-down"></tg-svg><% }%></span></span>\n<ul class="pop-status popover"><% _.each(statuses, function(st) { %>\n <li><a href="" title="<%- st.name %>" data-status-id="<%- st.id %>" class="status"><%- st.name %></a></li><% }); %>\n</ul>'),
t.put("common/components/status-display.html",'<% if (is_closed) { %><span translate="COMMON.STATUS.CLOSED"></span><% } else { %><span translate="COMMON.STATUS.OPEN"></span><% } %>'),t.put("common/components/taskboard-placeholder.html",'\n<div class="placeholder-avatar">\n <div class="image"></div>\n <div class="text">\n <div class="line"></div>\n <div class="line"></div>\n </div>\n</div>\n<p class="title">{{\'TASKBOARD.PLACEHOLDER_CARD_TITLE\' | translate}}</p>\n<p>{{\'TASKBOARD.PLACEHOLDER_CARD_TEXT\' | translate}}</p>'),t.put("common/components/user-display.html",'\n<div ng-if="url" class="user-avatar"><a href="{{url}}" title="{{user.full_name_display}}"><img ng-style="{\'background-color\': user.bg}" ng-src="{{user.avatar}}" alt="{{user.full_name_display}}"/></a></div><a ng-if="url" href="{{url}}" title="{{user.full_name_display}}" class="user-full-name">{{user.full_name_display}}</a>\n<div ng-if="!url" class="user-avatar"><img ng-style="{\'background-color\': user.bg}" ng-src="{{user.avatar}}" alt="{{user.full_name_display}}"/></div><span ng-if="!url" class="user-full-name">{{user.full_name_display}}</span>'),t.put("common/components/watchers.html",'\n<div ng-repeat="watcher in watchers" class="user-list-single">\n <div class="user-list-avatar"><img tg-avatar="watcher" alt="{{watcher.full_name_display}}"/></div>\n <div class="user-list-name"><span>{{watcher.full_name_display}}</span>\n <tg-svg ng-if="isEditable" svg-icon="icon-trash" svg-title-translate="COMMON.WATCHERS.DELETE" data-watcher-id="{{watcher.id}}" class="js-delete-watcher delete-watcher"></tg-svg>\n </div>\n</div>'),t.put("common/components/wysiwyg-toolbar.html",'\n<div ng-class="{\'edit-mode\': editMode, \'read-mode\': !editMode}" class="editor">\n <div ng-if="outdated">\n <p class="outdated">{{\'COMMON.WYSIWYG.OUTDATED\' | translate}}</p>\n </div>\n <div type="text" ng-show="mode == \'html\' || !editMode" class="medium wysiwyg"></div>\n <textarea ng-attr-placeholder="{{placeholder}}" ng-change="changeMarkdown(markdown)" ng-model="markdown" ng-show="mode == \'markdown\' &amp;&amp; editMode" class="markdown "></textarea>\n <div ng-if="editMode" class="mode-editor"><span ng-if="mode==\'html\'" ng-click="setMode(\'markdown\')" class="">Markdown Mode</span><span ng-if="mode==\'markdown\'" ng-click="setMode(\'html\')" class="">HTML Mode</span><a ng-if="mode==\'markdown\'" href="https://tree.taiga.io/support/misc/taiga-markdown-syntax/" target="_blank" title="{{\'COMMON.WYSIWYG.MARKDOWN_HELP\' | translate}}" class="help-markdown">\n <tg-svg svg-icon="icon-question"></tg-svg><span translate="COMMON.WYSIWYG.MARKDOWN_HELP"></span></a></div>\n</div>\n<div ng-class="{&quot;visible&quot;: editMode}" class="tools"><a ng-class="{disabled: required &amp;&amp; !markdown.length}" tg-loading="saving" href="#" ng-click="save($event)" class="">\n <tg-svg svg-icon="icon-save"></tg-svg></a><a href="#" ng-click="cancel($event)" title="{{ \'COMMON.CANCEL\' | translate }}" class="">\n <tg-svg svg-icon="icon-close"></tg-svg></a></div>\n<tg-wysiwyg-code-lightbox languages="codeLans" code-language="currentCodeLanguage" code="code" visible="codeEditorVisible" on-close="codeEditorVisible = false" on-save="saveSnippet(lan, code)" class="lightbox lightbox-generic-form"></tg-wysiwyg-code-lightbox>'),t.put("common/popover/popover-related-task-status.html",'\n<ul class="popover pop-status"><% _.forEach(statuses, function(status) { %>\n <li><a href="" title="<%- status.name %>" data-status-id="<%- status.id %>" class="status"><%- status.name %></a></li><% }); %>\n</ul>'),t.put("common/popover/popover-us-status.html",'\n<ul class="popover pop-status"><% _.each(statuses, function(status) { %>\n <li><a href="" title="<%- status.name %>" data-status-id="<%- status.id %>" class="status"><%- status.name %></a></li><% }); %>\n</ul>'),t.put("common/lightbox/lightbox-assigned-to-users.html",'<% if (selected) { %>\n<div class="user-list-single is-active">\n <div class="user-list-avatar"><a href="" title="{{\'COMMON.ASSIGNED_TO\' | translate}}"><img style="background: <%- selected.avatar.bg %>" src="<%- selected.avatar.url %>"/></a></div><a href="" title="<%- selected.full_name_display %>" ng-non-bindable="ng-non-bindable" class="user-list-name"><%-selected.full_name_display %></a>\n <tg-svg svg-icon="icon-close" svg-title-translate="COMMON.ASSIGNED_TO.REMOVE_ASSIGNED" class="remove-assigned-to"></tg-svg>\n</div><% } %>\n<% _.each(users, function(user) { %>\n<div data-user-id="<%- user.id %>" class="user-list-single">\n <div class="user-list-avatar"><a href="#" title="{{\'COMMON.ASSIGNED_TO.TITLE\' | translate}}"><img style="background: <%- user.avatar.bg %>" src="<%- user.avatar.url %>"/></a></div><a href="" title="<%- user.full_name_display %>" ng-non-bindable="ng-non-bindable" class="user-list-name"><%- user.full_name_display %></a>\n</div><% }) %>\n<% if (showMore) { %>\n<div class="more-watchers"><span translate="COMMON.ASSIGNED_TO.TOO_MANY"></span></div><% } %>'),t.put("common/lightbox/lightbox-assigned-to.html",'\n<tg-lightbox-close></tg-lightbox-close>\n<div class="form">\n <h2 translate="LIGHTBOX.ASSIGNED_TO.SELECT" class="title"></h2>\n <fieldset>\n <input type="text" data-maxlength="500" placeholder="{{\'LIGHTBOX.ASSIGNED_TO.SEARCH\' | translate}}" ng-model="usersSearch"/>\n </fieldset>\n <div class="assigned-to-list"></div>\n</div>'),t.put("common/lightbox/lightbox-assigned-users-users.html",'<% _.each(selected, function(user) { %>\n<div data-user-id="<%- user.id %>" class="user-list-multiple is-active">\n <div class="user-list-avatar"><a href="" title="{{\'COMMON.ASSIGNED_TO\' | translate}}"><img style="background: <%- user.avatar.bg %>" src="<%- user.avatar.url %>"/></a></div><a href="" title="<%- user.full_name_display %>" ng-non-bindable="ng-non-bindable" class="user-list-name"><%-user.full_name_display %></a>\n <tg-svg svg-icon="icon-close" svg-title-translate="COMMON.ASSIGNED_TO.REMOVE_ASSIGNED" data-user-id="<%- user.id %>" class="remove-assigned-to"></tg-svg>\n</div><% }) %>\n<% _.each(users, function(user) { %>\n<div data-user-id="<%- user.id %>" class="user-list-single">\n <div class="user-list-avatar"><a href="#" title="{{\'COMMON.ASSIGNED_TO.TITLE\' | translate}}"><img style="background: <%- user.avatar.bg %>" src="<%- user.avatar.url %>"/></a></div><a href="" title="<%- user.full_name_display %>" ng-non-bindable="ng-non-bindable" class="user-list-name"><%- user.full_name_display %></a>\n</div><% }) %>\n<% if (showMore) { %>\n<div class="more-watchers"><span translate="COMMON.ASSIGNED_TO.TOO_MANY"></span></div><% } %>'),t.put("common/lightbox/lightbox-assigned-users.html",'\n<tg-lightbox-close></tg-lightbox-close>\n<div class="form">\n <h2 translate="COMMON.ASSIGNED_USERS.ADD" class="title"></h2>\n <fieldset>\n <input type="text" data-maxlength="500" placeholder="{{\'LIGHTBOX.ASSIGNED_TO.SEARCH\' | translate}}" ng-model="usersSearch"/>\n </fieldset>\n <div class="assigned-to-list">\n </div>\n</div>'),t.put("common/lightbox/lightbox-block.html",'\n<tg-lightbox-close></tg-lightbox-close>\n<div class="form">\n <h2 class="title"></h2>\n <fieldset>\n <textarea ng-attr-placeholder="{{\'COMMON.BLOCKED_REASON\' | translate}}" class="reason"></textarea>\n </fieldset><a href="" class="button-green"><span translate="COMMON.SAVE"></span></a>\n</div>'),t.put("common/lightbox/lightbox-blocking-message-input.html",'\n<fieldset class="blocked-note hidden">\n <input type="text" name="blocked_note" ng-attr-placeholder="{{\'COMMON.BLOCKED_NOTE\' | translate}}" ng-model="<%- ngmodel %>"/>\n</fieldset>'),t.put("common/lightbox/lightbox-change-owner.html",'\n<tg-lightbox-close></tg-lightbox-close>\n<div class="form">\n <h2 translate="LIGHTBOX.CHANGE_OWNER.TITLE" class="title"></h2>\n <fieldset>\n <input type="text" data-maxlength="500" placeholder="{{\'LIGHTBOX.ASSIGNED_TO.SEARCH\' | translate}}" ng-model="vm.q" ng-change="vm.userSearch()"/>\n </fieldset>\n <div class="assigned-to-list">\n <div ng-if="vm.selected" class="user-list-single is-active">\n <div class="user-list-avatar"><a href="#" title="{{\'COMMON.ASSIGNED_TO.TITLE\' | translate}}"><img tg-avatar="vm.selected"/></a></div><a href="" title="{{vm.selected.full_name_display}}" class="user-list-name">{{vm.selected.full_name_display}}</a>\n </div>\n <div ng-repeat="user in vm.getUsers()" ng-click="vm.selectUser(user)" class="user-list-single ng-animate-disabled">\n <div class="user-list-avatar"><a href="#" title="{{\'COMMON.ASSIGNED_TO.TITLE\' | translate}}"><img tg-avatar="user"/></a></div><a href="" title="{{user.full_name_display}}" class="user-list-name">{{user.full_name_display}}</a>\n </div>\n <div ng-if="!vm.q.length" class="more-watchers"><span translate="COMMON.ASSIGNED_TO.TOO_MANY"></span></div>\n </div>\n <div class="add-comment"><a href="" ng-if="!vm.commentOpen" ng-click="vm.commentOpen = true" translate="LIGHTBOX.CHANGE_OWNER.ADD_COMMENT" class="ng-animate-disabled"></a>\n <fieldset ng-if="vm.commentOpen">\n <tg-svg svg-icon="icon-close" ng-click="vm.commentOpen = false" href="" title="{{\'COMMON.CLOSE\' | translate}}"></tg-svg>\n <label translate="LIGHTBOX.CHANGE_OWNER.ADD_COMMENT"></label>\n <textarea ng-model="vm.comment"></textarea>\n </fieldset>\n </div>\n <button tg-loading="vm.loading" ng-click="vm.submit()" ng-disabled="!vm.selected" type="submit" title="{{\'LIGHTBOX.CHANGE_OWNER.BUTTON\' | translate}}" translate="LIGHTBOX.CHANGE_OWNER.BUTTON" class="button-green submit-button"></button>\n</div>'),t.put("common/lightbox/lightbox-due-date.html",'\n<tg-lightbox-close></tg-lightbox-close>\n<form>\n <h2 translate="LIGHTBOX.SET_DUE_DATE.TITLE" class="title"></h2>\n <fieldset class="date">\n <input type="text" name="due_date" picker-value="{{ new_due_date }}" data-required="true" tg-date-selector="tg-date-selector" placeholder="{{\'LIGHTBOX.SET_DUE_DATE.PLACEHOLDER_DUE_DATE\' | translate}}" class="due-date no-focus"/>\n <ul class="due-date-suggestions">\n <li data-quantity=\'1\' data-unit="weeks" class="suggestion clickable"><span>{{ \'LIGHTBOX.SET_DUE_DATE.SUGGESTIONS.IN_ONE_WEEK\' | translate }}</span></li>\n <li data-quantity=\'2\' data-unit="weeks" class="suggestion clickable"><span>{{ \'LIGHTBOX.SET_DUE_DATE.SUGGESTIONS.IN_TWO_WEEKS\' | translate }}</span></li>\n <li data-quantity=\'1\' data-unit="months" class="suggestion clickable"><span>{{ \'LIGHTBOX.SET_DUE_DATE.SUGGESTIONS.IN_ONE_MONTH\' | translate }}</span></li>\n <li data-quantity=\'3\' data-unit="months" class="suggestion clickable"><span>{{ \'LIGHTBOX.SET_DUE_DATE.SUGGESTIONS.IN_THREE_MONTHS\' | translate }}</span></li>\n </ul>\n </fieldset>\n <fieldset class="reason"><span>{{ \'LIGHTBOX.SET_DUE_DATE.REASON_FOR_DUE_DATE\' | translate }}</span>\n <textarea name="due_date_reason" ng-attr-placeholder="{{\'LIGHTBOX.SET_DUE_DATE.PLACEHOLDER_REASON_FOR_DUE_DATE\' | translate}}" ng-model="object.due_date_reason" class="due-date-reason no-focus"></textarea>\n </fieldset>\n <button type="submit" title="{{\'COMMON.SAVE\' | translate}}" translate="COMMON.SAVE" class="button-green submit-button"></button><a href="" title="{{\'LIGHTBOX.SET_DUE_DATE.TITLE_ACTION_DELETE_DUE_DATE\' | translate}}" class="delete-due-date">\n <tg-svg svg-icon="icon-trash"></tg-svg></a>\n</form>'),t.put("common/lightbox/lightbox-leave-project-warning.html",'\n<tg-lightbox-close></tg-lightbox-close>\n<div class="content">\n <tg-svg svg-icon="icon-exclamation"></tg-svg>\n <h2 class="title">{{\'LIGHTBOX.LEAVE_PROJECT_WARNING.TITLE\' | translate}}</h2>\n <div ng-if="isCurrentUser">\n <p>{{\'LIGHTBOX.LEAVE_PROJECT_WARNING.CURRENT_USER_OWNER.DESC\' | translate}}</p><a tg-nav="project-admin-home:project=project.slug" href="" class="button-green"><span translate="LIGHTBOX.LEAVE_PROJECT_WARNING.CURRENT_USER_OWNER.BUTTON"></span></a>\n </div>\n <div ng-if="!isCurrentUser">\n <p>{{\'LIGHTBOX.LEAVE_PROJECT_WARNING.OTHER_USER_OWNER.DESC\' | translate}}</p><a tg-nav="project-admin-home:project=project.slug" href="" class="button-green"><span translate="LIGHTBOX.LEAVE_PROJECT_WARNING.OTHER_USER_OWNER.BUTTON"></span></a>\n </div>\n</div>'),t.put("common/lightbox/lightbox-request-ownership.html",'\n<tg-lightbox-close></tg-lightbox-close>\n<div class="content">\n <h2 translate="ADMIN.PROJECT_PROFILE.REQUEST_OWNERSHIP_CONFIRMATION_TITLE" class="title"></h2>\n <p translate="ADMIN.PROJECT_PROFILE.REQUEST_OWNERSHIP_DESC"></p><a href="" ng-click="request()" tg-loading="loading" class="button-green"><span translate="ADMIN.PROJECT_PROFILE.REQUEST_OWNERSHIP_BUTTON"></span></a>\n</div>'),t.put("common/lightbox/lightbox-users.html",'\n<tg-lightbox-close></tg-lightbox-close>\n<div class="form">\n <h2 translate="COMMON.WATCHERS.ADD" class="title"></h2>\n <fieldset>\n <input type="text" data-maxlength="500" placeholder="{{\'LIGHTBOX.ASSIGNED_TO.SEARCH\' | translate}}" ng-model="usersSearch"/>\n </fieldset>\n <div class="ticket-watchers">\n </div>\n</div>'),t.put("common/tag/lb-tag-line-tags.html",'<% _.each(tags, function(tag) { %><span style="<%- tag.style %>" class="tag"><span class="tag-name"><%- tag.name %></span><a href="" title="{{\'COMMON.TAGS.DELETE\' | translate}}" class="remove-tag">\n <tg-svg svg-icon="icon-close"></tg-svg></a></span><% }); %>'),t.put("common/tag/lb-tag-line.html",'\n<div class="tags-container"></div>\n<input type="text" placeholder="{{\'COMMON.TAGS.PLACEHOLDER\' | translate}}" class="tag-input"/><span title="{{\'COMMON.SAVE\' | translate}}" class="save hidden">\n <tg-svg svg-icon="icon-save"></tg-svg></span>'),t.put("common/tag/tag-line.html",'\n<div class="tags-container"></div><a href="#" title="{{\'COMMON.TAGS.ADD\' | translate}}" class="add-tag hidden">\n <tg-svg svg-icon="icon-add"></tg-svg><span translate="COMMON.TAGS.ADD" class="add-tag-text"></span></a><span class="add-tag-input">\n <input type="text" placeholder="{{\'COMMON.TAGS.PLACEHOLDER\' | translate}}" class="tag-input hidden"/><span title="{{\'COMMON.SAVE\' | translate}}" class="save hidden">\n <tg-svg svg-icon="icon-save"></tg-svg></span></span>'),t.put("common/tag/tags-line-tags.html",'\n<% _.each(tags, function(tag) { %>\n<% if (tag.name == deleteTagLoading) { %>\n<div tg-loading="true"></div><% } else { %><span style="border-left: 5px solid <%- tag.style %>;" class="tag"><span class="tag-name"><%- tag.name %></span><% if (isEditable) { %><a href="" title="{{\'COMMON.TAGS.DELETE\' | translate}}" class="remove-tag">\n <tg-svg svg-icon="icon-close"></tg-svg></a><% } %></span><% } %>\n<% }); %>\n<div tg-loading="<%- loading %>"></div>'),t.put("common/wysiwyg/wysiwyg-markitup-preview.html",'\n<div class="preview">\n <div class="actions">\n <tg-svg svg-icon="icon-edit" svg-title-translate="COMMON.WYSIWYG.EDIT_BUTTON" class="edit"></tg-svg>\n <div class="content wysiwyg"><%= data %></div>\n </div>\n</div>'),t.put("user/lightbox/lightbox-delete-account.html",'\n<tg-lightbox-close></tg-lightbox-close>\n<form>\n <h2 translate="LIGHTBOX.DELETE_ACCOUNT.CONFIRM" class="title"></h2>\n <p ng-bind-html="\'LIGHTBOX.DELETE_ACCOUNT.BLOCK_PROJECT\' | translate"></p>\n <div class="options"><a href="" title="{{\'LIGHTBOX.DELETE_ACCOUNT.CANCEL\' | translate}}" class="button-green"><span translate="LIGHTBOX.DELETE_ACCOUNT.CANCEL"></span></a><a href="" title="{{\'LIGHTBOX.DELETE_ACCOUNT.ACCEPT\' | translate}}" class="button-red"><span translate="LIGHTBOX.DELETE_ACCOUNT.ACCEPT"></span></a></div>\n</form>'),t.put("projects/create/github-import/github-import-project-form/github-import-project-form.html",'\n<div class="import-project-github-form">\n <div ng-include="\'projects/create/import/import-header.html\'"></div>\n <div tg-loading="vm.fetchingUsers" class="spin"></div>\n <form ng-if="!vm.fetchingUsers" name="projectForm" ng-submit="vm.saveForm()">\n <div ng-include="\'projects/create/import-project-form-common/name.html\'"></div>\n <div ng-include="\'projects/create/import-project-form-common/description.html\'"></div>\n <div role="group" class="create-project-github-import-type">\n <p translate="PROJECT.IMPORT.GITHUB.HOW_DO_YOU_WANT_TO_IMPORT" class="question"></p>\n <div class="create-project-github-import-type-question">\n <fieldset>\n <input type="radio" name="project_type" id="template-issues" data-required="true" aria-hidden="true" ng-value="\'issues\'" ng-model="vm.projectForm.project_type" required="required"/>\n <label for="template-issues"><span translate="PROJECT.IMPORT.GITHUB.ISSUES_PROJECT" class="create-project-github-import-type-name"></span>\n <p translate="PROJECT.IMPORT.GITHUB.ISSUES_PROJECT_DESCRIPTION" class="create-project-github-import-type-description"></p>\n </label>\n </fieldset>\n <fieldset>\n <input type="radio" name="project_type" id="template-scrum" data-required="true" aria-hidden="true" ng-value="\'scrum\'" ng-model="vm.projectForm.project_type" required="required"/>\n <label for="template-scrum"><span translate="PROJECT.IMPORT.GITHUB.SCRUM_PROJECT" class="create-project-github-import-type-name"></span>\n <p translate="PROJECT.IMPORT.GITHUB.SCRUM_PROJECT_DESCRIPTION" class="create-project-github-import-type-description"></p>\n </label>\n </fieldset>\n <fieldset>\n <input type="radio" name="project_type" id="template-kanban" data-required="true" aria-hidden="true" ng-value="\'kanban\'" ng-model="vm.projectForm.project_type" required="required"/>\n <label for="template-kanban"><span translate="PROJECT.IMPORT.GITHUB.KANBAN_PROJECT" class="create-project-github-import-type-name"></span>\n <p translate="PROJECT.IMPORT.GITHUB.KANBAN_PROJECT_DESCRIPTION" class="create-project-github-import-type-description"></p>\n </label>\n </fieldset>\n </div>\n </div>\n <div ng-include="\'projects/create/import-project-form-common/project-privacy.html\'"></div>\n <tg-create-project-restrictions is-private="vm.projectForm.is_private" can-create-public-projects="vm.canCreatePublicProjects" can-create-private-projects="vm.canCreatePrivateProjects"></tg-create-project-restrictions>\n <tg-create-project-members-restrictions is-private="vm.projectForm.is_private" limit-members-private-project="vm.limitMembersPrivateProject" limit-members-public-project="vm.limitMembersPublicProject"></tg-create-project-members-restrictions>\n <div ng-include="\'projects/create/import-project-form-common/links.html\'"></div>\n <div ng-include="\'projects/create/import-project-form-common/actions.html\'"></div>\n </form>\n</div>'),t.put("projects/create/asana-import/asana-import-project-form/asana-import-project-form.html",'\n<div class="import-project-asana-form">\n <div ng-include="\'projects/create/import/import-header.html\'"></div>\n <div tg-loading="vm.fetchingUsers" class="spin"></div>\n <form ng-if="!vm.fetchingUsers" name="projectForm" ng-submit="vm.saveForm()">\n <div ng-include="\'projects/create/import-project-form-common/name.html\'"></div>\n <div ng-include="\'projects/create/import-project-form-common/description.html\'"></div>\n <div role="group" class="create-project-import-type">\n <fieldset>\n <input type="radio" name="project_type" id="template-scrum" data-required="true" aria-hidden="true" ng-value="\'scrum\'" ng-model="vm.projectForm.project_type" required="required"/>\n <label for="template-scrum">\n <tg-svg svg-icon="icon-scrum"></tg-svg><span translate="PROJECT.IMPORT.ASANA.SCRUM_PROJECT"></span>\n </label>\n </fieldset>\n <fieldset>\n <input type="radio" name="project_type" id="template-kanban" data-required="true" aria-hidden="true" ng-value="\'kanban\'" ng-model="vm.projectForm.project_type" required="required"/>\n <label for="template-kanban">\n <tg-svg svg-icon="icon-kanban"></tg-svg><span translate="PROJECT.IMPORT.ASANA.KANBAN_PROJECT"></span>\n </label>\n </fieldset>\n </div>\n <p ng-if="vm.projectForm.project_type == \'scrum\'" translate="PROJECT.IMPORT.ASANA.CREATE_AS_SCRUM_DESCRIPTION" class="create-project-import-type-info"></p>\n <p ng-if="vm.projectForm.project_type == \'kanban\'" translate="PROJECT.IMPORT.ASANA.CREATE_AS_KANBAN_DESCRIPTION" class="create-project-import-type-info"></p>\n <div ng-include="\'projects/create/import-project-form-common/project-privacy.html\'"></div>\n <tg-create-project-restrictions is-private="vm.projectForm.is_private" can-create-public-projects="vm.canCreatePublicProjects" can-create-private-projects="vm.canCreatePrivateProjects"></tg-create-project-restrictions>\n <tg-create-project-members-restrictions is-private="vm.projectForm.is_private" limit-members-private-project="vm.limitMembersPrivateProject" limit-members-public-project="vm.limitMembersPublicProject"></tg-create-project-members-restrictions>\n <div ng-include="\'projects/create/import-project-form-common/links.html\'"></div>\n <div ng-include="\'projects/create/import-project-form-common/actions.html\'"></div>\n </form>\n</div>'),t.put("projects/create/jira-import/jira-import-project-form/jira-import-project-form.html",'\n<div class="import-project-jira-form">\n <div ng-include="\'projects/create/import/import-header.html\'"></div>\n <div tg-loading="vm.fetchingUsers" class="spin"></div>\n <form ng-if="!vm.fetchingUsers" name="projectForm" ng-submit="vm.saveForm()">\n <div ng-include="\'projects/create/import-project-form-common/name.html\'"></div>\n <div ng-include="\'projects/create/import-project-form-common/description.html\'"></div>\n <div role="group" ng-if="vm.projectForm.importer_type !== \'agile\'" class="create-project-import-type">\n <fieldset>\n <input type="radio" name="project_type" id="template-scrum" data-required="true" aria-hidden="true" ng-value="\'scrum\'" ng-model="vm.projectForm.project_type" required="required"/>\n <label for="template-scrum">\n <tg-svg svg-icon="icon-scrum"></tg-svg><span translate="PROJECT.IMPORT.JIRA.SCRUM_PROJECT"></span>\n </label>\n </fieldset>\n <fieldset>\n <input type="radio" name="project_type" id="template-kanban" data-required="true" aria-hidden="true" ng-value="\'kanban\'" ng-model="vm.projectForm.project_type" required="required"/>\n <label for="template-kanban">\n <tg-svg svg-icon="icon-kanban"></tg-svg><span translate="PROJECT.IMPORT.JIRA.KANBAN_PROJECT"></span>\n </label>\n </fieldset>\n <fieldset>\n <input type="radio" name="project_type" id="template-issues" data-required="true" aria-hidden="true" ng-value="\'issues\'" ng-model="vm.projectForm.project_type" required="required"/>\n <label for="template-issues">\n <tg-svg svg-icon="icon-issues"></tg-svg><span translate="PROJECT.IMPORT.JIRA.ISSUES_PROJECT"></span>\n </label>\n </fieldset>\n </div>\n <p ng-if="vm.projectForm.project_type == \'scrum\'" translate="PROJECT.IMPORT.JIRA.CREATE_AS_SCRUM_DESCRIPTION" class="create-project-import-type-info"></p>\n <p ng-if="vm.projectForm.project_type == \'kanban\'" translate="PROJECT.IMPORT.JIRA.CREATE_AS_KANBAN_DESCRIPTION" class="create-project-import-type-info"></p>\n <div ng-if="vm.projectForm.project_type == \'issues\'" class="create-project-type-issues-subform">\n <p translate="PROJECT.IMPORT.JIRA.CREATE_AS_ISSUES_DESCRIPTION" class="create-project-type-issues-subform-title"></p>\n <fieldset class="create-project-type-issues-subform-radiogr">\n <label>\n <input type="radio" name="create_subissues" id="template-issues-create" data-required="true" aria-hidden="true" ng-value="true" ng-model="vm.projectForm.create_subissues" required="required"/>\n <svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">\n <circle cx="7" cy="7" r="6"></circle>\n </svg><span translate="PROJECT.IMPORT.JIRA.CREATE_NEW_ISSUES" class="control-indicator"></span>\n </label>\n <label>\n <input type="radio" name="create_subissues" id="template-issues-ignore" data-required="true" aria-hidden="true" ng-value="false" ng-model="vm.projectForm.create_subissues" required="required"/>\n <svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">\n <circle cx="7" cy="7" r="6"></circle>\n </svg><span translate="PROJECT.IMPORT.JIRA.NOT_CREATE_NEW_ISSUES" class="control-indicator"></span>\n </label>\n </fieldset>\n </div>\n <div ng-include="\'projects/create/import-project-form-common/project-privacy.html\'"></div>\n <tg-create-project-restrictions is-private="vm.projectForm.is_private" can-create-public-projects="vm.canCreatePublicProjects" can-create-private-projects="vm.canCreatePrivateProjects"></tg-create-project-restrictions>\n <tg-create-project-members-restrictions is-private="vm.projectForm.is_private" limit-members-private-project="vm.limitMembersPrivateProject" limit-members-public-project="vm.limitMembersPublicProject"></tg-create-project-members-restrictions>\n <div ng-include="\'projects/create/import-project-form-common/links.html\'"></div>\n <div ng-include="\'projects/create/import-project-form-common/actions.html\'"></div>\n </form>\n</div>'),t.put("projects/create/invite-members/single-member/single-member.html",'\n<label ng-class="{\'disabled\': disabled}" class="create-project-invite-avatar"><img tg-avatar="avatar" alt="{{avatar.get(\'full_name_display\')}}" title="{{avatar.get(\'full_name_display\')}}"/></label>'),t.put("projects/create/trello-import/trello-import-project-form/trello-import-project-form.html",'\n<div class="import-project-trello-form create-project">\n <div ng-include="\'projects/create/import/import-header.html\'"></div>\n <div tg-loading="vm.fetchingUsers" class="spin"></div>\n <form ng-if="!vm.fetchingUsers" name="projectForm" ng-submit="vm.saveForm()">\n <div ng-include="\'projects/create/import-project-form-common/name.html\'"></div>\n <div ng-include="\'projects/create/import-project-form-common/description.html\'"></div>\n <div ng-include="\'projects/create/import-project-form-common/project-privacy.html\'"></div>\n <tg-create-project-restrictions is-private="vm.projectForm.is_private" can-create-public-projects="vm.canCreatePublicProjects" can-create-private-projects="vm.canCreatePrivateProjects"></tg-create-project-restrictions>\n <tg-create-project-members-restrictions is-private="vm.projectForm.is_private" limit-members-private-project="vm.limitMembersPrivateProject" limit-members-public-project="vm.limitMembersPublicProject"></tg-create-project-members-restrictions>\n <div ng-include="\'projects/create/import-project-form-common/links.html\'"></div>\n <div ng-include="\'projects/create/import-project-form-common/actions.html\'"></div>\n </form>\n</div>'),t.put("external-apps/external-app.html",'\n<section class="external-app-wrapper">\n <div class="logo"><?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg preserveAspectRatio="xMidYMid meet" version="1.1" viewBox="0 0 267.204 267.245" xmlns:svg="http://www.w3.org/2000/svg">\n <path d="M228.256 39.167l-11.755 82.74-82.74 11.756 11.756-82.74z" fill="#a295ae" opacity=".8"/>\n <path d="M39.19 228.134l11.755-82.74 82.74-11.756-11.755 82.74z" fill="#5d6f6d" opacity=".8"/>\n <path d="M39.19 39.277l82.74 11.755 11.756 82.74-82.74-11.755z" fill="#8cd592" opacity=".8"/>\n <path d="M228.16 228.144l-82.74-11.755-11.756-82.742 82.74 11.756z" fill="#665e74" opacity=".8"/>\n <path d="M133.738 267.245l-50.194-66.82 50.194-66.817 50.194 66.818z" fill="#3c3647" opacity=".8"/>\n <path d="M267.204 133.48l-66.82 50.195-66.817-50.194 66.818-50.193z" fill="#837193" opacity=".8"/>\n <path d="M133.616 0l50.194 66.82-50.194 66.817L83.422 66.82z" fill="#a2f4ac" opacity=".8"/>\n <path d="M0 133.706l66.82-50.194 66.817 50.194L66.82 183.9z" fill="#7ea685" opacity=".8"/>\n <path d="M133.602 101.85l31.772 31.772-31.772 31.772-31.772-31.772z" fill="#3c3647"/>\n</svg>\n\n </div>\n <h1>Taiga</h1>\n <h2 translate="EXTERNAL_APP.AUTHORIZATION_REQUEST" translate-values="{application: vm.application.get(\'name\')}"></h2>\n <div class="user-card avatar">\n <div class="card-inner">\n <div class="user-image"><img tg-avatar="vm.user" alt="{{::vm.user.get(\'full_name_display\')}}"/></div>\n <div class="user-data">\n <h3>{{ ::vm.user.get("full_name_display") }}</h3>\n <p>{{ ::vm.user.get("email") }}</p>\n </div>\n </div><a ng-href="{{::vm.loginWithAnotherUserUrl}}" title="{{\'EXTERNAL_APP.LOGIN_WITH_ANOTHER_USER\' | translate}}" translate="EXTERNAL_APP.LOGIN_WITH_ANOTHER_USER"></a>\n </div>\n <div class="app-card">\n <div class="card-inner">\n <div class="app-image"><img ng-src="{{::vm.application.get(\'icon_url\')}}" alt="{{::vm.application.get(\'name\')}}"/></div>\n <div class="app-data">\n <h3>{{ ::vm.application.get("name") }}</h3><a ng-href="{{::vm.application.get(\'web\')}}" title="{{::vm.application.get(\'name\')}}" target="_blank">{{ ::vm.application.get(\'web\') }}</a>\n <p>{{ ::vm.application.get("description") }}</p>\n </div>\n </div>\n </div><a href="#" ng-click="vm.createApplicationToken()" title="{{\'EXTERNAL_APP.AUTHORIZE_APP\' | translate}}" translate="EXTERNAL_APP.AUTHORIZE_APP" class="button-green"></a><a href="#" ng-click="vm.cancel()" title="{{\'EXTERNAL_APP.CANCEL\' | translate}}" translate="EXTERNAL_APP.CANCEL" class="cancel"></a>\n</section>'),t.put("home/home.html",'<!DOCTYPE html>\n<div class="home-wrapper centered">\n <div class="duty-summary">\n <h1><span class="green">{{"HOME.DASHBOARD" | translate}}</span></h1>\n <tg-working-on class="dashboard-container"></tg-working-on>\n </div>\n <aside tg-home-project-list class="project-list"></aside>\n</div>'),t.put("invite-members/lightbox-add-members.html",'\n<tg-lightbox-close></tg-lightbox-close>\n<div class="add-members-wrapper">\n <h2 translate="LIGHTBOX.ADD_MEMBER.TITLE" class="title"></h2>\n <tg-suggest-add-members ng-show="!vm.displayContactList" contacts="vm.contacts" on-invite-suggested="vm.inviteSuggested(contact)" on-invite-email="vm.inviteEmail(email)"></tg-suggest-add-members>\n <tg-invite-members-form ng-show="vm.displayContactList" on-display-contact-list="vm.displayContactList = false" contacts-to-invite="vm.contactsToInvite" emails-to-invite="vm.emailsToInvite" on-remove-invited-contact="vm.removeContact(contact)" on-remove-invited-email="vm.removeEmail(email)" on-send-invites="vm.submit(invites)"></tg-invite-members-form>\n</div>'),t.put("navigation-bar/navigation-bar.html",'\n<nav ng-if="vm.isEnabledHeader" class="navbar">\n <div class="nav-left"><a ng-if="!vm.isAuthenticated" href="https://taiga.io/" title="{{\'PROJECT.NAVIGATION.HOMEPAGE\' | translate}}" class="logo"><svg id="logo-svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 134.2 134.3" version="1.1" preserveAspectRatio="xMidYMid meet">\n <style>\n #logo-svg path {\n fill:#f5f5f5;\n opacity:0.7;\n }\n </style>\n <g transform="translate(-307.87667,-465.22863)">\n <g class="bottom">\n <path transform="matrix(-0.14066483,0.99005727,-0.99005727,0.14066483,0,0)" d="m561.8-506.6 42 0 0 42-42 0z" />\n <path transform="matrix(0.14066483,-0.99005727,0.99005727,-0.14066483,0,0)" d="m-645.7 422.6 42 0 0 42-42 0z" />\n <path transform="matrix(0.99005727,0.14066483,0.14066483,0.99005727,0,0)" d="m266.6 451.9 42 0 0 42-42 0z" />\n <path transform="matrix(-0.99005727,-0.14066483,-0.14066483,-0.99005727,0,0)" d="m-350.6-535.9 42 0 0 42-42 0z" />\n </g>\n <g class="top">\n <path transform="matrix(-0.60061118,-0.79954125,0.60061118,-0.79954125,0,0)" d="m-687.1-62.7 42 0 0 42-42 0z" />\n <path transform="matrix(-0.79954125,0.60061118,-0.79954125,-0.60061118,0,0)" d="m166.6-719.6 42 0 0 42-42 0z" />\n <path transform="matrix(0.60061118,0.79954125,-0.60061118,0.79954125,0,0)" d="m603.1-21.3 42 0 0 42-42 0z" />\n <path transform="matrix(0.79954125,-0.60061118,0.79954125,0.60061118,0,0)" d="m-250.7 635.8 42 0 0 42-42 0z" />\n <path transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)" d="m630.3 100 22.6 0 0 22.6-22.6 0z" />\n </g>\n </g>\n</svg>\n</a><a ng-if="vm.isAuthenticated" href="#" tg-nav="home" title="{{\'PROJECT.NAVIGATION.HOMEPAGE\' | translate}}" class="logo"><svg id="logo-svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 134.2 134.3" version="1.1" preserveAspectRatio="xMidYMid meet">\n <style>\n #logo-svg path {\n fill:#f5f5f5;\n opacity:0.7;\n }\n </style>\n <g transform="translate(-307.87667,-465.22863)">\n <g class="bottom">\n <path transform="matrix(-0.14066483,0.99005727,-0.99005727,0.14066483,0,0)" d="m561.8-506.6 42 0 0 42-42 0z" />\n <path transform="matrix(0.14066483,-0.99005727,0.99005727,-0.14066483,0,0)" d="m-645.7 422.6 42 0 0 42-42 0z" />\n <path transform="matrix(0.99005727,0.14066483,0.14066483,0.99005727,0,0)" d="m266.6 451.9 42 0 0 42-42 0z" />\n <path transform="matrix(-0.99005727,-0.14066483,-0.14066483,-0.99005727,0,0)" d="m-350.6-535.9 42 0 0 42-42 0z" />\n </g>\n <g class="top">\n <path transform="matrix(-0.60061118,-0.79954125,0.60061118,-0.79954125,0,0)" d="m-687.1-62.7 42 0 0 42-42 0z" />\n <path transform="matrix(-0.79954125,0.60061118,-0.79954125,-0.60061118,0,0)" d="m166.6-719.6 42 0 0 42-42 0z" />\n <path transform="matrix(0.60061118,0.79954125,-0.60061118,0.79954125,0,0)" d="m603.1-21.3 42 0 0 42-42 0z" />\n <path transform="matrix(0.79954125,-0.60061118,0.79954125,0.60061118,0,0)" d="m-250.7 635.8 42 0 0 42-42 0z" />\n <path transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)" d="m630.3 100 22.6 0 0 22.6-22.6 0z" />\n </g>\n </g>\n</svg>\n</a><a href="{{ vm.supportUrl }}" target="_blank" title="{{\'PROJECT.NAVIGATION.HELP_TITLE\' | translate}}" translate="PROJECT.NAVIGATION.HELP"></a></div>\n <div ng-if="!vm.isAuthenticated" class="nav-right"><a ng-click="vm.login()" href="#" title="{{ \'LOGIN_COMMON.ACTION_SIGN_IN\' | translate }}" translate="LOGIN_COMMON.ACTION_SIGN_IN" class="login"></a><a href="#" ng-if="vm.publicRegisterEnabled" tg-nav="register" title="{{ \'REGISTER_FORM.ACTION_SIGN_UP\' | translate }}" translate="REGISTER_FORM.ACTION_SIGN_UP" class="register"></a></div>\n <div ng-if="vm.isAuthenticated" class="nav-right"><a tg-nav="home" ng-class="{active: vm.active}" title="{{\'PROJECT.NAVIGATION.DASHBOARD_TITLE\' | translate}}">\n <tg-svg svg-icon="icon-dashboard"></tg-svg></a><a href="#" tg-nav="discover" title="{{\'PROJECT.NAVIGATION.DISCOVER_TITLE\' | translate}}">\n <tg-svg svg-icon="icon-discover"></tg-svg></a>\n <div ng-show="vm.projects.size" tg-dropdown-project-list="tg-dropdown-project-list" class="topnav-dropdown-wrapper"></div>\n <div tg-dropdown-user="tg-dropdown-user" class="topnav-dropdown-wrapper"></div>\n </div>\n</nav>'),
t.put("profile/profile.html",'\n<div ng-if="vm.user" class="profile centered">\n <tg-profile-bar user="vm.user" isCurrentUser="vm.isCurrentUser"></tg-profile-bar>\n <div class="main">\n <tg-profile-tabs class="timeline-wrapper">\n <div tg-profile-tab="{{\'USER.PROFILE.TABS.ACTIVITY_TAB\' | translate}}" tab-title="{{\'USER.PROFILE.TABS.ACTIVITY_TAB_TITLE\' | translate}}" tab-icon="icon-timeline" tab-active="tab-active">\n <div tg-user-timeline="tg-user-timeline" user="vm.user" current-user="vm.isCurrentUser"></div>\n </div>\n <div tg-profile-tab="{{\'USER.PROFILE.TABS.PROJECTS_TAB\' | translate}}" tab-title="{{\'USER.PROFILE.TABS.PROJECTS_TAB_TITLE\' | translate}}" tab-icon="icon-project" tab-disabled="{{vm.isCurrentUser}}">\n <div tg-profile-projects="tg-profile-projects" user="vm.user"></div>\n </div>\n <div tg-profile-tab="{{\'USER.PROFILE.TABS.LIKES_TAB\' | translate}}" tab-title="{{\'USER.PROFILE.TABS.LIKES_TAB_TITLE\' | translate}}" tab-icon="icon-like">\n <div tg-profile-liked="tg-profile-liked" user="vm.user"></div>\n </div>\n <div tg-profile-tab="{{\'USER.PROFILE.TABS.VOTES_TAB\' | translate}}" tab-title="{{\'USER.PROFILE.TABS.VOTES_TAB_TITLE\' | translate}}" tab-icon="icon-upvote">\n <div tg-profile-voted="tg-profile-voted" user="vm.user"></div>\n </div>\n <div tg-profile-tab="{{\'USER.PROFILE.TABS.WATCHED_TAB\' | translate}}" tab-title="{{\'USER.PROFILE.TABS.WATCHED_TAB_TITLE\' | translate}}" tab-icon="icon-watch">\n <div tg-profile-watched="tg-profile-watched" user="vm.user"></div>\n </div>\n <div tg-profile-tab="{{\'USER.PROFILE.TABS.CONTACTS_TAB\' | translate}}" tab-title="{{\'USER.PROFILE.TABS.CONTACTS_TAB_TITLE\' | translate}}" tab-icon="icon-team">\n <div tg-profile-contacts="tg-profile-contacts" user="vm.user"></div>\n </div>\n </tg-profile-tabs>\n <aside class="profile-sidebar">\n <div ng-if="::vm.isCurrentUser">\n <h4 translate="USER.PROFILE_SIDEBAR.TITLE"></h4>\n <p translate="USER.PROFILE_SIDEBAR.DESCRIPTION"></p><a tg-nav="user-settings-user-profile" class="button-gray"><span translate="USER.PROFILE_SIDEBAR.ADD_INFO"></span></a>\n </div>\n <div tg-profile-hints="tg-profile-hints"></div>\n </aside>\n </div>\n</div>'),t.put("history/history.html",'\n<section ng-if="vm.showHistorySection()" class="history">\n <tg-history-tabs show-comment-tab="vm.showCommentTab()" show-activity-tab="vm.showActivityTab()" on-active-comments="vm.onActiveHistoryTab(true)" on-active-activities="vm.onActiveHistoryTab(false)" active-tab="vm.viewComments" on-order-comments="vm.onOrderComments()" comments-num="vm.commentsNum" activities-num="vm.activitiesNum" on-reverse="vm.reverse"></tg-history-tabs>\n <tg-comments ng-if="vm.viewComments" comments="vm.comments" on-delete-comment="vm.deleteComment(commentId)" on-restore-deleted-comment="vm.restoreDeletedComment(commentId)" on-edit-mode="vm.toggleEditMode(commentId)" on-add-comment="vm.addComment(callback)" on-edit-comment="vm.editComment(commentId, commentData, callback)" edit-mode="vm.editMode" object="{{vm.id}}" type="vm.type" name="{{vm.name}}" loading="vm.loading" editing="vm.editing" deleting="vm.deleting" project-id="vm.projectId"></tg-comments>\n <tg-history ng-if="!vm.viewComments" activities="vm.activities"></tg-history>\n</section>'),t.put("discover/discover-home/discover-home.html",'<!DOCTYPE html>\n<section class="discover">\n <header>\n <tg-discover-search-bar on-change="vm.onSubmit(q)"></tg-discover-search-bar>\n </header>\n <section class="highlighted">\n <tg-most-liked></tg-most-liked>\n <tg-most-active></tg-most-active>\n </section>\n <section class="featured-projects">\n <tg-featured-projects></tg-featured-projects>\n </section>\n</section>'),t.put("discover/discover-search/discover-search.html",'\n<div tg-discover-search="tg-discover-search">\n <div class="discover-search">\n <tg-discover-search-bar filter="vm.filter" q="vm.q" on-change="vm.onChangeFilter(filter, q)"></tg-discover-search-bar>\n </div>\n <div ng-if="!vm.searchResult.size &amp;&amp; !vm.loadingGlobal &amp;&amp; !vm.loadingList" class="empty-large"><img src="/v-1525361023952/images/empty/empty_tex.png" alt="{{ DISCOVER.EMPTY | translate }}"/>\n <p translate="DISCOVER.EMPTY" class="title"></p>\n </div>\n <div ng-if="vm.searchResult.size || vm.loadingGlobal || vm.loadingList" class="discover-results">\n <div tg-loading="vm.loadingGlobal" class="spin"></div>\n <div ng-if="!vm.loadingGlobal" class="discover-results-inner">\n <tg-discover-search-list-header on-change="vm.onChangeOrder(orderBy)" order-by="vm.orderBy"></tg-discover-search-list-header>\n <div ng-show="vm.loadingList" tg-loading="vm.loadingList" class="spin"></div>\n <ul ng-if="!vm.loadingList &amp;&amp; vm.searchResult.size" class="project-list">\n <li tg-repeat="project in vm.searchResult track by project.get(\'id\')" class="list-itemtype-project">\n <div class="list-itemtype-project-left"><a href="#" tg-nav="project:project=project.get(\'slug\')" title="{{ ::project.get(\'name\') }}" class="list-itemtype-project-image"><img tg-project-logo-small-src="::project" alt="{{::project.get(\'name\')}}"/></a>\n <div class="list-itemtype-project-data">\n <h2><a href="#" tg-nav="project:project=project.get(\'slug\')" title="{{ ::project.get(\'name\') }}">{{project.get(\'name\')}}</a>\n <tg-svg ng-if="project.get(\'is_looking_for_people\')" svg-icon="icon-recruit" svg-title="{{ ::project.get(\'looking_for_people_note\') }}" class="look-for-people"></tg-svg>\n </h2>\n <p>{{ ::project.get(\'description\') | limitTo:300 }}<span ng-if="::project.get(\'description\').length &gt; 300">...</span></p>\n </div>\n </div>\n <div class="list-itemtype-project-right project-statistics"><span ng-class="{\'active\': project.get(\'is_fan\')}" title="{{ \'PROJECT.FANS_COUNTER_TITLE\'|translate:{total:project.get(\'total_fans\')||0}:\'messageformat\' }}" class="statistic">\n <tg-svg svg-icon="icon-like"></tg-svg><span>{{::project.get(\'total_fans\')}}</span></span><span ng-class="{\'active\': project.get(\'is_watcher\')}" title="{{ \'PROJECT.WATCHERS_COUNTER_TITLE\'|translate:{total:project.get(\'total_watchers\')||0}:\'messageformat\' }}" class="statistic">\n <tg-svg svg-icon="icon-watch"></tg-svg><span>{{::project.get(\'total_watchers\')}}</span></span><span ng-class="{\'active\': project.get(\'i_am_member\')}" title="{{ \'PROJECT.MEMBERS_COUNTER_TITLE\'|translate:{total:project.get(\'members\').size||0}:\'messageformat\' }}" class="statistic">\n <tg-svg svg-icon="icon-team"></tg-svg><span class="statistics-num">{{ ::project.get(\'members\').size }}</span></span></div>\n </li>\n </ul><a tg-loading="vm.loadingPagination" href="#" ng-click="vm.showMore()" ng-if="vm.nextSearchPage" class="button-green more-results">{{ \'DISCOVER.VIEW_MORE\' | translate }}</a>\n </div>\n </div>\n</div>'),t.put("components/assigned-to/assigned-to.html",'<img ng-if="vm.assignedTo &amp;&amp; vm.has_permissions" tg-avatar="vm.assignedTo" alt="{{vm.assignedTo.get(\'full_name_display\')}}" title="{{vm.assignedTo.get(\'full_name_display\')}}" ng-click="vm.onSelectAssignedTo(vm.assignedTo, vm.project)" class="assigned-to "/><img ng-if="vm.assignedTo &amp;&amp; !vm.has_permissions" tg-avatar="vm.assignedTo" alt="{{vm.assignedTo.get(\'full_name_display\')}}" title="{{vm.assignedTo.get(\'full_name_display\')}}" class="assigned-to "/><img ng-if="!vm.assignedTo &amp;&amp; vm.has_permissions" src="/v-1525361023952/images/unnamed.png" alt="{{\'EPICS.DASHBOARD.UNASSIGNED\' | translate}}" ng-click="vm.onSelectAssignedTo(vm.assignedTo, vm.project)" class="assigned-to "/><img ng-if="!vm.assignedTo &amp;&amp; !vm.has_permissions" src="/v-1525361023952/images/unnamed.png" alt="{{\'EPICS.DASHBOARD.UNASSIGNED\' | translate}}" class="assigned-to "/>'),t.put("components/attachment/attachment-gallery.html","\n<div ng-class=\"{deprecated: vm.attachment.getIn(['file', 'is_deprecated'])}\" ng-if=\"vm.attachment.getIn(['file', 'id'])\" class=\"single-attachment\"><a tg-attachment-link=\"vm.attachment\" href=\"{{::vm.attachment.getIn(['file', 'url'])}}\" title=\"{{::vm.attachment.getIn(['file', 'name'])}}\" target=\"_blank\" download=\"{{::vm.attachment.getIn(['file', 'name'])}}\" class=\"attachment-image \"><img alt=\"{{::vm.attachment.getIn(['file', 'name'])}}\" ng-src=\"{{::vm.attachment.getIn(['file', 'thumbnail_card_url'])}}\" ng-if=\"vm.attachment.getIn(['file', 'thumbnail_card_url'])\"/><img alt=\"{{::vm.attachment.getIn(['file', 'name'])}}\" src=\"/v-1525361023952/images/attachment-gallery.png\" ng-if=\"!vm.attachment.getIn(['file', 'thumbnail_card_url'])\"/></a>\n <div class=\"attachment-data\"><a tg-attachment-link=\"vm.attachment\" href=\"{{::vm.attachment.getIn(['file', 'url'])}}\" title=\"{{::vm.attachment.get(['file', 'name'])}}\" target=\"_blank\" download=\"{{::vm.attachment.getIn(['file', 'name'])}}\" class=\"attachment-name\"><span>{{::vm.attachment.getIn(['file', 'name'])}}</span></a><a href=\"\" title=\"{{'COMMON.DELETE' | translate}}\" ng-if=\"!vm.attachment.get('editable')\" tg-check-permission=\"modify_{{vm.type}}\" ng-click=\"vm.delete()\" class=\"icon-delete\">\n <tg-svg svg-icon=\"icon-trash\"></tg-svg></a></div>\n</div>"),t.put("components/attachment/attachment.html",'\n<form ng-class="{deprecated: vm.attachment.getIn([\'file\', \'is_deprecated\'])}" ng-if="vm.attachment.getIn([\'file\', \'id\'])" ng-submit="vm.save()" class="single-attachment">\n <div class="attachment-name"><a tg-attachment-link="vm.attachment" href="{{::vm.attachment.getIn([\'file\', \'url\'])}}" title="{{::vm.attachment.get([\'file\', \'name\'])}}" target="_blank" download="{{::vm.attachment.getIn([\'file\', \'name\'])}}" class="">\n <tg-svg svg-icon="icon-attachment"></tg-svg><span>{{::vm.attachment.getIn([\'file\', \'name\'])}}</span></a></div>\n <div ng-if="!vm.attachment.get(\'editable\') &amp;&amp; vm.attachment.getIn([\'file\', \'description\'])" class="attachment-comments"><span ng-if="vm.attachment.getIn([\'file\', \'is_deprecated\'])" class="deprecated-file">{{\'ATTACHMENT.DEPRECATED\' | translate}}</span><span>{{vm.attachment.getIn([\'file\', \'description\'])}}</span></div>\n <div class="attachment-size"><span>{{::vm.attachment.getIn([\'file\', \'size\']) | sizeFormat}}</span></div>\n <div ng-if="vm.attachment.get(\'editable\')" class="editable editable-attachment-comment">\n <input type="text" name="description" maxlength="140" ng-model="vm.form.description" tg-auto-select="tg-auto-select" ng-keydown="$event.which === 27 &amp;&amp; vm.editMode(false)" placeholder="{{\'ATTACHMENT.DESCRIPTION\' | translate}}"/>\n </div>\n <div ng-if="vm.attachment.get(\'editable\')" class="editable editable-attachment-deprecated">\n <input type="checkbox" ng-model="vm.form.is_deprecated" ng-checked="vm.attachment.getIn([\'file\', \'is_deprecated\'])" name="is-deprecated" id="attach-{{::vm.attachment.getIn([\'file\', \'id\'])}}-is-deprecated"/>\n <label for="attach-{{::vm.attachment.getIn([\'file\', \'id\'])}}-is-deprecated" translate="{{\'ATTACHMENT.DEPRECATED_FILE\' | translate}}" class="is_deprecated"></label>\n </div>\n <div ng-if="vm.attachment.get(\'editable\')" class="attachment-settings">\n <div tg-loading="vm.attachment.get(\'loading\')"><a href="" title="{{\'COMMON.SAVE\' | translate}}" ng-click="vm.save()" class="editable-settings ">\n <tg-svg svg-icon="icon-save"></tg-svg></a></div>\n <div><a href="" title="{{\'COMMON.CANCEL\' | translate}}" ng-click="vm.editMode(false)" class="editable-settings ">\n <tg-svg svg-icon="icon-close"></tg-svg></a></div>\n </div>\n <div ng-if="!vm.attachment.get(\'editable\')" tg-check-permission="modify_{{vm.type}}" class="attachment-settings"><a href="" title="{{\'COMMON.EDIT\' | translate}}" ng-click="vm.editMode(true)" class="settings ">\n <tg-svg svg-icon="icon-edit" class="drag"></tg-svg></a><a href="" title="{{\'COMMON.DELETE\' | translate}}" ng-click="vm.delete()" class="settings ">\n <tg-svg svg-icon="icon-trash" class="drag"></tg-svg></a><a href="" title="{{\'COMMON.DRAG\' | translate}}" class="settings">\n <tg-svg svg-icon="icon-drag" class="drag"></tg-svg></a></div>\n</form>'),t.put("components/attachments-full/attachments-full.html",'\n<section tg-attachments-drop="vm.addAttachments(files, false)" ng-show="vm.showAttachments()" class="attachments">\n <div class="attachments-header">\n <h3 class="attachments-title"><span class="attachments-num">{{vm.attachments.size}}</span> <span translate="ATTACHMENT.SECTION_NAME" class="attachments-text"></span></h3>\n <div class="options">\n <button ng-class="{\'is-active\': vm.mode == \'gallery\'}" ng-if="vm.attachments.size" ng-click="vm.setMode(\'gallery\')" title="{{ \'ATTACHMENT.GALLERY_VIEW_MODE\' | translate }}" class="view-gallery">\n <tg-svg svg-icon="icon-gallery"></tg-svg>\n </button>\n <button ng-class="{\'is-active\': vm.mode == \'list\'}" ng-if="vm.attachments.size" ng-click="vm.setMode(\'list\')" title="{{ \'ATTACHMENT.LIST_VIEW_MODE\' | translate }}" class="view-list">\n <tg-svg svg-icon="icon-list"></tg-svg>\n </button>\n <div tg-check-permission="modify_{{vm.type}}" title="{{\'ATTACHMENT.ADD\' | translate}}" class="add-attach">\n <label for="add-attach" class="add-attachment-button">\n <tg-svg svg-icon="icon-add"></tg-svg>\n </label>\n <input id="add-attach" type="file" ng-model="files" multiple="multiple" tg-file-change="vm.addAttachments(files, true)"/>\n </div>\n </div>\n </div>\n <div ng-if="!vm.attachments.size &amp;&amp; !vm.uploadingAttachments().length" class="attachments-empty">\n <div>{{\'ATTACHMENT.DROP\' | translate}}</div>\n </div>\n <div ng-if="vm.mode == \'list\'" class="attachment-list sortable">\n <div tg-attachments-sortable="vm.reorderAttachment(attachment, index)">\n <div tg-repeat="attachment in vm.attachmentsVisible track by attachment.getIn([\'file\', \'id\'])" tg-bind-scope="tg-bind-scope">\n <tg-attachment attachment="attachment" on-delete="vm.deleteAttachment(attachment)" on-update="vm.updateAttachment(attachment)" type="vm.type"></tg-attachment>\n </div>\n <div ng-repeat="file in vm.uploadingAttachments()" class="single-attachment">\n <div class="attachment-name">\n <tg-svg svg-icon="icon-attachment"></tg-svg><span>{{file.name}}</span>\n </div>\n <div class="attachment-size"><span>{{file.size | sizeFormat}}</span></div>\n <div class="attachment-comments"><span>{{file.progressMessage}}</span>\n <div ng-style="{\'width\': file.progressPercent}" class="percentage"></div>\n </div>\n </div>\n </div><a href="" title="{{\'ATTACHMENT.SHOW_DEPRECATED\' | translate}}" ng-if="vm.deprecatedsCount &gt; 0" ng-click="vm.toggleDeprecatedsVisible()" class="more-attachments"><span ng-show="!vm.deprecatedsVisible" translate="ATTACHMENT.SHOW_DEPRECATED" class="text"></span><span ng-show="vm.deprecatedsVisible" translate="ATTACHMENT.HIDE_DEPRECATED" class="text"></span><span translate="ATTACHMENT.COUNT_DEPRECATED" translate-values="{counter: \'{{vm.deprecatedsCount}}\'}" class="more-attachments-num"></span></a>\n </div>\n <div ng-if="vm.mode == \'gallery\'" class="attachment-gallery">\n <tg-attachment-gallery tg-repeat="attachment in vm.attachmentsVisible track by attachment.getIn([\'file\', \'id\'])" attachment="attachment" on-delete="vm.deleteAttachment(attachment)" on-update="vm.updateAttachment(attachment)" type="vm.type" class="attachment-gallery-container"></tg-attachment-gallery>\n <div ng-repeat="file in vm.uploadingAttachments()" class="single-attachment">\n <div class="loading-container"><img src="/v-1525361023952/svg/spinner-circle.svg" alt="{{\'COMMON.LOADING\' | translate}}" class="loading-spinner"/></div>\n <div class="attachment-data">{{file.progressMessage}}</div>\n </div>\n </div>\n</section>\n<tg-attachments-preview ng-show="vm.showAttachments()" attachments="vm.attachments" class="lightbox lightbox-block"></tg-attachments-preview>'),t.put("components/attachments-preview/attachments-preview.html",'\n<div ng-if="vm.attachments.size &amp;&amp; vm.current" class="attachment-preview">\n <tg-lightbox-close></tg-lightbox-close>\n <div class="attachment-preview-container"><a href="#" ng-click="vm.previous()" ng-if="vm.hasPagination()" class="previous">\n <tg-svg svg-icon="icon-arrow-left"></tg-svg></a><a href="{{vm.current.get(\'url\')}}" title="{{vm.current.get(\'description\')}}" target="_blank" download="{{vm.current.get(\'name\')}}">\n <tg-preload-image preload-src="{{vm.current.get(\'preview_url\') || vm.getCurrent().get(\'url\')}}"><img ng-src="{{vm.current.get(\'preview_url\') || vm.getCurrent().get(\'url\')}}"/></tg-preload-image></a><a href="#" ng-click="vm.next()" ng-if="vm.hasPagination()" class="next">\n <tg-svg svg-icon="icon-arrow-right"></tg-svg></a></div>\n</div>'),t.put("components/attachments-simple/attachments-simple.html",'\n<section tg-attachments-drop="vm.addAttachments(files)" class="attachments">\n <div class="attachments-header"> \n <h3 class="attachments-title"><span class="attachments-num">{{vm.attachments.size}}</span> <span translate="ATTACHMENT.SECTION_NAME" class="attachments-text"></span></h3>\n <div title="{{\'ATTACHMENT.ADD\' | translate}}" class="add-attach">\n <label for="add-attach" class="add-attachment-button">\n <tg-svg svg-icon="icon-add"></tg-svg>\n </label>\n <input id="add-attach" type="file" multiple="multiple" ng-model="files" tg-file-change="vm.addAttachments(files)"/>\n </div>\n </div>\n <div ng-if="!vm.attachments.size" class="attachments-empty"> \n <div>{{\'ATTACHMENT.DROP\' | translate}}</div>\n </div>\n <div class="attachment-body attachment-list">\n <div tg-repeat="attachment in vm.attachments track by $index" class="single-attachment">\n <div class="attachment-name">\n <tg-svg svg-icon="icon-attachment"></tg-svg><span>{{attachment.get(\'name\')}}</span>\n </div>\n <div class="attachment-size"><span>{{attachment.get(\'size\') | sizeFormat}}</span></div>\n <div class="attachment-settings"><a href="#" title="{{\'COMMON.DELETE\' | translate}}" ng-click="vm.deleteAttachment(attachment)" class="settings attachment-delete">\n <tg-svg svg-icon="icon-trash"></tg-svg></a></div>\n </div>\n </div>\n</section>'),t.put("components/belong-to-epics/belong-to-epics-pill.html","<span tg-repeat=\"epic in immutable_epics track by epic.get('id')\" class=\"belong-to-epic-pill-wrapper\">\n <div ng-style=\"{'background': epic.get('color'), 'border-color': '{{ epic.get('color') | darker: -0.2 }}'}\" title=\"#{{epic.get('ref')}} {{epic.get('subject')}}\" class=\"belong-to-epic-pill\"></div></span>"),t.put("components/belong-to-epics/belong-to-epics-text.html","<span tg-repeat=\"epic in immutable_epics track by epic.get('id')\" class=\"belong-to-epic-text-wrapper\"><a href=\"\" tg-nav=\"project-epics-detail:project=epic.getIn(['project', 'slug']),ref=epic.get('ref')\" ng-bind-html=\"'#'+epic.get('ref')+' '+epic.get('subject') | emojify\" class=\"belong-to-epic-text\"></a><span ng-style=\"::{'background-color': epic.get('color')}\" translate=\"EPICS.EPIC\" class=\"belong-to-epic-label\"></span></span>"),t.put("components/board-zoom/board-zoom.html",'\n<input type="range" min="0" max="{{levels - 1}}" step="1" ng-model="value" ng-model-options="{ debounce: 200 }" tg-bind-scope="tg-bind-scope" class="range-slider"/>'),t.put("components/card/card.html",'\n<div ng-class="{\'card-blocked\': vm.item.getIn([\'model\', \'is_blocked\']), \'archived\': vm.archived}" class="card-inner {{\'zoom-\' + vm.zoomLevel}}">\n <div ng-if="vm.visible(\'tags\')" class="card-tags"><span tg-repeat="tag in vm.item.get(\'colorized_tags\') track by tag.get(\'name\')" style="background-color: {{tag.get(\'color\')}}" title="{{tag.get(\'name\')}}" ng-if="tag.get(\'color\')" class="card-tag"></span></div>\n <div class="card-owner">\n <div ng-if="vm.item.get(\'assigned_to\') &amp;&amp; (!vm.hasMultipleAssignedUsers() || !vm.visible(\'owner\'))" class="card-owner-info">\n <div class="card-owner-avatar"><img ng-class="{\'is-iocaine\': vm.item.getIn([\'model\', \'is_iocaine\'])}" tg-avatar="vm.item.get(\'assigned_to\')"/></div><span ng-if="vm.visible(\'owner\') &amp;&amp; !vm.hasMultipleAssignedUsers()" class="card-owner-name">{{vm.item.getIn([\'assigned_to\', \'full_name\'])}}</span>\n <div ng-if="!vm.visible(\'owner\')">\n <h2 class="card-title"><a href="" tg-ctrl-click-disable="tg-ctrl-click-disable" tg-nav="{{vm.getNavKey()}}:project=vm.project.slug,ref=vm.item.getIn([\'model\', \'ref\'])" tg-nav-get-params="{&quot;kanban-status&quot;: {{vm.item.getIn([\'model\', \'status\'])}}}" title="#{{ ::vm.item.getIn([\'model\', \'ref\']) }} {{ vm.item.getIn([\'model\', \'subject\'])}}"><span ng-if="vm.visible(\'ref\')">{{::"#" + vm.item.getIn([\'model\', \'ref\'])}}</span><span ng-if="vm.visible(\'subject\')" ng-bind-html="vm.item.getIn([\'model\', \'subject\']) | emojify" class=""></span>\n <tg-belong-to-epics format="pill" ng-if="vm.item.getIn([\'model\', \'epics\'])" epics="vm.item.getIn([\'model\', \'epics\'])"></tg-belong-to-epics></a></h2>\n </div>\n </div>\n <div ng-if="vm.item.get(\'assigned_to\') &amp;&amp; vm.hasMultipleAssignedUsers() &amp;&amp; vm.visible(\'owner\')" class="card-owner-info multiple">\n <div tg-repeat="assignedUser in vm.item.get(\'assigned_users\')" class="card-owner-avatar"><img ng-class="{\'is-iocaine\': vm.item.getIn([\'model\', \'is_iocaine\'])}" tg-avatar="assignedUser"/></div>\n <div ng-if="!vm.visible(\'owner\')">\n <h2 class="card-title"><a href="" tg-ctrl-click-disable="tg-ctrl-click-disable" tg-nav="{{vm.getNavKey()}}:project=vm.project.slug,ref=vm.item.getIn([\'model\', \'ref\'])" tg-nav-get-params="{&quot;kanban-status&quot;: {{vm.item.getIn([\'model\', \'status\'])}}}" title="#{{ ::vm.item.getIn([\'model\', \'ref\']) }} {{ vm.item.getIn([\'model\', \'subject\'])}}"><span ng-if="vm.visible(\'ref\')">{{::"#" + vm.item.getIn([\'model\', \'ref\'])}}</span><span ng-if="vm.visible(\'subject\')" ng-bind-html="vm.item.getIn([\'model\', \'subject\']) | emojify" class=""></span>\n <tg-belong-to-epics format="pill" ng-if="vm.item.getIn([\'model\', \'epics\'])" epics="vm.item.getIn([\'model\', \'epics\'])"></tg-belong-to-epics></a></h2>\n </div>\n </div>\n <div ng-if="!vm.item.get(\'assigned_to\')" class="card-owner-info"><img ng-src="/v-1525361023952/images/unnamed.png"/><span ng-if="vm.visible(\'owner\')" translate="COMMON.ASSIGNED_TO.NOT_ASSIGNED" class="card-owner-name"></span>\n <div ng-if="!vm.visible(\'owner\')">\n <h2 class="card-title"><a href="" tg-ctrl-click-disable="tg-ctrl-click-disable" tg-nav="{{vm.getNavKey()}}:project=vm.project.slug,ref=vm.item.getIn([\'model\', \'ref\'])" tg-nav-get-params="{&quot;kanban-status&quot;: {{vm.item.getIn([\'model\', \'status\'])}}}" title="#{{ ::vm.item.getIn([\'model\', \'ref\']) }} {{ vm.item.getIn([\'model\', \'subject\'])}}"><span ng-if="vm.visible(\'ref\')">{{::"#" + vm.item.getIn([\'model\', \'ref\'])}}</span><span ng-if="vm.visible(\'subject\')" ng-bind-html="vm.item.getIn([\'model\', \'subject\']) | emojify" class=""></span>\n <tg-belong-to-epics format="pill" ng-if="vm.item.getIn([\'model\', \'epics\'])" epics="vm.item.getIn([\'model\', \'epics\'])"></tg-belong-to-epics></a></h2>\n </div>\n </div>\n <div ng-if="vm.visible(\'owner\')" tg-check-permission="{{vm.getModifyPermisionKey()}}" class="card-owner-actions"><a ng-click="!$event.ctrlKey &amp;&amp; !$event.metaKey &amp;&amp; vm.onClickAssignedTo({id: vm.item.get(\'id\')})" href="" class=" card-owner-assign">\n <tg-svg svg-icon="icon-add-user"></tg-svg><span translate="COMMON.CARD.ASSIGN_TO"></span></a>\n <div class="card-actions"><a href="" ng-click="!$event.ctrlKey &amp;&amp; !$event.metaKey &amp;&amp; vm.onClickEdit({id: vm.item.get(\'id\')})" tg-loading="vm.item.get(\'loading-edit\')" title="{{ \'COMMON.CARD.EDIT\' | translate }}" class=" card-edit">\n <tg-svg svg-icon="icon-edit"></tg-svg></a><a href="" ng-click="!$event.ctrlKey &amp;&amp; !$event.metaKey &amp;&amp; vm.onClickDelete({id: vm.item.get(\'id\')})" tg-loading="vm.item.get(\'loading-delete\')" title="{{ \'COMMON.CARD.DELETE\' | translate }}" tg-check-permission="{{vm.getDeletePermisionKey()}}" class=" card-delete">\n <tg-svg svg-icon="icon-trash"></tg-svg></a></div>\n </div>\n </div>\n <div ng-if="vm.visible(\'owner\')">\n <h2 class="card-title"><a href="" tg-ctrl-click-disable="tg-ctrl-click-disable" tg-nav="{{vm.getNavKey()}}:project=vm.project.slug,ref=vm.item.getIn([\'model\', \'ref\'])" tg-nav-get-params="{&quot;kanban-status&quot;: {{vm.item.getIn([\'model\', \'status\'])}}}" title="#{{ ::vm.item.getIn([\'model\', \'ref\']) }} {{ vm.item.getIn([\'model\', \'subject\'])}}"><span ng-if="vm.visible(\'ref\')">{{::"#" + vm.item.getIn([\'model\', \'ref\'])}}</span><span ng-if="vm.visible(\'subject\')" ng-bind-html="vm.item.getIn([\'model\', \'subject\']) | emojify" class=""></span>\n <tg-belong-to-epics format="pill" ng-if="vm.item.getIn([\'model\', \'epics\'])" epics="vm.item.getIn([\'model\', \'epics\'])"></tg-belong-to-epics></a></h2>\n </div>\n <div ng-if="vm.visible(\'extra_info\')" ng-class="{\'empty-tasks\': !vm.item.getIn([\'model\', \'tasks\']).size}" class="card-data"><span ng-if="vm.item.getIn([\'model\', \'total_points\']) === null &amp;&amp; vm.visible(\'empty_extra_info\')" translate="US.NOT_ESTIMATED" class="card-estimation not-estimated"></span><span ng-if="vm.item.getIn([\'model\', \'total_points\'])" class="card-estimation">{{"COMMON.FIELDS.POINTS" | translate}} {{vm.item.getIn([\'model\', \'total_points\'])}}</span>\n <div class="card-statistics">\n <tg-due-date due-date="vm.item.getIn([\'model\', \'due_date\'])" due-date-status="vm.item.getIn([\'model\', \'due_date_status\'])" is-closed="vm.item.getIn([\'model\', \'is_closed\'])" class="statistic card-due-date"></tg-due-date>\n <div ng-if="vm.item.getIn([\'model\', \'is_iocaine\'])" title="{{\'COMMON.IOCAINE_TEXT\' | translate}}" class="statistic card-iocaine">\n <tg-svg svg-icon="icon-iocaine"></tg-svg>\n </div>\n <div ng-class="{\'active\': vm.item.getIn([\'model\', \'is_voter\'])}" ng-if="vm.item.getIn([\'model\', \'total_voters\']) || vm.visible(\'empty_extra_info\')" class="statistic card-votes">\n <tg-svg svg-icon="icon-upvote"></tg-svg><span>{{vm.item.getIn([\'model\', \'total_voters\'])}}</span>\n </div>\n <div ng-if="vm.item.getIn([\'model\', \'watchers\']).size || vm.visible(\'empty_extra_info\')" class="statistic card-watchers">\n <tg-svg svg-icon="icon-watch"></tg-svg><span>{{vm.item.getIn([\'model\', \'watchers\']).size}}</span>\n </div>\n <div ng-if="vm.item.getIn([\'model\', \'total_comments\']) || vm.visible(\'empty_extra_info\')" class="statistic card-comments">\n <tg-svg svg-icon="icon-bubble-empty"></tg-svg><span>{{vm.item.getIn([\'model\', \'total_comments\'])}}</span>\n </div>\n <div ng-if="vm.item.getIn([\'model\', \'attachments\']).size || vm.visible(\'empty_extra_info\')" class="statistic card-attachments">\n <tg-svg svg-icon="icon-attachment"></tg-svg><span>{{vm.item.getIn([\'model\', \'attachments\']).size}}</span>\n </div>\n </div>\n </div>\n <div ng-if="vm.visible(\'extra_info\') &amp;&amp; vm.item.getIn([\'model\', \'tasks\']).size" class="card-completion">\n <div class="card-completion-bar"></div>\n <div ng-style="{width: vm.closedTasksPercent() + \'%\'}" class="card-completion-percentage"></div><span class="card-tooltip">tasks {{vm.getClosedTasks().size}}/{{vm.item.getIn([\'model\', \'tasks\']).size}}</span>\n </div>\n <ul ng-if="vm.isRelatedTasksVisible()" class="card-tasks">\n <li tg-repeat="task in vm.item.getIn([\'model\', \'tasks\'])" class="card-task"><a href="#" tg-nav="project-tasks-detail:project=vm.project.slug,ref=task.get(\'ref\')" ng-class="{\'closed-task\': task.get(\'is_closed\'), \'blocked-task\': task.get(\'is_blocked\')}" ng-bind-html="\'#\'+task.get(\'ref\')+\' \'+task.get(\'subject\') | emojify"></a></li>\n </ul>\n <tg-card-slideshow ng-if="vm.isSlideshowVisible()" images="vm.item.get(\'images\')"></tg-card-slideshow>\n <div ng-click="!$event.ctrlKey &amp;&amp; !$event.metaKey &amp;&amp; vm.toggleFold()" ng-if="vm.visible(\'unfold\') &amp;&amp; (vm.hasTasks() || vm.hasVisibleAttachments())" role="button" class="card-unfold ng-animate-disabled">\n <tg-svg svg-icon="icon-view-more"></tg-svg>\n </div>\n <div tg-loading="vm.item.get(\'loading-extra\')" class="loading-extra"></div>\n</div>\n<div class="card-transit-multi">\n <div class="fake-us">\n <div class="fake-img"></div>\n <div class="column">\n <div class="fake-text"></div>\n <div class="fake-text"></div>\n </div>\n </div>\n <div class="fake-us">\n <div class="fake-img"></div>\n <div class="column">\n <div class="fake-text"></div>\n <div class="fake-text"></div>\n </div>\n </div>\n</div>'),t.put("components/card-slideshow/card-slideshow.html",'\n<div ng-if="vm.images.size" class="card-slideshow">\n <tg-svg ng-click="vm.previous()" ng-if="vm.images.size &gt; 1" svg-icon="icon-arrow-left" class="slideshow-icon slideshow-left"></tg-svg>\n <tg-svg ng-click="vm.next()" ng-if="vm.images.size &gt; 1" svg-icon="icon-arrow-right" class="slideshow-icon slideshow-right"></tg-svg>\n <div ng-if="$index == vm.index" tg-repeat="image in vm.images track by image.get(\'id\')" class="card-slideshow-wrapper">\n <tg-preload-image preload-src="{{image.get(\'thumbnail_card_url\')}}"><img ng-src="{{image.get(\'thumbnail_card_url\')}}"/></tg-preload-image>\n </div>\n</div>'),t.put("components/color-selector/color-selector.html",'\n<div ng-if="!vm.userCanChangeColor()" class="color-selector">\n <div ng-class="{\'empty-color\': !vm.color}" ng-style="{\'background\': vm.color}" class="tag-color disabled "></div>\n</div>\n<div ng-if="vm.userCanChangeColor()" class="color-selector">\n <div ng-click="vm.toggleColorList()" ng-class="{\'empty-color\': !vm.color}" ng-style="{\'background\': vm.color}" class="tag-color "></div>\n <div ng-if="vm.displayColorList" class="color-selector-dropdown">\n <ul class="color-selector-dropdown-list ">\n <li ng-repeat="color in vm.colorList" ng-style="{\'background\': color}" ng-title="color" ng-click="vm.onSelectDropdownColor(color)" class="color-selector-option"></li>\n <li ng-if="!vm.isColorRequired" ng-click="vm.onSelectDropdownColor(null)" class="empty-color"></li>\n </ul>\n <div class="custom-color-selector">\n <div ng-if="!vm.customColor" class="display-custom-color empty-color"></div>\n <div class="display-custom-color-wrapper">\n <div ng-if="vm.customColor" ng-style="{\'background\': vm.customColor}" ng-click="vm.onSelectDropdownColor(vm.customColor)" class="display-custom-color"></div>\n </div>\n <input type="text" maxlength="7" placeholder="Type hex code" ng-model="vm.customColor" ng-keydown="vm.onKeyDown($event)" class="custom-color-input"/>\n </div>\n </div>\n</div>'),t.put("components/due-date/due-date-button.html",'\n<label ng-if="vm.visible()" ng-disabled="vm.disabled()" ng-class="vm.color()" ng-attr-title="{{ vm.title() }}" ng-click="vm.setDueDate()" class="due-date-button button-gray is-editable">\n <tg-svg svg-icon="icon-clock"></tg-svg>\n</label>'),t.put("components/due-date/due-date-icon.html",'\n<tg-svg ng-if="vm.visible()" svg-icon="icon-clock" ng-class="vm.color()" ng-attr-title="{{ vm.title() }}" class="due-date-icon"></tg-svg>'),
t.put("components/filter/filter.html",'\n<h1><span translate="COMMON.FILTERS.TITLE" class="title"></span></h1>\n<form name="vm.filtersForm">\n <fieldset>\n <input type="text" placeholder="{{\'COMMON.FILTERS.INPUT_PLACEHOLDER\' | translate}}" ng-model="vm.q" ng-model-options="{ debounce: 200 }" ng-change="vm.changeQ()" class=""/>\n <tg-svg svg-icon="icon-search" title="{{\'COMMON.FILTERS.TITLE_ACTION_SEARCH\' | translate}}" class="search-action"></tg-svg>\n </fieldset>\n</form>\n<div class="filters-step-cat">\n <div class="filters-applied">\n <div ng-repeat="it in vm.selectedFilters track by it.key" class="single-filter ng-animate-disabled"><span ng-attr-style="{{it.color ? \'border-left: 3px solid \' + it.color: \'\'}}" ng-if="it.dataType === \'tags\'" ng-bind-html="it.name | emojify" class="name"></span><span ng-if="it.dataType !== \'tags\'" ng-attr-style="{{it.color ? \'border-left: 3px solid \' + it.color: \'\'}}" class="name">{{it.name}}</span><a ng-click="vm.unselectFilter(it)" href="" class="remove-filter ">\n <tg-svg svg-icon="icon-close"></tg-svg></a></div><a ng-click="vm.customFilterForm = true" ng-if="vm.selectedFilters.length &amp;&amp; !vm.customFilterForm" href="" title="{{\'COMMON.SAVE\' | translate}}" translate="COMMON.FILTERS.ACTION_SAVE_CUSTOM_FILTER" class="button button-gray save-filters ng-animate-disabled "></a>\n <form ng-if="vm.customFilterForm" ng-submit="vm.saveCustomFilter()">\n <input tg-autofocus="tg-autofocus" ng-model="vm.customFilterName" type="text" placeholder="{{\'COMMON.FILTERS.PLACEHOLDER_FILTER_NAME\' | translate}}" class="my-filter-name "/>\n </form>\n </div>\n <div class="filters-cats">\n <ul>\n <li ng-class="{selected: vm.isOpen(filter.dataType)}" ng-repeat="filter in vm.filters track by filter.dataType" ng-if="!(filter.hideEmpty &amp;&amp; filter.totalTaggedElements === 0)"><a ng-class="{selected: vm.isOpen(filter.dataType)}" ng-click="vm.toggleFilterCategory(filter.dataType)" href="" title="{{::filter.title}}" class="filters-cat-single "><span class="title">{{::filter.title}}</span>\n <tg-svg ng-if="!vm.isOpen(filter.dataType)" svg-icon="icon-arrow-right" class="ng-animate-disabled"></tg-svg>\n <tg-svg ng-if="vm.isOpen(filter.dataType)" svg-icon="icon-arrow-down" class="ng-animate-disabled"></tg-svg></a>\n <div ng-if="vm.isOpen(filter.dataType)" tg-filter-slide-down="tg-filter-slide-down" class="filter-list">\n <div ng-repeat="it in filter.content" ng-if="!vm.isFilterSelected(filter, it) &amp;&amp; !(it.count == 0 &amp;&amp; filter.hideEmpty)" ng-click="vm.selectFilter(filter, it)" class="single-filter ng-animate-disabled"><span ng-if="filter.dataType === \'tags\'" ng-attr-style="{{it.color ? \'border-left: 3px solid \' + it.color: \'\'}}" ng-bind-html="it.name | emojify" class="name"></span><span ng-if="filter.dataType !== \'tags\'" ng-attr-style="{{it.color ? \'border-left: 3px solid \' + it.color: \'\'}}" class="name">{{it.name}}</span><span ng-if="it.count &gt; 0" class="number ">{{it.count}}</span></div>\n </div>\n </li>\n <li ng-class="{selected: vm.isOpen(\'custom-filter\')}" ng-if="vm.customFilters.length &gt; 0" class="custom-filters "><a ng-class="{selected: vm.isOpen(\'custom-filter\')}" ng-click="vm.toggleFilterCategory(\'custom-filter\')" href="" title="{{\'COMMON.FILTERS.CATEGORIES.CUSTOM_FILTERS\' | translate}}" class="filters-cat-single"><span translate="COMMON.FILTERS.CATEGORIES.CUSTOM_FILTERS" class="title"></span>\n <tg-svg ng-if="!vm.isOpen(\'custom-filter\')" svg-icon="icon-arrow-right" class="ng-animate-disabled"></tg-svg>\n <tg-svg ng-if="vm.isOpen(\'custom-filter\')" svg-icon="icon-arrow-down" class="ng-animate-disabled"></tg-svg></a>\n <div ng-if="vm.isOpen(\'custom-filter\')" tg-filter-slide-down="tg-filter-slide-down" class="filter-list">\n <div ng-repeat="it in vm.customFilters" ng-click="vm.selectCustomFilter(it)" class="single-filter ng-animate-disabled "><span class="name">{{it.name}}</span><a ng-click="vm.removeCustomFilter(it)" href="" class="remove-filter ">\n <tg-svg svg-icon="icon-trash"></tg-svg></a></div>\n </div>\n </li>\n </ul>\n </div>\n</div>'),t.put("components/live-announcement/live-announcement.html",'\n<div ng-class="{visible: vm.open}" class="live-announcement">\n <div class="live-announcement-inner"><img src="/v-1525361023952/images/notification-decoration.png" alt="Loading..." class="anouncement-decoration"/>\n <div class="text">\n <h2 class="title">{{vm.title}}</h2>\n <p ng-bind-html="vm.desc" class="warning"></p><a ng-click="vm.close()" href="" ng-title="COMMON.CLOSE | translate" class="close">\n <tg-svg svg-icon="icon-close"></tg-svg></a>\n </div>\n </div>\n</div>'),t.put("components/project-menu/project-menu.html",'\n<nav ng-if="vm.project" ng-class="{\'menu-fixed\': vm.fixed}" class="menu">\n <div class="menu-container">\n <ul class="main-nav">\n <li id="nav-search"><a href="" ng-click="vm.search()" ng-class="{active: vm.active == \'search\'}" aria-label="{{\'PROJECT.SECTION.SEARCH\' | translate}}" tabindex="1">\n <tg-svg svg-icon="icon-search"></tg-svg><span translate="PROJECT.SECTION.SEARCH" class="helper"></span></a></li>\n <li id="nav-timeline"><a tg-nav="project:project=vm.project.get(\'slug\')" ng-class="{active: vm.active == \'project-timeline\'}" aria-label="{{\'PROJECT.SECTION.TIMELINE\' | translate}}" tabindex="2">\n <tg-svg svg-icon="icon-timeline"></tg-svg><span translate="PROJECT.SECTION.TIMELINE" class="helper"></span></a></li>\n <li id="nav-epics" ng-if="vm.menu.get(\'epics\')"><a tg-nav="project-epics:project=vm.project.get(\'slug\')" ng-class="{active: vm.active == \'epics\'}" aria-label="{{\'EPICS.TITLE\' | translate}}" tabindex="2">\n <tg-svg svg-icon="icon-epics"></tg-svg><span translate="EPICS.TITLE" class="helper"></span></a></li>\n <li id="nav-backlog" ng-if="vm.menu.get(\'backlog\')" ng-mouseover="backlogHover = true" ng-mouseleave="backlogHover = false" ng-init="backlogHover = false"><a tg-nav="project-backlog:project=vm.project.get(\'slug\')" ng-class="{active: vm.active == \'backlog\'}" aria-label="{{\'PROJECT.SECTION.BACKLOG\' | translate}}" tabindex="2">\n <tg-svg svg-icon="icon-scrum"></tg-svg></a><span ng-show="backlogHover" class="backlog-sprints-menu"><span translate="PROJECT.SECTION.BACKLOG"></span><a tg-repeat="sprint in vm.project.get(\'milestones\') track by sprint.get(\'id\')" ng-if="!sprint.get(\'closed\')" tg-nav="project-taskboard:project=vm.project.get(\'slug\'),sprint=sprint.get(\'slug\')">{{::sprint.get(\'name\')}}</a></span></li>\n <li id="nav-kanban" ng-if="vm.menu.get(\'kanban\')"><a tg-nav="project-kanban:project=vm.project.get(\'slug\')" ng-class="{active: vm.active == \'kanban\'}" aria-label="{{\'PROJECT.SECTION.KANBAN\' | translate}}" tabindex="3">\n <tg-svg svg-icon="icon-kanban"></tg-svg><span translate="PROJECT.SECTION.KANBAN" class="helper"></span></a></li>\n <li id="nav-issues" ng-if="vm.menu.get(\'issues\')"><a tg-nav="project-issues:project=vm.project.get(\'slug\')" ng-class="{active: vm.active == \'issues\'}" aria-label="{{\'PROJECT.SECTION.ISSUES\' | translate}}" tabindex="4">\n <tg-svg svg-icon="icon-issues"></tg-svg><span translate="PROJECT.SECTION.ISSUES" class="helper"></span></a></li>\n <li id="nav-wiki" ng-if="vm.menu.get(\'wiki\')"><a tg-nav="project-wiki:project=vm.project.get(\'slug\')" ng-class="{active: vm.active == \'wiki\'}" aria-label="{{\'PROJECT.SECTION.WIKI\' | translate}}" tabindex="5">\n <tg-svg svg-icon="icon-wiki"></tg-svg><span translate="PROJECT.SECTION.WIKI" class="helper"></span></a></li>\n <li id="nav-team"><a tg-nav="project-team:project=vm.project.get(\'slug\')" ng-class="{active: vm.active == \'team\'}" aria-label="{{\'PROJECT.SECTION.TEAM\' | translate}}" tabindex="6">\n <tg-svg svg-icon="icon-team"></tg-svg><span translate="PROJECT.SECTION.TEAM" class="helper"></span></a></li>\n <li id="nav-video" ng-if="vm.project.get(\'videoconferenceUrl\')"><a ng-href="{{vm.project.get(\'videoconferenceUrl\')}}" target="_blank" aria-label="{{\'PROJECT.SECTION.MEETUP\' | translate}}" tabindex="7">\n <tg-svg svg-icon="icon-bubble"></tg-svg><span translate="PROJECT.SECTION.MEETUP" class="helper"></span></a></li>\n <li id="nav-admin" ng-if="vm.project.get(\'i_am_admin\')"><a tg-nav="project-admin-home:project=vm.project.get(\'slug\')" ng-class="{active: vm.active == \'admin\'}" aria-label="{{\'PROJECT.SECTION.ADMIN\' | translate}}" tabindex="8">\n <tg-svg svg-icon="icon-settings"></tg-svg><span translate="PROJECT.SECTION.ADMIN" class="helper"></span></a></li>\n </ul>\n </div>\n</nav>'),t.put("components/terms-of-service-and-privacy-policy-notice/terms-of-service-and-privacy-policy-notice.html",'\n<p ng-if="privacyPolicyUrl &amp;&amp; termsOfServiceUrl" translate="LEGAL.TERMS_OF_SERVICE_AND_PRIVACY_POLICY_AD" translate-values="{termsOfServiceUrl: termsOfServiceUrl, privacyPolicyUrl: privacyPolicyUrl}" class="register-text"></p>'),t.put("components/tribe-button/tribe-button.html",'<a ng-href="{{::vm.tribeHost}}/taiga-integration/receive?url={{::vm.url}}&amp;project={{projectSlug}}&amp;us={{usId}}" title="{{ \'US.TRIBE.PUBLISH\' | translate }}" target="_blank" rel="nofollow" class="button-tribe"><img src="/v-1525361023952/images/tribe-logo.png" alt="{{ \'US.TRIBE.PUBLISH\' | translate }}" class="tribe-logo"/><span>{{ \'US.TRIBE.PUBLISH\' | translate }}</span></a>'),t.put("components/tribe-button/tribe-linked.html",'\n<div ng-class="{\'is-active\': vm.open, \'is-inactive\': vm.open == false}" class="tribe-linked js-tribe-linked">\n <div class="tribe-linked-inner">\n <div class="tribe-linked-header"><img ng-click="vm.show()" alt="" title="{{ \'US.TRIBE.PUBLISHED_AS_GIG\' | translate }}" src="/v-1525361023952/images/tribe-logo.png" class="tribe-logo"/>\n <p class="title">{{ "US.TRIBE.PUBLISHED_AS_GIG" | translate }}</p><a ng-click="vm.hide()" href="" title="{{ \'US.TRIBE.CLOSE\' | translate }}" class="close">\n <tg-svg svg-icon="icon-close" class="icon-remove"></tg-svg></a>\n </div><a href="{{::vm.tribeHost}}/gigs/{{gigId}}" title="gigTitle" target="_blank" rel="nofollow" class="gig-title">{{gigTitle}}</a><a href="{{::vm.tribeHost}}/gigs/{{gigId}}/link-with-task-manager?from=taiga" title="{{ \'US.TRIBE.EDIT_LINK\' | translate }}" rel="nofollow" class="delete-link">{{ \'US.TRIBE.EDIT_LINK\' | translate }}</a><a ng-href="{{::vm.tribeHost}}/gigs/sync/{{gigId}}?from=taiga" title="{{ \'US.TRIBE.SINCHRONIZE_LINK\' }}" rel="nofollow" class="synchronize-link button-tribe">{{ \'US.TRIBE.SYNCHRONIZE_LINK\' | translate }}</a>\n </div>\n</div>'),t.put("components/vote-button/vote-button.html",'<a href="" title="{{ \'COMMON.VOTE_BUTTON.BUTTON_TITLE\' | translate }}" ng-if="::vm.user" ng-click="vm.toggleVote()" ng-class="{\'active\': vm.item.is_voter, \'is-hover\': vm.item.is_voter &amp;&amp; vm.isMouseOver, \'disable\': !vm.user}" ng-mouseover="vm.showTextWhenMouseIsOver()" ng-mouseleave="vm.showTextWhenMouseIsLeave()" class="vote-inner">\n <tg-svg svg-icon="icon-upvote"></tg-svg><span title="{{ \'COMMON.VOTE_BUTTON.COUNTER_TITLE\'|translate:{total:vm.item.total_voters||0}:\'messageformat\' }}" tg-loading="vm.loading">{{ vm.item.total_voters }}</span></a><span ng-if="::!vm.user" class="vote-inner">\n <tg-svg svg-icon="icon-upvote"></tg-svg><span title="{{ \'COMMON.VOTE_BUTTON.COUNTER_TITLE\'|translate:{total:vm.item.total_voters||0}:\'messageformat\' }}">{{ ::vm.item.total_voters }}</span></span>'),t.put("components/watch-button/watch-button-ticket.html",'\n<div title="{{ \'COMMON.WATCH_BUTTON.COUNTER_TITLE\'|translate:{total:vm.item.watchers.length||0}:\'messageformat\' }}" tg-loading="vm.loading" class="ticket-watch-title">{{ vm.item.watchers.length }} {{\'COMMON.WATCHERS.WATCHERS\' | translate}}</div>\n<div class="ticket-watch-inner"><a href="" title="{{ \'COMMON.WATCH_BUTTON.BUTTON_TITLE\' | translate }}" ng-if="::vm.user" ng-click="vm.toggleWatch()" ng-class="{\'active\': vm.item.is_watcher, \'is-hover\': vm.item.is_watcher &amp;&amp; vm.isMouseOver}" ng-mouseover="vm.showTextWhenMouseIsOver()" ng-mouseleave="vm.showTextWhenMouseIsLeave()" class="ticket-watch-button"><span ng-if="!vm.item.is_watcher">\n <tg-svg svg-icon="icon-watch"></tg-svg><span>{{\'COMMON.WATCH_BUTTON.WATCH\' | translate}}</span></span><span ng-if="vm.item.is_watcher &amp;&amp; !vm.isMouseOver">\n <tg-svg svg-icon="icon-watch"></tg-svg><span>{{\'COMMON.WATCH_BUTTON.WATCHING\' | translate}}</span></span><span ng-if="vm.item.is_watcher &amp;&amp; vm.isMouseOver">\n <tg-svg svg-icon="icon-unwatch"></tg-svg><span>{{\'COMMON.WATCH_BUTTON.UNWATCH\' | translate}}</span></span></a><a href="" title="{{\'COMMON.WATCHERS.TITLE_ADD\' | translate}}" ng-click="vm.openWatchers()" tg-check-permission="{{vm.getPerms()}}" class="add-watcher"><span>+ {{\'COMMON.WATCHERS.ADD\' | translate}}</span></a></div>'),t.put("components/watch-button/watch-button.html",'<a href="" title="{{ \'COMMON.WATCH_BUTTON.BUTTON_TITLE\' | translate }}" ng-if="::vm.user" ng-click="vm.toggleWatch()" ng-class="{\'active\': vm.item.is_watcher, \'is-hover\': vm.item.is_watcher &amp;&amp; vm.isMouseOver}" ng-mouseover="vm.showTextWhenMouseIsOver()" ng-mouseleave="vm.showTextWhenMouseIsLeave()" class="track-button watch-button watch-container"><span class="track-inner">\n <tg-svg svg-icon="icon-watch"></tg-svg><span ng-if="!vm.item.is_watcher" translate="COMMON.WATCH_BUTTON.WATCH"></span><span ng-if="vm.item.is_watcher &amp;&amp; !vm.isMouseOver" translate="COMMON.WATCH_BUTTON.WATCHING"></span><span ng-if="vm.item.is_watcher &amp;&amp; vm.isMouseOver" translate="COMMON.WATCH_BUTTON.UNWATCH"></span></span><span title="{{ \'COMMON.WATCH_BUTTON.COUNTER_TITLE\'|translate:{total:vm.item.watchers.length||0}:\'messageformat\' }}" tg-loading="vm.loading" class="track-button-counter">{{ vm.item.watchers.length }}</span></a><span ng-if="::!vm.user" class="track-button watch-button watch-container"><span class="track-inner"><span class="track-icon">\n <tg-svg svg-icon="icon-watch"></tg-svg></span><span translate="COMMON.WATCH_BUTTON.WATCHERS"></span></span><span title="{{ \'COMMON.WATCH_BUTTON.COUNTER_TITLE\'|translate:{total:vm.item.watchers.length||0}:\'messageformat\' }}" tg-loading="vm.loading" class="track-button-counter">{{ vm.item.watchers.length }}</span></span>'),t.put("epics/create-epic/create-epic.html",'\n<tg-lightbox-close></tg-lightbox-close>\n<div class="create-epic-container">\n <h2 translate="EPICS.CREATE.TITLE" class="title"></h2>\n <form ng-submit="vm.createEpic()">\n <div class="subject-container">\n <div class="color-selector">\n <fieldset>\n <tg-color-selector is-color-required="true" init-color="vm.newEpic.color" on-select-color="vm.selectColor(color)"></tg-color-selector>\n </fieldset>\n </div>\n <div class="subject">\n <fieldset>\n <input type="text" name="subject" ng-model="vm.newEpic.subject" tg-auto-select="tg-auto-select" placeholder="{{\'COMMON.FIELDS.SUBJECT\' | translate}}" data-required="true" data-maxlength="140" class=""/>\n </fieldset>\n </div>\n </div>\n <fieldset>\n <select id="epic-status" name="status" ng-model="vm.newEpic.status" ng-options="s.id as s.name for s in vm.project.epic_statuses | orderBy:\'order\'" class=""></select>\n </fieldset>\n <fieldset class="tags-block">\n <tg-tag-line-common project="vm.project" tags="vm.newEpic.tags" permissions="add_epic" on-add-tag="vm.addTag(name, color)" on-delete-tag="vm.deleteTag(tag)"></tg-tag-line-common>\n </fieldset>\n <fieldset>\n <textarea ng-attr-placeholder="{{\'EPICS.CREATE.PLACEHOLDER_DESCRIPTION\' | translate}}" ng-model="vm.newEpic.description" class=""></textarea>\n </fieldset>\n <fieldset>\n <tg-attachments-simple attachments="vm.attachments" on-add="vm.addAttachment(attachment)"></tg-attachments-simple>\n </fieldset>\n <div class="settings">\n <fieldset class="team-requirement">\n <input type="checkbox" name="team_requirement" ng-model="vm.newEpic.team_requirement" id="team-requirement"/>\n <label for="team-requirement" translate="EPICS.CREATE.TEAM_REQUIREMENT" class="requirement trans-button "></label>\n </fieldset>\n <fieldset class="client-requirement">\n <input type="checkbox" name="client_requirement" ng-model="vm.newEpic.client_requirement" id="client-requirement"/>\n <label for="client-requirement" translate="EPICS.CREATE.CLIENT_REQUIREMENT" class="requirement trans-button "></label>\n </fieldset>\n <fieldset>\n <input type="checkbox" name="blocked" ng-model="vm.newEpic.is_blocked" id="blocked" ng-click="displayBlockedReason = !displayBlockedReason"/>\n <label for="blocked" translate="EPICS.CREATE.BLOCKED" class="requirement trans-button blocked "></label>\n </fieldset>\n </div>\n <fieldset ng-if="displayBlockedReason">\n <input type="text" name="blocked_note" maxlength="140" ng-model="vm.newEpic.blocked_note" placeholder="{{\'EPICS.CREATE.BLOCKED_NOTE_PLACEHOLDER\' | translate}}" class=""/>\n </fieldset>\n <fieldset>\n <button type="submit" tg-loading="vm.loading" title="{{ \'EPICS.CREATE.CREATE_EPIC\' | translate }}" translate="EPICS.CREATE.CREATE_EPIC" class="button-green create-epic-button "></button>\n </fieldset>\n </form>\n</div>'),t.put("epics/dashboard/epics-dashboard.html",'\n<div ng-init="vm.loadInitialData()" class="wrapper">\n <tg-project-menu></tg-project-menu>\n <section role="main" class="main epics">\n <header class="header-with-actions">\n <h1 tg-main-title="tg-main-title" project-name="vm.project.get(\'name\')" i18n-section-name="{{vm.sectionName}}"></h1>\n <div ng-if="vm.epics.size &amp;&amp; vm.canCreateEpics()" class="action-buttons">\n <button translate="EPICS.DASHBOARD.ADD" title="{{ EPICS.DASHBOARD.ADD_TITLE | translate }}" ng-click="vm.onCreateEpic()" class="button-green "></button>\n </div>\n </header>\n <tg-epics-table ng-if="vm.epics.size"></tg-epics-table>\n <section ng-if="!vm.epics.size" class="empty-epics empty-large"><img src="/v-1525361023952/images/empty/empty_des.png" ng-title="EPICS.EMPTY.HELP | translate"/>\n <h1 translate="EPICS.EMPTY.TITLE" class="title"></h1>\n <p translate="EPICS.EMPTY.EXPLANATION"></p><a translate="EPICS.EMPTY.HELP" href="https://tree.taiga.io/support/epics/what-is-an-epic/" target="_blank" ng-title="EPICS.EMPTY.HELP | translate"></a>\n <button ng-if="vm.canCreateEpics()" translate="EPICS.DASHBOARD.ADD" title="{{ EPICS.DASHBOARD.ADD_TITLE | translate }}" ng-click="vm.onCreateEpic()" class="create-epic button-green"></button>\n </section>\n </section>\n</div>'),t.put("epics/related-userstories/related-userstories.html",'\n<section ng-if="vm.showRelatedUserStoriesSection()" class="related-userstories">\n <div class="related-userstories-header"><span translate="COMMON.RELATED_USERSTORIES" class="related-userstories-title"></span>\n <tg-related-userstories-create tg-check-permission="modify_epic" show-create-related-userstories-lightbox="vm.showCreateRelatedUserstoriesLightbox" project="vm.project" epic="vm.epic" epic-userstories="vm.userstories" load-related-userstories="vm.loadRelatedUserstories()"></tg-related-userstories-create>\n </div>\n <div tg-related-userstories-sortable="vm.reorderRelatedUserstory(us, newIndex)" class="related-userstories-body">\n <tg-related-userstory-row tg-repeat="us in vm.userstories track by us.get(\'id\')" ng-class="{closed: us.get(\'is_closed\'), blocked: us.get(\'is_blocked\'), sortable: vm.userCanSort()}" userstory="us" epic="vm.epic" project="vm.project" load-related-userstories="vm.loadRelatedUserstories()" tg-bind-scope="tg-bind-scope" class="row"></tg-related-userstory-row>\n </div>\n <div tg-related-userstories-create-form="tg-related-userstories-create-form"></div>\n</section>'),t.put("home/duties/duty.html","<a href=\"{{ ::vm.duty.get('url') }}\" title=\"{{ ::duty.get('subject') }}\" ng-class=\"{'blocked': vm.duty.get('is_blocked'), 'blocked-project': vm.duty.getIn(['project', 'blocked_code'])}\" class=\"list-itemtype-ticket\">\n <div ng-if=\"vm.type == 'working-on'\" class=\"list-itemtype-avatar\"><img tg-project-logo-small-src=\"::vm.duty.get('project')\" title=\"{{ ::vm.duty.getIn(['project', 'name']) }}\"/></div>\n <div ng-if=\"vm.type == 'watching'\" class=\"list-itemtype-avatar\"><img ng-if=\"vm.duty.get('assigned_to_extra_info')\" title=\"{{ ::vm.duty.get('assigned_to_extra_info').get('full_name_display') }}\" tg-avatar=\"vm.duty.get('assigned_to_extra_info')\"/><img ng-if=\"!vm.duty.get('assigned_to_extra_info')\" src=\"/v-1525361023952/images/unnamed.png\" title=\"{{'ACTIVITY.VALUES.UNASSIGNED' | translate}}\"/></div>\n <div class=\"list-itemtype-ticket-data\">\n <p><span class=\"ticket-project\">{{ ::vm.duty.getIn(['project', 'name']) }}</span><span class=\"ticket-type\">{{ ::vm.getDutyType() }}</span><span ng-style=\"{'color': vm.duty.get('status_extra_info').get('color')}\" class=\"ticket-status\">{{ ::vm.duty.get('status_extra_info').get('name') }}</span>\n <tg-svg ng-if=\"vm.duty.getIn(['project', 'blocked_code'])\" svg-icon=\"icon-blocked-project\" svg-title-translate=\"PROJECT.BLOCKED_PROJECT.BLOCKED\"></tg-svg>\n </p>\n <h2><span tg-bo-ref=\"duty.get('ref')\" class=\"ticket-id\"></span><span class=\"ticket-title\"><span ng-if=\"::vm.duty.get('is_blocked')\" title=\"{{::vm.duty.get('blocked_note')}}\" class=\"ticket-blocked\">{{ 'COMMON.BLOCKED' | translate }}</span><span ng-bind-html=\"duty.get('subject') | emojify\"></span></span></h2>\n </div></a>"),t.put("home/projects/home-project-list.html",'\n<section ng-if="vm.projects.size" class="home-project-list">\n <div tg-bind-scope="tg-bind-scope" tg-repeat="project in vm.projects" ng-class="{\'blocked-project\': project.get(\'blocked_code\')}" class="home-project">\n <div href="#" tg-nav="project:project=project.get(\'slug\')" class="project-card-inner">\n <div class="project-card-header"><a href="#" tg-nav="project:project=project.get(\'slug\')" title="{{::project.get(\'name\')}}" class="project-card-logo"><img tg-project-logo-small-src="::project" alt="{{::project.get(\'name\')}}"/></a>\n <h3 class="project-card-name"><a href="#" tg-nav="project:project=project.get(\'slug\')" title="{{::project.get(\'name\')}}" class="project-title">{{::project.get(\'name\')}}</a>\n <tg-svg ng-if="project.get(\'is_looking_for_people\')" svg-icon="icon-recruit" svg-title="{{ ::project.get(\'looking_for_people_note\') }}" class="look-for-people"></tg-svg>\n <tg-svg ng-if="project.get(\'i_am_owner\')" svg-icon="icon-badge" svg-title="COMMON.OWNER" class="owner-badge"></tg-svg>\n <tg-svg ng-if="project.get(\'blocked_code\')" svg-icon="icon-blocked-project" svg-title-translate="PROJECT.BLOCKED_PROJECT.BLOCKED"></tg-svg>\n </h3>\n </div>\n <p class="project-card-description">{{::project.get(\'description\')| limitTo:100 }}<span ng-if="::project.get(\'description\').length &gt; 100">...</span></p>\n <div class="project-card-statistics"><span ng-class="{\'active\': project.get(\'is_fan\')}" title="{{ \'PROJECT.FANS_COUNTER_TITLE\'|translate:{total:project.get(\'total_fans\')||0}:\'messageformat\' }}" class="statistic">\n <tg-svg svg-icon="icon-like"></tg-svg><span>{{::project.get(\'total_fans\')}}</span></span><span ng-class="{\'active\': project.get(\'is_watcher\')}" title="{{ \'PROJECT.WATCHERS_COUNTER_TITLE\'|translate:{total:project.get(\'total_watchers\')||0}:\'messageformat\' }}" class="statistic">\n <tg-svg svg-icon="icon-watch"></tg-svg><span>{{::project.get(\'total_watchers\')}}</span></span><span ng-class="{\'active\': project.get(\'i_am_member\')}" title="{{ \'PROJECT.MEMBERS_COUNTER_TITLE\'|translate:{total:project.get(\'members\').size||0}:\'messageformat\' }}" class="statistic">\n <tg-svg svg-icon="icon-team"></tg-svg><span class="statistics-num">{{ ::project.get(\'members\').size }}</span></span><span ng-if="::project.get(\'is_private\')" title="{{ \'PROJECT.PRIVATE\' | translate }}" class="statistic">\n <tg-svg svg-icon="icon-lock"></tg-svg></span></div>\n </div>\n </div><a href="#" ng-show="vm.projects.size" tg-nav="projects" title="{{\'PROJECT.NAVIGATION.MANAGE_PROJECTS\' | translate}}" translate="PROJECT.NAVIGATION.MANAGE_PROJECTS" class="see-more-projects-btn button-gray"></a>\n</section>\n<section ng-if="vm.projects != undefined &amp;&amp; vm.projects.size === 0" class="projects-empty">\n <tg-svg svg-icon="icon-project"></tg-svg>\n <p translate="HOME.EMPTY_PROJECT_LIST"></p><a href="#" tg-nav="create-project" title="{{\'PROJECT.NAVIGATION.TITLE_CREATE_PROJECT\' | translate}}" translate="PROJECT.NAVIGATION.ACTION_CREATE_PROJECT" class="create-project-button button-green"></a>\n</section>'),t.put("home/working-on/empty.html",'\n<div class="empty-ticket">\n <div class="avatar"></div>\n <div class="data">\n <div class="line"></div>\n <div class="line"></div>\n </div>\n</div>\n<div class="empty-ticket">\n <div class="avatar"></div>\n <div class="data">\n <div class="line"></div>\n <div class="line"></div>\n </div>\n</div>'),t.put("home/working-on/working-on.html",'\n<section class="working-on-container">\n <header>\n <h1 translate="HOME.WORKING_ON_SECTION" class="title-bar working-on-title"></h1>\n </header>\n <div ng-if="vm.assignedTo.size" class="working-on">\n <div tg-duty="duty" type="working-on" tg-repeat="duty in vm.assignedTo" class="duty-single"></div>\n </div>\n <div ng-if="vm.assignedTo != undefined &amp;&amp; vm.assignedTo.size === 0" class="working-on-empty">\n <p translate="HOME.EMPTY_WORKING_ON"></p>\n <div class="empty-ticket">\n <div class="avatar"></div>\n <div class="data">\n <div class="line"></div>\n <div class="line"></div>\n </div>\n </div>\n <div class="empty-ticket">\n <div class="avatar"></div>\n <div class="data">\n <div class="line"></div>\n <div class="line"></div>\n </div>\n </div>\n </div>\n</section>\n<section class="watching-container">\n <header>\n <h1 translate="HOME.WATCHING_SECTION" class="title-bar watching-title"></h1>\n </header>\n <div ng-if="vm.watching.size" class="watching">\n <div tg-duty="duty" type="watching" tg-repeat="duty in vm.watching" ng-class="{\'blocked\': duty.is_blocked}" class="duty-single"></div>\n </div>\n <div ng-if="vm.watching != undefined &amp;&amp; vm.watching.size === 0" class="watching-empty">\n <p translate="HOME.EMPTY_WATCHING"></p>\n <div class="empty-ticket">\n <div class="avatar"></div>\n <div class="data">\n <div class="line"></div>\n <div class="line"></div>\n </div>\n </div>\n <div class="empty-ticket">\n <div class="avatar"></div>\n <div class="data">\n <div class="line"></div>\n <div class="line"></div>\n </div>\n </div>\n </div>\n</section>'),t.put("invite-members/invite-members-form/invite-members-form.html",'\n<form ng-submit="vm.sendInvites(vm.inviteContacts)" class="invite-members-form">\n <ul class="invite-members-form-list">\n <li ng-repeat="contact in vm.contactsToInvite | toMutable track by contact.id" class="invite-members-single ">\n <div class="invite-members-single-data"><img tg-avatar="contact" alt="{{contact.full_name}}" class="invite-members-single-avatar"/><span class="invite-members-single-name">{{contact.full_name}}</span><a href="" ng-click="vm.onRemoveInvitedContact({contact: contact})" translate="LIGHTBOX.ADD_MEMBER.REMOVE" class="invite-members-single-remove "></a></div>\n <select ng-model="vm.rolesValues[contact.username]" id="add-member-suggest-role-dropdown" ng-options="role.id as role.name for role in vm.roles | toMutable track by role.id" required="required" class="invite-members-single-role ">\n <option value="" selected="selected" translate="LIGHTBOX.ADD_MEMBER.CHOOSE_ROLE"></option>\n </select>\n </li>\n <li ng-repeat="userMail in vm.emailsToInvite | toMutable" class="invite-members-single ">\n <div class="invite-members-single-data"><span class="invite-members-single-email">{{userMail.email}}</span><a href="" ng-click="vm.onRemoveInvitedEmail({email: userMail})" translate="LIGHTBOX.ADD_MEMBER.REMOVE" class="invite-members-single-remove "></a></div>\n <select ng-model="vm.rolesValues[userMail.email]" id="add-email-suggest-role-dropdown" ng-options="role.id as role.name for role in vm.roles | toMutable track by role.id" required="required" class="invite-members-single-role ">\n <option value="" translate="LIGHTBOX.ADD_MEMBER.CHOOSE_ROLE"></option>\n </select>\n </li>\n </ul>\n <div ng-if="vm.contactsToInvite.size + vm.emailsToInvite.size &lt; vm.membersLimit" class="invite-members-single-new ">\n <tg-svg svg-icon="icon-add" ng-click="vm.onDisplayContactList()" class="invite-members-single-new-btn"></tg-svg>\n </div>\n <tg-lightbox-add-members-warning-message ng-if="vm.showWarningMessage" project="vm.project"></tg-lightbox-add-members-warning-message>\n <textarea ng-model="vm.inviteContactsMessage" placeholder="{{\'LIGHTBOX.ADD_MEMBER.PLACEHOLDER_INVITATION_TEXT\' | translate}}" maxlength="250" class="invite-members-single-msg"></textarea>\n <button type="submit" translate="LIGHTBOX.ADD_MEMBER.INVITE" ng-disabled="!vm.areRolesValidated" tg-loading="vm.loading" class="button-green invite-members-single-send "></button>\n <p translate="LIGHTBOX.ADD_MEMBER.HELP_TEXT" class="invite-members-single-help"></p>\n</form>'),t.put("invite-members/suggest-add-members/suggest-add-members.html",'\n<div class="add-member-suggest">\n <form class="add-member-suggest-filter">\n <input type="text" ng-model="vm.contactQuery" placeholder="{{\'LIGHTBOX.ADD_MEMBER.PLACEHOLDER\' | translate}}" ng-keyup="vm.filterContacts()" class="add-member-suggest-filter-input"/><span ng-if="!vm.filteredContacts.size" ng-class="{\'to-send\': vm.isEmail()}" translate="LIGHTBOX.ADD_MEMBER.ADD_EMAIL" class="add-member-suggest-filter-hint"></span>\n <button ng-click="vm.onInviteEmail({email: vm.contactQuery})" ng-if="vm.isEmail()" class="add-member-suggest-filter-addmail ">\n <tg-svg svg-icon="icon-add-user"></tg-svg>\n </button>\n </form>\n <ul class="add-member-suggest-list">\n <li tg-repeat="contact in vm.filteredContacts" ng-click="vm.setInvited(contact)" class="add-member-suggest-single "><img tg-avatar="contact" alt="{{contact.get(\'full_name_display\')}}" class="add-member-suggest-avatar"/><span class="add-member-suggest-name">{{contact.get(\'full_name_display\')}}</span></li>\n </ul>\n</div>'),t.put("navigation-bar/dropdown-project-list/dropdown-project-list.html",'<a href="" title="Projects" tg-nav="projects">\n <tg-svg svg-icon="icon-project"></tg-svg></a>\n<div class="navbar-dropdown dropdown-project-list">\n <ul>\n <li tg-repeat="project in vm.projects track by project.get(\'id\')"><a href="#" tg-nav="project:project=project.get(\'slug\')" ng-class="{\'blocked-project\': project.get(\'blocked_code\')}"><span>{{::project.get("name")}}</span>\n <tg-svg svg-icon="icon-blocked-project" ng-if="project.get(\'blocked_code\')" svg-title="PROJECT.BLOCKED_PROJECT.BLOCKED"></tg-svg></a></li>\n </ul><a href="#" tg-nav="projects" title="{{\'PROJECT.NAVIGATION.MANAGE_PROJECTS\' | translate}}" translate="PROJECT.NAVIGATION.MANAGE_PROJECTS" class="see-more-projects-btn button-gray"></a>\n <div class="create-options"><a href="#" tg-nav="create-project" title="{{\'PROJECT.NAVIGATION.ACTION_CREATE_PROJECT\' | translate}}" translate="PROJECT.NAVIGATION.ACTION_CREATE_PROJECT" class="create-project-btn button-green"></a></div>\n</div>'),
t.put("navigation-bar/dropdown-user/dropdown-user.html",'<a tg-nav="profile" title="{{ vm.user.get(\'full_name_display\') }}" class="user-avatar">{{ vm.user.get(\'full_name_display\') }}<img tg-avatar="vm.user" alt="{{ vm.user.get(\'full_name_display\') }}" height="40px"/></a>\n<div class="navbar-dropdown dropdown-user">\n <ul>\n <li><a tg-nav="profile" title="{{\'PROJECT.NAVIGATION.VIEW_PROFILE_TITLE\' | translate}}" translate="PROJECT.NAVIGATION.VIEW_PROFILE"></a></li>\n <li><a href="#" tg-nav="user-settings-user-profile" title="{{\'PROJECT.NAVIGATION.EDIT_PROFILE_TITLE\' | translate}}" translate="PROJECT.NAVIGATION.EDIT_PROFILE"></a></li>\n <li ng-repeat="plugin in vm.userSettingsPlugins" class="plugin"><a href="" tg-nav="user-settings-contrib:plugin=plugin.slug" ng-class="{active: plugin.slug == currentPlugin.slug}"><span class="title">{{ plugin.name }}</span></a></li>\n <li><a href="#" tg-nav="user-settings-user-change-password" title="{{\'PROJECT.NAVIGATION.CHANGE_PASSWORD_TITLE\' | translate}}" translate="PROJECT.NAVIGATION.CHANGE_PASSWORD"></a></li>\n <li><a href="#" tg-nav="user-settings-mail-notifications" title="{{\'PROJECT.NAVIGATION.NOTIFICATIONS_TITLE\' | translate}}" translate="PROJECT.NAVIGATION.NOTIFICATIONS"></a></li>\n <li ng-show="vm.isFeedbackEnabled"><a href="#" ng-click="vm.sendFeedback()" title="{{\'PROJECT.NAVIGATION.FEEDBACK_TITLE\' | translate}}" translate="PROJECT.NAVIGATION.FEEDBACK"></a></li>\n <li><a href="{{ vm.supportUrl }}" target="_blank" title="{{\'PROJECT.NAVIGATION.HELP_TITLE\' | translate}}" translate="PROJECT.NAVIGATION.HELP"></a></li>\n <li><a href="#" ng-click="vm.logout()" title="{{\'COMMON.LOGOUT\' | translate}}" translate="COMMON.LOGOUT"></a></li>\n </ul>\n</div>'),t.put("profile/profile-bar/profile-bar.html",'\n<section class="profile-bar">\n <div ng-class="::{\'is-current-user\': vm.isCurrentUser}" class="profile-image-wrapper"><img tg-avatar-big="vm.user" alt="{{::vm.user.get(\'full_name\')}}" class="profile-img"/><a title="{{ \'USER.PROFILE.EDIT\' | translate }}" tg-nav="user-settings-user-profile" translate="USER.PROFILE.EDIT" class="profile-edition"></a></div>\n <div class="profile-data">\n <h1 ng-class="{\'not-full-name\': !vm.user.get(\'full_name\')}">{{::vm.user.get("full_name_display")}}</h1>\n <div class="username">@{{::vm.user.get("username")}}</div>\n <h2>{{::vm.stats.get(\'roles\').join(", ")}}</h2>\n </div>\n <div class="profile-stats">\n <div class="stat"><span class="stat-number">{{::vm.stats.get(\'total_num_projects\')}}</span><span translate="USER.PROFILE.PROJECTS" class="stat-name"></span></div>\n <div class="stat"><span class="stat-number">{{::vm.stats.get(\'total_num_closed_userstories\')}}</span><span translate="USER.PROFILE.CLOSED_US" class="stat-name"></span></div>\n <div class="stat"><span class="stat-number">{{::vm.stats.get(\'total_num_contacts\')}}</span><span translate="USER.PROFILE.CONTACTS" class="stat-name"></span></div>\n </div>\n <div ng-if="::vm.user.get(\'bio\')" class="profile-quote"><span>{{::vm.user.get("bio") | limitTo:210 }}{{vm.user.get("bio").length < 210 ? \'\' : \'...\'}}</span></div>\n</section>'),t.put("profile/profile-contacts/profile-contacts.html",'\n<section class="profile-contacts">\n <div ng-if="vm.contacts === undefined">\n <div class="spin"><img src="/v-1525361023952/svg/spinner-circle.svg" alt="Loading..."/></div>\n </div>\n <div ng-if="vm.contacts &amp;&amp; !vm.contacts.size" class="empty-small"><img src="/v-1525361023952/images/empty/empty_contact.png" alt="{{ \'USER.PROFILE.CONTACTS_EMPTY\' | translate }}"/>\n <div ng-if="!vm.isCurrentUser">\n <p translate="USER.PROFILE.CONTACTS_EMPTY" translate-values="{username: vm.user.get(\'full_name_display\')}"></p>\n </div>\n <div ng-if="vm.isCurrentUser">\n <p translate="USER.PROFILE.CURRENT_USER_CONTACTS_EMPTY"></p>\n <p translate="USER.PROFILE.CURRENT_USER_CONTACTS_EMPTY_EXPLAIN"></p>\n </div>\n </div>\n <div tg-repeat="contact in ::vm.contacts" class="list-itemtype-user"><a tg-nav="user-profile:username=contact.get(\'username\')" title="{{::contact.get(\'name\')}}" class="list-itemtype-avatar"><img tg-avatar="contact" alt="{{::contact.get(\'full_name\')}}"/></a>\n <div class="list-itemtype-user-data">\n <h2><a tg-nav="user-profile:username=contact.get(\'username\')" title="{{::contact.get(\'full_name_display\') }}">{{::contact.get(\'full_name_display\')}}</a></h2>\n <p>{{::contact.get(\'roles\').join(", ")}}</p>\n <p ng-if="contact.get(\'bio\')" class="extra-info">{{::contact.get(\'bio\')}}</p>\n </div>\n </div>\n</section>'),t.put("profile/profile-favs/profile-favs.html",'\n<section class="profile-favs">\n <div class="profile-filter">\n <div ng-if="::vm.enableFilterByTextQuery" class="searchbox">\n <tg-svg svg-icon="icon-search"></tg-svg>\n <input type="text" ng-model="vm.q" ng-change="vm.filterByTextQuery()" placeholder="{{ \'USER.PROFILE_FAVS.FILTER_INPUT_PLACEHOLDER\'|translate }}"/>\n </div>\n <div class="filters"><a href="" ng-if="::vm.enableFilterByAll" ng-click="vm.showAll()" ng-class="{active: vm.type === null}" title="{{ \'USER.PROFILE_FAVS.FILTER_TYPE_ALL_TITLE\'|translate }}" translate="{{ \'USER.PROFILE_FAVS.FILTER_TYPE_ALL\'|translate }}"></a><a href="" ng-if="::vm.enableFilterByProjects" ng-click="vm.showProjectsOnly()" ng-class="{active: vm.type === \'project\'}" title="{{ \'USER.PROFILE_FAVS.FILTER_TYPE_PROJECTS_TITLE\'|translate }}" translate="{{ \'USER.PROFILE_FAVS.FILTER_TYPE_PROJECTS\'|translate }}"></a><a href="" ng-if="::vm.enableFilterByEpics" ng-click="vm.showEpicsOnly()" ng-class="{active: vm.type === \'epic\'}" title="{{ \'USER.PROFILE_FAVS.FILTER_TYPE_EPICS_TITLE\'|translate }}" translate="{{ \'USER.PROFILE_FAVS.FILTER_TYPE_EPICS\'|translate }}"></a><a href="" ng-if="::vm.enableFilterByUserStories" ng-click="vm.showUserStoriesOnly()" ng-class="{active: vm.type === \'userstory\'}" title="{{ \'USER.PROFILE_FAVS.FILTER_TYPE_USER_STORIES_TITLE\'|translate }}" translate="{{ \'USER.PROFILE_FAVS.FILTER_TYPE_USER_STORIES\'|translate }}"></a><a href="" ng-if="::vm.enableFilterByTasks" ng-click="vm.showTasksOnly()" ng-class="{active: vm.type === \'task\'}" title="{{ \'USER.PROFILE_FAVS.FILTER_TYPE_TASKS_TITLE\'|translate }}" translate="{{ \'USER.PROFILE_FAVS.FILTER_TYPE_TASKS\'|translate }}"></a><a href="" ng-if="::vm.enableFilterByIssues" ng-click="vm.showIssuesOnly()" ng-class="{active: vm.type === \'issue\'}" title="{{ \'USER.PROFILE_FAVS.FILTER_TYPE_ISSUES_TITLE\'|translate }}" translate="{{ \'USER.PROFILE_FAVS.FILTER_TYPE_ISSUES\'|translate }}"></a></div>\n </div>\n <div infinite-scroll="vm.loadItems()" infinite-scroll-disabled="vm.scrollDisabled">\n <div tg-repeat="item in vm.items track by $index" ng-switch="item.get(\'type\')">\n <div ng-switch-when="project" tg-fav-item="item" item-type="project"></div>\n <div ng-switch-when="epic" tg-fav-item="item" item-type="epic"></div>\n <div ng-switch-when="userstory" tg-fav-item="item" item-type="userstory"></div>\n <div ng-switch-when="task" tg-fav-item="item" item-type="task"></div>\n <div ng-switch-when="issue" tg-fav-item="item" item-type="issue"></div>\n </div>\n </div>\n <div ng-if="vm.isLoading">\n <div class="spin"><img src="/v-1525361023952/svg/spinner-circle.svg" alt="{{ \'COMMON.LOADING\'|translate }}"/></div>\n </div>\n <div ng-if="vm.hasNoResults &amp;&amp; !vm.isLoading" class="empty-small"><img ng-if="vm.tabName === \'likes\'" src="/v-1525361023952/images/empty/empty_like.png" alt="{{ \'USER.PROFILE_FAVS.EMPTY_TITLE\' | translate }}"/><img ng-if="vm.tabName === \'upvotes\'" src="/v-1525361023952/images/empty/empty_upvote.png" alt="{{ \'USER.PROFILE_FAVS.EMPTY_TITLE\' | translate }}"/><img ng-if="vm.tabName === \'watchers\'" src="/v-1525361023952/images/empty/empty_watch.png" alt="{{ \'USER.PROFILE_FAVS.EMPTY_TITLE\' | translate }}"/>\n <p class="title">{{ \'USER.PROFILE_FAVS.EMPTY_TITLE\' | translate }}</p>\n </div>\n</section>'),t.put("profile/profile-hints/profile-hints.html",'\n<h4>\n <tg-svg svg-icon="icon-question"></tg-svg><span translate="HINTS.SECTION_NAME"></span>\n</h4>\n<p>{{::vm.hint.title}}</p>\n<p>\n {{::vm.hint.text}}\n &nbsp;<a ng-if="::vm.hint.url" target="_blank" ng-href="{{::vm.hint.url}}" title="{{\'HINTS.LINK_TITLE\' | translate}}" translate="{{::vm.hint.linkText}}"></a>\n</p>'),t.put("profile/profile-projects/profile-projects.html",'\n<section class="profile-projects">\n <div ng-if="vm.projects === undefined">\n <div class="spin"><img src="/v-1525361023952/svg/spinner-circle.svg" alt="Loading..."/></div>\n </div>\n <div ng-if="vm.projects &amp;&amp; !vm.projects.size" class="empty-tab">\n <tg-svg svg-icon="icon-unwatch"></tg-svg>\n <p translate="USER.PROFILE.PROJECTS_EMPTY" translate-values="{username: vm.user.get(\'full_name_display\')}"></p>\n </div>\n <div tg-repeat="project in vm.projects" ng-class="{\'blocked-project\': project.get(\'blocked_code\')}" class="list-itemtype-project">\n <div class="list-itemtype-project-left">\n <div class="project-list-single-title-wrapper"><a href="#" tg-nav="project:project=project.get(\'slug\')" title="{{ ::project.get(\'name\') }}" class="list-itemtype-project-image"><img tg-project-logo-small-src="::project" alt="{{::project.get(\'name\')}}"/></a>\n <div class="project-list-single-title">\n <h2><a href="#" tg-nav="project:project=project.get(\'slug\')" title="{{ ::project.get(\'name\') }}" class="project-title">{{::project.get(\'name\')}}</a>\n <tg-svg ng-if="project.get(\'blocked_code\')" svg-icon="icon-blocked-project" svg-title-translate="PROJECT.BLOCKED_PROJECT.BLOCKED"></tg-svg>\n </h2>\n <p class="project-description">{{ ::project.get(\'description\') | limitTo:300 }}</p>\n </div>\n </div>\n </div>\n <div class="list-itemtype-project-right">\n <div class="list-itemtype-track"><span ng-class="{\'active\': project.get(\'is_fan\')}" title="{{ \'PROJECT.LIKE_BUTTON.COUNTER_TITLE\'|translate:{total:project.get(&quot;total_fans&quot;)||0}:\'messageformat\' }}" class="list-itemtype-track-likers">\n <tg-svg svg-icon="icon-like"></tg-svg><span>{{ ::project.get(\'total_fans\') }}</span></span><span ng-class="{\'active\': project.get(\'is_watcher\')}" title="{{ \'PROJECT.WATCH_BUTTON.COUNTER_TITLE\'|translate:{total:project.get(&quot;total_watchers&quot;)||0}:\'messageformat\' }}" class="list-itemtype-track-watchers">\n <tg-svg svg-icon="icon-watch"></tg-svg><span>{{ ::project.get(\'total_watchers\') }}</span></span></div>\n <div class="list-itemtype-project-members"><a tg-repeat="contact in ::project.get(\'contacts\')" tg-nav="user-profile:username=contact.get(\'username\')" title="{{::contact.get(\'full_name\')}}"><img tg-avatar="contact" alt="{{::contact.get(\'full_name\')}}"/></a></div>\n </div>\n </div>\n</section>'),t.put("profile/profile-tab/profile-tab.html",'\n<div ng-if="tab.active">\n <ng-transclude></ng-transclude>\n</div>'),t.put("profile/profile-tabs/profile-tabs.html",'\n<div>\n <nav class="profile-content-tabs"><a href="" ng-repeat="tab in ::vm.tabs" title="{{tab.title}}" ng-click="vm.toggleTab(tab)" ng-class="{active: tab.active}" class="tab">\n <tg-svg svg-icon="{{::tab.icon}}"></tg-svg><span>{{::tab.name}}</span></a></nav>\n <ng-transclude></ng-transclude>\n</div>'),t.put("projects/create/create-project.html",'\n<div class="create-project">\n <div class="create-project-wrapper">\n <h1 translate="PROJECT.CREATE.TITLE" class="create-project-title"></h1>\n <h3 translate="PROJECT.CREATE.CHOOSE_TEMPLATE" class="create-project-description"></h3>\n <ul class="create-project-selector ">\n <li><a title="{{\'PROJECT.CREATE.TEMPLATE_SCRUM\' | translate}}" tg-nav="create-project-scrum" href="" class="">\n <div class="create-project-selector-icon">\n <tg-svg svg-icon="icon-scrum"></tg-svg>\n </div>\n <div class="create-project-selector-template-wrapper">\n <p translate="PROJECT.CREATE.TEMPLATE_SCRUM" class="create-project-selector-template"></p>\n <p translate="PROJECT.CREATE.TEMPLATE_SCRUM_DESC" class="create-project-selector-description"></p>\n <div class="create-project-selector-question">\n <tg-svg svg-icon="icon-question" ng-click="vm.displayHelp(\'scrum\', $event)"></tg-svg>\n </div>\n <div ng-show="vm.displayScrumDesc" class="create-project-selector-long-description">\n <p translate="PROJECT.CREATE.TEMPLATE_SCRUM_LONGDESC"></p>\n </div>\n </div></a></li>\n <li><a tg-nav="create-project-kanban" title="{{\'PROJECT.CREATE.TEMPLATE_KANBAN\' | translate}}" href="" class="">\n <div class="create-project-selector-icon">\n <tg-svg svg-icon="icon-kanban"></tg-svg>\n </div>\n <div class="create-project-selector-template-wrapper">\n <p translate="PROJECT.CREATE.TEMPLATE_KANBAN" class="create-project-selector-template"></p>\n <p translate="PROJECT.CREATE.TEMPLATE_KANBAN_DESC" class="create-project-selector-description"></p>\n <div class="create-project-selector-question">\n <tg-svg svg-icon="icon-question" ng-click="vm.displayHelp(\'kanban\', $event)"></tg-svg>\n </div>\n <div ng-show="vm.displayKanbanDesc" class="create-project-selector-long-description">\n <p translate="PROJECT.CREATE.TEMPLATE_KANBAN_LONGDESC"></p>\n </div>\n </div></a></li>\n <li><a tg-nav="create-project-duplicate" title="{{\'PROJECT.CREATE.DUPLICATE\' | translate}}" href="" class="">\n <div class="create-project-selector-icon">\n <tg-svg svg-icon="icon-duplicate"></tg-svg>\n </div>\n <div class="create-project-selector-template-wrapper">\n <p translate="PROJECT.CREATE.DUPLICATE" class="create-project-selector-template"></p>\n <p translate="PROJECT.CREATE.DUPLICATE_DESC" class="create-project-selector-description"></p>\n </div></a></li>\n <li><a tg-nav="create-project-import" title="{{\'PROJECT.CREATE.IMPORT\' | translate}}" href="">\n <div class="create-project-selector-icon">\n <tg-svg svg-icon="icon-upload"></tg-svg>\n </div>\n <div class="create-project-selector-template-wrapper">\n <p href="#" title="{{\'PROJECT.CREATE.IMPORT\' | translate}}" translate="PROJECT.CREATE.IMPORT" class="create-project-selector-template"></p>\n <p translate="PROJECT.CREATE.IMPORT_DESC" class="create-project-selector-description"></p>\n </div></a></li>\n </ul>\n </div>\n</div>'),t.put("projects/listing/projects-listing.html",'\n<div class="project-list-wrapper centered">\n <div class="project-list-title">\n <h1 translate="PROJECTS.MY_PROJECTS"></h1>\n <div class="create-options"><a href="#" tg-nav="create-project" title="{{\'PROJECT.NAVIGATION.ACTION_CREATE_PROJECT\' | translate}}" translate="PROJECT.NAVIGATION.ACTION_CREATE_PROJECT" class="create-project-btn button-green"></a></div>\n </div>\n <section class="project-list-section">\n <div class="project-list">\n <ul tg-sort-projects="vm.projects">\n <li tg-bind-scope="tg-bind-scope" tg-repeat="project in vm.projects track by project.get(\'id\')" ng-class="{\'blocked-project\': project.get(\'blocked_code\')}" class="list-itemtype-project">\n <div class="list-itemtype-project-left">\n <div class="list-itemtype-project-data-wrapper"><a href="#" tg-nav="project:project=project.get(\'slug\')" title="{{ ::project.get(\'name\') }}" class="list-itemtype-project-image"><img tg-project-logo-small-src="::project" alt="{{::project.get(\'name\')}}"/></a>\n <div class="list-itemtype-project-data">\n <h2><a href="#" tg-nav="project:project=project.get(\'slug\')" title="{{ ::project.get(\'name\') }}" class="project-title">{{project.get(\'name\')}}</a>\n <tg-svg ng-if="project.get(\'is_private\')" svg-icon="icon-lock" svg-title-translate="PROJECT.PRIVATE"></tg-svg>\n <tg-svg ng-if="project.get(\'i_am_owner\')" svg-icon="icon-badge" svg-title-translate="COMMON.OWNER"></tg-svg>\n <tg-svg ng-if="project.get(\'blocked_code\')" svg-icon="icon-blocked-project" svg-title-translate="PROJECT.BLOCKED_PROJECT.BLOCKED"></tg-svg>\n </h2>\n <p class="project-description">{{ ::project.get(\'description\') | limitTo:300 }}<span ng-if="::project.get(\'description\').length &gt; 300">...</span></p>\n </div>\n </div>\n </div>\n <tg-svg svg-icon="icon-drag" class="drag"></tg-svg>\n </li>\n </ul>\n </div>\n <aside class="help-area">\n <p translate="PROJECT.HELP"></p>\n </aside>\n </section>\n</div>'),t.put("projects/project/blocked-project-explanation.html","\n<div ng-if=\"!vm.project.get('i_am_owner')\">\n <div>{{'PROJECT.BLOCKED_PROJECT.THIS_PROJECT_IS_BLOCKED' | translate}}</div>\n</div>\n<div ng-if=\"vm.project.get('i_am_owner')\">\n <div>{{'PROJECT.BLOCKED_PROJECT.TO_UNBLOCK_CONTACT_THE_ADMIN_STAFF' | translate}}</div>\n</div>"),t.put("projects/project/blocked-project.html",'\n<div ng-controller="Project as vm" class="blocked-project-detail">\n <div class="blocked-project-inner">\n <div class="blocked-project-title">\n <div class="project-image"><img tg-project-logo-small-src="vm.project" alt="{{::vm.project.get(\'name\')}}"/>\n <tg-svg svg-icon="icon-blocked-project" svgTitleTranslate:="svgTitleTranslate:" PROJECT.BLOCKED_PROJECT.BLOCKED="PROJECT.BLOCKED_PROJECT.BLOCKED"></tg-svg>\n </div><span class="project-title">{{::vm.project.get("name")}}</span>\n </div>\n <div class="blocked-project-message">\n <h1 class="project-block-title">{{\'PROJECT.BLOCKED_PROJECT.BLOCKED\' | translate}}</h1>\n <tg-blocked-project-explanation class="project-block-message"></tg-blocked-project-explanation>\n </div>\n </div>\n</div>'),t.put("projects/project/project.html",'\n<div class="wrapper">\n <tg-project-menu></tg-project-menu>\n <div class="single-project centered">\n <section class="single-project-intro">\n <div href="#" tg-nav="project:project=project.get(\'slug\')" title="{{::project.get(\'name\')}}" class="project-logo"><img tg-project-logo-big-src="vm.project" alt="{{::vm.project.get(\'name\')}}"/></div>\n <div class="single-project-title-wrapper">\n <div class="intro-options">\n <div class="intro-title">\n <h1><span class="project-name">{{::vm.project.get("name")}}</span></h1>\n <tg-svg ng-if="::vm.project.get(\'is_private\')" svg-icon="icon-lock" svgTitleTranslate:="svgTitleTranslate:" PROJECT.PRIVATE="PROJECT.PRIVATE"></tg-svg>\n </div>\n <div ng-if="vm.user" class="track-buttons-container">\n <tg-like-project-button project="vm.project"></tg-like-project-button>\n <tg-watch-project-button project="vm.project"></tg-watch-project-button>\n <tg-contact-project-button ng-if="vm.project.get(\'is_contact_activated\')" project="vm.project"></tg-contact-project-button>\n </div>\n <div ng-if="!vm.user" class="track-container">\n <div class="list-itemtype-track"><span title="{{ \'PROJECT.LIKE_BUTTON.COUNTER_TITLE\'|translate:{total:vm.project.get(&quot;total_fans&quot;)||0}:\'messageformat\' }}" class="list-itemtype-track-likers">\n <tg-svg svg-icon="icon-like"></tg-svg><span>{{ ::vm.project.get(\'total_fans\') }}</span></span><span title="{{ \'PROJECT.WATCH_BUTTON.COUNTER_TITLE\'|translate:{total:vm.project.get(&quot;total_watchers&quot;)||0}:\'messageformat\' }}" class="list-itemtype-track-watchers">\n <tg-svg svg-icon="icon-watch"></tg-svg><span>{{ ::vm.project.get(\'total_watchers\') }}</span></span></div>\n </div>\n </div>\n <p class="description">{{vm.project.get(\'description\')}}</p>\n </div>\n </section>\n <div ng-if="::vm.project.get(\'tags\').size" class="single-project-tags tags-container"><span tg-repeat="tag in ::vm.project.get(\'tags\')" class="tag"><span class="tag-name">{{::tag}}</span></span></div>\n <div class="project-data">\n <section ng-if="vm.project" class="timeline">\n <div tg-user-timeline="tg-user-timeline" projectId="vm.project.get(\'id\')"></div>\n </section>\n <section class="involved-data">\n <div ng-if="vm.project.get(\'is_looking_for_people\')" class="looking-for-people"><img src="/v-1525361023952/images/looking-for-people.png" title="{{\'PROJECT.LOOKING_FOR_PEOPLE\' | translate}}"/>\n <h3 ng-class="{\'is-empty\': !vm.project.get(\'looking_for_people_note\')}">{{\'PROJECT.LOOKING_FOR_PEOPLE\' | translate}}</h3>\n <p ng-if="vm.project.get(\'looking_for_people_note\')">{{::vm.project.get(\'looking_for_people_note\')}}</p>\n <tg-contact-project-button ng-if="vm.project.get(\'is_contact_activated\')" project="vm.project" layout="large"></tg-contact-project-button>\n </div>\n <h2 class="title">{{"PROJECT.SECTION.TEAM" | translate}}</h2>\n <ul class="involved-team">\n <li tg-repeat="member in vm.members"><a tg-nav="user-profile:username=member.get(\'username\')" title="{{::member.get(\'full_name\')}}"><img tg-avatar="member" alt="{{::member.get(\'full_name\')}}"/>\n <tg-svg ng-if="member.get(\'id\') == vm.project.getIn([\'owner\', \'id\'])" svg-icon="icon-badge" svgTitleTranslate:="svgTitleTranslate:" COMMON.OWNER="COMMON.OWNER"></tg-svg></a></li>\n </ul>\n </section>\n </div>\n </div>\n</div>'),t.put("projects/transfer/cant-own-project-explanation.html",'\n<p translate="ADMIN.PROJECT_TRANSFER.CANT_BE_OWNED"></p>'),t.put("projects/transfer/transfer-page.html",'\n<tg-transfer-project ng-if="vm.project" project="vm.project" class="transfer-project"></tg-transfer-project>'),t.put("projects/transfer/transfer-project.html",'\n<div class="transfer-project-wrapper">\n <h2 translate="ADMIN.PROJECT_TRANSFER.DO_YOU_ACCEPT_PROJECT_OWNERNSHIP" class="transfer-title"></h2>\n <div class="transfer-project-detail"><img tg-project-logo-small-src="vm.project" alt="{{vm.project.get(\'name\')}}" class="transfer-project-image"/>\n <div class="transfer-project-data">\n <h3 class="transfer-project-title">{{::vm.project.get("name")}}</h3>\n <div class="transfer-project-statistics"><span ng-if="vm.project.get(\'is_private\')" class="transfer-project-private">\n <tg-svg svg-icon="icon-lock"></tg-svg><span translate="ADMIN.PROJECT_TRANSFER.PRIVATE"></span></span><span class="transfer-project-members">\n <tg-svg svg-icon="icon-team"></tg-svg><span>{{::vm.project.get("total_memberships")}}</span></span></div>\n </div>\n </div>\n <p translate="ADMIN.PROJECT_TRANSFER.PROPOSE_OWNERSHIP" translate-values="{owner: vm.project.getIn([\'owner\', \'full_name_display\']), project: vm.project.get(\'name\')}"></p>\n <div ng-if="vm.canBeOwnedByUser.valid">\n <p translate="{{vm.ownerMessage}}" translate-values="{maxProjects: vm.maxProjects, currentProjects: vm.currentProjects}"></p><a href="" ng-click="vm.addComment()" ng-if="!vm.showAddComment" translate="ADMIN.PROJECT_TRANSFER.ADD_COMMENT" class="transfer-project-comment-link ng-animate-disabled"></a>\n <fieldset ng-if="vm.showAddComment" ng-class="{\'open\': vm.showAddComment}" class="transfer-project-comment-form">\n <div class="transfer-project-comment-header">\n <label translate="ADMIN.PROJECT_TRANSFER.ADD_COMMENT" class="transfer-project-comment-label"></label>\n <tg-svg svg-icon="icon-close" ng-click="vm.hideComment()"></tg-svg>\n </div>\n <textarea name="reason" ng-model="vm.reason" class="transfer-project-comment"></textarea>\n </fieldset>\n <div class="transfer-project-options"><a ng-click="vm.transferReject(vm.token, vm.reason, $event)" href="#" title="{{\'ADMIN.PROJECT_TRANSFER.REJECT\' | translate}}" translate="ADMIN.PROJECT_TRANSFER.REJECT" tg-loading="vm.loadingReject" class="button button-gray "></a><a ng-click="vm.transferAccept(vm.token, vm.reason, $event)" href="#" title="{{\'ADMIN.PROJECT_TRANSFER.ACCEPT\' | translate}}" translate="ADMIN.PROJECT_TRANSFER.ACCEPT" tg-loading="vm.loadingAccept" class="button button-green "></a></div>\n </div>\n <tg-cant-own-project-explanation ng-if="!vm.canBeOwnedByUser.valid"></tg-cant-own-project-explanation>\n</div>'),t.put("user-timeline/user-timeline/user-timeline.html",'\n<section class="profile-timeline">\n <div ng-if="!vm.timelineList.size">\n <div class="spin"><img src="/v-1525361023952/svg/spinner-circle.svg" alt="Loading..."/></div>\n </div>\n <div infinite-scroll="vm.loadTimeline()" infinite-scroll-disabled="vm.scrollDisabled">\n <div tg-repeat="timeline in vm.timelineList" tg-user-timeline-item="timeline"></div>\n </div>\n</section>'),t.put("user-timeline/user-timeline-item/user-timeline-item.html","\n<div class=\"activity-item\"><span class=\"activity-date\">{{::timeline.get('created') | momentFromNow}}</span>\n <div tg-user-timeline-title=\"timeline\" class=\"activity-info\"></div>\n <div class=\"activity-info\">\n <!-- profile image with url-->\n <div ng-if=\"timeline.getIn(['data', 'user', 'is_profile_visible'])\" class=\"profile-contact-picture\"><a tg-nav=\"user-profile:username=timeline.getIn(['data', 'user', 'username'])\" title=\"{{::timeline.getIn(['data', 'user', 'name']) }}\"><img tg-avatar=\"timeline.getIn(['data', 'user'])\" alt=\"{{::timeline.getIn(['data', 'user', 'name'])}}\"/></a></div>\n <!-- profile image without url-->\n <div ng-if=\"!timeline.getIn(['data', 'user', 'is_profile_visible'])\" class=\"profile-contact-picture\"><img tg-avatar=\"timeline.getIn(['data', 'user'])\" alt=\"{{::timeline.getIn(['data', 'user', 'name'])}}\"/></div>\n <p tg-compile-html=\"timeline.get('title_html')\"></p>\n </div>\n <blockquote ng-if=\"::timeline.get('description')\" class=\"activity-comment-quote\">{{::timeline.get('description') | limitTo:300}}</blockquote>\n <div ng-if=\"::timeline.has('member')\" class=\"activity-member-view\"><a tg-nav=\"user-profile:username=timeline.getIn(['member', 'user', 'username'])\" title=\"{{::timeline.getIn(['member', 'user', 'name'])}}\" class=\"profile-member-picture\"><img tg-avatar=\"timeline.getIn(['member', 'user'])\" alt=\"{{::timeline.getIn(['member','user', 'name'])}}\"/></a>\n <div class=\"activity-member-info\"><a tg-nav=\"user-profile:username=timeline.getIn(['member', 'user', 'username'])\" title=\"{{::timeline.getIn(['member','user', 'name'])}}\"><span>{{::timeline.getIn(['member','user', 'name'])}}</span></a>\n <p>{{::timeline.getIn(['member','role', 'name'])}}</p>\n </div>\n </div>\n <div tg-repeat=\"attachment in timeline.get('attachments')\">\n <div tg-user-timeline-attachment=\"attachment\"></div>\n </div>\n</div>"),t.put("history/comments/comment.html",'\n<div ng-if="!vm.comment.delete_comment_date" class="comment-wrapper"><img tg-avatar="vm.comment.user" ng-alt="{{vm.comment.user.name}}" class="comment-avatar"/>\n <div class="comment-main">\n <div class="comment-data"><span class="comment-creator">{{vm.comment.user.name}}</span><span class="comment-date">{{vm.comment.created_at | momentFormat:\'DD MMM YYYY HH:mm\'}}</span>\n <div ng-if="vm.comment.edit_comment_date" class="comment-edited"><span translate="COMMENTS.EDITED_COMMENT"></span><span>{{vm.comment.edit_comment_date | momentFormat:\'DD MMM YYYY HH:mm\'}}</span><span class="separator">-</span><a href="" title="{{\'COMMENTS.SHOW_HISTORY\' | translate}}" ng-click="vm.displayCommentHistory()"><span translate="COMMENTS.SHOW_HISTORY"></span>\n <tg-svg svg-icon="icon-bulk"></tg-svg></a></div>\n </div>\n <div class="comment-container">\n <div ng-if="!vm.editMode" tg-bind-code="vm.comment.comment" class="comment-text wysiwyg"></div>\n <div ng-if="vm.editMode" ng-keyup="vm.checkCancelComment($event)" class="comment-editor">\n <tg-comment-edit-wysiwyg class="edit-comment"></tg-comment-edit-wysiwyg>\n </div>\n </div>\n </div>\n <div ng-if="vm.canEditDeleteComment() &amp;&amp; !vm.editMode" class="comment-options">\n <tg-svg svg-icon="icon-edit" svg-title-translate="COMMON.EDIT" ng-click="vm.onEditMode({commentId: vm.comment.id})" ng-if="!vm.editMode" class="comment-option"></tg-svg>\n <tg-svg svg-icon="icon-trash" svg-title-translate="COMMON.DELETE" ng-click="vm.onDeleteComment({commentId: vm.comment.id})" ng-if="!vm.editMode" tg-loading="vm.deleting == vm.comment.id" class="comment-option"></tg-svg>\n </div>\n</div>\n<div ng-if="vm.comment.delete_comment_date" class="deleted-comment-wrapper">\n <div class="deleted-comment-main"><span translate="COMMENTS.DELETED_INFO" translate-values="{user: vm.comment.delete_comment_user.name }"></span><span>- {{vm.comment.delete_comment_date | momentFormat:\'DD MMM YYYY HH:mm\'}}</span><a href="" title="{{ \'COMMENTS.SHOW_DELETED\' | translate }}" ng-click="vm.showDeletedComment()" ng-if="vm.hiddenDeletedComment" class="toggle-deleted-comment"><span translate="COMMENTS.SHOW_DELETED"></span>\n <tg-svg svg-icon="icon-arrow-down" svg-title-translate="COMMENTS.SHOW_DELETED"></tg-svg></a><a href="" title="{{\'COMMENTS.HIDE_DELETED\' | translate}}" ng-click="vm.hideDeletedComment()" ng-if="!vm.hiddenDeletedComment" class="toggle-deleted-comment"><span translate="COMMENTS.HIDE_DELETED"></span>\n <tg-svg svg-icon="icon-arrow-up" svg-title-translate="COMMENTS.HIDE_DELETED"></tg-svg></a><a href="" title="{{\'COMMENTS.RESTORE\' | translate}}" ng-click="vm.onRestoreDeletedComment({commentId: vm.comment.id})" tg-loading="vm.editing == vm.comment.id" class="restore-comment">\n <tg-svg svg-icon="icon-reload" svg-title-translate="COMMENTS.RESTORE"></tg-svg><span translate="COMMENTS.RESTORE"></span></a></div>\n <p ng-if="!vm.hiddenDeletedComment" tg-bind-code="vm.comment.comment" class="deleted-comment-comment"></p>\n</div>'),t.put("history/comments/comments.html",'\n<section class="comments">\n <div class="comments-wrapper">\n <tg-comment ng-repeat="comment in vm.comments track by comment.id" ng-class="{\'deleted-comment\': comment.delete_comment_date}" comment="comment" name="{{vm.name}}" loading="vm.loading" editing="vm.editing" deleting="vm.deleting" object="{{vm.object}}" edit-mode="vm.editMode[comment.id]" on-edit-mode="vm.onEditMode({commentId: commentId})" on-delete-comment="vm.onDeleteComment({commentId: commentId})" on-restore-deleted-comment="vm.onRestoreDeletedComment({commentId: commentId})" on-edit-comment="vm.onEditComment({commentId: commentId, commentData: commentData, callback: callback})" class="comment"></tg-comment>\n </div>\n <tg-comment-wysiwyg tg-check-permission="{{::vm.canAddCommentPermission}}" on-update="updateComment(text)" type="vm.type"></tg-comment-wysiwyg>\n</section>'),t.put("history/history/history-diff.html",'\n<div ng-if="vm.type == \'points\'" class="diff-wrapper">\n <div ng-repeat="(key, diff) in vm.diff" class="diff-points-wrapper"><span translate="ACTIVITY.US_POINTS" translate-values="{role: vm.diff.key}" class="key"></span><span class="diff">{{diff[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right" svg-title-translate="COMMON.EDIT" class="comment-option"></tg-svg><span class="diff">{{diff[1]}}</span>\n </div>\n</div>\n<div ng-if="vm.type == \'attachments\'" class="diff-wrapper">\n <div ng-if="vm.diff.new.length" ng-repeat="newAttachment in vm.diff.new" class="diff-attachments-new"><span translate="ACTIVITY.NEW_ATTACHMENT" class="key"></span><span class="diff">{{newAttachment.filename}}</span></div>\n <div ng-if="vm.diff.changed.length" ng-repeat="editAttachment in vm.diff.changed" class="diff-attachments-update"> <span translate="ACTIVITY.UPDATED_ATTACHMENT" translate-values="{filename: editAttachment.filename}" class="key"></span><span ng-if="editAttachment.changes.is_deprecated" class="diff"><span ng-if="editAttachment.changes.is_deprecated[1] == false" translate="ACTIVITY.BECAME_UNDEPRECATED"></span><span ng-if="editAttachment.changes.is_deprecated[1] == true" translate="ACTIVITY.BECAME_DEPRECATED"></span></span><span ng-if="editAttachment.changes.description" class="diff"><span ng-if="editAttachment.changes.description[0].length">{{editAttachment.changes.description[0]}}</span><span ng-if="!editAttachment.changes.description[0].length">...</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span>{{editAttachment.changes.description[1]}}</span></span></div>\n <div ng-if="vm.diff.deleted.length" ng-repeat="deletedAttachment in vm.diff.deleted" class="diff-attachments-deleted"><span translate="ACTIVITY.DELETED_ATTACHMENT" class="key"></span><span class="diff">{{deletedAttachment.filename}}</span></div>\n</div>\n<div ng-if="vm.type == \'milestone\'" class="diff-wrapper">\n <div class="diff-milestone-wrapper"><span translate="ACTIVITY.FIELDS.MILESTONE" class="key"></span><span ng-if="vm.diff[0] != null" class="diff">{{vm.diff[0]}}</span><span ng-if="vm.diff[0] == null" class="diff">...</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1] != null" class="diff">{{vm.diff[1]}}</span><span ng-if="vm.diff[1] == null" class="diff">...</span>\n </div>\n</div>\n<div ng-if="vm.type == \'priority\'" class="diff-wrapper">\n <div class="diff-status-wrapper"><span translate="ACTIVITY.FIELDS.PRIORITY" class="key"></span><span ng-if="vm.diff[0]" class="diff">{{vm.diff[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1]" class="diff">{{vm.diff[1]}}</span>\n </div>\n</div>\n<div ng-if="vm.type == \'severity\'" class="diff-wrapper">\n <div class="diff-status-wrapper"><span translate="ACTIVITY.FIELDS.SEVERITY" class="key"></span><span ng-if="vm.diff[0]" class="diff">{{vm.diff[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1]" class="diff">{{vm.diff[1]}}</span>\n </div>\n</div>\n<div ng-if="vm.type == \'status\'" class="diff-wrapper">\n <div class="diff-status-wrapper"><span translate="ACTIVITY.FIELDS.STATUS" class="key"></span><span ng-if="vm.diff[0]" class="diff">{{vm.diff[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1]" class="diff">{{vm.diff[1]}}</span>\n </div>\n</div>\n<div ng-if="vm.type == \'subject\'" class="diff-wrapper">\n <div class="diff-subject-wrapper"><span translate="ACTIVITY.FIELDS.SUBJECT" class="key"></span><span ng-if="vm.diff[0]" class="diff">{{vm.diff[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1]" class="diff">{{vm.diff[1]}}</span>\n </div>\n</div>\n<div ng-if="vm.type == \'description_diff\'" class="diff-wrapper">\n <div class="diff-status-wrapper">\n <p translate="ACTIVITY.FIELDS.DESCRIPTION" class="key"></p>\n <p ng-if="vm.diff[0]" ng-bind-html="vm.diff[0]" class="diff"></p>\n <p ng-if="vm.diff[1]" ng-bind-html="vm.diff[1]" class="diff"></p>\n </div>\n</div>\n<div ng-if="vm.type == \'assigned_to\'" class="diff-wrapper">\n <div class="diff-status-wrapper"><span translate="ACTIVITY.FIELDS.ASSIGNED_TO" class="key"></span><span ng-if="vm.diff[0]" class="diff">{{vm.diff[0]}}</span><span ng-if="!vm.diff[0]" translate="ACTIVITY.VALUES.UNASSIGNED" class="diff"></span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1]" class="diff">{{vm.diff[1]}}</span><span ng-if="!vm.diff[1]" translate="ACTIVITY.VALUES.UNASSIGNED" class="diff"></span>\n </div>\n</div>\n<div ng-if="vm.type == \'assigned_users\'" class="diff-wrapper">\n <div class="diff-status-wrapper"><span translate="ACTIVITY.FIELDS.ASSIGNED_USERS" class="key"></span><span ng-if="vm.diff[0]" class="diff">{{vm.diff[0]}}</span><span ng-if="!vm.diff[0]" translate="ACTIVITY.VALUES.UNASSIGNED" class="diff"></span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1]" class="diff">{{vm.diff[1]}}</span><span ng-if="!vm.diff[1]" translate="ACTIVITY.VALUES.UNASSIGNED" class="diff"></span>\n </div>\n</div>\n<div ng-if="vm.type == \'due_date\'" class="diff-wrapper">\n <div class="diff-status-wrapper"><span translate="ACTIVITY.FIELDS.DUE_DATE" class="key"></span><span ng-if="vm.diff[0]" class="diff">{{vm.diff[0] | momentFormat:\'DD MMM YYYY\'}}</span><span ng-if="!vm.diff[0]" translate="ACTIVITY.VALUES.NOT_SET" class="diff"></span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1]" class="diff">{{vm.diff[1] | momentFormat:\'DD MMM YYYY\'}}</span><span ng-if="!vm.diff[1]" translate="ACTIVITY.VALUES.NOT_SET" class="diff"></span>\n </div>\n</div>\n<div ng-if="vm.type == \'tags\'" class="diff-wrapper">\n <div class="diff-tags-wrapper">\n <p ng-if="vm.diffRemoveTags"><span translate="ACTIVITY.TAGS_REMOVED" class="key"></span><span class="diff">{{vm.diffRemoveTags}}</span></p>\n <p ng-if="vm.diffAddTags"><span translate="ACTIVITY.TAGS_ADDED" class="key"></span><span class="diff">{{vm.diffAddTags}}</span></p>\n </div>\n</div>\n<div ng-if="vm.type == \'custom_attributes\'" class="diff-wrapper">\n <div ng-if="vm.diff.new.length" ng-repeat="newCustom in vm.diff.new" class="diff-status-wrapper"><span translate="ACTIVITY.CREATED_CUSTOM_ATTRIBUTE" class="key"></span><span class="diff">({{newCustom.name}})</span><span ng-if="newCustom.type == \'richtext\'">\n <p tg-bo-html="newCustom.value_diff" class="diff"></p></span><span ng-if="newCustom.type != \'richtext\'"><span class="diff">{{newCustom.value}}</span></span></div>\n <div ng-if="vm.diff.changed.length" ng-repeat="changeCustom in vm.diff.changed" class="diff-status-wrapper"><span translate="ACTIVITY.UPDATED_CUSTOM_ATTRIBUTE" class="key"></span><span class="diff">({{changeCustom.name}})</span><span ng-if="changeCustom.type == \'richtext\'">\n <p tg-bo-html="changeCustom.value_diff" class="diff"></p></span><span ng-if="changeCustom.type != \'richtext\'"><span class="diff">{{changeCustom.changes.value[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span class="diff">{{changeCustom.changes.value[1]}}</span></span></div>\n</div>\n<div ng-if="vm.type == \'color\'" class="diff-wrapper">\n <div class="diff-color-wrapper"><span translate="ACTIVITY.FIELDS.COLOR" class="key"></span><span ng-if="vm.diff[0]" ng-style="{background: vm.diff[0]}" title="{{vm.diff[0]}}" class="diff"></span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1]" ng-style="{background: vm.diff[1]}" title="{{vm.diff[1]}}" class="diff"></span>\n </div>\n</div>\n<div ng-if="vm.type == \'team_requirement\'" class="diff-wrapper">\n <div class="diff-status-wrapper"><span translate="ACTIVITY.TEAM_REQUIREMENT" class="key"></span><span class="diff">{{vm.diff[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span class="diff">{{vm.diff[1]}}</span>\n </div>\n</div>\n<div ng-if="vm.type == \'client_requirement\'" class="diff-wrapper">\n <div class="diff-status-wrapper"><span translate="ACTIVITY.CLIENT_REQUIREMENT" class="key"></span><span class="diff">{{vm.diff[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span class="diff">{{vm.diff[1]}}</span>\n </div>\n</div>\n<div ng-if="vm.type == \'is_blocked\'" class="diff-wrapper">\n <div class="diff-status-wrapper"><span translate="ACTIVITY.BLOCKED" class="key"></span><span class="diff">{{vm.diff[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span class="diff">{{vm.diff[1]}}</span>\n </div>\n</div>\n<div ng-if="vm.type == \'type\'" class="diff-wrapper">\n <div class="diff-status-wrapper"><span translate="ACTIVITY.FIELDS.TYPE" class="key"></span><span ng-if="vm.diff[0]" class="diff">{{vm.diff[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1]" class="diff">{{vm.diff[1]}}</span>\n </div>\n</div>'),
t.put("history/history/history.html",'\n<section class="activities">\n <div class="activities-wrapper">\n <div ng-repeat="activity in activities track by activity.id" class="activity"><img tg-avatar="activity.user" ng-alt="{{activity.user.name}}" class="activity-avatar"/>\n <div class="activity-main">\n <div class="activity-data"><span class="activity-creator">{{activity.user.name}}</span><span class="activity-date">{{activity.created_at | momentFormat:\'DD MMM YYYY HH:mm\'}}</span></div>\n <div ng-repeat="(key, diff) in activity.values_diff" tg-history-diff="tg-history-diff" type="key" diff="diff" class="activity-diff"></div>\n </div>\n </div>\n </div>\n</section>'),t.put("history/history-lightbox/comment-history-lightbox.html",'\n<tg-lightbox-close></tg-lightbox-close>\n<div class="history-container">\n <h2 translate="COMMENTS.HISTORY.TITLE" class="title"></h2>\n <div class="history-wrapper">\n <tg-history-entry ng-repeat="entry in vm.commentHistoryEntries" entry="entry" class="entry"></tg-history-entry>\n </div>\n</div>'),t.put("history/history-lightbox/history-entry.html",'\n<div class="entry-wrapper"><img tg-avatar="entry.user" ng-alt="{{entry.user.name}}" class="entry-avatar"/>\n <div class="entry-main">\n <div class="entry-data"><span class="entry-creator">{{entry.user.full_name_display}}</span><span class="entry-date">{{entry.date | momentFormat:\'DD MMM YYYY HH:mm\'}}</span>\n <tg-svg svg-icon="icon-arrow-down" ng-class="{\'inactive\': !displayFullEntry}" ng-click="displayFullEntry=!displayFullEntry" ng-show="entry.comment.length &gt;= 75" class="display-full-entry"></tg-svg>\n </div>\n <div ng-class="{\'ellipsed\': !displayFullEntry &amp;&amp; entry.comment.length &gt;= 75, \'blurry\': entry.comment.length &gt;= 75 &amp;&amp; !displayFullEntry}" ng-bind-html="entry.comment | markdownToHTML" class="entry-text"></div>\n </div>\n</div>'),t.put("history/history-tabs/history-tabs.html",'\n<nav class="history-tabs"><a ng-if="showCommentTab()" href="" title="{{COMMENTS.COMMENT}}" ng-click="onActiveComments()" ng-class="{active: activeTab}" translate="COMMENTS.COMMENTS_COUNT" translate-values="{comments: commentsNum}" class="history-tab "></a><a ng-if="showActivityTab()" href="" title="Activities" ng-click="onActiveActivities()" ng-class="{active: !activeTab}" translate="ACTIVITY.ACTIVITIES_COUNT" translate-values="{activities: activitiesNum}" class="history-tab "></a><a href="" title="Order Comments" ng-click="onOrderComments()" ng-class="{\'new-first\': top, \'old-first\': !top}" ng-if="commentsNum &gt; 1 &amp;&amp; activeTab" class="order-comments"><span translate="COMMENTS.OLDER_FIRST" ng-if="!onReverse"></span>\n <tg-svg svg-icon="icon-arrow-up" ng-if="!onReverse"></tg-svg><span translate="COMMENTS.RECENT_FIRST" ng-if="onReverse"></span>\n <tg-svg svg-icon="icon-arrow-up" ng-if="onReverse"></tg-svg></a></nav>'),t.put("wiki/history/wiki-history-diff.html",'\n<div ng-if="key === \'attachments\'" class="diff-status-wrapper">\n <div ng-if="diff.new.length" ng-repeat="newAttachment in diff.new" class="diff-attachments-new"><span translate="ACTIVITY.NEW_ATTACHMENT" class="key"></span><span class="diff">{{newAttachment.filename}}</span></div>\n <div ng-if="diff.changed.length" ng-repeat="editAttachment in diff.changed" class="diff-attachments-update"><span translate="ACTIVITY.UPDATED_ATTACHMENT" translate-values="{filename: editAttachment.filename}" class="key"></span><span ng-if="editAttachment.changes.is_deprecated" class="diff"><span ng-if="editAttachment.changes.is_deprecated[1] == false" translate="ACTIVITY.BECAME_UNDEPRECATED"></span><span ng-if="editAttachment.changes.is_deprecated[1] == true" translate="ACTIVITY.BECAME_DEPRECATED"></span></span><span ng-if="editAttachment.changes.description" class="diff"><span ng-if="editAttachment.changes.description[0].length">{{editAttachment.changes.description[0]}}</span><span ng-if="!editAttachment.changes.description[0].length">...</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span>{{editAttachment.changes.description[1]}}</span></span></div>\n <div ng-if="diff.deleted.length" ng-repeat="deletedAttachment in diff.deleted" class="diff-attachments-deleted"><span translate="ACTIVITY.DELETED_ATTACHMENT" class="key"></span><span class="diff">{{deletedAttachment.filename}}</span></div>\n</div>\n<div ng-if="key === \'content_diff\'" class="diff-status-wrapper">\n <p ng-if="diff[0]" ng-bind-html="diff[0]" class="diff"></p>\n <p ng-if="diff[1]" ng-bind-html="diff[1]" class="diff"></p>\n</div>'),t.put("wiki/history/wiki-history-entry.html",'\n<div class="activity"><img tg-avatar="singleHistoryEntry.user" ng-alt="{{singleHistoryEntry.user.name}}" class="activity-avatar"/>\n <div class="activity-main">\n <div class="activity-data"><span class="activity-creator">{{singleHistoryEntry.user.name}}</span><span class="activity-date">{{singleHistoryEntry.created_at | momentFormat:\'DD MMM YYYY HH:mm\'}}</span></div>\n <div ng-repeat="(key, diff) in singleHistoryEntry.values_diff" tg-wiki-history-diff="tg-wiki-history-diff" key="key" diff="diff" class="activity-diff"></div>\n </div>\n</div>'),t.put("wiki/history/wiki-history.html",'\n<nav ng-if="vm.historyEntries.count()&gt;0" class="history-tabs"><a ng-class="{active: vm.toggle}" ng-click="vm.toggle = !vm.toggle" href="" title="{{ACTIVITY.TITLE}}" translate="ACTIVITY.TITLE" class="history-tab"></a></nav>\n<section ng-if="vm.historyEntries.count()&gt;0 &amp;&amp; vm.toggle" class="wiki-history">\n <tg-wiki-history-entry tg-repeat="historyEntry in vm.historyEntries" history-entry="historyEntry" class="wiki-history-entry"></tg-wiki-history-entry>\n</section>'),t.put("user-timeline/user-timeline-attachment/user-timeline-attachment-image.html",'\n<!-- timeline-attachment directive-->\n<div class="activity-image-attachment">\n <blockquote><a href="{{::attachment.get(\'url\')}}" title="See {{::attachment.get(\'filename\')}}" target="_blank"><img ng-src="{{::attachment.get(\'thumb_url\') || attachment.get(\'url\')}}" alt="{{::attachment.get(\'filename\')}}"/></a></blockquote>\n</div>'),t.put("user-timeline/user-timeline-attachment/user-timeline-attachment.html",'\n<div class="single-attachment">\n <blockquote><a ng-href="{{ attachment.get(\'url\') }}" title="Click to download {{ attachment.get(\'filename\') }}" target="_blank">\n <tg-svg svg-icon="icon-attachment"></tg-svg><span>{{attachment.get(\'filename\')}}</span></a></blockquote>\n</div>'),t.put("discover/components/discover-home-order-by/discover-home-order-by.html",'\n<div ng-mouseleave="vm.close()" class="filter-highlighted"><a href="#" ng-click="vm.open()" class="current-filter">{{vm.currentText()}}\n <tg-svg svg-icon="icon-arrow-down"></tg-svg></a>\n <ul ng-if="vm.is_open" class="filter-list">\n <li ng-click="vm.orderBy(\'week\')">{{ \'DISCOVER.FILTERS.WEEK\' | translate }}</li>\n <li ng-click="vm.orderBy(\'month\')">{{ \'DISCOVER.FILTERS.MONTH\' | translate }}</li>\n <li ng-click="vm.orderBy(\'year\')">{{ \'DISCOVER.FILTERS.YEAR\' | translate }}</li>\n <li ng-click="vm.orderBy(\'all\')">{{ \'DISCOVER.FILTERS.ALL_TIME\' | translate }}</li>\n </ul>\n</div>'),t.put("discover/components/discover-search-bar/discover-search-bar.html",'\n<div class="discover-header">\n <div class="discover-header-inner">\n <h1 class="title">{{ \'DISCOVER.DISCOVER_TITLE\' | translate }}</h1>\n <p ng-if="vm.projects" translate="DISCOVER.DISCOVER_SUBTITLE" translate-values="{ projects: \'{{vm.projects}}\'}" translate-interpolation="messageformat" class="project-number"></p>\n <form ng-submit="vm.submitFilter()">\n <div class="searchbox">\n <input name="search" type="text" placeholder="{{ \'DISCOVER.SEARCH.INPUT_PLACEHOLDER\' | translate }}" ng-model="vm.q"/>\n <tg-svg ng-click="vm.submitFilter()" svg-icon="icon-search" svg-title-translate="DISCOVER.SEARCH.ACTION_TITLE" class="search-button"></tg-svg>\n </div>\n <fieldset ng-if="vm.filter" class="searchbox-filters">\n <input type="radio" id="filter-all" name="filter-search"/>\n <label for="filter-all" ng-click="vm.selectFilter(\'all\')" ng-class="{active: vm.filter == \'all\'}">{{ \'DISCOVER.FILTERS.ALL\' | translate }}</label>\n <input type="radio" id="filter-kanban" name="filter-search"/>\n <label for="filter-kanban" ng-class="{active: vm.filter == \'kanban\'}" ng-click="vm.selectFilter(\'kanban\')">{{ \'DISCOVER.FILTERS.KANBAN\' | translate }}</label>\n <input type="radio" id="filter-scrum" name="filter-search"/>\n <label for="filter-scrum" ng-class="{active: vm.filter == \'scrum\'}" ng-click="vm.selectFilter(\'scrum\')">{{ \'DISCOVER.FILTERS.SCRUM\' | translate }}</label>\n <input type="radio" id="filter-people" name="filter-search"/>\n <label for="filter-people" ng-class="{active: vm.filter == \'people\'}" ng-click="vm.selectFilter(\'people\')">{{ \'DISCOVER.FILTERS.PEOPLE\' | translate }}</label>\n </fieldset>\n </form>\n </div>\n</div>'),t.put("discover/components/discover-search-list-header/discover-search-list-header.html",'\n<div class="discover-results-header">\n <div class="discover-results-header-inner">\n <div class="title">\n <tg-svg svg-icon="icon-search"></tg-svg>\n <h2>{{ \'DISCOVER.SEARCH.RESULTS\' | translate }}</h2>\n </div>\n <div ng-mouseleave="vm.toggleClose()" class="filter-discover-search"><a href="#" ng-click="vm.openLike()" ng-class="{active: vm.like_is_open}" class="discover-search-filter">\n <tg-svg svg-icon="icon-like"></tg-svg><span>{{ \'DISCOVER.MOST_LIKED\' | translate }}</span></a><a href="#" ng-click="vm.openActivity()" ng-class="{active: vm.activity_is_open}" class="discover-search-filter">\n <tg-svg svg-icon="icon-activity"></tg-svg><span>{{ \'DISCOVER.MOST_ACTIVE\' | translate }}</span></a></div>\n </div>\n <div ng-if="vm.like_is_open" class="discover-search-subfilter most-liked-subfilter"><a ng-if="vm.orderBy" title="" href="#" ng-click="vm.setOrderBy()" class="results">{{ \'DISCOVER.FILTERS.CLEAR\' | translate }}</a>\n <ul class="filter-list">\n <li><a ng-class="{active: vm.orderBy == \'-total_fans_last_week\'}" href="#" ng-click="vm.setOrderBy(\'-total_fans_last_week\')">{{ \'DISCOVER.FILTERS.WEEK\' | translate }}</a></li>\n <li><a ng-class="{active: vm.orderBy == \'-total_fans_last_month\'}" href="#" ng-click="vm.setOrderBy(\'-total_fans_last_month\')">{{ \'DISCOVER.FILTERS.MONTH\' | translate }}</a></li>\n <li><a ng-class="{active: vm.orderBy == \'-total_fans_last_year\'}" href="#" ng-click="vm.setOrderBy(\'-total_fans_last_year\')">{{ \'DISCOVER.FILTERS.YEAR\' | translate }}</a></li>\n <li><a ng-class="{active: vm.orderBy == \'-total_fans\'}" href="#" ng-click="vm.setOrderBy(\'-total_fans\')">{{ \'DISCOVER.FILTERS.ALL_TIME\' | translate }}</a></li>\n </ul>\n </div>\n <div ng-if="vm.activity_is_open" class="discover-search-subfilter most-active-subfilter"><a ng-if="vm.orderBy" title="" href="#" ng-click="vm.setOrderBy()" class="results">{{ \'DISCOVER.FILTERS.CLEAR\' | translate }}</a>\n <ul class="filter-list">\n <li><a ng-class="{active: vm.orderBy == \'-total_activity_last_week\'}" href="#" ng-click="vm.setOrderBy(\'-total_activity_last_week\')">{{ \'DISCOVER.FILTERS.WEEK\' | translate }}</a></li>\n <li><a ng-class="{active: vm.orderBy == \'-total_activity_last_month\'}" href="#" ng-click="vm.setOrderBy(\'-total_activity_last_month\')">{{ \'DISCOVER.FILTERS.MONTH\' | translate }}</a></li>\n <li><a ng-class="{active: vm.orderBy == \'-total_activity_last_year\'}" href="#" ng-click="vm.setOrderBy(\'-total_activity_last_year\')">{{ \'DISCOVER.FILTERS.YEAR\' | translate }}</a></li>\n <li><a ng-class="{active: vm.orderBy == \'-total_activity\'}" href="#" ng-click="vm.setOrderBy(\'-total_activity\')">{{ \'DISCOVER.FILTERS.ALL_TIME\' | translate }}</a></li>\n </ul>\n </div>\n</div>'),t.put("discover/components/highlighted/highlighted.html",'\n<div class="highlighted-projects-container">\n <div tg-loading="loading" ng-show="loading" class="loading-container"></div>\n <div tg-repeat="project in highlighted track by project.get(\'id\')" ng-if="!loading" class="highlighted-project"><a href="#" tg-nav="project:project=project.get(\'slug\')" title="{{::project.get(\'name\')}}" class="project-logo"><img tg-project-logo-small-src="::project" alt="{{::project.get(\'name\')}}"/></a>\n <div class="project-data-container">\n <div class="single-project-header">\n <h2 class="project-title"><a href="#" tg-nav="project:project=project.get(\'slug\')" title="{{::project.get(\'name\')}}">{{::project.get(\'name\')}}</a>\n <tg-svg ng-if="project.get(\'is_looking_for_people\')" svg-icon="icon-recruit" svg-title="{{ ::project.get(\'looking_for_people_note\') }}" class="look-for-people"></tg-svg>\n </h2>\n <div class="project-statistics"><span ng-class="{\'active\': project.get(\'is_fan\')}" title="{{ \'PROJECT.FANS_COUNTER_TITLE\'|translate:{total:project.get(\'total_fans\')||0}:\'messageformat\' }}" class="statistic">\n <tg-svg svg-icon="icon-like"></tg-svg><span>{{::project.get(\'total_fans\')}}</span></span><span ng-class="{\'active\': project.get(\'is_watcher\')}" title="{{ \'PROJECT.WATCHERS_COUNTER_TITLE\'|translate:{total:project.get(\'total_watchers\')||0}:\'messageformat\' }}" class="statistic">\n <tg-svg svg-icon="icon-watch"></tg-svg><span>{{::project.get(\'total_watchers\')}}</span></span><span ng-class="{\'active\': project.get(\'i_am_member\')}" title="{{ \'PROJECT.MEMBERS_COUNTER_TITLE\'|translate:{total:project.get(\'members\').size||0}:\'messageformat\' }}" class="statistic">\n <tg-svg svg-icon="icon-team"></tg-svg><span class="statistics-num">{{ ::project.get(\'members\').size }}</span></span></div>\n </div>\n <p class="project-description">{{ ::project.get(\'description\') | limitTo:150 }}{{ ::project.get(\'description\').length < 150 ? \'\' : \'...\'}}</p>\n </div>\n </div>\n <div ng-if="!loading"><a ng-if="highlighted" tg-nav="discover-search" tg-nav-get-params="{&quot;order_by&quot;: &quot;{{orderBy}}&quot;}" href="#" class="view-more-projects button-green">{{ \'DISCOVER.VIEW_MORE\' | translate }}</a></div>\n</div>'),t.put("discover/components/most-active/most-active.html",'\n<div ng-if="vm.highlighted.size" class="most-active">\n <div class="header">\n <div class="title-wrapper">\n <tg-svg svg-icon="icon-activity"></tg-svg>\n <h1 class="title">{{ \'DISCOVER.MOST_ACTIVE\' | translate }}</h1>\n </div>\n <tg-discover-home-order-by on-change="vm.orderBy(orderBy)" order-by="vm.currentOrderBy"></tg-discover-home-order-by>\n </div>\n <tg-highlighted loading="vm.loading" highlighted="vm.highlighted" order-by="vm.order_by"></tg-highlighted>\n</div>\n<div ng-if="!vm.highlighted.size" class="empty-highlighted-project">\n <tg-svg svg-icon="icon-activity"></tg-svg><span>{{ \'DISCOVER.MOST_ACTIVE_EMPTY\' | translate }}</span>\n</div>'),t.put("discover/components/featured-projects/featured-projects.html",'\n<div ng-if="vm.featured.size" class="featured-projects">\n <h1 class="title">{{ \'DISCOVER.FEATURED\' | translate }}</h1>\n <div class="featured-projects-inner">\n <div tg-repeat="project in vm.featured track by project.get(\'id\')" class="featured-project">\n <div class="tags-container">\n <div style="background: {{tag.get(\'color\')}}" title="{{tag.get(\'name\')}}" tg-repeat="tag in project.get(\'colorized_tags\') track by tag.get(\'name\')" class="project-tag"></div>\n </div>\n <div class="project-card-inner">\n <div class="project-card-header"><a href="#" tg-nav="project:project=project.get(\'slug\')" title="{{::project.get(\'name\')}}" class="project-card-logo"><img tg-project-logo-small-src="::project" alt="{{::project.get(\'name\')}}"/></a>\n <h2 class="project-card-name"><a href="#" tg-nav="project:project=project.get(\'slug\')" title="{{::project.get(\'name\')}}">{{::project.get(\'name\')}}</a>\n <tg-svg ng-if="project.get(\'is_looking_for_people\')" svg-icon="icon-recruit" svg-title="{{ ::project.get(\'looking_for_people_note\') }}" class="look-for-people"></tg-svg>\n </h2>\n </div>\n <p class="project-card-description">{{ ::project.get(\'description\') | limitTo:100 }}{{ ::project.get(\'description\').length < 100 ? \'\' : \'...\'}}</p>\n <div class="project-card-statistics"><span ng-class="{\'active\': project.get(\'is_fan\')}" title="{{ \'PROJECT.FANS_COUNTER_TITLE\'|translate:{total:project.get(\'total_fans\')||0}:\'messageformat\' }}" class="statistic">\n <tg-svg svg-icon="icon-like"></tg-svg><span>{{::project.get(\'total_fans\')}}</span></span><span ng-class="{\'active\': project.get(\'is_watcher\')}" title="{{ \'PROJECT.WATCHERS_COUNTER_TITLE\'|translate:{total:project.get(\'total_watchers\')||0}:\'messageformat\' }}" class="statistic">\n <tg-svg svg-icon="icon-watch"></tg-svg><span>{{::project.get(\'total_watchers\')}}</span></span><span ng-class="{\'active\': project.get(\'i_am_member\')}" title="{{ \'PROJECT.MEMBERS_COUNTER_TITLE\'|translate:{total:project.get(\'members\').size||0}:\'messageformat\' }}" class="statistic">\n <tg-svg svg-icon="icon-team"></tg-svg><span class="statistics-num">{{ ::project.get(\'members\').size }}</span></span></div>\n </div>\n </div>\n </div>\n</div>'),t.put("discover/components/most-liked/most-liked.html",'\n<div ng-if="vm.highlighted.size" class="most-liked">\n <div class="header">\n <div class="title-wrapper">\n <tg-svg svg-icon="icon-like"></tg-svg>\n <h1 class="title">{{ \'DISCOVER.MOST_LIKED\' | translate }}</h1>\n </div>\n <tg-discover-home-order-by on-change="vm.orderBy(orderBy)" order-by="vm.currentOrderBy"></tg-discover-home-order-by>\n </div>\n <tg-highlighted loading="vm.loading" highlighted="vm.highlighted" order-by="vm.order_by"></tg-highlighted>\n</div>\n<div ng-if="!vm.highlighted.size" class="empty-highlighted-project">\n <tg-svg svg-icon="icon-like"></tg-svg><span>{{ \'DISCOVER.MOST_LIKED_EMPTY\' | translate }}</span>\n</div>'),t.put("components/assigned-to/assigned-item/assigned-item.html",'\n<div class="assignable-member-single"><img tg-avatar="member" class="assignable-member-avatar"/>\n <div class="assignable-member-name">{{member.full_name}}</div>\n</div>'),t.put("components/assigned-to/assigned-to-selector/assigned-to-selector.html",'\n<tg-lightbox-close></tg-lightbox-close>\n<div class="assigned-to-container">\n <h2 translate="LIGHTBOX.ASSIGNED_TO.SELECT" class="title"></h2>\n <input type="text" placeholder="{{\'LIGHTBOX.ASSIGNED_TO.SEARCH\' | translate}}" autofocus="autofocus" ng-model="vm.assignToMember.name" ng-model-options="{debounce: 200}" class="assign-input"/>\n <ul class="assignable-member-list">\n <li ng-repeat="member in vm.assignedMember" ng-if="vm.assigned" class="assigned-member">\n <tg-assigned-item member="member"></tg-assigned-item>\n <tg-svg svg-icon="icon-close" svg-title-translate="COMMON.ASSIGNED_TO.REMOVE_ASSIGNED" ng-click="vm.onRemoveAssigned()" class="unassign-epic "></tg-svg>\n </li>\n <li ng-repeat="member in vm.nonAssignedMembers | filter: vm.assignToMember.name | limitTo:6" class="">\n <tg-assigned-item member="member" ng-click="vm.onAssignTo({\'member\': member})" class="assigned-members-option"></tg-assigned-item>\n </li>\n </ul>\n</div>'),t.put("components/card/card-templates/card-completion.html","\n<div ng-if=\"vm.visible('extra_info') &amp;&amp; vm.item.getIn(['model', 'tasks']).size\" class=\"card-completion\">\n <div class=\"card-completion-bar\"></div>\n <div ng-style=\"{width: vm.closedTasksPercent() + '%'}\" class=\"card-completion-percentage\"></div><span class=\"card-tooltip\">tasks {{vm.getClosedTasks().size}}/{{vm.item.getIn(['model', 'tasks']).size}}</span>\n</div>"),t.put("components/card/card-templates/card-data.html","\n<div ng-if=\"vm.visible('extra_info')\" ng-class=\"{'empty-tasks': !vm.item.getIn(['model', 'tasks']).size}\" class=\"card-data\"><span ng-if=\"vm.item.getIn(['model', 'total_points']) === null &amp;&amp; vm.visible('empty_extra_info')\" translate=\"US.NOT_ESTIMATED\" class=\"card-estimation not-estimated\"></span><span ng-if=\"vm.item.getIn(['model', 'total_points'])\" class=\"card-estimation\">{{\"COMMON.FIELDS.POINTS\" | translate}} {{vm.item.getIn(['model', 'total_points'])}}</span>\n <div class=\"card-statistics\">\n <tg-due-date due-date=\"vm.item.getIn(['model', 'due_date'])\" due-date-status=\"vm.item.getIn(['model', 'due_date_status'])\" is-closed=\"vm.item.getIn(['model', 'is_closed'])\" class=\"statistic card-due-date\"></tg-due-date>\n <div ng-if=\"vm.item.getIn(['model', 'is_iocaine'])\" title=\"{{'COMMON.IOCAINE_TEXT' | translate}}\" class=\"statistic card-iocaine\">\n <tg-svg svg-icon=\"icon-iocaine\"></tg-svg>\n </div>\n <div ng-class=\"{'active': vm.item.getIn(['model', 'is_voter'])}\" ng-if=\"vm.item.getIn(['model', 'total_voters']) || vm.visible('empty_extra_info')\" class=\"statistic card-votes\">\n <tg-svg svg-icon=\"icon-upvote\"></tg-svg><span>{{vm.item.getIn(['model', 'total_voters'])}}</span>\n </div>\n <div ng-if=\"vm.item.getIn(['model', 'watchers']).size || vm.visible('empty_extra_info')\" class=\"statistic card-watchers\">\n <tg-svg svg-icon=\"icon-watch\"></tg-svg><span>{{vm.item.getIn(['model', 'watchers']).size}}</span>\n </div>\n <div ng-if=\"vm.item.getIn(['model', 'total_comments']) || vm.visible('empty_extra_info')\" class=\"statistic card-comments\">\n <tg-svg svg-icon=\"icon-bubble-empty\"></tg-svg><span>{{vm.item.getIn(['model', 'total_comments'])}}</span>\n </div>\n <div ng-if=\"vm.item.getIn(['model', 'attachments']).size || vm.visible('empty_extra_info')\" class=\"statistic card-attachments\">\n <tg-svg svg-icon=\"icon-attachment\"></tg-svg><span>{{vm.item.getIn(['model', 'attachments']).size}}</span>\n </div>\n </div>\n</div>"),t.put("components/card/card-templates/card-owner.html",'\n<div class="card-owner">\n <div ng-if="vm.item.get(\'assigned_to\') &amp;&amp; (!vm.hasMultipleAssignedUsers() || !vm.visible(\'owner\'))" class="card-owner-info">\n <div class="card-owner-avatar"><img ng-class="{\'is-iocaine\': vm.item.getIn([\'model\', \'is_iocaine\'])}" tg-avatar="vm.item.get(\'assigned_to\')"/></div><span ng-if="vm.visible(\'owner\') &amp;&amp; !vm.hasMultipleAssignedUsers()" class="card-owner-name">{{vm.item.getIn([\'assigned_to\', \'full_name\'])}}</span>\n <div ng-if="!vm.visible(\'owner\')">\n <h2 class="card-title"><a href="" tg-ctrl-click-disable="tg-ctrl-click-disable" tg-nav="{{vm.getNavKey()}}:project=vm.project.slug,ref=vm.item.getIn([\'model\', \'ref\'])" tg-nav-get-params="{&quot;kanban-status&quot;: {{vm.item.getIn([\'model\', \'status\'])}}}" title="#{{ ::vm.item.getIn([\'model\', \'ref\']) }} {{ vm.item.getIn([\'model\', \'subject\'])}}"><span ng-if="vm.visible(\'ref\')">{{::"#" + vm.item.getIn([\'model\', \'ref\'])}}</span><span ng-if="vm.visible(\'subject\')" ng-bind-html="vm.item.getIn([\'model\', \'subject\']) | emojify" class=""></span>\n <tg-belong-to-epics format="pill" ng-if="vm.item.getIn([\'model\', \'epics\'])" epics="vm.item.getIn([\'model\', \'epics\'])"></tg-belong-to-epics></a></h2>\n </div>\n </div>\n <div ng-if="vm.item.get(\'assigned_to\') &amp;&amp; vm.hasMultipleAssignedUsers() &amp;&amp; vm.visible(\'owner\')" class="card-owner-info multiple">\n <div tg-repeat="assignedUser in vm.item.get(\'assigned_users\')" class="card-owner-avatar"><img ng-class="{\'is-iocaine\': vm.item.getIn([\'model\', \'is_iocaine\'])}" tg-avatar="assignedUser"/></div>\n <div ng-if="!vm.visible(\'owner\')">\n <h2 class="card-title"><a href="" tg-ctrl-click-disable="tg-ctrl-click-disable" tg-nav="{{vm.getNavKey()}}:project=vm.project.slug,ref=vm.item.getIn([\'model\', \'ref\'])" tg-nav-get-params="{&quot;kanban-status&quot;: {{vm.item.getIn([\'model\', \'status\'])}}}" title="#{{ ::vm.item.getIn([\'model\', \'ref\']) }} {{ vm.item.getIn([\'model\', \'subject\'])}}"><span ng-if="vm.visible(\'ref\')">{{::"#" + vm.item.getIn([\'model\', \'ref\'])}}</span><span ng-if="vm.visible(\'subject\')" ng-bind-html="vm.item.getIn([\'model\', \'subject\']) | emojify" class=""></span>\n <tg-belong-to-epics format="pill" ng-if="vm.item.getIn([\'model\', \'epics\'])" epics="vm.item.getIn([\'model\', \'epics\'])"></tg-belong-to-epics></a></h2>\n </div>\n </div>\n <div ng-if="!vm.item.get(\'assigned_to\')" class="card-owner-info"><img ng-src="/v-1525361023952/images/unnamed.png"/><span ng-if="vm.visible(\'owner\')" translate="COMMON.ASSIGNED_TO.NOT_ASSIGNED" class="card-owner-name"></span>\n <div ng-if="!vm.visible(\'owner\')">\n <h2 class="card-title"><a href="" tg-ctrl-click-disable="tg-ctrl-click-disable" tg-nav="{{vm.getNavKey()}}:project=vm.project.slug,ref=vm.item.getIn([\'model\', \'ref\'])" tg-nav-get-params="{&quot;kanban-status&quot;: {{vm.item.getIn([\'model\', \'status\'])}}}" title="#{{ ::vm.item.getIn([\'model\', \'ref\']) }} {{ vm.item.getIn([\'model\', \'subject\'])}}"><span ng-if="vm.visible(\'ref\')">{{::"#" + vm.item.getIn([\'model\', \'ref\'])}}</span><span ng-if="vm.visible(\'subject\')" ng-bind-html="vm.item.getIn([\'model\', \'subject\']) | emojify" class=""></span>\n <tg-belong-to-epics format="pill" ng-if="vm.item.getIn([\'model\', \'epics\'])" epics="vm.item.getIn([\'model\', \'epics\'])"></tg-belong-to-epics></a></h2>\n </div>\n </div>\n <div ng-if="vm.visible(\'owner\')" tg-check-permission="{{vm.getModifyPermisionKey()}}" class="card-owner-actions"><a ng-click="!$event.ctrlKey &amp;&amp; !$event.metaKey &amp;&amp; vm.onClickAssignedTo({id: vm.item.get(\'id\')})" href="" class=" card-owner-assign">\n <tg-svg svg-icon="icon-add-user"></tg-svg><span translate="COMMON.CARD.ASSIGN_TO"></span></a>\n <div class="card-actions"><a href="" ng-click="!$event.ctrlKey &amp;&amp; !$event.metaKey &amp;&amp; vm.onClickEdit({id: vm.item.get(\'id\')})" tg-loading="vm.item.get(\'loading-edit\')" title="{{ \'COMMON.CARD.EDIT\' | translate }}" class=" card-edit">\n <tg-svg svg-icon="icon-edit"></tg-svg></a><a href="" ng-click="!$event.ctrlKey &amp;&amp; !$event.metaKey &amp;&amp; vm.onClickDelete({id: vm.item.get(\'id\')})" tg-loading="vm.item.get(\'loading-delete\')" title="{{ \'COMMON.CARD.DELETE\' | translate }}" tg-check-permission="{{vm.getDeletePermisionKey()}}" class=" card-delete">\n <tg-svg svg-icon="icon-trash"></tg-svg></a></div>\n </div>\n</div>'),t.put("components/card/card-templates/card-tags.html",'\n<div ng-if="vm.visible(\'tags\')" class="card-tags"><span tg-repeat="tag in vm.item.get(\'colorized_tags\') track by tag.get(\'name\')" style="background-color: {{tag.get(\'color\')}}" title="{{tag.get(\'name\')}}" ng-if="tag.get(\'color\')" class="card-tag"></span></div>'),t.put("components/card/card-templates/card-tasks.html","\n<ul ng-if=\"vm.isRelatedTasksVisible()\" class=\"card-tasks\">\n <li tg-repeat=\"task in vm.item.getIn(['model', 'tasks'])\" class=\"card-task\"><a href=\"#\" tg-nav=\"project-tasks-detail:project=vm.project.slug,ref=task.get('ref')\" ng-class=\"{'closed-task': task.get('is_closed'), 'blocked-task': task.get('is_blocked')}\" ng-bind-html=\"'#'+task.get('ref')+' '+task.get('subject') | emojify\"></a></li>\n</ul>"),t.put("components/card/card-templates/card-title.html","\n<h2 class=\"card-title\"><a href=\"\" tg-ctrl-click-disable=\"tg-ctrl-click-disable\" tg-nav=\"{{vm.getNavKey()}}:project=vm.project.slug,ref=vm.item.getIn(['model', 'ref'])\" tg-nav-get-params=\"{&quot;kanban-status&quot;: {{vm.item.getIn(['model', 'status'])}}}\" title=\"#{{ ::vm.item.getIn(['model', 'ref']) }} {{ vm.item.getIn(['model', 'subject'])}}\"><span ng-if=\"vm.visible('ref')\">{{::\"#\" + vm.item.getIn(['model', 'ref'])}}</span><span ng-if=\"vm.visible('subject')\" ng-bind-html=\"vm.item.getIn(['model', 'subject']) | emojify\" class=\"\"></span>\n <tg-belong-to-epics format=\"pill\" ng-if=\"vm.item.getIn(['model', 'epics'])\" epics=\"vm.item.getIn(['model', 'epics'])\"></tg-belong-to-epics></a></h2>"),t.put("components/card/card-templates/card-unfold.html",'\n<div ng-click="!$event.ctrlKey &amp;&amp; !$event.metaKey &amp;&amp; vm.toggleFold()" ng-if="vm.visible(\'unfold\') &amp;&amp; (vm.hasTasks() || vm.hasVisibleAttachments())" role="button" class="card-unfold ng-animate-disabled">\n <tg-svg svg-icon="icon-view-more"></tg-svg>\n</div>\n<div tg-loading="vm.item.get(\'loading-extra\')" class="loading-extra"></div>'),t.put("components/detail/header/detail-header.html",'\n<div ng-class="{readonly: !vm.permissions.canEdit}" class="detail-title-wrapper ">\n <h2 ng-show="!vm.editMode" ng-hide="vm.editMode" class="detail-title-text ng-animate-disabled"><span class="detail-number">{{\'#\' + vm.item.ref}}</span><span ng-click="vm.editSubject(true)" ng-if="vm.permissions.canEdit" ng-bind-html="vm.item.subject | emojify" class="detail-subject "></span><span ng-if="!vm.permissions.canEdit" ng-bind-html="vm.item.subject | emojify" class="detail-subject "></span><a href="" ng-if="vm.permissions.canEdit" ng-click="vm.editSubject(true)">\n <tg-svg svg-icon="icon-edit" class="detail-edit "></tg-svg></a>\n <tg-due-date due-date="vm.item.due_date" due-date-status="vm.item.due_date_status" ng-if="vm.item.due_date" is-closed="vm.item.is_closed"></tg-due-date>\n </h2>\n <div ng-if="vm.editMode" class="edit-title-wrapper">\n <input type="text" ng-model="vm.item.subject" maxlength="500" autofocus="autofocus" required="required" ng-keydown="vm.onKeyDown($event)" class="edit-title-input "/>\n <button ng-click="vm.saveSubject()" tg-loading="vm.loadingSubject" class="edit-title-button ">\n <tg-svg svg-icon="icon-save"></tg-svg>\n </button>\n </div>\n</div>\n<div ng-if="vm.item.epics" class="belong-to-epics-wrapper"><span translate="US.OWNER_US"></span>\n <tg-belong-to-epics ng-if="::vm.item.epics" epics="::vm.item.epics" format="text"></tg-belong-to-epics>\n</div>\n<div ng-if="vm.item.user_story_extra_info" tg-check-permission="view_us" class="task-belongs-to"><span translate="TASK.OWNER_US"></span><a tg-nav="project-userstories-detail:project=vm.project.slug,ref=vm.item.user_story_extra_info.ref" title="{{\'TASK.TITLE_LINK_GO_OWNER\' | translate}}"><span class="item-ref">{{\'#\' + vm.item.user_story_extra_info.ref}}</span><span ng-bind-html="vm.item.user_story_extra_info.subject | emojify"></span>\n <tg-belong-to-epics ng-if="::vm.item.user_story_extra_info.epics" epics="::vm.item.user_story_extra_info.epics" format="pill"></tg-belong-to-epics></a></div>\n<div ng-if="vm.item.generated_user_stories.length" class="item-generated-us"><span translate="ISSUES.PROMOTED"></span><a ng-repeat="userstory in vm.item.generated_user_stories track by userstory.id" tg-check-permission="view_us" tg-nav="project-userstories-detail:project=vm.project.slug,ref=userstory.ref" ng-bind-html="\'#\'+userstory.ref+\' \'+userstory.subject | emojify"></a></div>\n<div ng-if="vm.item.external_reference" class="issue-external-reference"><span translate="ISSUES.EXTERNAL_REFERENCE"></span><a target="_blank" ng-href="{{::vm.item.external_reference[1]}}" ng-title="{{\'ISSUES.GO_TO_EXTERNAL_REFERENCE\' | translate}}"><span>{{ ::vm.item.external_reference[1] }}</span></a></div>\n<div ng-if="vm.item.origin_issue" class="item-origin-issue"><span translate="US.PROMOTED"></span><a href="" tg-check-permission="view_us" tg-nav="project-issues-detail:project=vm.project.slug,ref=vm.item.origin_issue.ref" title="{{\'US.TITLE_LINK_GO_TO_ISSUE\' | translate}}"><span class="item-ref">{{\'#\' + vm.item.origin_issue.ref}}</span><span ng-bind-html="vm.item.origin_issue.subject | emojify"></span></a></div>\n<div ng-show="vm.item.is_blocked" class="block-desc-container"><span translate="COMMON.BLOCKED" class="block-description-title"></span><span ng-if="vm.item.blocked_note" class="block-description">{{vm.item.blocked_note}}</span></div>\n<div class="issue-nav"><a ng-if="vm.previousUrl" ng-href="{{vm.previousUrl}}" title="{{\'COMMON.PREVIOUS\' | translate}}">\n <tg-svg svg-icon="icon-arrow-left"></tg-svg></a><a ng-if="vm.nextUrl" ng-href="{{vm.nextUrl}}" title="{{\'COMMON.NEXT\' | translate}}">\n <tg-svg svg-icon="icon-arrow-right"></tg-svg></a></div>'),
t.put("components/tags/components/add-tag-button.html",'<a ng-if="!vm.addTag &amp;&amp; vm.checkPermissions()" href="#" title="{{\'COMMON.TAGS.ADD\' | translate}}" ng-click="vm.displayTagInput()" class="add-tag-button ng-animate-disabled ">\n <tg-svg svg-icon="icon-add" svg-title-translate="COMMON.TAGS.ADD"></tg-svg><span translate="COMMON.TAGS.ADD" class="add-tag-text"></span></a>'),t.put("components/tags/components/add-tag-input.html",'\n<div novalidate="novalidate" ng-if="vm.addTag &amp;&amp; vm.checkPermissions()" tg-loading="vm.loadingAddTag" class="add-tag-input">\n <input type="text" placeholder="{{\'COMMON.TAGS.PLACEHOLDER\' | translate}}" tg-autofocus="tg-autofocus" ng-model="vm.newTag.name" ng-model-options="{debounce: 200}" class="tag-input "/>\n <tg-tags-dropdown ng-if="!vm.disableColorSelection" ng-show="vm.newTag.name.length" color-array="vm.colorArray" tag="vm.newTag" on-select-tag="vm.addNewTag(name, color)"></tg-tags-dropdown>\n <tg-color-selector ng-if="!vm.disableColorSelection" on-select-color="vm.selectColor(color)" is-color-required="false"></tg-color-selector>\n <tg-svg ng-show="vm.newTag.name.length" svg-icon="icon-save" svg-title-translate="COMMON.TAGS.ADD" ng-click="vm.addNewTag(vm.newTag.name, vm.newTag.color)" class="save"></tg-svg>\n</div>'),t.put("components/tags/tag/tag.html",'<span ng-bind-html="tag[0] | emojify"></span>\n<tg-svg ng-if="hasPermissions" svg-icon="icon-close" svg-title-translate="COMMON.TAG.DELETE" ng-click="onDeleteTag(tag)" tg-loading="loadingRemoveTag == tag[0]" class="icon-close "></tg-svg>'),t.put("components/tags/tag-dropdown/tag-dropdown.html",'\n<ul class="tags-dropdown">\n <li ng-repeat="tag in colorArray | filter: tag.name" ng-click="onSelectTag({name: tag[0], color: tag[1]})">\n <div class="tags-dropdown-option"><span class="tags-dropdown-name">{{tag[0]}}</span><span ng-if="tag[1]" ng-style="{\'background\': tag[1]}" ng-title="tag[1]" class="tags-dropdown-color"></span></div>\n </li>\n</ul>'),t.put("components/tags/tag-line-common/tag-line-common.html",'\n<div class="tags-container">\n <div ng-if="tag[1] &amp;&amp; !vm.disableColorSelection" ng-repeat="tag in vm.tags" ng-style="{\'border-left\': \'.3rem solid\' + tag[1]}" class="tag">\n <tg-tag tag="tag" loading-remove-tag="vm.loadingRemoveTag" project="vm.project" on-delete-tag="vm.onDeleteTag({tag: tag})" has-permissions="{{vm.checkPermissions()}}"></tg-tag>\n </div>\n <div ng-if="!tag[1] || vm.disableColorSelection" ng-repeat="tag in vm.tags" class="tag">\n <tg-tag tag="tag" loading-remove-tag="vm.loadingRemoveTag" on-delete-tag="vm.onDeleteTag({tag: tag})" has-permissions="{{vm.checkPermissions()}}"></tg-tag>\n </div>\n</div><a ng-if="!vm.addTag &amp;&amp; vm.checkPermissions()" href="#" title="{{\'COMMON.TAGS.ADD\' | translate}}" ng-click="vm.displayTagInput()" class="add-tag-button ng-animate-disabled ">\n <tg-svg svg-icon="icon-add" svg-title-translate="COMMON.TAGS.ADD"></tg-svg><span translate="COMMON.TAGS.ADD" class="add-tag-text"></span></a>\n<div novalidate="novalidate" ng-if="vm.addTag &amp;&amp; vm.checkPermissions()" tg-loading="vm.loadingAddTag" class="add-tag-input">\n <input type="text" placeholder="{{\'COMMON.TAGS.PLACEHOLDER\' | translate}}" tg-autofocus="tg-autofocus" ng-model="vm.newTag.name" ng-model-options="{debounce: 200}" class="tag-input "/>\n <tg-tags-dropdown ng-if="!vm.disableColorSelection" ng-show="vm.newTag.name.length" color-array="vm.colorArray" tag="vm.newTag" on-select-tag="vm.addNewTag(name, color)"></tg-tags-dropdown>\n <tg-color-selector ng-if="!vm.disableColorSelection" on-select-color="vm.selectColor(color)" is-color-required="false"></tg-color-selector>\n <tg-svg ng-show="vm.newTag.name.length" svg-icon="icon-save" svg-title-translate="COMMON.TAGS.ADD" ng-click="vm.addNewTag(vm.newTag.name, vm.newTag.color)" class="save"></tg-svg>\n</div>'),t.put("components/tags/tag-line-detail/tag-line-detail.html",'\n<tg-tag-line-common project="vm.project" tags="vm.item.tags" permissions="{{vm.permissions}}" loading-remove-tag="vm.loadingRemoveTag" loading-add-tag="vm.loadingAddTag" on-add-tag="vm.onAddTag(name, color)" on-delete-tag="vm.onDeleteTag(tag)" class="tags-block"></tg-tag-line-common>'),t.put("components/wysiwyg/wysiwyg-code-lightbox/wysiwyg-code-lightbox.html",'\n<tg-lightbox-close on-close="onClose()"></tg-lightbox-close>\n<form ng-if="open" ng-submit="onSave({lan: codeLanguage, code: code})">\n <h2 translate="COMMON.WYSIWYG.CODE_SNIPPET" class="title"></h2>\n <fieldset>\n <select ng-model="codeLanguage">\n <option value="">{{\'COMMON.WYSIWYG.SELECT_LANGUAGE_PLACEHOLDER\' | translate}}</option>\n <option value="remove-formating">{{\'COMMON.WYSIWYG.SELECT_LANGUAGE_REMOVE_FORMATING\' | translate}}</option>\n <option ng-repeat="option in languages" ng-value="option.name">{{option.name}}</option>\n </select>\n </fieldset>\n <fieldset>\n <textarea ng-model="code"></textarea>\n </fieldset>\n <fieldset>\n <button type="submit" translate="COMMON.SAVE" class="button-green submit-button"></button>\n </fieldset>\n</form>'),t.put("epics/dashboard/epic-row/epic-row.html",'\n<div ng-class="{\'is-blocked\': vm.epic.get(\'is_blocked\'), \'is-closed\': vm.epic.get(\'is_closed\'), \'unfold\': vm.displayUserStories, \'not-empty\': vm.epic.getIn([\'user_stories_counts\', \'opened\']) || vm.epic.getIn([\'user_stories_counts\', \'closed\'])}" ng-click="vm.toggleUserStoryList()" class="epic-row ">\n <tg-svg svg-icon="icon-drag" ng-if="vm.canEditEpics()" class="icon-drag"></tg-svg>\n <div ng-if="vm.column.votes" ng-class="{\'is-voter\': vm.epic.get(\'is_voter\')}" class="vote">\n <tg-svg svg-icon="icon-upvote"></tg-svg><span>{{::vm.epic.get(\'total_voters\')}}</span>\n </div>\n <div ng-if="vm.column.name" class="name"><a tg-nav="project-epics-detail:project=vm.project.slug,ref=vm.epic.get(\'ref\')" ng-attr-title="{{::vm.epic.get(\'subject\')}}" ng-bind-html="\'#\'+vm.epic.get(\'ref\')+\' \'+vm.epic.get(\'subject\') | emojify"></a><span ng-style="::{\'background-color\': vm.epic.get(\'color\')}" translate="EPICS.EPIC" class="epic-pill"></span>\n <tg-svg svg-icon="icon-arrow-down" ng-if="vm.epic.getIn([\'user_stories_counts\', \'total\'])"></tg-svg>\n </div>\n <div ng-if="vm.column.project" class="project"></div>\n <div ng-if="vm.column.sprint" class="sprint"></div>\n <div ng-if="vm.column.assigned" tg-loading="vm.assignLoader" class="assigned ">\n <tg-assigned-to-component assigned-to="vm.epic.get(\'assigned_to_extra_info\')" project="vm.project" on-remove-assigned="vm.updateAssignedTo()" on-assign-to="vm.updateAssignedTo(member)" tg-isolate-click="tg-isolate-click"></tg-assigned-to-component>\n </div>\n <div ng-if="vm.column.status &amp;&amp; !vm.canEditEpics()" class="status"><span>{{vm.epic.getIn([\'status_extra_info\', \'name\'])}}</span></div>\n <div ng-if="vm.column.status &amp;&amp; vm.canEditEpics()" ng-mouseleave="vm.displayStatusList = false" tg-isolate-click="tg-isolate-click" class="status">\n <button ng-click="vm.displayStatusList = true" ng-style="{\'color\': vm.epic.getIn([\'status_extra_info\', \'color\'])}" tg-loading="vm.loadingStatus"><span class="">{{vm.epic.getIn([\'status_extra_info\', \'name\'])}}</span>\n <tg-svg svg-icon="icon-arrow-down"></tg-svg>\n </button>\n <ul ng-if="vm.displayStatusList" class="epic-statuses">\n <li ng-repeat="status in vm.project.epic_statuses | orderBy:\'order\'" ng-click="vm.updateStatus(status.id)" class="">{{status.name}}</li>\n </ul>\n </div>\n <div ng-if="vm.column.progress" class="progress">\n <div class="progress-bar"></div>\n <div ng-if="::vm.percentage" ng-style="{\'width\':vm.percentage}" class="progress-status"></div>\n </div>\n</div>\n<div ng-if="vm.displayUserStories &amp;&amp; vm.epicStories" class="epic-stories-wrapper">\n <div tg-repeat="story in vm.epicStories track by story.get(\'id\')" class="epic-story">\n <tg-story-row story="story" column="vm.column" class=""></tg-story-row>\n </div>\n</div>'),t.put("epics/dashboard/epics-table/epics-table.html",'\n<div class="epics-table ">\n <div class="epics-table-header ">\n <div translate="EPICS.TABLE.VOTES" ng-if="vm.column.votes" class="vote"></div>\n <div translate="EPICS.TABLE.NAME" class="name"></div>\n <div translate="EPICS.TABLE.PROJECT" ng-if="vm.column.project" class="project"></div>\n <div translate="EPICS.TABLE.SPRINT" ng-if="vm.column.sprint" class="sprint"></div>\n <div translate="EPICS.TABLE.ASSIGNED_TO" ng-if="vm.column.assigned" class="assigned"></div>\n <div translate="EPICS.TABLE.STATUS" ng-if="vm.column.status" class="status"></div>\n <div translate="EPICS.TABLE.PROGRESS" ng-if="vm.column.progress" class="progress"></div>\n <div ng-mouseleave="vm.hideEpicTableOption()" class="epics-table-options-wrapper">\n <button ng-click="vm.displayOptions = true" class="epics-table-option-button "><span translate="EPICS.TABLE.VIEW_OPTIONS"></span>\n <tg-svg svg-icon="icon-arrow-down"></tg-svg>\n </button>\n <form ng-show="vm.displayOptions" ng-mouseenter="vm.keepEpicTableOption()" class="epics-table-dropdown ng-hide">\n <div class="fieldset">\n <label translate="EPICS.TABLE.VOTES" for="epicSwitch-votes" class="epics-table-options-vote"></label>\n <div class="check">\n <input id="switch-votes" name="switch-votes" type="checkbox" ng-checked="vm.column.votes" ng-model="vm.column.votes" ng-change="vm.updateViewOptions()" class="activate-input"/>\n <div></div><span translate="COMMON.YES" class="check-text check-yes"></span><span translate="COMMON.NO" class="check-text check-no"></span>\n </div>\n </div>\n <div class="fieldset">\n <label translate="EPICS.TABLE.PROJECT" for="switch-project" class="epics-table-options-vote"></label>\n <div class="check">\n <input id="switch-project" name="switch-project" type="checkbox" ng-checked="vm.column.project" ng-model="vm.column.project" ng-change="vm.updateViewOptions()" class="activate-input"/>\n <div></div><span translate="COMMON.YES" class="check-text check-yes"></span><span translate="COMMON.NO" class="check-text check-no"></span>\n </div>\n </div>\n <div class="fieldset">\n <label translate="EPICS.TABLE.SPRINT" for="switch-sprint" class="epics-table-options-vote"></label>\n <div class="check">\n <input id="switch-sprint" name="switch-sprint" type="checkbox" ng-checked="vm.column.sprint" ng-model="vm.column.sprint" ng-change="vm.updateViewOptions()" class="activate-input"/>\n <div></div><span translate="COMMON.YES" class="check-text check-yes"></span><span translate="COMMON.NO" class="check-text check-no"></span>\n </div>\n </div>\n <div class="fieldset">\n <label translate="EPICS.TABLE.ASSIGNED_TO" for="switch-assigned" class="epics-table-options-vote"></label>\n <div class="check">\n <input id="switch-assigned" name="switch-assigned" type="checkbox" ng-checked="vm.column.assigned" ng-model="vm.column.assigned" ng-change="vm.updateViewOptions()" class="activate-input"/>\n <div></div><span translate="COMMON.YES" class="check-text check-yes"></span><span translate="COMMON.NO" class="check-text check-no"></span>\n </div>\n </div>\n <div class="fieldset">\n <label translate="EPICS.TABLE.STATUS" for="switch-status" class="epics-table-options-vote"></label>\n <div class="check">\n <input id="switch-status" name="switch-status" type="checkbox" ng-checked="vm.column.status" ng-model="vm.column.status" ng-change="vm.updateViewOptions()" class="activate-input"/>\n <div></div><span translate="COMMON.YES" class="check-text check-yes"></span><span translate="COMMON.NO" class="check-text check-no"></span>\n </div>\n </div>\n <div class="fieldset">\n <label translate="EPICS.TABLE.PROGRESS" for="switch-progress" class="epics-table-options-vote"></label>\n <div class="check">\n <input id="switch-progress" name="switch-progress" type="checkbox" ng-checked="vm.column.progress" ng-model="vm.column.progress" ng-change="vm.updateViewOptions()" class="activate-input"/>\n <div></div><span translate="COMMON.YES" class="check-text check-yes"></span><span translate="COMMON.NO" class="check-text check-no"></span>\n </div>\n </div>\n </form>\n </div>\n </div>\n <div tg-epics-sortable="vm.reorderEpic(epic, newIndex)" infinite-scroll="vm.nextPage()" infinite-scroll-disabled="vm.disabledEpicsPagination" infinite-scroll-immediate-check="false" class="epics-table-body">\n <div tg-repeat="epic in vm.epics track by epic.get(\'id\')" tg-bind-scope="tg-bind-scope" class="epics-table-body-row">\n <tg-epic-row epic="epic" column="vm.column" class=""></tg-epic-row>\n </div>\n <div tg-loading="vm.loadingEpics"></div>\n </div>\n</div>'),t.put("epics/dashboard/story-row/story-row.html",'\n<div ng-class="{\'is-blocked\': vm.story.get(\'is_blocked\'), \'is-closed\': vm.story.get(\'is_closed\')}" class="story-row">\n <div ng-if="vm.column.votes" ng-class="{\'is-voter\': vm.story.get(\'is_voter\')}" class="vote">\n <tg-svg svg-icon="icon-upvote"></tg-svg><span>{{::vm.story.get(\'total_voters\')}}</span>\n </div>\n <div ng-if="vm.column.name" class="name"><a tg-nav="project-userstories-detail:project=vm.story.getIn([\'project_extra_info\', \'slug\']),ref=vm.story.get(\'ref\')" ng-attr-title="{{::vm.story.get(\'subject\')}}" ng-bind-html="\'#\'+vm.story.get(\'ref\')+\' \'+vm.story.get(\'subject\') | emojify"></a>\n <tg-belong-to-epics ng-if="vm.story.get(\'epics\')" format="pill" epics="vm.story.get(\'epics\')"></tg-belong-to-epics>\n </div>\n <div ng-if="vm.column.project" tg-nav="project:project=vm.story.getIn([\'project_extra_info\', \'slug\'])" class="project"><img tg-project-logo-small-src="::vm.story.get(\'project_extra_info\')" alt="{{::vm.story.getIn([\'project_extra_info\', \'name\'])}}"/></div>\n <div ng-if="vm.column.sprint" class="sprint">{{::vm.story.get(\'milestone_name\')}}</div>\n <div ng-if="vm.column.assigned &amp;&amp; vm.story.get(\'assigned_to\')" class="assigned"><img tg-avatar="vm.story.get(\'assigned_to_extra_info\')" alt="{{::vm.story.getIn([\'assigned_to_extra_info\', \'full_name_display\'])}}"/></div>\n <div ng-if="vm.column.assigned &amp;&amp; !vm.story.get(\'assigned_to\')" class="assigned"><img src="/v-1525361023952/images/unnamed.png" alt="{{EPICS.DASHBOARD.UNASSIGNED | translate}}"/></div>\n <div ng-if="vm.column.status" class="status">{{vm.story.getIn([\'status_extra_info\', \'name\'])}}</div>\n <div ng-if="vm.column.progress" class="progress">\n <div class="progress-bar"></div>\n <div ng-if="::vm.percentage" ng-style="{\'width\':vm.percentage}" class="progress-status"></div>\n </div>\n</div>'),t.put("epics/related-userstories/related-userstories-create/related-userstories-create.html",'<a href="" ng-click="showLightbox(selectedProject)" class="add-button ">\n <tg-svg svg-icon="icon-add"></tg-svg></a>\n<div class="lightbox lightbox-create-related-user-stories">\n <tg-lightbox-close></tg-lightbox-close>\n <div class="lightbox-create-related-user-stories-wrapper">\n <h2 translate="EPIC.CREATE_RELATED_USERSTORIES" class="title"></h2>\n <div class="related-with-selector">\n <div class="related-with-selector-single">\n <input type="radio" name="related-with-selector" id="new-user-story" value="new-user-story" ng-model="relatedWithSelector" ng-init="relatedWithSelector=\'new-user-story\'"/>\n <label for="new-user-story" class=""><span class="name">{{ \'EPIC.NEW_USERSTORY\' | translate}}</span></label>\n </div>\n <div class="related-with-selector-single">\n <input type="radio" name="related-with-selector" id="existing-user-story" value="existing-user-story" ng-model="relatedWithSelector"/>\n <label for="existing-user-story" class=""><span class="name">{{ \'EPIC.EXISTING_USERSTORY\' | translate}}</span></label>\n </div>\n </div>\n <fieldset class="project-selector">\n <label ng-if="relatedWithSelector==\'new-user-story\'" translate="EPIC.CHOOSE_PROJECT_FOR_CREATION" for="project-selector-dropdown"></label>\n <label ng-if="relatedWithSelector==\'existing-user-story\'" translate="EPIC.CHOOSE_PROJECT_FROM" for="project-selector-dropdown"></label>\n <select ng-model="selectedProject" ng-change="selectProject(selectedProject)" data-required="true" ng-options="p.id as p.name for p in vm.projects | toMutable" id="project-selector-dropdown"></select>\n </fieldset>\n <fieldset ng-show="relatedWithSelector==\'new-user-story\'">\n <div class="new-user-story-title">\n <label ng-show="creationMode==\'single-new-user-story\'" translate="EPIC.SUBJECT"></label>\n <label ng-show="creationMode==\'bulk-new-user-stories\'" translate="EPIC.SUBJECT_BULK_MODE"></label>\n <div class="new-user-story-options">\n <div class="new-user-story-option-single">\n <input type="radio" name="new-user-story-selector" id="single-new-user-story" value="single-new-user-story" ng-model="creationMode" ng-init="creationMode=\'single-new-user-story\'"/>\n <label for="single-new-user-story" class="">\n <tg-svg svg-icon="icon-add"></tg-svg>\n </label>\n </div>\n <div class="new-user-story-option-single">\n <input type="radio" name="new-user-story-selector" id="bulk-new-user-stories" value="bulk-new-user-stories" ng-model="creationMode"/>\n <label for="bulk-new-user-stories" class="">\n <tg-svg svg-icon="icon-bulk"></tg-svg>\n </label>\n </div>\n </div>\n </div>\n <form class="new-user-story-form">\n <div ng-show="creationMode==\'single-new-user-story\'" class="single-creation">\n <input type="text" ng-model="relatedUserstoriesText" data-required="true" class=""/>\n </div>\n <div ng-show="creationMode==\'bulk-new-user-stories\'" class="bulk-creation">\n <textarea ng-model="relatedUserstoriesText" data-required="true" class=""></textarea>\n </div>\n </form>\n <button href="" ng-click="vm.bulkCreateRelatedUserStories(selectedProject, relatedUserstoriesText, closeLightbox)" tg-loading="vm.loading" translate="COMMON.SAVE" ng-show="relatedWithSelector==\'new-user-story\'" class="button-green create-user-story ng-animate-disabled"></button>\n </fieldset>\n <fieldset ng-show="relatedWithSelector==\'existing-user-story\'" class="existing-user-story">\n <label translate="EPIC.CHOOSE_USERSTORY" for="userstory-filter"></label>\n <input id="userstory-filter" type="text" placeholder="{{\'EPIC.FILTER_USERSTORIES\' | translate}}" ng-model="searchUserstory" ng-change="onUpdateSearchUserstory()" class="userstory-filter "/>\n <form ng-show="relatedWithSelector==\'existing-user-story\' &amp;&amp; vm.projectUserstories.size" class="existing-user-story-form">\n <select size="5" ng-model="selectedUserstory" data-required="true" class="userstory ">\n <option value="" class="hidden"></option>\n <option ng-repeat="us in vm.projectUserstories | toMutable track by us.id" value="{{ ::us.id }}">#{{::us.ref}} {{::us.subject}}</option>\n </select>\n </form>\n <p ng-show="relatedWithSelector==\'existing-user-story\' &amp;&amp; !vm.projectUserstories.size" translate="EPIC.NO_USERSTORIES_FOUND" class="no-stories-found"></p>\n <button href="" ng-click="vm.saveRelatedUserStory(selectedUserstory, closeLightbox)" tg-loading="vm.loading" translate="COMMON.SAVE" class="button-green "></button>\n </fieldset>\n </div>\n</div>'),t.put("epics/related-userstories/related-userstory-row/related-userstory-row.html",'\n<tg-svg svg-icon="icon-drag" tg-check-permission="modify_epic" class="icon-drag"></tg-svg>\n<div class="userstory-name"><a tg-nav="project-userstories-detail:project=vm.userstory.getIn([\'project_extra_info\', \'slug\']),ref=vm.userstory.get(\'ref\')" ng-attr-title="{{vm.userstory.get(\'subject\')}}" ng-bind-html="\'#\'+vm.userstory.get(\'ref\')+\' \'+vm.userstory.get(\'subject\') | emojify"></a>\n <tg-belong-to-epics format="pill" ng-if="vm.userstory.get(\'epics\')" epics="vm.userstory.get(\'epics\')"></tg-belong-to-epics>\n</div>\n<div class="userstory-settings"><a tg-check-permission="modify_epic" title="{{\'COMMON.UNLINK\' | translate}}" href="" ng-click="vm.onDeleteRelatedUserstory()" class="delete-userstory ">\n <tg-svg svg-icon="icon-broken-link"></tg-svg></a></div>\n<div tg-nav="project:project=vm.userstory.getIn([\'project_extra_info\', \'slug\'])" class="project"><img tg-project-logo-small-src="::vm.userstory.get(\'project_extra_info\')" alt="{{::vm.userstory.getIn([\'project_extra_info\', \'name\'])}}"/></div>\n<div class="status"><span ng-style="{\'color\': vm.userstory.getIn([\'status_extra_info\', \'color\'])}" class="userstory-status">{{vm.userstory.getIn([\'status_extra_info\', \'name\'])}}</span></div>\n<div class="assigned-to-column">\n <figure class="avatar"><img style="background-color: {{ vm.avatar.bg }}" src="{{ vm.avatar.url }}" alt="{{ vm.avatar.full_name_display }}"/>\n <figcaption>{{ vm.getAssignedToFullNameDisplay() }}</figcaption>\n </figure>\n</div>\n<div tg-related-userstories-create-form="tg-related-userstories-create-form"></div>'),t.put("profile/profile-favs/items/project.html",'\n<div ng-class="{\'blocked-project\': vm.item.get(\'project_blocked_code\')}" class="list-itemtype-project">\n <div class="list-itemtype-project-left">\n <div class="list-itemtype-project-data-wrapper"><a href="#" tg-nav="project:project=vm.item.get(\'slug\')" title="{{ ::vm.item.get(\'name\') }}" class="list-itemtype-project-image"><img tg-project-logo-small-src="vm.item" title="{{ ::vm.item.get(\'name\') }}"/></a>\n <div class="list-itemtype-project-data">\n <h2><a href="#" tg-nav="project:project=vm.item.get(\'slug\')" title="{{ ::vm.item.get(\'name\') }}" class="list-itemtype-project-name">{{ ::vm.item.get(\'name\') }}</a>\n <tg-svg ng-if="::vm.item.get(\'is_private\')" svg-icon="icon-lock" svg-title-translate="PROJECT.PRIVATE"></tg-svg>\n <tg-svg ng-if="vm.item.get(\'blocked_code\')" svg-icon="icon-blocked-project" svg-title-translate="PROJECT.BLOCKED_PROJECT.BLOCKED"></tg-svg>\n </h2>\n <p class="list-itemtype-project-description">{{ ::vm.item.get(\'description\') }}</p>\n </div>\n </div>\n </div>\n <div class="list-itemtype-track"><span ng-class="{\'active\': vm.item.get(\'is_fan\')}" title="{{ \'PROJECT.LIKE_BUTTON.COUNTER_TITLE\'|translate:{total:vm.item.get(&quot;total_fans&quot;)||0}:\'messageformat\' }}" class="list-itemtype-track-likers">\n <tg-svg svg-icon="icon-like"></tg-svg><span>{{ ::vm.item.get(\'total_fans\') }}</span></span><span ng-class="{\'active\': vm.item.get(\'is_watcher\')}" title="{{ \'PROJECT.WATCH_BUTTON.COUNTER_TITLE\'|translate:{total:vm.item.get(&quot;total_watchers&quot;)||0}:\'messageformat\' }}" class="list-itemtype-track-watchers">\n <tg-svg svg-icon="icon-watch"></tg-svg><span>{{ ::vm.item.get(\'total_watchers\') }}</span></span></div>\n</div>'),t.put("profile/profile-favs/items/ticket.html",'\n<div ng-class="{\'blocked-project\': vm.item.get(\'project_blocked_code\')}" class="list-itemtype-ticket"><a href="" ng-if="::vm.item.get(\'assigned_to\')" tg-nav="user-profile:username=vm.item.get(\'assigned_to_username\')" title="{{ ::vm.item.getIn([\'assigned_to_extra_info\', \'full_name_display\']) }}" class="list-itemtype-avatar"><img tg-avatar="vm.item.get(\'assigned_to_extra_info\')" alt="{{ ::vm.item.getIn([\'assigned_to_extra_info\', \'full_name_display\']) }}"/></a><a href="" ng-if="::!vm.item.get(\'assigned_to\')" title="{{ \'COMMON.ASSIGNED_TO.NOT_ASSIGNED\'|translate }}" class="list-itemtype-avatar"><img src="/v-1525361023952/images/unnamed.png" alt="{{ \'COMMON.ASSIGNED_TO.NOT_ASSIGNED\'|translate }}"/></a>\n <div class="list-itemtype-ticket-data">\n <p><span class="ticket-project">{{:: vm.item.get(\'project_name\') }}</span><span ng-if="::vm.item.get(\'type\') === \'epic\'" translate="COMMON.EPIC" class="ticket-type"></span><span ng-if="::vm.item.get(\'type\') === \'userstory\'" translate="COMMON.USER_STORY" class="ticket-type"></span><span ng-if="::vm.item.get(\'type\') === \'task\'" translate="COMMON.TASK" class="ticket-type"></span><span ng-if="::vm.item.get(\'type\') === \'issue\'" translate="COMMON.ISSUE" class="ticket-type"></span><span ng-style="::{\'color\': vm.item.get(\'status_color\')}" class="ticket-status">{{:: vm.item.get(\'status\') }}</span>\n <tg-svg ng-if="vm.item.get(\'project_blocked_code\')" svg-icon="icon-blocked-project" svgTitleTranslate:="svgTitleTranslate:" PROJECT.BLOCKED_PROJECT.BLOCKED="PROJECT.BLOCKED_PROJECT.BLOCKED"></tg-svg>\n </p>\n <h2><span tg-bo-ref="vm.item.get(\'ref\')" class="ticket-id"></span><a href="#" ng-if="::vm.item.get(\'type\') === \'epic\'" tg-nav="project-epics-detail:project=vm.item.get(\'project_slug\'),ref=vm.item.get(\'ref\')" title="#{{ ::vm.item.get(\'ref\') }} {{ ::vm.item.get(\'subject\') }}" ng-bind-html="vm.item.get(\'subject\') | emojify" class="ticket-title"></a><a href="#" ng-if="::vm.item.get(\'type\') === \'userstory\'" tg-nav="project-userstories-detail:project=vm.item.get(\'project_slug\'),ref=vm.item.get(\'ref\')" title="#{{ ::vm.item.get(\'ref\') }} {{ ::vm.item.get(\'subject\') }}" ng-bind-html="vm.item.get(\'subject\') | emojify" class="ticket-title"></a><a href="#" ng-if="::vm.item.get(\'type\') === \'task\'" tg-nav="project-tasks-detail:project=vm.item.get(\'project_slug\'),ref=vm.item.get(\'ref\')" title="#{{ ::vm.item.get(\'ref\') }} {{ ::vm.item.get(\'subject\') }}" ng-bind-html="vm.item.get(\'subject\') | emojify" class="ticket-title"></a><a href="#" ng-if="::vm.item.get(\'type\') === \'issue\'" tg-nav="project-issues-detail:project=vm.item.get(\'project_slug\'),ref=vm.item.get(\'ref\')" title="#{{ ::vm.item.get(\'ref\') }} {{ ::vm.item.get(\'subject\') }}" ng-bind-html="vm.item.get(\'subject\') | emojify" class="ticket-title"></a></h2>\n </div>\n <div class="list-itemtype-track"><span ng-class="{\'active\': vm.item.get(\'is_voter\')}" title="{{ \'COMMON.VOTE_BUTTON.COUNTER_TITLE\'|translate:{total:vm.item.get(&quot;total_voters&quot;)||0}:\'messageformat\' }}" class="list-itemtype-track-likers">\n <tg-svg svg-icon="icon-upvote"></tg-svg><span>{{ ::vm.item.get(\'total_voters\') }}</span></span><span ng-class="{\'active\': vm.item.get(\'is_watcher\')}" title="{{ \'COMMON.WATCH_BUTTON.COUNTER_TITLE\'|translate:{total:vm.item.get(&quot;total_watchers&quot;)||0}:\'messageformat\' }}" class="list-itemtype-track-watchers">\n <tg-svg svg-icon="icon-watch"></tg-svg><span>{{ ::vm.item.get(\'total_watchers\') }}</span></span></div>\n</div>'),t.put("projects/components/contact-project-button/contact-project-button.html",'\n<button title="{{ \'PROJECT.CONTACT_BUTTON.CONTACT_TITLE\' | translate }}" ng-click="vm.launchContactForm()" ng-class="{\'contact-team-large\': vm.layout == \'large\'}" class="track-button contact-team ">\n <tg-svg svg-icon="icon-mail"></tg-svg><span ng-if="vm.layout == \'large\'" translate="PROJECT.CONTACT_BUTTON.CONTACT_BUTTON"></span>\n</button>'),t.put("projects/components/lb-contact-project/lb-contact-project.html",'\n<tg-lightbox-close></tg-lightbox-close>\n<form class="lightbox-contact-project-container"><img ng-if="vm.project.logo_big_url" alt="{{vm.project.get(\'name\')}}" ng-src="vm.project.logo_big_url" class="lightbox-contact-project-logo"/><img ng-if="!vm.project.logo_big_url" tg-project-logo-big-src="vm.project" alt="{{vm.project.get(\'name\')}}" class="lightbox-contact-project-logo"/>\n <h2 translate="LIGHTBOX.CONTACT_PROJECT.TITLE" class="lightbox-contact-project-title"></h2>\n <h3 class="lightbox-contact-project-name">{{vm.project.get(\'name\')}}</h3>\n <p translate="LIGHTBOX.CONTACT_PROJECT.WARNING"></p>\n <textarea ng-model="vm.contact.message" required="required" placeholder="{{\'LIGHTBOX.CONTACT_PROJECT.PLACEHOLDER\' | translate}}" class="lightbox-contact-project-message "></textarea>\n <button translate="LIGHTBOX.CONTACT_PROJECT.SEND" ng-click="vm.contactProject()" tg-loading="vm.sendingFeedback" ng-disabled="!vm.contact.message.length" class="button-green lightbox-contact-project-button "></button>\n</form>'),t.put("projects/components/like-project-button/like-project-button.html",'\n<button title="{{ \'PROJECT.LIKE_BUTTON.BUTTON_TITLE\' | translate }}" ng-click="vm.toggleLike()" ng-class="{\'active\':vm.project.get(\'is_fan\'), \'is-hover\':vm.project.get(\'is_fan\') &amp;&amp; vm.isMouseOver}" ng-mouseover="vm.showTextWhenMouseIsOver()" ng-mouseleave="vm.showTextWhenMouseIsLeave()" class="track-button like-button"><span class="track-inner"><span class="track-icon">\n <tg-svg svg-icon="icon-like"></tg-svg></span><span ng-if="!vm.project.get(\'is_fan\')" translate="PROJECT.LIKE_BUTTON.LIKE"></span><span ng-if="vm.project.get(\'is_fan\') &amp;&amp; !vm.isMouseOver" translate="PROJECT.LIKE_BUTTON.LIKED"></span><span ng-if="vm.project.get(\'is_fan\') &amp;&amp; vm.isMouseOver" translate="PROJECT.LIKE_BUTTON.UNLIKE"></span></span><span title="{{ \'PROJECT.LIKE_BUTTON.COUNTER_TITLE\'|translate:{total:vm.project.get(&quot;total_fans&quot;)||0}:\'messageformat\' }}" tg-loading="vm.loading" class="track-button-counter">{{ vm.project.get(\'total_fans\') }}</span></button>'),t.put("projects/components/watch-project-button/watch-project-button.html",'\n<button title="{{ \'PROJECT.WATCH_BUTTON.BUTTON_TITLE\' | translate }}" ng-click="vm.toggleWatcherOptions()" ng-class="{\'active\': vm.project.get(\'is_watcher\')}" class="track-button watch-button"><span class="track-inner"><span class="track-icon">\n <tg-svg svg-icon="icon-watch"></tg-svg></span><span ng-if="!vm.project.get(\'is_watcher\')" translate="PROJECT.WATCH_BUTTON.WATCH"></span><span ng-if="vm.project.get(\'is_watcher\')" translate="PROJECT.WATCH_BUTTON.WATCHING"></span>\n <tg-svg svg-icon="icon-arrow-down" class="watch-options-arrow"></tg-svg></span><span title="{{ \'PROJECT.WATCH_BUTTON.COUNTER_TITLE\'|translate:{total:vm.project.get(&quot;total_watchers&quot;)||0}:\'messageformat\' }}" tg-loading="vm.loading" class="track-button-counter">{{ vm.project.get(\'total_watchers\') }}</span></button>\n<ul ng-class="{\'hidden\': !vm.showWatchOptions}" ng-mouseleave="vm.closeWatcherOptions()" class="watch-options">\n <li><a href="" title="{{ \'PROJECT.WATCH_BUTTON.OPTIONS.NOTIFY_ALL_TITLE\' | translate }}" ng-click="vm.watch(2)" ng-class="{\'active\': vm.project.get(\'is_watcher\') &amp;&amp; vm.project.get(\'notify_level\') == 2}"><span translate="PROJECT.WATCH_BUTTON.OPTIONS.NOTIFY_ALL"></span><span ng-if="vm.project.get(\'is_watcher\') &amp;&amp; vm.project.get(\'notify_level\') == 2" class="watch-check">\n <tg-svg svg-icon="icon-check-empty"></tg-svg></span></a></li>\n <li><a href="" title="{{ \'PROJECT.WATCH_BUTTON.OPTIONS.NOTIFY_INVOLVED_TITLE\' | translate }}" ng-click="vm.watch(1)" ng-class="{\'active\': vm.project.get(\'is_watcher\') &amp;&amp; vm.project.get(\'notify_level\') == 1}"><span translate="PROJECT.WATCH_BUTTON.OPTIONS.NOTIFY_INVOLVED"></span><span ng-if="vm.project.get(\'is_watcher\') &amp;&amp; vm.project.get(\'notify_level\') == 1" class="watch-check">\n <tg-svg svg-icon="icon-check-empty"></tg-svg></span></a></li>\n <li ng-if="vm.project.get(\'is_watcher\')"><a href="" title="{{ \'PROJECT.WATCH_BUTTON.OPTIONS.UNWATCH_TITLE\' | translate }}" ng-click="vm.unwatch()"><span translate="PROJECT.WATCH_BUTTON.OPTIONS.UNWATCH"></span></a></li>\n</ul>'),t.put("projects/create/asana-import/asana-import.html",'\n<div ng-if="vm.step == \'autorization-asana\'" class="create-project import-project">\n <p>autorization...</p>\n</div>\n<tg-import-project-selector logo="/v-1525361023952/images/import-logos/asana.png" search="{{ \'PROJECT.IMPORT.ASANA.CHOOSE_PROJECT\' | translate }}" no-projects-msg="{{ \'PROJECT.IMPORT.ASANA.NO_PROJECTS\' | translate }}" projects="vm.projects" on-cancel="vm.onCancel()" on-select-project="vm.onSelectProject(project)" ng-if="vm.step == \'project-select-asana\'"></tg-import-project-selector>\n<tg-asana-import-project-form ng-if="vm.step == \'project-form-asana\'" project="vm.project" members="vm.members" fetching-users="vm.fetchingUsers" on-save-project-details="vm.onSaveProjectDetails(project)" on-cancel-form="vm.step = \'project-select-asana\'"></tg-asana-import-project-form>\n<tg-import-project-members ng-if="vm.step == \'project-members-asana\'" platform="Asana" logo="/v-1525361023952/images/import-logos/asana.png" project="vm.project" members="vm.members" on-submit="vm.submitUserSelection(users)" on-cancel="vm.onCancelMemberSelection()"></tg-import-project-members>'),
t.put("projects/create/create-project-form/create-project-form.html",'\n<div class="create-project">\n <div ng-if="vm.type == \'scrum\'" class="create-project-title-wrapper">\n <tg-svg svg-icon="icon-scrum"></tg-svg>\n <h1 translate="PROJECT.CREATE.TEMPLATE_SCRUM" class="create-project-title"></h1>\n </div>\n <h3 ng-if="vm.type == \'scrum\'" translate="PROJECT.CREATE.TEMPLATE_SCRUM_DESC" class="create-project-description"></h3>\n <div ng-if="vm.type == \'kanban\'" class="create-project-title-wrapper">\n <tg-svg svg-icon="icon-kanban"></tg-svg>\n <h1 translate="PROJECT.CREATE.TEMPLATE_KANBAN" class="create-project-title"></h1>\n </div>\n <h3 ng-if="vm.type == \'kanban\'" translate="PROJECT.CREATE.TEMPLATE_KANBAN_DESC" class="create-project-description"></h3>\n <form name="projectForm" ng-submit="vm.submit()">\n <div ng-include="\'projects/create/import-project-form-common/name.html\'"></div>\n <div ng-include="\'projects/create/import-project-form-common/description.html\'"></div>\n <div ng-include="\'projects/create/import-project-form-common/project-privacy.html\'"></div>\n <tg-create-project-restrictions is-private="vm.projectForm.is_private" can-create-public-projects="vm.canCreatePublicProjects" can-create-private-projects="vm.canCreatePrivateProjects"></tg-create-project-restrictions>\n <div ng-include="\'projects/create/import-project-form-common/actions.html\'"></div>\n </form>\n</div>'),t.put("projects/create/create-project-members-restrictions/create-project-members-restrictions.html",'\n<div ng-if="!limitMembersPublicProject.valid &amp;&amp; !isPrivate" class="create-project-warning">\n <tg-svg svg-icon="icon-exclamation"></tg-svg><span translate="PROJECT.IMPORT.PROJECT_RESTRICTIONS.PROJECT_MEMBERS_DESC_PUBLIC" translate-values="{\'members\': limitMembersPublicProject.current, \'max_memberships\': limitMembersPublicProject.max}"></span>\n</div>\n<div ng-if="!limitMembersPrivateProject.valid &amp;&amp; isPrivate" class="create-project-warning">\n <tg-svg svg-icon="icon-exclamation"></tg-svg><span translate="PROJECT.IMPORT.PROJECT_RESTRICTIONS.PROJECT_MEMBERS_DESC_PRIVATE" translate-values="{\'members\': limitMembersPrivateProject.current, \'max_memberships\': limitMembersPrivateProject.max}"></span>\n</div>'),t.put("projects/create/create-project-restrictions/create-project-restrictions.html",'\n<div ng-if="isPrivate &amp;&amp; !canCreatePrivateProjects.valid &amp;&amp; canCreatePrivateProjects.reason == \'max_private_projects\'" class="create-project-warning">\n <tg-svg svg-icon="icon-exclamation"></tg-svg><span>{{ \'PROJECT.CREATE.MAX_PRIVATE_PROJECTS\' | translate }}</span>\n</div>\n<div ng-if="!isPrivate &amp;&amp; !canCreatePublicProjects.valid &amp;&amp; canCreatePublicProjects.reason == \'max_public_projects\'" class="create-project-warning">\n <tg-svg svg-icon="icon-exclamation"></tg-svg><span>{{ \'PROJECT.CREATE.MAX_PUBLIC_PROJECTS\' | translate }}</span>\n</div>'),t.put("projects/create/duplicate/duplicate-project.html",'\n<div class="create-project">\n <h1 translate="PROJECT.DUPLICATE.TITLE" class="create-project-title"></h1>\n <h3 translate="PROJECT.DUPLICATE.DESCRIPTION" class="create-project-description"></h3>\n <form name="projectForm" ng-submit="vm.submit()" class="duplicate-project ">\n <fieldset class="duplicate-project-reference ">\n <select ng-model="vm.projectForm.project" ng-change="vm.refreshReferenceProject(vm.projectForm.project)" data-required="true" ng-options="p.slug as p.name for p in vm.projects | toMutable| filter:{blocked_code: \'!\'}" id="project-selector-dropdown" autofocus="autofocus">\n <option value="" disabled="disabled" selected="selected" translate="PROJECT.DUPLICATE.SELECT_PLACEHOLDER"></option>\n </select>\n </fieldset>\n <div ng-include="\'projects/create/import-project-form-common/name.html\'"></div>\n <div ng-include="\'projects/create/import-project-form-common/description.html\'"></div>\n <div ng-include="\'projects/create/import-project-form-common/project-privacy.html\'"></div>\n <tg-create-project-restrictions is-private="vm.projectForm.is_private" can-create-public-projects="vm.canCreatePublicProjects" can-create-private-projects="vm.canCreatePrivateProjects"></tg-create-project-restrictions>\n <label ng-if="vm.invitedMembers"><span translate="PROJECT.CREATE.INVITE"></span><span ng-if="vm.displayUserWarning" translate="PROJECT.CREATE.SOLO_PROJECT" class="mumble"></span><span translate="PROJECT.CREATE.INVITE_LATER" class="mumble"></span></label>\n <tg-invite-members ng-if="vm.members.size" members="vm.members" invited-members="vm.invitedMembers" on-toggle-invited-member="vm.toggleInvitedMember(member)"></tg-invite-members>\n <tg-create-project-members-restrictions ng-if="vm.referenceProject" is-private="vm.projectForm.is_private" limit-members-private-project="vm.limitMembersPrivateProject" limit-members-public-project="vm.limitMembersPublicProject"></tg-create-project-members-restrictions>\n <div ng-include="\'projects/create/import-project-form-common/actions.html\'"></div>\n </form>\n</div>'),t.put("projects/create/github-import/github-import.html",'\n<div ng-if="vm.step == \'autorization-github\'" class="create-project import-project">\n <p>autorization...</p>\n</div>\n<tg-import-project-selector logo="/v-1525361023952/images/import-logos/github.png" search="{{ \'PROJECT.IMPORT.GITHUB.CHOOSE_PROJECT\' | translate }}" no-projects-msg="{{ \'PROJECT.IMPORT.GITHUB.NO_PROJECTS\' | translate }}" projects="vm.projects" on-cancel="vm.onCancel()" on-select-project="vm.onSelectProject(project)" ng-if="vm.step == \'project-select-github\'"></tg-import-project-selector>\n<tg-github-import-project-form ng-if="vm.step == \'project-form-github\'" project="vm.project" members="vm.members" fetching-users="vm.fetchingUsers" on-save-project-details="vm.onSaveProjectDetails(project)" on-cancel-form="vm.step = \'project-select-github\'"></tg-github-import-project-form>\n<tg-import-project-members ng-if="vm.step == \'project-members-github\'" platform="Github" logo="/v-1525361023952/images/import-logos/github.png" project="vm.project" members="vm.members" on-submit="vm.submitUserSelection(users)" on-cancel="vm.onCancelMemberSelection()"></tg-import-project-members>'),t.put("projects/create/import/import-header.html",'\n<section class="import-project-from">\n <h1 translate="PROJECT.IMPORT.TITLE" class="create-project-title"></h1>\n <h3 translate="PROJECT.IMPORT.DESCRIPTION" class="create-project-description"></h3>\n</section>'),t.put("projects/create/import/import-project-error-lb.html",'\n<tg-lightbox-close></tg-lightbox-close>\n<div ng-switch="key" class="content">\n <div ng-switch-when="private-space" class="private-space"><img src="/v-1525361023952/svg/icons/project-limit.svg"/>\n <h2 translate="PROJECT.IMPORT.PROJECT_RESTRICTIONS.PRIVATE_PROJECTS_SPACE.TITLE" translate-values="{{values}}" class="title"></h2>\n <p translate="PROJECT.IMPORT.PROJECT_RESTRICTIONS.PRIVATE_PROJECTS_SPACE.DESC" translate-values="{{values}}" class="description"></p>\n </div>\n <div ng-switch-when="private-members"><img src="/v-1525361023952/svg/icons/block-user.svg"/>\n <h2 translate="PROJECT.IMPORT.PROJECT_RESTRICTIONS.PRIVATE_PROJECTS_MEMBERS.TITLE" translate-values="{{values}}" class="title"></h2>\n <p translate="PROJECT.IMPORT.PROJECT_RESTRICTIONS.PROJECT_MEMBERS_DESC" translate-values="{{values}}" class="description"></p>\n </div>\n <div ng-switch-when="private-space-members"><img src="/v-1525361023952/svg/icons/multi-block-project.svg"/>\n <h2 translate="PROJECT.IMPORT.PROJECT_RESTRICTIONS.PRIVATE_PROJECTS_SPACE_MEMBERS.TITLE" translate-values="{{values}}" class="title"></h2>\n <p translate="PROJECT.IMPORT.PROJECT_RESTRICTIONS.PRIVATE_PROJECTS_SPACE_MEMBERS.DESC" translate-values="{{values}}" class="description"></p>\n </div>\n <div ng-switch-when="public-space"><img src="/v-1525361023952/svg/icons/project-limit.svg"/>\n <h2 translate="PROJECT.IMPORT.PROJECT_RESTRICTIONS.PUBLIC_PROJECTS_SPACE.TITLE" translate-values="{{values}}" class="title"></h2>\n <p translate="PROJECT.IMPORT.PROJECT_RESTRICTIONS.PUBLIC_PROJECTS_SPACE.DESC" translate-values="{{values}}" class="description"></p>\n </div>\n <div ng-switch-when="public-members"><img src="/v-1525361023952/svg/icons/block-user.svg"/>\n <h2 translate="PROJECT.IMPORT.PROJECT_RESTRICTIONS.PUBLIC_PROJECTS_MEMBERS.TITLE" translate-values="{{values}}" class="title"></h2>\n <p translate="PROJECT.IMPORT.PROJECT_RESTRICTIONS.PROJECT_MEMBERS_DESC" translate-values="{{values}}" class="description"></p>\n </div>\n <div ng-switch-when="public-space-members"><img src="/v-1525361023952/svg/icons/multi-block-project.svg"/>\n <h2 translate="PROJECT.IMPORT.PROJECT_RESTRICTIONS.PUBLIC_PROJECTS_SPACE_MEMBERS.TITLE" translate-values="{{values}}" class="title"></h2>\n <p translate="PROJECT.IMPORT.PROJECT_RESTRICTIONS.PUBLIC_PROJECTS_SPACE_MEMBERS.DESC" translate-values="{{values}}" class="description"></p>\n </div>\n <div class="options"><a translate="COMMON.ACCEPT" ng-click="close()" class="button-green"></a></div>\n</div>'),t.put("projects/create/import/import-project.html",'\n<div ng-if="!vm.from" class="create-project import-project">\n <div ng-include="\'projects/create/import/import-header.html\'"></div>\n <ul class="import-project-from">\n <li tg-click-input-file="tg-click-input-file" tg-import-taiga="tg-import-taiga" class="import-project-from-site"></li>\n <li ng-click="vm.unfoldOptions(\'jira\')" ng-if="vm.isActiveImporter(\'jira\')" class="import-project-from-site">\n <div class="import-project-logo"><img src="/v-1525361023952/images/import-logos/jira.png" alt="Jira Logo"/></div>\n <div class="import-project-name-wrapper"><span class="import-project-name">Jira</span>\n <p class="import-project-description"><span translate="PROJECT.IMPORT.JIRA.SELECTOR"></span><a target="_blank" href="https://tree.taiga.io/support/importers/jira-importer/" translate="PROJECT.IMPORT.JIRA.HOW_TO_CONFIGURE"></a></p>\n <fieldset ng-if="vm.unfoldedOptions == \'jira\'" class="import-project-url">\n <label for="jira-host" translate="PROJECT.IMPORT.JIRA.URL"></label>\n <input ng-keyup="$event.keyCode == 13 &amp;&amp; vm.select(\'jira\')" id="jira-host" ng-model="vm.jiraUrl" class="import-project-input"/>\n <button ng-click="vm.select(\'jira\')" title="{{\'PROJECT.IMPORT.ACCEEDE\' | translate}}" translate="PROJECT.IMPORT.ACCEEDE" class="button-green import-project-button"></button>\n </fieldset>\n </div>\n </li>\n <li ng-click="vm.select(\'github\')" ng-if="vm.isActiveImporter(\'github\')" class="import-project-from-site">\n <div class="import-project-logo"><img src="/v-1525361023952/images/import-logos/github.png" alt="Github Logo"/></div>\n <div class="import-project-name-wrapper"><span class="import-project-name">Github</span>\n <p translate="PROJECT.IMPORT.GITHUB.SELECTOR" class="import-project-description"></p>\n </div>\n </li>\n <li ng-click="vm.select(\'trello\')" ng-if="vm.isActiveImporter(\'trello\')" class="import-project-from-site">\n <div class="import-project-logo"><img src="/v-1525361023952/images/import-logos/trello.png" alt="Trello Logo"/></div>\n <div class="import-project-name-wrapper"><span class="import-project-name">Trello</span>\n <p translate="PROJECT.IMPORT.TRELLO.SELECTOR" class="import-project-description"></p>\n </div>\n </li>\n <li ng-click="vm.select(\'asana\')" ng-if="vm.isActiveImporter(\'asana\')" class="import-project-from-site">\n <div class="import-project-logo"><img src="/v-1525361023952/images/import-logos/asana.png" alt="Asana Logo"/></div>\n <div class="import-project-name-wrapper"><span class="import-project-name">Asana</span>\n <p translate="PROJECT.IMPORT.ASANA.SELECTOR" class="import-project-description"></p>\n </div>\n </li>\n </ul>\n <div class="create-project-action">\n <button type="button" ng-click="vm.backToCreate()" title="{{\'PROJECT.CREATE.BACK\' | translate}}" translate="PROJECT.CREATE.BACK" class="trans-button create-project-action-cancel"></button>\n </div>\n</div>\n<tg-trello-import ng-if="vm.from == \'trello\' &amp;&amp; vm.token" on-cancel="vm.cancelCurrentImport()"></tg-trello-import>\n<tg-jira-import ng-if="vm.from == \'jira\'" on-cancel="vm.cancelCurrentImport()"></tg-jira-import>\n<tg-github-import ng-if="vm.from == \'github\' &amp;&amp; vm.token" on-cancel="vm.cancelCurrentImport()"></tg-github-import>\n<tg-asana-import ng-if="vm.from == \'asana\' &amp;&amp; vm.token" on-cancel="vm.cancelCurrentImport()"></tg-asana-import>'),t.put("projects/create/import-project-form-common/actions.html",'\n<div class="create-project-action">\n <button type="button" ng-click="vm.onCancelForm()" title="{{\'PROJECT.CREATE.BACK\' | translate}}" translate="PROJECT.CREATE.BACK" class="trans-button create-project-action-cancel"></button>\n <button type="submit" ng-disabled="projectForm.$invalid || vm.isDisabled()" tg-loading="vm.formSubmitLoading" translate="PROJECT.CREATE.TITLE" class="button-green create-project-action-submit "></button>\n</div>'),t.put("projects/create/import-project-form-common/description.html",'\n<fieldset>\n <textarea ng-model="vm.projectForm.description" placeholder="{{\'PROJECT.COMMON.PROJECT_DESCRIPTION\' | translate}}" data-required="true" required="required" class=""></textarea>\n</fieldset>'),t.put("projects/create/import-project-form-common/links.html",'\n<fieldset class="create-project-check">\n <label for="links"><span translate="PROJECT.IMPORT.LINKS" translate-values="{platform: vm.platformName}" class="title"></span><span translate="PROJECT.IMPORT.LINKS_DESCRIPTION" translate-values="{platform: vm.platformName}" class="description"></span></label>\n <div class="check">\n <input ng-model="vm.projectForm.keepExternalReference" name="links" type="checkbox" class="activate-input"/>\n <div></div><span translate="COMMON.YES" class="check-text check-yes"></span><span translate="COMMON.NO" class="check-text check-no"></span>\n </div>\n</fieldset>'),t.put("projects/create/import-project-form-common/name.html",'\n<fieldset>\n <label translate="PROJECT.COMMON.DETAILS" for="project-name"></label>\n <input type="text" ng-model="vm.projectForm.name" placeholder="{{\'PROJECT.COMMON.PROJECT_TITLE\' | translate}}" name="project-name" data-required="true" required="required" class=""/>\n</fieldset>'),t.put("projects/create/import-project-form-common/project-privacy.html",'\n<div role="group" class="create-project-privacity">\n <fieldset>\n <input type="radio" name="is_private" id="template-public" data-required="true" aria-hidden="true" ng-value="false" ng-model="vm.projectForm.is_private" required="required" ng-checked="vm.canCreatePublicProjects"/>\n <label for="template-public">\n <tg-svg svg-icon="icon-discover"></tg-svg><span translate="PROJECT.CREATE.PUBLIC_PROJECT"></span>\n </label>\n </fieldset>\n <fieldset>\n <input type="radio" name="is_private" id="template-private" data-required="true" ng-value="true" ng-model="vm.projectForm.is_private" aria-hidden="true" required="required"/>\n <label for="template-private">\n <tg-svg svg-icon="icon-lock"></tg-svg><span translate="PROJECT.CREATE.PRIVATE_PROJECT"></span>\n </label>\n </fieldset>\n</div>'),t.put("projects/create/import-project-members/import-project-members.html",'\n<div class="import-project-members">\n <div ng-include="\'projects/create/import/import-header.html\'"></div>\n <h2 translate="PROJECT.IMPORT.PROJECT_MEMBERS" class="import-project-members-title"></h2>\n <p translate="PROJECT.IMPORT.PROCESS_DESCRIPTION" translate-values="{\'platform\': vm.platform}"></p>\n <tg-create-project-members-restrictions is-private="vm.project.get(\'is_private\')" limit-members-private-project="vm.limitMembersPrivateProject" limit-members-public-project="vm.limitMembersPublicProject"></tg-create-project-members-restrictions>\n <div ng-if="vm.members.size" class="import-project-members-system">\n <div class="import-project-members-logo"><img ng-src="{{vm.logo}}"/></div>\n <div class="import-project-members-logo"><img src="/v-1525361023952/images/logo-color.png" alt="Taiga Logo"/></div>\n </div>\n <ul ng-if="vm.members.size">\n <li tg-repeat="member in vm.members track by member.get(\'id\')" class="import-project-members-row">\n <div class="import-project-members-single">\n <div ng-if="!member.get(\'avatar\')" class="avatar empty">{{member.get(\'full_name\')[0].toUpperCase()}}</div>\n <div ng-if="member.get(\'avatar\')" class="avatar"> <img ng-src="{{member.get(\'avatar\')}}"/></div><span class="import-project-members-username">{{member.get(\'full_name\') || member.get(\'username\') }}</span>\n </div>\n <div class="import-project-members-actions">\n <div ng-if="vm.showSuggestedMatch(member)" class="import-project-members-match"><span translate="PROJECT.IMPORT.MATCH" translate-values="{user_external:member.get(\'full_name\'), user_internal: member.getIn([\'user\', \'full_name\'])}"></span>\n <button ng-click="vm.confirmUser(member, member.get(\'user\'))" class="import-project-members-match-true">\n <tg-svg svg-icon="icon-check-empty"></tg-svg>\n </button>\n <button ng-click="vm.discardSuggestedUser(member)" class="import-project-members-match-false">\n <tg-svg svg-icon="icon-close"></tg-svg>\n </button>\n </div>\n <div ng-if="vm.getUser(member) &amp;&amp; !vm.showSuggestedMatch(member)" class="import-project-members-selected">\n <button ng-click="vm.unselectUser(member)" class="import-project-members-delete">\n <tg-svg svg-icon="icon-close"></tg-svg>\n </button><span>{{vm.getUser(member).get(\'full_name\') || vm.getUser(member)}}</span><span class="import-project-members-selected-img"><img tg-avatar="vm.getUser(member)"/></span>\n </div>\n <button ng-if="!vm.getUser(member) &amp;&amp; !vm.showSuggestedMatch(member)" ng-click="vm.searchUser(member)" translate="PROJECT.IMPORT.CHOOSE" class="button button-trans import-project-members-choose ng-animate-disabled"></button>\n </div>\n </li>\n </ul>\n <div class="create-project-action">\n <button type="button" ng-click="vm.onCancel()" title="{{\'PROJECT.CREATE.BACK\' | translate}}" translate="PROJECT.CREATE.BACK" class="trans-button create-project-action-cancel"></button>\n <button ng-if="vm.members.size &gt; 0" ng-click="vm.beforeSubmitUsers()" translate="PROJECT.IMPORT.IMPORT" class="button button-green create-project-action-submit"></button>\n </div>\n <tg-select-import-user-lightbox is-private="vm.project.get(\'is_private\')" limit-members-private-project="vm.limitMembersPrivateProject" limit-members-public-project="vm.limitMembersPublicProject" visible="vm.selectImportUserLightbox" user="vm.searchingUser" display-email-selector="vm.displayEmailSelector" selectable-users="vm.selectableUsers" on-close="vm.selectImportUserLightbox = false" on-select-user="vm.confirmUser(user, taigaUser)" class="lightbox"></tg-select-import-user-lightbox>\n <tg-warning-user-import-lightbox visible="vm.warningImportUsers" on-confirm="vm.submit()" on-close="vm.warningImportUsers = false" class="lightbox"></tg-warning-user-import-lightbox>\n</div>'),t.put("projects/create/import-project-selector/import-project-selector.html",'\n<div class="import-project-selector">\n <div ng-include="\'projects/create/import/import-header.html\'"></div>\n <div class="import-project-selector">\n <div class="import-project-selector-service"><img ng-src="{{vm.logo}}"/></div>\n <div class="import-project-selector-boards">\n <form ng-if="vm.projects.size &gt; 5" class="import-project-selector-filter">\n <input ng-model="vm.searchText" placeholder="{{ vm.search }}"/>\n <tg-svg svg-icon="icon-search" title="{{ \'PROJECT.IMPORT.PROJECT_SELECTOR.ACTION_SEARCH\' | translate }}"></tg-svg>\n </form>\n <ul class="import-project-board-list">\n <li ng-repeat="project in vm.projects | toMutable | orderBy:\'name\' | filter:vm.searchText as filteredProjects track by project.id" ng-click="vm.selectProject(project)" class="import-project-selector-title">{{project.name}}</li>\n </ul>\n <div ng-if="vm.projects.size == 0" class="import-project-board-no-projects empty-large"><img src="/v-1525361023952/images/empty/empty_tex.png" alt="{{ vm.noProjectsMsg }}" aria-hidden="true" role="presentation"/>\n <p class="title">{{ vm.noProjectsMsg }}</p>\n </div>\n <div ng-if="vm.projects.size &gt; 0 &amp;&amp; filteredProjects.length == 0" class="import-project-board-no-results empty-filter">\n <p translate="PROJECT.IMPORT.PROJECT_SELECTOR.NO_RESULTS"></p>\n </div>\n <div class="create-project-action">\n <button type="button" ng-click="vm.onCancel()" title="{{\'PROJECT.IMPORT.PROJECT_SELECTOR.ACTION_BACK\' | translate}}" translate="PROJECT.IMPORT.PROJECT_SELECTOR.ACTION_BACK" class="trans-button create-project-action-cancel"></button>\n </div>\n </div>\n </div>\n</div>'),t.put("projects/create/import-taiga/import-taiga.html",'\n<input tg-file-change="vm.importTaiga(files)" type="file" class="hidden"/>\n<div class="import-project-logo"><img src="/v-1525361023952/images/logo-color.png" alt="Taiga Logo"/></div>\n<div class="import-project-name-wrapper"><span class="import-project-name">Taiga</span>\n <p translate="PROJECT.IMPORT.TAIGA.SELECTOR" class="import-project-description"></p>\n</div>'),t.put("projects/create/invite-members/invite-members.html",'\n<fieldset class="create-project-invite">\n <div class="create-project-invite-avatars">\n <tg-single-member tg-repeat="member in vm.members track by member.get(\'id\')" disabled="vm.isDisabled(member.get(\'id\'))" avatar="member" ng-click="vm.onToggleInvitedMember({member: member.get(\'id\')})"></tg-single-member>\n </div>\n</fieldset>'),t.put("projects/create/jira-import/jira-import.html",'\n<div ng-if="vm.step == \'autorization-jira\'" class="create-project import-project">\n <p>autorization...</p>\n</div>\n<tg-import-project-selector logo="/v-1525361023952/images/import-logos/jira.png" search="{{ \'PROJECT.IMPORT.JIRA.CHOOSE_PROJECT\' | translate }}" no-projects-msg="{{ \'PROJECT.IMPORT.JIRA.NO_PROJECTS\' | translate }}" projects="vm.projects" on-cancel="vm.onCancel()" on-select-project="vm.onSelectProject(project)" ng-if="vm.step == \'project-select-jira\'"></tg-import-project-selector>\n<tg-jira-import-project-form ng-if="vm.step == \'project-form-jira\'" project="vm.project" members="vm.members" fetching-users="vm.fetchingUsers" on-save-project-details="vm.onSaveProjectDetails(project)" on-cancel-form="vm.step = \'project-select-jira\'"></tg-jira-import-project-form>\n<tg-import-project-members ng-if="vm.step == \'project-members-jira\'" platform="Jira" logo="/v-1525361023952/images/import-logos/jira.png" project="vm.project" members="vm.members" on-submit="vm.submitUserSelection(users)" on-cancel="vm.onCancelMemberSelection()"></tg-import-project-members>'),t.put("projects/create/select-import-user-lightbox/select-import-user-lightbox.html",'\n<tg-lightbox-close on-close="vm.onClose()"></tg-lightbox-close>\n<div ng-if="vm.visible" class="form">\n <div class="candidate-user">\n <div ng-if="!vm.user.get(\'avatar\')" class="avatar empty">{{vm.user.get(\'full_name\')[0].toUpperCase() || vm.user.get(\'username\')[0].toUpperCase()}}</div>\n <div ng-if="vm.user.get(\'avatar\')" class="avatar"> <img ng-src="{{vm.user.get(\'avatar\')}}"/></div><span class="candidate-user-name">{{vm.user.get(\'full_name\') || vm.user.get(\'username\')}}</span>\n </div>\n <h2 translate="PROJECT.IMPORT.WHO_IS" class="title"></h2>\n <div ng-if="!vm.limitMembersPublicProject.valid &amp;&amp; !vm.isPrivate" class="create-project-warning">\n <tg-svg svg-icon="icon-exclamation"></tg-svg><span translate="PROJECT.IMPORT.PROJECT_RESTRICTIONS.ACCOUNT_ALLOW_MEMBERS" translate-values="{\'members\': vm.limitMembersPublicProject.max}"></span>\n </div>\n <div ng-if="!vm.limitMembersPrivateProject.valid &amp;&amp; vm.isPrivate" class="create-project-warning">\n <tg-svg svg-icon="icon-exclamation"></tg-svg><span translate="PROJECT.IMPORT.PROJECT_RESTRICTIONS.ACCOUNT_ALLOW_MEMBERS" translate-values="{\'members\': vm.limitMembersPrivateProject.max}"></span>\n </div>\n <form ng-if="vm.mode == \'mail\'" ng-submit="vm.assignUser()">\n <div class="create-project-warning">\n <tg-svg svg-icon="icon-exclamation"></tg-svg><span translate="PROJECT.IMPORT.WARNING_MAIL_USER"></span>\n </div>\n <fieldset>\n <label translate="PROJECT.IMPORT.WRITE_EMAIL_LABEL" for="user-name"></label>\n <div class="group">\n <input name="user-name" type="text" data-maxlength="500" ng-model="vm.userEmail"/>\n <button type="submit" title="{{\'PROJECT.IMPORT.ASSIGN\' | translate}}" translate="PROJECT.IMPORT.ASSIGN" class="button-green submit-button"></button>\n </div>\n </fieldset>\n <button ng-click="vm.mode = \'search\'" class="search-user-mode">{{\'PROJECT.IMPORT.SEARCH_CONTACT\' | translate}}</button>\n </form>\n <div ng-if="vm.mode == \'search\'">\n <fieldset>\n <input type="text" data-maxlength="500" placeholder="{{\'LIGHTBOX.ASSIGNED_TO.SEARCH\' | translate}}" ng-model="vm.usersSearch"/>\n </fieldset>\n <div class="assigned-to-list">\n <div ng-repeat="user in vm.selectableUsers | toMutable | filter: vm.usersSearch | orderBy:\'full_name_display\' | limitTo: 5 as filteredCollection" ng-click="vm.selectUser(user)" class="user-list-single">\n <div class="user-list-avatar"><a href="#" title="{{\'COMMON.ASSIGNED_TO.TITLE\' | translate}}"><img tg-avatar="user"/></a></div><a href="" title="{{user.full_name_display || user.full_name || user}}" class="user-list-name">{{user.full_name_display || user.full_name || user}}</a>\n </div>\n <div ng-if="filteredCollection.length &gt; 5" class="more-users"><span translate="COMMON.ASSIGNED_TO.TOO_MANY"></span></div>\n </div>\n <button ng-click="vm.mode = \'mail\'" ng-if="vm.displayEmailSelector" class="search-user-mode">{{\'PROJECT.IMPORT.WRITE_EMAIL\' | translate}}</button>\n </div>\n</div>'),t.put("projects/create/trello-import/trello-import.html",'\n<tg-import-project-selector logo="/v-1525361023952/images/import-logos/trello.png" search="{{ \'PROJECT.IMPORT.TRELLO.CHOOSE_PROJECT\' | translate }}" no-projects-msg="{{ \'PROJECT.IMPORT.TRELLO.NO_PROJECTS\' | translate }}" projects="vm.projects" on-cancel="vm.onCancel()" on-select-project="vm.onSelectProject(project)" ng-if="vm.step == \'project-select-trello\'"></tg-import-project-selector>\n<tg-trello-import-project-form ng-if="vm.step == \'project-form-trello\'" project="vm.project" members="vm.members" fetching-users="vm.fetchingUsers" on-save-project-details="vm.onSaveProjectDetails(project)" on-cancel-form="vm.step = \'project-select-trello\'"></tg-trello-import-project-form>\n<tg-import-project-members ng-if="vm.step == \'project-members-trello\'" platform="Trello" logo="/v-1525361023952/images/import-logos/trello.png" project="vm.project" members="vm.members" on-submit="vm.submitUserSelection(users)" on-cancel="vm.onCancelMemberSelection()"></tg-import-project-members>'),t.put("projects/create/warning-user-import-lightbox/warning-user-import-lightbox.html",'\n<tg-lightbox-close on-close="onClose()"></tg-lightbox-close>\n<div class="warning-users-import-lightbox">\n <h1 translate="PROJECT.IMPORT.WARNING.TITLE" class="warning-users-import-title"></h1>\n <p translate="PROJECT.IMPORT.WARNING.DESCRIPTION"></p>\n <div class="actions">\n <button translate="PROJECT.IMPORT.WARNING.CHECK" ng-click="onClose()" class="button button-trans"></button>\n <button type="submit" translate="PROJECT.IMPORT.IMPORT" ng-click="onConfirm()" class="button button-green"></button>\n </div>\n</div>'),t.put("history/history/history-templates/blocked.html",'\n<div class="diff-status-wrapper"><span translate="ACTIVITY.BLOCKED" class="key"></span><span class="diff">{{vm.diff[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span class="diff">{{vm.diff[1]}}</span>\n</div>'),t.put("history/history/history-templates/client-requirement.html",'\n<div class="diff-status-wrapper"><span translate="ACTIVITY.CLIENT_REQUIREMENT" class="key"></span><span class="diff">{{vm.diff[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span class="diff">{{vm.diff[1]}}</span>\n</div>'),t.put("history/history/history-templates/history-assigned-users.html",'\n<div class="diff-status-wrapper"><span translate="ACTIVITY.FIELDS.ASSIGNED_USERS" class="key"></span><span ng-if="vm.diff[0]" class="diff">{{vm.diff[0]}}</span><span ng-if="!vm.diff[0]" translate="ACTIVITY.VALUES.UNASSIGNED" class="diff"></span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1]" class="diff">{{vm.diff[1]}}</span><span ng-if="!vm.diff[1]" translate="ACTIVITY.VALUES.UNASSIGNED" class="diff"></span>\n</div>'),t.put("history/history/history-templates/history-assigned.html",'\n<div class="diff-status-wrapper"><span translate="ACTIVITY.FIELDS.ASSIGNED_TO" class="key"></span><span ng-if="vm.diff[0]" class="diff">{{vm.diff[0]}}</span><span ng-if="!vm.diff[0]" translate="ACTIVITY.VALUES.UNASSIGNED" class="diff"></span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1]" class="diff">{{vm.diff[1]}}</span><span ng-if="!vm.diff[1]" translate="ACTIVITY.VALUES.UNASSIGNED" class="diff"></span>\n</div>'),t.put("history/history/history-templates/history-attachments.html",'\n<div ng-if="vm.diff.new.length" ng-repeat="newAttachment in vm.diff.new" class="diff-attachments-new"><span translate="ACTIVITY.NEW_ATTACHMENT" class="key"></span><span class="diff">{{newAttachment.filename}}</span></div>\n<div ng-if="vm.diff.changed.length" ng-repeat="editAttachment in vm.diff.changed" class="diff-attachments-update"> <span translate="ACTIVITY.UPDATED_ATTACHMENT" translate-values="{filename: editAttachment.filename}" class="key"></span><span ng-if="editAttachment.changes.is_deprecated" class="diff"><span ng-if="editAttachment.changes.is_deprecated[1] == false" translate="ACTIVITY.BECAME_UNDEPRECATED"></span><span ng-if="editAttachment.changes.is_deprecated[1] == true" translate="ACTIVITY.BECAME_DEPRECATED"></span></span><span ng-if="editAttachment.changes.description" class="diff"><span ng-if="editAttachment.changes.description[0].length">{{editAttachment.changes.description[0]}}</span><span ng-if="!editAttachment.changes.description[0].length">...</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span>{{editAttachment.changes.description[1]}}</span></span></div>\n<div ng-if="vm.diff.deleted.length" ng-repeat="deletedAttachment in vm.diff.deleted" class="diff-attachments-deleted"><span translate="ACTIVITY.DELETED_ATTACHMENT" class="key"></span><span class="diff">{{deletedAttachment.filename}}</span></div>'),t.put("history/history/history-templates/history-color.html",'\n<div class="diff-color-wrapper"><span translate="ACTIVITY.FIELDS.COLOR" class="key"></span><span ng-if="vm.diff[0]" ng-style="{background: vm.diff[0]}" title="{{vm.diff[0]}}" class="diff"></span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1]" ng-style="{background: vm.diff[1]}" title="{{vm.diff[1]}}" class="diff"></span>\n</div>'),t.put("history/history/history-templates/history-custom-attributes.html",'\n<div ng-if="vm.diff.new.length" ng-repeat="newCustom in vm.diff.new" class="diff-status-wrapper"><span translate="ACTIVITY.CREATED_CUSTOM_ATTRIBUTE" class="key"></span><span class="diff">({{newCustom.name}})</span><span ng-if="newCustom.type == \'richtext\'">\n <p tg-bo-html="newCustom.value_diff" class="diff"></p></span><span ng-if="newCustom.type != \'richtext\'"><span class="diff">{{newCustom.value}}</span></span></div>\n<div ng-if="vm.diff.changed.length" ng-repeat="changeCustom in vm.diff.changed" class="diff-status-wrapper"><span translate="ACTIVITY.UPDATED_CUSTOM_ATTRIBUTE" class="key"></span><span class="diff">({{changeCustom.name}})</span><span ng-if="changeCustom.type == \'richtext\'">\n <p tg-bo-html="changeCustom.value_diff" class="diff"></p></span><span ng-if="changeCustom.type != \'richtext\'"><span class="diff">{{changeCustom.changes.value[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span class="diff">{{changeCustom.changes.value[1]}}</span></span></div>'),
t.put("history/history/history-templates/history-description.html",'\n<div class="diff-status-wrapper">\n <p translate="ACTIVITY.FIELDS.DESCRIPTION" class="key"></p>\n <p ng-if="vm.diff[0]" ng-bind-html="vm.diff[0]" class="diff"></p>\n <p ng-if="vm.diff[1]" ng-bind-html="vm.diff[1]" class="diff"></p>\n</div>'),t.put("history/history/history-templates/history-due-date.html",'\n<div class="diff-status-wrapper"><span translate="ACTIVITY.FIELDS.DUE_DATE" class="key"></span><span ng-if="vm.diff[0]" class="diff">{{vm.diff[0] | momentFormat:\'DD MMM YYYY\'}}</span><span ng-if="!vm.diff[0]" translate="ACTIVITY.VALUES.NOT_SET" class="diff"></span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1]" class="diff">{{vm.diff[1] | momentFormat:\'DD MMM YYYY\'}}</span><span ng-if="!vm.diff[1]" translate="ACTIVITY.VALUES.NOT_SET" class="diff"></span>\n</div>'),t.put("history/history/history-templates/history-milestone.html",'\n<div class="diff-milestone-wrapper"><span translate="ACTIVITY.FIELDS.MILESTONE" class="key"></span><span ng-if="vm.diff[0] != null" class="diff">{{vm.diff[0]}}</span><span ng-if="vm.diff[0] == null" class="diff">...</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1] != null" class="diff">{{vm.diff[1]}}</span><span ng-if="vm.diff[1] == null" class="diff">...</span>\n</div>'),t.put("history/history/history-templates/history-points.html",'\n<div ng-repeat="(key, diff) in vm.diff" class="diff-points-wrapper"><span translate="ACTIVITY.US_POINTS" translate-values="{role: vm.diff.key}" class="key"></span><span class="diff">{{diff[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right" svg-title-translate="COMMON.EDIT" class="comment-option"></tg-svg><span class="diff">{{diff[1]}}</span>\n</div>'),t.put("history/history/history-templates/history-priority.html",'\n<div class="diff-status-wrapper"><span translate="ACTIVITY.FIELDS.PRIORITY" class="key"></span><span ng-if="vm.diff[0]" class="diff">{{vm.diff[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1]" class="diff">{{vm.diff[1]}}</span>\n</div>'),t.put("history/history/history-templates/history-severity.html",'\n<div class="diff-status-wrapper"><span translate="ACTIVITY.FIELDS.SEVERITY" class="key"></span><span ng-if="vm.diff[0]" class="diff">{{vm.diff[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1]" class="diff">{{vm.diff[1]}}</span>\n</div>'),t.put("history/history/history-templates/history-status.html",'\n<div class="diff-status-wrapper"><span translate="ACTIVITY.FIELDS.STATUS" class="key"></span><span ng-if="vm.diff[0]" class="diff">{{vm.diff[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1]" class="diff">{{vm.diff[1]}}</span>\n</div>'),t.put("history/history/history-templates/history-subject.html",'\n<div class="diff-subject-wrapper"><span translate="ACTIVITY.FIELDS.SUBJECT" class="key"></span><span ng-if="vm.diff[0]" class="diff">{{vm.diff[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1]" class="diff">{{vm.diff[1]}}</span>\n</div>'),t.put("history/history/history-templates/history-tags.html",'\n<div class="diff-tags-wrapper">\n <p ng-if="vm.diffRemoveTags"><span translate="ACTIVITY.TAGS_REMOVED" class="key"></span><span class="diff">{{vm.diffRemoveTags}}</span></p>\n <p ng-if="vm.diffAddTags"><span translate="ACTIVITY.TAGS_ADDED" class="key"></span><span class="diff">{{vm.diffAddTags}}</span></p>\n</div>'),t.put("history/history/history-templates/history-type.html",'\n<div class="diff-status-wrapper"><span translate="ACTIVITY.FIELDS.TYPE" class="key"></span><span ng-if="vm.diff[0]" class="diff">{{vm.diff[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span ng-if="vm.diff[1]" class="diff">{{vm.diff[1]}}</span>\n</div>'),t.put("history/history/history-templates/team-requirement.html",'\n<div class="diff-status-wrapper"><span translate="ACTIVITY.TEAM_REQUIREMENT" class="key"></span><span class="diff">{{vm.diff[0]}}</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span class="diff">{{vm.diff[1]}}</span>\n</div>'),t.put("wiki/history/history-templates/history-attachments.html",'\n<div ng-if="diff.new.length" ng-repeat="newAttachment in diff.new" class="diff-attachments-new"><span translate="ACTIVITY.NEW_ATTACHMENT" class="key"></span><span class="diff">{{newAttachment.filename}}</span></div>\n<div ng-if="diff.changed.length" ng-repeat="editAttachment in diff.changed" class="diff-attachments-update"><span translate="ACTIVITY.UPDATED_ATTACHMENT" translate-values="{filename: editAttachment.filename}" class="key"></span><span ng-if="editAttachment.changes.is_deprecated" class="diff"><span ng-if="editAttachment.changes.is_deprecated[1] == false" translate="ACTIVITY.BECAME_UNDEPRECATED"></span><span ng-if="editAttachment.changes.is_deprecated[1] == true" translate="ACTIVITY.BECAME_DEPRECATED"></span></span><span ng-if="editAttachment.changes.description" class="diff"><span ng-if="editAttachment.changes.description[0].length">{{editAttachment.changes.description[0]}}</span><span ng-if="!editAttachment.changes.description[0].length">...</span>\n <tg-svg svg-icon="icon-arrow-right"></tg-svg><span>{{editAttachment.changes.description[1]}}</span></span></div>\n<div ng-if="diff.deleted.length" ng-repeat="deletedAttachment in diff.deleted" class="diff-attachments-deleted"><span translate="ACTIVITY.DELETED_ATTACHMENT" class="key"></span><span class="diff">{{deletedAttachment.filename}}</span></div>')}]);