Is there a way to display an info message when we open the knowledge article based on the Sate of the article through knowledge search under the selfservice??

dineshkumarmogu
Kilo Explorer

Hi,

Currently I am trying to display the information message, when I open a knowledge article through the knowledge search under the self-service application depending upon the state. Have anybody worked on such kind of requirement or if have any ideas could you please help me in achieving this.

Regards,

Dinesh Kumar.

1 ACCEPTED SOLUTION

Hi Dinesh, please see in the below code in bold "Congratulations you got a message" the places where you will like to add your message



<?xml version="1.0" encoding="utf-8" ?>


<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">


  <j2:set var="jvar_hide_response_time" value="true" />


  <g:inline template="ie_checker.xml" />


  <g:requires name="scripts/lib/jquery_includes.js"/>


  <g:requires name="styles/knowledge.ng/css_includes_knowledge.css" includes="true"/>




  <j2:if test="$[!jvar_isMSIE7]">


  <j2:if test="$[!jvar_isMSIE8]">


  <g:requires name="scripts/classes/timeAgo.js"/>


  </j2:if>


  </j2:if>




  <!-- Common styles are loaded in the "Knowledge Common Styles" stylesheet -->


  <link href="b3ba3821d73221004792a1737e610382.cssdbx?v=${gs.getProperty('glide.builddate')}" type="text/css" rel="stylesheet"/>




  <g:evaluate jelly="true" copyToRhino="true">


  var uiMacro = "kb_view_legacy";


  var kbViewModel = new KBViewModel();


  var kbViewInfo = kbViewModel;


  kbViewModel.getInfo();


  var canContributeHelper = new SNC.KnowledgeHelper();


  var knowledgeHelp = new KnowledgeHelp();


  var historyRowCount = 0;


  var isValidRecord = kbViewModel.isValid;


  var knowledgeExists = kbViewModel.knowledgeExists;


  var NOT_RETIRED = gs.getMessage("Article not retired");


  var NOT_PUBLISHED = gs.getMessage("Article not published");


  var NOT_SAVED = gs.getMessage("Article not saved");


  var SAVED = gs.getMessage("Article saved");


  var DISCARDED = gs.getMessage("Article changes discarded");


  var SUBMITTED = gs.getMessage("Your article has been submitted");


  var PREVIEW = gs.getMessage(" Preview ");


  var PREVIEW_HINT = gs.getMessage("Preview changes");


  var DELETE = gs.getMessage("Delete");


  var CONFIRM_DELETE = gs.getMessage("Confirm deletion of this article and all its revisions?");


  var TITLE_CANCEL = gs.getMessage("Cancel changes");


  var MESSAGE_CANCEL = gs.getMessage("Discard all changes?");


  var TITLE_RETIRE = gs.getMessage("Retire");


  var MESSAGE_RETIRE = gs.getMessage("Retire this article?");


  // Status messages for the message bar.


  var DRAFT_MSG = gs.getMessage("This knowledge item has been created");


  var REVIEW_MSG = gs.getMessage("This knowledge item has been published");


  var PUBLISHED_MSG = gs.getMessage("This knowledge item has been published");


  var PEND_RETIRE_MSG = gs.getMessage("This knowledge item has been retired");


  var RETIRED_MSG = gs.getMessage("This knowledge item has been retired");


  var DELETE_FAIL_MSG = gs.getMessage("This article could not be deleted");


  var TXT_PLACEHOLDER = gs.getMessage("Add content");




  if (isValidRecord) {


  var knowledgeRecord = kbViewModel.knowledgeRecord;


  var canContributeToKnowledge = canContributeHelper.canContribute(kbViewModel.knowledgeRecord);


  var publishedRecord = kbViewModel.publishedRecord;


  var feedbackRecords = kbViewModel.feedbackRecord;


  var bannerImage = kbViewModel.bannerImage;


  var authorImage = kbViewModel.authorImage;


  var authorName = kbViewModel.authorName;


  var authorCompany = kbViewModel.authorCompany || kbViewModel.getAuthorInfo("author.company.name");


  var authorDepartment = kbViewModel.authorDepartment || kbViewModel.getAuthorInfo("author.department.name");


  var authorTitle = kbViewModel.authorTitle || kbViewModel.getAuthorInfo("author.title");


  var i18n = function(message, array) {


  message = message || "";


  var padded = " " + message + " ";


  var translated = gs.getMessage(padded, array);


  var trimmed = translated.trim();


  return trimmed;


  };




  var canCreateNew = kbViewModel.canCreateNew;


  var isNewRecord = kbViewModel.isNewRecord;


  var published = "";


  var sys_updated_on = "";


  if (kbViewModel.publishedRecord) {


  published = kbViewModel.publishedRecord.published;


  sys_updated_on = kbViewModel.publishedRecord.sys_updated_on;


  }


  var number = knowledgeRecord.number;


  var permalink = kbViewModel.permalink;


  var category = knowledgeRecord.category;


  var attachments = kbViewModel.attachments;


  var disableSuggesting = knowledgeRecord.disable_suggesting;


  var glideWikiModel = new GlideWikiModel();


  glideWikiModel.setLinkBaseURL(glideWikiModel.getLinkBaseURL() + "${AMP}sysparm_field=kb_knowledge.wiki" + "${AMP}sysparm_kbtable=" + kbViewInfo.tableName);


  var relatedContent = kbViewInfo.relatedContent || kbViewInfo.getCurrentRelatedContent();


  }




  var isVersion2 = new KBCommon().isKBVersion2(knowledgeRecord.kb_knowledge_base);


  if (isVersion2) {


  if (jelly.sysparm_context == 'popup')


  uiMacro = "kb_view_legacy_popup";


  else


  uiMacro = "kb_view_legacy";


  }


  </g:evaluate>




  <script>


  var kbConfig = {


  canContribute: '${canContributeToKnowledge}',


  historyRowCount: ${historyRowCount},


  i18n: {


  STATUS_MSG: {


  draft: '${DRAFT_MSG}',


  review: '${REVIEW_MSG}',


  published: '${PUBLISHED_MSG}',


  pending_retirement: '${PEND_RETIRE_MSG}',


  retired: '${RETIRED_MSG}',


  delete_failed: '${DELETE_FAIL_MSG}'


  },


  TXT_PLACEHOLDER: '${TXT_PLACEHOLDER}',


  NOT_RETIRED: '${NOT_RETIRED}',


  NOT_PUBLISHED: '${NOT_PUBLISHED}',


  NOT_SAVED: '${NOT_SAVED}',


  SAVED: '${SAVED}',


  DISCARDED: '${DISCARDED}',


  SUBMITTED: '${SUBMITTED}',


  PREVIEW: '${PREVIEW}',


  PREVIEW_HINT: '${PREVIEW_HINT}',


  CONFIRM_DELETE: '${CONFIRM_DELETE}',


  DELETE: '${DELETE}',


  TITLE_RETIRE: '${TITLE_RETIRE}',


  MESSAGE_RETIRE: '${MESSAGE_RETIRE}',


  TITLE_CANCEL: '${TITLE_CANCEL}',


  MESSAGE_CANCEL: '${MESSAGE_CANCEL}'


  }


  };




  $j(function() {


  if (parent.document) {


  // fix iframe resize issue for CMS service portal


  parent.CustomEvent.fire('content_frame.resized', window.name, parent.document.body.scrollHeight);


  }


  });


  </script>




  <j:choose>


  <j:when test="${isVersion2}">


  Congratulations you got a message 1!


  <g:inline template="${uiMacro}"/>


  </j:when>


  <j:when test="${isValidRecord &amp;&amp; knowledgeHelp.hasRights(knowledgeRecord)}">


  Congratulations you got a message 2!


  <g:inline template="kb_view_common" />


  </j:when>


  <j:when test="${knowledgeExists}">


  Congratulations you got a message 3!


  <g:inline template="kb_view_cannot_read"/>


  </j:when>


  <j:otherwise>


  <g:inline template="kb_view_not_valid_record"/>


  </j:otherwise>


  </j:choose>


</j:jelly>


View solution in original post

10 REPLIES 10

Hi Dinesh, please see in the below code in bold "Congratulations you got a message" the places where you will like to add your message



<?xml version="1.0" encoding="utf-8" ?>


<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">


  <j2:set var="jvar_hide_response_time" value="true" />


  <g:inline template="ie_checker.xml" />


  <g:requires name="scripts/lib/jquery_includes.js"/>


  <g:requires name="styles/knowledge.ng/css_includes_knowledge.css" includes="true"/>




  <j2:if test="$[!jvar_isMSIE7]">


  <j2:if test="$[!jvar_isMSIE8]">


  <g:requires name="scripts/classes/timeAgo.js"/>


  </j2:if>


  </j2:if>




  <!-- Common styles are loaded in the "Knowledge Common Styles" stylesheet -->


  <link href="b3ba3821d73221004792a1737e610382.cssdbx?v=${gs.getProperty('glide.builddate')}" type="text/css" rel="stylesheet"/>




  <g:evaluate jelly="true" copyToRhino="true">


  var uiMacro = "kb_view_legacy";


  var kbViewModel = new KBViewModel();


  var kbViewInfo = kbViewModel;


  kbViewModel.getInfo();


  var canContributeHelper = new SNC.KnowledgeHelper();


  var knowledgeHelp = new KnowledgeHelp();


  var historyRowCount = 0;


  var isValidRecord = kbViewModel.isValid;


  var knowledgeExists = kbViewModel.knowledgeExists;


  var NOT_RETIRED = gs.getMessage("Article not retired");


  var NOT_PUBLISHED = gs.getMessage("Article not published");


  var NOT_SAVED = gs.getMessage("Article not saved");


  var SAVED = gs.getMessage("Article saved");


  var DISCARDED = gs.getMessage("Article changes discarded");


  var SUBMITTED = gs.getMessage("Your article has been submitted");


  var PREVIEW = gs.getMessage(" Preview ");


  var PREVIEW_HINT = gs.getMessage("Preview changes");


  var DELETE = gs.getMessage("Delete");


  var CONFIRM_DELETE = gs.getMessage("Confirm deletion of this article and all its revisions?");


  var TITLE_CANCEL = gs.getMessage("Cancel changes");


  var MESSAGE_CANCEL = gs.getMessage("Discard all changes?");


  var TITLE_RETIRE = gs.getMessage("Retire");


  var MESSAGE_RETIRE = gs.getMessage("Retire this article?");


  // Status messages for the message bar.


  var DRAFT_MSG = gs.getMessage("This knowledge item has been created");


  var REVIEW_MSG = gs.getMessage("This knowledge item has been published");


  var PUBLISHED_MSG = gs.getMessage("This knowledge item has been published");


  var PEND_RETIRE_MSG = gs.getMessage("This knowledge item has been retired");


  var RETIRED_MSG = gs.getMessage("This knowledge item has been retired");


  var DELETE_FAIL_MSG = gs.getMessage("This article could not be deleted");


  var TXT_PLACEHOLDER = gs.getMessage("Add content");




  if (isValidRecord) {


  var knowledgeRecord = kbViewModel.knowledgeRecord;


  var canContributeToKnowledge = canContributeHelper.canContribute(kbViewModel.knowledgeRecord);


  var publishedRecord = kbViewModel.publishedRecord;


  var feedbackRecords = kbViewModel.feedbackRecord;


  var bannerImage = kbViewModel.bannerImage;


  var authorImage = kbViewModel.authorImage;


  var authorName = kbViewModel.authorName;


  var authorCompany = kbViewModel.authorCompany || kbViewModel.getAuthorInfo("author.company.name");


  var authorDepartment = kbViewModel.authorDepartment || kbViewModel.getAuthorInfo("author.department.name");


  var authorTitle = kbViewModel.authorTitle || kbViewModel.getAuthorInfo("author.title");


  var i18n = function(message, array) {


  message = message || "";


  var padded = " " + message + " ";


  var translated = gs.getMessage(padded, array);


  var trimmed = translated.trim();


  return trimmed;


  };




  var canCreateNew = kbViewModel.canCreateNew;


  var isNewRecord = kbViewModel.isNewRecord;


  var published = "";


  var sys_updated_on = "";


  if (kbViewModel.publishedRecord) {


  published = kbViewModel.publishedRecord.published;


  sys_updated_on = kbViewModel.publishedRecord.sys_updated_on;


  }


  var number = knowledgeRecord.number;


  var permalink = kbViewModel.permalink;


  var category = knowledgeRecord.category;


  var attachments = kbViewModel.attachments;


  var disableSuggesting = knowledgeRecord.disable_suggesting;


  var glideWikiModel = new GlideWikiModel();


  glideWikiModel.setLinkBaseURL(glideWikiModel.getLinkBaseURL() + "${AMP}sysparm_field=kb_knowledge.wiki" + "${AMP}sysparm_kbtable=" + kbViewInfo.tableName);


  var relatedContent = kbViewInfo.relatedContent || kbViewInfo.getCurrentRelatedContent();


  }




  var isVersion2 = new KBCommon().isKBVersion2(knowledgeRecord.kb_knowledge_base);


  if (isVersion2) {


  if (jelly.sysparm_context == 'popup')


  uiMacro = "kb_view_legacy_popup";


  else


  uiMacro = "kb_view_legacy";


  }


  </g:evaluate>




  <script>


  var kbConfig = {


  canContribute: '${canContributeToKnowledge}',


  historyRowCount: ${historyRowCount},


  i18n: {


  STATUS_MSG: {


  draft: '${DRAFT_MSG}',


  review: '${REVIEW_MSG}',


  published: '${PUBLISHED_MSG}',


  pending_retirement: '${PEND_RETIRE_MSG}',


  retired: '${RETIRED_MSG}',


  delete_failed: '${DELETE_FAIL_MSG}'


  },


  TXT_PLACEHOLDER: '${TXT_PLACEHOLDER}',


  NOT_RETIRED: '${NOT_RETIRED}',


  NOT_PUBLISHED: '${NOT_PUBLISHED}',


  NOT_SAVED: '${NOT_SAVED}',


  SAVED: '${SAVED}',


  DISCARDED: '${DISCARDED}',


  SUBMITTED: '${SUBMITTED}',


  PREVIEW: '${PREVIEW}',


  PREVIEW_HINT: '${PREVIEW_HINT}',


  CONFIRM_DELETE: '${CONFIRM_DELETE}',


  DELETE: '${DELETE}',


  TITLE_RETIRE: '${TITLE_RETIRE}',


  MESSAGE_RETIRE: '${MESSAGE_RETIRE}',


  TITLE_CANCEL: '${TITLE_CANCEL}',


  MESSAGE_CANCEL: '${MESSAGE_CANCEL}'


  }


  };




  $j(function() {


  if (parent.document) {


  // fix iframe resize issue for CMS service portal


  parent.CustomEvent.fire('content_frame.resized', window.name, parent.document.body.scrollHeight);


  }


  });


  </script>




  <j:choose>


  <j:when test="${isVersion2}">


  Congratulations you got a message 1!


  <g:inline template="${uiMacro}"/>


  </j:when>


  <j:when test="${isValidRecord &amp;&amp; knowledgeHelp.hasRights(knowledgeRecord)}">


  Congratulations you got a message 2!


  <g:inline template="kb_view_common" />


  </j:when>


  <j:when test="${knowledgeExists}">


  Congratulations you got a message 3!


  <g:inline template="kb_view_cannot_read"/>


  </j:when>


  <j:otherwise>


  <g:inline template="kb_view_not_valid_record"/>


  </j:otherwise>


  </j:choose>


</j:jelly>


Hi Berny,



The script which you mentioned above is working fine, I tested this in Fuji version in one of the demo instance. But we are in Eureka version. We have different version of the search functionality. I can copy the code which we have in our instance for you reference here.



code in the html tab;


<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
  <script>
  <script>
  <link href="kb_styles.cssx" type="text/css" rel="stylesheet" />
  <g:include_script src="KnowledgeFunctions.jsdbx"/>
  <style type="text/css">
A {
                              color:blue;
  text-decoration: underline;

                                       
}
TABLE {
  white-space: normal;
}
IMG {
  visibility: visible;
  display: inline;
}
              .kb_options {
                              border:1px solid #dddddd;
                              background-color:#f6f6f6;
              }
              .kb_options_header {
                              font-weight:bold;
                              color:#666666;
                              padding-left:3px;
                              background-color: #EEEEEE;
              }
              .kb_link {
                              padding-left:10px;
              }
              .kb_link A {
                              color: blue;
                              text-decoration: none;
              }
              .kb_link A:hover {
                              text-decoration: underline;
              }
              .kb_link_disable {
                              padding-left:10px;
              }
              .kb_link_disable A {
                              color: #666666;
                              text-decoration: none;
                              cursor:default;
              }
  </style>


  <g2:evaluate var="jvar_item" jelly="true">var kb = new KnowledgeHelp().findArticle(); kb;</g2:evaluate>
  <j2:set var="jvar_valid_article" value="$[new KnowledgeHelp(kb).isValidArticle()]"/>
  <j2:set var="jvar_has_rights" value="$[new KnowledgeHelp().hasRights(kb)]"/>
  <g2:evaluate var="jvar_css_name">new KnowledgeHelp(kb).findDisplayCSS();</g2:evaluate>
  <link href="styles/$[jvar_css_name]x?v=${gs.getProperty('glide.builddate')}" type="text/css" rel="stylesheet" />

<g2:evaluate var="jvar_links" object="true">
var links = [];
if (!$[jvar_valid_article])
links = ["Knowledge Home"];
links;
</g2:evaluate>


  <table class="wide kb_header_row" cellspacing="0" border="0" style="margin-bottom: 8px;">
      <tr>
          <td class="title" nowrap="true">
  <g:inline template="kb_header.xml" />
          </td>
      </tr>
  </table>


  <table class="wide" cellspacing="0" border="0" style="margin-bottom: 8px;">


<tr><td>
    <form method="GET" action="${sysparm_base_form}.do" name="${sysparm_base_form}.do">
  <input type="HIDDEN" name="sys_action" id="sys_action" value="none" />
  <input type="HIDDEN" name="sys_id" id="sys_id" value="$[JS:kb.sys_id]" />
  <!-- view_id is used to consolidate actions from a single view, e.g. rating, feedback, etc. -->
  <input type="HIDDEN" name="view_id" id="view_id" value="$[gs.generateGUID()]" />
  <input type="HIDDEN" name="sysparm_modify_check" id="sysparm_modify_check" value="true" />
  <g2:emitParms suppress="sysparm_this_url_enc"/>


    <table class="wide" cellspacing="0">
  <tr class="header kb_header_title_row"><td>
    <table border="0" class="wide" cellspacing="0" cellpadding="0">
    <tr class="header" border="0" cellspacing="0">
      <g:inline template="kb_stripe_text" />
      <j2:if test="$[kb.canWrite()]">
        <j2:if test="$[RP.isInteractive() ${AND} jvar_valid_article]">
          <td>
                                                                                                    <button name="not_important" type="button" class="header" style="white-space:nowrap;" onClick="doSomethingAPPL();">$[ gs.getMessage("Email Article") ]</button>
          </td>
        </j2:if>
      </j2:if>
   
      <j2:if test="$[sysparm_nameofstack == 'kbpop']">
        <td>
        <g:evaluate var="jvar_search_fields" expression="gs.getProperty('glide.knowman.attach.fields');" />
          <g2:evaluate var="jvar_attach_button_msg">
            var label = Packages.com.glide.script.MetaData.getTableLabel("${sysparm_kb_search_table}");
            if (label != null $[AND] label != "")
              gs.getMessage("Attach to") + " " + label;
            else
              gs.getMessage("Attach to record");
          </g2:evaluate>
          <button name="not_important" value="sysverb_attach" class="header" style="white-space:nowrap;" onClick="return attachIncident2(this, '${jvar_search_fields}');">$[jvar_attach_button_msg]</button>


                                                                                 
        </td>
       
      </j2:if>
    </tr>
    </table>
  </td></tr>


<tr>
<td style="color:#999999;font-size: 80%;padding-top:6px;padding-bottom:8px;">
<j2:if test="$[jvar_valid_article]">
  <g:inline template="kb_article_header.xml" />
</j2:if>
<j2:if test="$[!jvar_valid_article]">
$[gs.getMessage("Unfortunately the article you are looking for could not be found.")]
</j2:if>
</td></tr>


              <g2:evaluate var="jvar_display">new KnowledgeHelp(kb).findDisplayValue();</g2:evaluate>
              <g2:evaluate var="jvar_display_td_class">new KnowledgeHelp(kb).findDisplayClass();</g2:evaluate>


<tr>
                    <td>
            <table>
      <tr>
                                        <td><g:kb_languages /></td>
                          <td class="$[jvar_display_td_class]" valign="top"><g2:no_escape>$[NS:jvar_display]</g2:no_escape></td>
                    </tr>
            </table>
      </td>
                </tr>


<tr>
    <td class="kb_text" valign="top">
  <div style="padding-top:10px;"/>
  <g:inline template="kb_view_custom.xml"/>
    </td>
</tr>


<tr>
    <td>
  <div style="padding-top:10px;"/>
  <hr />
    </td>
</tr>
            </table>
<j2:if test="$[jvar_valid_article ${AND} jvar_has_rights]">
                      <table class="wide" cellspacing="0">
  <tr>
      <td width="99%" style="padding-top:0px; vertical-align:top;">
    <table class="wide">


        <g:inline template="kb_feedback_section.xml" />


        <!-- list of files attached to the article -->
        <g:inline template="kb_attachment_list.xml" />


        <!-- list of products to which this article pertains -->
        <g:inline template="kb_affected_products.xml"/>


        <!-- list of tasks to which this article has been attached -->
        <g:inline template="kb_attached_tasks.xml"/>


    </table>


    <g:evaluate var="jvar_can_see_comments">
        var roles = gs.getProperty("glide.knowman.show_user_feedback.roles");
        gs.hasRole(roles);
    </g:evaluate>
    <j:if test="${jvar_can_see_comments}">
      <j:set var="jvar_show_comments_onload" value="${gs.getProperty('glide.knowman.show_user_feedback') == 'onload'}"/>
      <g:evaluate var="jvar_comments_style_display">
        if ("${jvar_show_comments_onload}" == "true")
          "block";
        else
          "none";
      </g:evaluate>
      <table class="wide">
        <tr><td>
          <div id="feedback_comments" style="display:none; color:#404040;"/>
        </td></tr>
      </table>
      <j:if test="${jvar_show_comments_onload}">
        <script>
          addLoadEvent(function() {feedbackCommentsToggle('$[JS:kb.sys_id]');});
        </script>
      </j:if>
    </j:if>
    <!-- outputs an article's footer info: link, viewcount -->
    <table class="wide" cellspacing="0">
      <tr><td style="color:#999999; font-size:80%; padding-top:8px;">
        <g:inline template="kb_article_footer.xml" />
                    </td></tr>
    </table>


          </td>


      <g:inline template="kb_ratings.xml" />


  </tr>
    </table>
</j2:if>


  </form>
</td></tr>
  </table>
</j:jelly>



code inside the client script:


function onLoad() {
    //Append the table name to get the field id
    try{
          //Create the image element and add to the dom
         
          var img = document.createElement('img');
          img.src = "images/icons/email.gifx";
          img.alt="Email to Client";
          img.title="Email to Client";
          var link = document.createElement('a');
          if (navigator.appName == "Microsoft Internet Explorer"){ link.setAttribute('onclick', Function('doSomethingAPPL()'));
          }
    else{
          link.setAttribute('onsubmit', 'doSomethingAPPL()');
    }
    link.name="outlook_email";
    link.id="outlook_email";
    link.appendChild(img);
    var bb = document.getElementsByName("make_spacing_ok")[0];
    bb.parentNode.removeChild(bb);
   
    document.getElementById('header_add_attachment').parentNode.appendChild(link);
}
catch(e){
    //alert('Error');
}
}


function doSomethingAPPL() {
    var sys = gel('sys_id').value;
    var kb =   new GlideRecord('kb_knowledge');
    kb.addQuery('sys_id',sys);
    kb.query();
    if(kb.next())
    {
   
    //var link   = 'https://invescodev.service-now.com/nav_to.do/uri=kb_knowledge.do/sys_id ='+sys;
   
    //'https://invescodev.service-now.com/nav_to.do/uri=kb_knowledge.do/sys_id ='+ gel('sys_uniqueValue').value;
    //alert(g_form.getUniqueValue());
    var msolemail = "mailto:"+ "&subject=" + "Check out this Knowledge Article" + ": " + kb.number+" - "+ kb.short_description+"&body=" + "https://invesco.service-now.com/kb_view.do%3Fsysparm_article="+kb.number;
    //g_form.getValue('number');
   
   
    //   mailItem.display (0);
    window.location.href = msolemail;
    }
   
}


Hi Dinesh, it appears that you could add your message right here:



</td></tr>


                  Your message could go here.


              <g2:evaluate var="jvar_display">new KnowledgeHelp(kb).findDisplayValue();</g2:evaluate>
              <g2:evaluate var="jvar_display_td_class">new KnowledgeHelp(kb).findDisplayClass();</g2:evaluate>


<tr>


Hello Berny,


is it possible to show a message when articles is in retired state ?



Thank you,


Eashwar Elumalai


hi berny,

By adding the text in those lines, the text is appearing under the header very close to it. How to get a space between the header and the text on knowledge article in kb_view page? Please guide me with what to change.

 

Thanks,

Pravallika