Changeset 5372


Ignore:
Timestamp:
Jun 24, 2010, 2:28:06 PM (12 years ago)
Author:
Nicklas Nordborg
Message:

Fixes #1462: Select plugin+configuration in a single list

Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc/src/docbook/userdoc/export_data.xml

    r4889 r5372  
    117117          <varlistentry>
    118118            <term>
    119               <guilabel>Plugin</guilabel>
     119              <guilabel>Plugin + configuration</guilabel>
    120120            </term>
    121121            <listitem>
    122122              <para>
    123                 Select the plug-in to use. Only plug-ins that supports the current
    124                 context and that the logged in user has permission to use are
    125                 available in the list.
    126               </para>
    127             </listitem>
    128           </varlistentry>
    129           <varlistentry>
    130             <term>
    131               <guilabel>Configuration</guilabel>
    132             </term>
    133             <listitem>
    134               <para>
    135                 Select the configuration that should be used together with the plug-in.
    136                 Not all plug-ins supports configuration and this option is only visible
    137                 if the selected plug-in has this support.
     123                Select the plug-in and configuration to use. The list only
     124                shows combinations that the logged in user has permission
     125                to use.
    138126              </para>
    139127            </listitem>
  • trunk/doc/src/docbook/userdoc/import_data.xml

    r4889 r5372  
    158158        <variablelist>
    159159          <varlistentry>
    160             <term><guilabel>Plugin</guilabel></term>
    161             <listitem>
    162               <para>
    163                 A list of all plug-ins that are available in the
    164                 current context. The list only includes plug-ins that
     160            <term><guilabel>Plugin + file format</guilabel></term>
     161            <listitem>
     162              <para>
     163                This is a combined list of plug-ins and their
     164                respective file format configurations. The list only
     165                includes combinations that
    165166                the logged in user has permission to use. If you select
    166                 a plug-in a short description of about it is displayed
     167                an entry a short description of about the plug-in and configuration
     168                is displayed
    167169                below the lists. More information about the plug-ins can
    168                 be found under the menu choice
     170                be found under the menu choices
    169171                <menuchoice>
    170172                  <guimenu>Administrate</guimenu>
     
    172174                  <guisubmenu>Definitions</guisubmenu>
    173175                </menuchoice>
    174               </para>
    175             </listitem>
    176           </varlistentry>
    177          
    178           <varlistentry>
    179             <term><guilabel>File format</guilabel></term>
    180             <listitem>
    181               <para>
    182                 A list of different file formats configurations
    183                 supported by the selected plug-in.
     176                and
    184177                <menuchoice>
    185178                  <guimenu>Administrate</guimenu>
     
    188181                </menuchoice>.
    189182              </para>
    190              
    191183              <note>
    192184                <title>File format vs. Configuration</title>
     
    199191                </simpara>
    200192              </note>
    201              
    202193            </listitem>
    203194          </varlistentry>
    204        
    205195        </variablelist>
    206196
     
    225215          The auto detect function lets you select a file and have
    226216          BASE try to find a suitable plug-in and file format. This option is
    227           selected by default in both the plug-in and file format lists when there is
     217          selected by default in the combined plug-in and file format list when there is
    228218          at least one plug-in that supports auto detection.
    229219        </para>
     
    237227       
    238228        <para>
    239           Select the auto detect option either for both plug-ins and
    240           file formats or only for file formats to use this feature.
    241           Continue to the next step by clicking on the &gbNext;
    242           button.
     229          Select the <guilabel>auto detect (all)</guilabel> option to search for a file format
     230          in all plug-ins that supports the feature, or select the <guilabel>auto detect (plugin)</guilabel>
     231          option to only search the file formats for a specific plug-in.
     232          Continue to the next step by clicking on the &gbNext; button.
    243233        </para>
    244234       
     
    268258          <variablelist>
    269259            <varlistentry>
     260              <term><guilabel>Plugin</guilabel></term>
     261              <listitem>
     262                <para>
     263                  Displayes the selected plug-in or <guilabel>all</guilabel> if the
     264                  auto-detection is used on all supporting plug-ins.
     265                </para>
     266              </listitem>
     267            </varlistentry>
     268            <varlistentry>
    270269              <term><guilabel>File</guilabel></term>
    271270              <listitem>
     
    280279              </listitem>
    281280            </varlistentry>
    282            
     281            <varlistentry>
     282              <term><guilabel>Character set</guilabel></term>
     283              <listitem>
     284                <para>
     285                  The character set used in text files. If the selected file has been configured
     286                  with a character set the correct option is automatically selected. In all
     287                  cases, you have the option to override the default selection. Most files,
     288                  typically use one of the UTF-8 or ISO-8859-1 character sets.
     289                </para>
     290              </listitem>
     291            </varlistentry>
    283292            <varlistentry>
    284293              <term><guilabel>Recently used</guilabel></term>
  • trunk/www/common/import/select_file.jsp

    r5327 r5372  
    3131  import="net.sf.basedb.core.ItemContext"
    3232  import="net.sf.basedb.core.File"
     33  import="net.sf.basedb.core.PluginDefinition"
    3334  import="net.sf.basedb.core.PluginConfiguration"
    3435  import="net.sf.basedb.core.PluginType"
     
    6667final String title = request.getParameter("title");
    6768final DbControl dc = sc.newDbControl();
     69final int pluginId = Values.getInt(request.getParameter("plugindefinition_id"));
     70PluginDefinition plugin = null;
     71if (pluginId > 0)
     72{
     73  plugin = PluginDefinition.getById(dc, pluginId);
     74}
    6875
    6976try
     
    176183    <input type="hidden" name="file_id" value="">
    177184   
    178     <h3 class="docked"><%=title%> <base:help helpid="import.autodetect.selectfile" /></h3>
     185    <h3 class="docked"><%=title%> (auto-detect file format) <base:help helpid="import.autodetect.selectfile" /></h3>
    179186    <div class="boxed">
    180187      <div class="helpmessage">
     
    182189      </div>
    183190      <table class="form" width="100%">
     191      <tr valign="top">
     192        <td class="prompt">Plugin</td>
     193        <td><%=plugin != null ? HTML.encodeTags(plugin.getName()) : "<i>- all -</i>"%></td>
     194      </tr>
    184195      <tr valign="top">
    185196        <td class="prompt">File</td>
  • trunk/www/common/import/select_plugin.jsp

    r5060 r5372  
    9595   
    9696    var lastSelectedPlugin;
     97    var lastSelectedConfig;
    9798    function pluginOnChange()
    9899    {
    99100      var frm = document.forms['import'];
    100       var pluginList = frm.plugindefinition_id;
    101       var configurationList = frm.pluginconfiguration_id;
     101      var pluginList = frm.plugins;
    102102      var plugin = pluginList[pluginList.selectedIndex].plugin;
    103       Plugins.updateConfigurationsList(plugin, configurationList);
    104       if (configurationList.length == 0)
    105       {
    106         Main.hide('configurations');
     103      var config = pluginList[pluginList.selectedIndex].configuration;
     104      var selectedValue = pluginList[pluginList.selectedIndex].value;
     105     
     106      if (lastSelectedPlugin)
     107      {
     108        Main.hide('description.'+lastSelectedPlugin.id);
     109      }
     110      if (lastSelectedConfig)
     111      {
     112        Main.hide('description.config.'+lastSelectedConfig.id);
     113      }
     114      Main.showHide('descriptions', plugin);
     115      if (plugin)
     116      {
     117        Main.show('description.'+plugin.id);
     118        frm.plugindefinition_id.value = plugin.id;
     119        frm.pluginconfiguration_id.value = selectedValue == -1 ? -1 : 0;
    107120      }
    108121      else
    109122      {
    110         Main.show('configurations');
    111       }
    112       if (lastSelectedPlugin)
    113       {
    114         Main.hide('description.'+lastSelectedPlugin.id);
    115       }
    116       else
    117       {
    118         Main.show('descriptions');
    119       }
    120       if (lastSelectedConfig)
    121       {
    122         Main.hide('description.config.'+lastSelectedConfig.id);
    123       }
    124       if (plugin)
    125       {
    126         Main.show('description.'+plugin.id);
    127       }
    128       else
    129       {
    130         Main.hide('descriptions');
    131       }
    132       lastSelectedConfig = null;
     123        frm.plugindefinition_id.value = selectedValue;
     124      }
     125      if (config)
     126      {
     127        Main.show('description.config.'+config.id);
     128        frm.pluginconfiguration_id.value = config.id;
     129      }
     130      lastSelectedConfig = config;
    133131      lastSelectedPlugin = plugin;
    134132    }
    135    
    136     var lastSelectedConfig;
    137     function configOnChange()
     133
     134    function init()
    138135    {
    139136      var frm = document.forms['import'];
    140       var configurationList = frm.pluginconfiguration_id;
    141       var config = configurationList[configurationList.selectedIndex].configuration;
    142       if (lastSelectedConfig)
    143       {
    144         Main.hide('description.config.'+lastSelectedConfig.id);
    145       }
    146       else
    147       {
    148         Main.show('descriptions');
    149       }
    150       if (config)
    151       {
    152         Main.show('description.config.'+config.id);
    153       }
    154       else
    155       {
    156         Main.hide('descriptions');
    157       }
    158       lastSelectedConfig = config;
    159     }
    160    
    161     function init()
    162     {
    163       var frm = document.forms['import'];
    164       var pluginList = frm.plugindefinition_id;
    165       var configurationList = frm.pluginconfiguration_id;
     137      var pluginList = frm.plugins;
     138     
    166139      <%
    167140      PluginDefinition lastPlugin = null;
     
    198171      }
    199172      %>     
    200       Plugins.populateLists(pluginList, configurationList);
    201       if (configurationList.length == 0)
    202       {
    203         Main.hide('configurations');
    204       }
    205       else
    206       {
    207         Main.show('configurations');
    208       }
     173      Plugins.populateLists(pluginList);
    209174      pluginOnChange();
    210175    }
     
    220185    <input type="hidden" name="title" value="<%=title%>">
    221186    <input type="hidden" name="warnIfOpen" value="1">
     187    <input type="hidden" name="plugindefinition_id" value="">
     188    <input type="hidden" name="pluginconfiguration_id" value="">
    222189
    223190    <h3 class="docked"><%=title%> <base:help helpid="import.selectplugin" /></h3>
     
    242209      <table class="form" width="100%">
    243210      <tr valign="top">
    244         <td class="prompt">Plugin</td>
     211        <td class="prompt">Plugin + file format</td>
    245212        <td>
    246           <select name="plugindefinition_id" class="required" onchange="pluginOnChange()">
     213          <select name="plugins" class="required" onchange="pluginOnChange()">
    247214          </select>
    248215          <%
     
    254221          }
    255222          %>
    256         </td>
    257       </tr>
    258       <tr valign="top" id="configurations">
    259         <td class="prompt">File format</td>
    260         <td>
    261           <select name="pluginconfiguration_id" onchange="configOnChange()">
    262           </select>
    263223        </td>
    264224      </tr>
     
    288248      <div align=right>&nbsp;<i><base:icon image="required.gif" /> = required information</i></div>
    289249      <div id="descriptions" class="helpmessage"
    290         style="height: <%=(int)(scale*270)%>px; overflow: auto; display: none;">
     250        style="height: <%=(int)(scale*270)%>px; overflow: auto;">
    291251      <%=descriptions.toString()%>
    292252      </div>
  • trunk/www/common/plugin/select_plugin.jsp

    r5060 r5372  
    9191   
    9292    var lastSelectedPlugin;
     93    var lastSelectedConfig;
    9394    function pluginOnChange()
    9495    {
    9596      var frm = document.forms['plugin'];
    96       var pluginList = frm.plugindefinition_id;
    97       var configurationList = frm.pluginconfiguration_id;
     97      var pluginList = frm.plugins;
    9898      var plugin = pluginList[pluginList.selectedIndex].plugin;
    99       Plugins.updateConfigurationsList(plugin, configurationList);
    100       if (configurationList.length == 0)
    101       {
    102         Main.hide('configurations');
    103       }
    104       else
    105       {
    106         Main.show('configurations');
    107       }
     99      var config = pluginList[pluginList.selectedIndex].configuration;
     100
    108101      if (lastSelectedPlugin)
    109102      {
    110103        Main.hide('description.'+lastSelectedPlugin.id);
    111104      }
    112       else
    113       {
    114         Main.show('descriptions');
    115       }
    116105      if (lastSelectedConfig)
    117106      {
    118107        Main.hide('description.config.'+lastSelectedConfig.id);
    119108      }
    120       Main.show('description.'+plugin.id);
     109      if (plugin)
     110      {
     111        Main.show('description.'+plugin.id);
     112        frm.plugindefinition_id.value = plugin.id;
     113        frm.pluginconfiguration_id.value = 0;
     114      }
     115      if (config)
     116      {
     117        Main.show('description.config.'+config.id);
     118        frm.pluginconfiguration_id.value = config.id;
     119      }
     120      lastSelectedConfig = config;
    121121      lastSelectedPlugin = plugin;
    122       lastSelectedConfig = null;
    123       configOnChange();
    124     }
    125    
    126     var lastSelectedConfig;
    127     function configOnChange()
    128     {
    129       var frm = document.forms['plugin'];
    130       var configurationList = frm.pluginconfiguration_id;
    131       if (configurationList.selectedIndex < 0) return; 
    132       var config = configurationList[configurationList.selectedIndex].configuration;
    133       if (lastSelectedConfig)
    134       {
    135         Main.hide('description.config.'+lastSelectedConfig.id);
    136       }
    137       else
    138       {
    139         Main.show('descriptions');
    140       }
    141       if (config)
    142       {
    143         Main.show('description.config.'+config.id);
    144       }
    145       else
    146       {
    147         Main.hide('descriptions');
    148       }
    149       lastSelectedConfig = config;
    150122    }
    151123   
     
    153125    {
    154126      var frm = document.forms['plugin'];
    155       var pluginList = frm.plugindefinition_id;
    156       var configurationList = frm.pluginconfiguration_id;
     127      var pluginList = frm.plugins;
    157128      <%
    158129      PluginDefinition lastPlugin = null;
     
    188159      }
    189160      %>
    190       Plugins.populateLists(pluginList, configurationList);
     161      Plugins.populateLists(pluginList);
    191162      pluginOnChange();
    192163    }
     
    203174    <input type="hidden" name="title" value="<%=title%>">
    204175    <input type="hidden" name="warnIfOpen" value="1">
     176    <input type="hidden" name="plugindefinition_id" value="">
     177    <input type="hidden" name="pluginconfiguration_id" value="">
    205178
    206179    <h3 class="docked"><%=title%> <base:help helpid="runplugin.selectplugin" /></h3>
     
    225198      <table class="form" width="100%">
    226199      <tr valign="top">
    227         <td class="prompt">Plugin</td>
     200        <td class="prompt">Plugin + configuration</td>
    228201        <td>
    229           <select name="plugindefinition_id" class="required" onchange="pluginOnChange()">
    230           </select>
    231         </td>
    232       </tr>
    233       <tr valign="top" id="configurations">
    234         <td class="prompt">Configuration</td>
    235         <td>
    236           <select name="pluginconfiguration_id" onchange="configOnChange()">
     202          <select name="plugins" class="required" onchange="pluginOnChange()">
    237203          </select>
    238204        </td>
     
    263229      <div align=right>&nbsp;<i><base:icon image="required.gif" /> = required information</i></div>
    264230      <div id="descriptions" class="helpmessage"
    265         style="height: <%=(int)(scale*270)%>px; overflow: auto; display: none;">
     231        style="height: <%=(int)(scale*270)%>px; overflow: auto;">
    266232      <%=descriptions.toString()%>
    267233      </div>
  • trunk/www/include/scripts/plugin.js

    r4889 r5372  
    3333  this.allPlugins = new Array();
    3434 
    35   this.populateLists = function(pluginList, configurationList)
     35  this.populateLists = function(pluginList)
    3636  {
    37     pluginList[pluginList.length] = new Option('- auto detect -', '-1');
     37    var option = new Option('- auto detect (all) -', '-1');
     38    pluginList[pluginList.length] = option;
     39    option.className = 'selectoptionautodetect';
    3840    var numAutodetecting = 0;
    3941    for (var i = 0; i < this.allPlugins.length; i++)
     
    4850      pluginList[pluginList.length] = option;
    4951      pluginList[pluginList.length-1].plugin = plugin;
     52      option.className = 'selectoptionheader';
     53      if (plugin.requiresConfiguration)
     54      {
     55        option.disabled = true;
     56      }
     57     
     58      if (plugin.supportsConfigurations && plugin.configurations.length > 0)
     59      {
     60        if (plugin.autodetection)
     61        {
     62          var option = new Option(' ├ auto detect (' + plugin.name + ') -', '-1');
     63          option.className = 'selectoptionautodetect';
     64          pluginList[pluginList.length] = option;
     65          pluginList[pluginList.length-1].plugin = plugin;
     66        }
     67        for (var j = 0; j < plugin.configurations.length; j++)
     68        {
     69          var conf = plugin.configurations[j];
     70          var name = conf.name;
     71          var prefix = j == plugin.configurations.length-1 ? ' └ ' : ' ├ '
     72          var option = new Option(prefix+name, conf.id);
     73          pluginList[pluginList.length] = option;
     74          pluginList[pluginList.length-1].plugin = plugin;
     75          pluginList[pluginList.length-1].configuration = conf;
     76        }
     77      }
     78     
    5079    }
    5180    if (numAutodetecting == 0)
     
    5382      pluginList[0] = null;
    5483    }
    55     this.updateConfigurationsList(pluginList[0].plugin, configurationList);
    5684  }
    5785 
     86  /*
    5887  this.updateConfigurationsList = function(plugin, list)
    5988  {
     
    85114    }
    86115  }
     116  */
    87117 
    88118}
  • trunk/www/include/styles/main.css

    r5362 r5372  
    213213.selectoptionheader, .defaultheader {
    214214    font-weight: bold;
     215}
     216
     217.selectoptionautodetect {
     218  font-style: italic;
    215219}
    216220
Note: See TracChangeset for help on using the changeset viewer.