nanorep.sdk.FeedbackThumbs

This class allows creation of ThumbsUp/ThumbsDown component which can be used to display Like/Dislike state and handle article feedback.

nanorep.sdk.FeedbackSurvey

This class allows creation of "Was this article helpful?" component which can be used to handle article feedback.

nanorep.api.feedback

Namespace object for feedback enums.

Example usage

1. Add script to your page:

<script src="https://<AccountName>.nanorep.co/web/include.js?sdk=feedback-survey,feedback-thumbs&api=feedback"></script>

2. Create two empty <div>:

<div id="example-container1"></div>
<div id="example-container2"></div>

3. Initialize Feedback component:

// initialize SDK with common parameters
nanorep.sdk.init({
  host: 'product_demo.nanorep.co',
  account: 'product_demo',
  kb: 'docs'
});

// create FeedbackThumbs instance
var thumbs = new nanorep.sdk.FeedbackThumbs({ id: '1046126072' }, document.getElementById('example-container1'));
var survey = new nanorep.sdk.FeedbackSurvey({ id: '1046126072' }, document.getElementById('example-container2'));

FeedbackThumbs Options

id (required)

Type: String

Article id for feedback

new nanorep.sdk.FeedbackThumbs({
  id: 'fakeArticleId1'
}, document.getElementById('example-options-thumbs_id'));
<div id="example-options-thumbs_id"></div>

feedbackDialogType

Type: Number

Default: 1

feedback dialog type could be any values from nanorep.api.feedback.feedbackDialogTypeEnum object

new nanorep.sdk.FeedbackThumbs({
  id: 'fakeArticleId2',
  feedbackDialogType: nanorep.api.feedback.feedbackDialogTypeEnum.multipleChoiceOpenText
}, document.getElementById('example-options-thumbs_feedbackDialogType'));
<div id="example-options-thumbs_feedbackDialogType"></div>

FeedbackThumbs Methods

setState

setState(state) : void

Set feedback state

Parameters

state: Number Specific state of the feedback component. Must be any value from nanorep.sdk.FeedbackThumbs.stateEnum
var feedbackThumbsSetState = new nanorep.sdk.FeedbackThumbs({
  id: 'fakeArticle3'
}, document.getElementById('example-methods-setState'));
<div id="example-methods-setState"></div>
<button onclick="feedbackThumbsSetState.setState(nanorep.sdk.FeedbackThumbs.stateEnum.LIKE)">set like</button>
<button onclick="feedbackThumbsSetState.setState(nanorep.sdk.FeedbackThumbs.stateEnum.DISLIKE)">set dislike</button>

disable

disable() : void

Disable component and ignore all user actions

var feedbackThumbsDisable = new nanorep.sdk.FeedbackThumbs({
  id: 'fakeArticle4'
}, document.getElementById('example-methods-thumbs_disable'));
<div id="example-methods-thumbs_disable"></div>
<button onclick="feedbackThumbsDisable.disable()">disable feedback</button>

enable

enable() : void

Disable component and ignore all user actions

var feedbackThumbsEnable = new nanorep.sdk.FeedbackThumbs({
  id: 'fakeArticle5'
}, document.getElementById('example-methods-thumbs_enable'));
feedbackThumbsEnable.disable()
<div id="example-methods-thumbs_enable"></div>
<button onclick="feedbackThumbsEnable.enable()">enable feedback</button>

FeedbackThumbs Events

like

feedbackThumbsInstance.on('like', function() {})

Occurred when user pressed "Like" button (only if thumbs were not disabled)

new nanorep.sdk.FeedbackThumbs({
  id: 'fakeArticle6'
}, document.getElementById('example-events-thumbs_like')).on('like', function() {
  alert('Excellent!');
});
<div id="example-events-thumbs_like"></div>

dislike

feedbackThumbsInstance.on('dislike', function() {})

Occurred when user pressed "Dislike" button (only if thumbs were not disabled)

new nanorep.sdk.FeedbackThumbs({
  id: 'fakeArticle7'
}, document.getElementById('example-events-thumbs_dislike')).on('dislike', function() {
  alert('Sorry about that!');
});
<div id="example-events-thumbs_dislike"></div>

FeedbackThumbs Properties

nanorep.sdk.FeedbackThumbs.stateEnum

Type: Object

Object with enums for feedback state

{
  DEFAULT: 0,
  LIKE: 1,
  DISLIKE: 2
}

FeedbackSurvey Options

id (required)

Type: String

Article id for feedback

new nanorep.sdk.FeedbackSurvey({
  id: 'fakeArticleSurveyId1'
}, document.getElementById('example-options-survey_id'));
<div id="example-options-survey_id"></div>

feedbackDialogType

Type: Number

Default: 2

feedback dialog type could be any values from nanorep.api.feedback.feedbackDialogTypeEnum object

new nanorep.sdk.FeedbackSurvey({
  id: 'fakeArticleSurveyId2',
  feedbackDialogType: nanorep.api.feedback.feedbackDialogTypeEnum.multipleChoiceOpenText
}, document.getElementById('example-options-survey_feedbackDialogType'));
<div id="example-options-survey_feedbackDialogType"></div>

FeedbackSurvey Methods

setState

setState(state) : void

Set feedback state

Parameters

state: Number Specific state of the feedback component. Must be any value from nanorep.sdk.FeedbackSurvey.stateEnum
var feedbackSurveySetState = new nanorep.sdk.FeedbackSurvey({
  id: 'fakeArticleSurvey3'
}, document.getElementById('example-methods-setState'));
<div id="example-methods-setState"></div>
<button onclick="feedbackSurveySetState.setState(nanorep.sdk.FeedbackSurvey.stateEnum.HELPFUL)">set helpful</button>
<button onclick="feedbackSurveySetState.setState(nanorep.sdk.FeedbackSurvey.stateEnum.UNHELPFUL)">set unhelpful</button>

disable

disable() : void

Disable component and ignore all user actions

var feedbackSurveyDisable = new nanorep.sdk.FeedbackSurvey({
  id: 'fakeArticleSurvey4'
}, document.getElementById('example-methods-survey_disable'));
<div id="example-methods-survey_disable"></div>
<button onclick="feedbackSurveyDisable.disable()">disable feedback</button>

enable

enable() : void

Disable component and ignore all user actions

var feedbackSurveyEnable = new nanorep.sdk.FeedbackSurvey({
  id: 'fakeArticleSurvey5'
}, document.getElementById('example-methods-survey_enable'));
feedbackSurveyEnable.disable()
<div id="example-methods-survey_enable"></div>
<button onclick="feedbackSurveyEnable.enable()">enable feedback</button>

FeedbackSurvey Events

select

feedbackSurveyInstance.on('select', function() {})

Occurred after user pressed "Yes" or "No"

Arguments

isHelpful: Boolean Status of feedback
feedbackText: String Text from the textarea in feedback popup
new nanorep.sdk.FeedbackSurvey({
  id: 'fakeArticleSurvey6'
}, document.getElementById('example-events-survey_select')).on('select', function(isHelpful, feedbackText) {
  alert('Feedback is ' + (isHelpful ? 'helpful' : 'unhelpful') + '. And that\'s why - ' + feedbackText);
});
<div id="example-events-survey_select"></div>

FeedbackSurvey Properties

nanorep.sdk.FeedbackSurvey.stateEnum

Type: Object

Object with enums for feedback state

{
  DEFAULT: 0,
  HELPFUL: 1,
  UNHELPFUL: 2
}

api.feedback Methods

addFeedback

addFeedback(options) : void

This API method is used to send article feedback

Parameters

options: Object Plain object containing type, feedbackText
options.articleId: String Id of the article
options.type: String Value from nanorep.api.feedback.feedbackReasonEnum (required)
options.feedbackText (optional) String Feedback text

api.feedback Properties

nanorep.api.feedback.feedbackDialogTypeEnum

Type: Object

Object with feedback popup type enums

{
  multipleChoiceOpenText: 0,
  multipleChoice: 1,
  openText: 2
}

nanorep.api.feedback.feedbackReasonEnum

Type: Object

Object with feedback reason type enums

{
  none: 'none',
  wrongAnswer: 'wrongAnswer',
  wrongContent: 'wrongContent',
  wrongContext: 'wrongContext'
}