@@ -19,31 +19,64 @@ app.views.AspectMembership = app.views.Base.extend({
19
19
"click ul.aspect_membership.dropdown-menu > li.aspect_selector"
20
20
: "_clickHandler" ,
21
21
"keypress ul.aspect_membership.dropdown-menu > li.aspect_selector"
22
- : "_clickHandler"
22
+ : "_clickHandler" ,
23
+ "click #unblock_user_button" : function ( ) {
24
+ this . unblockPerson ( ) ;
25
+ this . reload ( ) ;
26
+ } ,
23
27
} ,
24
28
29
+
25
30
initialize : function ( opts ) {
26
31
_ . extend ( this , opts ) ;
27
32
this . list_item = null ;
28
33
this . dropdown = null ;
29
34
} ,
30
35
31
36
presenter : function ( ) {
32
- var aspectMembershipsLength = this . person . contact ? this . person . contact . aspectMemberships . length : 0 ;
33
-
34
37
return _ . extend ( this . defaultPresenter ( ) , {
35
38
aspects : this . aspectsPresenter ( ) ,
36
39
dropdownMayCreateNewAspect : this . dropdownMayCreateNewAspect
37
- } , aspectMembershipsLength === 0 ? {
38
- extraButtonClass : "btn-default" ,
39
- noAspectIsSelected : true
40
- } : { // this.contact.aspectMemberships.length > 0
41
- aspectMembershipsLength : aspectMembershipsLength ,
42
- allAspectsAreSelected : aspectMembershipsLength === app . aspects . length ,
43
- onlyOneAspectIsSelected : aspectMembershipsLength === 1 ,
44
- firstMembershipName : this . person . contact . aspectMemberships . at ( 0 ) . get ( "aspect" ) . name ,
45
- extraButtonClass : "btn-success"
40
+ } , this . dropdownContext ( this . person ) ) ;
41
+ } ,
42
+
43
+ reload : function ( ) {
44
+ this . person . set ( "block" , null ) ;
45
+ this . render ( ) ;
46
+ return false ;
47
+ } ,
48
+
49
+ dropdownContext : function f ( person ) {
50
+ var aspectMembershipsLength = this . person . contact ? this . person . contact . aspectMemberships . length : 0 ;
51
+ var contactBlocked = this . person . get ( "block" ) ;
52
+
53
+ if ( contactBlocked ) {
54
+ return {
55
+ extraButtonClass : "btn-danger" ,
56
+ contactBlocked : true ,
57
+ }
58
+ } else if ( aspectMembershipsLength === 0 ) {
59
+ return {
60
+ extraButtonClass : "btn-default" ,
61
+ noAspectIsSelected : true ,
62
+ }
63
+ } else {
64
+ return {
65
+ aspectMembershipsLength : aspectMembershipsLength ,
66
+ allAspectsAreSelected : aspectMembershipsLength === app . aspects . length ,
67
+ onlyOneAspectIsSelected : aspectMembershipsLength === 1 ,
68
+ firstMembershipName : this . person . contact . aspectMemberships . at ( 0 ) . get ( "aspect" ) . name ,
69
+ extraButtonClass : "btn-success"
70
+ }
71
+ }
72
+ } ,
73
+
74
+ unblockPerson : function ( ) {
75
+ var block = this . person . unblock ( ) ;
76
+ block . fail ( function ( ) {
77
+ app . flashMessages . error ( Diaspora . I18 . t ( "unblock_failed" ) ) ;
46
78
} ) ;
79
+ return false ;
47
80
} ,
48
81
49
82
aspectsPresenter : function ( ) {
0 commit comments