Ignore:
Timestamp:
Sep 6, 2007, 2:56:57 PM (14 years ago)
Author:
Martin Svensson
Message:

References #364. Most of the plugin settings can be saved now, but still some things left to add

Location:
trunk/www/admin/plugindefinitions
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/www/admin/plugindefinitions/auto_install.jsp

    r3708 r3712  
    4242  import="net.sf.basedb.util.PluginInfo"
    4343  import="net.sf.basedb.util.PluginConfigInfo"
     44  import="net.sf.basedb.util.Values"
    4445  import="net.sf.basedb.clients.web.util.HTML"
    4546  import="net.sf.basedb.clients.web.Base"
     
    6465{
    6566  String title = "Plugin autoinstaller";
     67  String tt = cc.getPropertyValue("trusted");
     68  String up = cc.getPropertyValue("usePermissions");
     69  String aie = cc.getPropertyValue("allowImmediateExection");
     70  boolean isTrusted = tt == null ? true : Values.getBoolean(tt);
     71  boolean usePermissions = up == null ? false : Values.getBoolean(up);
     72  Boolean allowImmediateExecution = aie == null ? null : Values.getBoolean(aie);
     73 
    6674  java.io.File pluginDir = new java.io.File(request.getParameter("plugin_path"));
    6775  List<PluginInfo> pluginInfos = new ArrayList<PluginInfo>();
    6876  List<java.io.File> jarFiles = FileUtil.findFiles(pluginDir, null, "jar", true);
    69  
    70   StringBuilder newPlugins = new StringBuilder();
    7177   
    7278  for (java.io.File file : jarFiles)
     
    154160    <input type="hidden" name="ID" value="<%=ID%>">
    155161    <input type="hidden" name="cmd" value="LoadPlugins">
     162    <input type="hidden" name="plugin_path" value="<%=pluginDir%>">
    156163   
    157164    <h3 class="docked"><%=title%> <base:help tabcontrol="plugins" /></h3>
     
    163170          <table border="0" cellspacing="0" cellpadding="0">
    164171            <tr>
    165               <td><b>Plugins</b></td>             
     172              <td width="40%"><b>Plugins</b></td>             
    166173              <td><b>Install</b></td>
     174              <td><b>Trusted</b></td>
     175              <td><b>Allow immediate execution</b></td>
    167176            </tr>
    168177            <%
     
    206215                </td>
    207216                <td>
    208                   <select name="setplugin.<%=plugin%>"
     217                  <select id="setplugin.<%=plugin%>" name="<%=info.getJarPath()%>.<%=info.getClassName()%>"
    209218                   onchange="setConfigsOnChange(<%=plugin%>,this)" <%=classExists&&jarExists ? "disabled" : "" %>>
    210                     <option value="none" title="Plugin will not be installed">--None--
    211                     <option value="plugin" title="Plugin will be installed">Only plugin
     219                    <option value="" title="Plugin will not be installed">------
     220                    <option value="plugin" title="Plugin will be installed">plugin
    212221                    <%
    213222                    if (hasConfigs)
    214223                    {
    215224                    %>
    216                       <option value="plugin+confs" title="Plugin and configurations will be installed">With configurations
     225                      <option value="plugin+confs" title="Plugin and configurations will be installed">with configs
    217226                    <%
    218227                    }
    219228                    %>
    220229                  </select>
     230                  <input type="hidden" name="<%=info.getClassName()%>.classExists" value="<%=classExists%>">
     231                  <input type="hidden" name="<%=info.getClassName()%>.jarExists" value="<%=jarExists%>">
    221232                  <base:icon image="<%=classExists&&!jarExists ? "itemexists.gif" : "" %>" />
    222233                  <base:icon image="<%=classExists&&jarExists ? "hasvalues.gif" : "" %>" />
     234                </td>
     235                <td>
     236                  &nbsp;<select name="<%=info.getClassName()%>.trusted" <%=classExists&&jarExists ? "disabled" : ""%>>
     237                    <option value="0">no
     238                    <option value="1">yes
     239                  </select>
     240                  &nbsp;&nbsp;
     241                </td>
     242                <td>
     243                  &nbsp;<select name="<%=info.getClassName()%>.allow_immediate_execution" <%=classExists&&jarExists ? "disabled" : ""%>>
     244                    <option value="0">no
     245                    <option value="1">yes
     246                    <%
     247                    if (allowImmediateExecution == null)
     248                    {
     249                      %>
     250                      <option value="" selected>auto
     251                      <%
     252                    }
     253                    %>
     254                  </select>
    223255                </td>
    224256              </tr>
     
    246278                        image="<%=hasNext ? "joust/big/join.gif" : "joust/big/joinbottom.gif"%>"
    247279                      />                     
    248                       <%=HTML.encodeTags(cnfInfo.getName())%>&nbsp;&nbsp;
     280                      <%=HTML.encodeTags(cnfInfo.getName())%>&nbsp;
    249281                    </td>
    250282                    <td>
    251                       <select id="setconfig.<%=plugin%>.<%=cnf%>">
    252                         <option value="none" title="Configuration will not be imported">--None-- 
     283                      <select id="setconfig.<%=plugin%>.<%=cnf%>" name="<%=info.getClassName()%>.<%=cnfInfo.getName()%>">
     284                        <option value="" title="Configuration will not be imported">------ 
    253285                        <option value="import" title="Configuration will be imported">Import
    254286                      </select>
     
    263295          </table>
    264296        </div>
    265         <div align=left style="padding-top:20px">         
    266           &nbsp;<i><base:icon image="itemexists.gif" /> = Class with same name exists in another jar-file</i><br>
    267           &nbsp;<i><base:icon image="warning.gif" /> = Configuration already exists</i><br>
    268           &nbsp;<i><base:icon image="hasvalues.gif" /> = Plugin allready installed, <br>&nbsp;&nbsp;
    269           &nbsp;&nbsp;class-name and jar-file are the same as an installed plugin</i>
    270         </div>       
     297       
    271298      </t:tab>
    272299   
  • trunk/www/admin/plugindefinitions/index.jsp

    r3708 r3712  
    4141  import="net.sf.basedb.core.ItemContext"
    4242  import="net.sf.basedb.core.MultiPermissions"
     43  import="net.sf.basedb.core.BaseException"
    4344  import="net.sf.basedb.core.PermissionDeniedException"
    4445  import="net.sf.basedb.core.ItemAlreadyExistsException"
     
    4647  import="net.sf.basedb.core.plugin.Plugin"
    4748  import="net.sf.basedb.core.query.Hql"
     49  import="net.sf.basedb.util.FileUtil"
     50  import="net.sf.basedb.util.PluginInfo"
    4851  import="net.sf.basedb.util.RemovableUtil"
    4952  import="net.sf.basedb.util.ShareableUtil"
     
    157160  {
    158161    //Loads plugins from jars that have been selected in auto_installer.jsp
    159     dc = sc.newDbControl();
     162    ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, defaultContext);
     163    dc = sc.newDbControl();
     164    java.io.File pluginDir = new java.io.File(request.getParameter("plugin_path"));
     165    List<PluginInfo> pluginInfos = new ArrayList<PluginInfo>();
     166    List<java.io.File> jarFiles = FileUtil.findFiles(pluginDir, null, "jar", true);
     167   
     168    for (java.io.File file : jarFiles)
     169    {
     170      pluginInfos.addAll(PluginInfo.loadFromJar(file));
     171    }
     172    for (PluginInfo info : pluginInfos)
     173    {
     174      String selectedOption = request.getParameter(info.getJarPath() + "." + info.getClassName());
     175      if (selectedOption == null) selectedOption = "";
     176      StringBuilder installedPlugins = new StringBuilder();
     177      StringBuilder notInstalledPlugins = new StringBuilder();
     178      boolean classExists = Values.getBoolean(request.getParameter(info.getClassName()+".classExists"));
     179      int usePermissions = Values.getInt(request.getParameter("use_permissions"));
     180      if (selectedOption.equals("plugin") || selectedOption.equals("plugin+configurations"))
     181      {
     182        if (!classExists)
     183        {
     184          PluginDefinition pd = null;
     185          try
     186          {
     187            pd = PluginDefinition.getNew(dc, info.getClassName(), info.getJarPath(), usePermissions==2);
     188          }
     189          catch(BaseException bex)
     190          {
     191            notInstalledPlugins.append("Could notinstall: " +
     192                info.getClassName() + " in jar:" + info.getJarPath() + "\n");
     193          }
     194          if (pd != null)
     195          {
     196            installedPlugins.append("Installed :" + pd.getClassName() + "\n");
     197            dc.saveItem(pd);
     198            pd.setTrusted(Values.getBoolean(request.getParameter("trusted")));
     199            String aie = Values.getStringOrNull(request.getParameter("allow_immediate_execution"));
     200            pd.setAllowImmediateExecution(aie == null ?
     201              pd.getMainType() == Plugin.MainType.EXPORT : Values.getBoolean(aie));           
     202          }
     203        }
     204      }
     205    }
     206    dc.commit();
     207    cc.removeObject("item");
    160208  }
    161209  else if ("UpdateItem".equals(cmd))
Note: See TracChangeset for help on using the changeset viewer.