Quantcast
Channel: OutSystems Community
Viewing all articles
Browse latest Browse all 1476385

[Forums] Outsytems DataGrid: Show multiple Icons in action column

$
0
0

So I found a solution,

I Added an action column with a status number to determine which colored icon to display.

Then, I added a mutation observer to look at that status and add the appropriate icons.

The data grid only displays the rows visible on the screen and modifies the rows when the grid is scrolling.

OnReady JavaScript

//AddIcons

var elCellGrid = document.querySelector("div.wj-cells");

obGridChange = new MutationObserver(function(mutationsList, obGridChange) {

  AddIcons();

});

obGridChange.observe(elCellGrid, {characterData: false, childList: true, attributes: true});

Included Script

function AddIcons()

{

  var arrHeaders = document.querySelector("div.wj-colheaders").querySelectorAll("div.wj-cell");

  var arrRows = document.querySelector("div.wj-cells").querySelectorAll("div.wj-row");

  var arrCells =[];

  var nStatusCol = -1;

  var sStatus = "";

  var elStatusCell = null;

 

  for(var i = 0; i < arrHeaders.length; i++) {

    if(arrHeaders[i].innerText == "Status") nStatusCol = i;

  }

 

  for(var j = 0; j < arrRows.length; j++) {

    elStatusCell = arrRows[j].querySelectorAll("div.wj-cell")[nStatusCol];

    sStatus = elStatusCell.innerText;

    switch(sStatus) {

      case "0":

        elStatusCell.innerHTML = "<div data-block='Adaptive.ColumnsSmallLeft' class='OSBlockWidget' id='$b4'><div data-container='' class='columns columns-small-left gutter-none tablet-break-none phone-break-none '><div class='columns-item' id='b4-Column1'><div data-container='' class='circle-base  circle-green OSInline' title='Within Current Period: Red = 0 events, Yellow = 1 event, Green > 1 event' style='width: 20px; margin-left: 0px; height: 20px; margin-right: 10px;'><i data-icon='' class='icon fa fa-exclamation-circle fa-1x' title='Device has never been Rounded' style='font-size: 20px;'></i></div></div><div class='columns-item' id='b4-Column2'><div data-container=''><i data-icon='' class='icon fa fa-pencil-square-o fa-2x' title='Edit' id='IconEdit2' style='color: rgb(0, 121, 161); font-size: 20px; margin-right: 10px; margin-top: 2px;'></i><i data-icon='' class='icon fa fa-wrench fa-2x' title='Perform Maintenance' id='IconWrench2' style='margin-left: 0px; color: rgb(0, 121, 161); font-size: 20px;'></i></div></div></div></div>";

        break;

      case "1":

        elStatusCell.innerHTML = "<div data-container='' class='columns columns-small-left gutter-none tablet-break-none phone-break-none '><div class='columns-item' id='b4-Column1'><div data-container='' class='circle-base circle-red' style='margin-left: 0px; margin-right: 0px;'></div></div><div class='columns-item' id='b4-Column2'><div data-container=''><i data-icon='' class='icon fa fa-pencil-square-o fa-2x' title='Edit' id='IconEdit2' style='color: rgb(0, 121, 161); font-size: 20px; margin-right: 10px; margin-top: 2px;'></i><i data-icon='' class='icon fa fa-wrench fa-2x' title='Perform Maintenance' id='IconWrench2' style='margin-left: 0px; color: rgb(0, 121, 161); font-size: 20px;'></i></div></div></div>";

        break;

      case "2":

        elStatusCell.innerHTML = "<div data-container='' class='columns columns-small-left gutter-none tablet-break-none phone-break-none '><div class='columns-item' id='b4-Column1'><div data-container='' class='circle-base circle-yellow' style='margin-left: 0px; margin-right: 0px;'></div></div><div class='columns-item' id='b4-Column2'><div data-container=''><i data-icon='' class='icon fa fa-pencil-square-o fa-2x' title='Edit' id='IconEdit2' style='color: rgb(0, 121, 161); font-size: 20px; margin-right: 10px; margin-top: 2px;'></i><i data-icon='' class='icon fa fa-wrench fa-2x' title='Perform Maintenance' id='IconWrench2' style='margin-left: 0px; color: rgb(0, 121, 161); font-size: 20px;'></i></div></div></div>";

        break;

      case "3":

        elStatusCell.innerHTML = "<div data-container='' class='columns columns-small-left gutter-none tablet-break-none phone-break-none '><div class='columns-item' id='b4-Column1'><div data-container='' class='circle-base circle-green' style='margin-left: 0px; margin-right: 0px;'></div></div><div class='columns-item' id='b4-Column2'><div data-container=''><i data-icon='' class='icon fa fa-pencil-square-o fa-2x' title='Edit' id='IconEdit2' style='color: rgb(0, 121, 161); font-size: 20px; margin-right: 10px; margin-top: 2px;'></i><i data-icon='' class='icon fa fa-wrench fa-2x' title='Perform Maintenance' id='IconWrench2' style='margin-left: 0px; color: rgb(0, 121, 161); font-size: 20px;'></i></div></div></div>";

        break;

      case "4":

        elStatusCell.innerHTML = "<div data-block='Adaptive.ColumnsSmallLeft' class='OSBlockWidget' id='$b4'><div data-container='' class='columns columns-small-left gutter-none tablet-break-none phone-break-none '><div class='columns-item' id='b4-Column1'><div data-container='' class='circle-base  circle-yellow OSInline' title='Within Current Period: Red = 0 events, Yellow = 1 event, Green > 1 event' style='width: 20px; margin-left: 0px; height: 20px; margin-right: 10px;'><i data-icon='' class='icon fa fa-history fa-1x' title='Device has never been Rounded' style='font-size: 20px;'></i></div></div><div class='columns-item' id='b4-Column2'><div data-container=''><i data-icon='' class='icon fa fa-pencil-square-o fa-2x' title='Edit' id='IconEdit2' style='color: rgb(0, 121, 161); font-size: 20px; margin-right: 10px; margin-top: 2px;'></i><i data-icon='' class='icon fa fa-wrench fa-2x' title='Perform Maintenance' id='IconWrench2' style='margin-left: 0px; color: rgb(0, 121, 161); font-size: 20px;'></i></div></div></div></div>";

        break;

      case "5":

        elStatusCell.innerHTML = "<div data-block='Adaptive.ColumnsSmallLeft' class='OSBlockWidget' id='$b4'><div data-container='' class='columns columns-small-left gutter-none tablet-break-none phone-break-none '><div class='columns-item' id='b4-Column1'><div data-container='' class='circle-base  circle-green OSInline' title='Within Current Period: Red = 0 events, Yellow = 1 event, Green > 1 event' style='width: 20px; margin-left: 0px; height: 20px; margin-right: 10px;'><i data-icon='' class='icon fa fa-history fa-1x' title='Device has never been Rounded' style='font-size: 20px;'></i></div></div><div class='columns-item' id='b4-Column2'><div data-container=''><i data-icon='' class='icon fa fa-pencil-square-o fa-2x' title='Edit' id='IconEdit2' style='color: rgb(0, 121, 161); font-size: 20px; margin-right: 10px; margin-top: 2px;'></i><i data-icon='' class='icon fa fa-wrench fa-2x' title='Perform Maintenance' id='IconWrench2' style='margin-left: 0px; color: rgb(0, 121, 161); font-size: 20px;'></i></div></div></div></div>";

        break;

      case "6":

        elStatusCell.innerHTML = "<div data-container='' class='columns columns-small-left gutter-none tablet-break-none phone-break-none '><div class='columns-item' id='b4-Column1'><div data-container='' class='circle-base circle-red' style='margin-left: 0px; margin-right: 0px;'></div></div><div class='columns-item' id='b4-Column2'><div data-container=''><i data-icon='' class='icon fa fa-pencil-square-o fa-2x' title='Edit' id='IconEdit2' style='color: rgb(0, 121, 161); font-size: 20px; margin-right: 10px; margin-top: 2px;'></i><i data-icon='' class='icon fa fa-wrench fa-2x' title='Perform Maintenance' id='IconWrench2' style='margin-left: 0px; color: rgb(0, 121, 161); font-size: 20px;'></i></div></div></div>";

        break;

      }

  }

}




Viewing all articles
Browse latest Browse all 1476385

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>