Skip navigation

Other Useful Background Scripts:

Useful Background Script - Find a record by its sys_id

 

Here's another script I use from time to time.  It allows you to search for records created and or updated within a certain timeframe.  Useful when you want to know what all happens when you create or update a particular record.

 

There's an option (addLink = true) to output message with a link to the record so you can just click on the link and jump to the record.  You will have to copy/paste the link if running as a background script or just click on the link if you are using the Xplore: Developer Toolkit:

When "addLink = false", you'll just get the record details.  The class display label, table name and the record's display value are shown.

 

 

// Search for records created and/or updated in the last "x" seconds
//
// Optionally add a hyperlink to the record that was found.
// Useful when running the script in the 'Xplore: Developer Toolkit' -  https://share.servicenow.com/app.do#/detailV2/9a1be70e13800b000de935528144b04c/overview
// To add a link, set the "addLink" variable to "true"

(function(){
  //options
  var created = true;       //look for records created within the specified window
  var updated = true;       //look for records updated within the specified window
  var secondsAgo = 60;      //how many seconds ago were the records created/updated (integer)
  var window = 600;         //how large a window, in seconds, should we look at (integer)
  var addLink = true;       //set to "true" to add a link to the record in the output (Xplore)
  var restrictToUser = "user_id";  //user ID of the user you want to restrict the search to.  Leave blank to look for any user

  //initialize
  var userQuery = "";
  var tableName = "";
  var tableLabel = "";
  var tableWeWantToSearch = true;
  var recordCount = 0;
  var foundRecord = false;
  var message = "";

  try {
    //make sure we are restricting by one or the other
    if (!created && !updated){
      gs.addInfoMessage("Need to restrict by either the Created or Updated dates (both are fine)");
      return;
    }

    //verify the times
    secondsAgo = Math.abs(parseInt(secondsAgo));
    window = Math.abs(parseInt(window));
    if (isNaN(secondsAgo) || isNaN(window)){
      gs.addInfoMessage("Please specify a proper value for both 'secondsAgo' and 'window'");
      return;
    }
    var startTime = new GlideDateTime();         //current date/time in UTC
    startTime.subtract(secondsAgo * 1000);       //get the starting time
    var endTime = new GlideDateTime(startTime);
    endTime.addSeconds(window);                  //and then the end time
    gs.addInfoMessage("Timeframe is between " + startTime + " and " + endTime + " UTC");

    //should we limit the search for records created/updated by a particular user or not?
    if (restrictToUser != ""){
      var restrictedMessage = "Limited to records ";
      if (created){
        userQuery = "sys_created_by=" + restrictToUser;
        restrictedMessage += "created ";
      }
      if (updated){
        if (userQuery !=""){
          userQuery += "^ORsys_updated_by=" + restrictToUser;
          restrictedMessage += "or updated ";
        } else {
          userQuery = "sys_updated_by=" + restrictToUser;
          restrictedMessage += "updated ";
        }
      }
      userQuery += "^";    //need to add an "AND" condition to the filter
      gs.addInfoMessage(restrictedMessage + "by '" + restrictToUser + "'");
    }

    //loop through all the valid base-class tables (no need to look at any sub-classes because the records are contained in the base-class as well)
    var table = new GlideRecord("sys_db_object");
    table.addEncodedQuery("super_class=NULL^label!=^nameISNOTEMPTY");
    table.orderBy("name");
    table.query();
    while (table.next()){
      //get the table name and label
      tableName = (table.getValue("name") + "").toLowerCase();
      tableLabel = (table.getValue("label")+ "").toLowerCase();
      tableWeWantToSearch = true;  //assume it is a table we want to look into

      //skip views and some other tables that return a lot of probably irrelevant records
      //just comment out one of the following lines if you want to include the table(s) in the search
      if (tableName.indexOf("v_") == 0) tableWeWantToSearch = false;                    //views
      else if (tableName == "ts_c_attachment") tableWeWantToSearch = false;             //text search indices
      else if (tableName == "ts_chain") tableWeWantToSearch = false;                    //..
      else if (tableName == "ts_document") tableWeWantToSearch = false;                 //..
      else if (tableName == "ts_phrase") tableWeWantToSearch = false;                   //..
      else if (tableName == "ts_word") tableWeWantToSearch = false;                     //..
      else if (tableName == "ts_word_roots") tableWeWantToSearch = false;               //..
      else if (tableLabel.indexOf("text index ") == 0) tableWeWantToSearch = false;     //..
      else if (tableLabel.indexOf("ts index stats") == 0) tableWeWantToSearch = false;  //..
      else if (tableLabel.indexOf("recorded incremental change") == 0) tableWeWantToSearch = false;
      else if (tableName.indexOf("sh$") == 0) tableWeWantToSearch = false;
      else if (tableLabel.indexOf("rollback sequence") == 0) tableWeWantToSearch = false;
      else if (tableLabel.indexOf("score level") == 0) tableWeWantToSearch = false;
      else if (tableLabel.indexOf("pa favorites") == 0) tableWeWantToSearch = false;
      else if (tableName.indexOf("syslog") == 0) tableWeWantToSearch = false;
      else if (tableName.indexOf("sys_cache_flush") == 0) tableWeWantToSearch = false;
      else if (tableName.indexOf("sys_db_cache") == 0) tableWeWantToSearch = false;
      else if (tableName.indexOf("sysevent") == 0) tableWeWantToSearch = false;         //***** you may want to look at this one sometimes, depending on what you are looking for

      if (tableWeWantToSearch){
        var searchTable = new GlideRecord(table.getValue("name"));
        //make sure it is a valid table first
        if (searchTable.isValid()){
          searchTable.addEncodedQuery(userQuery + "sys_created_onBETWEEN" + startTime + "@" + endTime + "^ORsys_updated_onBETWEEN" + startTime + "@" + endTime);
          //message = searchTable.getEncodedQuery();
          //gs.addInfoMessage(message);
          searchTable.query();
          while(searchTable.next()){
            foundRecord = true;
            recordCount ++;
            _showFoundRecord();
          }
        } else {
          message = "***** Trying to search an invalid table name called '" + table.getValue("name") + "' - the sys_id of that sys_db_object record is '" + table.getValue("sys_id") + "'";
          gs.addInfoMessage(message);
        }
      }
    }

    if (foundRecord == true){
      gs.addInfoMessage(recordCount + " record(s) found");
    } else {
      gs.addInfoMessage("No records were found");
    }
  } catch(err) {
    gs.log("ERROR: " + err);
  }


  function _showFoundRecord(){
    var details = searchTable.getDisplayValue();
    if (addLink == true) {
      details = "<a href='" + gs.getProperty('glide.servlet.uri') + "nav_to.do?uri=" + searchTable.getLink() +"' target='_blank'>" + searchTable.getDisplayValue() + "</a>";
    }
    message = "Found a record of type '" + searchTable.getClassDisplayValue() + "' (" + searchTable.getRecordClassName() + ") called '" + details + "'";
    gs.addInfoMessage(message);
  }
})();

 

 

Note: Remember, running scripts as a background script or the Xplore tool can modify data so be aware what you are running.  Always a good idea to test it out on your personal development instance first.

*** Please Like and/or tag responses as being Correct.
And don't be shy about tagging reponses as Helpful if they were, even if it was not a response to one of your own questions ***

Other Useful Background Scripts:

Useful Background Script - Find records created/updated within a time window

 

Here's a script that I use from time to time.  It allows me to search for a record using its sys_id.  Sometimes you'll get a message on-screen or in the logs that only mentions the sys_id of a record and you've got not idea what it is.  This script will loop though and look for the sys_id in all the base tables in the system, except for views and some indexing/text search tables.

 

There's an option (addLink = true) to output message with a link to the record so you can just click on the link and jump to the record.  You will have to copy/paste the link if running as a background script or just click on the link if you are using the Xplore: Developer Toolkit:

When "addLink = false", you'll just get the record details:

The class display label, table name and the record's display value are shown.

 

 

// Searches for a record using a sys_id
// Replace the "enterYourSys_IdHere" string with the sys_id you are looking for
//
// Optionally add a hyperlink to the record that was found.
// Useful when running the script in the 'Xplore: Developer Toolkit' -  https://share.servicenow.com/app.do#/detailV2/9a1be70e13800b000de935528144b04c/overview
// To add a link, set the "addLink" variable to "true"

(function(){
  try {
    //options
    var searchId = "enterYourSys_IdHere";  //the sys_id of the record you are looking for
    //searchId = "4715ab62a9fe1981018c3efb96143495";  //example - an OOB demo Incident
    //searchId = "08fcd0830a0a0b2600079f56b1adb9ae";  //example - an OOB Schedule, '8-5 weekdays'
    //searchId = "62a7bfaf0a0a0a6500c49682bd82376a";  //example - an OOB Business Rule, 'user query'
    var addLink = true; //set to "true" to add a link to the record in the output (Xplore)

    //initialize
    var tableName = "";
    var tableLabel = "";
    var tableWeWantToSearch = true;
    var foundRecord = false;
    var message = "";

    //loop through all the valid base-class tables (no need to look at any sub-classes)
    var table = new GlideRecord("sys_db_object");
    table.addEncodedQuery("super_class=NULL");
    table.query();
    while (table.next()){
      //get the table name and label
      tableName = (table.getValue("name") + "").toLowerCase();
      tableLabel = (table.getValue("label") + "").toLowerCase();
      tableWeWantToSearch = true;  //assume it is a table we want to search in

      //skip views and some other tables that return a lot of probably irrelevant records
      //just comment out the line if you want to include the table in the search
      if (tableName.indexOf("v_") == 0) tableWeWantToSearch = false;                    //views
      else if (tableName == "ts_c_attachment") tableWeWantToSearch = false;             //text search indices
      else if (tableName == "ts_chain") tableWeWantToSearch = false;                    //..
      else if (tableName == "ts_document") tableWeWantToSearch = false;                 //..
      else if (tableName == "ts_phrase") tableWeWantToSearch = false;                   //..
      else if (tableName == "ts_word") tableWeWantToSearch = false;                     //..
      else if (tableName == "ts_word_roots") tableWeWantToSearch = false;               //..
      else if (tableLabel.indexOf("text index ") == 0) tableWeWantToSearch = false;     //..
      else if (tableLabel.indexOf("ts index stats") == 0) tableWeWantToSearch = false;  //..
      else if (tableLabel.indexOf("recorded incremental change") == 0) tableWeWantToSearch = false;
      else if (tableName.indexOf("sh$") == 0) tableWeWantToSearch = false;
      else if (tableLabel.indexOf("rollback sequence") == 0) tableWeWantToSearch = false;
      else if (tableLabel.indexOf("score level") == 0) tableWeWantToSearch = false;
      else if (tableLabel.indexOf("pa favorites") == 0) tableWeWantToSearch = false;
      else if (tableName.indexOf("syslog") == 0) tableWeWantToSearch = false;    
      else if (tableName.indexOf("sys_cache_flush") == 0) tableWeWantToSearch = false;
      else if (tableName.indexOf("sys_db_cache") == 0) tableWeWantToSearch = false;

      if (tableWeWantToSearch){
        var searchTable = new GlideRecord(table.getValue("name"));
        //make sure it is a valid table first
        if (searchTable.isValid()){
          //searchTable.setWorkflow(false);
          searchTable.addQuery("sys_id", searchId);
          searchTable.query();
          while(searchTable.next()){
            foundRecord = true;
            _showFoundRecord();
          }
        } else {
          message = "***** Trying to search an invalid table name called '" + table.getValue("name") + "' - the sys_id of that sys_db_object record is '" + table.getValue("sys_id") + "'";
          gs.addInfoMessage(message);
        }
      }
    }

    if (foundRecord == false){
      gs.addInfoMessage("The record was not found");
    }
  } catch(err) {
    gs.log("ERROR: " + err);
  }


  function _showFoundRecord(){
    var details = searchTable.getDisplayValue();
    if (addLink == true) {
      details = "<a href='" + gs.getProperty('glide.servlet.uri') + "nav_to.do?uri=" + searchTable.getLink() +"' target='_blank'>" + searchTable.getDisplayValue() + "</a>";
    }
    message = "Found a record of type '" + searchTable.getClassDisplayValue() + "' (" + searchTable.getRecordClassName() + ") called '" + details + "'";
    gs.addInfoMessage(message);
  }
})();

 

 

I had seen this post a while back by restevao and wanted to post my script but just never got around to it until now.

 

Note: Remember, running scripts as a background script or the Xplore tool can modify data so be aware what you are running.  Always a good idea to test it out on your personal development instance first.

*** Please Like and/or tag responses as being Correct.
And don't be shy about tagging reponses as Helpful if they were, even if it was not a response to one of your own questions ***

As a Technical Support Engineer (TSE), most of my blogs come from experiences encountered by our customer base. PRBs are never nice, but they do offer great opportunities for blog posts. One in particular is KB0639042, which is causing some issues while running transforms after upgrading to Jakarta.

 

The tricky part about this PRB is that the import set only reports a java.lang.NullPointerException, so we need to dig into the log file to determine the underlying issue.

 

Looking in the system logs, we get a better idea of where the exception happened:

 

SEVERE *** ERROR *** com.glide.system_import_set.ImportSetTransformerWorker

java.lang.NullPointerException

        at java.util.Calendar.setTime(Calendar.java:1770)

        at java.text.SimpleDateFormat.format(SimpleDateFormat.java:943)

        at java.text.SimpleDateFormat.format(SimpleDateFormat.java:936)

        at java.text.DateFormat.format(DateFormat.java:345)

        at com.glide.db.impex.transformer.TransformEntry.getDateString(TransformEntry.java:126)

        at com.glide.db.impex.transformer.TransformerField.getSourceValue(TransformerField.java:116)

        at com.glide.db.impex.transformer.TransformerField.transformField(TransformerField.java:88)

        at com.glide.db.impex.transformer.TransformRow.transformCurrent(TransformRow.java:100)

        at com.glide.db.impex.transformer.TransformRow.transform(TransformRow.java:69)

        at com.glide.db.impex.transformer.Transformer.transformBatch(Transformer.java:154)

        at com.glide.db.impex.transformer.Transformer.transform(Transformer.java:79)

        at com.glide.system_import_set.ImportSetTransformerImpl.transformEach(ImportSetTransformerImpl.java:239)

        at com.glide.system_import_set.ImportSetTransformerImpl.transformAllMaps(ImportSetTransformerImpl.java:91)

        at com.glide.system_import_set.ImportSetTransformerWorker.startWork(ImportSetTransformerWorker.java:40)

        at com.glide.worker.AbstractProgressWorker.startAndWait(AbstractProgressWorker.java:116)

        at com.glide.worker.ProgressWorker.startAndWait(ProgressWorker.java:52)

        at com.glide.worker.BackgroundProgressJob.execute(BackgroundProgressJob.java:54)

        at com.glide.schedule.JobExecutor.executeJob(JobExecutor.java:103)

        at com.glide.schedule.JobExecutor.execute(JobExecutor.java:89)

        at com.glide.schedule.GlideScheduleWorker.executeJob(GlideScheduleWorker.java:219)

        at com.glide.schedule.GlideScheduleWorker.lambda$process$48(GlideScheduleWorker.java:161)

        at com.glide.schedule.GlideScheduleWorker$$Lambda$30/3401850.run(Unknown Source)

        at com.glide.worker.TransactionalWorkerThread.executeInTransaction(TransactionalWorkerThread.java:35)

        at com.glide.schedule.GlideScheduleWorker.process(GlideScheduleWorker.java:161)

        at com.glide.schedule.GlideScheduleWorker.run(GlideScheduleWorker.java:72)

 

From the error stack, we can see that we are dealing with a date/time column.

 

Underlying causes of transform issues after upgrading to Jakarta

 

There are two specific PRBs that we have identified as the source of these data load and transform issues.

  • KB0639042: Transforming a "Basic Date/Time" to "Date/Time" field creates null pointer exception has been identified as the underlying issue.

    This PRB is specific to Jakarta, and as the short description indicates, when the import set (staging) table has a column with a data type of "Basic date/time", we encounter this exception.

    The workaround for this PRB is to modify the import set table and change all of the data types from "Basic date/time" to "Date/Time" (or "String"). This fix has been incorporated into Jakarta Patch 5 and Kingston.

 

MID Server reported error: java.lang.NullPointerException

at java.util.Calendar.setTime(Calendar.java:1770)

at java.text.SimpleDateFormat.format(SimpleDateFormat.java:943)

at java.text.SimpleDateFormat.format(SimpleDateFormat.java:936)

at java.text.DateFormat.format(DateFormat.java:345)

at com.service_now.monitor.jdbc.JDBCRowSet.next(JDBCRowSet.java:181)

at com.service_now.monitor.jdbc.JDBCMultiRowSet.next(JDBCMultiRowSet.java:19)

at com.service_now.mid.probe.JDBCProbe.doSelect(JDBCProbe.java:319)

at com.service_now.mid.probe.JDBCProbe.doQuery(JDBCProbe.java:198)

at com.service_now.mid.probe.JDBCProbe.probe(JDBCProbe.java:123)

at com.service_now.mid.probe.AProbe.process(AProbe.java:81)

at com.service_now.mid.queue_worker.AWorker.runWorker(AWorker.java:119)

at com.service_now.mid.queue_worker.AWorkerThread.run(AWorkerThread.java:20)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

 

This PRB has been fixed in Jakarta Patch 2 Hot Fix 1, Jakarta Patch 3 (and all subsequent Jakarta patches), and Kingston.

 

So, when you upgrade to Jakarta, you can either examine all of your import set row tables, checking for Basic date/time data types, or simply upgrade to Jakarta Patch 5 and avoid these issues altogether!

Other posts related to Themes

"Helsinki Gray" UI16 Theme

Istanbul Theme Properties Visual Guide

Jakarta Theme Properties Visual Guide

 

We are talking about Themes once again in this post, this time for the Kingston release.

 

Test Theme Record

Here is everyone's favorite Theme record, updated for Kingston:

 

/* Kingston Test
    Created by Jim Coyne - https://community.servicenow.com/people/jim.coyne

    This is to help show what elements are affected by the CSS colors - PLEASE, PLEASE, PLEASE DO NOT ACTUALLY USE THIS THEME FOR REAL  :-)
    It uses HTML color names to hopefully make it a little easier to understand and find the color

    The comments include a copy of the UI16 default value for Kingston:
        https://docs.servicenow.com/bundle/kingston-servicenow-platform/page/administer/navigation-and-ui/reference/r_DefaultCSSStyle.html

    Refer to this post for more information:
        https://community.servicenow.com/community/develop/blog/2017/11/22/kingston-theme-properties-visual-guide
*/

/* Mostly Banner */
$navpage-header-bg: DodgerBlue  /* #303a46 - banner background  */
$navpage-header-color: Aqua  /*  #ffffff - banner title text  */
$navpage-header-button-color: Coral /*  no default, not documented - logged-in user name + Connect, Help and Settings icons   */
$navpage-header-divider-color: FireBrick  /*  #455464 - banner separator line  */
$navpage-button-color: BlueViolet  /*  #fff - Update Set and Application icons + Navigator icons + Connect icons  */
$navpage-button-color-hover: Yellow  /*  #7EC24F - banner icons + clear search text icons + Navigator buttons when clicked  */


/* Mostly Navigator */
$navpage-nav-bg: BurlyWood  /*  #303a46 -  Navigator and Sidebar header and footers + unselected Navigator and Connect tabs background + History time separator background  */
$navpage-nav-bg-sub: Pink  /*  #455464 - Navigator and Sidebar backgrounds + background for Applications, Favorites and History entries  */
$nav-highlight-main: LightSkyBlue  /*  #3D4853  - Module, Favorite, History, Connect and Help item when clicked  */
$subnav-background-color: SlateGray  /*  #455464 - Module background  */
$navpage-nav-app-text: Black /*  #cfd4d8 - Application, Favorite and History text + Connect and Help text  */
$navpage-nav-color-sub: Tomato  /*  #bec1c6 - Module text  */
$navpage-nav-app-text-hover: DarkTurquoise   /*  no default, not documented - Selected Module, Favorite, History, Connect and Help item text  */
$navpage-nav-selected-bg: Olive  /*  #4B545F - Selected Navigator and Connect tab background */
$navpage-nav-selected-color: OrangeRed  /*  #ffffff - Active Navigator and Connect tab icons  */
$navpage-nav-unselected-color: Orange  /*  #bec1c6 - Inactive Navigator and Connect tab icons  */
$navpage-nav-border: Magenta  /*  #ddd - Global Search, Navigator and Connect search box outlines + search box filter icons  */
$nav-hr-color: YellowGreen  /* #303a46 - Separator modules without a label + Vertical separator line between main frame and Navigator/Sidebars  */
$nav-highlight-bar-active: Red  /*  #278efc - Highlight line under active Navigator/Connect tabs + selected Connect, Help or Settings icon + number of Connect messages dot  */
$nav-highlight-bar-inactive: PaleGoldenRod  /*  #828890 - Highlight line under inactive Navigator/Connect tabs  */


/* Search text */
$search-text-color: LightGreen  /*  #e7e9eb - Search text + clear search text icons + Navigator bar filter icon when minimized  */


/* unknown properties, listed as a default on the docs site  */
$connect-latest-message: Violet  /*  #cfd4d8  */

 

Just like the previous test Themes, it is not meant for actual use, but to help point out what properties affect what controls.

 

I used the default values from the "Default CSS styles for UI16" section from the Default CSS styles article on the docs site to build the Theme.  Below is a list of the individual properties with screenshots to show the affected controls/areas, which appear in yellow.

 

I've also listed any changes from Jakarta as well as some note/comments/opinions.

 

$navpage-header-bg - #303a46

  • Banner frame background

 

 

$navpage-header-color - #ffffff

  • Banner frame title text
  • Domain picker icon

Change from Jakarta:

  • Global Search icon no longer uses the property

 

Notes:

  • Domain picker icon should be using "$navpage-header-button-color" instead for consistency

 

 

$navpage-header-button-color (#ffffff, not listed in the Default CSS styles article)

  • Logged-in user name text
  • OpenFrame (phone), Global Search (magnifying glass), Connect (text bubbles), Help (question mark) and Settings (gear) icons
  • Xplore: Developer Toolkit icon (eyeglasses) (see note below)

Changes from Jakarta:

  • Global Search icon uses this property now

 

Notes:

  • almost there - only need the Update Set, Application and Domain picker icons to use it now for consistency
  • The Xplore: Developer Toolkit is an excellent third-party tool from James.Neale and company, available on Share

 

 

$navpage-header-divider-color - #455464

  • Banner frame separator line

 

 

$navpage-button-color - #ffffff

  • Update Set and Application icons
  • Minimize Navigator and Edit Favorites icons
  • Create a New Conversation, Open Connect standalone interface and Close Connect Sidebar icons

Notes:

  • Update Set and Application icons should be using "$navpage-header-button-color" instead for consistency

 

 

$navpage-button-color-hover - #7ec24F

  • Update Set, Application, Global Search, Connect, Help and Settings icons when cursor is over the controls (only the Global Search icon is highlighted in the first screenshot below but the others will highlight when the cursor is over them)
  • Clear search text icon when cursor is over the control in Navigator and Connect sidebar
  • Navigator bar icons when clicked (some browsers [e.g. Chrome] only remove the highlight after cursor is clicked elsewhere)

Notes:

  • the Domain picker icon does not actually do anything so there's no change when hovering over it

 

 

$navpage-nav-bg - #303a46

  • Navigator, Connect and Help Sidebar header and footers
  • Unselected Navigator and Connect Sidebar tab backgrounds
  • Connect Sidebar section headers
  • History time separator background

 

 

$navpage-nav-bg-sub - #455464

  • Navigator, Connect and Help Sidebar backgrounds
  • Background for Applications, Favorites and History entries
  • Selected icon when editing a Favorite

 

 

$nav-highlight-main - #3D4853

  • Module/Favorite (not in Safari)/History item when clicked (each browser has its own quirks with this one - Safari only shows while clicking the item, others will keep the highlight a second or so)
  • Selected Connect item (remains highlighted until another is selected or another record's chat window is selected or the record's chat window is closed)

 

Notes:

  • Help item is no longer highlighted (shown differently now in Kingston)

 

 

$subnav-background-color - #455464

  • Module background

 

 

$navpage-nav-app-text - #cfd4d8

  • Application title text
  • Separator Module icon
  • "Loading..." Navigator message
  • Favorites text
  • Delete Favorite icon
  • History time separator text
  • History items text
  • Connect message text
  • Connect informational text
  • Help Sidebar title and context menu icon

Notes:

  • Edit Application and Add to Favorites icons no longer use this property

 

 

$navpage-nav-color-sub - #bec1c6

  • Module text
  • Favorite icon
  • Edit Module and Add To Favorites icons when hovering over them

 

 

$navpage-nav-app-text-hover (unknown default, not listed in the Default CSS styles article)

  • Module text, Edit Module and Add To Favorites icons when Module is selected/clicked
  • Favorite text and Delete Favorite icon when Favorite is selected/clicked
  • History text, Connect message
  • First Module that matches a Navigator search

Notes:

  • Help item text when selected/clicked no longer uses this property (Help works differently in Kingston)

 

 

$navpage-nav-selected-bg - #4b545F

  • Active Navigator tab background (Apps, Favorites or History)
  • Active Connect tab background (Chat or Support)

 

 

$navpage-nav-selected-color - #ffffff

  • Active Navigator tab icon (Apps, Favorites or History)
  • Active Connect tab icon (Chat or Support)

 

 

$navpage-nav-unselected-color - #bec1c6

  • Inactive Navigator tab icons (Apps, Favorites or History)
  • Inactive Connect tab icons (Chat or Support)

 

 

$nav-highlight-bar-active - #278efc

  • Highlight line under active Navigator tab (Apps, Favorites or History)
  • Highlight line under active Connect tab (Chat or Support)
  • Navigator and Connect search box outlines when selected
  • Selected Connect, Help or Settings icon (only the Connect icon is highlighted in the screenshot below but the others will highlight when clicked/selected)
  • Number of Connect messages dot
  • Outline of logged-in user control when selected

 

 

$nav-highlight-bar-inactive - #828890

  • Line under inactive Navigator tabs
  • Line under inactive Connect tabs

 

 

$nav-hr-color - #303a46

  • Separator modules without a label
  • Vertical separator line between main frame and Navigator/Sidebars

 

 

$navpage-nav-border - #dddddd

  • Global Search, Navigator and Connect search box outlines
  • Navigator and Connect search box filter icons
  • Outline of logged-in user control when selecting a drop-down menu item

 

 

$search-text-color - #e7e9eb

  • Global Search, Navigator and Connect search text
  • Clear search text icon in Navigator and Connect search boxes
  • Navigator bar filter icon when minimized

 

 

Updates

I'll try to keep this post updated with anything new that I find.  Please let me know if I've missed anything, or if something is incorrect.  I started this article based on the Jakarta one, so please forgive any copy/paste errors (but let me know about any).  Thanks in advance.

*** Please Like and/or tag responses as being Correct.
And don't be shy about tagging reponses as Helpful if they were, even if it was not a response to one of your own questions ***

Filter Blog

By date: By tag: