UI 요소의 공개 상태 제어

특정 사용자를 위한 UI 요소의 공개 상태를 제어하기 위해 visible 속성을 사용할 수 있습니다. 위젯이 관련이 없거나 사용자가 위젯을 사용할 수 없는 경우 위젯을 사용자로부터 숨길 수 있습니다. 예를 들어 페이지는 사용자가 레코드를 변경할 때까지는 변경 사항을 레코드에 저장하기 위해 저장 버튼이 필요하지 않습니다. 사용자에게 페이지 액세스 권한이 없으면 해당 페이지에 대한 링크를 숨길 수 있습니다.

주요 개념

  • visible 속성에는 부울 값이 있습니다(true = visible, false = hidden). 값을 결합하거나 스크립트를 사용하여 사용자가 위젯을 표시하기 위한 요구 사항을 충족하는지 여부를 판단할 수 있습니다.
  • 공개 상태가 다른 서버 스크립트 또는 타사 서비스의 정보에 의존하는 경우 클라이언트 스크립트에서 서버 스크립트 함수를 호출하세요.
  • 위젯에 다른 위젯이 포함 된 경우 상위 위젯의 설정이 해당 하위 위젯에 적용됩니다. 예를 들어 제목, 입력 필드, 제출 버튼이 포함된 양식 위젯이 있는 경우 개별 구성요소 또는 전체 양식을 숨길 수 있습니다.

위젯 공개 상태 제어를 위한 스크립트 사용

  1. 사용자가 위젯에 액세스 할 수 있는지 여부를 결정하고 부울을 반환하는 클라이언트 스크립트를 작성하세요. 예를 들어 여행 승인 템플릿에는 클라이언트 스크립트 유틸리티가 있습니다. 사용자가 특정 역할에 속하는지 여부를 테스트하는 세 가지 기능이 있습니다.

    /**
         * Determines whether the user has specified role.
         * @param {string} roleName - name of the role to check.
         * @return {boolean} true if user has the role.
         */
        function hasRole(roleName) {
          return (app.user.roles.indexOf(roleName) > -1);
        }
    
        /**
         * Determines whether the user is admin.
         * @return {boolean} true if user is an admin.
         */
        function isAdmin() {
          return hasRole('Admins');
        }
    
        /**
         * Determines whether the user is approver.
         * @return {boolean} true if user is an approver.
         */
        function isApprover() {
          return hasRole('Approvers');
        }
        

    hasRole(roleName) 함수는 현재 사용자가 속한 역할 목록을 가져 오고 특정 역할이 있는지 검색합니다. 예를 들어 클라이언트 스크립트가 isAdmin() 호출하면 스크립트는 관리자 역할을 검색합니다. 관리자 역할이 있으면 인덱스 값이 0 이상이고 반환 표현식이 true로 평가됩니다.

  2. 공개 상태를 설정하려는 위젯을 선택합니다. 계층 구조에서 모든 하위 위젯은 상위 위젯의 공개 상태를 상속합니다.

  3. 속성 편집기에서 표시를 클릭합니다.

  4. 공개 드롭다운 메뉴를 클릭하고 결합을 선택합니다.

  5. 결합 대화 상자에서 클라이언트 스크립트를 호출하는 표현식을 입력합니다. 예를 들어 사용자가 Admin 또는 Approver에 속하는 경우 위젯을 표시하려면 다음을 입력하세요.

    isAdmin()||isApprover()
        

결합을 사용하여 위젯 공개 상태 제어

  1. 공개 상태를 설정하려는 위젯을 선택합니다. 계층 구조에서 모든 하위 위젯은 상위 위젯의 공개 상태를 상속합니다.
  2. 속성 편집기에서 표시를 클릭합니다.
  3. 공개 드롭다운 메뉴를 클릭하고 결합을 선택합니다.
  4. 결합 대화상자에서 결합 표현식을 작성합니다. 예를 들어 Manager 역할의 구성원에게 액세스 권한을 부여하려면 다음을 수행하세요.

    @user.role.Managers
        

결합에서 숫자와 문자열을 부울 값으로 사용

visible 속성을 숫자나 문자열 값(날짜 아님)이 있는 필드에 결합하면 App Maker가 해당 값을 부울로 자동 변환할 수 있습니다. 숫자 및 특수 사례(정의되지 않음, null, NaN)에 대한 변환은 자바스크립트 유형 변환과 일치합니다. 문자열 변환은 자바스크립트 유형 변환과 일치하지 않습니다.

필드 유형 True(공개) False(숨김) 자바스크립트와 일치 여부
부울 값: 상자가 선택됨 값: 상자가 삭제됨
숫자
  • 1, 1.0
  • False 아래 나열되지 않은 다른 모든 값(예: 2, 208.1, -7, 무한대, -무한대)
0, -0, 0.0, -0.0
문자열 'true', 'True', 'TRUE' (대소문자 구분하지 않음)
  • 'false', 'False', 'FALSE' (대소문자 구분하지 않음)
  • True 아래 나열되지 않은 다른 모든 값(예: 'employee' 또는 'admin')
아니요