c34c66fa16a67cd895ec23c1c7ca0ab66a76d11e

stable
Alejandro Alonso 2016-01-05 09:33:50 +01:00
parent 320d795630
commit 437c045652
23 changed files with 357 additions and 272 deletions

10
dist.js
View File

@ -28,32 +28,40 @@ var synchRepoAction = (function cloneOrPull(){
exec(synchRepoAction)
.then(function() {
console.log("remove old tmp dist")
//remove old tmp dist
return delAsync(local + '/dist');
})
.then(function() {
console.log("compile taiga")
//compile taiga
return exec('cd ' + local + ' && npm install && bower install && gulp deploy');
})
.then(function() {
console.log("remove old dist")
//remove old dist
return delAsync('dist');
})
.then(function() {
console.log("copy new dist")
//copy new dist
return ncp(local + '/dist/', 'dist');
//return ncp(local + '/dist/', 'dist');
return exec('cp -r ' + local + '/dist/ dist');
})
.then(function() {
console.log("get last commit id")
//get last commit id
return exec('cd ' + local + ' && git rev-parse HEAD');
})
.then(function(lastCommitId) {
console.log("commit")
//commit
lastCommitId = lastCommitId[0].trim();
return exec('git add -A && git commit -am "' + lastCommitId + '"');
})
.then(function() {
console.log("push")
//push
return exec('git push origin ' + branch);
})

6
dist/index.html vendored
View File

@ -88,8 +88,8 @@
</a>
</div>
<div tg-joy-ride></div>
<script src="/js/libs.js?v=1447170651771"></script>
<script src="/js/templates.js?v=1447170651771"></script>
<script src="/js/app-loader.js?v=1447170651771"></script>
<script src="/js/libs.js?v=1451982794222"></script>
<script src="/js/templates.js?v=1451982794222"></script>
<script src="/js/app-loader.js?v=1451982794222"></script>
</body>
</html>

View File

@ -1,7 +1,7 @@
(function() {
var promise, version;
version = 1447170651789;
version = 1451982794237;
window.taigaConfig = {
"api": "http://localhost:8000/api/v1/",

219
dist/js/app.js vendored
View File

@ -327,7 +327,7 @@
var httpResponseError;
httpResponseError = function(response) {
var nextUrl;
if (response.status === 0 || response.status === -1) {
if (response.status === 0 || (response.status === -1 && !response.config.cancelable)) {
$lightboxService.closeAll();
$location.path($navUrls.resolve("error"));
$location.replace();
@ -407,7 +407,7 @@
$translateProvider.useStaticFilesLoader({
prefix: "/locales/locale-",
suffix: ".json"
}).addInterpolation('$translateMessageFormatInterpolation').preferredLanguage(preferedLangCode);
}).useSanitizeValueStrategy('escapeParameters').addInterpolation('$translateMessageFormatInterpolation').preferredLanguage(preferedLangCode);
$translateProvider.fallbackLanguage(preferedLangCode);
decorators = _.where(this.taigaContribPlugins, {
"type": "decorator"
@ -520,11 +520,9 @@
return plugin.module;
});
pluginsWithModule = _.filter(this.taigaContribPlugins, function(plugin) {
return plugin.module;
});
angular.module('infinite-scroll').value('THROTTLE_MILLISECONDS', 500);
modules = ["taigaBase", "taigaCommon", "taigaResources", "taigaResources2", "taigaAuth", "taigaEvents", "taigaHome", "taigaNavigationBar", "taigaProjects", "taigaRelatedTasks", "taigaBacklog", "taigaTaskboard", "taigaKanban", "taigaIssues", "taigaUserStories", "taigaTasks", "taigaTeam", "taigaWiki", "taigaSearch", "taigaAdmin", "taigaProject", "taigaUserSettings", "taigaFeedback", "taigaPlugins", "taigaIntegrations", "taigaComponents", "taigaProfile", "taigaHome", "taigaUserTimeline", "taigaExternalApps", "templates", "ngRoute", "ngAnimate", "ngAria", "pascalprecht.translate", "infinite-scroll", "tgRepeat"].concat(_.map(pluginsWithModule, function(plugin) {
modules = ["taigaBase", "taigaCommon", "taigaResources", "taigaResources2", "taigaAuth", "taigaEvents", "taigaHome", "taigaNavigationBar", "taigaProjects", "taigaRelatedTasks", "taigaBacklog", "taigaTaskboard", "taigaKanban", "taigaIssues", "taigaUserStories", "taigaTasks", "taigaTeam", "taigaWiki", "taigaSearch", "taigaAdmin", "taigaProject", "taigaUserSettings", "taigaFeedback", "taigaPlugins", "taigaIntegrations", "taigaComponents", "taigaProfile", "taigaHome", "taigaUserTimeline", "taigaExternalApps", "templates", "ngSanitize", "ngRoute", "ngAnimate", "ngAria", "pascalprecht.translate", "infinite-scroll", "tgRepeat"].concat(_.map(pluginsWithModule, function(plugin) {
return plugin.module;
}));
@ -3296,10 +3294,8 @@
this.scope.loading = true;
return this._loadSearchData(term).then((function(_this) {
return function(data) {
if (data) {
_this.scope.searchResults = data;
return _this.scope.loading = false;
}
};
})(this));
};
@ -3308,16 +3304,11 @@
if (term == null) {
term = "";
}
if (this.deferredAbort) {
this.deferredAbort.resolve();
if (this._promise) {
this._promise.abort();
}
this.deferredAbort = this.q.defer();
this.rs.search["do"](this.scope.projectId, term).then((function(_this) {
return function(data) {
return _this.deferredAbort.resolve(data);
};
})(this));
return this.deferredAbort.promise;
this._promise = this.rs.search["do"](this.scope.projectId, term);
return this._promise;
};
SearchController.prototype.loadInitialData = function() {
@ -4458,29 +4449,19 @@
module.directive("tgSprintProgressbar", SprintProgressBarDirective);
CreatedByDisplayDirective = function($template, $compile, $translate, $navUrls) {
var link, template;
template = $template.get("common/components/created-by.html", true);
var link;
link = function($scope, $el, $attrs) {
var render;
render = function(model) {
var html, owner;
owner = model.owner_extra_info || {
bindOnce($scope, $attrs.ngModel, function(model) {
var ref;
if (model != null) {
$scope.owner = model.owner_extra_info || {
full_name_display: $translate.instant("COMMON.EXTERNAL_USER"),
photo: "/images/user-noimage.png"
};
html = template({
owner: owner,
url: (owner != null ? owner.is_active : void 0) ? $navUrls.resolve("user-profile", {
username: owner.username
}) : "",
date: moment(model.created_date).format($translate.instant("COMMON.DATETIME"))
});
html = $compile(html)($scope);
return $el.html(html);
};
bindOnce($scope, $attrs.ngModel, function(model) {
if (model != null) {
return render(model);
$scope.url = ((ref = $scope.owner) != null ? ref.is_active : void 0) ? $navUrls.resolve("user-profile", {
username: $scope.owner.username
}) : "";
return $scope.date = moment(model.created_date).format($translate.instant("COMMON.DATETIME"));
}
});
return $scope.$on("$destroy", function() {
@ -4490,7 +4471,9 @@
return {
link: link,
restrict: "EA",
require: "ngModel"
require: "ngModel",
scope: true,
templateUrl: "common/components/created-by.html"
};
};
@ -6213,7 +6196,7 @@
module = angular.module("taigaCommon");
IGNORED_FIELDS = {
"userstories.userstory": ["watchers", "kanban_order", "backlog_order", "sprint_order", "finish_date"],
"userstories.userstory": ["watchers", "kanban_order", "backlog_order", "sprint_order", "finish_date", "tribe_gig"],
"tasks.task": ["watchers", "us_order", "taskboard_order"],
"issues.issue": ["watchers"]
};
@ -6865,10 +6848,12 @@
return $el.css('display', 'flex');
});
this.animationFrame.add(function() {
return $el.addClass("open");
});
this.animationFrame.add(function() {
$el.addClass("open");
return $el.one("transitionend", (function(_this) {
return function() {
return $el.find('input,textarea').first().focus();
};
})(this));
});
this.animationFrame.add((function(_this) {
return function() {
@ -8609,7 +8594,7 @@
var link, previewTemplate;
previewTemplate = $template.get("common/wysiwyg/wysiwyg-markitup-preview.html", true);
link = function($scope, $el, $attrs, $model) {
var addLine, closePreviewMode, element, markdownTitle, prepareUrlFormatting, preview, previewDomNode, renderMarkItUp, setCaretPosition, unbind, urlFormatting;
var addLine, cancelablePromise, closePreviewMode, element, markdownTitle, prepareUrlFormatting, preview, previewDomNode, renderMarkItUp, setCaretPosition, unbind, urlFormatting;
element = angular.element($el);
previewDomNode = $("<div/>", {
"class": "preview"
@ -8621,6 +8606,7 @@
$scope.$on("markdown-editor:submit", function() {
return closePreviewMode();
});
cancelablePromise = null;
preview = function() {
var markItUpDomNode, markdownDomNode;
markdownDomNode = element.parents(".markdown");
@ -8931,7 +8917,11 @@
return false;
};
})(this);
$rs.search["do"]($scope.projectId, term).then((function(_this) {
if (cancelablePromise) {
cancelablePromise.abort();
}
cancelablePromise = $rs.search["do"]($scope.projectId, term);
cancelablePromise.then((function(_this) {
return function(res) {
var j, len, results, type;
if (res.count < 1 || res.count === res.wikipages.length) {
@ -9722,26 +9712,54 @@
})(this));
};
BacklogController.prototype.resetFilters = function() {
BacklogController.prototype.restoreFilters = function() {
var selectedStatuses, selectedTags;
selectedTags = _.filter(this.scope.filters.tags, "selected");
selectedStatuses = _.filter(this.scope.filters.status, "selected");
this.scope.filtersQ = "";
selectedTags = this.scope.oldSelectedTags;
selectedStatuses = this.scope.oldSelectedStatuses;
if (!selectedStatuses && !selectedStatuses) {
return;
}
this.scope.filtersQ = this.scope.filtersQOld;
this.replaceFilter("q", this.scope.filtersQ);
_.each([selectedTags, selectedStatuses], (function(_this) {
return function(filterGrp) {
return _.each(filterGrp, function(item) {
var filter, filters;
filters = _this.scope.filters[item.type];
filter = _.find(filters, {
id: taiga.toString(item.id)
id: item.id
});
filter.selected = true;
return _this.selectFilter(item.type, item.id);
});
};
})(this));
return this.loadUserstories();
};
BacklogController.prototype.resetFilters = function() {
var selectedStatuses, selectedTags;
selectedTags = _.filter(this.scope.filters.tags, "selected");
selectedStatuses = _.filter(this.scope.filters.status, "selected");
this.scope.oldSelectedTags = selectedTags;
this.scope.oldSelectedStatuses = selectedStatuses;
this.scope.filtersQOld = this.scope.filtersQ;
this.scope.filtersQ = "";
this.replaceFilter("q", null);
_.each([selectedTags, selectedStatuses], (function(_this) {
return function(filterGrp) {
return _.each(filterGrp, function(item) {
var filter, filters;
filters = _this.scope.filters[item.type];
filter = _.find(filters, {
id: item.id
});
filter.selected = false;
return _this.unselectFilter(item.type, item.id);
});
};
})(this));
this.loadUserstories();
return this.rootscope.$broadcast("filters:update");
return this.loadUserstories();
};
BacklogController.prototype.loadUserstories = function() {
@ -10363,6 +10381,8 @@
toggleText(target.find(".text"), [hideText, showText]);
if (!sidebar.hasClass("active")) {
$ctrl.resetFilters();
} else {
$ctrl.restoreFilters();
}
return $ctrl.toggleActiveFilters();
};
@ -14429,7 +14449,7 @@
template = $template.get("issue/issues-filters.html", true);
templateSelected = $template.get("issue/issues-filters-selected.html", true);
link = function($scope, $el, $attrs) {
var $ctrl, getFiltersType, initializeSelectedFilters, reloadIssues, renderFilters, renderSelectedFilters, selectQFilter, selectedFilters, showCategories, showFilters, toggleFilterSelection;
var $ctrl, getFiltersType, initializeSelectedFilters, reloadIssues, renderFilters, renderSelectedFilters, selectQFilter, selectedFilters, showCategories, showFilters, toggleFilterSelection, unwatchIssues;
$ctrl = $el.closest(".wrapper").controller();
selectedFilters = [];
showFilters = function(title, type) {
@ -14561,8 +14581,8 @@
html = $compile(html)($scope);
return $el.find(".filter-list").html(html);
});
selectQFilter = debounceLeading(100, function(value) {
if (value === void 0) {
selectQFilter = debounceLeading(100, function(value, oldValue) {
if (value === void 0 || value === oldValue) {
return;
}
$ctrl.replaceFilter("page", null, true);
@ -14575,7 +14595,12 @@
}
return reloadIssues();
});
unwatchIssues = $scope.$watch("issues", function(newValue) {
if (!_.isUndefined(newValue)) {
$scope.$watch("filtersQ", selectQFilter);
return unwatchIssues();
}
});
$el.on("click", ".filters-cats > ul > li > a", function(event) {
var tags, target;
event.preventDefault();
@ -20603,9 +20628,6 @@
HttpService.prototype.request = function(options) {
options.headers = _.merge({}, options.headers || {}, this.headers());
if (_.isPlainObject(options.data)) {
options.data = JSON.stringify(options.data);
}
return this.http(options);
};
@ -22859,20 +22881,35 @@
taiga = this.taiga;
resourceProvider = function($repo, $urls, $http) {
resourceProvider = function($repo, $urls, $http, $q) {
var service;
service = {};
service["do"] = function(projectId, term) {
var params, url;
var deferredAbort, params, request, url;
deferredAbort = $q.defer();
url = $urls.resolve("search");
params = {
url: url,
method: "GET",
timeout: deferredAbort.promise,
cancelable: true,
params: {
project: projectId,
text: term,
get_all: false
}
};
return $http.get(url, params).then(function(data) {
request = $http.request(params).then(function(data) {
return data.data;
});
request.abort = function() {
return deferredAbort.resolve();
};
request["finally"] = function() {
request.abort = angular.noop;
return deferredAbort = request = null;
};
return request;
};
return function(instance) {
return instance.search = service;
@ -22881,7 +22918,7 @@
module = angular.module("taigaResources");
module.factory("$tgSearchResourcesProvider", ["$tgRepo", "$tgUrls", "$tgHttp", resourceProvider]);
module.factory("$tgSearchResourcesProvider", ["$tgRepo", "$tgUrls", "$tgHttp", "$q", resourceProvider]);
}).call(this);
@ -27767,11 +27804,16 @@
service.getTimeline = function(projectId, page) {
var params, url;
params = {
page: page
page: page,
only_relevant: true
};
url = urlsService.resolve("timeline-project");
url = url + "/" + projectId;
return http.get(url, params).then(function(result) {
return http.get(url, params, {
headers: {
'x-lazy-pagination': true
}
}).then(function(result) {
result = Immutable.fromJS(result);
return paginateResponseService(result);
});
@ -28064,7 +28106,12 @@
if (q != null) {
params.q = q;
}
return http.get(url, params).then(function(result) {
params.only_relevant = true;
return http.get(url, params, {
headers: {
'x-lazy-pagination': true
}
}).then(function(result) {
result = Immutable.fromJS(result);
return paginateResponseService(result);
});
@ -28082,7 +28129,11 @@
if (q != null) {
params.q = q;
}
return http.get(url, params).then(function(result) {
return http.get(url, params, {
headers: {
'x-lazy-pagination': true
}
}).then(function(result) {
result = Immutable.fromJS(result);
return paginateResponseService(result);
});
@ -28100,7 +28151,11 @@
if (q != null) {
params.q = q;
}
return http.get(url, params).then(function(result) {
return http.get(url, params, {
headers: {
'x-lazy-pagination': true
}
}).then(function(result) {
result = Immutable.fromJS(result);
return paginateResponseService(result);
});
@ -28112,7 +28167,11 @@
};
url = urlsService.resolve("timeline-profile");
url = url + "/" + userId;
return http.get(url, params).then(function(result) {
return http.get(url, params, {
headers: {
'x-lazy-pagination': true
}
}).then(function(result) {
result = Immutable.fromJS(result);
return paginateResponseService(result);
});
@ -28120,11 +28179,16 @@
service.getUserTimeline = function(userId, page) {
var params, url;
params = {
page: page
page: page,
only_relevant: true
};
url = urlsService.resolve("timeline-user");
url = url + "/" + userId;
return http.get(url, params).then(function(result) {
return http.get(url, params, {
headers: {
'x-lazy-pagination': true
}
}).then(function(result) {
result = Immutable.fromJS(result);
return paginateResponseService(result);
});
@ -29091,7 +29155,7 @@
unslugify = this.taiga.unslugify;
UserTimelineItemTitle = (function() {
UserTimelineItemTitle.$inject = ["$translate"];
UserTimelineItemTitle.$inject = ["$translate", "$sce"];
UserTimelineItemTitle.prototype._fieldTranslationKey = {
'status': 'COMMON.FIELDS.STATUS',
@ -29176,8 +29240,9 @@
}
};
function UserTimelineItemTitle(translate) {
function UserTimelineItemTitle(translate, sce) {
this.translate = translate;
this.sce = sce;
}
UserTimelineItemTitle.prototype._translateTitleParams = function(param, timeline, event) {
@ -29224,7 +29289,19 @@
};
UserTimelineItemTitle.prototype.getTitle = function(timeline, event, type) {
return this.translate.instant(type.key, this._getParams(timeline, event, type));
var params, paramsKeys, translation;
params = this._getParams(timeline, event, type);
paramsKeys = {};
Object.keys(params).forEach(function(key) {
return paramsKeys[key] = '{{' + key + '}}';
});
translation = this.translate.instant(type.key, paramsKeys);
Object.keys(params).forEach(function(key) {
var find;
find = '{{' + key + '}}';
return translation = translation.replace(new RegExp(find, 'g'), params[key]);
});
return translation;
};
return UserTimelineItemTitle;

20
dist/js/libs.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

10
dist/js/templates.js vendored
View File

@ -86,7 +86,7 @@ $templateCache.put("wiki/wiki-summary.html","\n<div class=\"wiki-times-edited\">
$templateCache.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 tg-check-permission=\"view_wiki_links\" class=\"menu-secondary extrabar\">\n <section tg-wiki-nav ng-model=\"wikiLinks\" class=\"wiki-nav\"></section>\n </sidebar>\n <section class=\"main wiki\">\n <div class=\"header\">\n <h1><span tg-bo-bind=\"project.name\"></span><span translate=\"PROJECT.SECTION.WIKI\" class=\"green\"></span><span ng-bind=\"wikiTitle\" class=\"wiki-title\"></span></h1>\n </div>\n <div tg-wiki-summary ng-model=\"wiki\" ng-if=\"wiki.id\" class=\"summary wiki-summary\"></div>\n <section tg-editable-wiki-content ng-model=\"wiki\" class=\"wiki-content\"></section>\n <tg-attachments ng-model=\"wiki\" type=\"wiki_page\" ng-if=\"wiki.id\"></tg-attachments><a href=\"\" ng-click=\"ctrl.delete()\" ng-if=\"wiki.id\" title=\"{{\'WIKI.REMOVE\' | translate}}\" tg-check-permission=\"delete_wiki_page\" class=\"remove\"><span class=\"icon icon-delete\"></span><span translate=\"WIKI.REMOVE\"></span></a>\n </section>\n</div>");
$templateCache.put("common/components/assigned-to.html","<% if (assignedTo) { %>\n<div class=\"user-avatar\"><img src=\"<%- assignedTo.photo %>\" alt=\"<%- assignedTo.full_name_display %>\"/></div><% } %>\n<div class=\"assigned-to\"><span translate=\"COMMON.FIELDS.ASSIGNED_TO\" class=\"assigned-title\"></span><a href=\"\" title=\"{{ \'COMMON.ASSIGNED_TO.TITLE_ACTION_EDIT_ASSIGNMENT\'|translate }}\" class=\"user-assigned <% if(isEditable){ %>editable<% }; %>\"><span class=\"assigned-name\">\n <% if (assignedTo) { %>\n <%- assignedTo.full_name_display %>\n <% } else { %>\n {{ \'COMMON.ASSIGNED_TO.NOT_ASSIGNED\'|translate }}\n <% } %>\n <% if(isEditable){ %><span class=\"icon icon-arrow-bottom\"></span><% }; %></span></a><% if (assignedTo!==null && isEditable) { %><a href=\"\" title=\"{{\'COMMON.ASSIGNED_TO.DELETE_ASSIGNMENT\' | translate}}\" class=\"icon icon-delete\"></a><% } %></div>");
$templateCache.put("common/components/block-button.html","<a href=\"#\" class=\"button button-gray item-block\"><span translate=\"COMMON.BLOCK\"></span></a><a href=\"#\" class=\"button button-red item-unblock\"><span translate=\"COMMON.UNBLOCK\"></span></a>");
$templateCache.put("common/components/created-by.html","\n<div class=\"user-avatar\"><a href=\"<%- url %>\" title=\"<%- owner.full_name_display %>\"><img src=\"<%- owner.photo %>\" alt=\"<%- owner.full_name_display %>\"/></a></div>\n<div class=\"created-by\"><a href=\"<%- url %>\" title=\"<%- owner.full_name_display %>\"><span translate=\"COMMON.CREATED_BY\" translate-values=\"{ \'fullDisplayName\': \'<%- owner.full_name_display %>\'}\" class=\"created-title\"></span></a><span class=\"created-date\"><%- date %></span></div>");
$templateCache.put("common/components/created-by.html","\n<div class=\"user-avatar\"><a href=\"{{url}}\" title=\"{{owner.full_name_display}}\"><img src=\"{{owner.photo}}\" alt=\"{{owner.full_name_display}}\"/></a></div>\n<div class=\"created-by\"><a href=\"{{url}}\" title=\"{{owner.full_name_display}}\"><span translate=\"COMMON.CREATED_BY\" translate-values=\"{ \'fullDisplayName\': owner.full_name_display}\" class=\"created-title\"></span></a><span class=\"created-date\">{{date}}</span></div>");
$templateCache.put("common/components/delete-button.html","<a href=\"\" class=\"button-red button-delete\"><span translate=\"COMMON.DELETE\"></span></a>");
$templateCache.put("common/components/editable-description-msg-edit-mode.html","\n<p translate=\"COMMON.DESCRIPTION.EMPTY\" class=\"no-description editable\"></p>");
$templateCache.put("common/components/editable-description-msg-read-mode.html","\n<p translate=\"COMMON.DESCRIPTION.NO_DESCRIPTION\" class=\"no-description\"></p>");
@ -136,22 +136,22 @@ $templateCache.put("components/terms-of-service-and-privacy-policy-notice/terms-
$templateCache.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\"><span class=\"track-icon\"><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<svg\n xmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n xmlns:cc=\"http://creativecommons.org/ns#\"\n xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n xmlns:svg=\"http://www.w3.org/2000/svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n version=\"1.1\"\n viewBox=\"0 0 1000 1000\"\n >\n <path\n d=\"m 140.67935,787.45652 718.6413,0 L 500,212.54348 Z\"\n />\n</svg>\n</span><span title=\"{{ \'COMMON.VOTE_BUTTON.COUNTER_TITLE\'|translate:{total:vm.item.total_voters||0}:\'messageformat\' }}\" tg-loading=\"vm.loading\" class=\"track-button-counter\">{{ vm.item.total_voters }}</span></a><span ng-if=\"::!vm.user\" class=\"vote-inner\"><span class=\"track-icon\"><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<svg\n xmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n xmlns:cc=\"http://creativecommons.org/ns#\"\n xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n xmlns:svg=\"http://www.w3.org/2000/svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n version=\"1.1\"\n viewBox=\"0 0 1000 1000\"\n >\n <path\n d=\"m 140.67935,787.45652 718.6413,0 L 500,212.54348 Z\"\n />\n</svg>\n</span><span title=\"{{ \'COMMON.VOTE_BUTTON.COUNTER_TITLE\'|translate:{total:vm.item.total_voters||0}:\'messageformat\' }}\" class=\"track-button-counter\">{{ ::vm.item.total_voters }}</span></span>");
$templateCache.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\"><span class=\"track-icon\"><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<svg version=\"1.1\" viewBox=\"0 0 1000 1000\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m5.1e2 2.1e2c-2e2 0-3.7e2 1.3e2 -4.4e2 3e2 70 1.8e2 2.4e2 3e2 4.4e2 3e2s3.7e2 -1.3e2 4.4e2 -3e2c-60-1.8e2 -2.4e2 -3e2 -4.4e2 -3e2zm0 5.1e2c-1.1e2 0-2e2 -91-2e2 -2e2s91-2e2 2e2 -2e2 2e2 91 2e2 2e2 -91 2e2 -2e2 2e2zm0-3.2e2c-67 0-1.2e2 54-1.2e2 1.2e2 0 67 54 1.2e2 1.2e2 1.2e2 67 0 1.2e2 -54 1.2e2 -1.2e2 0-67-54-1.2e2 -1.2e2 -1.2e2z\"/>\n</svg>\n</span><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\"><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<svg version=\"1.1\" viewBox=\"0 0 1000 1000\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m5.1e2 2.1e2c-2e2 0-3.7e2 1.3e2 -4.4e2 3e2 70 1.8e2 2.4e2 3e2 4.4e2 3e2s3.7e2 -1.3e2 4.4e2 -3e2c-60-1.8e2 -2.4e2 -3e2 -4.4e2 -3e2zm0 5.1e2c-1.1e2 0-2e2 -91-2e2 -2e2s91-2e2 2e2 -2e2 2e2 91 2e2 2e2 -91 2e2 -2e2 2e2zm0-3.2e2c-67 0-1.2e2 54-1.2e2 1.2e2 0 67 54 1.2e2 1.2e2 1.2e2 67 0 1.2e2 -54 1.2e2 -1.2e2 0-67-54-1.2e2 -1.2e2 -1.2e2z\"/>\n</svg>\n</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>");
$templateCache.put("home/duties/duty.html","<a href=\"{{ ::vm.duty.get(\'url\') }}\" title=\"{{ ::duty.get(\'subject\') }}\" class=\"list-itemtype-ticket\"> \n <div ng-if=\"::vm.duty.get(\'assigned_to_extra_info\')\" class=\"list-itemtype-avatar\"><img ng-src=\"{{ ::vm.duty.get(\'assigned_to_extra_info\').get(\'photo\') }}\" title=\"{{ ::vm.duty.get(\'assigned_to_extra_info\').get(\'full_name_display\') }}\"/></div>\n <div ng-if=\"::!vm.duty.get(\'assigned_to_extra_info\')\" class=\"list-itemtype-avatar\"><img src=\"/images/unnamed.png\" title=\"{{\'ACTIVITY.VALUES.UNASSIGNED\' | translate}}\"/></div>\n <div class=\"list-itemtype-ticket-data\">\n <p><span class=\"ticket-project\">{{ ::vm.duty.get(\'projectName\')}}</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></p>\n <h2><span tg-bo-ref=\"duty.get(\'ref\')\" class=\"ticket-id\"></span><span class=\"ticket-title\">{{ ::duty.get(\'subject\') }}</span></h2>\n </div></a>");
$templateCache.put("home/projects/home-project-list.html","\n<section ng-show=\"vm.projects.size\" class=\"home-project-list\">\n <ul>\n <li tg-bind-scope=\"tg-bind-scope\" tg-repeat=\"project in vm.projects\" class=\"home-project-list-single\"><a href=\"#\" tg-nav=\"project:project=project.get(\'slug\')\">\n <h2 class=\"home-project-list-single-title\"><span title=\"{{ ::project.get(\'name\') }}\" class=\"project-name\">{{::project.get(\'name\')}}</span><span ng-if=\"project.get(\'is_private\')\" title=\"{{\'PROJECT.PRIVATE\' | translate}}\" class=\"private\"><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!-- Created with Inkscape (http://www.inkscape.org/) -->\n<svg xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" viewBox=\"0 0 10.2367 12.115\">\n <g transform=\"translate(51.126 -417.22)\">\n <path class=\"lock\" d=\"m-46.008 417.22c-1.886 0-3.4167 1.5307-3.4167 3.4167v1.033h-1.2265c-0.2632 0-0.4751 0.2264-0.4751 0.5072v6.6509c0 0.2808 0.2119 0.5072 0.4751 0.5072h9.2865c0.2632 0 0.4751-0.2264 0.4751-0.5072v-6.6509c0-0.2808-0.2119-0.5072-0.4751-0.5072h-1.2265v-1.033c0-1.886-1.5307-3.4167-3.4168-3.4167zm0 1.2986c1.1686 0 2.1195 0.9496 2.1195 2.1181v1.033h-4.2375v-1.033c0-1.1685 0.9495-2.1181 2.118-2.1181z\"/>\n </g>\n</svg>\n</span></h2>\n <p>{{ ::project.get(\'description\') | limitTo:150 }}<span ng-if=\"::project.get(\'description\').size &gt; 150\">...</span></p></a></li>\n </ul><a href=\"#\" ng-show=\"vm.projects.size\" tg-nav=\"projects\" title=\"{{\'PROJECT.NAVIGATION.SEE_MORE_PROJECTS\' | translate}}\" translate=\"PROJECT.NAVIGATION.SEE_MORE_PROJECTS\" class=\"see-more-projects-btn button-gray\"></a>\n</section>\n<section ng-show=\"!vm.projects.size\" class=\"projects-empty\"><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!-- Created with Inkscape (http://www.inkscape.org/) -->\n<svg xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" viewBox=\"0 0 13.918466 15.58737\">\n <g transform=\"translate(35.885 -420.63)\">\n <path d=\"m-33.7 420.63-1.1367 0.86544 2.1761 2.8582h-0.1537l-0.41375 0.71665h1.1131l0.69906 0.91817h-4.4694l1.7562 6.7859h7.8797l2.6214 3.443 1.1368-0.86544-11.209-14.722zm10.832 2.7082c-0.04845-0.001-0.07702 0.003-0.07702 0.003h-3.1127l-0.58461 1.0124h-2.5114l0.54562 0.71664h5.7028l-1.4845 5.5403 0.64029 0.84099 1.6351-6.102s0.34262-1.1438-0.01538-1.6091c-0.26845-0.34893-0.59278-0.39911-0.73815-0.40239z\"/>\n </g>\n</svg>\n\n <p translate=\"HOME.EMPTY_PROJECT_LIST\"></p><a href=\"#\" ng-click=\"vm.newProject()\" title=\"{{\'PROJECT.NAVIGATION.TITLE_CREATE_PROJECT\' | translate}}\" translate=\"PROJECT.NAVIGATION.ACTION_CREATE_PROJECT\" class=\"create-project-button button-green\"></a><span tg-import-project-button=\"tg-import-project-button\"><a href=\"#\" title=\"{{\'PROJECT.NAVIGATION.TITLE_IMPORT_PROJECT\' | translate}}\" translate=\"PROJECT.NAVIGATION.ACTION_IMPORT_PROJECT\" class=\"import-project-button button-blackish\"></a>\n <input type=\"file\" class=\"import-file hidden\"/></span>\n</section>");
$templateCache.put("home/projects/home-project-list.html","\n<section ng-if=\"vm.projects.size\" class=\"home-project-list\">\n <ul>\n <li tg-bind-scope=\"tg-bind-scope\" tg-repeat=\"project in vm.projects\" class=\"home-project-list-single\"><a href=\"#\" tg-nav=\"project:project=project.get(\'slug\')\">\n <h2 class=\"home-project-list-single-title\"><span title=\"{{ ::project.get(\'name\') }}\" class=\"project-name\">{{::project.get(\'name\')}}</span><span ng-if=\"project.get(\'is_private\')\" title=\"{{\'PROJECT.PRIVATE\' | translate}}\" class=\"private\"><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!-- Created with Inkscape (http://www.inkscape.org/) -->\n<svg xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" viewBox=\"0 0 10.2367 12.115\">\n <g transform=\"translate(51.126 -417.22)\">\n <path class=\"lock\" d=\"m-46.008 417.22c-1.886 0-3.4167 1.5307-3.4167 3.4167v1.033h-1.2265c-0.2632 0-0.4751 0.2264-0.4751 0.5072v6.6509c0 0.2808 0.2119 0.5072 0.4751 0.5072h9.2865c0.2632 0 0.4751-0.2264 0.4751-0.5072v-6.6509c0-0.2808-0.2119-0.5072-0.4751-0.5072h-1.2265v-1.033c0-1.886-1.5307-3.4167-3.4168-3.4167zm0 1.2986c1.1686 0 2.1195 0.9496 2.1195 2.1181v1.033h-4.2375v-1.033c0-1.1685 0.9495-2.1181 2.118-2.1181z\"/>\n </g>\n</svg>\n</span></h2>\n <p>{{ ::project.get(\'description\') | limitTo:150 }}<span ng-if=\"::project.get(\'description\').size &gt; 150\">...</span></p></a></li>\n </ul><a href=\"#\" ng-show=\"vm.projects.size\" tg-nav=\"projects\" title=\"{{\'PROJECT.NAVIGATION.SEE_MORE_PROJECTS\' | translate}}\" translate=\"PROJECT.NAVIGATION.SEE_MORE_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\"><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!-- Created with Inkscape (http://www.inkscape.org/) -->\n<svg xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" viewBox=\"0 0 13.918466 15.58737\">\n <g transform=\"translate(35.885 -420.63)\">\n <path d=\"m-33.7 420.63-1.1367 0.86544 2.1761 2.8582h-0.1537l-0.41375 0.71665h1.1131l0.69906 0.91817h-4.4694l1.7562 6.7859h7.8797l2.6214 3.443 1.1368-0.86544-11.209-14.722zm10.832 2.7082c-0.04845-0.001-0.07702 0.003-0.07702 0.003h-3.1127l-0.58461 1.0124h-2.5114l0.54562 0.71664h5.7028l-1.4845 5.5403 0.64029 0.84099 1.6351-6.102s0.34262-1.1438-0.01538-1.6091c-0.26845-0.34893-0.59278-0.39911-0.73815-0.40239z\"/>\n </g>\n</svg>\n\n <p translate=\"HOME.EMPTY_PROJECT_LIST\"></p><a href=\"#\" ng-click=\"vm.newProject()\" title=\"{{\'PROJECT.NAVIGATION.TITLE_CREATE_PROJECT\' | translate}}\" translate=\"PROJECT.NAVIGATION.ACTION_CREATE_PROJECT\" class=\"create-project-button button-green\"></a><span tg-import-project-button=\"tg-import-project-button\"><a href=\"#\" title=\"{{\'PROJECT.NAVIGATION.TITLE_IMPORT_PROJECT\' | translate}}\" translate=\"PROJECT.NAVIGATION.ACTION_IMPORT_PROJECT\" class=\"import-project-button button-blackish\"></a>\n <input type=\"file\" class=\"import-file hidden\"/></span>\n</section>");
$templateCache.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>");
$templateCache.put("home/working-on/working-on.html","\n<section class=\"working-on-container\">\n <div translate=\"HOME.WORKING_ON_SECTION\" class=\"title-bar working-on-title\"></div>\n <div ng-show=\"vm.assignedTo.size\" class=\"working-on\">\n <div tg-duty=\"duty\" tg-repeat=\"duty in vm.assignedTo\" ng-class=\"{blocked: duty.is_blocked}\" class=\"duty-single\"></div>\n </div>\n <div ng-show=\"!vm.assignedTo.size\" 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 <div translate=\"HOME.WATCHING_SECTION\" class=\"title-bar watching-title\"></div>\n <div ng-show=\"vm.watching.size\" class=\"watching\">\n <div tg-duty=\"duty\" tg-repeat=\"duty in vm.watching\" ng-class=\"{blocked: duty.is_blocked}\" class=\"duty-single\"></div>\n </div>\n <div ng-show=\"!vm.watching.size\" 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>");
$templateCache.put("home/working-on/working-on.html","\n<section class=\"working-on-container\">\n <div translate=\"HOME.WORKING_ON_SECTION\" class=\"title-bar working-on-title\"></div>\n <div ng-if=\"vm.assignedTo.size\" class=\"working-on\">\n <div tg-duty=\"duty\" tg-repeat=\"duty in vm.assignedTo\" ng-class=\"{blocked: duty.is_blocked}\" 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 <div translate=\"HOME.WATCHING_SECTION\" class=\"title-bar watching-title\"></div>\n <div ng-if=\"vm.watching.size\" class=\"watching\">\n <div tg-duty=\"duty\" 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>");
$templateCache.put("navigation-bar/dropdown-organization-list/dropdown-organization-list.html","\n<div id=\"TODO\">\n <fill>correctly when implemented</fill>\n</div><a href=\"#\" title=\"Organizations\"><svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" width=\"22.2\" version=\"1.1\" viewBox=\"0 0 22.2 20\" preserveAspectRatio=\"xMidYMid meet\">\n <g transform=\"translate(-451.01 -314.49)\">\n <path d=\"m451 314.5v20h8.7v-4.8h4.8v4.8h8.6v-20h-22.2zm2 2.1h4.8v4.8h-4.8v-4.8zm6.7 0h4.8v4.8h-4.8v-4.8zm6.7 0h4.8v4.8h-4.8v-4.8zm-13.5 6.3h4.8v4.8h-4.8v-4.8zm6.7 0h4.8v4.8h-4.8v-4.8zm6.7 0h4.8v4.8h-4.8v-4.8z\" />\n </g>\n</svg>\n</a>\n<div class=\"navbar-dropdown dropdown-organization-list\">\n <ul>\n <li><a href=\"#\" title=\"{{ project.title }}\">Organization 1</a></li>\n <li><a href=\"#\" title=\"{{ project.title }}\">Organization 1</a></li>\n <li><a href=\"#\" title=\"{{ project.title }}\">Organization 1</a></li>\n <li><a href=\"#\" title=\"{{ project.title }}\">Organization 1</a></li>\n </ul><a href=\"#\" title=\"Create Organization\" class=\"create-organization-btn button-green\">Create Organization</a>\n</div>");
$templateCache.put("navigation-bar/dropdown-project-list/dropdown-project-list.html","<a href=\"\" title=\"Projects\" tg-nav=\"projects\"><svg xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" version=\"1.1\" viewBox=\"0 0 26.27 17.81\">\n <g transform=\"translate(-448.94 -316.58)\">\n <g transform=\"matrix(1.1133 0 0 1.1133 -624.82 369.48)\">\n <path d=\"m964.52-43.02h17.08l2.25 8.41 2.67-9.97h-17.5l0.7-1.22h10.47l0.99-1.72h5.28s0.78-0.11 1.38 0.68c0.61 0.79 0.03 2.73 0.03 2.73l-3.37 12.59h-17z\"/>\n </g>\n </g>\n</svg>\n</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\')\">{{::project.get(\"name\")}}</a></li>\n </ul><a href=\"#\" tg-nav=\"projects\" title=\"{{\'PROJECT.NAVIGATION.SEE_MORE_PROJECTS\' | translate}}\" translate=\"PROJECT.NAVIGATION.SEE_MORE_PROJECTS\" class=\"see-more-projects-btn button-gray\"></a>\n <div class=\"create-options\"><a href=\"#\" ng-click=\"vm.newProject()\" title=\"{{\'PROJECT.NAVIGATION.ACTION_CREATE_PROJECT\' | translate}}\" translate=\"PROJECT.NAVIGATION.ACTION_CREATE_PROJECT\" class=\"create-project-btn button-green\"></a><span tg-import-project-button=\"tg-import-project-button\"><a href=\"\" title=\"{{\'PROJECT.NAVIGATION.TITLE_IMPORT_PROJECT\' | translate}}\" class=\"button-blackish import-project-button\"><span class=\"icon icon-upload\"></span></a>\n <input type=\"file\" class=\"import-file hidden\"/></span></div>\n</div>");
$templateCache.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 ng-src=\"{{ vm.user.get(\'photo\') }}\" alt=\"{{ vm.user.get(\'full_name_display\') }}\" width=\"48px\" 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><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=\"https://taiga.io/support/\" 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>");
$templateCache.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 ng-src=\"{{::vm.user.get(\'big_photo\')}}\" 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 <!-- a.button-green-->\n <!-- span(translate=\"USER.PROFILE.FOLLOW\")-->\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.location-->\n <!-- include ../../../svg/location.svg-->\n <!-- span Madrid-->\n <!-- Remove Abuse Flag when a user is seeing itself-->\n <!-- a.flag(href=\"\", title=\"{{ \'USER.PROFILE.REPORT\' | translate }}\")-->\n <!-- include ../../../svg/flag.svg-->\n </div>\n <!-- These values in profile stats are not defined yet in UX. Please ask-->\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 <!-- TODO Hide until organizations come\n // div.profile-organizations\n // h3 Organizations\n // div.profile-organizations-wrapper\n // div.organization\n // div.organization\n // div.organization\n // div.organization\n \n -->\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>");
$templateCache.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=\"/svg/spinner-circle.svg\" alt=\"Loading...\"/></div>\n </div>\n <div ng-if=\"vm.contacts &amp;&amp; !vm.contacts.size\" class=\"empty-tab\"><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<svg xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns=\"http://www.w3.org/2000/svg\" height=\"38.9mm\" width=\"46.15mm\" version=\"1.1\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" viewBox=\"0 0 163.53744 137.83166\">\n <g transform=\"translate(-380.2 -247.3)\">\n <path d=\"m418.3 247.3-10.6 7.583 18.15 25.36c-7.263 4.439-13.94 9.867-19.79 15.15-13.38 12.08-22.55 24.14-22.55 24.14l-3.282 4.311 3.64 4.013s32.55 37.09 74.69 37.09c8.514 0 16.8-1.763 24.64-4.556l17.71 24.75 10.6-7.582-93.21-130.2zm38.03 23.17c-2.47 0-4.912 0.2145-7.324 0.6089l8.889 12.44c31.54 0.7498 58.2 23.91 67.98 33.53-3.958 3.792-10.25 9.469-18.55 15.44-3.071 2.209-6.362 4.397-9.807 6.464l7.622 10.67c3.458-2.136 6.735-4.353 9.793-6.553 14.9-10.72 24.9-21.5 24.9-21.5l3.947-4.254-3.772-4.411s-35.36-42.43-83.67-42.43zm-22.72 20.61 5.5 7.685c-4.822 4.603-7.667 11.04-7.668 17.91 0.00019 13.68 11.09 24.77 24.77 24.77 4.017-0.001 7.935-0.9793 11.44-2.804l7.558 10.56c-5.565 1.704-11.18 2.716-16.63 2.716-27.08 0-51.8-20.38-61.02-28.94 3.586-4.258 9.506-10.92 17.25-17.91 5.695-5.14 12.19-10.11 18.82-13.98z\"/>\n </g>\n</svg>\n\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 ng-src=\"{{::contact.get(\'photo\')}}\" 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>");
$templateCache.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\"><span class=\"icon-search\"></span>\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.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-distance=\"2\" 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=\"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=\"/svg/spinner-circle.svg\" alt=\"{{ \'COMMON.LOADING\'|translate }}\"/></div>\n </div>\n <div ng-if=\"vm.hasNoResults &amp;&amp; !vm.isLoading\" class=\"empty-search-results\"><img src=\"../../images/search-empty.png\" alt=\"{{ \'USER.PROFILE_FAVS.EMPTY_TITLE\' | translate }}\"/>\n <p class=\"title\">{{ \'USER.PROFILE_FAVS.EMPTY_TITLE\' | translate }}</p>\n </div>\n</section>");
$templateCache.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\"><span class=\"icon-search\"></span>\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.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=\"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=\"/svg/spinner-circle.svg\" alt=\"{{ \'COMMON.LOADING\'|translate }}\"/></div>\n </div>\n <div ng-if=\"vm.hasNoResults &amp;&amp; !vm.isLoading\" class=\"empty-search-results\"><img src=\"../../images/search-empty.png\" alt=\"{{ \'USER.PROFILE_FAVS.EMPTY_TITLE\' | translate }}\"/>\n <p class=\"title\">{{ \'USER.PROFILE_FAVS.EMPTY_TITLE\' | translate }}</p>\n </div>\n</section>");
$templateCache.put("profile/profile-hints/profile-hints.html","\n<h4><span class=\"icon icon-help\"></span><span translate=\"HINTS.SECTION_NAME\"></span></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>");
$templateCache.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=\"/svg/spinner-circle.svg\" alt=\"Loading...\"/></div>\n </div>\n <div ng-if=\"vm.projects &amp;&amp; !vm.projects.size\" class=\"empty-tab\"><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<svg xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns=\"http://www.w3.org/2000/svg\" height=\"38.9mm\" width=\"46.15mm\" version=\"1.1\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" viewBox=\"0 0 163.53744 137.83166\">\n <g transform=\"translate(-380.2 -247.3)\">\n <path d=\"m418.3 247.3-10.6 7.583 18.15 25.36c-7.263 4.439-13.94 9.867-19.79 15.15-13.38 12.08-22.55 24.14-22.55 24.14l-3.282 4.311 3.64 4.013s32.55 37.09 74.69 37.09c8.514 0 16.8-1.763 24.64-4.556l17.71 24.75 10.6-7.582-93.21-130.2zm38.03 23.17c-2.47 0-4.912 0.2145-7.324 0.6089l8.889 12.44c31.54 0.7498 58.2 23.91 67.98 33.53-3.958 3.792-10.25 9.469-18.55 15.44-3.071 2.209-6.362 4.397-9.807 6.464l7.622 10.67c3.458-2.136 6.735-4.353 9.793-6.553 14.9-10.72 24.9-21.5 24.9-21.5l3.947-4.254-3.772-4.411s-35.36-42.43-83.67-42.43zm-22.72 20.61 5.5 7.685c-4.822 4.603-7.667 11.04-7.668 17.91 0.00019 13.68 11.09 24.77 24.77 24.77 4.017-0.001 7.935-0.9793 11.44-2.804l7.558 10.56c-5.565 1.704-11.18 2.716-16.63 2.716-27.08 0-51.8-20.38-61.02-28.94 3.586-4.258 9.506-10.92 17.25-17.91 5.695-5.14 12.19-10.11 18.82-13.98z\"/>\n </g>\n</svg>\n\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\" class=\"list-itemtype-project\">\n <div class=\"list-itemtype-project-left\">\n <div class=\"project-list-single-title\">\n <h2><a href=\"#\" tg-nav=\"project:project=project.get(\'slug\')\" title=\"{{ ::project.get(\'name\') }}\">{{::project.get(\'name\')}}</a></h2>\n <p>{{ ::project.get(\'description\') | limitTo:300 }}</p>\n </div>\n <div ng-if=\"::project.get(\'tags\').size\" class=\"list-itemtype-project-tags tags-container\"><span style=\"border-left: 5px solid {{::tag.get(&quot;color&quot;)}};\" tg-repeat=\"tag in ::project.get(\'colorized_tags\')\" class=\"tag\"><span class=\"tag-name\">{{::tag.get(\'name\')}}</span></span></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\"><span class=\"icon\"><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<svg viewbox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n <g transform=\"translate(94.258 13.08) scale(1.09227)\">\n <path d=\"M384 864c399-314 384-425 384-512s-72-192-192-192-192 128-192 128-72-128-192-128S0 265 0 352s-15 198 384 512z\" />\n </g>\n</svg>\n</span><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\"><span class=\"icon\"><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<svg version=\"1.1\" viewBox=\"0 0 1000 1000\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m5.1e2 2.1e2c-2e2 0-3.7e2 1.3e2 -4.4e2 3e2 70 1.8e2 2.4e2 3e2 4.4e2 3e2s3.7e2 -1.3e2 4.4e2 -3e2c-60-1.8e2 -2.4e2 -3e2 -4.4e2 -3e2zm0 5.1e2c-1.1e2 0-2e2 -91-2e2 -2e2s91-2e2 2e2 -2e2 2e2 91 2e2 2e2 -91 2e2 -2e2 2e2zm0-3.2e2c-67 0-1.2e2 54-1.2e2 1.2e2 0 67 54 1.2e2 1.2e2 1.2e2 67 0 1.2e2 -54 1.2e2 -1.2e2 0-67-54-1.2e2 -1.2e2 -1.2e2z\"/>\n</svg>\n</span><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 ng-src=\"{{::contact.get(\'photo\')}}\"/></a></div>\n </div>\n </div>\n</section>");
$templateCache.put("profile/profile-tab/profile-tab.html","\n<div ng-if=\"tab.active\">\n <ng-transclude></ng-transclude>\n</div>");
$templateCache.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\"><span ng-class=\"::tab.icon\" class=\"icon\"></span><span>{{::tab.name}}</span></a></nav>\n <ng-transclude></ng-transclude>\n</div>");
$templateCache.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=\"#\" ng-click=\"vm.newProject()\" title=\"{{\'PROJECT.NAVIGATION.ACTION_CREATE_PROJECT\' | translate}}\" translate=\"PROJECT.NAVIGATION.ACTION_CREATE_PROJECT\" class=\"create-project-btn button-green\"></a><span tg-import-project-button=\"tg-import-project-button\"><a href=\"\" title=\"{{\'PROJECT.NAVIGATION.TITLE_IMPORT_PROJECT\' | translate}}\" class=\"button-blackish import-project-button\"><span class=\"icon icon-upload\"></span></a>\n <input type=\"file\" class=\"import-file hidden\"/></span></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\')\" class=\"list-itemtype-project\">\n <div class=\"list-itemtype-project-left\">\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><span ng-if=\"project.get(\'is_private\')\" title=\"{{\'PROJECT.PRIVATE\' | translate}}\" class=\"private\"><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!-- Created with Inkscape (http://www.inkscape.org/) -->\n<svg xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" viewBox=\"0 0 10.2367 12.115\">\n <g transform=\"translate(51.126 -417.22)\">\n <path class=\"lock\" d=\"m-46.008 417.22c-1.886 0-3.4167 1.5307-3.4167 3.4167v1.033h-1.2265c-0.2632 0-0.4751 0.2264-0.4751 0.5072v6.6509c0 0.2808 0.2119 0.5072 0.4751 0.5072h9.2865c0.2632 0 0.4751-0.2264 0.4751-0.5072v-6.6509c0-0.2808-0.2119-0.5072-0.4751-0.5072h-1.2265v-1.033c0-1.886-1.5307-3.4167-3.4168-3.4167zm0 1.2986c1.1686 0 2.1195 0.9496 2.1195 2.1181v1.033h-4.2375v-1.033c0-1.1685 0.9495-2.1181 2.118-2.1181z\"/>\n </g>\n</svg>\n</span></h2>\n <p>{{ ::project.get(\'description\') | limitTo:300 }}<span ng-if=\"::project.get(\'description\').length &gt; 300\">...</span></p>\n </div>\n <div ng-if=\"::project.get(\'tags\').size\" class=\"list-itemtype-project-tags tag-container\"><span style=\"border-left: 5px solid {{::tag.get(&quot;color&quot;)}};\" tg-repeat=\"tag in ::project.get(\'colorized_tags\')\" class=\"tag\"><span class=\"tag-name\">{{::tag.get(\'name\')}}</span></span></div>\n </div><span class=\"drag icon icon-drag-v\"></span>\n </li>\n </ul>\n </div>\n <aside class=\"help-area\">\n <p translate=\"PROJECT.HELP\"></p>\n </aside>\n </section>\n</div>");
$templateCache.put("projects/project/project.html","\n<div class=\"wrapper\">\n <tg-project-menu></tg-project-menu>\n <div class=\"centered single-project\">\n <section class=\"single-project-intro\">\n <div class=\"intro-options\">\n <h1><span class=\"project-name\">{{::vm.project.get(\"name\")}}</span><span ng-if=\"::vm.project.get(\'is_private\')\" title=\"{{\'PROJECT.PRIVATE\' | translate}}\" class=\"private\"><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!-- Created with Inkscape (http://www.inkscape.org/) -->\n<svg xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" viewBox=\"0 0 10.2367 12.115\">\n <g transform=\"translate(51.126 -417.22)\">\n <path class=\"lock\" d=\"m-46.008 417.22c-1.886 0-3.4167 1.5307-3.4167 3.4167v1.033h-1.2265c-0.2632 0-0.4751 0.2264-0.4751 0.5072v6.6509c0 0.2808 0.2119 0.5072 0.4751 0.5072h9.2865c0.2632 0 0.4751-0.2264 0.4751-0.5072v-6.6509c0-0.2808-0.2119-0.5072-0.4751-0.5072h-1.2265v-1.033c0-1.886-1.5307-3.4167-3.4168-3.4167zm0 1.2986c1.1686 0 2.1195 0.9496 2.1195 2.1181v1.033h-4.2375v-1.033c0-1.1685 0.9495-2.1181 2.118-2.1181z\"/>\n </g>\n</svg>\n</span></h1>\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 </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\"><span class=\"icon\"><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<svg viewbox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n <g transform=\"translate(94.258 13.08) scale(1.09227)\">\n <path d=\"M384 864c399-314 384-425 384-512s-72-192-192-192-192 128-192 128-72-128-192-128S0 265 0 352s-15 198 384 512z\" />\n </g>\n</svg>\n</span><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\"><span class=\"icon\"><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<svg version=\"1.1\" viewBox=\"0 0 1000 1000\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m5.1e2 2.1e2c-2e2 0-3.7e2 1.3e2 -4.4e2 3e2 70 1.8e2 2.4e2 3e2 4.4e2 3e2s3.7e2 -1.3e2 4.4e2 -3e2c-60-1.8e2 -2.4e2 -3e2 -4.4e2 -3e2zm0 5.1e2c-1.1e2 0-2e2 -91-2e2 -2e2s91-2e2 2e2 -2e2 2e2 91 2e2 2e2 -91 2e2 -2e2 2e2zm0-3.2e2c-67 0-1.2e2 54-1.2e2 1.2e2 0 67 54 1.2e2 1.2e2 1.2e2 67 0 1.2e2 -54 1.2e2 -1.2e2 0-67-54-1.2e2 -1.2e2 -1.2e2z\"/>\n</svg>\n</span><span>{{ ::vm.project.get(\'total_watchers\') }}</span></span></div>\n </div>\n </div>\n <p class=\"description\">{{vm.project.get(\'description\')}}</p>\n <div ng-if=\"::vm.project.get(\'tags\').size\" class=\"single-project-tags tags-container\"><span style=\"border-left: 5px solid {{::tag.get(&quot;color&quot;)}};\" tg-repeat=\"tag in ::vm.project.get(\'colorized_tags\')\" class=\"tag\"><span class=\"tag-name\">{{::tag.get(\'name\')}}</span></span></div>\n </section>\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 <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 ng-src=\"{{::member.get(\'photo\')}}\" alt=\"{{::member.get(\'full_name\')}}\"/></a></li>\n </ul>\n </section>\n </div>\n </div>\n</div>");
$templateCache.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=\"/svg/spinner-circle.svg\" alt=\"Loading...\"/></div>\n </div>\n <div infinite-scroll=\"vm.loadTimeline()\" infinite-scroll-distance=\"3\" infinite-scroll-disabled=\"vm.scrollDisabled\">\n <div tg-repeat=\"timeline in vm.timelineList\" tg-user-timeline-item=\"timeline\"></div>\n </div>\n</section>");
$templateCache.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=\"/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>");
$templateCache.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>");
$templateCache.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\"><span class=\"icon icon-document\"></span><span>{{attachment.get(\'filename\')}}</span></a></blockquote>\n</div>");
$templateCache.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 ng-src=\"{{::timeline.getIn([\'data\', \'user\', \'photo\']) || \'/images/user-noimage.png\'}}\" 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 ng-src=\"{{::timeline.getIn([\'data\', \'user\', \'photo\']) || \'/images/user-noimage.png\'}}\" 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 ng-src=\"{{::timeline.getIn([\'member\', \'user\', \'photo\'])}}\" 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>");

View File

@ -681,7 +681,7 @@
},
"PROFILE_SIDEBAR": {
"TITLE": "El teu perfil",
"DESCRIPTION": "La gent pot vore tot el que fas i en qué estàs treballant. Afegix una bio interessant per a donar una millor versió de la teua informació.",
"DESCRIPTION": "People can see everything you do and what you are working on. Add a nice bio to give an enhanced version of your information.",
"ADD_INFO": "Edita la bio"
},
"PROFILE_FAVS": {

View File

@ -668,7 +668,7 @@
"ACTIVITY_TAB": "Aktivität",
"ACTIVITY_TAB_TITLE": "Alle Aktivitäten dieses Benutzers anzeigen",
"PROJECTS_TAB": "Projekte",
"PROJECTS_TAB_TITLE": "List of all projects in which the user is a member",
"PROJECTS_TAB_TITLE": "Liste alle Projekte auf, bei denen der Benutzer Mitglied ist",
"LIKES_TAB": "Likes",
"LIKES_TAB_TITLE": "Zeige alle Likes von diesem Benutzer",
"VOTES_TAB": "Stimmen",
@ -952,7 +952,7 @@
"MOVE_US_TO_CURRENT_SPRINT": "Zum aktuellen Sprint wechseln",
"SHOW_FILTERS": "Filter zeigen",
"SHOW_TAGS": "Tags anzeigen",
"EMPTY": "The backlog is empty!",
"EMPTY": "Das Backlog ist leer!",
"CREATE_NEW_US": "Eine neue User-Story anlegen",
"CREATE_NEW_US_EMPTY_HELP": "Sie sollten eine User-Story anlegen",
"EXCESS_OF_POINTS": "Punkte Überschuss",
@ -1012,7 +1012,7 @@
"LINK_TASKBOARD": "Sprint Taskboard",
"TITLE_LINK_TASKBOARD": "Gehe zu Taskboard von \"{{name}}\"",
"NUMBER_SPRINTS": "<br/>Sprints",
"EMPTY": "There are no sprints yet",
"EMPTY": "Derzeit sind keine Sprints vorhanden",
"WARNING_EMPTY_SPRINT": "Ziehe Stories aus deiner Auftragsliste her um einen neuen Sprint zu starten",
"TITLE_ACTION_NEW_SPRINT": "Neuen Sprint hinzufügen",
"TEXT_ACTION_NEW_SPRINT": "Du möchtest einen neuen Sprint in Deinem Projekt erstellen",
@ -1305,9 +1305,9 @@
"HINT1_TITLE": "Wussten Sie, dass Sie Projekte importieren und exportieren?",
"HINT1_TEXT": "Dies erlaubt Ihnen, alle Ihre Daten zu extrahieren und sie von einer Taiga zur nächsten zu transportieren",
"HINT2_TITLE": "Wussten Sie, dass Sie benutzerdefinierte Felder erstellen können?",
"HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.",
"HINT3_TITLE": "Reorder your projects to feature those most relevant to you.",
"HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.",
"HINT2_TEXT": "Teams können nun benutzerdefinierte Felder anlegen, um Werte einzugeben, die für Ihren Workflow wichtig sind.",
"HINT3_TITLE": "Sortiere Deine Projekte, um Dir vor allem die anzuzeigen, die relevant für Dich sind.",
"HINT3_TEXT": "Die 10 Projekt sind in der Zugriffsleiste am oberen Bildschirmrand aufgelistet. ",
"HINT4_TITLE": "Haben Sie vergessen, woran Sie arbeiten?",
"HINT4_TEXT": "Machen Sie sich keine Sorgen, im Dashboard finden Sie Aufgaben, Tickets und User-Stories in der Reihenfolge in der Sie diese bearbeitet haben."
},

View File

@ -681,7 +681,7 @@
},
"PROFILE_SIDEBAR": {
"TITLE": "Your profile",
"DESCRIPTION": "People can see everything you do and what are you working on. Add a nice bio to give an enhanced version of your information.",
"DESCRIPTION": "People can see everything you do and what you are working on. Add a nice bio to give an enhanced version of your information.",
"ADD_INFO": "Edit bio"
},
"PROFILE_FAVS": {

View File

@ -1,6 +1,6 @@
{
"COMMON": {
"YES": "Si",
"YES": "Sí",
"NO": "No",
"LOADING": "Cargando...",
"LOADING_PROJECT": "Cargando proyecto...",
@ -668,7 +668,7 @@
"ACTIVITY_TAB": "Actividad",
"ACTIVITY_TAB_TITLE": "Muestra toda la actividad de este usuario",
"PROJECTS_TAB": "Proyectos",
"PROJECTS_TAB_TITLE": "List of all projects in which the user is a member",
"PROJECTS_TAB_TITLE": "Lista todo los proyectos en los que este usuario es miembro",
"LIKES_TAB": "Likes",
"LIKES_TAB_TITLE": "Lista todo lo que le gusta a este usuario",
"VOTES_TAB": "Votos",
@ -952,7 +952,7 @@
"MOVE_US_TO_CURRENT_SPRINT": "Mover al Sprint en curso",
"SHOW_FILTERS": "Mostrar filtros",
"SHOW_TAGS": "Ver etiquetas",
"EMPTY": "The backlog is empty!",
"EMPTY": "¡El backlog está vacío!",
"CREATE_NEW_US": "Crear una nueva historia",
"CREATE_NEW_US_EMPTY_HELP": "Es posible que desees crear una nueva historia de usuario",
"EXCESS_OF_POINTS": "Exceso de puntos",
@ -1012,7 +1012,7 @@
"LINK_TASKBOARD": "Panel de Tareas del Sprint",
"TITLE_LINK_TASKBOARD": "Ir al panel de tareas de \"{{name}}\"",
"NUMBER_SPRINTS": "<br/>sprints",
"EMPTY": "There are no sprints yet",
"EMPTY": "Todavía no hay Sprints",
"WARNING_EMPTY_SPRINT": "Arrastra aquí las historias desde tu backlog para comenzar un nuevo sprint",
"TITLE_ACTION_NEW_SPRINT": "+ Nuevo sprint",
"TEXT_ACTION_NEW_SPRINT": "Es posible que desees crear un nuevo sprint para tu proyecto",
@ -1305,10 +1305,10 @@
"HINT1_TITLE": "¿Sabes que puedes importar y exportar proyectos?",
"HINT1_TEXT": "Esto permite extraer todos tus datos para moverlos de una instancia de Taiga a otra.\n",
"HINT2_TITLE": "¿Sabías que puedes crear atributos personalizados?",
"HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.",
"HINT3_TITLE": "Reorder your projects to feature those most relevant to you.",
"HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.",
"HINT4_TITLE": "Has olvidado en qué estabas trabajando?",
"HINT2_TEXT": "Los equipos ahora pueden crear atributos personalizados como un medio flexible para introducir datos específicos útiles para su flujo de trabajo particular",
"HINT3_TITLE": "Reordenar tus proyectos para facilitar el acceso a los más relevantes para ti",
"HINT3_TEXT": "Los 10 primeros proyectos aparecerán en el listado del acceso directo de la barra superior.",
"HINT4_TITLE": "¿Has olvidado en qué estabas trabajando?",
"HINT4_TEXT": "No te preocupes, en el dashboard encontrarás las tareas, peticiones e historias de usuario abiertas en el orden en el que trabajste en ellas."
},
"TIMELINE": {

View File

@ -681,7 +681,7 @@
},
"PROFILE_SIDEBAR": {
"TITLE": "Your profile",
"DESCRIPTION": "People can see everything you do and what are you working on. Add a nice bio to give an enhanced version of your information.",
"DESCRIPTION": "People can see everything you do and what you are working on. Add a nice bio to give an enhanced version of your information.",
"ADD_INFO": "Edit bio"
},
"PROFILE_FAVS": {

View File

@ -6,7 +6,7 @@
"LOADING_PROJECT": "Chargement du projet...",
"DATE": "DD MMM YYYY",
"DATETIME": "DD MMM YYYY HH:mm",
"SAVE": "Enregistré",
"SAVE": "Enregistrer",
"CANCEL": "Annuler",
"ACCEPT": "Accepter",
"DELETE": "Supprimer",
@ -17,7 +17,7 @@
"DRAG": "Faire glisser",
"TAG_LINE": "Votre outil de gestion de projet agile, libre et open source",
"TAG_LINE_2": "AIMEZ VOTRE PROJET",
"BLOCK": "Bloc",
"BLOCK": "Bloquer",
"UNBLOCK": "Débloquer",
"BLOCKED": "Bloqué",
"CREATED_BY": "Créé par {{fullDisplayName}}",
@ -668,7 +668,7 @@
"ACTIVITY_TAB": "Activité",
"ACTIVITY_TAB_TITLE": "Voir toutes les activités de cet utilisateur",
"PROJECTS_TAB": "Projets",
"PROJECTS_TAB_TITLE": "List of all projects in which the user is a member",
"PROJECTS_TAB_TITLE": "Liste de tous les projets pour lesquels l'utilisateur est membre.",
"LIKES_TAB": "Aime",
"LIKES_TAB_TITLE": "Lister tous les 'aime' fait par cet utilisateur",
"VOTES_TAB": "Votes",
@ -681,7 +681,7 @@
},
"PROFILE_SIDEBAR": {
"TITLE": "Votre profil",
"DESCRIPTION": "Tout le monde peut voir ce que vous faites et ce sur quoi vous travaillez. Ajoutez une bio détaillée pour améliorer la vision perçue de votre profil.",
"DESCRIPTION": "Tout le monde peut voir ce que vous fêtes et ce sur quoi vous travaillez. Ajoutez votre bio pour donner une version améliorée de vos informations.",
"ADD_INFO": "Editer la biographie"
},
"PROFILE_FAVS": {
@ -952,7 +952,7 @@
"MOVE_US_TO_CURRENT_SPRINT": "Déplacer vers le Sprint Courant",
"SHOW_FILTERS": "Afficher les filtres",
"SHOW_TAGS": "Afficher les mots-clés",
"EMPTY": "The backlog is empty!",
"EMPTY": "Le carnet de suivi est vide !",
"CREATE_NEW_US": "Créer un nouveau récit utilisateur",
"CREATE_NEW_US_EMPTY_HELP": "Vous pouvez envisager de créer un nouveau récit utilisateur",
"EXCESS_OF_POINTS": "Excès de points",
@ -1305,7 +1305,7 @@
"HINT1_TITLE": "Savez-vous que vous pouvez importer et exporter les projets?",
"HINT1_TEXT": "Cela vous permet d'extraire toutes vos données d'un Taiga et de le déplacer vers un autre",
"HINT2_TITLE": "Savez-vous que vous pouvez créer des champs personnalisés ?",
"HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.",
"HINT2_TEXT": "Les équipes peuvent désormais créer des champs personnalisés comme un moyen flexible d'entrer des données spécifiques utiles pour leur flux de travail particulier.",
"HINT3_TITLE": "Reorder your projects to feature those most relevant to you.",
"HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.",
"HINT4_TITLE": "Avez-vous oublié ce sur quoi vous travailliez ?",

View File

@ -161,15 +161,15 @@
"UNWATCH": "Non osservare",
"WATCHERS": "Osservatori",
"BUTTON_TITLE": "Osserva/Non osservare questo elemento",
"COUNTER_TITLE": "{total, plural, one{one watcher} other{# watchers}}"
"COUNTER_TITLE": "{total, plural, one{un osservatore} other{# osservatori}}"
},
"VOTE_BUTTON": {
"UPVOTE": "Upvote",
"UPVOTED": "Upvoted",
"DOWNVOTE": "Downvote",
"UPVOTE": "vota positivamente",
"UPVOTED": "votato positivamente",
"DOWNVOTE": "vota negativamente",
"VOTERS": "Votanti",
"BUTTON_TITLE": "Upvote/Downvote this item",
"COUNTER_TITLE": "{total, plural, one{one vote} other{# votes}}"
"BUTTON_TITLE": "vota positivamente o negativamente questo elemento",
"COUNTER_TITLE": "{total, plural, one{un voto} other{# voti}}"
},
"CUSTOM_ATTRIBUTES": {
"CUSTOM_FIELDS": "Campi Personalizzati",
@ -328,7 +328,7 @@
"PLACEHOLDER_NEW_PASSWORD": "Nuova password",
"PLACEHOLDER_RE_TYPE_NEW_PASSWORD": "Digita una nuova password",
"ACTION_RESET_PASSWORD": "Reimposta la password",
"ERROR": "Our Oompa Loompas can't find your request to recover your password. Try to ask for it again.",
"ERROR": "I nostri Digital Champions non riescono a trovare la tua richiesta di recupero password. Prova a chiedergliela di nuovo.",
"SUCCESS": "I nostri Digital Champions hanno salvato la tua nuova password. Che bravi!<br /> Pova a fare <strong>login</strong> con questa."
},
"INVITATION": {
@ -344,7 +344,7 @@
"PAGE_TITLE": "Home - Taiga",
"PAGE_DESCRIPTION": "La home di Taiga con i tuoi principali progetti e tutte le storie utente, i compiti e problemi assegnati e osservati. ",
"EMPTY_WORKING_ON": "<strong>Dà un po' l'idea di vuoto, no?</strong> Inizia a lavorare con Taiga e qui vedrai le storie, i compiti ed i problemi su cui stai lavorando.",
"EMPTY_WATCHING": "<strong>Follow</strong> User Stories, Tasks, Issues... that you want to know about :)",
"EMPTY_WATCHING": "<strong>Segui</strong> le storie utente, i compiti e i problemi... sui quali vuoi rimanere informato :)",
"EMPTY_PROJECT_LIST": "Per ora non hai nessun progetto",
"WORKING_ON_SECTION": "Sta lavorando su",
"WATCHING_SECTION": "Osservando"
@ -436,8 +436,8 @@
"PROJECT_DETAILS": "Dettagli progetto",
"PROJECT_NAME": "Nome progetto",
"PROJECT_SLUG": "Progetto lumaca",
"NUMBER_SPRINTS": "Number of sprints (0 for an undetermined quantity)",
"NUMBER_US_POINTS": "Number of US points (0 for an undetermined quantity)",
"NUMBER_SPRINTS": "Numero di sprint (0 come quantità indeterminata)",
"NUMBER_US_POINTS": "Numero di punti delle storie utente (0 come quantità indeterminata)",
"TAGS": "Tag",
"DESCRIPTION": "Descrizione",
"PUBLIC_PROJECT": "Progetto pubblico",
@ -515,9 +515,9 @@
"PAGE_TITLE": "Ruoli - {{projectName}}",
"WARNING_NO_ROLE": "Attento, nessun ruolo, all'interno del tuo progetto, potrà stimare i punti valore per le storie utente",
"HELP_ROLE_ENABLED": "Una volta abilitato, chi é associato a questo ruolo sará in grado di stimare il valore dei punti per le storie utente",
"DISABLE_COMPUTABLE_ALERT_TITLE": "Disable estimation for this role",
"DISABLE_COMPUTABLE_ALERT_SUBTITLE": "If you disable estimation permissions for role {{roleName}} all previous estimations made by this role will be removed",
"DISABLE_COMPUTABLE_ALERT_MESSAGE": "<strong>Are you sure you want to disable this role estimations?</strong>",
"DISABLE_COMPUTABLE_ALERT_TITLE": "Disabilita la stime per questo ruolo",
"DISABLE_COMPUTABLE_ALERT_SUBTITLE": "Se disabiliti i permessi di stime per {{roleName}} tutte le stime precedenti di questo ruolo saranno rimosse",
"DISABLE_COMPUTABLE_ALERT_MESSAGE": "<strong>sei sicuro di voler disabilitare la stime di questo ruolo?</strong>",
"COUNT_MEMBERS": "{{ role.members_count }} membri con questo ruolo",
"TITLE_DELETE_ROLE": "Elimina ruolo",
"REPLACEMENT_ROLE": "Tutti gli utenti con questo ruolo saranno spostati a ",
@ -579,7 +579,7 @@
"CANCEL_TITLE": "Elimina la creazione",
"SET_FIELD_NAME": "Imposta il nome del campo predefinito",
"SET_FIELD_DESCRIPTION": "Imposta la descrizione del campo personalizzato ",
"FIELD_TYPE_DEFAULT": "-- select one --",
"FIELD_TYPE_DEFAULT": "-- selezionane uno --",
"ACTION_UPDATE": "Aggiorna il campo personalizzato",
"ACTION_CANCEL_EDITION": "Elimina versione"
},
@ -591,7 +591,7 @@
"STATUS_ACTIVE": "Attivo",
"STATUS_PENDING": "In sospeso",
"DELETE_MEMBER": "Elimina membro",
"RESEND": "Resend",
"RESEND": "Invia di nuovo",
"SUCCESS_SEND_INVITATION": "Abbiamo mandato nuovamente l'invito a '{{email}}'.",
"ERROR_SEND_INVITATION": "Non abbiamo mandato l'invito",
"SUCCESS_DELETE": "Abbiamo eliminato {{message}}.",
@ -668,11 +668,11 @@
"ACTIVITY_TAB": "Attività",
"ACTIVITY_TAB_TITLE": "Mostra tutte le attività dell'utente",
"PROJECTS_TAB": "Progetti",
"PROJECTS_TAB_TITLE": "List of all projects in which the user is a member",
"LIKES_TAB": "Likes",
"LIKES_TAB_TITLE": "List all likes made by this user",
"PROJECTS_TAB_TITLE": "La lista di tutti i progetti di cui l'utente è membro",
"LIKES_TAB": "mi piace",
"LIKES_TAB_TITLE": "Lista di tutte le cose che son piaciute all'utente",
"VOTES_TAB": "Voti",
"VOTES_TAB_TITLE": "List all votes made by this user",
"VOTES_TAB_TITLE": "Lista di tutti i voti fatti dall'utente",
"WATCHED_TAB": "Osservato",
"WATCHED_TAB_TITLE": "Mostra tutti gli elementi osservati dall'utente",
"CONTACTS_TAB": "Contatti",
@ -682,7 +682,7 @@
"PROFILE_SIDEBAR": {
"TITLE": "Il tuo profilo",
"DESCRIPTION": "Le persone possono vedere tutto quello che fai e su cosa stai lavorando. Aggiungi una bella bio per migliorare la descrizione delle tue informazioni.",
"ADD_INFO": "Edit bio"
"ADD_INFO": "Modifica la tua bio"
},
"PROFILE_FAVS": {
"FILTER_INPUT_PLACEHOLDER": "Inserisci testo...",
@ -696,7 +696,7 @@
"FILTER_TYPE_TASK_TITLES": "Mostra solo attività",
"FILTER_TYPE_ISSUES": "problemi",
"FILTER_TYPE_ISSUES_TITLE": "Mostra solo i problemi",
"EMPTY_TITLE": "It looks like there's nothing to show here."
"EMPTY_TITLE": "Sembra che qui non ci sia nulla"
}
},
"PROJECT": {
@ -768,16 +768,16 @@
},
"LIKE_BUTTON": {
"LIKE": "Mi piace",
"LIKED": "Liked",
"LIKED": "Piaciuto",
"UNLIKE": "Non mi piace",
"BUTTON_TITLE": "Vota a favore o a sfavore di questo progetto",
"COUNTER_TITLE": "{total, plural, one{one fan} other{# fans}}"
"COUNTER_TITLE": "{total, plural, one{un follower} other{# followers}}"
},
"WATCH_BUTTON": {
"BUTTON_TITLE": "Osserva questo progetto ed imposta la politica di notifica",
"WATCH": "Osserva",
"WATCHING": "In osservazione",
"COUNTER_TITLE": "{total, plural, one{one watcher} other{# watchers}}",
"COUNTER_TITLE": "{total, plural, one{un osservatore} other{# osservatori}} ",
"OPTIONS": {
"NOTIFY_ALL": "Ricevi tutte le notifiche",
"NOTIFY_ALL_TITLE": "Ricevi tutte le notifiche per questo progetto",
@ -945,14 +945,14 @@
"PAGE_TITLE": "Backlog - {{projectName}}",
"PAGE_DESCRIPTION": "Il pannello di backlog, con le storie degli utenti e gli sprint di progetto",
"SECTION_NAME": "Backlog",
"CUSTOMIZE_GRAPH": "Customize your backlog graph",
"CUSTOMIZE_GRAPH_TEXT": "To have a nice graph that helps you follow the evolution of the project you have to set up the points and sprints through the",
"CUSTOMIZE_GRAPH": "Personalizza il grafico del tuo backlog",
"CUSTOMIZE_GRAPH_TEXT": "Per avere un grafico bello e utile che ti aiuti a seguire l'evoluzione del progetto devi impostare i punti e gli sprint come",
"CUSTOMIZE_GRAPH_ADMIN": "Amministratore",
"CUSTOMIZE_GRAPH_TITLE": "Set up the points and sprints through the Admin",
"CUSTOMIZE_GRAPH_TITLE": "Imposta i punti e gli sprint come Amministratore",
"MOVE_US_TO_CURRENT_SPRINT": "Spostati allo sprint attuale",
"SHOW_FILTERS": "Mostra filtri",
"SHOW_TAGS": "Mostra tag",
"EMPTY": "The backlog is empty!",
"EMPTY": "OMG..Il backlog é pieno!!",
"CREATE_NEW_US": "Crea una nuova Storia Utente",
"CREATE_NEW_US_EMPTY_HELP": "Potresti voler creare una nuova storia utente",
"EXCESS_OF_POINTS": "Eccesso di punti",
@ -1012,10 +1012,10 @@
"LINK_TASKBOARD": "Pannello dei compiti dello sprint",
"TITLE_LINK_TASKBOARD": "Vai al pannello dei compiti di \"{{name}}\"",
"NUMBER_SPRINTS": "<br/>sprints",
"EMPTY": "There are no sprints yet",
"WARNING_EMPTY_SPRINT": "Drop here Stories from your backlog to start a new sprint",
"TITLE_ACTION_NEW_SPRINT": "Add new sprint",
"TEXT_ACTION_NEW_SPRINT": "You may want to create a new sprint in your project",
"EMPTY": "Non ci sono ancora sprints disponibili",
"WARNING_EMPTY_SPRINT": "Metti qui le storie del tuo backlog che iniziare in nuovo sprint",
"TITLE_ACTION_NEW_SPRINT": "Aggiungi un nuovo sprint",
"TEXT_ACTION_NEW_SPRINT": "Potresti voler creare un nuovo sprint nel tuo progetto",
"ACTION_SHOW_CLOSED_SPRINTS": "Mostra gli sprints terminati",
"ACTION_HIDE_CLOSED_SPRINTS": "Nascondi lo sprint terminato"
}
@ -1036,8 +1036,8 @@
"TITLE_ACTION_ADD_BULK": "Aggiungi qualche nuovo Compito nel carico",
"TITLE_ACTION_ASSIGN": "Compito assegnato",
"TITLE_ACTION_EDIT": "Modifica compito",
"PLACEHOLDER_CARD_TITLE": "This could be a task",
"PLACEHOLDER_CARD_TEXT": "Split Stories into tasks to track them separately",
"PLACEHOLDER_CARD_TITLE": "Questo potrebbe essere un compito",
"PLACEHOLDER_CARD_TEXT": "Dividi le storie in compiti per tenerne traccia separatamente",
"TABLE": {
"COLUMN": "Storia utente",
"TITLE_ACTION_FOLD": "Ripiega la colonna",
@ -1189,8 +1189,8 @@
"HIDDEN_USER_STORIES": "Le storie utente in questo status sono nascoste by default",
"ARCHIVED": "Hai archiviato",
"UNDO_ARCHIVED": "Trascina e lascia di nuovo per annullare",
"PLACEHOLDER_CARD_TITLE": "These are your User Stories",
"PLACEHOLDER_CARD_TEXT": "Stories might also have subtasks to separate requirements"
"PLACEHOLDER_CARD_TITLE": "Queste sono le tue storie utente.",
"PLACEHOLDER_CARD_TEXT": "Le storie possono anche avere dei sotto-compiti che separano i requisiti"
},
"SEARCH": {
"PAGE_TITLE": "Cerca - {{projectName}}",
@ -1305,9 +1305,9 @@
"HINT1_TITLE": "Sai che puoi anche importare ed esportare progetti?",
"HINT1_TEXT": "Questo ti permette di estrarre tutti i tuoi dati da un Taiga e muoverli dentro un altro.",
"HINT2_TITLE": "Sai che puoi anche creare dei cambi personalizzati?",
"HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.",
"HINT3_TITLE": "Reorder your projects to feature those most relevant to you.",
"HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.",
"HINT2_TEXT": "I team adesso possono creare dei campi personalizzati. Così hanno uno strumento flessibile per inserire quei dati specifici che sono utili al loro flusso di lavoro.",
"HINT3_TITLE": "Riordina i tuoi progetti e metti in evidenza quelli più rilevanti.",
"HINT3_TEXT": "I 10 progetti sono elencati nella barra ad accesso rapido su in alto.",
"HINT4_TITLE": "Ti sei dimenticato su cosa stavi lavorando?",
"HINT4_TEXT": "Non preoccuparti, sulla tua dashboard troverai i compiti aperti, i problemi e le storie utenti così da poterci lavorare"
},
@ -1343,7 +1343,7 @@
"NEW_USER": "{{username}} si é iscritto su Taiga"
},
"LEGAL": {
"TERMS_OF_SERVICE_AND_PRIVACY_POLICY_AD": "<span>By clicking \"Sign up\"', you agree to our <br /></span><a href=\"{{ termsOfServiceUrl }}\" title=\"See terms of service\" target=\"_blank\">terms of service</a><span> and </span><a href=\"{{ privacyPolicyUrl }}\" title=\"See privacy policy\" target=\"_blank\">privacy policy</a>."
"TERMS_OF_SERVICE_AND_PRIVACY_POLICY_AD": "<span>Cliccando \"Inscriviti\"', esprimi il tuo accordo con i nostri <br /></span><a href=\"{{ termsOfServiceUrl }}\" title=\"See terms of service\" target=\"_blank\">termini di servizi</a><span> e </span><a href=\"{{ privacyPolicyUrl }}\" title=\"See privacy policy\" target=\"_blank\">con la nostra privacy policy</a>."
},
"EXTERNAL_APP": {
"PAGE_TITLE": "Un'applicazione esterna richiede l'autenticazione",
@ -1356,56 +1356,56 @@
"JOYRIDE": {
"DASHBOARD": {
"STEP1": {
"TITLE": "Your project",
"TEXT": "Welcome! Here you will find the projects you are involved on."
"TITLE": "Il tuo progetto",
"TEXT": "Benvenuto! Qui puoi trovare i progetti in cui sei coinvolto."
},
"STEP2": {
"TITLE": "Sta lavorando su",
"TEXT": "Here you will find the User Stories, Tasks and Issues in which you are working on."
"TEXT": "Qui puoi trovare le storie utente, i compiti e i problemi a cui stai lavorando."
},
"STEP3": {
"TITLE": "In osservazione",
"TEXT1": "And right here you will find the ones that you want to know about.",
"TEXT2": "You are already working with Taiga ;)"
"TEXT1": "E qui puoi trovare quelle che vuoi tenere d'occhio.",
"TEXT2": "Stai giù lavorando in Taiga ;) "
},
"STEP4": {
"TITLE": "Lets start",
"TEXT1": "You can start by creating your first Taiga project.",
"TEXT2": "Good luck!"
"TITLE": "Bene..cominciamo!!",
"TEXT1": "Il modo migliore per iniziare é creare subito il tuo primo progetto Taiga.",
"TEXT2": "Buona fortuna!"
}
},
"BACKLOG": {
"STEP1": {
"TITLE": "Project summary",
"TEXT1": "Here you will see the state of your project.",
"TEXT2": "You can change every kind of project settings through the admin."
"TITLE": "Riassunto di progetto",
"TEXT1": "Qui puoi vedere lo stato del progetto.",
"TEXT2": "Puoi cambiare qualsiasi impostazione del tuo progetto attraverso l'Amministratore."
},
"STEP2": {
"TITLE": "Product backlog",
"TEXT": "The backlog is the list of requirements (User Stories) for the project. Here is where you will plan your sprints."
"TITLE": "Backlog di produzione",
"TEXT": "Il Backlog è la lista dei requisiti (o storie utente) per il progetto. Qui è dove pianificherai i tuoi sprint. "
},
"STEP3": {
"TITLE": "Sprints",
"TEXT": "Sprints are short periods of time (usually 2 weeks) during which specific work has to be completed and delivered."
"TEXT": "Gli sprints durano solitamente poco tempo (circa 2 settimane) durante le quali deve essere completato e consegnato un lavoro specifico."
},
"STEP4": {
"TITLE": "Storie Utente",
"TEXT": "Those are the requirements at high level. You can add them to the backlog and drag them to the sprint in which it should be delivered."
"TEXT": "Questi sono i requisiti di alto livello. Li puoi aggiungere al backlog e spostare nello sprint dove devono essere consegnati."
}
},
"KANBAN": {
"STEP1": {
"TITLE": "Customize your workflow",
"TEXT": "Set up the columns you need to map your workflow statuses through the admin."
"TITLE": "Personalizza il tuo flusso di lavoro",
"TEXT": "Imposta le colonne di cui hai bisogno per mappare lo stato dei tuoi flussi di lavoro come Amministratore. "
},
"STEP2": {
"TITLE": "User Stories & Tasks",
"TEXT": "User Stories are the requirements at high level. You can drag them to different columns."
"TITLE": "Storie utente e compiti",
"TEXT": "Le storie utente sono i requisiti di alto livello. Puoi spostarle in differenti colonne."
},
"STEP3": {
"TITLE": "Adding User Stories",
"TEXT1": "You may want to add a single User Story (add US icon) or a group of them (bulk icon)",
"TEXT2": "Good luck!"
"TITLE": "Aggiungi le storie utente",
"TEXT1": "Potresti voler aggiungere una solo storia utente (aggiungi l'icona storia utente) o più di una, in gruppo (icona bulk)",
"TEXT2": "Buona fortuna! "
}
}
}

View File

@ -681,7 +681,7 @@
},
"PROFILE_SIDEBAR": {
"TITLE": "Jouw profiel",
"DESCRIPTION": "Mensen kunnen alles zien wat je doet en waar je aan werkt. Voeg een mooie biografie toe voor een meer uitgebreide versie van jouw informatie.",
"DESCRIPTION": "People can see everything you do and what you are working on. Add a nice bio to give an enhanced version of your information.",
"ADD_INFO": "Bio aanpassen"
},
"PROFILE_FAVS": {

View File

@ -681,7 +681,7 @@
},
"PROFILE_SIDEBAR": {
"TITLE": "Twój profil",
"DESCRIPTION": "Użytkownicy mogą zobaczyć wszystko co robisz i nad czym pracujesz. Dodaj jakieś ładne info o sobie, żeby dać im się poznać.",
"DESCRIPTION": "People can see everything you do and what you are working on. Add a nice bio to give an enhanced version of your information.",
"ADD_INFO": "Edit bio"
},
"PROFILE_FAVS": {

View File

@ -4,8 +4,8 @@
"NO": "Não",
"LOADING": "Carregando...",
"LOADING_PROJECT": "Carregando o projeto...",
"DATE": "DD MMM AAAA",
"DATETIME": "DD MMM AAAA HH:mm",
"DATE": "DD MMM YYYY",
"DATETIME": "DD MMM YYYY HH:mm",
"SAVE": "Salvar",
"CANCEL": "Cancelar",
"ACCEPT": "Aceitar",
@ -681,7 +681,7 @@
},
"PROFILE_SIDEBAR": {
"TITLE": "Seu perfil",
"DESCRIPTION": "Pessoas podem ver tudo o que você faz e seu desempenho. Adicione uma boa biografia para aprimorar sua informação.",
"DESCRIPTION": "People can see everything you do and what you are working on. Add a nice bio to give an enhanced version of your information.",
"ADD_INFO": "Edit bio"
},
"PROFILE_FAVS": {

View File

@ -159,7 +159,7 @@
"WATCH": "Отслеживать",
"WATCHING": "Отслеживаемое",
"UNWATCH": "Прекратить отслеживание",
"WATCHERS": "Watchers",
"WATCHERS": "Наблюдатели",
"BUTTON_TITLE": "Начать/прекратить отслеживание",
"COUNTER_TITLE": "{total, plural, one{один наблюдатель} other{# наблюдателя (-ей)}}"
},
@ -224,11 +224,11 @@
"DELETE_SPRINTS": "Удалить спринты"
},
"USER_STORIES": {
"NAME": "Истории от Пользователей",
"VIEW_USER_STORIES": осмотреть истории от пользователей",
"ADD_USER_STORIES": "Добавить истории от пользователей",
"MODIFY_USER_STORIES": "Изменить истории от пользователей",
"DELETE_USER_STORIES": "Удалить истории от пользователей"
"NAME": "Пользовательские Истории",
"VIEW_USER_STORIES": росматривать пользовательские истории",
"ADD_USER_STORIES": "Добавлять пользовательские истории",
"MODIFY_USER_STORIES": "Изменять пользовательские истории",
"DELETE_USER_STORIES": "Удалять пользовательские истории"
},
"TASKS": {
"NAME": "Задачи",
@ -328,7 +328,7 @@
"PLACEHOLDER_NEW_PASSWORD": "Новый пароль",
"PLACEHOLDER_RE_TYPE_NEW_PASSWORD": "Введите повторно новый пароль",
"ACTION_RESET_PASSWORD": "Сбросить пароль",
"ERROR": "Our Oompa Loompas can't find your request to recover your password. Try to ask for it again.",
"ERROR": "У наших Умпа-Лумп не получается найти ваш запрос на восстановление пароля. Попробуйте получить его ещё раз.",
"SUCCESS": "Наши Умпа Лумпы сохранили ваш новый пароль.<br /> Попробуйте <strong>войти</strong>, используя его."
},
"INVITATION": {
@ -336,15 +336,15 @@
"PAGE_DESCRIPTION": "Принять приглашение и присоединиться к Taiga — платформе для управления проектами стартапов, agile разработчиков и дизайнеров, которые хотят простой и красивый инструмент превращающий работу в удовольствие."
},
"INVITATION_LOGIN_FORM": {
"NOT_FOUND": "Our Oompa Loompas can't find your invitation.",
"NOT_FOUND": "У наших Умпа-Лумп не получается найти ваше приглашение.",
"SUCCESS": "Вы успешно добавлены к проекту. Добро пожаловать в {{project_name}}",
"ERROR": "Умпа-Лумпы говорят, что вы не зарегистрированы или ввели неверный пароль."
},
"HOME": {
"PAGE_TITLE": "Домашняя страница - Taiga",
"PAGE_DESCRIPTION": "Главная страница Тайги, с вашими основными проектами, назначенными и отслеживаемыми задачами, запросами и пользовательскими историями",
"EMPTY_WORKING_ON": "<strong>It feels empty, doesn't it?</strong> Start working with Taiga and you'll see here the stories, tasks and issues you are workin on.",
"EMPTY_WATCHING": "<strong>Follow</strong> User Stories, Tasks, Issues... that you want to know about :)",
"PAGE_DESCRIPTION": "Главная страница Taiga с вашими основными проектами, назначенными и отслеживаемыми ПИ, задачами и запросами",
"EMPTY_WORKING_ON": "<strong>Пустовато, не правда ли?</strong> Начните работать в Taiga - и тут появятся ПИ, задачи и запросы, над которыми вы работаете.",
"EMPTY_WATCHING": "<strong>Следите</strong> за ПИ, задачами, запросами... о которых хотите знать :)",
"EMPTY_PROJECT_LIST": "У Вас пока нет проектов",
"WORKING_ON_SECTION": "Работает над",
"WATCHING_SECTION": "Отслеживаемые"
@ -414,7 +414,7 @@
"ENABLE": "Включить",
"DISABLE": "Выключить",
"BACKLOG": "Список задач",
"BACKLOG_DESCRIPTION": "Управляйте историями от пользователей, чтобы организовывать вашу ближайшую и приоритетную работу",
"BACKLOG_DESCRIPTION": "Управляйте пользовательскими историями, чтобы поддерживать организованное видение важных и приоритетных задач.",
"KANBAN": "Kanban",
"KANBAN_DESCRIPTION": "Организуйте эффективную работу с проектом с помощью этой панели",
"ISSUES": "Запросы",
@ -436,8 +436,8 @@
"PROJECT_DETAILS": "Детали проекта",
"PROJECT_NAME": "Название проекта",
"PROJECT_SLUG": "Ссылочное имя проекта",
"NUMBER_SPRINTS": "Количество спринтов (0 для неопределенного количества)",
"NUMBER_US_POINTS": "Number of US points (0 for an undetermined quantity)",
"NUMBER_SPRINTS": "Количество спринтов (0 - неопределенное количество)",
"NUMBER_US_POINTS": "Количество очков ПИ (0 - неопределенное количество)",
"TAGS": "Тэги",
"DESCRIPTION": "Описание",
"PUBLIC_PROJECT": "Публичный проект",
@ -453,7 +453,7 @@
"REGENERATE_SUBTITLE": "Вы собираетесь изменить ссылку доступа к данным CSV. Прежний вариант ссылки перестанет работать. Вы уверены?"
},
"CSV": {
"SECTION_TITLE_US": "Отчёты об историях от пользователей",
"SECTION_TITLE_US": "Отчёты по пользовательским историям",
"SECTION_TITLE_TASK": "отчёты о задачах",
"SECTION_TITLE_ISSUE": "отчёты о запросах",
"DOWNLOAD": "Скачать CSV",
@ -465,8 +465,8 @@
"CUSTOM_FIELDS": {
"TITLE": "Пользовательские поля",
"SUBTITLE": "Укажите специальные поля для ваших пользовательских историй, задач и запросов",
"US_DESCRIPTION": "Специальные поля для историй от пользователей",
"US_ADD": "Добавить специальное поле для историй от пользователей",
"US_DESCRIPTION": "Специальные поля для пользовательских историй",
"US_ADD": "Добавить специальное поле для пользовательских историй",
"TASK_DESCRIPTION": "Специальные поля задач",
"TASK_ADD": "Добавить новые типы задач",
"ISSUE_DESCRIPTION": "Специальные поля запросов",
@ -513,9 +513,9 @@
},
"ROLES": {
"PAGE_TITLE": "Роли - {{projectName}}",
"WARNING_NO_ROLE": "Осторожнее: ни с какими ролями на вашем проекте участники не смогут оценить очки для историй от пользователей.",
"HELP_ROLE_ENABLED": "Когда включено, участники, назначенные на эту роль, смогут оценивать очки для Историй от Пользователей",
"DISABLE_COMPUTABLE_ALERT_TITLE": "Disable estimation for this role",
"WARNING_NO_ROLE": "Осторожнее: ни с какими ролями на вашем проекте участники не смогут оценить очки для пользовательских историй.",
"HELP_ROLE_ENABLED": "Когда включено, участники, назначенные на эту роль, смогут оценивать очки для пользовательских историй",
"DISABLE_COMPUTABLE_ALERT_TITLE": "Отключить оценку очков для этой роли",
"DISABLE_COMPUTABLE_ALERT_SUBTITLE": "If you disable estimation permissions for role {{roleName}} all previous estimations made by this role will be removed",
"DISABLE_COMPUTABLE_ALERT_MESSAGE": "<strong>Are you sure you want to disable this role estimations?</strong>",
"COUNT_MEMBERS": "{{ role.members_count }} участников с этой ролью",
@ -545,19 +545,19 @@
"PAGE_TITLE": "Github - {{projectName}}"
},
"WEBHOOKS": {
"PAGE_TITLE": "Web-зацепки - {{projectName}}",
"SECTION_NAME": "Web-зацепки",
"SUBTITLE": "Web-зацепки рассказывают внешним сервисам о событиях в Taiga, таких как комментарии, новые истории от пользователей и т.д.",
"ADD_NEW": "Добавить новую Web-зацепку",
"PAGE_TITLE": "Веб-хуки - {{projectName}}",
"SECTION_NAME": "Веб-хуки",
"SUBTITLE": "Веб-хуки рассказывают внешним сервисам о событиях в Taiga, таких как комментарии, новые пользовательские истории и т.д.",
"ADD_NEW": "Добавить новый веб-хук",
"TYPE_NAME": "Укажите имя сервиса",
"TYPE_PAYLOAD_URL": "Укажите нагрузочную ссылку сервиса",
"TYPE_SERVICE_SECRET": "Введите секретный код сервиса",
"SAVE": "Сохранить Web-зацепку",
"CANCEL": "Отменить Web-зацепку",
"SAVE": "Сохранить веб-хук",
"CANCEL": "Отменить веб-хук",
"SHOW_HISTORY": "(Показать историю)",
"TEST": "Протестировать Web-зацепку",
"EDIT": "Редактировать Web-зацепку",
"DELETE": "Удалить Web-зацепку",
"TEST": "Протестировать веб-хук",
"EDIT": "Редактировать веб-хук",
"DELETE": "Удалить веб-хук",
"REQUEST": "Запрос",
"RESEND_REQUEST": "Переслать запрос",
"HEADERS": "Заголовки",
@ -568,7 +568,7 @@
"ACTION_HIDE_HISTORY_TITLE": "Скрыть детали истории",
"ACTION_SHOW_HISTORY": "(Показать историю)",
"ACTION_SHOW_HISTORY_TITLE": "Показать детали истории",
"WEBHOOK_NAME": "Web-зацепка '{{name}}'"
"WEBHOOK_NAME": "Веб-хук '{{name}}'"
},
"CUSTOM_ATTRIBUTES": {
"PAGE_TITLE": "{{sectionName}} - Специальные Атрибуты - {{projectName}}",
@ -579,19 +579,19 @@
"CANCEL_TITLE": "Отменить создание",
"SET_FIELD_NAME": "Введите имя поля",
"SET_FIELD_DESCRIPTION": "Назначьте описание специальному полю",
"FIELD_TYPE_DEFAULT": "-- select one --",
"FIELD_TYPE_DEFAULT": "-- выберите --",
"ACTION_UPDATE": "Обновить поле",
"ACTION_CANCEL_EDITION": "Отменить правку"
},
"MEMBERSHIP": {
"COLUMN_MEMBER": "Участник",
"COLUMN_ADMIN": "Админ",
"COLUMN_ADMIN": "Админка",
"COLUMN_ROLE": "Роль",
"COLUMN_STATUS": "Статус",
"STATUS_ACTIVE": "Активный",
"STATUS_PENDING": "В ожидании",
"DELETE_MEMBER": "Удалить участника",
"RESEND": "Resend",
"RESEND": "Переотправить",
"SUCCESS_SEND_INVITATION": "Мы отправили ещё одно приглашение на адрес '{{email}}'.",
"ERROR_SEND_INVITATION": "Мы не выслали приглашение.",
"SUCCESS_DELETE": "Мы удалили {{message}}.",
@ -620,7 +620,7 @@
"PLACEHOLDER_WRITE_NAME": "Укажите название для нового статуса"
},
"MENU": {
"TITLE": "Админ",
"TITLE": "Админка",
"PROJECT": "Проект",
"ATTRIBUTES": "Атрибуты",
"MEMBERS": "Участники",
@ -668,13 +668,13 @@
"ACTIVITY_TAB": "Действия",
"ACTIVITY_TAB_TITLE": "Показать все действия пользователя",
"PROJECTS_TAB": "Проекты",
"PROJECTS_TAB_TITLE": "List of all projects in which the user is a member",
"LIKES_TAB": "Likes",
"PROJECTS_TAB_TITLE": "Список всех проектов, в которых участвует пользователь",
"LIKES_TAB": "Лайки",
"LIKES_TAB_TITLE": "List all likes made by this user",
"VOTES_TAB": "Голоса",
"VOTES_TAB_TITLE": "List all votes made by this user",
"WATCHED_TAB": "Просмотренные",
"WATCHED_TAB_TITLE": "List all item watched by this user",
"WATCHED_TAB_TITLE": "Список всего, за чем наблюдает пользователь",
"CONTACTS_TAB": "Контакты",
"CONTACTS_TAB_TITLE": "List all contacts made by this user"
}
@ -682,7 +682,7 @@
"PROFILE_SIDEBAR": {
"TITLE": "Ваш профиль",
"DESCRIPTION": "Люди могут видеть всё что Вы делаете и всё над чем Вы работаете. Вы также можете добавить краткую биографию.",
"ADD_INFO": "Edit bio"
"ADD_INFO": "Редактировать биографию"
},
"PROFILE_FAVS": {
"FILTER_INPUT_PLACEHOLDER": "Введите что-нибудь...",
@ -696,7 +696,7 @@
"FILTER_TYPE_TASK_TITLES": "Показывать только задачи",
"FILTER_TYPE_ISSUES": "Запросы",
"FILTER_TYPE_ISSUES_TITLE": "Показывать только запросы",
"EMPTY_TITLE": "It looks like there's nothing to show here."
"EMPTY_TITLE": "Похоже, здесь ничего нет."
}
},
"PROJECT": {
@ -720,7 +720,7 @@
"WIKI": "Wiki",
"TEAM": "Команда",
"MEETUP": "Созвониться",
"ADMIN": "Админ"
"ADMIN": "Админка"
},
"NAVIGATION": {
"SECTION_TITLE": "Ваши проекты",
@ -853,14 +853,14 @@
}
},
"US": {
"PAGE_TITLE": "{{userStorySubject}} - История от Пользователя {{userStoryRef}} - {{projectName}}",
"PAGE_TITLE": "{{userStorySubject}} - Пользовательская История {{userStoryRef}} - {{projectName}}",
"PAGE_DESCRIPTION": "Статус: {{userStoryStatus }}. Выполнено {{userStoryProgressPercentage}}% ({{userStoryClosedTasks}} из {{userStoryTotalTasks}} задач). Очки: {{userStoryPoints}}. Описание: {{userStoryDescription}}",
"SECTION_NAME": "Детали пользовательских историй",
"LINK_TASKBOARD": "Панель задач",
"TITLE_LINK_TASKBOARD": "Перейти к панели задач",
"TOTAL_POINTS": "общее число очков",
"ADD": "+ Добавить Пользовательскую Историю",
"ADD_BULK": "Добавить несколько Историй от Пользователей пакетно",
"ADD_BULK": "Добавить Пользовательские Истории пакетно",
"PROMOTED": "Эта ПИ была сформирована из запроса:",
"TITLE_LINK_GO_TO_ISSUE": "Перейти к запросу",
"EXTERNAL_REFERENCE": "Эта ПИ была создана из:",
@ -943,18 +943,18 @@
},
"BACKLOG": {
"PAGE_TITLE": "Список задач - {{projectName}}",
"PAGE_DESCRIPTION": "Список задач с историями от пользователей и спринтами проекта {{projectName}}: {{projectDescription}}",
"PAGE_DESCRIPTION": "Список задач с пользовательскими историями и спринтами проекта {{projectName}}: {{projectDescription}}",
"SECTION_NAME": "Список задач",
"CUSTOMIZE_GRAPH": "Customize your backlog graph",
"CUSTOMIZE_GRAPH_TEXT": "To have a nice graph that helps you follow the evolution of the project you have to set up the points and sprints through the",
"CUSTOMIZE_GRAPH_ADMIN": "Админ",
"CUSTOMIZE_GRAPH_TITLE": "Set up the points and sprints through the Admin",
"CUSTOMIZE_GRAPH_ADMIN": "Админка",
"CUSTOMIZE_GRAPH_TITLE": "Настройте очки и спринты в админке",
"MOVE_US_TO_CURRENT_SPRINT": "Перейти к текущему спринту",
"SHOW_FILTERS": "Показать фильтры",
"SHOW_TAGS": "Показать теги",
"EMPTY": "The backlog is empty!",
"EMPTY": "Список задач пуст!",
"CREATE_NEW_US": "Создать новую ПИ",
"CREATE_NEW_US_EMPTY_HELP": "Возможно будет лучше создать пользовательскую историю?",
"CREATE_NEW_US_EMPTY_HELP": "Вы можете создать пользовательскую историю",
"EXCESS_OF_POINTS": "Избыток очков",
"PENDING_POINTS": "Текущие очки",
"CLOSED_POINTS": "закрыта",
@ -979,7 +979,7 @@
"HIDE": "Скрыть тэги"
},
"TABLE": {
"COLUMN_US": "Истории от Пользователей",
"COLUMN_US": "Пользовательские Истории",
"TITLE_COLUMN_POINTS": "Выберите вид для Роли"
},
"SPRINT_SUMMARY": {
@ -1012,10 +1012,10 @@
"LINK_TASKBOARD": "Панель задач Спринта",
"TITLE_LINK_TASKBOARD": "Перейти к Панели Задач \"{{name}}\"",
"NUMBER_SPRINTS": "<br/>спринты",
"EMPTY": "There are no sprints yet",
"WARNING_EMPTY_SPRINT": "Drop here Stories from your backlog to start a new sprint",
"EMPTY": "Спринтов пока что нет",
"WARNING_EMPTY_SPRINT": "Накидайте сюда ПИ из списка задач чтобы начать новый спринт",
"TITLE_ACTION_NEW_SPRINT": "Добавить новый спринт",
"TEXT_ACTION_NEW_SPRINT": "You may want to create a new sprint in your project",
"TEXT_ACTION_NEW_SPRINT": "Вы можете создать новый спринт в проекте",
"ACTION_SHOW_CLOSED_SPRINTS": "Показать закрытые спринты",
"ACTION_HIDE_CLOSED_SPRINTS": "Спрятать закрытые спринты"
}
@ -1037,7 +1037,7 @@
"TITLE_ACTION_ASSIGN": "Назначить задачу",
"TITLE_ACTION_EDIT": "Редактировать задачу",
"PLACEHOLDER_CARD_TITLE": "This could be a task",
"PLACEHOLDER_CARD_TEXT": "Split Stories into tasks to track them separately",
"PLACEHOLDER_CARD_TEXT": "Разделяйте ПИ в задачи чтобы отслеживать их по отдельности",
"TABLE": {
"COLUMN": "Пользовательская история",
"TITLE_ACTION_FOLD": "Свернуть колонку",
@ -1176,7 +1176,7 @@
},
"KANBAN": {
"PAGE_TITLE": "Kanban - {{projectName}}",
"PAGE_DESCRIPTION": "Панель kanban, с Историями от Пользователей для проекта {{projectName}}: {{projectDescription}}",
"PAGE_DESCRIPTION": "Панель kanban, с пользовательскими историями для проекта {{projectName}}: {{projectDescription}}",
"SECTION_NAME": "Kanban",
"TITLE_ACTION_FOLD": "Свернуть колонку",
"TITLE_ACTION_UNFOLD": "Развернуть колонку",
@ -1186,16 +1186,16 @@
"TITLE_ACTION_ADD_BULK": "Добавить пакетно",
"ACTION_SHOW_ARCHIVED": "Показать архивные",
"ACTION_HIDE_ARCHIVED": "Спрятать архив",
"HIDDEN_USER_STORIES": "Истории от Пользователей в этом статусе скрыты по умолчанию",
"HIDDEN_USER_STORIES": "Пользовательские истории в этом статусе скрыты по умолчанию",
"ARCHIVED": "Вы заархивировали",
"UNDO_ARCHIVED": "Для отмены надо перетащить и сбросить ещё раз",
"PLACEHOLDER_CARD_TITLE": "These are your User Stories",
"PLACEHOLDER_CARD_TEXT": "Stories might also have subtasks to separate requirements"
"PLACEHOLDER_CARD_TITLE": "Это - ваши Пользовательские Истории.",
"PLACEHOLDER_CARD_TEXT": "У ПИ также могут быть подзадачи чтобы можно было разделять требования"
},
"SEARCH": {
"PAGE_TITLE": "Поиск - {{projectName}}",
"PAGE_DESCRIPTION": "Ищите что угодно, пользовательские истории, задачи, запросы и вики-страницы, в проекте {{projectName}}: {{projectDescription}}",
"FILTER_USER_STORIES": "Истории от Пользователей",
"FILTER_USER_STORIES": "Пользовательские Истории",
"FILTER_ISSUES": "Запросы",
"FILTER_TASKS": "Задачи",
"FILTER_WIKI": "Вики страницы",
@ -1305,9 +1305,9 @@
"HINT1_TITLE": "Вы знали что можно импортировать и экспортировать проекты?",
"HINT1_TEXT": "Это позволяет вам собирать данные из одной Taiga и копировать в другую.",
"HINT2_TITLE": "Вы знали что можно создавать собственные поля?",
"HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.",
"HINT3_TITLE": "Reorder your projects to feature those most relevant to you.",
"HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.",
"HINT2_TEXT": "Теперь команды могут создавать специальные поля, чтобы гибко вводить данные, специфические для их рабочего процесса.",
"HINT3_TITLE": "Перестройте список своих проектов так, чтобы выделить самые важные для себя.",
"HINT3_TEXT": "Первые 10 проектов доступны из панели прямого доступа сверху.",
"HINT4_TITLE": "Вы забыли над чем работали?",
"HINT4_TEXT": "Не переживайте, на вашем рабочем столе вы найдёте ваши активные задачи, запросы и пользовательские истории в том порядке, в котором вы над ними работали."
},
@ -1316,7 +1316,7 @@
"US_CREATED": "{{username}} создал новую ПИ {{obj_name}} в {{project_name}}",
"ISSUE_CREATED": "{{username}} создал новый запрос {{obj_name}} в {{project_name}}",
"TASK_CREATED": "{{username}} создал новую задачу {{obj_name}} в {{project_name}}",
"TASK_CREATED_WITH_US": "{{username}} создал новую задачу {{obj_name}} в {{project_name}}, которая принадлежит Задаче от Пользователя {{us_name}}",
"TASK_CREATED_WITH_US": "{{username}} создал новую задачу {{obj_name}} в {{project_name}}, которая принадлежит ПИ {{us_name}}",
"WIKI_CREATED": "{{username}} создал новую вики-страницу {{obj_name}} в {{project_name}}",
"MILESTONE_CREATED": "{{username}} создал новый спринт {{obj_name}} в {{project_name}}",
"NEW_PROJECT": "{{username}} создал проект {{project_name}}",
@ -1343,7 +1343,7 @@
"NEW_USER": "{{username}} присоединился к Taiga"
},
"LEGAL": {
"TERMS_OF_SERVICE_AND_PRIVACY_POLICY_AD": "<span>By clicking \"Sign up\"', you agree to our <br /></span><a href=\"{{ termsOfServiceUrl }}\" title=\"See terms of service\" target=\"_blank\">terms of service</a><span> and </span><a href=\"{{ privacyPolicyUrl }}\" title=\"See privacy policy\" target=\"_blank\">privacy policy</a>."
"TERMS_OF_SERVICE_AND_PRIVACY_POLICY_AD": "<span>Кликая \"Зарегистрироваться\"', вы соглашаетесь с нашими<br /></span><a href=\"{{ termsOfServiceUrl }}\" title=\"Смотреть условия обслуживания\" target=\"_blank\">условиями обслуживания</a><span> и </span><a href=\"{{ privacyPolicyUrl }}\" title=\"Смотреть политику обработки персональных данных\" target=\"_blank\">политикой обработки персональных данных</a>."
},
"EXTERNAL_APP": {
"PAGE_TITLE": "Внешнее приложение требующие аутентификации",
@ -1357,11 +1357,11 @@
"DASHBOARD": {
"STEP1": {
"TITLE": "Ваш проект",
"TEXT": "Welcome! Here you will find the projects you are involved on."
"TEXT": "Добро пожаловать! Здесь вы найдете проекты, над которыми работаете."
},
"STEP2": {
"TITLE": "Работает над",
"TEXT": "Here you will find the User Stories, Tasks and Issues in which you are working on."
"TEXT": "Здесь вы найдете Пользовательские Истории, Задачи и Запросы, над которыми работаете."
},
"STEP3": {
"TITLE": "Отслеживаемое",
@ -1369,28 +1369,28 @@
"TEXT2": "You are already working with Taiga ;)"
},
"STEP4": {
"TITLE": "Lets start",
"TEXT1": "You can start by creating your first Taiga project.",
"TITLE": "Давайте начнём",
"TEXT1": "Вы можете начать, создав свой первый проект в Taiga.",
"TEXT2": "Удачи!"
}
},
"BACKLOG": {
"STEP1": {
"TITLE": "Содержание проекта",
"TEXT1": "Here you will see the state of your project.",
"TEXT2": "You can change every kind of project settings through the admin."
"TEXT1": "Здесь вы будете видеть состояние проекта.",
"TEXT2": "Вы можете изменять все настройки проекта в админке."
},
"STEP2": {
"TITLE": "Product backlog",
"TEXT": "The backlog is the list of requirements (User Stories) for the project. Here is where you will plan your sprints."
"TITLE": "Список задач проекта",
"TEXT": "Список задач - набор требований (Пользовательский Историй) к вашему проекту. Здесь вы можете планировать спринты."
},
"STEP3": {
"TITLE": "Спринты",
"TEXT": "Sprints are short periods of time (usually 2 weeks) during which specific work has to be completed and delivered."
"TEXT": "Спринты - это небольшие промежутки времени (обычно 2 недели), на протяжении которых конкретные задачи должны быть закончены и доставлены."
},
"STEP4": {
"TITLE": "Истории от Пользователей",
"TEXT": "Those are the requirements at high level. You can add them to the backlog and drag them to the sprint in which it should be delivered."
"TITLE": "Пользовательские Истории",
"TEXT": "Это высокоуровневые требования. Вы можете добавить их в список задач и перетащить в спринт, в который они должны быть реализованы."
}
},
"KANBAN": {
@ -1399,12 +1399,12 @@
"TEXT": "Set up the columns you need to map your workflow statuses through the admin."
},
"STEP2": {
"TITLE": "User Stories & Tasks",
"TEXT": "User Stories are the requirements at high level. You can drag them to different columns."
"TITLE": "Пользовательские Истории и Задачи",
"TEXT": "Пользовательские истории - это высокоуровневые требования. Вы можете перетаскивать их между колонками."
},
"STEP3": {
"TITLE": "Adding User Stories",
"TEXT1": "You may want to add a single User Story (add US icon) or a group of them (bulk icon)",
"TEXT1": "Вы можете добавить одну пользовательскую историю (кнопка \"добавить ПИ\") или сразу несколько (кнопка \"пакетное добавление\")",
"TEXT2": "Удачи!"
}
}

View File

@ -681,7 +681,7 @@
},
"PROFILE_SIDEBAR": {
"TITLE": "個人資訊",
"DESCRIPTION": "人們可以看到你做的成果以及其進度。加入一段描述介紹以強化你的資料。",
"DESCRIPTION": "People can see everything you do and what you are working on. Add a nice bio to give an enhanced version of your information.",
"ADD_INFO": "Edit bio"
},
"PROFILE_FAVS": {
@ -901,7 +901,7 @@
"DELETED_ATTACHMENT": "已刪除附件",
"UPDATED_ATTACHMENT": "更新附件 {{filename}}",
"DELETED_CUSTOM_ATTRIBUTE": "刪除客製屬性",
"SIZE_CHANGE": "使 {size, plural, one{change} 其它{changes}}",
"SIZE_CHANGE": "使 {size, plural, one{更改} other{變化}}",
"VALUES": {
"YES": "yes",
"NO": "no",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long