Changeset 8128


Ignore:
Timestamp:
Mar 10, 2023, 1:24:13 PM (7 months ago)
Author:
Nicklas Nordborg
Message:

References #2295: Add API for services to send log messages that can be displayed by the web client

Moved the "View log" page to the extensions administration page.

Location:
branches/3.19-stable/www/admin
Files:
1 added
5 edited
1 moved

Legend:

Unmodified
Added
Removed
  • branches/3.19-stable/www/admin/extensions/details.js

    r8028 r8128  
    4949    Buttons.addClickHandler('btnToggleExtension', details.toggleExtensionOnClick);
    5050    Buttons.addClickHandler('btnToggleExtensionPoint', details.toggleExtensionPointOnClick);
     51    Buttons.addClickHandler('btnViewLog', details.viewLog);
    5152   
    5253    Buttons.addClickHandler('btnEnableFile', details.enableOrDisableFileOnClick);
     
    6768    url += '&cmd=ScanResults';
    6869    Dialogs.openPopup(url, 'ScanResults', 750, 500);
     70  }
     71
     72  details.viewLog = function(event)
     73  {
     74    var target = event.currentTarget;
     75    var extensionId = Data.get(target, 'extension-id');
     76    var url = 'view_log.jsp?ID='+App.getSessionId();
     77    url += '&extensionId='+extensionId;
     78    Dialogs.openPopup(url, 'ViewLog'+extensionId, 1000, 600);
    6979  }
    7080
  • branches/3.19-stable/www/admin/extensions/details.jsp

    r7954 r8128  
    4747  import="net.sf.basedb.util.extensions.manager.ProcessResults"
    4848  import="net.sf.basedb.util.extensions.manager.ProcessResults.FileResults"
     49  import="net.sf.basedb.util.extensions.logging.ExtensionsLog"
    4950  import="net.sf.basedb.util.extensions.xml.PluginInfo"
    5051  import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
     
    145146      boolean hasRegistrationError = extFile != null && extFile.hasError();
    146147      boolean allow = writePermission && !hasRegistrationError;
     148     
     149      String logIcon = "service_log.png";
     150      String logSummary = "This extension doesn't have any log";
     151      ExtensionsLog log = ExtensionsLog.getLog(extensionId, false);
     152      if (log != null)
     153      {
     154        logSummary = "View the log for this extension; "+
     155          log.getNumEntries() +" entries; " +
     156          log.getNumErrors()+" errors; "+
     157          log.getNumWarnings()+" warnings";
     158        if (log.getNumErrors() > 0)
     159        {
     160          logIcon = "service_log_error.png";
     161        }
     162        else if (log.getNumWarnings() > 0)
     163        {
     164          logIcon = "service_log_warning.png";
     165        }
     166      }
    147167      %>
    148168      <tbl:button
     
    154174        tooltip="Disable/enable this extension"
    155175        disabled="<%=!allow%>"
     176      />
     177      <tbl:button
     178        id="btnViewLog"
     179        data-extension-id="<%=extensionId%>"
     180        image="<%=logIcon%>"
     181        tooltip="<%=logSummary%>"
     182        visible="<%=log != null%>"
     183        title="View log&hellip;"
    156184      />
    157185      <tbl:button
  • branches/3.19-stable/www/admin/extensions/index.jsp

    r7954 r8128  
    3333  import="net.sf.basedb.util.extensions.ExtensionPoint"
    3434  import="net.sf.basedb.util.extensions.Extension"
     35  import="net.sf.basedb.util.extensions.logging.ExtensionsLogger"
     36  import="net.sf.basedb.util.extensions.logging.ExtensionsLog"
    3537  import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
    3638  import="java.util.List"
     
    101103    forward = "scan_results.jsp?ID=" + ID;
    102104  }
     105  else if ("ClearLog".equals(cmd))
     106  {
     107    String extensionId = request.getParameter("extensionId");
     108    ExtensionsLog serviceLog = ExtensionsLog.getLog(extensionId, false);
     109    if (serviceLog != null)
     110    {
     111      serviceLog.clearLog();
     112      serviceLog.createLogger().info("The log was cleared by "+sc.getLoggedInUserName()+" ("+sc.getLoggedInUserLogin()+")");
     113    }
     114    redirect = "view_log.jsp?ID="+ID+"&extensionId="+HTML.urlEncode(extensionId);
     115  }
     116  else if ("SetLogOptions".equals(cmd))
     117  {
     118    String extensionId = request.getParameter("extensionId");
     119    boolean enableDebug = Values.getBoolean(request.getParameter("enableDebug"));
     120    boolean copyToStdout = Values.getBoolean(request.getParameter("copyToStdout"));
     121    boolean autoUpdate = Values.getBoolean(request.getParameter("autoUpdate"));
     122    ExtensionsLog serviceLog = ExtensionsLog.getLog(extensionId, true);
     123    ExtensionsLogger logger = serviceLog.createLogger();
     124    if (copyToStdout != serviceLog.isCopyingToStdout())
     125    {
     126      if (!copyToStdout) logger.info("Stop copy to stdout");
     127      serviceLog.setCopyToStdout(copyToStdout);
     128      if (copyToStdout) logger.info("Start copy to stdout");
     129    }
     130    if (enableDebug != serviceLog.isDebugEnabled())
     131    {
     132      if (!enableDebug) logger.debug("Debug logging was disabled");
     133      serviceLog.setDebugEnabled(enableDebug);
     134      if (enableDebug) logger.debug("Debug logging was enabled");
     135    }
     136    redirect = "view_log.jsp?ID="+ID+"&extensionId="+HTML.urlEncode(extensionId)+"&autoUpdate="+autoUpdate;
     137  }
    103138  else
    104139  {
  • branches/3.19-stable/www/admin/extensions/view_log.jsp

    r8125 r8128  
    3737%>
    3838  <base:page type="popup" title="View log" id="view-page">
    39   <base:head scripts="table.js,~services.js" styles="table.css,toolbar.css">
     39  <base:head scripts="table.js,~view_log.js" styles="table.css,toolbar.css">
    4040    <style>
    4141    .level
  • branches/3.19-stable/www/admin/services/index.jsp

    r8125 r8128  
    3434  import="net.sf.basedb.util.extensions.Extension"
    3535  import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
    36   import="net.sf.basedb.util.extensions.logging.ExtensionsLogger"
    37   import="net.sf.basedb.util.extensions.logging.ExtensionsLog"
    38   import="net.sf.basedb.util.extensions.logging.LogLevel"
    3936  import="java.util.List"
    4037%>
     
    7471    redirect = "services.jsp?ID=" + ID;
    7572  }
    76   else if ("SetOptions".equals(cmd))
    77   {
    78     String extensionId = request.getParameter("extensionId");
    79     boolean enableDebug = Values.getBoolean(request.getParameter("enableDebug"));
    80     boolean copyToStdout = Values.getBoolean(request.getParameter("copyToStdout"));
    81     boolean autoUpdate = Values.getBoolean(request.getParameter("autoUpdate"));
    82     ExtensionsLog serviceLog = ExtensionsLog.getLog(extensionId, true);
    83     ExtensionsLogger logger = serviceLog.createLogger();
    84     if (copyToStdout != serviceLog.isCopyingToStdout())
    85     {
    86   if (!copyToStdout) logger.info("Stop copy to stdout");
    87   serviceLog.setCopyToStdout(copyToStdout);
    88   if (copyToStdout) logger.info("Start copy to stdout");
    89     }
    90     serviceLog.setCopyToStdout(copyToStdout);
    91     if (enableDebug != serviceLog.isDebugEnabled())
    92     {
    93   if (!enableDebug) logger.debug("Debug logging was disabled");
    94   serviceLog.setDebugEnabled(enableDebug);
    95   if (enableDebug) logger.debug("Debug logging was enabled");
    96     }
    97     redirect = "view_log.jsp?ID="+ID+"&extensionId="+HTML.urlEncode(extensionId)+"&autoUpdate="+autoUpdate;
    98   }
    99   else if ("ClearLog".equals(cmd))
    100   {
    101     String extensionId = request.getParameter("extensionId");
    102     ExtensionsLog serviceLog = ExtensionsLog.getLog(extensionId, false);
    103     if (serviceLog != null)
    104     {
    105   serviceLog.clearLog();
    106   serviceLog.createLogger().log(LogLevel.INFO, "The log was cleared by "+sc.getLoggedInUserName()+" ("+sc.getLoggedInUserLogin()+")");
    107     }
    108     redirect = "view_log.jsp?ID="+ID+"&extensionId="+HTML.urlEncode(extensionId);
    109   }
    11073  else
    11174  {
  • branches/3.19-stable/www/admin/services/services.js

    r8123 r8128  
    2727{
    2828  var services = {};
    29  
    30   services.initPage = function()
    31   {
    32     var pageId = Doc.getPageId();   
    33     if (pageId == 'view-page')
    34     {
    35       // Close button
    36       Buttons.addClickHandler('close', App.closeWindow);
    37      
    38       Buttons.addClickHandler('btnClearLog', services.clearLog);
    39       Events.addEventHandler('enableDebug', 'change', services.setOptions);
    40       Events.addEventHandler('copyToStdout', 'change', services.setOptions);
    41      
    42       // Auto-update timer
    43       setInterval(services.autoUpdate, 2000);
    44     }
    45     else if (pageId == 'list-page')
    46     {
    47       // Nothing here yet
    48     }
    49   }
    5029 
    5130  services.initElements = function(element, autoInit)
     
    9372  {
    9473    var extensionId = Data.get(event.currentTarget, 'extension-id');
    95     var url = 'view_log.jsp?ID='+App.getSessionId();
     74    var url = '../extensions/view_log.jsp?ID='+App.getSessionId();
    9675    url += '&extensionId='+extensionId;
    9776    Dialogs.openPopup(url, 'ViewLog'+extensionId, 1000, 600);
    98   }
    99  
    100   services.clearLog = function()
    101   {
    102     var extensionId = Data.get('page-data', 'extension-id');
    103     var url = 'index.jsp?ID='+App.getSessionId();
    104     url += '&cmd=ClearLog';
    105     url += '&extensionId='+extensionId;
    106     location.replace(url);
    107   }
    108  
    109   services.setOptions = function()
    110   {
    111     var extensionId = Data.get('page-data', 'extension-id');
    112     var url = 'index.jsp?ID='+App.getSessionId();
    113     url += '&cmd=SetOptions';
    114     url += '&extensionId='+extensionId;
    115     url += '&enableDebug='+(Doc.element('enableDebug').checked?1:0);
    116     url += '&copyToStdout='+(Doc.element('copyToStdout').checked?1:0);
    117     url += '&autoUpdate='+(Doc.element('autoUpdate').checked?1:0);;
    118     location.replace(url);
    119   }
    120  
    121   services.autoUpdate = function()
    122   {
    123     if (Doc.element('autoUpdate').checked)
    124     {
    125       var extensionId = Data.get('page-data', 'extension-id');
    126       var url = 'view_log.jsp?ID='+App.getSessionId();
    127       url += '&extensionId='+extensionId;
    128       url += '&autoUpdate=1';
    129       location.replace(url);
    130     }
    13177  }
    13278 
     
    13581
    13682Doc.addElementInitializer(Services.initElements);
    137 Doc.onLoad(Services.initPage);
Note: See TracChangeset for help on using the changeset viewer.