Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Jelly script populating innerHTML

xiaix
Tera Guru

I'm trying to get the following to work:

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

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

      <g:evaluate jelly="true">

              var gr = new GlideRecord('sys_user_grmember');

              gr.addQuery('group', '8a4cd5b36fd3d1000fd9122cbb3ee48f'); // "Service Desk" group sys_id.

              gr.orderBy('user.name');

              gr.query();        

      </g:evaluate>

             

      <j:while test="${gr.next()}">

              <div id="${gr.user.sys_id}"></div>

      </j:while>

      <g:evaluate jelly="true">    

              var gr2 = new GlideRecord('u_round_robin');

              gr2.query();

             

              while (gr2.next())

              {

                      document.getElementById('gr2.u_user_sys_id').innerHTML = gr2.u_daily_tickets_assigned;

              }

      </g:evaluate>

     

</j:jelly>

This is the part that isn't working:

document.getElementById('gr2.u_user_sys_id').innerHTML = gr2.u_daily_tickets_assigned;

I'm sure that I'm not using jelly correctly.   Can someone please advise?

8 REPLIES 8

Yeah, I didn't want to run a glideRecord query for every iteration of the first while() loop.   Just seemed like bad code.



Anyway, the following code works.   Thank you so much for your responses!



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


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



      <g:evaluate jelly="true">


              var gr = new GlideRecord('sys_user_grmember');


              gr.addQuery('group', '8a4cd5b36fd3d1000fd9122cbb3ee48f'); // "Service Desk" group sys_id.


              gr.orderBy('user.name');


              gr.query();


      </g:evaluate>



      <script>


              var activeCount = 0;


              var inactiveCount = 0;



              function add(val)


              {


                      if (val == "a")


                              activeCount++;


                      else if (val == "i")


                              inactiveCount++;


              }


      </script>



      <style>


              .trHover tr:hover td {background:#d7d7d7}


      </style>


              <table class="trHover">


                      <div id="stats">


                      </div>


                      <tr>


                              <td>


                                      <span style="text-decoration: underline;">Technician</span>


                              </td>


                              <td>


                                      <span style="text-decoration: underline;">#</span>


                              </td>


                              <td>


                                      <span style="text-decoration: underline;">Last ticket assigned</span>


                              </td>


                      </tr>


                      <j:while test="${gr.next()}">


                              <tr>


                                      <td>


                                              <a target="_top" href="nav_to.do?uri=sys_user.do?sys_id=${gr.user.sys_id}">


                                                      <j:if test="${gr.user.u_round_robin_active}">


                                                              <span style="background-color: #5CE65C;font-weight: bold;">${gr.user.name}</span>


                                                              <script> add("a"); </script>


                                                      </j:if>


                                                      <j:if test="${!gr.user.u_round_robin_active}">


                                                              <i>${gr.user.name}</i>


                                                              <script> add("i"); </script>


                                                      </j:if>


                                              </a>


                                      </td>


                                      <td width="10">


                                              <span id="${gr.user.sys_id}">


                                                      <g:evaluate jelly="true">


                                                              var gdt = new GlideDateTime();


                                                              var month = gdt.getMonth();


                                                              var year = gdt.getYear();


                                                              var day = gdt.getDayOfMonth();



                                                              var gr2 = new GlideRecord('u_round_robin');


                                                              gr2.addQuery('u_year', year);


                                                              gr2.addQuery('u_month', month);


                                                              gr2.addQuery('u_day_of_month', day);


                                                              gr2.query();


                                                      </g:evaluate>


                                                      <j:while test="${gr2.next()}">


                                                              <j:if test="${gr.user.sys_id == gr2.u_user_sys_id}">


                                                                      ${gr2.u_daily_tickets_assigned}


                                                              </j:if>


                                                      </j:while>


                                              </span>


                                      </td>


                                      <td>


                                              <j:if test="${gr.user.u_round_robin_active}">


                                                      (${gr.user.u_last_ticket_assigned.getDisplayValue()})


                                              </j:if>


                                              <j:if test="${!gr.user.u_round_robin_active}">


                                                      &#160;


                                              </j:if>


                                      </td>


                              </tr>


                      </j:while>


      </table>



      <script>


              var tot = activeCount + inactiveCount;


              document.getElementById("stats").innerHTML = "On:&#160;" + activeCount + "&#160;&#160;&#160;Off:&#160;" + inactiveCount + "&#160;&#160;&#160;Total:&#160;" + tot + "<br /><i>(color indicates Round Robin is activated)</i><br /><br />";


      </script>




</j:jelly>












hello,



I would like the code where you are inserting records in u_round_robin table.


Sure.   It's my Script Include, named: RoundRobin_Toggle



var RoundRobin_Toggle = Class.create();




RoundRobin_Toggle.prototype = Object.extendsObject(AbstractAjaxProcessor, {


RoundRobin_Toggle: function() {


     


      var gr = new GlideRecord('sys_user');


      gr.addQuery('sys_id', gs.getUser().getRecord().getValue('sys_id'));


      gr.query();


     


      if (gr.next())


      {


              var act = 99;


              if (gr.u_round_robin_active == true)


              {


                      gr.u_round_robin_active = false;


                      act = 0;


              }


              else if (gr.u_round_robin_active == false)


              {


                      gr.u_round_robin_active = true;


                      act = 1;


              }


             


              gr.update();


             


              var nowdt = gs.nowDateTime();


             


              var gdt = new GlideDateTime();


              var month = gdt.getMonth();


              var year = gdt.getYear();


              var day = gdt.getDayOfMonth();


             


              var gr2 = new GlideRecord('u_round_robin');


              gr2.initialize();


              gr2.u_user_sys_id = gs.getUser().getRecord().getValue('sys_id');


              gr2.u_user = gs.getUser().getRecord().getValue('name');


              gr2.u_year = year;


              gr2.u_month = month;


              gr2.u_day_of_month = day;


              gr2.u_timestamp = nowdt;


             


              if (act == 0)


              {


                      gr2.u_action = "Toggled INACTIVE";


              }


              else if (act == 1)


              {


                      gr2.u_action = "Toggled ACTIVE";


              }


              else if (act == 99)


              {


                      gr2.u_timestamp = '';


              }


             


              gr2.insert();


      }


}


});





Thankuu so much David. Is this being called in your Ui page