mirror of
				https://github.com/nitnelave/lldap.git
				synced 2023-04-12 14:25:13 +00:00 
			
		
		
		
	app: Disable the add user/group buttons when relevant
This commit is contained in:
		
							parent
							
								
									116f4c5eae
								
							
						
					
					
						commit
						2db7fb059d
					
				@ -110,11 +110,12 @@ impl AddGroupMemberComponent {
 | 
				
			|||||||
                self.props.on_user_added_to_group.emit(user);
 | 
					                self.props.on_user_added_to_group.emit(user);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            Msg::SelectionChanged(option_props) => {
 | 
					            Msg::SelectionChanged(option_props) => {
 | 
				
			||||||
 | 
					                let was_some = self.selected_user.is_some();
 | 
				
			||||||
                self.selected_user = option_props.map(|u| User {
 | 
					                self.selected_user = option_props.map(|u| User {
 | 
				
			||||||
                    id: u.value,
 | 
					                    id: u.value,
 | 
				
			||||||
                    display_name: u.text,
 | 
					                    display_name: u.text,
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
                return Ok(false);
 | 
					                return Ok(self.selected_user.is_some() != was_some);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        Ok(true)
 | 
					        Ok(true)
 | 
				
			||||||
@ -170,8 +171,8 @@ impl Component for AddGroupMemberComponent {
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
            html! {
 | 
					            html! {
 | 
				
			||||||
            <>
 | 
					            <div class="row">
 | 
				
			||||||
              <td>
 | 
					              <div class="col-sm-3">
 | 
				
			||||||
                <Select on_selection_change=self.link.callback(Msg::SelectionChanged)>
 | 
					                <Select on_selection_change=self.link.callback(Msg::SelectionChanged)>
 | 
				
			||||||
                  {
 | 
					                  {
 | 
				
			||||||
                    to_add_user_list
 | 
					                    to_add_user_list
 | 
				
			||||||
@ -180,22 +181,20 @@ impl Component for AddGroupMemberComponent {
 | 
				
			|||||||
                        .collect::<Vec<_>>()
 | 
					                        .collect::<Vec<_>>()
 | 
				
			||||||
                  }
 | 
					                  }
 | 
				
			||||||
                </Select>
 | 
					                </Select>
 | 
				
			||||||
              </td>
 | 
					              </div>
 | 
				
			||||||
                  <td>
 | 
					              <div class="col-sm-1">
 | 
				
			||||||
                    <button
 | 
					                <button
 | 
				
			||||||
                      class="btn btn-success"
 | 
					                  class="btn btn-success"
 | 
				
			||||||
                      onclick=self.link.callback(|_| Msg::SubmitAddMember)>
 | 
					                  disabled=self.selected_user.is_none()
 | 
				
			||||||
                      {"Add"}
 | 
					                  onclick=self.link.callback(|_| Msg::SubmitAddMember)>
 | 
				
			||||||
                    </button>
 | 
					                  {"Add"}
 | 
				
			||||||
                  </td>
 | 
					                </button>
 | 
				
			||||||
            </>
 | 
					              </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            html! {
 | 
					            html! {
 | 
				
			||||||
              <>
 | 
					              {"Loading groups"}
 | 
				
			||||||
                <td>{"Loading groups"}</td>
 | 
					 | 
				
			||||||
                <td></td>
 | 
					 | 
				
			||||||
              </>
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -124,11 +124,12 @@ impl AddUserToGroupComponent {
 | 
				
			|||||||
                self.props.on_user_added_to_group.emit(group);
 | 
					                self.props.on_user_added_to_group.emit(group);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            Msg::SelectionChanged(option_props) => {
 | 
					            Msg::SelectionChanged(option_props) => {
 | 
				
			||||||
 | 
					                let was_some = self.selected_group.is_some();
 | 
				
			||||||
                self.selected_group = option_props.map(|props| Group {
 | 
					                self.selected_group = option_props.map(|props| Group {
 | 
				
			||||||
                    id: props.value.parse::<i64>().unwrap(),
 | 
					                    id: props.value.parse::<i64>().unwrap(),
 | 
				
			||||||
                    display_name: props.text,
 | 
					                    display_name: props.text,
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
                return Ok(false);
 | 
					                return Ok(self.selected_group.is_some() != was_some);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        Ok(true)
 | 
					        Ok(true)
 | 
				
			||||||
@ -183,8 +184,8 @@ impl Component for AddUserToGroupComponent {
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
            html! {
 | 
					            html! {
 | 
				
			||||||
            <>
 | 
					            <div class="row">
 | 
				
			||||||
              <td>
 | 
					              <div class="col-sm-3">
 | 
				
			||||||
                <Select on_selection_change=self.link.callback(Msg::SelectionChanged)>
 | 
					                <Select on_selection_change=self.link.callback(Msg::SelectionChanged)>
 | 
				
			||||||
                  {
 | 
					                  {
 | 
				
			||||||
                    to_add_group_list
 | 
					                    to_add_group_list
 | 
				
			||||||
@ -193,22 +194,20 @@ impl Component for AddUserToGroupComponent {
 | 
				
			|||||||
                        .collect::<Vec<_>>()
 | 
					                        .collect::<Vec<_>>()
 | 
				
			||||||
                  }
 | 
					                  }
 | 
				
			||||||
                </Select>
 | 
					                </Select>
 | 
				
			||||||
              </td>
 | 
					              </div>
 | 
				
			||||||
                  <td>
 | 
					              <div class="col-sm-1">
 | 
				
			||||||
                    <button
 | 
					                <button
 | 
				
			||||||
                      class="btn btn-success"
 | 
					                  class="btn btn-success"
 | 
				
			||||||
                      onclick=self.link.callback(|_| Msg::SubmitAddGroup)>
 | 
					                  disabled=self.selected_group.is_none()
 | 
				
			||||||
                      {"Add"}
 | 
					                  onclick=self.link.callback(|_| Msg::SubmitAddGroup)>
 | 
				
			||||||
                    </button>
 | 
					                  {"Add"}
 | 
				
			||||||
                  </td>
 | 
					                </button>
 | 
				
			||||||
            </>
 | 
					              </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            html! {
 | 
					            html! {
 | 
				
			||||||
              <>
 | 
					              {"Loading groups"}
 | 
				
			||||||
                <td>{"Loading groups"}</td>
 | 
					 | 
				
			||||||
                <td></td>
 | 
					 | 
				
			||||||
              </>
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -131,36 +131,32 @@ impl GroupDetails {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        html! {
 | 
					        html! {
 | 
				
			||||||
        <div>
 | 
					          <div>
 | 
				
			||||||
          <h3>{"Members"}</h3>
 | 
					            <h3>{"Members"}</h3>
 | 
				
			||||||
          <div class="table-responsive">
 | 
					            <div class="table-responsive">
 | 
				
			||||||
            <table class="table table-striped">
 | 
					              <table class="table table-striped">
 | 
				
			||||||
              <thead>
 | 
					                <thead>
 | 
				
			||||||
                <tr key="headerRow">
 | 
					                  <tr key="headerRow">
 | 
				
			||||||
                  <th>{"User Id"}</th>
 | 
					                    <th>{"User Id"}</th>
 | 
				
			||||||
                  <th>{"Display name"}</th>
 | 
					                    <th>{"Display name"}</th>
 | 
				
			||||||
                  <th></th>
 | 
					                    <th></th>
 | 
				
			||||||
                </tr>
 | 
					                  </tr>
 | 
				
			||||||
              </thead>
 | 
					                </thead>
 | 
				
			||||||
              <tbody>
 | 
					                <tbody>
 | 
				
			||||||
                {if g.users.is_empty() {
 | 
					                  {if g.users.is_empty() {
 | 
				
			||||||
                  html! {
 | 
					                    html! {
 | 
				
			||||||
                    <tr key="EmptyRow">
 | 
					                      <tr key="EmptyRow">
 | 
				
			||||||
                      <td>{"No members"}</td>
 | 
					                        <td>{"No members"}</td>
 | 
				
			||||||
                      <td/>
 | 
					                        <td/>
 | 
				
			||||||
                    </tr>
 | 
					                      </tr>
 | 
				
			||||||
                  }
 | 
					                    }
 | 
				
			||||||
                } else {
 | 
					                  } else {
 | 
				
			||||||
                  html! {<>{g.users.iter().map(make_user_row).collect::<Vec<_>>()}</>}
 | 
					                    html! {<>{g.users.iter().map(make_user_row).collect::<Vec<_>>()}</>}
 | 
				
			||||||
                }}
 | 
					                  }}
 | 
				
			||||||
                <hr/>
 | 
					                </tbody>
 | 
				
			||||||
                <tr key="groupToAddRow">
 | 
					              </table>
 | 
				
			||||||
                  {self.view_add_user_button(g)}
 | 
					            </div>
 | 
				
			||||||
                </tr>
 | 
					 | 
				
			||||||
              </tbody>
 | 
					 | 
				
			||||||
            </table>
 | 
					 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -222,12 +218,8 @@ impl Component for GroupDetails {
 | 
				
			|||||||
            (Some(u), error) => {
 | 
					            (Some(u), error) => {
 | 
				
			||||||
                html! {
 | 
					                html! {
 | 
				
			||||||
                    <div>
 | 
					                    <div>
 | 
				
			||||||
                        /*
 | 
					 | 
				
			||||||
                      <GroupDetailsForm
 | 
					 | 
				
			||||||
                        user=u.clone()
 | 
					 | 
				
			||||||
                        on_error=self.link.callback(Msg::OnError)/>
 | 
					 | 
				
			||||||
                        */
 | 
					 | 
				
			||||||
                      {self.view_user_list(u)}
 | 
					                      {self.view_user_list(u)}
 | 
				
			||||||
 | 
					                      {self.view_add_user_button(u)}
 | 
				
			||||||
                      {self.view_messages(error)}
 | 
					                      {self.view_messages(error)}
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
				
			|||||||
@ -69,6 +69,7 @@ impl Component for Select {
 | 
				
			|||||||
        html! {
 | 
					        html! {
 | 
				
			||||||
            <select
 | 
					            <select
 | 
				
			||||||
              ref=self.node_ref.clone()
 | 
					              ref=self.node_ref.clone()
 | 
				
			||||||
 | 
					              disabled=self.props.children.is_empty()
 | 
				
			||||||
              onchange=self.link.callback(SelectMsg::OnSelectChange)>
 | 
					              onchange=self.link.callback(SelectMsg::OnSelectChange)>
 | 
				
			||||||
            { self.props.children.clone() }
 | 
					            { self.props.children.clone() }
 | 
				
			||||||
            </select>
 | 
					            </select>
 | 
				
			||||||
 | 
				
			|||||||
@ -153,10 +153,6 @@ impl UserDetails {
 | 
				
			|||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                  html! {<>{u.groups.iter().map(make_group_row).collect::<Vec<_>>()}</>}
 | 
					                  html! {<>{u.groups.iter().map(make_group_row).collect::<Vec<_>>()}</>}
 | 
				
			||||||
                }}
 | 
					                }}
 | 
				
			||||||
                <hr/>
 | 
					 | 
				
			||||||
                <tr key="groupToAddRow">
 | 
					 | 
				
			||||||
                  {self.view_add_group_button(u)}
 | 
					 | 
				
			||||||
                </tr>
 | 
					 | 
				
			||||||
              </tbody>
 | 
					              </tbody>
 | 
				
			||||||
            </table>
 | 
					            </table>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
@ -222,6 +218,7 @@ impl Component for UserDetails {
 | 
				
			|||||||
                        user=u.clone()
 | 
					                        user=u.clone()
 | 
				
			||||||
                        on_error=self.link.callback(Msg::OnError)/>
 | 
					                        on_error=self.link.callback(Msg::OnError)/>
 | 
				
			||||||
                      {self.view_group_memberships(u)}
 | 
					                      {self.view_group_memberships(u)}
 | 
				
			||||||
 | 
					                      {self.view_add_group_button(u)}
 | 
				
			||||||
                      <div>
 | 
					                      <div>
 | 
				
			||||||
                        <NavButton
 | 
					                        <NavButton
 | 
				
			||||||
                          route=AppRoute::ChangePassword(u.id.clone())
 | 
					                          route=AppRoute::ChangePassword(u.id.clone())
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user