Version 2

    What is it?

    Jive apps are supporting app actions since Jive6. In Jive 7, we have added support to conditionally display app actions. The action path within app xml can include the filter condition that Jive would parse and evaluate prior to displaying action link

     

    What are the common use cases?

    • App action to be available only to internal users and not external users
    • App action tab to be available only to certain groups
    • App action to be available only to certain selected users

     

    How do I use it?

    • Use the app action with path in the format <action-path>?filter=<operator>(<argument1>[,<argument2>])

     

    Operators

    OperatorDescriptionArgument1Argument2
    equalsReturns true if both arguments match in value[user|context].<property>value to match
    existsReturns true if property described by argument1 exists[user|context].<property>NA
    notexistsReturns true if property described by argument1 does not exist[user|context].<property>NA

     

    Argument1 Expression

    • The first token of expression is either user or context
    • User represents current logged in user or viewer
    • Context is available for following app actions
      • Place Configuration (for e.g. jive/settings/places/project)
      • Place Tab (for e.g. jive/tabs/places/project)
      • Place Create Menu (for e.g. jive/actions/places/project)

     

    User Properties

    Following user properties are available for expression evaluation

     

    PropertyDescription
    externalBoolean flag indicating whether user is an external user
    usernameUsername
    nameName of the user
    IDJive ID of the User
    partnerBoolean flag indicating whether user is an partner user
    federatedBoolean flag indicating whether user is a federated user
    firstNameFirst Name
    lastNameLast Name
    emailEmail

     

    Context Properties

    Following context properties are available for expression evaluation

     

    PropertyDescription
    parentObjectTypePlace Type
    parentObjectIDPlace ID
    descriptionDescription
    nameName
    IDPlace Browse ID
    statusPlace Status
    extpropsExtended properties

     

     

    Show me an example?

    • Action contribution that displays tab on the project if extended property with name testprop is associated with it
      • jive/tabs/places/group?filter=exists(context.extprops.testprop)
    • Top level Menu action contribution that is available only to internal users (and not to external users)
      • jive/actions/navmenu?filter=equals(user.partner,false)