diff --git a/app/coffee/app.coffee b/app/coffee/app.coffee index 8443c039..e50a2f8d 100644 --- a/app/coffee/app.coffee +++ b/app/coffee/app.coffee @@ -385,6 +385,12 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEven section: "admin" } ) + $routeProvider.when("/project/:pslug/admin/project-values/due-dates", + { + templateUrl: "admin/admin-project-values-due-dates.html", + section: "admin" + } + ) $routeProvider.when("/project/:pslug/admin/memberships", { templateUrl: "admin/admin-memberships.html", diff --git a/app/coffee/modules/base.coffee b/app/coffee/modules/base.coffee index c1cde42c..9105fa45 100644 --- a/app/coffee/modules/base.coffee +++ b/app/coffee/modules/base.coffee @@ -109,6 +109,7 @@ urls = { "project-admin-project-values-types": "/project/:project/admin/project-values/types" "project-admin-project-values-custom-fields": "/project/:project/admin/project-values/custom-fields" "project-admin-project-values-tags": "/project/:project/admin/project-values/tags" + "project-admin-project-values-due-dates": "/project/:project/admin/project-values/due-dates" "project-admin-memberships": "/project/:project/admin/memberships" "project-admin-roles": "/project/:project/admin/roles" diff --git a/app/coffee/modules/resources.coffee b/app/coffee/modules/resources.coffee index f596ef76..1696e79b 100644 --- a/app/coffee/modules/resources.coffee +++ b/app/coffee/modules/resources.coffee @@ -85,9 +85,12 @@ urls = { # Project Values - Choises "epic-statuses": "/epic-statuses" "userstory-statuses": "/userstory-statuses" + "userstory-due-date-statuses": "/userstory-duedates" "points": "/points" "task-statuses": "/task-statuses" + "task-due-date-statuses": "/task-due-date-statuses" "issue-statuses": "/issue-statuses" + "issue-due-date-statuses": "/issue-due-date-statuses" "issue-types": "/issue-types" "priorities": "/priorities" "severities": "/severities" diff --git a/app/coffee/modules/resources/userstories.coffee b/app/coffee/modules/resources/userstories.coffee index 5e6ed6df..dd80a37a 100644 --- a/app/coffee/modules/resources/userstories.coffee +++ b/app/coffee/modules/resources/userstories.coffee @@ -115,6 +115,7 @@ resourceProvider = ($repo, $http, $urls, $storage, $q) -> service.listValues = (projectId, type) -> params = {"project": projectId} service.storeQueryParams(projectId, params) + console.log type return $repo.queryMany(type, params) service.storeQueryParams = (projectId, params) -> diff --git a/app/locales/taiga/locale-en.json b/app/locales/taiga/locale-en.json index 098efd77..0e98986d 100644 --- a/app/locales/taiga/locale-en.json +++ b/app/locales/taiga/locale-en.json @@ -619,6 +619,13 @@ "MIXING_MERGE": "Merge Tags", "SELECTED": "Selected" }, + "PROJECT_DUE_DATE_STATUS": { + "TITLE": "Due dates statuses", + "SUBTITLE": "Specify the due date statuses your user stories, tasks and issues will go through", + "US_TITLE": "User Story Due Date Statuses", + "TASK_TITLE": "Task Due Date Statuses", + "ISSUE_TITLE": "Issue Due Date Statuses" + }, "ROLES": { "PAGE_TITLE": "Roles - {{projectName}}", "WARNING_NO_ROLE": "Be careful, no role in your project will be able to estimate the point value for user stories", @@ -745,7 +752,8 @@ "SEVERITIES": "Severities", "TYPES": "Types", "CUSTOM_FIELDS": "Custom fields", - "TAGS": "Tags" + "TAGS": "Tags", + "DUE_DATES": "Due dates" }, "SUBMENU_ROLES": { "TITLE": "Roles", diff --git a/app/partials/admin/admin-project-values-due-dates.jade b/app/partials/admin/admin-project-values-due-dates.jade new file mode 100644 index 00000000..4d99fdf2 --- /dev/null +++ b/app/partials/admin/admin-project-values-due-dates.jade @@ -0,0 +1,34 @@ +doctype html + +div.wrapper(ng-controller="ProjectValuesSectionController", + ng-init="sectionName='ADMIN.PROJECT_DUE_DATE_STATUS.TITLE'") + + tg-project-menu + + sidebar.menu-secondary.sidebar.settings-nav(tg-admin-navigation="project-values") + include ../includes/modules/admin-menu + + sidebar.menu-tertiary.sidebar(tg-admin-navigation="values-due-dates") + include ../includes/modules/admin-submenu-project-values + + section.main.admin-common.admin-attributes + include ../includes/components/mainTitle + p.admin-subtitle(translate="ADMIN.PROJECT_DUE_DATE_STATUS.SUBTITLE") + + div.admin-attributes-section(tg-project-values, type="userstory-due-date-statuses", + ng-controller="ProjectValuesController as ctrl", + ng-init="section='admin'; resource='userstories'; type='userstory-due-date-statuses'; sectionName='ADMIN.PROJECT_DUE_DATE_STATUS.US_TITLE'", + objName="status") + include ../includes/modules/admin/project-due-date-status + + div.admin-attributes-section(tg-project-values, type="task-due-date-statuses", + ng-controller="ProjectValuesController as ctrl", + ng-init="section='admin'; resource='tasks'; type='task-due-date-statuses'; sectionName='ADMIN.PROJECT_DUE_DATE_STATUS.TASK_TITLE'" + objName="status") + include ../includes/modules/admin/project-due-date-status + + div.admin-attributes-section(tg-project-values, type="issue-due-date-statuses", + ng-controller="ProjectValuesController as ctrl", + ng-init="section='admin'; resource='issues'; type='issue-due-date-statuses'; sectionName='ADMIN.PROJECT_DUE_DATE_STATUS.ISSUE_TITLE'", + objName="status") + include ../includes/modules/admin/project-due-date-status diff --git a/app/partials/includes/modules/admin-submenu-project-values.jade b/app/partials/includes/modules/admin-submenu-project-values.jade index bd0c71c3..e8c5352c 100644 --- a/app/partials/includes/modules/admin-submenu-project-values.jade +++ b/app/partials/includes/modules/admin-submenu-project-values.jade @@ -28,3 +28,7 @@ section.admin-submenu li#adminmenu-values-tags a(href="", tg-nav="project-admin-project-values-tags:project=project.slug") span.title(translate="ADMIN.SUBMENU_PROJECT_VALUES.TAGS") + + li#adminmenu-values-due-dates + a(href="", tg-nav="project-admin-project-values-due-dates:project=project.slug") + span.title(translate="ADMIN.SUBMENU_PROJECT_VALUES.DUE_DATES") \ No newline at end of file diff --git a/app/partials/includes/modules/admin/project-due-date-status.jade b/app/partials/includes/modules/admin/project-due-date-status.jade new file mode 100644 index 00000000..a31b1235 --- /dev/null +++ b/app/partials/includes/modules/admin/project-due-date-status.jade @@ -0,0 +1,100 @@ +section.colors-table.admin-status-table + div.project-values-title + h2 {{ sectionName | translate }} + a.button.button-gray.show-add-new(href="", title="{{'ADMIN.US_STATUS.ACTION_ADD_STATUS' | translate}}") + span(translate="ADMIN.US_STATUS.ACTION_ADD_STATUS") + + div.table-header + div.row + div.color-column(translate="COMMON.FIELDS.COLOR") + div.status-name(translate="COMMON.FIELDS.NAME") + div.status-slug(translate="COMMON.FIELDS.SLUG") + div.thresold-column(translate="COMMON.FIELDS.THRESHOLD") + div.options-column + + div.table-main + div.sortable + div(ng-repeat="value in values", tg-bind-scope) + form(tg-bind-scope) + div.row.table-main.visualization + tg-svg(svg-icon="icon-drag") + div.color-column + div.current-color(ng-style="{background: value.color}") + + div.status-name + span {{ value.name }} + + div.status-slug + span {{ value.slug }} + + div.is-closed-column + span {{ value.days_to_due }} + + div.options-column + a.edit-value(href="") + tg-svg( + title="{{'ADMIN.COMMON.TITLE_ACTION_EDIT_VALUE' | translate}}", + svg-icon="icon-edit" + ) + a.delete-value(href="") + tg-svg( + title="{{'ADMIN.COMMON.TITLE_ACTION_DELETE_VALUE' | translate}}" + svg-icon="icon-trash" + ) + + div.row.table-main.edition.hidden + div.color-column( + tg-color-selection + ng-model="value" + ) + div.current-color(ng-style="{background: value.color}") + include ../../components/select-color + + div.status-name + input( + name="name" + type="text" + placeholder="{{'ADMIN.STATUS.PLACEHOLDER_WRITE_STATUS_NAME' | translate}}" + ng-model="value.name" + data-required="true" + data-maxlength="255" + ) + + div.thresold-column + input(type="number", name="days_to_due", ng-model="value.days_to_due") + + div.options-column + a.save.e2e-save(href="", title="{{'COMMON.SAVE' | translate}}") + tg-svg(svg-icon="icon-save") + + a.cancel(href="", title="{{'COMMON.CANCEL' | translate}}") + tg-svg.cancel(svg-icon="icon-close") + + form + div.row.table-main.new-value.hidden + div.color-column( + tg-color-selection + ng-model="newValue" + ) + div.current-color(ng-style="{background: newValue.color}") + include ../../components/select-color + + div.status-name + input( + name="name" + type="text" + placeholder="{{'ADMIN.STATUS.PLACEHOLDER_WRITE_STATUS_NAME' | translate}}" + ng-model="newValue.name" + data-required="true" + data-maxlength="255" + ) + + div.thresold-column + input(type="number") + + div.options-column + a.add-new.e2e-save(href="", title="{{'COMMON.ADD' | translate}}") + tg-svg(svg-icon="icon-save") + + a.delete-new(href="", title="{{'COMMON.CANCEL' | translate}}") + tg-svg(svg-icon="icon-close")