fix #68 - confusing behavior on adding new member
parent
f35a6eaf0a
commit
08a03f73bf
|
@ -34,10 +34,10 @@ CreateMembersDirective = ($rs, $rootScope, $confirm, lightboxService) ->
|
|||
template = _.template("""
|
||||
<div class="add-member-wrapper">
|
||||
<fieldset>
|
||||
<input type="email" placeholder="Type an Email" data-required="true" data-type="email"/>
|
||||
<input type="email" placeholder="Type an Email" <% if(required) { %> data-required="true" <% } %> data-type="email" />
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<select data-required="true">
|
||||
<select <% if(required) { %> data-required="true" <% } %> data-required="true">
|
||||
<% _.each(roleList, function(role) { %>
|
||||
<option value="<%- role.id %>"><%- role.name %></option>
|
||||
<% }); %>
|
||||
|
@ -48,8 +48,8 @@ CreateMembersDirective = ($rs, $rootScope, $confirm, lightboxService) ->
|
|||
""") # i18n
|
||||
|
||||
link = ($scope, $el, $attrs) ->
|
||||
createFieldSet = ->
|
||||
ctx = {roleList: $scope.roles}
|
||||
createFieldSet = (required = true)->
|
||||
ctx = {roleList: $scope.roles, required: required}
|
||||
return template(ctx)
|
||||
|
||||
resetForm = ->
|
||||
|
@ -86,10 +86,11 @@ CreateMembersDirective = ($rs, $rootScope, $confirm, lightboxService) ->
|
|||
target.removeClass("icon-plus add-fieldset")
|
||||
.addClass("icon-delete delete-fieldset")
|
||||
|
||||
newFieldSet = createFieldSet()
|
||||
newFieldSet = createFieldSet(false)
|
||||
|
||||
fieldSet.after(newFieldSet)
|
||||
|
||||
if $el.find("fieldset").length == MAX_MEMBERSHIP_FIELDSETS
|
||||
if $el.find(".add-member-wrapper").length == MAX_MEMBERSHIP_FIELDSETS
|
||||
$el.find("fieldset:last > a").removeClass("icon-plus add-fieldset")
|
||||
.addClass("icon-delete delete-fieldset")
|
||||
|
||||
|
@ -107,19 +108,31 @@ CreateMembersDirective = ($rs, $rootScope, $confirm, lightboxService) ->
|
|||
$rootScope.$broadcast("membersform:new:error")
|
||||
|
||||
form = $el.find("form").checksley()
|
||||
|
||||
#checksley find new fields
|
||||
form.destroy()
|
||||
form.initialize()
|
||||
|
||||
if not form.validate()
|
||||
return
|
||||
|
||||
memberWrappers = $el.find("form > .add-member-wrapper")
|
||||
|
||||
memberWrappers = _.filter memberWrappers, (mw) ->
|
||||
angular.element(mw).find("input").hasClass('checksley-ok')
|
||||
|
||||
invitations = _.map memberWrappers, (mw) ->
|
||||
memberWrapper = angular.element(mw)
|
||||
email = memberWrapper.find("input")
|
||||
role = memberWrapper.find("select")
|
||||
|
||||
return {
|
||||
email: memberWrapper.find("input").val()
|
||||
role_id: memberWrapper.find("select").val()
|
||||
email: email.val()
|
||||
role_id: role.val()
|
||||
}
|
||||
|
||||
$rs.memberships.bulkCreateMemberships($scope.project.id, invitations).then(onSuccess, onError)
|
||||
if invitations.length
|
||||
$rs.memberships.bulkCreateMemberships($scope.project.id, invitations).then(onSuccess, onError)
|
||||
|
||||
return {link: link}
|
||||
|
||||
|
|
|
@ -227,6 +227,12 @@
|
|||
}
|
||||
.checksley-error-list {
|
||||
right: .5rem;
|
||||
li {
|
||||
display: none;
|
||||
&:first-child {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue