DVWP Accordion list view

Home Forums Requests DVWP Accordion list view

Viewing 24 reply threads
  • Author
    Posts
    • #18951
      Nichols Family
      Participant

        Please help;

        I have a custom list on a subsite, my requirement is to show a accordion list view on another subsite. I want to use the “Title” column for the header and the “Narrative” column for body. I have tried multiple times make this work but has failed every time. Help will be rewarded in lots of beer 😀

      • #18972
        Alexander Bautz
        Keymaster

          Hi,
          Unfortunately I don’t have any code ready, but if you can tell me which SharePoint version you use I might be able to help you with a code snippet to get you started.

          Alexander

        • #18982
          Nichols Family
          Participant

            I am working with sharepoint 2013. Any help is much appreciated.

          • #18993
            Alexander Bautz
            Keymaster

              OK, I’ll try to get something made during the weekend.

              Could you give me some more details about how you want it to work? – is it just a list with all the “Title” elements that you can click to expand the “Narrative” text?

              Alexander

            • #18997
              Nichols Family
              Participant

                Exactly what I want to do. There is a faq accordion floating around but really whatever you come up with I would be much appreciative. Again this has bugged me for two months now. So to round up the list lives on one sub site and I want to view the display on another subsite. When the title is clicked the narrative should display below it. Thank you so much for your help and all of the great solutions to date.

              • #19011
                Alexander Bautz
                Keymaster

                  I have attached a code snippet. Change the “WEB_BASE_URL” and “LIST_NAME” and ensure the “Narrative” field name is correct. Put the code in a HTML for web part or script editor web part or link it in from a file using the Content Editor Web Parts “Content link” option.

                  The end result should look like the attached image.

                  Hope you can use this as a starting point for your solution.

                  Alexander

                • #19015
                  Nichols Family
                  Participant

                    This works great thank you so much. How would I go about filtering it so only the last 25 hours (yes last 25 hours) of created items show up?

                  • #19027
                    Nichols Family
                    Participant

                      The only thing I need is a 25 hour filtering option and the ability to use list views other then that this solution is spot on.

                    • #19029
                      Alexander Bautz
                      Keymaster

                        Sorry for the delay – change the function like this:

                        function getFaqItems(){
                            var date = new Date(), dateISO = "";
                            date.setDate(date.getDate()-25);
                            dateISO = String(date.getFullYear()) + "-" + String(date.getMonth()+1) + "-" + String(date.getDate()) + "T00:00:00Z";
                            var endpoint = "/WEB_BASE_URL/_api/web/lists/getbytitle('LIST_NAME')/items?$filter=(Created ge datetime'"+dateISO+"')";
                            jQuery.ajax({
                                url: endpoint,
                                method: "GET",
                                ...
                                ...
                                ...

                        Alexander

                      • #19037
                        Nichols Family
                        Participant

                          Awesome. One more request, with a provided latitude and longitude in its respective columns, can I display a google map below the narrative with a icon on the lat long center point?

                        • #19061
                          Nichols Family
                          Participant

                            And maybe a edit icon to modify the narrative that would be amazing.

                          • #19082
                            Alexander Bautz
                            Keymaster

                              Hi,
                              Yes, all is possible, but unfortunately I’m a bit to busy to help you with this right now. I might find time to do it after the holidays, but if you want to give it a go you can find information about the Google map api here (please note that you must register to get your API key – it’s free for up to 25K hits per day): https://developers.google.com/chart/interactive/docs/gallery/map#geocoded-locations

                              The edit icon can be added using something like this example:

                              <!-- Style -->
                              <style type="text/css">
                              .item-title-clickable{
                                  font-size:1.1em;
                                  background-color: #c7e0f4;
                                  padding:2px 5px;
                                  margin-top:2px;
                                  cursor:pointer;
                              }
                              .item-narrative{
                                  display: none;
                                  border-right:3px #c7e0f4 solid;
                                  border-bottom:3px #c7e0f4 solid;
                                  border-left:3px #c7e0f4 solid;
                                  padding:3px;
                              }
                              </style>
                              <!-- HTML placeholder -->
                              <div id="faq_placeholder"></div>
                              <!-- Script -->
                              <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
                              <script type="text/javascript">
                              function getFaqItems(){
                                  var date = new Date(), dateISO = "";
                                  date.setDate(date.getDate()-25);
                                  dateISO = String(date.getFullYear()) + "-" + String(date.getMonth()+1) + "-" + String(date.getDate()) + "T00:00:00Z";
                                  var endpoint = "/DFFS/_api/web/lists/getbytitle('title_click_to_expand_text')/items?$select=*,FileDirRef&$filter=(Created ge datetime'"+dateISO+"')";
                                  jQuery.ajax({
                                      url: endpoint,
                                      method: "GET",
                                      headers: {
                                          "accept": "application/json; odata=verbose",
                                          "content-type": "application/jsom;odata=verbose",
                                          "X-RequestDigest": document.getElementById("__REQUESTDIGEST").value
                                      }
                                  }).done(function (data) {
                                      var b = [], url;
                                      jQuery.each(data.d.results,function(i,item){
                                          b.push("<div class='item-title-clickable' onclick='jQuery(this).next().slideToggle(100);'>"+item.Title+"</div>");
                                          url = item.FileDirRef+"/EditForm.aspx?ID="+item.Id;
                                          b.push("<div class='item-narrative'>");
                                              b.push("<span style='cursor:pointer;' onclick='openItemInDlg(\""+url+"\");'><img src='"+_spPageContextInfo.webServerRelativeUrl+"/_layouts/15/images/edititem.gif'></span><br>");
                                              b.push(item.Narrative);
                                          b.push("</div>");
                                      });
                                      jQuery("#faq_placeholder").html(b.join(""));
                                  }).fail(function (err) {
                                      jQuery("#faq_placeholder").html(JSON.stringify(err));
                                  });
                              }
                              
                              function openItemInDlg(url){
                                  SP.UI.ModalDialog.showModalDialog({"url":url,"dialogReturnValueCallback":function(a){
                                      if(a === 1){
                                          location.href = location.href;
                                      }
                                  }});
                              }
                              // Call function
                              getFaqItems();
                              </script>

                              Alexander

                            • #19104
                              Nichols Family
                              Participant

                                You are the man thank you so much. heres a quick question if there are no results to display how would a send a “no results” message to the view?

                              • #19210
                                Alexander Bautz
                                Keymaster

                                  Sorry – I missed your question. If you haven’t already figured it out you can do it like this:

                                  function getFaqItems(){
                                      var date = new Date(), dateISO = "";
                                      date.setDate(date.getDate()-25);
                                      dateISO = String(date.getFullYear()) + "-" + String(date.getMonth()+1) + "-" + String(date.getDate()) + "T00:00:00Z";
                                      var endpoint = "/DFFS/_api/web/lists/getbytitle('title_click_to_expand_text')/items?$select=*,FileDirRef&$filter=(Created ge datetime'"+dateISO+"')";
                                      jQuery.ajax({
                                          url: endpoint,
                                          method: "GET",
                                          headers: {
                                              "accept": "application/json; odata=verbose",
                                              "content-type": "application/jsom;odata=verbose",
                                              "X-RequestDigest": document.getElementById("__REQUESTDIGEST").value
                                          }
                                      }).done(function (data) {
                                          var b = [], url;
                                  		if(data.d.results.length > 0){
                                  			jQuery.each(data.d.results,function(i,item){
                                  				b.push("<div class='item-title-clickable' onclick='jQuery(this).next().slideToggle(100);'>"+item.Title+"</div>");
                                  				url = item.FileDirRef+"/EditForm.aspx?ID="+item.Id;
                                  				b.push("<div class='item-narrative'>");
                                  					b.push("<span style='cursor:pointer;' onclick='openItemInDlg(\""+url+"\");'><img src='"+_spPageContextInfo.webServerRelativeUrl+"/_layouts/15/images/edititem.gif'></span><br>");
                                  					b.push(item.Narrative);
                                  				b.push("</div>");
                                  			});
                                  		}else{
                                  			b.push("No result");
                                  		}
                                          jQuery("#faq_placeholder").html(b.join(""));
                                      }).fail(function (err) {
                                          jQuery("#faq_placeholder").html(JSON.stringify(err));
                                      });
                                  }

                                  Alexander

                                • #20040
                                  Nichols Family
                                  Participant

                                    Here’s another question, hate to be a pain. If the list produces ten items how do I highlight odd rows blue and even rows red. Also If Item name contains the word bad how do I highlight that word specifically yellow?

                                  • #20075
                                    Alexander Bautz
                                    Keymaster

                                      You can modify your code like in the attached image.

                                      Alexander

                                    • #20081
                                      Nichols Family
                                      Participant

                                        It seems the alternating row colors is preventing the titles from expanding any thoughts?

                                      • #20083
                                        Nichols Family
                                        Participant

                                          Disregard I found the problem this awesome thank you so much. Beer is coming your way at my next check.

                                        • #20100
                                          Alexander Bautz
                                          Keymaster

                                            I’m glad it worked.

                                            Best regards,
                                            Alexander

                                          • #20254
                                            Nichols Family
                                            Participant

                                              How would I make this asynchronous. So if a new list item is added it should appear without refreshing.

                                            • #20281
                                              Alexander Bautz
                                              Keymaster

                                                You can use a setInterval function like this to reload it every 5 seconds:

                                                setInterval(function(){
                                                    getFaqItems();
                                                },5000);

                                                To ensure only new items are drawn you must change the code like highlighted on the attached image.

                                                Please note that I haven’t tested this code, but I think it should work.

                                                Alexander

                                                Attachments:
                                              • #20304
                                                Nichols Family
                                                Participant

                                                  Doesn’t seem to be working, it will load on page execution. But if I change a list time in a second window the information doesn’t redraw on the other. Any help you can provide will be greatly appreciated.

                                                  Original code;

                                                  <input type=”button” value=”Click here to create a new case” onclick=”javascript:OpenPopUpPage(‘https://intelshare.intelink.gov/sites/sccnola/CDO/_layouts/15/listform.aspx?PageType=8&ListId=%7B17B1BD80%2D5B62%2D4510%2DBF0C%2DE1C22781E2DE%7D&RootFolder=&#8217;)” />
                                                  <!– Style –>
                                                  <style type=”text/css”>
                                                  .item-name2-clickableNOLA{
                                                  border-top:1px #000000 solid;
                                                  border-right:1px #000000 solid;
                                                  border-bottom:1px #000000 solid;
                                                  border-left:1px #000000 solid;
                                                  font-size:1.1em;
                                                  padding:2px 5px;
                                                  margin-top:2px;
                                                  cursor:pointer;
                                                  }
                                                  .item-narative{
                                                  display: none;
                                                  border-right:2px #000000 solid;
                                                  border-bottom:2px #000000 solid;
                                                  border-left:2px #000000 solid;
                                                  padding:3px;
                                                  }

                                                  </style>
                                                  <!– HTML placeholder –>

                                                  <!– Script –>
                                                  https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js

                                                  function getMSItems(){
                                                  var date = new Date(), dateISO = “”;
                                                  date.setDate(date.getDate()-1);
                                                  dateISO = String(date.getUTCFullYear()) + “-” + String(date.getUTCMonth()+1) + “-” + String(date.getUTCDate()) + “T00:00:00Z”;
                                                  var endpoint = “https://intelshare.intelink.gov/sites/sccnola/CDO/_api/web/lists/getbytitle(‘Marine%20Safety%20Log&#8217;)/items?$select=*,FileDirRef&$filter=((Case_x0020_Status eq ‘PENDS’) or (Date_x0020_Case_x0020_Status_x00 ge datetime'”+dateISO+”‘))&$orderby= Created desc”;
                                                  jQuery.ajax({
                                                  url: endpoint,
                                                  method: “GET”,
                                                  headers: {
                                                  “accept”: “application/json; odata=verbose”,
                                                  “content-type”: “application/jsom;odata=verbose”,
                                                  “X-RequestDigest”: document.getElementById(“__REQUESTDIGEST”).value
                                                  }
                                                  }).done(function (data) {
                                                  var b = [], url;
                                                  jQuery.each(data.d.results,function(i,item){
                                                  var bgstyle = i % 2 === 0 ? “#dce0e8” : “#f2f4f7”;
                                                  url = item.FileDirRef+”/EditForm.aspx?ID=”+item.Id;
                                                  b.push(“”+item.name2+””);
                                                  });
                                                  jQuery(“#MS_placeholder”).html(b.join(“”));
                                                  }).fail(function (err) {
                                                  jQuery(“#MS_placeholder”).html(JSON.stringify(err));
                                                  });
                                                  }

                                                  function openItemInDlg(url){
                                                  SP.UI.ModalDialog.showModalDialog({“url”:url,”dialogReturnValueCallback”:function(a){
                                                  if(a === 1){
                                                  location.href = location.href;
                                                  }
                                                  }});
                                                  }
                                                  // Call function
                                                  getMSItems();

                                                  New code;

                                                  <input type=”button” value=”Click here to create a new case” onclick=”javascript:OpenPopUpPage(‘https://intelshare.intelink.gov/sites/sccnola/CDO/_layouts/15/listform.aspx?PageType=8&ListId=%7B17B1BD80%2D5B62%2D4510%2DBF0C%2DE1C22781E2DE%7D&RootFolder=&#8217;)” />
                                                  <!– Style –>
                                                  <style type=”text/css”>
                                                  .item-name2-clickableNOLA{
                                                  border-top:1px #000000 solid;
                                                  border-right:1px #000000 solid;
                                                  border-bottom:1px #000000 solid;
                                                  border-left:1px #000000 solid;
                                                  font-size:1.1em;
                                                  padding:2px 5px;
                                                  margin-top:2px;
                                                  cursor:pointer;
                                                  }
                                                  .item-narative{
                                                  display: none;
                                                  border-right:2px #000000 solid;
                                                  border-bottom:2px #000000 solid;
                                                  border-left:2px #000000 solid;
                                                  padding:3px;
                                                  }

                                                  </style>
                                                  <!– HTML placeholder –>

                                                  <!– Script –>
                                                  https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js

                                                  var itemsAlreadyDrawn = {};
                                                  function getMSItems(){
                                                  var date = new Date(), dateISO = “”;
                                                  date.setDate(date.getDate()-1);
                                                  dateISO = String(date.getUTCFullYear()) + “-” + String(date.getUTCMonth()+1) + “-” + String(date.getUTCDate()) + “T00:00:00Z”;
                                                  var endpoint = “https://intelshare.intelink.gov/sites/sccnola/CDO/_api/web/lists/getbytitle(‘Marine%20Safety%20Log&#8217;)/items?$select=*,FileDirRef&$filter=((Case_x0020_Status eq ‘PENDS’) or (Date_x0020_Case_x0020_Status_x00 ge datetime'”+dateISO+”‘))&$orderby= Created desc”;
                                                  jQuery.ajax({
                                                  url: endpoint,
                                                  method: “GET”,
                                                  headers: {
                                                  “accept”: “application/json; odata=verbose”,
                                                  “content-type”: “application/jsom;odata=verbose”,
                                                  “X-RequestDigest”: document.getElementById(“__REQUESTDIGEST”).value
                                                  }
                                                  }).done(function (data) {
                                                  var b = [], url;
                                                  jQuery.each(data.d.results,function(i,item){
                                                  if (itemsAlreadyDrawn[item.Id]) {
                                                  //Already drawn
                                                  return;
                                                  }
                                                  itemsAlreadyDrawn[item.Id] = true;
                                                  var bgstyle = i % 2 === 0 ? “#dce0e8” : “#f2f4f7”;
                                                  url = item.FileDirRef+”/EditForm.aspx?ID=”+item.Id;
                                                  b.push(“”+item.name2+””);
                                                  });
                                                  jQuery(“#MS_placeholder”).append(b.join(“”));
                                                  }).fail(function (err) {
                                                  jQuery(“#MS_placeholder”).html(JSON.stringify(err));
                                                  });
                                                  }

                                                  function openItemInDlg(url){
                                                  SP.UI.ModalDialog.showModalDialog({“url”:url,”dialogReturnValueCallback”:function(a){
                                                  if(a === 1){
                                                  location.href = location.href;
                                                  }
                                                  }});
                                                  }
                                                  // Call function
                                                  getMSItems();
                                                  setInterval(function(data){
                                                  },500);

                                                • #20331
                                                  Alexander Bautz
                                                  Keymaster

                                                    Hi,
                                                    My original reply was intended for new items and not modified items. I have changed it to detect if the item has been modified since last draw – and in case, it will replace the item.

                                                    Keep in mind that this snippet will not reflect your local changes to look over it and modify your original.

                                                    var itemsAlreadyDrawn  = {};
                                                    function getFaqItems(){
                                                        var date = new Date(), dateISO = "";
                                                        // Set start 25 hours back in time
                                                        // date.setHours(date.getHours()-25);
                                                        // Set start 25 days back in time
                                                        date.setDate(date.getDate()-25);
                                                        dateISO = String(date.getFullYear()) + "-" + String(date.getMonth()+1) + "-" + String(date.getDate()) + "T00:00:00Z";
                                                        var endpoint = "/DFFS/_api/web/lists/getbytitle('title_click_to_expand_text')/items?$select=*,FileDirRef&$filter=(Created ge datetime'"+dateISO+"')";
                                                        jQuery.ajax({
                                                            url: endpoint,
                                                            method: "GET",
                                                            headers: {
                                                                "accept": "application/json; odata=verbose",
                                                                "content-type": "application/jsom;odata=verbose",
                                                                "X-RequestDigest": document.getElementById("__REQUESTDIGEST").value
                                                            }
                                                        }).done(function (data) {
                                                            var b = [], c, url;
                                                            jQuery.each(data.d.results,function(i,item){
                                                                if (itemsAlreadyDrawn[item.Id] !== undefined && itemsAlreadyDrawn[item.Id] === item.Modified) {
                                                                    // Already drawn
                                                                    return;
                                                                }
                                                                itemsAlreadyDrawn[item.Id] = item.Modified;
                                                                var bgStyle = i % 2 === 0 ? "#f6f6f6" : "#ffffff";
                                                                item.Narrative = item.Narrative.split(" bad ").join(" <span style='background-color:yellow;'>bad</span> ");
                                                                c = [];
                                                                c.push("<div id='faq_wrapper_"+item.Id+"'>");
                                                                c.push("<div class='item-title-clickable' style='background-color:"+bgStyle+";' onclick='jQuery(this).next().slideToggle(100);'>"+item.Title+"</div>");
                                                                url = item.FileDirRef+"/EditForm.aspx?ID="+item.Id;
                                                                c.push("<div class='item-narrative'>");
                                                                c.push("<span style='cursor:pointer;' onclick='openItemInDlg(\""+url+"\");'><img src='"+_spPageContextInfo.webServerRelativeUrl+"/_layouts/15/images/edititem.gif'></span><br>");
                                                                c.push(item.Narrative);
                                                                c.push("</div>");
                                                                c.push("</div>");
                                                                if(jQuery("#faq_wrapper_"+item.Id).length > 0){
                                                                    jQuery("#faq_wrapper_"+item.Id).replaceWith(c.join(""));
                                                                }else{
                                                                    b.push(c.join(""));
                                                                }
                                                            });
                                                            if(b.length > 0){
                                                                jQuery("#faq_placeholder").html(b.join(""));
                                                            }
                                                        }).fail(function (err) {
                                                            jQuery("#faq_placeholder").html(JSON.stringify(err));
                                                        });
                                                    }
                                                    
                                                    function openItemInDlg(url){
                                                        SP.UI.ModalDialog.showModalDialog({"url":url,"dialogReturnValueCallback":function(a){
                                                            if(a === 1){
                                                                location.href = location.href;
                                                            }
                                                        }});
                                                    }
                                                    // Call function
                                                    getFaqItems();
                                                    // Set interval
                                                    setInterval(function(){
                                                        getFaqItems();
                                                    },5000);
                                                  • #20431
                                                    Nichols Family
                                                    Participant

                                                      How would I work these into tabs? I have three accordion lists each separate from each other. I would like all three to be in a tab with the accordion. The site is setup for three web part zones and would like to have three tabs with three accordions each going across? Any ideas?

                                                    • #20466
                                                      Alexander Bautz
                                                      Keymaster

                                                        I’ve rewritten the snippet to build some tabs, but please not that it has been thrown together without much though so use it as a starting point and see where you can get it with a little tinkering. Keep in mind that this snippet will not reflect your local changes to look over it and modify your original.

                                                        Alexander

                                                        <!-- Style -->
                                                        <style type="text/css">
                                                        .item-title-clickable{
                                                            font-size:1.1em;
                                                            padding:5px 10px;
                                                            margin-top:2px;
                                                            cursor:pointer;
                                                        }
                                                        .item-narrative{
                                                            display: none;
                                                            border:1px #c7e0f4 solid;
                                                            padding:3px;
                                                        }
                                                        .narrativeTabWrapper{
                                                            overflow:auto;
                                                        }
                                                        .narrativeTab{
                                                            float: left;
                                                            margin-right:2px;
                                                            background-color: #c7e0f4;
                                                        }
                                                        .selectedTab{
                                                            background-color: green;
                                                            color:white;
                                                        }
                                                        </style>
                                                        <!-- HTML placeholder -->
                                                        <div id="faq_placeholder"></div>
                                                        <!-- Script -->
                                                        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
                                                        <script type="text/javascript">
                                                        var itemsAlreadyDrawn  = {};
                                                        function getFaqItems(){
                                                            var date = new Date(), dateISO = "";
                                                            // Set start 25 hours back in time
                                                            // date.setHours(date.getHours()-25);
                                                            // Set start 25 days back in time
                                                            date.setDate(date.getDate()-25);
                                                            dateISO = String(date.getFullYear()) + "-" + String(date.getMonth()+1) + "-" + String(date.getDate()) + "T00:00:00Z";
                                                            var endpoint = "/DFFS/_api/web/lists/getbytitle('title_click_to_expand_text')/items?$select=*,FileDirRef&$filter=(Created ge datetime'"+dateISO+"')";
                                                            jQuery.ajax({
                                                                url: endpoint,
                                                                method: "GET",
                                                                headers: {
                                                                    "accept": "application/json; odata=verbose",
                                                                    "content-type": "application/jsom;odata=verbose",
                                                                    "X-RequestDigest": document.getElementById("__REQUESTDIGEST").value
                                                                }
                                                            }).done(function (data) {
                                                                var b = [], c, url;
                                                                // First build the tabs
                                                                jQuery.each(data.d.results,function(i,item){
                                                                    if (itemsAlreadyDrawn[item.Id] !== undefined && itemsAlreadyDrawn[item.Id] === item.Modified) {
                                                                        // Already drawn
                                                                        return;
                                                                    }
                                                                    c = [];
                                                                    c.push("<div class='narrativeTab' id='faq_wrapper_"+item.Id+"'>");
                                                                    c.push("<div class='item-title-clickable' onclick='toggleNarrative(this,"+item.Id+");'>"+item.Title+"</div>");
                                                                    c.push("</div>");
                                                                    if(jQuery("#faq_wrapper_"+item.Id).length > 0){
                                                                        jQuery("#faq_wrapper_"+item.Id).replaceWith(c.join(""));
                                                                    }else{
                                                                        b.push(c.join(""));
                                                                    }
                                                                });
                                                                if(b.length > 0){
                                                                    jQuery("#faq_placeholder").html("<div class='narrativeTabWrapper'>" + b.join("") + "</div>");
                                                                }
                                                                b = [];
                                                                // Then build the narrative placeholders
                                                                jQuery.each(data.d.results,function(i,item){
                                                                    if (itemsAlreadyDrawn[item.Id] !== undefined && itemsAlreadyDrawn[item.Id] === item.Modified) {
                                                                        // Already drawn
                                                                        return;
                                                                    }
                                                                    itemsAlreadyDrawn[item.Id] = item.Modified;
                                                                    item.Narrative = item.Narrative.split(" bad ").join(" <span style='background-color:yellow;'>bad</span> ");
                                                                    c = [];
                                                                    url = item.FileDirRef+"/EditForm.aspx?ID="+item.Id;
                                                                    c.push("<div id='narrative_contents_"+item.Id+"' class='item-narrative'>");
                                                                    c.push("<span style='cursor:pointer;' onclick='openItemInDlg(\""+url+"\");'><img src='"+_spPageContextInfo.webServerRelativeUrl+"/_layouts/15/images/edititem.gif'></span><br>");
                                                                    c.push(item.Narrative);
                                                                    c.push("</div>");
                                                                    if(jQuery("#narrative_contents_"+item.Id).length > 0){
                                                                        jQuery("#narrative_contents_"+item.Id).replaceWith(c.join(""));
                                                                    }else{
                                                                        b.push(c.join(""));
                                                                    }
                                                                });
                                                                if(b.length > 0){
                                                                    jQuery("#faq_placeholder").append(b.join(""));
                                                                }
                                                            }).fail(function (err) {
                                                                jQuery("#faq_placeholder").html(JSON.stringify(err));
                                                            });
                                                        }
                                                        
                                                        function toggleNarrative(elm,index){
                                                            // hide all first
                                                            jQuery(".selectedTab").removeClass("selectedTab");
                                                            jQuery(".item-narrative").hide();
                                                            // Show correct item
                                                            jQuery(elm).parent().addClass("selectedTab");
                                                            jQuery("#narrative_contents_"+index).show();
                                                        }
                                                        
                                                        function openItemInDlg(url){
                                                            SP.UI.ModalDialog.showModalDialog({"url":url,"dialogReturnValueCallback":function(a){
                                                                if(a === 1){
                                                                    location.href = location.href;
                                                                }
                                                            }});
                                                        }
                                                        // Call function
                                                        getFaqItems();
                                                        // Set interval
                                                        setInterval(function(){
                                                            getFaqItems();
                                                        },5000);
                                                        </script>
                                                    Viewing 24 reply threads
                                                    • You must be logged in to reply to this topic.