<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Adding javascript based date picker into dashboard in Dashboards &amp; Visualizations</title>
    <link>https://community.splunk.com/t5/Dashboards-Visualizations/Adding-javascript-based-date-picker-into-dashboard/m-p/521407#M35127</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I have dashboard with several visualizations. Im trying to add 2 date pickers "From", "To" to select date range so that the visualizations query events in that date range input by the user. I'm not able to use splunk's default "Time" input object because I have to limit users from selecting "From" date to maximum of 3 years from current date.&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have been able to add the date pickers into simplexml as per suggestion in this post&amp;nbsp;&lt;A href="https://community.splunk.com/t5/Dashboards-Visualizations/Jquery-datepicker-in-splunk/m-p/361049" target="_blank" rel="noopener"&gt;https://community.splunk.com/t5/Dashboards-Visualizations/Jquery-datepicker-in-splunk/m-p/361049&lt;/A&gt;&lt;/P&gt;&lt;P&gt;The thing which I'm struggling with is to set the min/max attribute of "date" type element on "change" event. To explain this...for example.. if a user selects "From" date as 09/21/2020, then the calendar in "To" date should disable all the dates before this date.. Likewise if user selects &amp;nbsp;09/21/2020 as "To" date then disable all date selections after this date in "From" date field.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Here is the code for dashboard&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;dashboard script="datepicker.js"&amp;gt;
  &amp;lt;label&amp;gt;HTML Date Picker&amp;lt;/label&amp;gt;
  &amp;lt;!-- Dumy Search to set From Date and To Date on load--&amp;gt;
  &amp;lt;search&amp;gt;
    &amp;lt;query&amp;gt;| makeresults | eval fromDate=strftime(relative_time(now(),"-1d@d"),"%Y-%m-%d") | eval toDate=strftime(now(),"%Y-%m-%d")&amp;lt;/query&amp;gt;
    &amp;lt;earliest&amp;gt;-1s@s&amp;lt;/earliest&amp;gt;
    &amp;lt;latest&amp;gt;now&amp;lt;/latest&amp;gt;
    &amp;lt;done&amp;gt;
      &amp;lt;eval token="strMinDate"&amp;gt;strftime(relative_time(now(), "-3years"), "%Y-%m-%d")&amp;lt;/eval&amp;gt;
      &amp;lt;eval token="strMaxDate"&amp;gt;strftime(now(), "%Y-%m-%d")&amp;lt;/eval&amp;gt;

    &amp;lt;/done&amp;gt;
  &amp;lt;/search&amp;gt;
  &amp;lt;!-- Dumy Search to convert String Time to Epoch Time--&amp;gt;
  &amp;lt;search&amp;gt;
    &amp;lt;query&amp;gt;| makeresults | eval earliestTime=strptime("$tokFromDate$","%Y-%m-%d") | eval latestTime=strptime("$tokToDate$","%Y-%m-%d")&amp;lt;/query&amp;gt;
    &amp;lt;earliest&amp;gt;-1s@s&amp;lt;/earliest&amp;gt;
    &amp;lt;latest&amp;gt;now&amp;lt;/latest&amp;gt;
    &amp;lt;done&amp;gt;
      &amp;lt;set token="tokEarliestTime"&amp;gt;$result.earliestTime$&amp;lt;/set&amp;gt;
      &amp;lt;set token="tokLatestTime"&amp;gt;$result.latestTime$&amp;lt;/set&amp;gt;
    &amp;lt;/done&amp;gt;
  &amp;lt;/search&amp;gt;
  &amp;lt;row&amp;gt;
    &amp;lt;panel&amp;gt;
      &amp;lt;title&amp;gt;Selected String Time - $strMinDate$ - $strMaxDate$&amp;lt;/title&amp;gt;
      &amp;lt;html&amp;gt;
        &amp;lt;style&amp;gt;
          .dateContainer {
            display: flex;
          }
          .dateInput {
            padding-right: 15px;
          }
        &amp;lt;/style&amp;gt;
        &amp;lt;div class="dateContainer"&amp;gt;
          &amp;lt;div class="dateInput"&amp;gt;
            &amp;lt;div&amp;gt;From Date:&amp;lt;/div&amp;gt;
            &amp;lt;input id="inputFromDate" type="date" min="$strMinDate$" max="$strMaxDate$"/&amp;gt;
          &amp;lt;/div&amp;gt;
          &amp;lt;div class="dateInput"&amp;gt;
            &amp;lt;div&amp;gt;To Date:&amp;lt;/div&amp;gt;
            &amp;lt;input id="inputToDate" type="date" min="$strMinDate$" max="$strMaxDate$"/&amp;gt;
          &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/html&amp;gt;
    &amp;lt;/panel&amp;gt;
  &amp;lt;/row&amp;gt;
  &amp;lt;row&amp;gt;
    &amp;lt;panel&amp;gt;
      &amp;lt;title&amp;gt;Converted Epoch Time - $tokFromDate$ $tokToDate$&amp;lt;/title&amp;gt;
      &amp;lt;chart&amp;gt;
        &amp;lt;title&amp;gt;Splunkd errors timechart by top 5 components&amp;lt;/title&amp;gt;
        &amp;lt;search&amp;gt;
          &amp;lt;query&amp;gt;index=_internal sourcetype="splunkd" log_level!="INFO" component="*" | timechart count by component limit=5 usenull=f useother=f
          &amp;lt;/query&amp;gt;
          &amp;lt;earliest&amp;gt;$tokEarliestTime$&amp;lt;/earliest&amp;gt;
          &amp;lt;latest&amp;gt;$tokLatestTime$&amp;lt;/latest&amp;gt;
        &amp;lt;/search&amp;gt;
        &amp;lt;option name="charting.axisTitleX.text"&amp;gt;Time&amp;lt;/option&amp;gt;
        &amp;lt;option name="charting.axisTitleY.text"&amp;gt;Count&amp;lt;/option&amp;gt;
        &amp;lt;option name="charting.chart.stackMode"&amp;gt;stacked&amp;lt;/option&amp;gt;
      &amp;lt;/chart&amp;gt;
    &amp;lt;/panel&amp;gt;
  &amp;lt;/row&amp;gt;
&amp;lt;/dashboard&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Below is the javascript&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;require([
  "jquery",
  "splunkjs/mvc",
  "splunkjs/mvc/simplexml/ready!"
], function($, mvc) {
  var submittedTokenModel = mvc.Components.get("submitted");
  var defaultTokenModel = mvc.Components.get("default");

  // On change of html date input inputFromDate, update the token tokFromDate in default and submitted model
  $(document).on("change", "#inputFromDate", function() {
    var dateText = $("#inputFromDate").val();
    defaultTokenModel.set("tokFromDate", dateText);
    submittedTokenModel.set("tokFromDate", dateText);
//update the min value of "To" date field to selected "From" date
    if (dateText) $("#inputToDate").attr('min', dateText);
  });

  // On change of html date input inputToDate, update the token tokToDate in default and submitted model
  $(document).on("change", "#inputToDate", function() {
    var dateText = $("#inputToDate").val();
    defaultTokenModel.set("tokToDate", dateText);
    submittedTokenModel.set("tokToDate", dateText);
//update the max value of "From" date field to selected "To" date
    if (dateText) $("#inputFromDate").attr('max', dateText);

  });
});&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm using Splunk version&amp;nbsp;Version:7.3.3 Build -&lt;SPAN&gt;7af3758d0d5e&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Could any one suggest what am I doing wrong? Any help would be much appreciated&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 25 Sep 2020 07:52:12 GMT</pubDate>
    <dc:creator>anilkapu</dc:creator>
    <dc:date>2020-09-25T07:52:12Z</dc:date>
    <item>
      <title>Adding javascript based date picker into dashboard</title>
      <link>https://community.splunk.com/t5/Dashboards-Visualizations/Adding-javascript-based-date-picker-into-dashboard/m-p/521407#M35127</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I have dashboard with several visualizations. Im trying to add 2 date pickers "From", "To" to select date range so that the visualizations query events in that date range input by the user. I'm not able to use splunk's default "Time" input object because I have to limit users from selecting "From" date to maximum of 3 years from current date.&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have been able to add the date pickers into simplexml as per suggestion in this post&amp;nbsp;&lt;A href="https://community.splunk.com/t5/Dashboards-Visualizations/Jquery-datepicker-in-splunk/m-p/361049" target="_blank" rel="noopener"&gt;https://community.splunk.com/t5/Dashboards-Visualizations/Jquery-datepicker-in-splunk/m-p/361049&lt;/A&gt;&lt;/P&gt;&lt;P&gt;The thing which I'm struggling with is to set the min/max attribute of "date" type element on "change" event. To explain this...for example.. if a user selects "From" date as 09/21/2020, then the calendar in "To" date should disable all the dates before this date.. Likewise if user selects &amp;nbsp;09/21/2020 as "To" date then disable all date selections after this date in "From" date field.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Here is the code for dashboard&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;dashboard script="datepicker.js"&amp;gt;
  &amp;lt;label&amp;gt;HTML Date Picker&amp;lt;/label&amp;gt;
  &amp;lt;!-- Dumy Search to set From Date and To Date on load--&amp;gt;
  &amp;lt;search&amp;gt;
    &amp;lt;query&amp;gt;| makeresults | eval fromDate=strftime(relative_time(now(),"-1d@d"),"%Y-%m-%d") | eval toDate=strftime(now(),"%Y-%m-%d")&amp;lt;/query&amp;gt;
    &amp;lt;earliest&amp;gt;-1s@s&amp;lt;/earliest&amp;gt;
    &amp;lt;latest&amp;gt;now&amp;lt;/latest&amp;gt;
    &amp;lt;done&amp;gt;
      &amp;lt;eval token="strMinDate"&amp;gt;strftime(relative_time(now(), "-3years"), "%Y-%m-%d")&amp;lt;/eval&amp;gt;
      &amp;lt;eval token="strMaxDate"&amp;gt;strftime(now(), "%Y-%m-%d")&amp;lt;/eval&amp;gt;

    &amp;lt;/done&amp;gt;
  &amp;lt;/search&amp;gt;
  &amp;lt;!-- Dumy Search to convert String Time to Epoch Time--&amp;gt;
  &amp;lt;search&amp;gt;
    &amp;lt;query&amp;gt;| makeresults | eval earliestTime=strptime("$tokFromDate$","%Y-%m-%d") | eval latestTime=strptime("$tokToDate$","%Y-%m-%d")&amp;lt;/query&amp;gt;
    &amp;lt;earliest&amp;gt;-1s@s&amp;lt;/earliest&amp;gt;
    &amp;lt;latest&amp;gt;now&amp;lt;/latest&amp;gt;
    &amp;lt;done&amp;gt;
      &amp;lt;set token="tokEarliestTime"&amp;gt;$result.earliestTime$&amp;lt;/set&amp;gt;
      &amp;lt;set token="tokLatestTime"&amp;gt;$result.latestTime$&amp;lt;/set&amp;gt;
    &amp;lt;/done&amp;gt;
  &amp;lt;/search&amp;gt;
  &amp;lt;row&amp;gt;
    &amp;lt;panel&amp;gt;
      &amp;lt;title&amp;gt;Selected String Time - $strMinDate$ - $strMaxDate$&amp;lt;/title&amp;gt;
      &amp;lt;html&amp;gt;
        &amp;lt;style&amp;gt;
          .dateContainer {
            display: flex;
          }
          .dateInput {
            padding-right: 15px;
          }
        &amp;lt;/style&amp;gt;
        &amp;lt;div class="dateContainer"&amp;gt;
          &amp;lt;div class="dateInput"&amp;gt;
            &amp;lt;div&amp;gt;From Date:&amp;lt;/div&amp;gt;
            &amp;lt;input id="inputFromDate" type="date" min="$strMinDate$" max="$strMaxDate$"/&amp;gt;
          &amp;lt;/div&amp;gt;
          &amp;lt;div class="dateInput"&amp;gt;
            &amp;lt;div&amp;gt;To Date:&amp;lt;/div&amp;gt;
            &amp;lt;input id="inputToDate" type="date" min="$strMinDate$" max="$strMaxDate$"/&amp;gt;
          &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/html&amp;gt;
    &amp;lt;/panel&amp;gt;
  &amp;lt;/row&amp;gt;
  &amp;lt;row&amp;gt;
    &amp;lt;panel&amp;gt;
      &amp;lt;title&amp;gt;Converted Epoch Time - $tokFromDate$ $tokToDate$&amp;lt;/title&amp;gt;
      &amp;lt;chart&amp;gt;
        &amp;lt;title&amp;gt;Splunkd errors timechart by top 5 components&amp;lt;/title&amp;gt;
        &amp;lt;search&amp;gt;
          &amp;lt;query&amp;gt;index=_internal sourcetype="splunkd" log_level!="INFO" component="*" | timechart count by component limit=5 usenull=f useother=f
          &amp;lt;/query&amp;gt;
          &amp;lt;earliest&amp;gt;$tokEarliestTime$&amp;lt;/earliest&amp;gt;
          &amp;lt;latest&amp;gt;$tokLatestTime$&amp;lt;/latest&amp;gt;
        &amp;lt;/search&amp;gt;
        &amp;lt;option name="charting.axisTitleX.text"&amp;gt;Time&amp;lt;/option&amp;gt;
        &amp;lt;option name="charting.axisTitleY.text"&amp;gt;Count&amp;lt;/option&amp;gt;
        &amp;lt;option name="charting.chart.stackMode"&amp;gt;stacked&amp;lt;/option&amp;gt;
      &amp;lt;/chart&amp;gt;
    &amp;lt;/panel&amp;gt;
  &amp;lt;/row&amp;gt;
&amp;lt;/dashboard&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Below is the javascript&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;require([
  "jquery",
  "splunkjs/mvc",
  "splunkjs/mvc/simplexml/ready!"
], function($, mvc) {
  var submittedTokenModel = mvc.Components.get("submitted");
  var defaultTokenModel = mvc.Components.get("default");

  // On change of html date input inputFromDate, update the token tokFromDate in default and submitted model
  $(document).on("change", "#inputFromDate", function() {
    var dateText = $("#inputFromDate").val();
    defaultTokenModel.set("tokFromDate", dateText);
    submittedTokenModel.set("tokFromDate", dateText);
//update the min value of "To" date field to selected "From" date
    if (dateText) $("#inputToDate").attr('min', dateText);
  });

  // On change of html date input inputToDate, update the token tokToDate in default and submitted model
  $(document).on("change", "#inputToDate", function() {
    var dateText = $("#inputToDate").val();
    defaultTokenModel.set("tokToDate", dateText);
    submittedTokenModel.set("tokToDate", dateText);
//update the max value of "From" date field to selected "To" date
    if (dateText) $("#inputFromDate").attr('max', dateText);

  });
});&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm using Splunk version&amp;nbsp;Version:7.3.3 Build -&lt;SPAN&gt;7af3758d0d5e&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Could any one suggest what am I doing wrong? Any help would be much appreciated&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 25 Sep 2020 07:52:12 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Dashboards-Visualizations/Adding-javascript-based-date-picker-into-dashboard/m-p/521407#M35127</guid>
      <dc:creator>anilkapu</dc:creator>
      <dc:date>2020-09-25T07:52:12Z</dc:date>
    </item>
  </channel>
</rss>

