自定义审核应用程序

为了简化审阅应用程序的自定义,我们提供了一些挂钩,如下所述:

Review-Comment

  • ID: review_comment
  • 挂接: this.next('updateExtraProps')

此处所述,自定义期间添加的任何新属性都位于this.model.extraProps下。 方法updateExtraProps允许您向审阅评论添加属性,并处理服务器上所添加属性的更新和存储。

使用示例

例如,您想要将字段commentRationaleseverity添加到评论中。
让我们将commentRationale更新为“这是一个重要句子”。 以及severity到“关键”。
可以使用语法执行此操作:

  this.next('updateExtraProps', {
    'commentRationale': 'This is an important sentence.',
    'severity': 'CRITICAL'
  })

上述代码片段将处理值的更新和保存。 通过定义视图,保存的值可以在UI中呈现。

{
    "component" : "label",
    "label": "@extraProps.commentRationale"
}

内联审核面板

  • ID: inline_review_panel
  1. 挂钩: onNewCommentEvent
    挂钩onNewCommentEvent允许您针对新评论或回复事件抛出事件或调用方法。
    onNewCommentEvent中收到的参数包括:

    • 事件:已调度的评论/回复事件。
    • newComment:布尔型
      如果调度的事件是新评论事件,即highlightinsertiondeletionsticky note comment
    • newReply:布尔值
      如果调度的事件是新回复事件。
  2. 挂钩: sendExtraProps

如果要扩展event并从内联审核面板发送extraProps,此挂接很有用。 下面我们将解释这两个钩子的用法。

内联审阅面板示例

假设我们要发送额外的Prop userInfo,每次发送新评论或回复时。 现在,这将通过内联审阅面板完成,但我们没有对新生成评论的commentId的引用,因此要实现此目的,我们可以编写以下代码。

    onNewCommentEvent(args){
      const events = _.get(args, "events")
      const currTopicIndex = tcx.model.getValue(tcx.model.KEYS.REVIEW_CURR_TOPIC) || this.getValue('currTopicIndex') || "0"
      const event = _.get(_.get(events, currTopicIndex), '0')
      const newComment = _.get(args, 'newComment')
      const newReply = _.get(args, 'newReply')
      if ((newComment || newReply) && event) {
        this.next('setUserInfo', event)
      }
    },

在上述代码片段中,我们正在检查已调度的事件是新注释还是回复。 如果存在新的评论或回复,我们将调用方法setUserInfo

    const getUserInfo = (userId) => {
      return $.ajax({
        url: '/bin/dxml/xmleditor/userinfo',
        data: {
          username: userId,
        },
        success: (data) => {
          return data
        }
      })
    }

    setUserInfo(event) {
      getUserInfo(event.user).done(userData => {
        const extraProps = {
          "userFirstName": userData?.givenName || '',
          "userLastName": userData?.familyName || '',
          "userTitle": userData?.title || '',
          "userJobTitle": userData?.jobTitle || '',
          'userEmail': userData?.email || '',
        }
        const data = {... event, extraProps}
        this.next(
          'sendExtraProps',
          data
        )
      })
    },

在上述方法中,我们将扩展事件以发送extraProp,包括用户的名字、电子邮件、标题等。 通过此方式扩展事件可确保使用正确的commentId发送extraProp,并确保它们附加到正确的注释中。

挂接updateExtraProps本身会调用挂接sendExtraProps,因此何时使用什么?

我们在review_comment控制器中使用updateExtraProps,该控制器已具有评论的id,因此您只需提及extraProps.

但是,inline_review_panel无权访问评论的ID,因此无论何时需要从内联审核面板调度事件,sendExtraProps都会派上用场。

recommendation-more-help
11125c99-e1a1-4369-b5d7-fb3098b9b178