text: /**
   *  changelog dialog (GitHub API repository information)
   */
  
  define([
      'jquery',
      'app/init',
      'app/util',
      'bootbox'
  ], ($, Init, Util, bootbox) => {
      'use strict';
  
      let config = {
          apiStatusDialogClass: 'pf-api-status-dialog'                            // class for "api status" dialog
      };
  
      /**
       * show api status dialog
       * @param apiData
       */
      $.fn.apiStatusDialog = function(apiData){
  
          let data = {
              apiData: apiData,
              methodFormat: () => {
                  return (val, render) => {
                      switch(render(val)){
                          case 'get':     return 'txt-color-blue';
                          case 'post':    return 'txt-color-green';
                          case 'put':     return 'txt-color-yellow';
                          case 'delete':  return 'txt-color-red';
                          default:        return '';
                      }
                  };
              },
              statusTitle: () => {
                  return (val, render) => {
                      switch(render(val)){
                          case 'green':   return 'ok';
                          case 'yellow':  return 'degraded: Slow or potentially dropping requests';
                          case 'orange':  return 'bad: Most requests are not succeeding and/or are very slow (5s+) on average';
                          case 'red':     return 'error: Status data not available. Either offline or any other fatal error';
                          default:        return 'unknown';
                      }
                  };
              },
              secondsFormat: () => {
                  return (val, render) => {
                      return parseFloat(render(val)).toFixed(2) + 's';
                  };
              }
          };
  
          requirejs(['text!templates/dialog/api_status.html', 'mustache'], (template, Mustache) => {
              let apiStatusDialog = bootbox.dialog({
                  className: config.apiStatusDialogClass,
                  title: 'API status',
                  message: Mustache.render(template, data),
                  show: false,
                  buttons: {
                      close: {
                          label: 'cancel',
                          className: 'btn-default'
                      }
                  }
              });
  
              apiStatusDialog.initTooltips();
  
              // show dialog
              apiStatusDialog.modal('show');
  
          });
      };
  
  });