www/admin/jobagents/view_agent.jsp

Code
Comments
Other
Rev Date Author Line
2629 08 Sep 06 nicklas 1 <%-- $Id$
2629 08 Sep 06 nicklas 2   ------------------------------------------------------------------
3675 16 Aug 07 jari 3   Copyright (C) 2006 Nicklas Nordborg
3675 16 Aug 07 jari 4   Copyright (C) 2007 Martin Svensson
2629 08 Sep 06 nicklas 5
2629 08 Sep 06 nicklas 6   This file is part of BASE - BioArray Software Environment.
2629 08 Sep 06 nicklas 7   Available at http://base.thep.lu.se/
2629 08 Sep 06 nicklas 8
2629 08 Sep 06 nicklas 9   BASE is free software; you can redistribute it and/or
2629 08 Sep 06 nicklas 10   modify it under the terms of the GNU General Public License
4476 05 Sep 08 jari 11   as published by the Free Software Foundation; either version 3
2629 08 Sep 06 nicklas 12   of the License, or (at your option) any later version.
2629 08 Sep 06 nicklas 13
2629 08 Sep 06 nicklas 14   BASE is distributed in the hope that it will be useful,
2629 08 Sep 06 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
2629 08 Sep 06 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2629 08 Sep 06 nicklas 17   GNU General Public License for more details.
2629 08 Sep 06 nicklas 18
2629 08 Sep 06 nicklas 19   You should have received a copy of the GNU General Public License
4510 11 Sep 08 jari 20   along with BASE. If not, see <http://www.gnu.org/licenses/>.
2629 08 Sep 06 nicklas 21   ------------------------------------------------------------------
2629 08 Sep 06 nicklas 22
2629 08 Sep 06 nicklas 23   @author Nicklas
2629 08 Sep 06 nicklas 24   @version 2.0
2629 08 Sep 06 nicklas 25 --%>
5426 24 Sep 10 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
2629 08 Sep 06 nicklas 27   import="net.sf.basedb.core.SessionControl"
2629 08 Sep 06 nicklas 28   import="net.sf.basedb.core.DbControl"
2629 08 Sep 06 nicklas 29   import="net.sf.basedb.core.SystemItems"
2629 08 Sep 06 nicklas 30   import="net.sf.basedb.core.Item"
2629 08 Sep 06 nicklas 31   import="net.sf.basedb.core.ItemContext"
3890 30 Oct 07 nicklas 32   import="net.sf.basedb.core.Include"
2629 08 Sep 06 nicklas 33   import="net.sf.basedb.core.Permission"
2648 19 Sep 06 nicklas 34   import="net.sf.basedb.core.Job"
2629 08 Sep 06 nicklas 35   import="net.sf.basedb.core.JobAgent"
2629 08 Sep 06 nicklas 36   import="net.sf.basedb.core.JobAgentSettings"
2648 19 Sep 06 nicklas 37   import="net.sf.basedb.util.jobagent.JobAgentInfo"
4093 18 Jan 08 enell 38   import="net.sf.basedb.util.jobagent.JobInfo"
2629 08 Sep 06 nicklas 39   import="net.sf.basedb.core.User"
2629 08 Sep 06 nicklas 40   import="net.sf.basedb.core.PermissionDeniedException"
2629 08 Sep 06 nicklas 41   import="net.sf.basedb.core.PluginDefinition"
2629 08 Sep 06 nicklas 42   import="net.sf.basedb.core.ItemQuery"
2629 08 Sep 06 nicklas 43   import="net.sf.basedb.core.ItemResultList"
3547 03 Jul 07 martin 44   import="net.sf.basedb.core.ItemResultIterator"
3547 03 Jul 07 martin 45   import="net.sf.basedb.core.MultiPermissions"
3547 03 Jul 07 martin 46   import="net.sf.basedb.core.Group"
3547 03 Jul 07 martin 47   import="net.sf.basedb.core.Project"
2629 08 Sep 06 nicklas 48   import="net.sf.basedb.core.query.Orders"
2629 08 Sep 06 nicklas 49   import="net.sf.basedb.core.query.Hql"
2629 08 Sep 06 nicklas 50   import="net.sf.basedb.core.plugin.GuiContext"
2629 08 Sep 06 nicklas 51   import="net.sf.basedb.core.plugin.Plugin"
2629 08 Sep 06 nicklas 52   import="net.sf.basedb.clients.web.Base"
2629 08 Sep 06 nicklas 53   import="net.sf.basedb.clients.web.PermissionUtil"
2629 08 Sep 06 nicklas 54   import="net.sf.basedb.clients.web.util.HTML"
2753 20 Oct 06 nicklas 55   import="net.sf.basedb.util.Values"
2942 22 Nov 06 nicklas 56   import="net.sf.basedb.util.formatter.Formatter"
2942 22 Nov 06 nicklas 57   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
4886 03 Apr 09 nicklas 58   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4886 03 Apr 09 nicklas 59   import="net.sf.basedb.clients.web.extensions.JspContext"
4886 03 Apr 09 nicklas 60   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 61   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
4886 03 Apr 09 nicklas 62   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
4886 03 Apr 09 nicklas 63   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
2629 08 Sep 06 nicklas 64   import="java.util.Map"
2648 19 Sep 06 nicklas 65   import="java.util.Set"
2942 22 Nov 06 nicklas 66   import="java.util.Date"
3547 03 Jul 07 martin 67   import="java.util.Collections"
5040 10 Aug 09 martin 68   import="java.util.List"
5040 10 Aug 09 martin 69     
2629 08 Sep 06 nicklas 70 %>
2629 08 Sep 06 nicklas 71 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
2629 08 Sep 06 nicklas 72 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
2629 08 Sep 06 nicklas 73 <%@ taglib prefix="t" uri="/WEB-INF/tab.tld" %>
2629 08 Sep 06 nicklas 74 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
4886 03 Apr 09 nicklas 75 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
2629 08 Sep 06 nicklas 76 <%!
2629 08 Sep 06 nicklas 77   private static final Item itemType = Item.JOBAGENT;
2629 08 Sep 06 nicklas 78   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.ITEM);
2629 08 Sep 06 nicklas 79 %>
2629 08 Sep 06 nicklas 80 <%
2629 08 Sep 06 nicklas 81 final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
2629 08 Sep 06 nicklas 82 final String ID = sc.getId();
2629 08 Sep 06 nicklas 83 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
2629 08 Sep 06 nicklas 84 final int itemId = cc.getId();
6289 05 Jun 13 nicklas 85 final String tab = Values.getStringOrNull(request.getParameter("tab"));
2629 08 Sep 06 nicklas 86 final float scale = Base.getScale(sc);
7954 12 May 21 nicklas 87 final DbControl dc = sc.newDbControl(":View "+itemType);
2629 08 Sep 06 nicklas 88 try
2629 08 Sep 06 nicklas 89 {
2629 08 Sep 06 nicklas 90   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
2942 22 Nov 06 nicklas 91   Formatter<Date> dateFormatter = FormatterFactory.getDateTimeFormatter(sc);
2629 08 Sep 06 nicklas 92
2629 08 Sep 06 nicklas 93   String title = null;
2629 08 Sep 06 nicklas 94   JobAgent agent = JobAgent.getById(dc, itemId);
2629 08 Sep 06 nicklas 95   
2648 19 Sep 06 nicklas 96   JobAgentInfo info = agent.getInfo();
2648 19 Sep 06 nicklas 97   Boolean paused = info.isPaused();
2648 19 Sep 06 nicklas 98   
2629 08 Sep 06 nicklas 99   final boolean writePermission = agent.hasPermission(Permission.WRITE);
2629 08 Sep 06 nicklas 100   final boolean deletePermission = agent.hasPermission(Permission.DELETE);
2629 08 Sep 06 nicklas 101   final boolean sharePermission = agent.hasPermission(Permission.SET_PERMISSION);
2921 15 Nov 06 nicklas 102   final boolean setOwnerPermission = agent.hasPermission(Permission.SET_OWNER);
2921 15 Nov 06 nicklas 103   final boolean isOwner = agent.isOwner();
4003 26 Nov 07 nicklas 104   final boolean isRemoved = agent.isRemoved();
4003 26 Nov 07 nicklas 105   final boolean isUsed = isRemoved && agent.isUsed();
4003 26 Nov 07 nicklas 106   final boolean deletePermanentlyPermission = deletePermission && !isUsed;
4886 03 Apr 09 nicklas 107   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, agent);
7604 25 Feb 19 nicklas 108   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
2629 08 Sep 06 nicklas 109   %>
6289 05 Jun 13 nicklas 110   <base:page title="<%=title%>" id="view-page">
6289 05 Jun 13 nicklas 111   <base:head scripts="tabcontrol-2.js,table.js,~agents.js" styles="toolbar.css,headertabcontrol.css,path.css,table.css,progressbar.css">
4886 03 Apr 09 nicklas 112     <ext:scripts context="<%=jspContext%>" />
4886 03 Apr 09 nicklas 113     <ext:stylesheets context="<%=jspContext%>" />
2629 08 Sep 06 nicklas 114   </base:head>
2629 08 Sep 06 nicklas 115   <base:body>
5941 01 Feb 12 nicklas 116     <p:path><p:pathelement 
5941 01 Feb 12 nicklas 117       title="Job agents" href="<%="index.jsp?ID="+ID%>" 
5941 01 Feb 12 nicklas 118       /><p:pathelement title="<%=HTML.encodeTags(agent.getName())%>"
5941 01 Feb 12 nicklas 119       /></p:path>
6289 05 Jun 13 nicklas 120     <div id="page-data" data-item-id="<%=itemId%>"></div>
2629 08 Sep 06 nicklas 121     
5941 01 Feb 12 nicklas 122     <t:tabcontrol 
5941 01 Feb 12 nicklas 123       id="main" 
5941 01 Feb 12 nicklas 124       subclass="content mastertabcontrol" 
6289 05 Jun 13 nicklas 125       active="<%=tab%>">
2629 08 Sep 06 nicklas 126     <t:tab id="properties" title="Properties">
5941 01 Feb 12 nicklas 127       <div>
5941 01 Feb 12 nicklas 128       <table class="fullform bottomborder">
5941 01 Feb 12 nicklas 129       <tr>
5941 01 Feb 12 nicklas 130         <th class="itemstatus">
4003 26 Nov 07 nicklas 131           <base:icon 
5946 03 Feb 12 nicklas 132             image="shared.png" 
5941 01 Feb 12 nicklas 133             visible="<%=agent.isShared()%>"
5941 01 Feb 12 nicklas 134             tooltip="This item is shared to other users, groups and/or projects"
5941 01 Feb 12 nicklas 135           />
5946 03 Feb 12 nicklas 136           <base:icon image="warning.png"
5941 01 Feb 12 nicklas 137             visible="<%=!agent.isShared()%>"
5941 01 Feb 12 nicklas 138             tooltip="This item is NOT shared to other users, groups or projects. Only the owner will be able to run jobs on this agent" 
5941 01 Feb 12 nicklas 139           />
5941 01 Feb 12 nicklas 140           <base:icon 
6289 05 Jun 13 nicklas 141             id="btnDeletePermanently"
5946 03 Feb 12 nicklas 142             image="deleted.png"
5941 01 Feb 12 nicklas 143             tooltip="This item has been flagged for deletion. Click to delete it now."
5941 01 Feb 12 nicklas 144             enabled="<%=deletePermanentlyPermission %>"
5941 01 Feb 12 nicklas 145             visible="<%=isRemoved%>" 
5941 01 Feb 12 nicklas 146           />
6289 05 Jun 13 nicklas 147           <base:icon
6289 05 Jun 13 nicklas 148             id="btnUsingItems"
6289 05 Jun 13 nicklas 149             image="used.png" 
5941 01 Feb 12 nicklas 150             tooltip="This item is used by other items and can't be permanently deleted. Show the items that are using this one"
5941 01 Feb 12 nicklas 151             visible="<%=isRemoved && isUsed%>" />
5941 01 Feb 12 nicklas 152         </th>
5941 01 Feb 12 nicklas 153         <td style="padding: 0px;">
6605 18 Nov 14 nicklas 154           <tbl:toolbar subclass="bottomborder bg-filled-50">
5941 01 Feb 12 nicklas 155             <tbl:button 
6289 05 Jun 13 nicklas 156               id="btnEdit"
5942 01 Feb 12 nicklas 157               disabled="<%=!writePermission%>" 
5945 02 Feb 12 nicklas 158               image="edit.png" 
5941 01 Feb 12 nicklas 159               title="Edit&hellip;" 
5941 01 Feb 12 nicklas 160               tooltip="<%=writePermission ? "Edit this job agent" : "You do not have permission to edit this job agent"%>" 
5941 01 Feb 12 nicklas 161             />
5941 01 Feb 12 nicklas 162             <tbl:button 
6289 05 Jun 13 nicklas 163               id="btnDelete"
5942 01 Feb 12 nicklas 164               disabled="<%=!deletePermission%>" 
5946 03 Feb 12 nicklas 165               image="delete.png" 
5941 01 Feb 12 nicklas 166               title="Delete"
5941 01 Feb 12 nicklas 167               visible="<%=!agent.isRemoved()%>"
5941 01 Feb 12 nicklas 168               tooltip="<%=deletePermission ? "Delete this job agent" : "You do not have permission to delete this job agent"%>" 
5941 01 Feb 12 nicklas 169             />
5941 01 Feb 12 nicklas 170             <tbl:button 
6289 05 Jun 13 nicklas 171               id="btnRestore"
5942 01 Feb 12 nicklas 172               disabled="<%=!writePermission%>" 
5946 03 Feb 12 nicklas 173               image="restore.png" 
5941 01 Feb 12 nicklas 174               title="Restore"
5941 01 Feb 12 nicklas 175               visible="<%=agent.isRemoved()%>"
5941 01 Feb 12 nicklas 176               tooltip="<%=writePermission ? "Restore this job agent" : "You do not have permission to restore this job agent"%>" 
5941 01 Feb 12 nicklas 177             />
5941 01 Feb 12 nicklas 178             <tbl:button 
6289 05 Jun 13 nicklas 179               id="btnShare"
5942 01 Feb 12 nicklas 180               disabled="<%=!sharePermission%>"
5945 02 Feb 12 nicklas 181               image="share.png"
5941 01 Feb 12 nicklas 182               title="Share&hellip;" 
5941 01 Feb 12 nicklas 183               tooltip="<%=sharePermission ? "Share this job agent to other user, groups and projects" : "You do not have permission to share this job agent"%>"
5941 01 Feb 12 nicklas 184             />
5941 01 Feb 12 nicklas 185             <tbl:button 
6289 05 Jun 13 nicklas 186               id="btnSetOwner"
5942 01 Feb 12 nicklas 187               disabled="<%=!setOwnerPermission%>"
5941 01 Feb 12 nicklas 188               image="take_ownership.png"
5941 01 Feb 12 nicklas 189               title="Set owner&hellip;"
5941 01 Feb 12 nicklas 190               tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
5941 01 Feb 12 nicklas 191             />
5941 01 Feb 12 nicklas 192             <tbl:button 
6289 05 Jun 13 nicklas 193               id="btnImport"
5946 03 Feb 12 nicklas 194               image="import.png" 
6289 05 Jun 13 nicklas 195               data-plugin-type="IMPORT"  
5941 01 Feb 12 nicklas 196               title="Import&hellip;" 
5941 01 Feb 12 nicklas 197               tooltip="Import data" 
5941 01 Feb 12 nicklas 198               visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5941 01 Feb 12 nicklas 199             />
5941 01 Feb 12 nicklas 200             <tbl:button 
6289 05 Jun 13 nicklas 201               id="btnExport"
6289 05 Jun 13 nicklas 202               image="export.png"
6289 05 Jun 13 nicklas 203               data-plugin-type="EXPORT" 
5941 01 Feb 12 nicklas 204               title="Export&hellip;" 
5941 01 Feb 12 nicklas 205               tooltip="Export data" 
5941 01 Feb 12 nicklas 206               visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5941 01 Feb 12 nicklas 207             />
5941 01 Feb 12 nicklas 208             <tbl:button 
6289 05 Jun 13 nicklas 209               id="btnRunPlugin"
6289 05 Jun 13 nicklas 210               image="runplugin.png"  
6289 05 Jun 13 nicklas 211               data-plugin-type="OTHER" 
5941 01 Feb 12 nicklas 212               title="Run plugin&hellip;" 
5941 01 Feb 12 nicklas 213               tooltip="Run a plugin" 
5941 01 Feb 12 nicklas 214               visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5941 01 Feb 12 nicklas 215             />
5941 01 Feb 12 nicklas 216             <tbl:button
6289 05 Jun 13 nicklas 217               id="btnStart"
6289 05 Jun 13 nicklas 218               data-action="Start"
5941 01 Feb 12 nicklas 219               image="start.png"
5941 01 Feb 12 nicklas 220               title="Start"
5941 01 Feb 12 nicklas 221               tooltip="Start the job agent"
5941 01 Feb 12 nicklas 222               visible="<%=writePermission && paused != null && paused == true%>"
5941 01 Feb 12 nicklas 223             />
5941 01 Feb 12 nicklas 224             <tbl:button
6289 05 Jun 13 nicklas 225               id="btnPause"
6289 05 Jun 13 nicklas 226               data-action="Pause"
5941 01 Feb 12 nicklas 227               image="pause.png"
5941 01 Feb 12 nicklas 228               title="Pause"
5941 01 Feb 12 nicklas 229               tooltip="Pause the job agent"
5941 01 Feb 12 nicklas 230               visible="<%=writePermission && paused != null && paused == false%>"
5941 01 Feb 12 nicklas 231             />
5941 01 Feb 12 nicklas 232             <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 233               wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5941 01 Feb 12 nicklas 234             <tbl:button
5941 01 Feb 12 nicklas 235               image="help.png"
6289 05 Jun 13 nicklas 236               subclass="auto-init"
6289 05 Jun 13 nicklas 237               data-auto-init="help"
6289 05 Jun 13 nicklas 238               data-help-id="jobagent.view.properties"
5941 01 Feb 12 nicklas 239               title="Help&hellip;"
5941 01 Feb 12 nicklas 240               tooltip="Get help about this page"
5941 01 Feb 12 nicklas 241             />
5941 01 Feb 12 nicklas 242           </tbl:toolbar>
5941 01 Feb 12 nicklas 243         </td>
5941 01 Feb 12 nicklas 244       </tr>
2629 08 Sep 06 nicklas 245       <tr>
5941 01 Feb 12 nicklas 246         <th>Name</th>
2629 08 Sep 06 nicklas 247         <td><%=HTML.encodeTags(agent.getName())%></td>
2629 08 Sep 06 nicklas 248       </tr>
2629 08 Sep 06 nicklas 249       <tr>
5941 01 Feb 12 nicklas 250         <th>External ID</th>
2629 08 Sep 06 nicklas 251         <td><%=HTML.encodeTags(agent.getExternalId())%></td>
2629 08 Sep 06 nicklas 252       </tr>
2629 08 Sep 06 nicklas 253       <tr>
5941 01 Feb 12 nicklas 254         <th>Server</th>
2629 08 Sep 06 nicklas 255         <td><%=HTML.encodeTags(agent.getServer())%></td>
2629 08 Sep 06 nicklas 256       </tr>
2629 08 Sep 06 nicklas 257       <tr>
5941 01 Feb 12 nicklas 258         <th class="subprompt">- port</th>
2629 08 Sep 06 nicklas 259         <td><%=agent.getPort() == null ? "" : agent.getPort().toString()%></td>
2629 08 Sep 06 nicklas 260       </tr>
2629 08 Sep 06 nicklas 261       <tr>
5941 01 Feb 12 nicklas 262         <th>Status</th>
2648 19 Sep 06 nicklas 263         <td>
2648 19 Sep 06 nicklas 264         <%=paused == null ? "<i>- unknown -</i>" : paused == true ? "Paused" : "Running"%>
2648 19 Sep 06 nicklas 265         </td>
2648 19 Sep 06 nicklas 266       </tr>
2648 19 Sep 06 nicklas 267       <tr>
5941 01 Feb 12 nicklas 268         <th class="subprompt">- CPU usage</th>
5941 01 Feb 12 nicklas 269         <td><%=info.getCpuUsage() == null ? "" : info.getCpuUsage() + "%"%></td>
2629 08 Sep 06 nicklas 270       </tr>
2629 08 Sep 06 nicklas 271       <tr>
5941 01 Feb 12 nicklas 272         <th class="subprompt">- total memory</th>
2629 08 Sep 06 nicklas 273         <td>
5941 01 Feb 12 nicklas 274           <%=info.getTotalMemory() == null ? "" : Values.formatBytes(info.getTotalMemory())%>
2629 08 Sep 06 nicklas 275         </td>
2629 08 Sep 06 nicklas 276       </tr>
2629 08 Sep 06 nicklas 277       <tr>
5941 01 Feb 12 nicklas 278         <th class="subprompt">- used memory</th>
5941 01 Feb 12 nicklas 279         <td>
5941 01 Feb 12 nicklas 280           <%=info.getUsedMemory() == null ? "" : Values.formatBytes(info.getUsedMemory())%>
5941 01 Feb 12 nicklas 281         </td>
5941 01 Feb 12 nicklas 282       </tr>
5941 01 Feb 12 nicklas 283       <tr>
5941 01 Feb 12 nicklas 284         <th>Owner</th>
2629 08 Sep 06 nicklas 285         <td><base:propertyvalue item="<%=agent%>" property="owner" /></td>
2629 08 Sep 06 nicklas 286       </tr>
2629 08 Sep 06 nicklas 287       <tr>
5941 01 Feb 12 nicklas 288         <th>Permissions</th>
5941 01 Feb 12 nicklas 289         <td><%=PermissionUtil.getFullPermissionNames(agent)%></td>
5941 01 Feb 12 nicklas 290       </tr>
5941 01 Feb 12 nicklas 291       <tr>
5941 01 Feb 12 nicklas 292         <th>Description</th>
2629 08 Sep 06 nicklas 293         <td><%=HTML.niceFormat(agent.getDescription())%></td>
2629 08 Sep 06 nicklas 294       </tr>
2629 08 Sep 06 nicklas 295       </table>
5941 01 Feb 12 nicklas 296       </div>
2629 08 Sep 06 nicklas 297       <%
5941 01 Feb 12 nicklas 298       if (cc.getMessage() != null)
5941 01 Feb 12 nicklas 299       {
5941 01 Feb 12 nicklas 300         %>
5941 01 Feb 12 nicklas 301         <div class="messagecontainer error"><%=cc.getMessage()%></div>
5941 01 Feb 12 nicklas 302         <%
5941 01 Feb 12 nicklas 303         cc.setMessage(null);
5941 01 Feb 12 nicklas 304       }
5941 01 Feb 12 nicklas 305       %>
5941 01 Feb 12 nicklas 306       <%
2629 08 Sep 06 nicklas 307       ItemQuery<JobAgentSettings> query = agent.getSettings();
3890 30 Oct 07 nicklas 308       query.include(Include.ALL);
2629 08 Sep 06 nicklas 309       query.order(Orders.asc(Hql.property("pluginDefinition.name")));
2629 08 Sep 06 nicklas 310       ItemResultList<JobAgentSettings> plugins = query.list(dc);
5941 01 Feb 12 nicklas 311       %>
5941 01 Feb 12 nicklas 312       <base:section
5941 01 Feb 12 nicklas 313         id="plugins"
5941 01 Feb 12 nicklas 314         title="<%="Plugins (" + plugins.size() + ")"%>"
5941 01 Feb 12 nicklas 315         context="<%=cc%>"
5941 01 Feb 12 nicklas 316         >
2629 08 Sep 06 nicklas 317         <%
5941 01 Feb 12 nicklas 318         if (plugins.size() == 0)
5941 01 Feb 12 nicklas 319         {
5941 01 Feb 12 nicklas 320           %>
5941 01 Feb 12 nicklas 321           <div class="messagecontainer note">
5941 01 Feb 12 nicklas 322           This job agent has no installed plugins (or, you don't have permission to view them).
5941 01 Feb 12 nicklas 323           </div>
5941 01 Feb 12 nicklas 324           <%
5941 01 Feb 12 nicklas 325         }
5941 01 Feb 12 nicklas 326         else
5941 01 Feb 12 nicklas 327         {
5941 01 Feb 12 nicklas 328           %>
5040 10 Aug 09 martin 329           <tbl:table
6147 21 Sep 12 nicklas 330             id="tbl.plugins"
5040 10 Aug 09 martin 331             columns="all"
5040 10 Aug 09 martin 332             >
5040 10 Aug 09 martin 333           <tbl:columndef 
5040 10 Aug 09 martin 334             id="plugin"
5040 10 Aug 09 martin 335             title="Plugin"
5040 10 Aug 09 martin 336           />
5040 10 Aug 09 martin 337           <tbl:columndef 
5040 10 Aug 09 martin 338             id="trusted"
5040 10 Aug 09 martin 339             title="Trusted"
5040 10 Aug 09 martin 340           />
5040 10 Aug 09 martin 341           <tbl:columndef 
5040 10 Aug 09 martin 342             id="maxMemory"
5040 10 Aug 09 martin 343             title="Max memory"
5040 10 Aug 09 martin 344           />
5040 10 Aug 09 martin 345           <tbl:columndef 
5040 10 Aug 09 martin 346             id="priorityBoost"
5040 10 Aug 09 martin 347             title="Priority boost"
5040 10 Aug 09 martin 348           />
5040 10 Aug 09 martin 349           <tbl:columndef
5040 10 Aug 09 martin 350             id="configure"
5040 10 Aug 09 martin 351             title=""
5040 10 Aug 09 martin 352           />
5040 10 Aug 09 martin 353           <tbl:data>
5941 01 Feb 12 nicklas 354             <tbl:headers>
5941 01 Feb 12 nicklas 355               <tbl:headerrow>
5941 01 Feb 12 nicklas 356                 <tbl:columnheaders />
5941 01 Feb 12 nicklas 357               </tbl:headerrow>
5941 01 Feb 12 nicklas 358             </tbl:headers>
5040 10 Aug 09 martin 359             <tbl:rows>
5040 10 Aug 09 martin 360             <%
5040 10 Aug 09 martin 361             for (JobAgentSettings settings : plugins)
2629 08 Sep 06 nicklas 362             {
5040 10 Aug 09 martin 363               PluginDefinition plugin = null;
5040 10 Aug 09 martin 364               boolean readPlugin = true;
5040 10 Aug 09 martin 365               try
2631 08 Sep 06 nicklas 366               {
5040 10 Aug 09 martin 367                 plugin = settings.getPluginDefinition();
2631 08 Sep 06 nicklas 368               }
5040 10 Aug 09 martin 369               catch (PermissionDeniedException ex)
5040 10 Aug 09 martin 370               {
5040 10 Aug 09 martin 371                 readPlugin = false;
5040 10 Aug 09 martin 372               }
5040 10 Aug 09 martin 373               Long maxMemory = settings.getEffectiveMaxMemory();
2631 08 Sep 06 nicklas 374               %>
5040 10 Aug 09 martin 375               <tbl:row>
5040 10 Aug 09 martin 376                 <tbl:cell column="plugin"><base:icon 
5946 03 Feb 12 nicklas 377                     image="deleted.png" 
5040 10 Aug 09 martin 378                     tooltip="This item has been scheduled for deletion" 
5040 10 Aug 09 martin 379                     visible="<%=plugin != null && plugin.isRemoved()%>"
5610 15 Apr 11 nicklas 380                   /><%=Base.getLinkedName(ID, plugin, !readPlugin, true)%></tbl:cell>
5040 10 Aug 09 martin 381                 <tbl:cell column="trusted"><%=settings.isEffectivelyTrusted()%></tbl:cell>
5040 10 Aug 09 martin 382                 <tbl:cell column="maxMemory"><%=maxMemory == null ? "<i>- not specified -</i>" : Values.formatBytes(maxMemory)%></tbl:cell>
5040 10 Aug 09 martin 383                 <tbl:cell column="priorityBoost"><%=settings.getPriorityBoost()%></tbl:cell>
5040 10 Aug 09 martin 384                 <tbl:cell column="configure">
5040 10 Aug 09 martin 385                 <%
5040 10 Aug 09 martin 386                 if (writePermission && plugin != null)
5040 10 Aug 09 martin 387                 {
5040 10 Aug 09 martin 388                   %>
6289 05 Jun 13 nicklas 389                   <base:icon 
6289 05 Jun 13 nicklas 390                     id="<%="configure.plugin."+plugin.getId() %>"
6289 05 Jun 13 nicklas 391                     subclass="auto-init"
6289 05 Jun 13 nicklas 392                     data-auto-init="configure-plugin"
6289 05 Jun 13 nicklas 393                     data-plugin-id="<%=plugin.getId()%>"
6289 05 Jun 13 nicklas 394                     image="runplugin.png" 
5040 10 Aug 09 martin 395                     tooltip="Configure the settings for this plugin on the job agent "/>
5040 10 Aug 09 martin 396                   <%
5040 10 Aug 09 martin 397                 }
5040 10 Aug 09 martin 398                 %>
5040 10 Aug 09 martin 399                 </tbl:cell>
5040 10 Aug 09 martin 400               </tbl:row>
5040 10 Aug 09 martin 401               <%
5040 10 Aug 09 martin 402             }
5040 10 Aug 09 martin 403             %>
5040 10 Aug 09 martin 404             </tbl:rows>
5040 10 Aug 09 martin 405           </tbl:data>
5040 10 Aug 09 martin 406           </tbl:table>
5941 01 Feb 12 nicklas 407           <%
5941 01 Feb 12 nicklas 408         }
5941 01 Feb 12 nicklas 409         %>
5941 01 Feb 12 nicklas 410       </base:section>
2648 19 Sep 06 nicklas 411       <%
4093 18 Jan 08 enell 412       Set<JobInfo> jobs = agent.getInfo().getJobInfo();
5941 01 Feb 12 nicklas 413       %>
5941 01 Feb 12 nicklas 414       <base:section
5941 01 Feb 12 nicklas 415         id="executingJobs"
5941 01 Feb 12 nicklas 416         title="<%="Executing jobs (" + (jobs == null ? "unknown" : jobs.size()) + ")"%>"
5941 01 Feb 12 nicklas 417         context="<%=cc%>"
5941 01 Feb 12 nicklas 418         >
2648 19 Sep 06 nicklas 419         <%
2648 19 Sep 06 nicklas 420         if (jobs == null)
2648 19 Sep 06 nicklas 421         {
2648 19 Sep 06 nicklas 422           %>
5941 01 Feb 12 nicklas 423           <div class="messagecontainer note">
5941 01 Feb 12 nicklas 424           Could not find information about running jobs from the agent.
5941 01 Feb 12 nicklas 425           </div>
2648 19 Sep 06 nicklas 426           <%
2648 19 Sep 06 nicklas 427         }
5941 01 Feb 12 nicklas 428         else if (jobs.size() == 0)
2648 19 Sep 06 nicklas 429         {
2648 19 Sep 06 nicklas 430           %>
5941 01 Feb 12 nicklas 431           <div class="messagecontainer note">
5941 01 Feb 12 nicklas 432           No jobs are currently executing on this job agent.
5941 01 Feb 12 nicklas 433           </div>
2648 19 Sep 06 nicklas 434           <%
2648 19 Sep 06 nicklas 435         }
5941 01 Feb 12 nicklas 436         else
5941 01 Feb 12 nicklas 437         {
5941 01 Feb 12 nicklas 438           %>
5040 10 Aug 09 martin 439           <tbl:table
5040 10 Aug 09 martin 440             id="jobs"
5040 10 Aug 09 martin 441             columns="all"
5040 10 Aug 09 martin 442             >
5040 10 Aug 09 martin 443             <tbl:columndef 
5040 10 Aug 09 martin 444               id="job"
5040 10 Aug 09 martin 445               title="Job"
5040 10 Aug 09 martin 446             />
5040 10 Aug 09 martin 447             <tbl:columndef 
5040 10 Aug 09 martin 448               id="plugin"
5040 10 Aug 09 martin 449               title="Plugin"
5040 10 Aug 09 martin 450             />
5040 10 Aug 09 martin 451             <tbl:columndef 
5040 10 Aug 09 martin 452               id="slot"
5040 10 Aug 09 martin 453               title="Used slot"
5040 10 Aug 09 martin 454             />
5040 10 Aug 09 martin 455             <tbl:columndef 
5040 10 Aug 09 martin 456               id="started"
5040 10 Aug 09 martin 457               title="Started"
5040 10 Aug 09 martin 458             />
5040 10 Aug 09 martin 459             <tbl:columndef 
5040 10 Aug 09 martin 460               id="percentComplete"
5040 10 Aug 09 martin 461               title="Percent complete"
5040 10 Aug 09 martin 462             />
5040 10 Aug 09 martin 463             <tbl:columndef 
5040 10 Aug 09 martin 464               id="owner"
5040 10 Aug 09 martin 465               title="Owner"
5040 10 Aug 09 martin 466             />
5040 10 Aug 09 martin 467             <tbl:data>
5941 01 Feb 12 nicklas 468               <tbl:headers>
5941 01 Feb 12 nicklas 469                 <tbl:headerrow>
5941 01 Feb 12 nicklas 470                   <tbl:columnheaders />
5941 01 Feb 12 nicklas 471                 </tbl:headerrow>
5941 01 Feb 12 nicklas 472               </tbl:headers>
5040 10 Aug 09 martin 473               <tbl:rows>
5040 10 Aug 09 martin 474               <%
5040 10 Aug 09 martin 475               for (JobInfo jobInfo : jobs)
2648 19 Sep 06 nicklas 476               {
5040 10 Aug 09 martin 477                 Job job = null;
5040 10 Aug 09 martin 478                 boolean readJob = true;
5040 10 Aug 09 martin 479                 try
5040 10 Aug 09 martin 480                 {
5040 10 Aug 09 martin 481                   job = Job.getById(dc, jobInfo.getJobId());
5040 10 Aug 09 martin 482                 }
5040 10 Aug 09 martin 483                 catch (Throwable t)
5040 10 Aug 09 martin 484                 {
5040 10 Aug 09 martin 485                   readJob = false;
5040 10 Aug 09 martin 486                 }
5040 10 Aug 09 martin 487                 %>
5040 10 Aug 09 martin 488                 <tbl:row>
5040 10 Aug 09 martin 489                   <tbl:cell column="job"><%=Base.getLinkedName(ID, job, !readJob, true) %></tbl:cell>
5040 10 Aug 09 martin 490                   <tbl:cell column="plugin"><base:propertyvalue item="<%=job%>" property="pluginDefinition"/></tbl:cell>
5040 10 Aug 09 martin 491                   <tbl:cell column="started"><%=job == null ? "" : dateFormatter.format(job.getStarted())%></tbl:cell>
5040 10 Aug 09 martin 492                   <tbl:cell column="slot"><%=jobInfo.getSlot() == null ? "" : jobInfo.getSlot().toString()%></tbl:cell>
5040 10 Aug 09 martin 493                   <tbl:cell column="percentComplete">
5040 10 Aug 09 martin 494                     <%
5040 10 Aug 09 martin 495                     if (job != null)
5040 10 Aug 09 martin 496                     {
5040 10 Aug 09 martin 497                       %>
5040 10 Aug 09 martin 498                       <table border=0 cellspacing=0 cellpadding=0>
2648 19 Sep 06 nicklas 499                       <tr>
5040 10 Aug 09 martin 500                       <td width="100">
5040 10 Aug 09 martin 501                         <table width="100" class="progressbar" border=0 cellspacing=0 cellpadding=0>
5040 10 Aug 09 martin 502                         <tr>
5040 10 Aug 09 martin 503                           <%
5040 10 Aug 09 martin 504                           int percent = job.getPercentComplete();
5040 10 Aug 09 martin 505                           if (percent > 0) 
5040 10 Aug 09 martin 506                           {
5040 10 Aug 09 martin 507                             %>
5040 10 Aug 09 martin 508                             <td width="<%=percent%>%" class="done">&nbsp;</td>
5040 10 Aug 09 martin 509                             <% 
5040 10 Aug 09 martin 510                           }
5329 29 Apr 10 nicklas 511                           if (percent == -1)
5329 29 Apr 10 nicklas 512                           {
5040 10 Aug 09 martin 513                             %>
5329 29 Apr 10 nicklas 514                             <td width="100%" class="unknown">unknown</td>
5329 29 Apr 10 nicklas 515                             <%
5329 29 Apr 10 nicklas 516                           }
5329 29 Apr 10 nicklas 517                           else if (percent < 100) 
5329 29 Apr 10 nicklas 518                           {
5329 29 Apr 10 nicklas 519                             %>
5040 10 Aug 09 martin 520                             <td width="<%=100-percent%>%" class="remain">&nbsp;</td>
5040 10 Aug 09 martin 521                             <%
5040 10 Aug 09 martin 522                           }
2648 19 Sep 06 nicklas 523                           %>
5040 10 Aug 09 martin 524                         </tr>
5040 10 Aug 09 martin 525                         </table>                
5040 10 Aug 09 martin 526                       </td>
5329 29 Apr 10 nicklas 527                       <%if (percent != -1) { %>
5040 10 Aug 09 martin 528                       <td>&nbsp;<%=percent%>%</td>
5329 29 Apr 10 nicklas 529                       <%} %>
2648 19 Sep 06 nicklas 530                       </tr>
5040 10 Aug 09 martin 531                       </table>
5040 10 Aug 09 martin 532                       <%
5040 10 Aug 09 martin 533                     }
5040 10 Aug 09 martin 534                     %>
5040 10 Aug 09 martin 535                   </tbl:cell>
5040 10 Aug 09 martin 536                   <tbl:cell column="owner"><base:propertyvalue item="<%=job%>" property="owner" /></tbl:cell>
5040 10 Aug 09 martin 537                 </tbl:row>
5040 10 Aug 09 martin 538                 <%
5040 10 Aug 09 martin 539               }
5040 10 Aug 09 martin 540               %>
5040 10 Aug 09 martin 541               </tbl:rows>
5040 10 Aug 09 martin 542             </tbl:data>
5040 10 Aug 09 martin 543           </tbl:table>
5941 01 Feb 12 nicklas 544           <%
5941 01 Feb 12 nicklas 545         }
5941 01 Feb 12 nicklas 546         %>
5941 01 Feb 12 nicklas 547       </base:section>
5509 19 Nov 10 nicklas 548       <jsp:include page="../../common/anytoany/list_anytoany.jsp">
5509 19 Nov 10 nicklas 549         <jsp:param name="ID" value="<%=ID%>" />
5509 19 Nov 10 nicklas 550         <jsp:param name="item_type" value="<%=itemType.name()%>" />
5509 19 Nov 10 nicklas 551         <jsp:param name="item_id" value="<%=itemId%>" />
5509 19 Nov 10 nicklas 552         <jsp:param name="title" value="Other items related to this job agent" />
5509 19 Nov 10 nicklas 553       </jsp:include>
5941 01 Feb 12 nicklas 554       <jsp:include page="../../common/share/list_share.jsp">
5941 01 Feb 12 nicklas 555         <jsp:param name="ID" value="<%=ID%>" />
5941 01 Feb 12 nicklas 556         <jsp:param name="item_type" value="<%=itemType.name()%>" />
5941 01 Feb 12 nicklas 557         <jsp:param name="item_id" value="<%=itemId%>" />
5941 01 Feb 12 nicklas 558         <jsp:param name="title" value="Shared to" />
5941 01 Feb 12 nicklas 559       </jsp:include>
2629 08 Sep 06 nicklas 560     </t:tab>
2629 08 Sep 06 nicklas 561     </t:tabcontrol>
2629 08 Sep 06 nicklas 562   </base:body>
2629 08 Sep 06 nicklas 563   </base:page>
2629 08 Sep 06 nicklas 564   <%
2629 08 Sep 06 nicklas 565 }
2629 08 Sep 06 nicklas 566 finally
2629 08 Sep 06 nicklas 567 {
2629 08 Sep 06 nicklas 568   if (dc != null) dc.close();
2629 08 Sep 06 nicklas 569 }
2629 08 Sep 06 nicklas 570
2629 08 Sep 06 nicklas 571 %>