Adding project features to admin

stable
Alejandro Alonso 2014-07-21 11:52:38 +02:00
parent c5d65acc1a
commit 92f501d519
6 changed files with 70 additions and 30 deletions

View File

@ -54,6 +54,9 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide,
$routeProvider.when("/project/:pslug/admin/project-profile/details",
{templateUrl: "/partials/admin-project-profile.html"})
$routeProvider.when("/project/:pslug/admin/project-profile/features",
{templateUrl: "/partials/admin-project-features.html"})
# Auth
$routeProvider.when("/login", {templateUrl: "/partials/login.html"})
$routeProvider.when("/register", {templateUrl: "/partials/register.html"})

View File

@ -78,11 +78,7 @@ module.controller("ProjectProfileController", ProjectProfileController)
ProjectProfileDirective = ($log, $repo, $confirm) ->
link = ($scope, $el, $attrs) ->
$log.info "ProjectProfileDirective:link"
form = $el.find("form").checksley()
console.log form, $el.find("form")
submit = =>
return if not form.validate()
@ -96,14 +92,53 @@ ProjectProfileDirective = ($log, $repo, $confirm) ->
$el.on "submit", "form", (event) ->
event.preventDefault()
$log.error "ProjectProfileDirective:submit"
submit()
$el.on "click", "form a.button-green", (event) ->
event.preventDefault()
$log.error "ProjectProfileDirective:submit a button"
submit()
return {link:link}
#############################################################################
## Project Features Directive
#############################################################################
ProjectFeaturesDirective = ($log, $repo, $confirm) ->
link = ($scope, $el, $attrs) ->
form = $el.find("form").checksley()
submit = =>
return if not form.validate()
promise = $repo.save($scope.project)
promise.then ->
$confirm.notify("success")
promise.then null, (data) ->
console.log "FAIL"
# TODO
$el.on "submit", "form", (event) ->
event.preventDefault()
submit()
$el.on "click", "form a.button-green", (event) ->
event.preventDefault()
submit()
$scope.$watch "isVideoconferenceActivated", (isVideoconferenceActivated) ->
if isVideoconferenceActivated
$el.find(".videoconference-attributes").show()
else
$el.find(".videoconference-attributes").hide()
$scope.project.videoconferences = null
$scope.project.videoconferences_salt = ""
$scope.$watch "project", (project) ->
if project.videoconferences?
$scope.isVideoconferenceActivated = true
return {link:link}
module.directive("tgProjectProfile", ["$log", "$tgRepo", "$tgConfirm", ProjectProfileDirective])
module.directive("tgProjectFeatures", ["$log", "$tgRepo", "$tgConfirm", ProjectFeaturesDirective])

View File

@ -68,6 +68,7 @@ urls = {
# Admin
"project-admin-home": "/project/:project/admin/project-profile/details",
"project-admin-project-profile-details": "/project/:project/admin/project-profile/details"
"project-admin-project-profile-features": "/project/:project/admin/project-profile/features"
}
init = ($log, $navurls) ->

View File

@ -1,63 +1,64 @@
extends layout
extends dummy-layout
block head
title Taiga Project management web application with scrum in mind!
block content
div.wrapper
sidebar.menu-secondary.sidebar
div.wrapper(tg-project-features, ng-controller="ProjectProfileController as ctrl",
ng-init="section='admin'")
sidebar.menu-secondary.sidebar(tg-admin-navigation="project-profile")
include views/modules/admin-menu
sidebar.menu-tertiary.sidebar
include views/modules/admin-submenu
sidebar.menu-tertiary.sidebar(tg-admin-navigation="features")
include views/modules/admin-submenu-project-profile
section.main.admin-functionalities
header
include views/components/mainTitle
section
div.functionality
form
div.functionality(ng-class="{true:'active', false:''}[project.is_backlog_activated]")
input(type="checkbox", style="width:40px; height: 40px;", ng-model="project.is_backlog_activated")
div.icon.icon-backlog
div.desc
p
span Backlog
| Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean sagittis quam augue, quis bibendum lectus porta eget. Nunc dictum imperdiet venenatis. Curabitur vitae augue ut est rhoncus pellentesque. Nunc sed ultricies est, tincidunt euismod nunc. Nunc nec posuere metus.
div.functionality.active
div.functionality(ng-class="{true:'active', false:''}[project.is_kanban_activated]")
input(type="checkbox", style="width:40px; height: 40px;", ng-model="project.is_kanban_activated")
div.icon.icon-kanban
div.desc
p
span Kanban
| Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean sagittis quam augue, quis bibendum lectus porta eget. Nunc dictum imperdiet venenatis. Curabitur vitae augue ut est rhoncus pellentesque. Nunc sed ultricies est, tincidunt euismod nunc. Nunc nec posuere metus.
div.functionality
div.functionality(ng-class="{true:'active', false:''}[project.is_issues_activated]")
input(type="checkbox", style="width:40px; height: 40px;", ng-model="project.is_issues_activated")
div.icon.icon-issues
div.desc
p
span Issues
| Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean sagittis quam augue, quis bibendum lectus porta eget. Nunc dictum imperdiet venenatis. Curabitur vitae augue ut est rhoncus pellentesque. Nunc sed ultricies est, tincidunt euismod nunc. Nunc nec posuere metus.
div.functionality.active
div.functionality(ng-class="{true:'active', false:''}[project.is_wiki_activated]")
input(type="checkbox", style="width:40px; height: 40px;", ng-model="project.is_wiki_activated")
div.icon.icon-wiki
div.desc
p
span Wiki
| Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean sagittis quam augue, quis bibendum lectus porta eget. Nunc dictum imperdiet venenatis. Curabitur vitae augue ut est rhoncus pellentesque. Nunc sed ultricies est, tincidunt euismod nunc. Nunc nec posuere metus.
div.functionality.active
div.functionality(ng-class="{true:'active', false:''}[isVideoconferenceActivated]")
input(type="checkbox", style="width:40px; height: 40px;", ng-model="isVideoconferenceActivated")
div.icon.icon-video
div.desc
p
span Video
| Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean sagittis quam augue, quis bibendum lectus porta eget. Nunc dictum imperdiet venenatis. Curabitur vitae augue ut est rhoncus pellentesque. Nunc sed ultricies est, tincidunt euismod nunc. Nunc nec posuere metus.
select
option Option 1
option Option 2
option Option 3
option Option 4
select
option Option 1
option Option 2
option Option 3
option Option 4
div.videoconference-attributes.hidden
select(ng-model="project.videoconferences", ng-options="e.id as e.name for e in [{'id':'appear-in', 'name':'AppearIn'},{'id':'talky', 'name': 'Talky'}]")
input(ng-model="project.videoconferences_salt", placeholder="write a name for the chat room (ej. the name of the project)")
input(type="submit", class="hidden")
a.button.button-green(href="") Save

View File

@ -13,6 +13,6 @@ section.admin-submenu
span.title Default Values
span.icon.icon-arrow-right
li#adminmenu-features
a(href="")
a(href="", tg-nav="project-admin-project-profile-features:project=project.slug")
span.title Features
span.icon.icon-arrow-right