@@ -84,6 +84,7 @@ type alias Model =
84
84
, cardHover : String
85
85
, cardEdit : String
86
86
, colEdit : String
87
+ , isProjectAdmin : Bool
87
88
88
89
-- Components
89
90
, projectColumnModal : ProjectColumnModal . State
@@ -128,6 +129,7 @@ initModel projectid focus user =
128
129
, cardHover = " "
129
130
, cardEdit = " "
130
131
, colEdit = " "
132
+ , isProjectAdmin = False
131
133
132
134
-- Components
133
135
, projectColumnModal = ProjectColumnModal . init projectid user
@@ -179,6 +181,7 @@ type Msg
179
181
| FitBoard ( Result Dom . Error Dom . Element )
180
182
| ScrollToElement String
181
183
| OnClearBoardResult
184
+ | OnSetIsAdmin Bool
182
185
-- Move Column
183
186
| OnMoveColumn ProjectColumn
184
187
| OnMoveColumnEnd
@@ -301,6 +304,9 @@ update_ apis message model =
301
304
OnClearBoardResult ->
302
305
( { model | board_result = NotAsked }, noOut )
303
306
307
+ OnSetIsAdmin isAdmin ->
308
+ ( { model | isProjectAdmin = isAdmin }, noOut )
309
+
304
310
-- Move Columns
305
311
OnMoveColumn col ->
306
312
if col. col_type == ProjectColumnType . NoStatusColumn then
@@ -873,7 +879,7 @@ viewBoard op model =
873
879
-- @debug: allow move card in empty collumn
874
880
, onDragEnter <| OnMoveEnterT { pos = 0 , cardid = unwrap " " . id c1, colid = colid }
875
881
]
876
- [ viewHeader ( model. colEdit == colid) col ]
882
+ [ viewHeader model . isProjectAdmin ( model. colEdit == colid) col ]
877
883
, col. cards
878
884
-- |> List.sortBy .createdAt
879
885
-- |> (\l -> ternary (model.sortFilter == defaultSortFilter) l (List.reverse l))
@@ -908,10 +914,10 @@ viewBoard op model =
908
914
( case card. card of
909
915
CardTension t ->
910
916
-- Does lazy will work with function in argment?
911
- [ Lazy . lazy5 viewMediaTension card. id ( card. id == model. cardHover) ( card. id == model. cardEdit) model. node_focus t ]
917
+ [ Lazy . lazy5 viewMediaTension card. id ( card. id == model. cardHover && model . isProjectAdmin ) ( card. id == model. cardEdit) model. node_focus t ]
912
918
913
919
CardDraft d ->
914
- [ Lazy . lazy4 viewMediaDraft card. id ( card. id == model. cardHover) ( card. id == model. cardEdit) d ]
920
+ [ Lazy . lazy4 viewMediaDraft card. id ( card. id == model. cardHover && model . isProjectAdmin ) ( card. id == model. cardEdit) d ]
915
921
)
916
922
]
917
923
)
@@ -972,7 +978,7 @@ viewBoard op model =
972
978
|> List . concat
973
979
|> ( \ x ->
974
980
-- View New Col Button
975
- if model. hasNewCol then
981
+ if model. hasNewCol && model . isProjectAdmin then
976
982
x ++ [ viewNewCol ]
977
983
978
984
else
@@ -991,19 +997,23 @@ viewBoard op model =
991
997
]
992
998
993
999
994
- viewHeader : Bool -> ProjectColumn -> Html Msg
995
- viewHeader isEdited col =
1000
+ viewHeader : Bool -> Bool -> ProjectColumn -> Html Msg
1001
+ viewHeader isAdmin isEdited col =
996
1002
span []
997
1003
[ div [ class " level" ]
998
1004
[ div [ class " level-left ml-3" , attribute " style" " cursor:default !important;" ]
999
1005
[ span [ class " mr-3" , style " color" ( withDefault " lightgrey" col. color) ] [ A . icon " icon-circle1 icon-lg" ], text col. name ]
1000
1006
, span [ class " level-right" ]
1001
- [ span
1002
- [ class " tag is-rounded-light button-light is-w has-border mx-1"
1003
- , onClick ( OnAddDraft col. id)
1004
- ]
1005
- [ A . icon " icon-plus" ]
1006
- , if col. col_type /= ProjectColumnType . NoStatusColumn then
1007
+ [ if isAdmin then
1008
+ span
1009
+ [ class " tag is-rounded-light button-light is-w has-border mx-1"
1010
+ , onClick ( OnAddDraft col. id)
1011
+ ]
1012
+ [ A . icon " icon-plus" ]
1013
+
1014
+ else
1015
+ text " "
1016
+ , if col. col_type /= ProjectColumnType . NoStatusColumn && isAdmin then
1007
1017
B . dropdownLight
1008
1018
" col-ellipsis"
1009
1019
( " mx-2 is-align-self-baseline is-right " ++ ternary isEdited " is-active" " " )
0 commit comments