private void addButtons()

in src/main/java/org/apache/directory/fortress/web/panel/UserDetailPanel.java [327:1155]


        private void addButtons()
        {
            add( addPB = new SecureIndicatingAjaxButton( GlobalIds.ADD, GlobalIds.ADMIN_MGR, GlobalIds.ADD_USER )
            {
                /** Default serialVersionUID */
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    LOG.debug( ".onSubmit Add" );
                    User user = ( User ) getForm().getModel().getObject();
                    updateEntityWithComboData( user );
                    try
                    {
                        adminMgr.addUser( user );
                        SaveModelEvent.send( getPage(), this, user, target, SaveModelEvent.Operations.ADD );
                        component = editForm;
                        String msg = "User: " + user.getUserId() + " has been added";
                        display.setMessage( msg );
                        initAccordionLabels( user );
                    }
                    catch ( org.apache.directory.fortress.core.SecurityException se )
                    {
                        String error = ".onSubmit caught SecurityException=" + se;
                        LOG.error( error );
                        display.setMessage( error );
                        display.display();
                    }
                }

                @Override
                public void onError( AjaxRequestTarget target )
                {
                    LOG.info( "UserDetailPanel.add.onError" );
                    target.add();
                }


                @Override
                protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
                {
                    super.updateAjaxAttributes( attributes );
                    AjaxCallListener ajaxCallListener = new AjaxCallListener()
                    {
                        /** Default serialVersionUID */
                        private static final long serialVersionUID = 1L;


                        @Override
                        public CharSequence getFailureHandler( Component component )
                        {
                            return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
                        }
                    };
                    attributes.getAjaxCallListeners().add( ajaxCallListener );
                }
            } );
            add( new SecureIndicatingAjaxButton( GlobalIds.COMMIT, GlobalIds.ADMIN_MGR, GlobalIds.UPDATE_USER )
            {
                /** Default serialVersionUID */
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    LOG.debug( ".onSubmit commit" );
                    User user = ( User ) getForm().getModel().getObject();
                    // todo: fix this, going from string to char back to string (in ldap)?
/*
                    if ( pswdField != null )
                    {
                        user.setPassword( pswdField.toCharArray() );
                    }
                    else
                    {
                        user.setPassword( "".toCharArray() );
                    }
*/
                    updateEntityWithComboData( user );
                    try
                    {
                        adminMgr.updateUser( user );
                        editForm.setOutputMarkupId( true );
                        component = editForm;
                        String msg = "User: " + user.getUserId() + " has been updated";
                        display.setMessage( msg );
                        initAccordionLabels( user );
                        initSelectionModels();
                        SaveModelEvent.send( getPage(), this, user, target, SaveModelEvent.Operations.UPDATE );
                    }
                    catch ( org.apache.directory.fortress.core.SecurityException se )
                    {
                        String error = "commit caught SecurityException=" + se;
                        LOG.error( error );
                        display.setMessage( error );
                        display.display();
                    }
                }

                @Override
                public void onError( AjaxRequestTarget target )
                {
                    LOG.warn( "UserDetailPanel.commit.onError" );
                }

                @Override
                protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
                {
                    super.updateAjaxAttributes( attributes );
                    AjaxCallListener ajaxCallListener = new AjaxCallListener()
                    {
                        /** Default serialVersionUID */
                        private static final long serialVersionUID = 1L;


                        @Override
                        public CharSequence getFailureHandler( Component component )
                        {
                            return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
                        }
                    };
                    attributes.getAjaxCallListeners().add( ajaxCallListener );
                }
            } );
            add( new SecureIndicatingAjaxButton( GlobalIds.DELETE, GlobalIds.ADMIN_MGR, GlobalIds.DELETE_USER )
            {
                /** Default serialVersionUID */
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    LOG.debug( ".onSubmit Commit" );
                    User user = ( User ) getForm().getModel().getObject();
                    try
                    {
                        adminMgr.deleteUser( user );
                        clearDetailPanel();
                        String msg = "User: " + user.getUserId() + " has been deleted";
                        display.setMessage( msg );
                        SaveModelEvent.send( getPage(), this, user, target, SaveModelEvent.Operations.DELETE );
                    }
                    catch ( org.apache.directory.fortress.core.SecurityException se )
                    {
                        String error = ".onSubmit caught SecurityException=" + se;
                        LOG.error( error );
                        display.setMessage( error );
                    }
                }

                @Override
                public void onError( AjaxRequestTarget target )
                {
                    LOG.warn( "UserDetailPanel.delete.onError" );
                }

                @Override
                protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
                {
                    super.updateAjaxAttributes( attributes );
                    AjaxCallListener ajaxCallListener = new AjaxCallListener()
                    {
                        /** Default serialVersionUID */
                        private static final long serialVersionUID = 1L;


                        @Override
                        public CharSequence getFailureHandler( Component component )
                        {
                            return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
                        }
                    };
                    attributes.getAjaxCallListeners().add( ajaxCallListener );
                }
            } );
            add( new AjaxSubmitLink( GlobalIds.CANCEL )
            {
                /** Default serialVersionUID */
                private static final long serialVersionUID = 1L;

                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    clearDetailPanel();
                    String msg = "User cancelled input form";
                    display.setMessage( msg );
                }

                @Override
                public void onError( AjaxRequestTarget target )
                {
                    LOG.warn( "UserDetailPanel.cancel.onError" );
                }

                @Override
                protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
                {
                    super.updateAjaxAttributes( attributes );
                    AjaxCallListener ajaxCallListener = new AjaxCallListener()
                    {
                        /** Default serialVersionUID */
                        private static final long serialVersionUID = 1L;


                        @Override
                        public CharSequence getFailureHandler( Component component )
                        {
                            return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
                        }
                    };
                    attributes.getAjaxCallListeners().add( ajaxCallListener );
                }
            } );
            add( new AjaxSubmitLink( "save" )
            {
                /** Default serialVersionUID */
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    FileUpload fileUpload = upload.getFileUpload();
                    LOG.debug( ".onSubmit Save" );
                    User user = ( User ) getForm().getModel().getObject();
                    user.setJpegPhoto( fileUpload.getBytes() );
                    component = editForm;
                    String msg = "User: " + user.getUserId() + " photo uploaded successfully.  Must commit for photo " +
                        "to be persisted on record.";
                    display.setMessage( msg );
                    initAccordionLabels( user );
                }

                @Override
                public void onError( AjaxRequestTarget target )
                {
                    LOG.warn( "save.onError" );
                }

                @Override
                protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
                {
                    super.updateAjaxAttributes( attributes );
                    AjaxCallListener ajaxCallListener = new AjaxCallListener()
                    {
                        /** Default serialVersionUID */
                        private static final long serialVersionUID = 1L;


                        @Override
                        public CharSequence getFailureHandler( Component component )
                        {
                            return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
                        }
                    };
                    attributes.getAjaxCallListeners().add( ajaxCallListener );
                }
            } );
            Label lockBtnLbl = new Label( "lockLabel", new PropertyModel<String>( this, "lockLabel" ) );
            SecureIndicatingAjaxButton lock = new SecureIndicatingAjaxButton( "lockbtn", GlobalIds.ADMIN_MGR,
                "lockUserAccount" )
            {
                /** Default serialVersionUID */
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    User user = ( User ) getForm().getModel().getObject();
                    String msg = "User: " + user.getUserId();
                    try
                    {
                        if ( user.isLocked() )
                        {
                            adminMgr.unlockUserAccount( user );
                            user.setLocked( false );
                            msg += " account has been unlocked";
                        }
                        else
                        {
                            adminMgr.lockUserAccount( user );
                            user.setLocked( true );
                            msg += " account has been locked";
                        }
                        display.setMessage( msg );
                    }
                    catch ( org.apache.directory.fortress.core.SecurityException se )
                    {
                        String error = ".onSubmit caught SecurityException=" + se;
                        LOG.error( error );
                        display.setMessage( error );
                    }

                    component = editForm;
                    initAccordionLabels( user );
                }


                @Override
                public void onError( AjaxRequestTarget target )
                {
                    LOG.warn( "ControlPanel.lock/unlock error" );
                }


                @Override
                protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
                {
                    super.updateAjaxAttributes( attributes );
                    AjaxCallListener ajaxCallListener = new AjaxCallListener()
                    {
                        /** Default serialVersionUID */
                        private static final long serialVersionUID = 1L;


                        @Override
                        public CharSequence getFailureHandler( Component component )
                        {
                            return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
                        }
                    };
                    attributes.getAjaxCallListeners().add( ajaxCallListener );
                }
            };
            lock.add( lockBtnLbl );
            add( lock );
            add( new SecureIndicatingAjaxButton( "resetbtn", GlobalIds.ADMIN_MGR, "resetPassword" )
            {
                /** Default serialVersionUID */
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    User user = ( User ) getForm().getModel().getObject();
                    String msg = "User: " + user.getUserId();
                    try
                    {
                        adminMgr.resetPassword( user, user.getPassword() );
                        user.setReset( true );
                        msg += " account has been reset";
                        display.setMessage( msg );
                    }
                    catch ( org.apache.directory.fortress.core.SecurityException se )
                    {
                        String error = ".onSubmit caught SecurityException=" + se;
                        LOG.error( error );
                        display.setMessage( error );
                    }

                    component = editForm;
                    initAccordionLabels( user );
                }


                @Override
                public void onError( AjaxRequestTarget target )
                {
                    LOG.warn( "ControlPanel.reset error" );
                }


                @Override
                protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
                {
                    super.updateAjaxAttributes( attributes );
                    AjaxCallListener ajaxCallListener = new AjaxCallListener()
                    {
                        /** Default serialVersionUID */
                        private static final long serialVersionUID = 1L;


                        @Override
                        public CharSequence getFailureHandler( Component component )
                        {
                            return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
                        }
                    };
                    attributes.getAjaxCallListeners().add( ajaxCallListener );
                }
            } );
            add( new SecureIndicatingAjaxButton( GlobalIds.ASSIGN, GlobalIds.ADMIN_MGR, GlobalIds.ASSIGN_USER )
            {
                /** Default serialVersionUID */
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    LOG.debug( ".onSubmit assign" );
                    User user = ( User ) getForm().getModel().getObject();
                    if( StringUtils.isNotEmpty( newUserRole ))
                    {
                        if ( assignRole( user, newUserRole ) )
                        {
                            String msg = "User: " + user.getUserId() + " has been assigned role: " + newUserRole;
                            display.setMessage( msg );
                            component = editForm;
                            initAccordionLabels( user );
                            userRoleSelection = new UserRole();
                            roleConstraint = new UserRole();
                            newUserRole = "";
                        }
                        else
                        {
                            String msg = "User: " + user.getUserId() + " assign failed for role: " + newUserRole;
                            display.setMessage( msg );
                            LOG.debug( msg );
                        }
                    }
                }

                @Override
                public void onError( AjaxRequestTarget target )
                {
                    LOG.warn( "assign.onError" );
                }


                @Override
                protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
                {
                    super.updateAjaxAttributes( attributes );
                    AjaxCallListener ajaxCallListener = new AjaxCallListener()
                    {
                        /** Default serialVersionUID */
                        private static final long serialVersionUID = 1L;


                        @Override
                        public CharSequence getFailureHandler( Component component )
                        {
                            return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
                        }
                    };
                    attributes.getAjaxCallListeners().add( ajaxCallListener );
                }
            } );
            add( new SecureIndicatingAjaxButton( "assignAdminRole", GlobalIds.DEL_ADMIN_MGR, GlobalIds.ASSIGN_USER )
            {
                /** Default serialVersionUID */
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    LOG.debug( ".onSubmit assignAdminRole" );
                    User user = ( User ) getForm().getModel().getObject();
                    if( StringUtils.isNotEmpty( newUserAdminRole ))
                    {
                        if ( assignAdminRole( user, newUserAdminRole ) )
                        {
                            String msg = "User: " + user.getUserId() + " has been assigned adminRole: " +
                                newUserAdminRole;
                            display.setMessage( msg );
                            component = editForm;
                            initAccordionLabels( user );
                            userAdminRoleSelection = new UserAdminRole();
                            adminRoleConstraint = new UserAdminRole();
                            newUserAdminRole = "";
                        }
                        else
                        {
                            String msg = "User: " + user.getUserId() + " assign failed for admin role: " + newUserAdminRole;
                            display.setMessage( msg );
                            LOG.debug( msg );
                        }
                    }
                }

                @Override
                public void onError( AjaxRequestTarget target )
                {
                    LOG.warn( "assignAdminRole.onError" );
                }


                @Override
                protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
                {
                    super.updateAjaxAttributes( attributes );
                    AjaxCallListener ajaxCallListener = new AjaxCallListener()
                    {
                        /** Default serialVersionUID */
                        private static final long serialVersionUID = 1L;


                        @Override
                        public CharSequence getFailureHandler( Component component )
                        {
                            return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
                        }
                    };
                    attributes.getAjaxCallListeners().add( ajaxCallListener );
                }
            } );
            add( new SecureIndicatingAjaxButton( GlobalIds.DEASSIGN, GlobalIds.ADMIN_MGR, GlobalIds.DEASSIGN_USER )
            {
                /** Default serialVersionUID */
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    LOG.debug( ".onSubmit deassign" );
                    User user = ( User ) getForm().getModel().getObject();
                    UserRole userRole = new UserRole( user.getUserId(), userRoleSelection.getName() );
                    if ( deassignRole( user, userRole ) )
                    {
                        user.delRole( userRoleSelection );
                        String msg = "User: " + user.getUserId() + " has been deassigned role: " + userRoleSelection.getName();
                        display.setMessage( msg );
                        component = editForm;
                        initAccordionLabels( user );
                    }
                    userRoleSelection = new UserRole();
                    roleConstraint = new UserRole();
                }


                @Override
                public void onError( AjaxRequestTarget target )
                {
                    LOG.warn( "deassign.onError" );
                }


                @Override
                protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
                {
                    super.updateAjaxAttributes( attributes );
                    AjaxCallListener ajaxCallListener = new AjaxCallListener()
                    {
                        /** Default serialVersionUID */
                        private static final long serialVersionUID = 1L;


                        @Override
                        public CharSequence getFailureHandler( Component component )
                        {
                            return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
                        }
                    };
                    attributes.getAjaxCallListeners().add( ajaxCallListener );
                }
            } );
            add( new SecureIndicatingAjaxButton( "deassignAdminRole", GlobalIds.DEL_ADMIN_MGR, GlobalIds.DEASSIGN_USER )
            {
                /** Default serialVersionUID */
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    LOG.debug( ".onSubmit deassignAdminRole" );
                    User user = ( User ) getForm().getModel().getObject();
                    UserAdminRole userAdminRole = new UserAdminRole( user.getUserId(), userAdminRoleSelection.getName() );
                    if ( deassignAdminRole( user, userAdminRole ) )
                    {
                        user.delAdminRole( userAdminRole );
                        String msg = "User: " + user.getUserId() + " has been deassigned adminRole: " +
                            userAdminRoleSelection.getName();
                        display.setMessage( msg );
                        component = editForm;
                        initAccordionLabels( user );
                    }
                    userAdminRoleSelection = new UserAdminRole();
                    adminRoleConstraint = new UserAdminRole();
                }


                @Override
                public void onError( AjaxRequestTarget target )
                {
                    LOG.warn( "ControlPanel.deassignAdminRole.onError" );
                }


                @Override
                protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
                {
                    super.updateAjaxAttributes( attributes );
                    AjaxCallListener ajaxCallListener = new AjaxCallListener()
                    {
                        /** Default serialVersionUID */
                        private static final long serialVersionUID = 1L;


                        @Override
                        public CharSequence getFailureHandler( Component component )
                        {
                            return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
                        }
                    };
                    attributes.getAjaxCallListeners().add( ajaxCallListener );
                }
            } );
            add( new AjaxButton( "address.delete" )
            {
                /** Default serialVersionUID */
                private static final long serialVersionUID = 1L;

                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    String msg = "clicked on address.delete";
                    if ( StringUtils.isNotEmpty( addressSelection ) )
                    {
                        msg += " selection:" + addressSelection;
                        User user = ( User ) getForm().getModel().getObject();
                        if ( user.getAddress() != null && user.getAddress().getAddresses() != null )
                        {
                            user.getAddress().getAddresses().remove( addressSelection );
                            addressSelection = "";
                            component = editForm;
                            initAccordionLabels( user );
                            msg += ", was removed from local, commit to persist changes on server";
                        }
                        else
                        {
                            msg += ", no action taken because user does not have address set";
                        }
                    }
                    else
                    {
                        msg += ", no action taken because address selection is empty";
                    }
                    display.setMessage( msg );
                    LOG.debug( msg );
                }

                @Override
                protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
                {
                    super.updateAjaxAttributes( attributes );
                    AjaxCallListener ajaxCallListener = new AjaxCallListener()
                    {
                        /** Default serialVersionUID */
                        private static final long serialVersionUID = 1L;


                        @Override
                        public CharSequence getFailureHandler( Component component )
                        {
                            return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
                        }
                    };
                    attributes.getAjaxCallListeners().add( ajaxCallListener );
                }
            } );
            add( new AjaxButton( "emails.delete" )
            {
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    String msg = "clicked on emails.delete";
                    if ( StringUtils.isNotEmpty( emailsSelection ) )
                    {
                        msg += " selection:" + emailsSelection;
                        User user = ( User ) getForm().getModel().getObject();
                        if ( user.getEmails() != null )
                        {
                            user.getEmails().remove( emailsSelection );
                            emailsSelection = "";
                            component = editForm;
                            initAccordionLabels( user );
                            msg += ", was removed from local, commit to persist changes on server";
                        }
                        else
                        {
                            msg += ", no action taken because user does not have emails set";
                        }
                    }
                    else
                    {
                        msg += ", no action taken because emails selection is empty";
                    }
                    display.setMessage( msg );
                    LOG.debug( msg );
                }


                @Override
                protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
                {
                    super.updateAjaxAttributes( attributes );
                    AjaxCallListener ajaxCallListener = new AjaxCallListener()
                    {
                        /** Default serialVersionUID */
                        private static final long serialVersionUID = 1L;


                        @Override
                        public CharSequence getFailureHandler( Component component )
                        {
                            return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
                        }
                    };
                    attributes.getAjaxCallListeners().add( ajaxCallListener );
                }
            } );
            add( new AjaxButton( "phones.delete" )
            {
                /** Default serialVersionUID */
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    String msg = "clicked on phones.delete";
                    if ( StringUtils.isNotEmpty( phonesSelection ) )
                    {
                        msg += " selection:" + phonesSelection;
                        User user = ( User ) getForm().getModel().getObject();
                        if ( user.getPhones() != null )
                        {
                            user.getPhones().remove( phonesSelection );
                            phonesSelection = "";
                            component = editForm;
                            initAccordionLabels( user );
                            msg += ", was removed from local, commit to persist changes on server";
                        }
                        else
                        {
                            msg += ", no action taken because user does not have phones set";
                        }
                    }
                    else
                    {
                        msg += ", no action taken because phones selection is empty";
                    }
                    display.setMessage( msg );
                    LOG.debug( msg );
                }


                @Override
                protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
                {
                    super.updateAjaxAttributes( attributes );
                    AjaxCallListener ajaxCallListener = new AjaxCallListener()
                    {
                        /** Default serialVersionUID */
                        private static final long serialVersionUID = 1L;


                        @Override
                        public CharSequence getFailureHandler( Component component )
                        {
                            return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
                        }
                    };
                    attributes.getAjaxCallListeners().add( ajaxCallListener );
                }
            } );
            add( new AjaxButton( "mobiles.delete" )
            {
                private static final long serialVersionUID = 1L;


                @Override
                protected void onSubmit( AjaxRequestTarget target )
                {
                    String msg = "clicked on mobiles.delete";
                    if ( StringUtils.isNotEmpty( mobilesSelection ) )
                    {
                        msg += " selection:" + mobilesSelection;
                        User user = ( User ) getForm().getModel().getObject();
                        if ( user.getMobiles() != null )
                        {
                            user.getMobiles().remove( mobilesSelection );
                            mobilesSelection = "";
                            component = editForm;
                            initAccordionLabels( user );
                            msg += ", was removed from local, commit to persist changes on server";
                        }
                        else
                        {
                            msg += ", no action taken because user does not have mobiles set";
                        }
                    }
                    else
                    {
                        msg += ", no action taken because mobiles selection is empty";
                    }
                    display.setMessage( msg );
                    LOG.debug( msg );
                }


                @Override
                protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
                {
                    super.updateAjaxAttributes( attributes );
                    AjaxCallListener ajaxCallListener = new AjaxCallListener()
                    {
                        /** Default serialVersionUID */
                        private static final long serialVersionUID = 1L;


                        @Override
                        public CharSequence getFailureHandler( Component component )
                        {
                            return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
                        }
                    };
                    attributes.getAjaxCallListeners().add( ajaxCallListener );
                }
            } );

            addRoleSearchModal();
            addAdminRoleSearchModal();
            addPolicySearchModal();
            addOUSearchModal();
        }