Changeset 5939


Ignore:
Timestamp:
Jan 30, 2012, 3:42:18 PM (10 years ago)
Author:
Nicklas Nordborg
Message:

References #1655: GUI improvements

View pages for:

  • File server
  • Projects
  • Permission templates
  • Physical, derived and raw bioassays
  • Experiments, bioassay set
  • Formulas
  • Reporters
  • Reporter lists
Location:
trunk/www
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/www/biomaterials/bioplates/view_bioplate.jsp

    r5937 r5939  
    376376      </tr>
    377377    </table>
    378     <table style="width: 100%;" class="bottomborder">
     378    <table style="width: 100%; height: <%=geometry.getRows()*35+20 %>px;" class="bottomborder">
    379379    <tr valign="top">
    380380      <td style="width: 50%; height: 100%;">
  • trunk/www/biomaterials/tags/view_tag.jsp

    r5937 r5939  
    145145      title="<%=HTML.encodeTags(tag.getName())%>" /></p:path>
    146146   
    147     <t:tabcontrol id="main" subclass="content mastertabcontrol" active="properties">
     147    <t:tabcontrol
     148      id="main"
     149      subclass="content mastertabcontrol"
     150      active="properties">
    148151    <t:tab id="properties" title="Properties">
    149152      <div>
  • trunk/www/common/datafiles/list_files.jsp

    r5935 r5939  
    217217  <base:page type="include">
    218218  <base:body>
    219     <script language="JavaScript">
    220     </script>
     219    <base:section
     220      id="datafiles"
     221      title="<%="Data files (" + (numMembers + numParents) +")"%>"
     222      context="<%=cc%>">
    221223      <%
    222224      if (members.size() == 0)
    223225      {
    224226        %>
    225         <h4>Data files</h4>
     227        <div class="messagecontainer note">
    226228        No files have been added to this item
    227229        (or you don't have permission to view them).
     230        </div>
    228231        <%
    229232      }
     
    231234      {
    232235        %>
    233         <base:section
    234           id="datafiles"
    235           title="<%="Data files (" + (numMembers + numParents) +")"%>"
    236           context="<%=cc%>">
    237236        <tbl:table
    238237          id="datafiles"
    239          
    240238          columns="all"
    241239          >
    242         <tbl:columndef
    243           id="type"
    244           title="Type"
    245         />
    246         <tbl:columndef
    247           id="file"
    248           title="File"
    249         />
    250         <tbl:columndef
    251           id="required"
    252           title="Required"
    253         />
    254         <tbl:columndef
    255           id="validation"
    256           title="Validation"
    257         />
    258         <tbl:data>
    259           <tbl:columns>
    260           </tbl:columns>
    261           <tbl:rows>
    262           <%
    263           for (DataFile dataFile : members)
    264           {
    265             FileSetMember member = dataFile.member;
    266             DataFileType dft = dataFile.type;
    267             FileStoreEnabled parent = dataFile.parent;
    268             Boolean validFile = null;
    269             String validationMessage = "";
    270             boolean readFile = true;
    271             File file = null;
    272             boolean readDataFileType = true;
    273             if (member != null)
     240          <tbl:columndef
     241            id="type"
     242            title="Type"
     243          />
     244          <tbl:columndef
     245            id="file"
     246            title="File"
     247          />
     248          <tbl:columndef
     249            id="required"
     250            title="Required"
     251          />
     252          <tbl:columndef
     253            id="validation"
     254            title="Validation"
     255          />
     256          <tbl:data>
     257            <tbl:headers>
     258              <tbl:headerrow>
     259                <tbl:columnheaders />
     260              </tbl:headerrow>
     261            </tbl:headers>
     262            <tbl:rows>
     263            <%
     264            for (DataFile dataFile : members)
    274265            {
    275               try
     266              FileSetMember member = dataFile.member;
     267              DataFileType dft = dataFile.type;
     268              FileStoreEnabled parent = dataFile.parent;
     269              Boolean validFile = null;
     270              String validationMessage = "";
     271              boolean readFile = true;
     272              File file = null;
     273              boolean readDataFileType = true;
     274              if (member != null)
    276275              {
    277                 file = member.getFile();
     276                try
     277                {
     278                  file = member.getFile();
     279                }
     280                catch (PermissionDeniedException ex)
     281                {
     282                  readFile = false;
     283                }
     284                try
     285                {
     286                  dft = member.getDataFileType();
     287                }
     288                catch (PermissionDeniedException ex)
     289                {
     290                  readDataFileType = false;
     291                }
    278292              }
    279               catch (PermissionDeniedException ex)
     293              UsableDataFileType uft = usableFileTypes.get(dft);
     294              boolean isRequired = uft == null ? false : uft.isRequired();
     295              boolean isPartOfPlatform = uft != null || (subtype != null && subtype.isAssociatedDataFileType(dft));
     296              String icon = null;
     297              if (member == null)
    280298              {
    281                 readFile = false;
     299                if (isRequired)
     300                {
     301                  icon = "warning.gif";
     302                  validationMessage = "Missing a required file";
     303                }
    282304              }
    283               try
     305              else
    284306              {
    285                 dft = member.getDataFileType();
     307                validFile = member.isValid();
     308                if (Boolean.FALSE.equals(validFile))
     309                {
     310                  validationMessage = HTML.encodeTags(member.getErrorMessage());
     311                  icon = "error.png";
     312                }
     313                else if (!isPartOfPlatform)
     314                {
     315                  icon = "warning.gif";
     316                  if (platform != null)
     317                  {
     318                    validationMessage = "This file is not part of the <i>" + HTML.encodeTags(platform.getName()) + "</i> platform";
     319                  }
     320                  else if (subtype != null)
     321                  {
     322                    validationMessage = "This file is not part of the <i>" + HTML.encodeTags(subtype.getName()) + "</i> subtype";
     323                  }
     324                }
     325                else if (Boolean.TRUE.equals(validFile))
     326                {
     327                  if (member.getErrorMessage() != null)
     328                  {
     329                    validationMessage = HTML.encodeTags(member.getErrorMessage());
     330                    icon = "warning.gif";
     331                  }
     332                  else
     333                  {
     334                    validationMessage = "Ok";
     335                    icon = "ok.png";
     336                  }
     337                }
     338                else
     339                {
     340                  validationMessage = "<i>- not validated -</i>";
     341                }
    286342              }
    287               catch (PermissionDeniedException ex)
    288               {
    289                 readDataFileType = false;
    290               }
    291             }
    292             UsableDataFileType uft = usableFileTypes.get(dft);
    293             boolean isRequired = uft == null ? false : uft.isRequired();
    294             boolean isPartOfPlatform = uft != null || (subtype != null && subtype.isAssociatedDataFileType(dft));
    295             String icon = null;
    296             if (member == null)
    297             {
    298               if (isRequired)
    299               {
    300                 icon = "warning.gif";
    301                 validationMessage = "Missing a required file";
    302               }
    303             }
    304             else
    305             {
    306               validFile = member.isValid();
    307               if (Boolean.FALSE.equals(validFile))
    308               {
    309                 validationMessage = HTML.encodeTags(member.getErrorMessage());
    310                 icon = "error.png";
    311               }
    312               else if (!isPartOfPlatform)
    313               {
    314                 icon = "warning.gif";
    315                 if (platform != null)
    316                 {
    317                   validationMessage = "This file is not part of the <i>" + HTML.encodeTags(platform.getName()) + "</i> platform";
    318                 }
    319                 else if (subtype != null)
    320                 {
    321                   validationMessage = "This file is not part of the <i>" + HTML.encodeTags(subtype.getName()) + "</i> subtype";
    322                 }
    323               }
    324               else if (Boolean.TRUE.equals(validFile))
    325               {
    326                 if (member.getErrorMessage() != null)
    327                 {
    328                   validationMessage = HTML.encodeTags(member.getErrorMessage());
    329                   icon = "warning.gif";
    330                 }
    331                 else
    332                 {
    333                   validationMessage = "Ok";
    334                   icon = "ok.png";
    335                 }
    336               }
    337               else
    338               {
    339                 validationMessage = "<i>- not validated -</i>";
    340               }
     343              %>
     344              <tbl:row>
     345                <tbl:cell column="type"><base:icon
     346                    image="deleted.gif"
     347                    tooltip="This item has been scheduled for deletion"
     348                    visible="<%=dft != null && dft.isRemoved()%>"
     349                  /><%=Base.getLinkedName(ID, dft, !readDataFileType, true)%></tbl:cell>
     350                <tbl:cell column="file"><base:icon
     351                    image="deleted.gif"
     352                    tooltip="This item has been scheduled for deletion"
     353                    visible="<%=file != null && file.isRemoved()%>"
     354                  />
     355                  <%=Base.getLinkedFile(ID, file, !readFile, true, true, root)%>
     356                  <%
     357                  if (parent != null)
     358                  {
     359                    %>
     360                    <i>(inherited from <%=Base.getLinkedName(ID, (Nameable)parent, false, true)%>)</i>
     361                    <%
     362                  }
     363                  %>
     364                </tbl:cell>
     365                <tbl:cell column="required"><%=isRequired ? "yes" : "no" %></tbl:cell>
     366                <tbl:cell column="validation">
     367                  <base:icon image="<%=icon%>" visible="<%=icon != null %>" />
     368                  <%=validationMessage %>
     369                </tbl:cell>
     370              </tbl:row>
     371              <%
    341372            }
    342373            %>
    343             <tbl:row>
    344               <tbl:cell column="type"><base:icon
    345                   image="deleted.gif"
    346                   tooltip="This item has been scheduled for deletion"
    347                   visible="<%=dft != null && dft.isRemoved()%>"
    348                 /><%=Base.getLinkedName(ID, dft, !readDataFileType, true)%></tbl:cell>
    349               <tbl:cell column="file"><base:icon
    350                   image="deleted.gif"
    351                   tooltip="This item has been scheduled for deletion"
    352                   visible="<%=file != null && file.isRemoved()%>"
    353                 />
    354                 <%=Base.getLinkedFile(ID, file, !readFile, true, true, root)%>
    355                 <%
    356                 if (parent != null)
    357                 {
    358                   %>
    359                   <i>(inherited from <%=Base.getLinkedName(ID, (Nameable)parent, false, true)%>)</i>
    360                   <%
    361                 }
    362                 %>
    363               </tbl:cell>
    364               <tbl:cell column="required"><%=isRequired ? "yes" : "no" %></tbl:cell>
    365               <tbl:cell column="validation">
    366                 <base:icon image="<%=icon%>" visible="<%=icon != null %>" />
    367                 <%=validationMessage %>
    368               </tbl:cell>
    369             </tbl:row>
    370             <%
    371           }
    372           %>
    373           </tbl:rows>
    374         </tbl:data>
     374            </tbl:rows>
     375          </tbl:data>
    375376        </tbl:table>
    376         </base:section>
    377377        <%
    378378      }
    379379      %>
    380 
     380    </base:section>
    381381  </base:body>
    382382  </base:page>
  • trunk/www/filemanager/fileservers/view_fileserver.jsp

    r5937 r5939  
    169169  </base:head>
    170170  <base:body>
    171     <p>
    172     <p:path>
    173       <p:pathelement title="File servers" href="<%="index.jsp?ID="+ID%>" />
    174       <p:pathelement title="<%=HTML.encodeTags(server.getName())%>" />
    175     </p:path>
     171    <p:path><p:pathelement
     172      title="File servers" href="<%="index.jsp?ID="+ID%>"
     173      /><p:pathelement title="<%=HTML.encodeTags(server.getName())%>"
     174      /></p:path>
    176175   
    177     <t:tabcontrol id="main" active="properties">
     176    <t:tabcontrol
     177      id="main"
     178      subclass="content mastertabcontrol"
     179      active="properties">
    178180    <t:tab id="properties" title="Properties">
    179     <tbl:toolbar
    180       >
    181       <tbl:button
    182         disabled="<%=writePermission ? false : true%>"
    183         image="edit.gif"
    184         onclick="editItem()"
    185         title="Edit&hellip;"
    186         tooltip="<%=writePermission ? "Edit this file server" : "You do not have permission to edit this file server"%>"
    187       />
    188       <tbl:button
    189         disabled="<%=deletePermission ? false : true%>"
    190         image="delete.gif"
    191         onclick="deleteItem()"
    192         title="Delete"
    193         visible="<%=!server.isRemoved()%>"
    194         tooltip="<%=deletePermission ? "Delete this file server" : "You do not have permission to delete this file server"%>"
    195       />
    196       <tbl:button
    197         disabled="<%=writePermission ? false : true%>"
    198         image="restore.gif"
    199         onclick="restoreItem()"
    200         title="Restore"
    201         visible="<%=server.isRemoved()%>"
    202         tooltip="<%=writePermission ? "Restore this file server" : "You do not have permission to restore this file server"%>"
    203       />
    204       <tbl:button
    205         disabled="<%=sharePermission ? false : true%>"
    206         image="share.gif"
    207         onclick="shareItem()"
    208         title="Share&hellip;"
    209         tooltip="<%=sharePermission ? "Share this file server to other user, groups and projects" : "You do not have permission to share this file server"%>"
    210       />
    211       <tbl:button
    212         disabled="<%=setOwnerPermission ? false : true%>"
    213         image="take_ownership.png"
    214         onclick="setOwner()"
    215         title="Set owner&hellip;"
    216         tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
    217       />
    218       <tbl:button
    219         image="import.gif"
    220         onclick="runPlugin('ImportItem')"
    221         title="Import&hellip;"
    222         tooltip="Import data"
    223         visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
    224       />
    225       <tbl:button
    226         image="export.gif"
    227         onclick="runPlugin('ExportItem')"
    228         title="Export&hellip;"
    229         tooltip="Export data"
    230         visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
    231       />
    232       <tbl:button
    233         image="runplugin.gif"
    234         onclick="runPlugin('RunPlugin')"
    235         title="Run plugin&hellip;"
    236         tooltip="Run a plugin"
    237         visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
    238       />
    239       <ext:render extensions="<%=invoker%>" context="<%=jspContext%>"
    240         wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
    241       <tbl:button
    242         image="help.png"
    243         onclick="<%="Main.openHelp('" + ID +"', 'fileserver.view.properties')"%>"
    244         title="Help&hellip;"
    245         tooltip="Get help about this page"
    246       /> 
    247       </tbl:toolbar>
    248     <div class="boxedbottom">
    249       <div class="itemstatus">Permissions on this item: <i><%=PermissionUtil.getFullPermissionNames(server)%></i></div>
    250       <%
    251       if (server.isRemoved() || server.isShared())
    252       {
    253         %>
    254         <div class="itemstatus">
     181      <div>
     182      <table class="fullform bottomborder">
     183      <tr>
     184        <th class="itemstatus">
    255185          <base:icon
    256             image="<%=deletePermanentlyPermission ? "deleted.gif" : "deleted_disabled.gif"%>"
    257             onclick="<%=deletePermanentlyPermission ? "deleteItemPermanently()" : null%>"
    258             tooltip="<%=deletePermanentlyPermission ? "Permanently delete this item" : null%>"
    259             visible="<%=isRemoved%>"> This item has been flagged for deletion<br></base:icon>
     186            image="shared.gif"
     187            visible="<%=server.isShared()%>"
     188            tooltip="This item is shared to other users, groups and/or projects"
     189          />
     190          <base:icon
     191            image="deleted.gif"
     192            onclick="deleteItemPermanently()"
     193            tooltip="This item has been flagged for deletion. Click to delete it now."
     194            enabled="<%=deletePermanentlyPermission %>"
     195            visible="<%=isRemoved%>"
     196          />
    260197          <base:icon image="used.gif"
    261198            onclick="showUsingItems()"
    262             tooltip="Show the items that are using this one"
    263             visible="<%=isUsed%>"> This item is used by other items and can't be permanently deleted<br></base:icon>
    264           <base:icon image="shared.gif"
    265             visible="<%=server.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    266         </div>
    267         <%
    268       }
    269       %>
    270       <table class="form" cellspacing=0>
    271       <tr>
    272         <td class="prompt">Name</td>
     199            tooltip="This item is used by other items and can't be permanently deleted. Show the items that are using this one"
     200            visible="<%=isRemoved && isUsed%>" />
     201        </th>
     202        <td style="padding: 0px;">
     203          <tbl:toolbar subclass="bottomborder">
     204            <tbl:button
     205              disabled="<%=writePermission ? false : true%>"
     206              image="edit.gif"
     207              onclick="editItem()"
     208              title="Edit&hellip;"
     209              tooltip="<%=writePermission ? "Edit this file server" : "You do not have permission to edit this file server"%>"
     210            />
     211            <tbl:button
     212              disabled="<%=deletePermission ? false : true%>"
     213              image="delete.gif"
     214              onclick="deleteItem()"
     215              title="Delete"
     216              visible="<%=!server.isRemoved()%>"
     217              tooltip="<%=deletePermission ? "Delete this file server" : "You do not have permission to delete this file server"%>"
     218            />
     219            <tbl:button
     220              disabled="<%=writePermission ? false : true%>"
     221              image="restore.gif"
     222              onclick="restoreItem()"
     223              title="Restore"
     224              visible="<%=server.isRemoved()%>"
     225              tooltip="<%=writePermission ? "Restore this file server" : "You do not have permission to restore this file server"%>"
     226            />
     227            <tbl:button
     228              disabled="<%=sharePermission ? false : true%>"
     229              image="share.gif"
     230              onclick="shareItem()"
     231              title="Share&hellip;"
     232              tooltip="<%=sharePermission ? "Share this file server to other user, groups and projects" : "You do not have permission to share this file server"%>"
     233            />
     234            <tbl:button
     235              disabled="<%=setOwnerPermission ? false : true%>"
     236              image="take_ownership.png"
     237              onclick="setOwner()"
     238              title="Set owner&hellip;"
     239              tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
     240            />
     241            <tbl:button
     242              image="import.gif"
     243              onclick="runPlugin('ImportItem')"
     244              title="Import&hellip;"
     245              tooltip="Import data"
     246              visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
     247            />
     248            <tbl:button
     249              image="export.gif"
     250              onclick="runPlugin('ExportItem')"
     251              title="Export&hellip;"
     252              tooltip="Export data"
     253              visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
     254            />
     255            <tbl:button
     256              image="runplugin.gif"
     257              onclick="runPlugin('RunPlugin')"
     258              title="Run plugin&hellip;"
     259              tooltip="Run a plugin"
     260              visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
     261            />
     262            <ext:render extensions="<%=invoker%>" context="<%=jspContext%>"
     263              wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
     264            <tbl:button
     265              image="help.png"
     266              onclick="<%="Main.openHelp('" + ID +"', 'fileserver.view.properties')"%>"
     267              title="Help&hellip;"
     268              tooltip="Get help about this page"
     269            /> 
     270          </tbl:toolbar>
     271        </td>
     272      </tr>
     273      <tr>
     274        <th>Name</th>
    273275        <td><%=HTML.encodeTags(server.getName())%></td>
    274276      </tr>
    275277      <tr>
    276         <td class="prompt">ConnectionManager</td>
     278        <th>ConnectionManager</th>
    277279        <td><%=cmf == null ? "<i>- auto -</i>" : HTML.encodeTags(cmf.getDisplayName())%></td>
    278280      </tr>
    279281      <tr>
    280         <td class="prompt">Host</td>
     282        <th>Host</th>
    281283        <td><%=HTML.encodeTags(server.getHost())%></td>
    282284      </tr>
    283285      <tr>
    284         <td class="prompt">Username</td>
     286        <th>Username</th>
    285287        <td><%=HTML.encodeTags(server.getUsername())%></td>
    286288      </tr>
    287289      <tr>
    288         <td class="prompt">Has password</td>
     290        <th>Has password</th>
    289291        <td><%=server.hasPassword() ? "yes" : "no"%></td>
    290292      </tr>
    291293      <tr>
    292         <td class="prompt">Owner</td>
     294        <th>Owner</th>
    293295        <td><base:propertyvalue item="<%=server%>" property="owner"/></td>
    294296      </tr>
    295297      <tr>
    296         <td class="prompt">Description</td>
     298        <th>Permissions</th>
     299        <td><%=PermissionUtil.getFullPermissionNames(server)%></td>
     300      </tr>
     301      <tr>
     302        <th>Description</th>
    297303        <td><%=HTML.niceFormat(server.getDescription())%></td>
    298304      </tr>
     
    316322      %>
    317323      <tr>
    318       <td class="prompt">Server certificate</td>
     324        <th>Server certificate</th>
     325        <%
     326        if (error != null)
     327        {
     328          %>
     329          <td><div class="messagecontainer error"><%=HTML.encodeTags(error)%></div></td>
     330          <%
     331        }
     332        else if (cert == null)
     333        {
     334          %>
     335          <td>no</td>
     336          <%
     337        }
     338      %>
     339      </tr>
    319340      <%
    320       if (error != null)
     341      if (cert != null)
    321342      {
    322343        %>
    323         <td class="error"><%=error%></td></tr>
    324         <%
    325       }
    326       else if (cert == null)
    327       {
    328         %>
    329         <td>no</td></tr>
    330         <%
    331       }
    332       if (cert != null)
    333       {
    334         %>
    335         </tr>
    336         <tr>
    337           <td class="subprompt">Issued to</td>
     344        <tr>
     345          <th class="subprompt">- issued to</th>
    338346          <td><%=cert.getSubjectX500Principal().getName() %></td>
    339347        </tr>
    340348        <tr>
    341           <td class="subprompt">Issued by</td>
     349          <th class="subprompt">- issued by</th>
    342350          <td><%=cert.getIssuerX500Principal().getName() %></td>
    343351        </tr>
    344352        <tr>
    345           <td class="subprompt">Valid between</td>
     353          <th class="subprompt">- valid between</th>
    346354          <td><%=dateFormatter.format(cert.getNotBefore()) %> —
    347355            <%=dateFormatter.format(cert.getNotAfter()) %></td>
    348356        </tr>
    349357        <tr>
    350           <td class="subprompt">Serial number</td>
     358          <th class="subprompt">- serial number</th>
    351359          <td><%=cert.getSerialNumber() %></td>
    352360        </tr>
    353361        <tr>
    354           <td class="subprompt">MD5 fingerprint</td>
     362          <th class="subprompt">- MD5 fingerprint</th>
    355363          <td><%=getMd5FingerPrint(cert)%></td>
    356364        </tr>
    357365        <tr>
    358           <td class="subprompt">SHA1 fingerprint</td>
     366          <th class="subprompt">- SHA1 fingerprint</th>
    359367          <td><%=getSha1FingerPrint(cert)%></td>
    360368        </tr>
     
    362370      }
    363371      %>
    364      
    365372      <%
    366373      error = null;
     
    381388      %>
    382389      <tr>
    383       <td class="prompt">Client certificate</td>
     390        <th>Client certificate</th>
     391        <%
     392        if (error != null)
     393        {
     394          %>
     395          <td><div class="messagecontainer error"><%=HTML.encodeTags(error)%></div></td>
     396          <%
     397        }
     398        else if (cert == null)
     399        {
     400          %>
     401          <td>no</td>
     402          <%
     403        }
     404        %>
     405      </tr>
    384406      <%
    385       if (error != null)
     407      if (cert != null)
    386408      {
    387409        %>
    388         <td class="error"><%=error%></td></tr>
    389         <%
    390       }
    391       else if (cert == null)
    392       {
    393         %>
    394         <td>no</td></tr>
    395         <%
    396       }
    397       if (cert != null)
    398       {
    399         %>
    400         </tr>
    401         <tr>
    402           <td class="subprompt">Issued to</td>
     410        <tr>
     411          <th class="subprompt">- issued to</th>
    403412          <td><%=cert.getSubjectX500Principal().getName() %></td>
    404413        </tr>
    405414        <tr>
    406           <td class="subprompt">Issued by</td>
     415          <th class="subprompt">- issued by</th>
    407416          <td><%=cert.getIssuerX500Principal().getName() %></td>
    408417        </tr>
    409418        <tr>
    410           <td class="subprompt">Valid between</td>
     419          <th class="subprompt">- valid between</th>
    411420          <td><%=dateFormatter.format(cert.getNotBefore()) %> —
    412421            <%=dateFormatter.format(cert.getNotAfter()) %></td>
    413422        </tr>
    414423        <tr>
    415           <td class="subprompt">Serial number</td>
     424          <th class="subprompt">- serial number</th>
    416425          <td><%=cert.getSerialNumber() %></td>
    417426        </tr>
    418427        <tr>
    419           <td class="subprompt">MD5 fingerprint</td>
     428          <th class="subprompt">- MD5 fingerprint</th>
    420429          <td><%=getMd5FingerPrint(cert)%></td>
    421430        </tr>
    422431        <tr>
    423           <td class="subprompt">SHA1 fingerprint</td>
     432          <th class="subprompt">- SHA1 fingerprint</th>
    424433          <td><%=getSha1FingerPrint(cert)%></td>
    425434        </tr>
     
    428437      %>
    429438      </table>
     439      </div>
    430440      <jsp:include page="../../common/anytoany/list_anytoany.jsp">
    431441        <jsp:param name="ID" value="<%=ID%>" />
     
    434444        <jsp:param name="title" value="Other items related to this file server" />
    435445      </jsp:include>
    436       <%
    437       // Tables with users/groups/projects that this item is shared to
    438       MultiPermissions mp = new MultiPermissions(Collections.singleton(server));
    439       ItemResultList<User> users = mp.getUsers().list(dc);
    440       ItemResultList<Group> groups = mp.getGroups().list(dc);
    441       ItemResultList<Project> projects = mp.getProjects().list(dc);
    442       int totalShare = users.size() + groups.size() + projects.size();
    443      
    444       if (totalShare > 0)
    445       {
    446         %>
    447         <base:section
    448           id="sharedTo"
    449           title="<%="Shared to (" + totalShare + ")"%>"
    450           context="<%=cc%>"
    451           >
    452           <tbl:table
    453             id="itemsSharedTo"
    454            
    455             columns="all"
    456           >
    457             <tbl:columndef
    458               id="itemType"
    459               title="Item type"
    460             />
    461             <tbl:columndef
    462               id="name"
    463               title="Name"
    464             />
    465             <tbl:columndef
    466               id="permissions"
    467               title="Permissions"
    468             />
    469             <tbl:data>
    470               <tbl:columns>
    471               </tbl:columns>
    472               <tbl:rows>
    473               <%
    474               for (Project project : projects)
    475               {
    476                 Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
    477                 %>     
    478                 <tbl:row>
    479                   <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
    480                   <tbl:cell column="name"><base:icon
    481                     image="deleted.gif"
    482                     tooltip="This item has been scheduled for deletion"
    483                     visible="<%=project.isRemoved()%>"
    484                   /><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
    485                   <tbl:cell column="permissions">
    486                     <%=PermissionUtil.translatePermissionsToString(permissions)%>
    487                   </tbl:cell>
    488                 </tbl:row>
    489                 <%
    490               }
    491               for (Group group : groups)
    492               {
    493                 Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
    494                 %>
    495                 <tbl:row>             
    496                   <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
    497                   <tbl:cell column="name"><base:icon
    498                     image="deleted.gif"
    499                     tooltip="This item has been scheduled for deletion"
    500                     visible="<%=group.isRemoved()%>"
    501                   /><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
    502                   <tbl:cell column="permissions">
    503                     <%=PermissionUtil.translatePermissionsToString(permissions)%>
    504                   </tbl:cell>
    505                 </tbl:row>
    506                 <% 
    507               }
    508               for (User user : users)
    509               {
    510                 Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
    511                 %>
    512                 <tbl:row>             
    513                   <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
    514                   <tbl:cell column="name"><base:icon
    515                     image="deleted.gif"
    516                     tooltip="This item has been scheduled for deletion"
    517                     visible="<%=user.isRemoved()%>"
    518                   /><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
    519                   <tbl:cell column="permissions">
    520                     <%=PermissionUtil.translatePermissionsToString(permissions)%>
    521                   </tbl:cell>
    522                 </tbl:row>
    523                 <%
    524               }
    525               %>
    526               </tbl:rows>
    527             </tbl:data>
    528           </tbl:table>
    529         </base:section>
    530         <%
    531       }
    532       else
    533       {
    534         %>
    535         <h4>Shared to</h4>
    536         This file server is not shared
    537         (or, you don't have permission to view the ones it is shared to).
    538         <%
    539       }     
    540       %>
    541 
    542     </div>
     446      <jsp:include page="../../common/share/list_share.jsp">
     447        <jsp:param name="ID" value="<%=ID%>" />
     448        <jsp:param name="item_type" value="<%=itemType.name()%>" />
     449        <jsp:param name="item_id" value="<%=itemId%>" />
     450        <jsp:param name="title" value="Shared to" />
     451      </jsp:include>
    543452    </t:tab>
    544453    </t:tabcontrol>
  • trunk/www/include/styles/main.css

    r5938 r5939  
    423423  ----------------------------
    424424*/
     425
     426/* Add a 1-pixel gray border around the element */
     427.fullborder
     428{
     429  border: 1px solid #A0A0A0 !important;
     430}
    425431
    426432/* Add a 1-pixel gray border to the bottom om an element */
  • trunk/www/include/styles/plate.css

    r5928 r5939  
    5959.well
    6060{
    61   width: 30px;
    62   height: 30px;
    63   max-width: 30px;
    64   max-height: 30px;
     61  width: 28px;
     62  height: 28px;
     63  max-width: 28px;
     64  max-height: 28px;
    6565  border-top: 1px solid #E8E8E8;
    6666  border-left: 1px solid #E8E8E8;
  • trunk/www/my_base/projects/view_project.jsp

    r5937 r5939  
    157157  </base:head>
    158158  <base:body>
    159     <p>
    160     <p:path>
    161       <p:pathelement title="Projects" href="<%="index.jsp?ID="+ID%>" />
    162       <p:pathelement title="<%=HTML.encodeTags(project.getName())%>" />
    163     </p:path>
     159    <p:path><p:pathelement
     160      title="Projects" href="<%="index.jsp?ID="+ID%>"
     161      /><p:pathelement title="<%=HTML.encodeTags(project.getName())%>"
     162      /></p:path>
    164163   
    165     <t:tabcontrol id="main" active="<%=tab%>" switch="switchTab">
     164    <t:tabcontrol
     165      id="main"
     166      subclass="content mastertabcontrol"
     167      active="<%=tab%>" switch="switchTab">
    166168    <t:tab id="properties" title="Properties">
    167 
    168     <tbl:toolbar
    169       >
    170       <tbl:button
    171         disabled="<%=writePermission ? false : true%>"
    172         image="edit.gif"
    173         onclick="editItem()"
    174         title="Edit&hellip;"
    175         tooltip="<%=writePermission ? "Edit this project" : "You do not have permission to edit this project"%>"
    176       />
    177       <tbl:button
    178         disabled="<%=deletePermission ? false : true%>"
    179         image="delete.gif"
    180         onclick="deleteItem()"
    181         title="Delete"
    182         visible="<%=!project.isRemoved()%>"
    183         tooltip="<%=deletePermission ? "Delete this project" : "You do not have permission to delete this project"%>"
    184       />
    185       <tbl:button
    186         disabled="<%=writePermission ? false : true%>"
    187         image="restore.gif"
    188         onclick="restoreItem()"
    189         title="Restore"
    190         visible="<%=project.isRemoved()%>"
    191         tooltip="<%=writePermission ? "Restore this project" : "You do not have permission to restore this project"%>"
    192       />
    193       <tbl:button
    194         disabled="<%=setOwnerPermission ? false : true%>"
    195         image="take_ownership.png"
    196         onclick="setOwner()"
    197         title="Set owner&hellip;"
    198         tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
    199       />
    200       <tbl:button
    201         onclick="setToActive()"
    202         image="bullet.gif"
    203         title="Set active"
    204         tooltip="Set this project to the active project"
    205       />
    206       <tbl:button
    207         image="import.gif"
    208         onclick="runPlugin('ImportItem')"
    209         title="Import&hellip;"
    210         tooltip="Import data"
    211         visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
    212       />
    213       <tbl:button
    214         image="export.gif"
    215         onclick="runPlugin('ExportItem')"
    216         title="Export&hellip;"
    217         tooltip="Export data"
    218         visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
    219       />
    220       <tbl:button
    221         image="runplugin.gif"
    222         onclick="runPlugin('RunPlugin')"
    223         title="Run plugin&hellip;"
    224         tooltip="Run a plugin"
    225         visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
    226       />
    227       <ext:render extensions="<%=invoker%>" context="<%=jspContext%>"
    228         wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
    229       <tbl:button
    230         image="help.png"
    231         onclick="<%="Main.openHelp('" + ID +"', 'project.view.properties')"%>"
    232         title="Help&hellip;"
    233         tooltip="Get help about this page"
    234       />
    235       </tbl:toolbar>
    236     <div class="boxedbottom">
    237       <div class="itemstatus">Permissions on this item: <i><%=PermissionUtil.getFullPermissionNames(project)%></i></div>
    238       <%
    239       if (project.isRemoved())
    240       {
    241         %>
    242         <div class="itemstatus">
     169      <div>
     170      <table class="fullform bottomborder">
     171      <tr>
     172        <th class="itemstatus">
    243173          <base:icon
    244             image="<%=deletePermanentlyPermission ? "deleted.gif" : "deleted_disabled.gif"%>"
    245             onclick="<%=deletePermanentlyPermission ? "deleteItemPermanently()" : null%>"
    246             tooltip="<%=deletePermanentlyPermission ? "Permanently delete this item" : null%>"
    247             visible="<%=isRemoved%>"> This item has been flagged for deletion<br></base:icon>
     174            image="deleted.gif"
     175            onclick="deleteItemPermanently()"
     176            tooltip="This item has been flagged for deletion. Click to delete it now."
     177            enabled="<%=deletePermanentlyPermission %>"
     178            visible="<%=isRemoved%>"
     179          />
    248180          <base:icon image="used.gif"
    249181            onclick="showUsingItems()"
    250             tooltip="Show the items that are using this one"
    251             visible="<%=isUsed%>"> This item is used by other items and can't be permanently deleted<br></base:icon>
    252         </div>
    253         <%
    254       }
    255       %>
    256       <table class="form" cellspacing=0>
    257       <tr>
    258         <td class="prompt">Name</td>
     182            tooltip="This item is used by other items and can't be permanently deleted. Show the items that are using this one"
     183            visible="<%=isRemoved && isUsed%>" />
     184        </th>
     185        <td style="padding: 0px;">
     186          <tbl:toolbar subclass="bottomborder">
     187            <tbl:button
     188              disabled="<%=writePermission ? false : true%>"
     189              image="edit.gif"
     190              onclick="editItem()"
     191              title="Edit&hellip;"
     192              tooltip="<%=writePermission ? "Edit this project" : "You do not have permission to edit this project"%>"
     193            />
     194            <tbl:button
     195              disabled="<%=deletePermission ? false : true%>"
     196              image="delete.gif"
     197              onclick="deleteItem()"
     198              title="Delete"
     199              visible="<%=!project.isRemoved()%>"
     200              tooltip="<%=deletePermission ? "Delete this project" : "You do not have permission to delete this project"%>"
     201            />
     202            <tbl:button
     203              disabled="<%=writePermission ? false : true%>"
     204              image="restore.gif"
     205              onclick="restoreItem()"
     206              title="Restore"
     207              visible="<%=project.isRemoved()%>"
     208              tooltip="<%=writePermission ? "Restore this project" : "You do not have permission to restore this project"%>"
     209            />
     210            <tbl:button
     211              disabled="<%=setOwnerPermission ? false : true%>"
     212              image="take_ownership.png"
     213              onclick="setOwner()"
     214              title="Set owner&hellip;"
     215              tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
     216            />
     217            <tbl:button
     218              onclick="setToActive()"
     219              image="bullet.gif"
     220              title="Set active"
     221              tooltip="Set this project to the active project"
     222            />
     223            <tbl:button
     224              image="import.gif"
     225              onclick="runPlugin('ImportItem')"
     226              title="Import&hellip;"
     227              tooltip="Import data"
     228              visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
     229            />
     230            <tbl:button
     231              image="export.gif"
     232              onclick="runPlugin('ExportItem')"
     233              title="Export&hellip;"
     234              tooltip="Export data"
     235              visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
     236            />
     237            <tbl:button
     238              image="runplugin.gif"
     239              onclick="runPlugin('RunPlugin')"
     240              title="Run plugin&hellip;"
     241              tooltip="Run a plugin"
     242              visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
     243            />
     244            <ext:render extensions="<%=invoker%>" context="<%=jspContext%>"
     245              wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
     246            <tbl:button
     247              image="help.png"
     248              onclick="<%="Main.openHelp('" + ID +"', 'project.view.properties')"%>"
     249              title="Help&hellip;"
     250              tooltip="Get help about this page"
     251            />
     252          </tbl:toolbar>
     253        </td>
     254      </tr>
     255      <tr>
     256        <th>Name</th>
    259257        <td><%=HTML.encodeTags(project.getName())%></td>
    260258      </tr>
    261259      <tr>
    262         <td class="prompt">Registered</td>
     260        <th>Registered</th>
    263261        <td><%=dateFormatter.format(project.getEntryDate())%></td>
    264262      </tr>
    265263      <tr>
    266         <td class="prompt">Owner</td>
     264        <th>Owner</th>
    267265        <td><base:propertyvalue item="<%=project%>" property="owner" /></td>
    268266      </tr>
    269267      <tr>
    270         <td class="prompt">Default permissions</td>
     268        <th>Default permissions</th>
    271269        <td><base:propertyvalue item="<%=project%>" property="permissionTemplate"
    272270          nulltext="<%=PermissionUtil.getFullPermissionNames(project.getAutoPermission())%>" /></td>
    273271      </tr>
    274272      <tr>
    275         <td class="prompt">Description</td>
     273        <th>Your permissions</th>
     274        <td><%=PermissionUtil.getFullPermissionNames(project)%></td>
     275      </tr>
     276      <tr>
     277        <th>Description</th>
    276278        <td><%=HTML.niceFormat(project.getDescription())%></td>
    277279      </tr>
     
    289291      userQuery.order(Orders.asc(Hql.property("name")));
    290292      ItemResultList<User> users = userQuery.list(dc);
    291       if (groups.size() + users.size() == 0)
    292       {
    293         %>
    294         <h4>Members</h4>
    295         There are no members in this project
    296         (or, you don't have permission to view them).
    297         <%
    298       }
    299       else
    300       {
    301         %>
     293      int numMembers = groups.size() + users.size();
     294      %>
    302295      <base:section
    303296        id="membersSection"
    304         title="<%="Members (" + (groups.size() + users.size()) + ")"%>"
     297        title="<%="Members (" + numMembers + ")"%>"
    305298        context="<%=cc%>"
    306         >     
    307         <tbl:table
    308           id="members"
    309          
    310           columns="all"
    311           >
    312           <tbl:columndef
    313             id="type"
    314             title="User/Group"
    315           />
    316           <tbl:columndef
    317             id="name"
    318             title="Name"
    319           />
    320           <tbl:columndef
    321             id="permissions"
    322             title="Permissions"
    323           />
    324           <tbl:data>
    325             <tbl:columns />
     299        >
     300        <% 
     301        if (numMembers == 0)
     302        {
     303          %>
     304          <div class="messagecontainer note">
     305          There are no members in this project
     306          (or, you don't have permission to view them).
     307          </div>
     308          <%
     309        }
     310        else
     311        {
     312          %>
     313          <tbl:table
     314            id="members"
     315            columns="all"
     316            >
     317            <tbl:columndef
     318              id="type"
     319              title="User/Group"
     320            />
     321            <tbl:columndef
     322              id="name"
     323              title="Name"
     324            />
     325            <tbl:columndef
     326              id="permissions"
     327              title="Permissions"
     328            />
     329            <tbl:data>
     330            <tbl:headers>
     331              <tbl:headerrow>
     332                <tbl:columnheaders />
     333              </tbl:headerrow>
     334            </tbl:headers>
    326335            <tbl:rows>
    327336            <%         
     
    360369          </tbl:data>
    361370        </tbl:table>
     371        <%
     372      }
     373      %>
    362374      </base:section>
    363375      <%
    364       }
    365376      List<BasicItem> defaultItems = project.getDefaultItems(dc);
    366       if (defaultItems.size() == 0 && project.getDefaultRawDataType() == null)
    367       {
    368         %>
    369         <h4>Default items</h4>
    370         There are no default items in this project
    371         (or, you don't have permission to view them).
    372         <%
    373       }
    374       else
    375       {
    376         %>
     377      %>
    377378      <base:section
    378379        id="defaultSection"
    379380        title="Default items"
    380381        context="<%=cc%>"
    381         >     
    382         <tbl:table
    383           id="defaults"
    384          
    385           columns="all"
    386382        >
    387         <tbl:columndef
    388           id="item"
    389           title="Item"
    390         />
    391         <tbl:columndef
    392           id="type"
    393           title="Type"
    394         />
    395         <tbl:data>
    396           <tbl:columns />
     383        <%
     384        if (defaultItems.size() == 0 && project.getDefaultRawDataType() == null)
     385        {
     386          %>
     387          <div class="messagecontainer note">
     388          There are no default items in this project
     389          (or, you don't have permission to view them).
     390          </div>
     391          <%
     392        }
     393        else
     394        {
     395          %>
     396          <tbl:table
     397            id="defaults"
     398            columns="all"
     399          >
     400          <tbl:columndef
     401            id="item"
     402            title="Item"
     403          />
     404          <tbl:columndef
     405            id="type"
     406            title="Type"
     407          />
     408          <tbl:data>
     409            <tbl:headers>
     410              <tbl:headerrow>
     411                <tbl:columnheaders />
     412              </tbl:headerrow>
     413            </tbl:headers>
    397414            <tbl:rows>     
    398415            <%
     
    434451          </tbl:data>
    435452        </tbl:table>
    436       </base:section>
    437       <%
     453        <%
    438454      }
    439455      %>
    440            
     456      </base:section>
    441457      <jsp:include page="../../common/anytoany/list_anytoany.jsp">
    442458        <jsp:param name="ID" value="<%=ID%>" />
     
    445461        <jsp:param name="title" value="Other items related to this project" />
    446462      </jsp:include>
    447     </div>
    448       </t:tab>
     463    </t:tab>
    449464     
    450       <t:tab id="items" title="Items" tooltip="List all items in this project" />
     465    <t:tab id="items" title="Items" tooltip="List all items in this project" />
    451466     
    452       </t:tabcontrol>
     467    </t:tabcontrol>
    453468
    454469  </base:body>
  • trunk/www/views/derivedbioassays/view_bioassay.jsp

    r5937 r5939  
    198198  </base:head>
    199199  <base:body>
    200     <p>
    201     <p:path>
    202       <p:pathelement title="Derived bioassays" href="<%="index.jsp?ID="+ID%>" />
    203       <p:pathelement title="<%=HTML.encodeTags(bioAssay.getName())%>" />
    204     </p:path>
     200    <p:path><p:pathelement
     201      title="Derived bioassays" href="<%="index.jsp?ID="+ID%>"
     202      /><p:pathelement title="<%=HTML.encodeTags(bioAssay.getName())%>"
     203      /></p:path>
    205204   
    206     <t:tabcontrol id="main" active="<%=tab%>" switch="switchTab" remember="false">
     205    <t:tabcontrol
     206      id="main"
     207      subclass="content mastertabcontrol"
     208      active="<%=tab%>" switch="switchTab" remember="false">
    207209      <t:tab id="properties" title="Properties">
    208     <tbl:toolbar
    209       >
    210       <tbl:button
    211         disabled="<%=writePermission ? false : true%>"
    212         image="edit.gif"
    213         onclick="editItem()"
    214         title="Edit&hellip;"
    215         tooltip="<%=writePermission ? "Edit this bioassay" : "You do not have permission to edit this bioassay"%>"
    216       />
    217       <tbl:button
    218         disabled="<%=deletePermission ? false : true%>"
    219         image="delete.gif"
    220         onclick="deleteItem()"
    221         title="Delete"
    222         visible="<%=!bioAssay.isRemoved()%>"
    223         tooltip="<%=deletePermission ? "Delete this bioassay" : "You do not have permission to delete this bioassay"%>"
    224       />
    225       <tbl:button
    226         disabled="<%=writePermission ? false : true%>"
    227         image="restore.gif"
    228         onclick="restoreItem()"
    229         title="Restore"
    230         visible="<%=bioAssay.isRemoved()%>"
    231         tooltip="<%=writePermission ? "Restore this bioassay" : "You do not have permission to restore this bioassay"%>"
    232       />
    233       <tbl:button
    234         disabled="<%=sharePermission ? false : true%>"
    235         image="share.gif"
    236         onclick="shareItem()"
    237         title="Share&hellip;"
    238         tooltip="<%=sharePermission ? "Share this bioassay to other user, groups and projects" : "You do not have permission to share this bioassay"%>"
    239       />
    240       <tbl:button
    241         disabled="<%=setOwnerPermission ? false : true%>"
    242         image="take_ownership.png"
    243         onclick="setOwner()"
    244         title="Set owner&hellip;"
    245         tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
    246       />
    247       <tbl:button
    248         image="add.png"
    249         onclick="newChildBioAssay()"
    250         title="New child bioassay&hellip;"
    251         tooltip="Create a child bioassay from this bioassay"
    252         visible="<%=sc.hasPermission(Permission.CREATE, Item.DERIVEDBIOASSAY) && usePermission%>"
    253       />
    254       <tbl:button
    255         image="add.png"
    256         onclick="newRawBioAssay()"
    257         title="New raw bioassay&hellip;"
    258         tooltip="Create a raw bioassay from this bioassay"
    259         visible="<%=sc.hasPermission(Permission.CREATE, Item.RAWBIOASSAY) && usePermission%>"
    260       />
    261       <tbl:button
    262         image="import.gif"
    263         onclick="runItemPlugin('ImportItem')"
    264         title="Import&hellip;"
    265         tooltip="Import data"
    266         visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
    267       />
    268       <tbl:button
    269         image="export.gif"
    270         onclick="runItemPlugin('ExportItem')"
    271         title="Export&hellip;"
    272         tooltip="Export data"
    273         visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
    274       />
    275       <tbl:button
    276         image="runplugin.gif"
    277         onclick="runItemPlugin('RunPlugin')"
    278         title="Run plugin&hellip;"
    279         tooltip="Run a plugin"
    280         visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
    281       />
    282       <tbl:button
    283         image="runplugin.gif"
    284         onclick="runItemPlugin('RunAnalysisPlugin')"
    285         title="Run analysis&hellip;"
    286         tooltip="Run an analysis plugin with data from this bioassay"
    287         visible="<%=pluginCount.containsKey(Plugin.MainType.ANALYZE)%>"
    288       />
    289       <ext:render extensions="<%=toolbarInvoker%>" context="<%=jspContext%>"
    290         wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
    291       <tbl:button
    292         image="help.png"
    293         onclick="<%="Main.openHelp('" + ID +"', 'derivedbioassay.view.properties')"%>"
    294         title="Help&hellip;"
    295         tooltip="Get help about this page"
    296       />
    297       </tbl:toolbar>
    298     <div class="boxedbottom">
    299       <div class="itemstatus">Permissions on this item: <i><%=PermissionUtil.getFullPermissionNames(bioAssay)%></i></div>
    300       <%
    301       if (isRemoved || bioAssay.isShared())
    302       {
    303         %>
    304         <div class="itemstatus">
     210      <div>
     211      <table class="fullform">
     212      <tr>
     213        <th class="itemstatus">
    305214          <base:icon
    306             image="<%=deletePermanentlyPermission ? "deleted.gif" : "deleted_disabled.gif"%>"
    307             onclick="<%=deletePermanentlyPermission ? "deleteItemPermanently()" : null%>"
    308             tooltip="<%=deletePermanentlyPermission ? "Permanently delete this item" : null%>"
    309             visible="<%=isRemoved%>"> This item has been flagged for deletion<br></base:icon>
     215            image="shared.gif"
     216            visible="<%=bioAssay.isShared()%>"
     217            tooltip="This item is shared to other users, groups and/or projects"
     218          />
     219          <base:icon
     220            image="deleted.gif"
     221            onclick="deleteItemPermanently()"
     222            tooltip="This item has been flagged for deletion. Click to delete it now."
     223            enabled="<%=deletePermanentlyPermission %>"
     224            visible="<%=isRemoved%>"
     225          />
    310226          <base:icon image="used.gif"
    311227            onclick="showUsingItems()"
    312             tooltip="Show the items that are using this one"
    313             visible="<%=isUsed%>"> This item is used by other items and can't be permanently deleted<br></base:icon>
    314           <base:icon image="shared.gif"
    315             visible="<%=bioAssay.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    316         </div>
    317         <%
    318       }
    319       %>
    320      
    321       <table width="100%">
    322       <tr >
    323       <td width="50%">
    324         <h4>Bioassay set</h4>
    325         <table class="form" cellspacing=0>
    326         <tr>
    327           <td class="prompt">Name</td>
     228            tooltip="This item is used by other items and can't be permanently deleted. Show the items that are using this one"
     229            visible="<%=isRemoved && isUsed%>" />
     230        </th>
     231        <td style="padding: 0px;">
     232          <tbl:toolbar subclass="bottomborder">
     233            <tbl:button
     234              disabled="<%=writePermission ? false : true%>"
     235              image="edit.gif"
     236              onclick="editItem()"
     237              title="Edit&hellip;"
     238              tooltip="<%=writePermission ? "Edit this bioassay" : "You do not have permission to edit this bioassay"%>"
     239            />
     240            <tbl:button
     241              disabled="<%=deletePermission ? false : true%>"
     242              image="delete.gif"
     243              onclick="deleteItem()"
     244              title="Delete"
     245              visible="<%=!bioAssay.isRemoved()%>"
     246              tooltip="<%=deletePermission ? "Delete this bioassay" : "You do not have permission to delete this bioassay"%>"
     247            />
     248            <tbl:button
     249              disabled="<%=writePermission ? false : true%>"
     250              image="restore.gif"
     251              onclick="restoreItem()"
     252              title="Restore"
     253              visible="<%=bioAssay.isRemoved()%>"
     254              tooltip="<%=writePermission ? "Restore this bioassay" : "You do not have permission to restore this bioassay"%>"
     255            />
     256            <tbl:button
     257              disabled="<%=sharePermission ? false : true%>"
     258              image="share.gif"
     259              onclick="shareItem()"
     260              title="Share&hellip;"
     261              tooltip="<%=sharePermission ? "Share this bioassay to other user, groups and projects" : "You do not have permission to share this bioassay"%>"
     262            />
     263            <tbl:button
     264              disabled="<%=setOwnerPermission ? false : true%>"
     265              image="take_ownership.png"
     266              onclick="setOwner()"
     267              title="Set owner&hellip;"
     268              tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
     269            />
     270            <tbl:button
     271              image="add.png"
     272              onclick="newChildBioAssay()"
     273              title="New child bioassay&hellip;"
     274              tooltip="Create a child bioassay from this bioassay"
     275              visible="<%=sc.hasPermission(Permission.CREATE, Item.DERIVEDBIOASSAY) && usePermission%>"
     276            />
     277            <tbl:button
     278              image="add.png"
     279              onclick="newRawBioAssay()"
     280              title="New raw bioassay&hellip;"
     281              tooltip="Create a raw bioassay from this bioassay"
     282              visible="<%=sc.hasPermission(Permission.CREATE, Item.RAWBIOASSAY) && usePermission%>"
     283            />
     284            <tbl:button
     285              image="import.gif"
     286              onclick="runItemPlugin('ImportItem')"
     287              title="Import&hellip;"
     288              tooltip="Import data"
     289              visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
     290            />
     291            <tbl:button
     292              image="export.gif"
     293              onclick="runItemPlugin('ExportItem')"
     294              title="Export&hellip;"
     295              tooltip="Export data"
     296              visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
     297            />
     298            <tbl:button
     299              image="runplugin.gif"
     300              onclick="runItemPlugin('RunPlugin')"
     301              title="Run plugin&hellip;"
     302              tooltip="Run a plugin"
     303              visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
     304            />
     305            <tbl:button
     306              image="runplugin.gif"
     307              onclick="runItemPlugin('RunAnalysisPlugin')"
     308              title="Run analysis&hellip;"
     309              tooltip="Run an analysis plugin with data from this bioassay"
     310              visible="<%=pluginCount.containsKey(Plugin.MainType.ANALYZE)%>"
     311            />
     312            <ext:render extensions="<%=toolbarInvoker%>" context="<%=jspContext%>"
     313              wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
     314            <tbl:button
     315              image="help.png"
     316              onclick="<%="Main.openHelp('" + ID +"', 'derivedbioassay.view.properties')"%>"
     317              title="Help&hellip;"
     318              tooltip="Get help about this page"
     319            />
     320          </tbl:toolbar>
     321        </td>
     322      </tr>
     323    </table>
     324    <table style="width: 100%; height: 20em;" class="bottomborder">
     325    <tr valign="top">
     326      <td style="width: 50%; height: 100%;">
     327        <table class="fullform" >
     328        <tr>
     329          <th>Name</th>
    328330          <td><%=HTML.encodeTags(bioAssay.getName())%></td>
    329331        </tr>
    330332        <tr>
    331           <td class="prompt">Type</td>
     333          <th>Type</th>
    332334          <td><base:propertyvalue item="<%=bioAssay%>" property="itemSubtype" /></td>
    333335        </tr>
    334336        <tr>
    335           <td class="prompt">Physical bioassay</td>
     337          <th>Physical bioassay</th>
    336338          <td><base:propertyvalue item="<%=bioAssay%>" property="physicalBioAssay" /></td>
    337339        </tr>
    338340        <tr>
    339           <td class="prompt">Parent bioassay</td>
     341          <th>Parent bioassay</th>
    340342          <td><base:propertyvalue item="<%=bioAssay%>" property="parent" /></td>
    341343        </tr>
    342344        <tr>
    343           <td class="prompt">Extract</td>
     345          <th>Extract</th>
    344346          <td><base:propertyvalue item="<%=bioAssay%>" property="extract" /></td>
    345347        </tr>
    346348        <tr>
    347           <td class="prompt">Protocol</td>
     349          <th>Protocol</th>
    348350          <td><base:propertyvalue item="<%=bioAssay%>" property="protocol" /></td>
    349351        </tr>
    350352        <tr>
    351           <td class="prompt">Hardware</td>
     353          <th>Hardware</th>
    352354          <td><base:propertyvalue item="<%=bioAssay%>" property="hardware" /></td>
    353355        </tr>
    354356        <tr>
    355           <td class="prompt">Software</td>
     357          <th>Software</th>
    356358          <td><base:propertyvalue item="<%=bioAssay%>" property="software" /></td>
    357359        </tr>
    358360        <tr>
    359           <td class="prompt">Owner</td>
     361          <th>Owner</th>
    360362          <td><base:propertyvalue item="<%=bioAssay%>" property="owner" /></td>
    361363        </tr>
    362364        <tr>
    363           <td class="prompt">Description</td>
     365          <th>Permissions</th>
     366          <td><%=PermissionUtil.getFullPermissionNames(bioAssay)%></td>
     367        </tr>
     368        <tr class="dynamic">
     369          <th>Description</th>
    364370          <td><%=HTML.niceFormat(bioAssay.getDescription())%></td>
    365371        </tr>
    366372        </table>
    367373      </td>
    368       <td width="50%">
    369         <h4>Job &amp; Plug-in parameters</h4>
    370         <table class="form" cellspacing=0>
    371         <tr>
    372           <td class="prompt">Job</td>
     374      <td style="width: 50%; height: 100%;" class="leftborder">
     375        <table class="fullform">
     376        <tbody class="sectionheader">
     377          <tr>
     378            <th colspan="2">Job &amp; plug-in parameters</th>
     379          </tr>
     380        </tbody>
     381        <tr>
     382          <th>Job</th>
    373383          <td><%=Base.getLinkedName(ID, job, !readJob, false)%></td>
    374384        </tr>
    375385        <tr>
    376           <td class="prompt">Plugin</td>
     386          <th>Plugin</th>
    377387          <td><%=Base.getLinkedName(ID, plugin,
    378388              !readPlugin, plugin != null && plugin.hasPermission(Permission.WRITE))%></td>
    379389        </tr>
    380390        <tr>
    381           <td class="prompt">Plugin configuration</td>
     391          <th>Plugin configuration</th>
    382392          <td><%=Base.getLinkedName(ID, configuration, !readConfiguration,
    383393            configuration != null && configuration.hasPermission(Permission.WRITE))%></td>
     
    387397        {
    388398          %>
    389           <tr >
    390             <td class="prompt">Started</td>
     399          <tr>
     400            <th>Started</th>
    391401            <td>
    392402              <%=job == null ? "" : dateTimeFormatter.format(job.getStarted())%>
    393403            </td>
    394404          </tr>
    395           <tr >
    396             <td class="prompt">Ended</td>
     405          <tr>
     406            <th>Ended</th>
    397407            <td>
    398408              <%=job == null ? "" : dateTimeFormatter.format(job.getEnded())%>
    399409            </td>
    400410          </tr>
    401           <tr >
    402             <td class="prompt">Server</td>
     411          <tr>
     412            <th>Server</th>
    403413            <td>
    404414              <%=HTML.encodeTags(job.getServer())%>
     
    461471            %>
    462472            <tr>
    463             <td class="prompt"><span title="<%=description%>"><%=name%></span></td>
     473              <th><span title="<%=description%>"><%=name%></span></th>
    464474              <td>
    465475                <%=displayValue%>
     
    470480        }
    471481        %>
     482        <tr class="dynamic">
     483          <th></th>
     484          <td></td>
     485        </tr>
    472486        </table>
    473487
     
    475489      </tr>
    476490      </table>
    477      
     491      </div>
    478492      <%
    479493      ItemQuery<DerivedBioAssay> childQuery = bioAssay.getChildren();
     
    481495      childQuery.order(Orders.asc(Hql.property("name")));
    482496      ItemResultList<DerivedBioAssay> children = childQuery.list(dc);
    483       if (children.size() == 0)
    484       {
    485         %>
    486         <h4>Child bioassays</h4>
    487         This bioassay doesn't have any child bioassays
    488         (or you don't have permission to view them).
     497      %>
     498      <base:section
     499        id="children"
     500        title="<%="Child bioassays (" + children.size() + ")"%>"
     501        context="<%=cc%>"
     502        >
    489503        <%
    490       }
    491       else
    492       {
    493         %>
    494         <base:section
    495           id="children"
    496           title="<%="Child bioassays (" + children.size() + ")"%>"
    497           context="<%=cc%>"
    498           >
     504        if (children.size() == 0)
     505        {
     506          %>
     507          <div class="messagecontainer note">
     508          This bioassay doesn't have any child bioassays
     509          (or you don't have permission to view them).
     510          </div>
     511          <%
     512        }
     513        else
     514        {
     515          %>
    499516          <tbl:table
    500517            id="children"
    501            
    502518            columns="all"
    503519            >
    504           <tbl:columndef
    505             id="name"
    506             title="Name"
    507           />
    508           <tbl:columndef
    509             id="itemSubtype"
    510             title="Type"
    511           />
    512           <tbl:columndef
    513             id="description"
    514             title="Description"
    515           />
    516           <tbl:data>
    517             <tbl:columns>
    518             </tbl:columns>
    519             <tbl:rows>
    520             <%
    521             for (DerivedBioAssay item : children)
    522             {
     520            <tbl:columndef
     521              id="name"
     522              title="Name"
     523            />
     524            <tbl:columndef
     525              id="itemSubtype"
     526              title="Type"
     527            />
     528            <tbl:columndef
     529              id="description"
     530              title="Description"
     531            />
     532            <tbl:data>
     533              <tbl:headers>
     534                <tbl:headerrow>
     535                  <tbl:columnheaders />
     536                </tbl:headerrow>
     537              </tbl:headers>           
     538              <tbl:rows>
     539              <%
     540              for (DerivedBioAssay item : children)
     541              {
     542                %>
     543                <tbl:row>
     544                  <tbl:cell column="name"><%=Base.getLinkedName(ID, item, false, true)%></tbl:cell>
     545                  <tbl:cell column="itemSubtype"><base:propertyvalue item="<%=item%>" property="itemSubtype" /></tbl:cell>
     546                  <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
     547                </tbl:row>
     548                <%
     549              }
    523550              %>
    524               <tbl:row>
    525                 <tbl:cell column="name"><%=Base.getLinkedName(ID, item, false, true)%></tbl:cell>
    526                 <tbl:cell column="itemSubtype"><base:propertyvalue item="<%=item%>" property="itemSubtype" /></tbl:cell>
    527                 <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
    528               </tbl:row>
    529               <%
    530             }
    531             %>
    532             </tbl:rows>
    533           </tbl:data>
     551              </tbl:rows>
     552            </tbl:data>
    534553          </tbl:table>
    535         </base:section>
    536         <%
    537       }
    538       %>
    539  
     554          <%
     555        }
     556        %>
     557      </base:section>
    540558      <%
    541559      ItemQuery<RawBioAssay> rawQuery = bioAssay.getRawBioAssays();
     
    543561      rawQuery.order(Orders.asc(Hql.property("name")));
    544562      ItemResultList<RawBioAssay> rawBioAssays = rawQuery.list(dc);
    545       if (rawBioAssays.size() == 0)
    546       {
    547         %>
    548         <h4>Raw bioassays</h4>
    549         This bioassay doesn't have any child raw bioassays
    550         (or you don't have permission to view them).
     563      %>
     564      <base:section
     565        id="rawBioAssays"
     566        title="<%="Raw bioassays (" + rawBioAssays.size() + ")"%>"
     567        context="<%=cc%>"
     568        >
    551569        <%
    552       }
    553       else
    554       {
    555         %>
    556         <base:section
    557           id="children"
    558           title="<%="Raw bioassays (" + rawBioAssays.size() + ")"%>"
    559           context="<%=cc%>"
    560           >
     570        if (rawBioAssays.size() == 0)
     571        {
     572          %>
     573          <div class="messagecontainer note">
     574          This bioassay doesn't have any child raw bioassays
     575          (or you don't have permission to view them).
     576          </div>
     577          <%
     578        }
     579        else
     580        {
     581          %>
    561582          <tbl:table
    562583            id="rawBioAssays"
    563            
    564584            columns="all"
    565585            >
    566           <tbl:columndef
    567             id="name"
    568             title="Name"
    569           />
    570           <tbl:columndef
    571             id="platform"
    572             title="Platform"
    573           />
    574           <tbl:columndef
    575             id="description"
    576             title="Description"
    577           />
    578           <tbl:data>
    579             <tbl:columns>
    580             </tbl:columns>
    581             <tbl:rows>
    582             <%
    583             for (RawBioAssay item : rawBioAssays)
    584             {
     586            <tbl:columndef
     587              id="name"
     588              title="Name"
     589            />
     590            <tbl:columndef
     591              id="platform"
     592              title="Platform"
     593            />
     594            <tbl:columndef
     595              id="description"
     596              title="Description"
     597            />
     598            <tbl:data>
     599              <tbl:headers>
     600                <tbl:headerrow>
     601                  <tbl:columnheaders />
     602                </tbl:headerrow>
     603              </tbl:headers>
     604              <tbl:rows>
     605              <%
     606              for (RawBioAssay item : rawBioAssays)
     607              {
     608                %>
     609                <tbl:row>
     610                  <tbl:cell column="name"><%=Base.getLinkedName(ID, item, false, true)%></tbl:cell>
     611                  <tbl:cell column="platform"><base:propertyvalue item="<%=item%>" property="platform" /></tbl:cell>
     612                  <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
     613                </tbl:row>
     614                <%
     615              }
    585616              %>
    586               <tbl:row>
    587                 <tbl:cell column="name"><%=Base.getLinkedName(ID, item, false, true)%></tbl:cell>
    588                 <tbl:cell column="platform"><base:propertyvalue item="<%=item%>" property="platform" /></tbl:cell>
    589                 <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
    590               </tbl:row>
    591               <%
    592             }
    593             %>
    594             </tbl:rows>
    595           </tbl:data>
     617              </tbl:rows>
     618            </tbl:data>
    596619          </tbl:table>
    597         </base:section>
    598         <%
    599       }
    600       %>
    601      
     620          <%
     621        }
     622        %>
     623      </base:section>
    602624      <jsp:include page="../../common/datafiles/list_files.jsp">
    603625        <jsp:param name="item_type" value="<%=itemType.name()%>" />
     
    605627        <jsp:param name="ID" value="<%=ID%>" />
    606628      </jsp:include>
    607      
    608629      <jsp:include page="../../common/anytoany/list_anytoany.jsp">
    609630        <jsp:param name="ID" value="<%=ID%>" />
     
    618639        <jsp:param name="title" value="Shared to" />
    619640      </jsp:include>
    620       </div>
    621641      </t:tab>
    622642     
  • trunk/www/views/experiments/bioassaysets/analysis_tree.jsp

    r5937 r5939  
    541541    <tbl:table
    542542      id="bioAssaySets"
    543        
    544543      columns="<%=cc.getSetting("columns")%>"
    545544      sortby="<%=cc.getSortProperty()%>"
  • trunk/www/views/experiments/bioassaysets/view_bioassayset.jsp

    r5937 r5939  
    258258  </base:head>
    259259  <base:body onload="loadNextImage()">
    260     <p>
    261     <p:path>
    262       <p:pathelement title="Experiments" href="<%="../index.jsp?ID="+ID%>" />
    263       <p:pathelement title="<%=HTML.encodeTags(experiment.getName())%>"
    264         href="<%="index.jsp?ID="+ID+"&experiment_id="+experimentId%>" />
    265       <p:pathelement title="<%=HTML.encodeTags(bioAssaySet.getName())%>" />
    266     </p:path>
     260    <p:path><p:pathelement
     261      title="Experiments" href="<%="../index.jsp?ID="+ID%>"
     262      /><p:pathelement title="<%=HTML.encodeTags(experiment.getName())%>"
     263        href="<%="index.jsp?ID="+ID+"&experiment_id="+experimentId%>"
     264      /><p:pathelement title="<%=HTML.encodeTags(bioAssaySet.getName())%>"
     265      /></p:path>
    267266   
    268     <t:tabcontrol id="view" active="<%=tabId%>" switch="switchTab" remember="false">
     267    <t:tabcontrol
     268      id="view"
     269      subclass="content mastertabcontrol"
     270      active="<%=tabId%>" switch="switchTab" remember="false">
    269271    <t:tab id="properties" title="Properties">
    270    
    271     <tbl:toolbar
    272       >
    273       <tbl:button
    274         disabled="<%=writePermission ? false : true%>"
    275         image="edit.gif"
    276         onclick="editItem()"
    277         title="Edit&hellip;"
    278         tooltip="<%=writePermission ? "Edit this bioassay set" : "You do not have permission to edit this bioassay set"%>"
    279       />
    280       <tbl:button
    281         disabled="<%=deletePermission ? false : true%>"
    282         image="delete.gif"
    283         onclick="deleteItem()"
    284         title="Delete"
    285         visible="<%=!bioAssaySet.isRemoved()%>"
    286         tooltip="<%=deletePermission ? "Delete this bioassay set" : "You do not have permission to delete this bioassay set"%>"
    287       />
    288       <tbl:button
    289         disabled="<%=writePermission ? false : true%>"
    290         image="restore.gif"
    291         onclick="restoreItem()"
    292         title="Restore"
    293         visible="<%=bioAssaySet.isRemoved()%>"
    294         tooltip="<%=writePermission ? "Restore this bioassay set" : "You do not have permission to restore this bioassay set"%>"
    295       />
    296       <tbl:button
    297         image="import.gif"
    298         onclick="runItemPlugin('ImportItem')"
    299         title="Import&hellip;"
    300         tooltip="Import data"
    301         visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
    302       />
    303       <tbl:button
    304         image="export.gif"
    305         onclick="runItemPlugin('ExportItem')"
    306         title="Export&hellip;"
    307         tooltip="Export data"
    308         visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
    309       />
    310       <tbl:button
    311         image="plotter.gif"
    312         onclick="<%="openPlotTool(" + itemId + ")"%>"
    313         title="Plot tool&hellip;"
    314         tooltip="A simple tool for generating plots"
    315         visible="<%=hasDbSpots%>"
    316       />
    317       <tbl:button
    318         image="explorer.png"
    319         onclick="<%="openExperimentExplorer(" + itemId + ")"%>"
    320         title="Experiment explorer"
    321         tooltip="View the data reporter by reporter"
    322         visible="<%=hasDbSpots%>"
    323       />
    324       <tbl:button
    325         disabled="<%=!createPermission%>"
    326         image="<%=createPermission ? "filter.gif" : "filter_disabled.gif"%>"
    327         onclick="<%="filter(" + itemId +")"%>"
    328         title="Filter bioassay set&hellip;"
    329         tooltip="<%=createPermission ?
    330           "Create a new bioassay set by filtering this bioassayset" :
    331           "You do not have permission analyze this experiment"%>"
    332         visible="<%=pluginCount.containsKey(Plugin.MainType.ANALYZE)%>"
    333       />
    334       <tbl:button
    335         image="runplugin.gif"
    336         onclick="runItemPlugin('RunPlugin')"
    337         title="Run plugin&hellip;"
    338         tooltip="Run a plugin"
    339         visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
    340       />
    341       <tbl:button
    342         disabled="<%=!createPermission%>"
    343         image="<%=createPermission ? "runplugin.gif" : "runplugin_disabled.gif"%>"
    344         onclick="<%="runAnalysisPlugin(" + itemId + ")"%>"
    345         title="Run analysis&hellip;"
    346         tooltip="<%=createPermission ? "Run an analysis plugin" :
    347           "You do not have permission to analyze this experiment"%>"
    348         visible="<%=pluginCount.containsKey(Plugin.MainType.ANALYZE)%>"
    349       />
    350       <ext:render extensions="<%=toolbarInvoker%>" context="<%=jspContext%>"
    351         wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
    352       <tbl:button
    353         image="help.png"
    354         onclick="<%="Main.openHelp('" + ID +"', 'bioassayset.view.properties')"%>"
    355         title="Help&hellip;"
    356         tooltip="Get help about this page"
    357       />
    358       </tbl:toolbar>
    359     <div class="boxedbottom">
    360       <div class="itemstatus">Permissions on this item: <i><%=PermissionUtil.getFullPermissionNames(bioAssaySet)%></i></div>
    361       <%
    362       if (bioAssaySet.isRemoved())
    363       {
    364         %>
    365         <div class="itemstatus">
    366           <base:icon image="deleted.gif"
    367             visible="<%=bioAssaySet.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    368         </div>
    369         <%
    370       }
    371       %>
    372      
    373       <table width="100%">
     272      <div>
     273      <table class="fullform">
     274      <tr>
     275        <th class="itemstatus">
     276          <base:icon
     277            image="deleted.gif"
     278            onclick="deleteItemPermanently()"
     279            tooltip="This item has been flagged for deletion. Click to delete it now."
     280            enabled="<%=deletePermission %>"
     281            visible="<%=bioAssaySet.isRemoved()%>"
     282          />
     283        </th>
     284        <td style="padding: 0px;" colspan="2">
     285          <tbl:toolbar subclass="bottomborder">
     286            <tbl:button
     287              disabled="<%=writePermission ? false : true%>"
     288              image="edit.gif"
     289              onclick="editItem()"
     290              title="Edit&hellip;"
     291              tooltip="<%=writePermission ? "Edit this bioassay set" : "You do not have permission to edit this bioassay set"%>"
     292            />
     293            <tbl:button
     294              disabled="<%=deletePermission ? false : true%>"
     295              image="delete.gif"
     296              onclick="deleteItem()"
     297              title="Delete"
     298              visible="<%=!bioAssaySet.isRemoved()%>"
     299              tooltip="<%=deletePermission ? "Delete this bioassay set" : "You do not have permission to delete this bioassay set"%>"
     300            />
     301            <tbl:button
     302              disabled="<%=writePermission ? false : true%>"
     303              image="restore.gif"
     304              onclick="restoreItem()"
     305              title="Restore"
     306              visible="<%=bioAssaySet.isRemoved()%>"
     307              tooltip="<%=writePermission ? "Restore this bioassay set" : "You do not have permission to restore this bioassay set"%>"
     308            />
     309            <tbl:button
     310              image="import.gif"
     311              onclick="runItemPlugin('ImportItem')"
     312              title="Import&hellip;"
     313              tooltip="Import data"
     314              visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
     315            />
     316            <tbl:button
     317              image="export.gif"
     318              onclick="runItemPlugin('ExportItem')"
     319              title="Export&hellip;"
     320              tooltip="Export data"
     321              visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
     322            />
     323            <tbl:button
     324              image="plotter.gif"
     325              onclick="<%="openPlotTool(" + itemId + ")"%>"
     326              title="Plot tool&hellip;"
     327              tooltip="A simple tool for generating plots"
     328              visible="<%=hasDbSpots%>"
     329            />
     330            <tbl:button
     331              image="explorer.png"
     332              onclick="<%="openExperimentExplorer(" + itemId + ")"%>"
     333              title="Experiment explorer"
     334              tooltip="View the data reporter by reporter"
     335              visible="<%=hasDbSpots%>"
     336            />
     337            <tbl:button
     338              disabled="<%=!createPermission%>"
     339              image="filter.gif"
     340              onclick="<%="filter(" + itemId +")"%>"
     341              title="Filter bioassay set&hellip;"
     342              tooltip="<%=createPermission ?
     343                "Create a new bioassay set by filtering this bioassayset" :
     344                "You do not have permission analyze this experiment"%>"
     345              visible="<%=pluginCount.containsKey(Plugin.MainType.ANALYZE)%>"
     346            />
     347            <tbl:button
     348              image="runplugin.gif"
     349              onclick="runItemPlugin('RunPlugin')"
     350              title="Run plugin&hellip;"
     351              tooltip="Run a plugin"
     352              visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
     353            />
     354            <tbl:button
     355              disabled="<%=!createPermission%>"
     356              image="<%=createPermission ? "runplugin.gif" : "runplugin_disabled.gif"%>"
     357              onclick="<%="runAnalysisPlugin(" + itemId + ")"%>"
     358              title="Run analysis&hellip;"
     359              tooltip="<%=createPermission ? "Run an analysis plugin" :
     360                "You do not have permission to analyze this experiment"%>"
     361              visible="<%=pluginCount.containsKey(Plugin.MainType.ANALYZE)%>"
     362            />
     363            <ext:render extensions="<%=toolbarInvoker%>" context="<%=jspContext%>"
     364              wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
     365            <tbl:button
     366              image="help.png"
     367              onclick="<%="Main.openHelp('" + ID +"', 'bioassayset.view.properties')"%>"
     368              title="Help&hellip;"
     369              tooltip="Get help about this page"
     370            />
     371          </tbl:toolbar>
     372        </td>
     373      </tr>
     374    </table>
     375    <table style="width: 100%; height: 16em;" class="bottomborder">
     376    <tr valign="top">
     377      <td style="width: 50%; height: 100%;">
     378      <table class="fullform" >
     379      <tr>
     380        <th>Name</th>
     381        <td><%=HTML.encodeTags(bioAssaySet.getName())%></td>
     382      </tr>
     383      <tr>
     384        <th>Experiment</th>
     385        <td><%=Base.getLinkedName(ID, experiment, false, writePermission)%>
     386        (<%=experiment.getRawDataType()%>)</td>
     387      </tr>
     388      <tr>
     389        <th>Intensity transformation</th>
     390        <td><%=bioAssaySet.getIntensityTransform().toString()%></td>
     391      </tr>
     392      <tr>
     393        <th>Spots</th>
     394        <td>db: <%=bioAssaySet.getNumSpots()%>; file: <%=bioAssaySet.getNumFileSpots()%></td>
     395      </tr>
     396      <tr>
     397        <th>Reporters</th>
     398        <td>db: <%=bioAssaySet.getNumReporters()%>; file: <%=bioAssaySet.getNumFileReporters()%></td>
     399      </tr>
     400      <tr>
     401        <th>Permissions</th>
     402        <td><%=PermissionUtil.getFullPermissionNames(bioAssaySet)%></td>
     403      </tr>
     404      <tr>
     405        <th>Description</th>
     406        <td><%=HTML.niceFormat(bioAssaySet.getDescription())%></td>
     407      </tr>
     408      <tbody class="sectionheader">
     409        <tr>
     410          <th colspan="2">Transformation &amp; job</th>
     411        </tr>
     412      </tbody>
     413      <tr>
     414        <th>Transformation</th>
     415        <td><%=Base.getLinkedName(ID, transformation, false,
     416            transformation.hasPermission(Permission.WRITE))%></td>
     417      </tr>
     418      <tr>
     419        <th>Job</th>
     420        <td><%=Base.getLinkedName(ID, job, !readJob, false)%></td>
     421      </tr>
    374422      <tr >
    375       <td width="50%">
    376         <h4>Bioassay set</h4>
    377         <table class="form" cellspacing=0>
     423        <th>Started</th>
     424        <td>
     425          <%=job == null ? "" : dateTimeFormatter.format(job.getStarted())%>
     426        </td>
     427      </tr>
     428      <tr>
     429        <th>Ended</th>
     430        <td>
     431          <%=job == null ? "" : dateTimeFormatter.format(job.getEnded())%>
     432        </td>
     433      </tr>
     434      <tr>
     435        <th>Server</th>
     436        <td>
     437          <%=job == null ? "" : HTML.encodeTags(job.getServer())%>
     438        </td>
     439      </tr>
     440      <tr>
     441        <th>Description</th>
     442        <td><%=HTML.niceFormat(transformation.getDescription())%></td>
     443      </tr>
     444      </table>
     445    </td>
     446    <td style="width: 50%;" class="leftborder">
     447      <table class="fullform" >
     448      <tbody class="sectionheader">
    378449        <tr>
    379           <td class="prompt">Name</td>
    380           <td><%=HTML.encodeTags(bioAssaySet.getName())%></td>
     450          <th colspan="2">Plugin &amp; parameters</th>
    381451        </tr>
    382         <tr>
    383           <td class="prompt">Experiment</td>
    384           <td><%=Base.getLinkedName(ID, experiment, false, writePermission)%>
    385           (<%=experiment.getRawDataType()%>)</td>
    386         </tr>
    387         <tr>
    388           <td class="prompt">Intensity transformation</td>
    389           <td><%=bioAssaySet.getIntensityTransform().toString()%></td>
    390         </tr>
    391         <tr>
    392           <td class="prompt">Spots</td>
    393           <td>db: <%=bioAssaySet.getNumSpots()%>; file: <%=bioAssaySet.getNumFileSpots()%></td>
    394         </tr>
    395         <tr>
    396           <td class="prompt">Reporters</td>
    397           <td>db: <%=bioAssaySet.getNumReporters()%>; file: <%=bioAssaySet.getNumFileReporters()%></td>
    398         </tr>
    399         <tr>
    400           <td class="prompt">Description</td>
    401           <td><%=HTML.niceFormat(bioAssaySet.getDescription())%></td>
    402         </tr>
    403         </table>
    404        
    405         <h4>Transformation &amp; job</h4>
    406         <table class="form" cellspacing=0>
    407         <tr>
    408           <td class="prompt">Transformation</td>
    409           <td><%=Base.getLinkedName(ID, transformation, false,
    410               transformation.hasPermission(Permission.WRITE))%></td>
    411         </tr>
    412         <tr>
    413           <td class="prompt">Job</td>
    414           <td><%=Base.getLinkedName(ID, job, !readJob, false)%></td>
    415         </tr>
    416         <tr >
    417           <td class="prompt">Started</td>
    418           <td>
    419             <%=job == null ? "" : dateTimeFormatter.format(job.getStarted())%>
    420           </td>
    421         </tr>
    422         <tr >
    423           <td class="prompt">Ended</td>
    424           <td>
    425             <%=job == null ? "" : dateTimeFormatter.format(job.getEnded())%>
    426           </td>
    427         </tr>
    428         <tr >
    429           <td class="prompt">Server</td>
    430           <td>
    431             <%=job == null ? "" : HTML.encodeTags(job.getServer())%>
    432           </td>
    433         </tr>
    434         <tr>
    435           <td class="prompt">Description</td>
    436           <td><%=HTML.niceFormat(transformation.getDescription())%></td>
    437         </tr>
    438         </table>
    439       </td>
    440       <td width="50%">
    441         <h4>Plugin &amp; parameters</h4>
    442         <table class="form" cellspacing=0>
    443         <tr>
    444           <td class="prompt">Plugin</td>
    445           <td><%=Base.getLinkedName(ID, plugin,
    446               !readPlugin, plugin != null && plugin.hasPermission(Permission.WRITE))%></td>
    447         </tr>
    448         <tr>
    449           <td class="prompt">Plugin configuration</td>
    450           <td><%=Base.getLinkedName(ID, configuration, !readConfiguration,
    451             configuration != null && configuration.hasPermission(Permission.WRITE))%></td>
    452         </tr>
     452      </tbody>
     453      <tr>
     454        <th>Plugin</th>
     455        <td><%=Base.getLinkedName(ID, plugin,
     456            !readPlugin, plugin != null && plugin.hasPermission(Permission.WRITE))%></td>
     457      </tr>
     458      <tr>
     459        <th>Plugin configuration</th>
     460        <td><%=Base.getLinkedName(ID, configuration, !readConfiguration,
     461          configuration != null && configuration.hasPermission(Permission.WRITE))%></td>
     462      </tr>
    453463        <%
    454464        if (job != null)
     
    509519            %>
    510520            <tr>
    511             <td class="prompt"><span title="<%=description%>"><%=name%></span></td>
     521            <th><span title="<%=description%>"><%=name%></span></th>
    512522              <td>
    513523                <%=displayValue%>
     
    518528        }
    519529        %>
     530        <tr class="dynamic">
     531          <th></th>
     532          <td></td>
     533        </tr>
    520534        </table>
    521535
     
    523537      </tr>
    524538      </table>
    525      
     539      </div>
    526540      <jsp:include page="../../../common/datafiles/list_files.jsp">
    527541        <jsp:param name="item_type" value="<%=itemType.name()%>" />
     
    537551      </jsp:include>
    538552     
    539       <h4 class="docked">Analysis subtree</h4>
    540       <jsp:include page="analysis_tree.jsp">
    541         <jsp:param name="ID" value="<%=ID%>" />
    542         <jsp:param name="experiment_id" value="<%=experimentId%>" />
    543         <jsp:param name="item_id" value="<%=itemId%>" />
    544       </jsp:include>
    545       </div>
     553      <base:section id="anaysis" title="Analysis subtree" context="<%=cc%>">
     554        <jsp:include page="analysis_tree.jsp">
     555          <jsp:param name="ID" value="<%=ID%>" />
     556          <jsp:param name="experiment_id" value="<%=experimentId%>" />
     557          <jsp:param name="item_id" value="<%=itemId%>" />
     558        </jsp:include>
     559      </base:section>
    546560      </t:tab>
    547561     
  • trunk/www/views/experiments/view_experiment.jsp

    r5937 r5939  
    298298  </base:head>
    299299  <base:body onload="initUsedFactorValues()">
    300     <p>
    301     <p:path>
    302       <p:pathelement title="Experiments" href="<%="index.jsp?ID="+ID%>" />
    303       <p:pathelement title="<%=HTML.encodeTags(experiment.getName())%>" />
    304     </p:path>
     300    <p:path><p:pathelement
     301      title="Experiments" href="<%="index.jsp?ID="+ID%>"
     302      /><p:pathelement title="<%=HTML.encodeTags(experiment.getName())%>"
     303      /></p:path>
    305304   
    306     <t:tabcontrol id="main" active="<%=tab%>" switch="switchTab" remember="false">
     305    <t:tabcontrol
     306      id="main"
     307      subclass="content mastertabcontrol"
     308      active="<%=tab%>" switch="switchTab" remember="false">
    307309    <t:tab id="properties" title="Properties">
    308    
    309     <tbl:toolbar
    310       >
    311       <tbl:button
    312         disabled="<%=writePermission ? false : true%>"
    313         image="edit.gif"
    314         onclick="editItem()"
    315         title="Edit&hellip;"
    316         tooltip="<%=writePermission ? "Edit this experiment" : "You do not have permission to edit this experiment"%>"
    317       />
    318       <tbl:button
    319         disabled="<%=deletePermission ? false : true%>"
    320         image="delete.gif"
    321         onclick="deleteItem()"
    322         title="Delete"
    323         visible="<%=!experiment.isRemoved()%>"
    324         tooltip="<%=deletePermission ? "Delete this experiment" : "You do not have permission to delete this experiment"%>"
    325       />
    326       <tbl:button
    327         disabled="<%=writePermission ? false : true%>"
    328         image="restore.gif"
    329         onclick="restoreItem()"
    330         title="Restore"
    331         visible="<%=experiment.isRemoved()%>"
    332         tooltip="<%=writePermission ? "Restore this experiment" : "You do not have permission to restore this experiment"%>"
    333       />
    334       <tbl:button
    335         disabled="<%=sharePermission ? false : true%>"
    336         image="share.gif"
    337         onclick="shareItem()"
    338         title="Share&hellip;"
    339         tooltip="<%=sharePermission ? "Share this experiment to other user, groups and projects" : "You do not have permission to share this experiment"%>"
    340       />
    341       <tbl:button
    342         disabled="<%=setOwnerPermission ? false : true%>"
    343         image="take_ownership.png"
    344         onclick="setOwner()"
    345         title="Set owner&hellip;"
    346         tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
    347       />
    348       <tbl:button
    349         visible="<%=writePermission && (virtualDb.hasTable(VirtualTable.POSITION) || experiment.getRawDataType().isStoredInDb()) %>"
    350         image="copy.gif"
    351         onclick="cloneReporters()"
    352         title="Clone reporters&hellip;"
    353         tooltip="Clone reporter annotations for all reporters that are used in this experiment"
    354       />
    355       <tbl:button
    356         visible="<%=writePermission && virtualDb.hasClonedReporters() %>"
    357         image="delete_permanently.png"
    358         onclick="removeClonedReporters()"
    359         title="Remove cloned reporters&hellip;"
    360         tooltip="Remove all cloned reporter annotations"
    361       />
    362       <tbl:button
    363         image="import.gif"
    364         onclick="runPlugin('ImportItem')"
    365         title="Import&hellip;"
    366         tooltip="Import data"
    367         visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
    368       />
    369       <tbl:button
    370         image="export.gif"
    371         onclick="runPlugin('ExportItem')"
    372         title="Export&hellip;"
    373         tooltip="Export data"
    374         visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
    375       />
    376       <tbl:button
    377         image="runplugin.gif"
    378         onclick="runPlugin('RunPlugin')"
    379         title="Run plugin&hellip;"
    380         tooltip="Run a plugin"
    381         visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
    382       />
    383       <ext:render extensions="<%=invoker%>" context="<%=jspContext%>"
    384         wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
    385       <tbl:button
    386         image="help.png"
    387         onclick="<%="Main.openHelp('" + ID +"', 'experiment.view.properties')"%>"
    388         title="Help&hellip;"
    389         tooltip="Get help about this page"
    390       />
    391       </tbl:toolbar>
    392     <div class="boxedbottom">
    393       <div class="itemstatus">Permissions on this item: <i><%=PermissionUtil.getFullPermissionNames(experiment)%></i></div>
    394       <%
    395       if (experiment.isRemoved() || experiment.isShared())
    396       {
    397         %>
    398         <div class="itemstatus">
     310      <div>
     311      <table class="fullform">
     312      <tr>
     313        <th class="itemstatus">
    399314          <base:icon
    400             image="<%=deletePermanentlyPermission ? "deleted.gif" : "deleted_disabled.gif"%>"
    401             onclick="<%=deletePermanentlyPermission ? "deleteItemPermanently()" : null%>"
    402             tooltip="<%=deletePermanentlyPermission ? "Permanently delete this item" : null%>"
    403             visible="<%=isRemoved%>"> This item has been flagged for deletion<br></base:icon>
     315            image="shared.gif"
     316            visible="<%=experiment.isShared()%>"
     317            tooltip="This item is shared to other users, groups and/or projects"
     318          />
     319          <base:icon
     320            image="deleted.gif"
     321            onclick="deleteItemPermanently()"
     322            tooltip="This item has been flagged for deletion. Click to delete it now."
     323            enabled="<%=deletePermanentlyPermission %>"
     324            visible="<%=isRemoved%>"
     325          />
    404326          <base:icon image="used.gif"
    405327            onclick="showUsingItems()"
    406             tooltip="Show the items that are using this one"
    407             visible="<%=isUsed%>"> This item is used by other items and can't be permanently deleted<br></base:icon>
    408           <base:icon image="shared.gif"
    409             visible="<%=experiment.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    410         </div>
    411         <%
    412       }
    413       %>
    414       <table class="form" cellspacing="0">
    415       <tr>
    416         <td class="prompt">Name</td>
    417         <td><%=HTML.encodeTags(experiment.getName())%></td>
    418       </tr>
    419       <tr>
    420         <td class="prompt">Registered</td>
    421         <td><%=dateFormatter.format(experiment.getEntryDate())%></td>
    422       </tr>
    423       <tr>
    424         <td class="prompt">Raw data type</td>
    425         <td><base:catch><%=HTML.encodeTags(experiment.getRawDataType().getName())%></base:catch></td>
    426       </tr>
    427       <tr>
    428         <td class="prompt">Directory</td>
    429         <td><base:propertyvalue item="<%=experiment%>" property="directory" /></td>
    430       </tr>
    431       <tr>
    432         <td class="prompt">Reporter clone template</td>
    433         <td><base:propertyvalue item="<%=experiment%>" property="virtualDb.reporterCloneTemplate" nulltext="<i>- no cloned reporters -</i>" /></td>
    434       </tr>
    435       <tr>
    436         <td class="prompt">Bytes</td>
    437         <td><%=Values.formatBytes(experiment.getBytes())%></td>
    438       </tr>
    439       <tr>
    440         <td class="prompt">Owner</td>
    441         <td><base:propertyvalue item="<%=experiment%>" property="owner" /></td>
    442       </tr>
    443       <tr>
    444         <td class="prompt">Description</td>
    445         <td><%=HTML.niceFormat(experiment.getDescription())%></td>
    446       </tr>
    447       </table>
    448      
    449     <base:section
    450       id="publication"
    451       title="Publication"
    452       context="<%=cc%>"
    453       >
    454       <table class="form" cellspacing="0">
    455       <tr>
    456         <td class="prompt">PubMed ID</td>
    457         <td>
    458           <%=HTML.encodeTags(experiment.getPubMedId())%>
    459           <%
    460           int pubMedId = Values.getInt(experiment.getPubMedId(), -1);
    461           if (pubMedId != -1)
    462           {
    463             %>
    464             <b>Link to:</b>
    465             <a href="http://www.ebi.ac.uk/citexplore/citationDetails.do?externalId=<%=pubMedId%>&dataSource=MED"
    466               target="_new" title="External link to EBI Citation database"
    467               >EBI Citation database</a>,
    468             <a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=PureSearch&db=pubmed&details_term=<%=pubMedId%>"
    469               target="_new" title="External link to NCBI Entrez PubMed">NCBI Entrez PubMed</a>
    470             <%
    471           }
    472           %>
     328            tooltip="This item is used by other items and can't be permanently deleted. Show the items that are using this one"
     329            visible="<%=isRemoved && isUsed%>" />
     330        </th>
     331        <td style="padding: 0px;">
     332          <tbl:toolbar subclass="bottomborder">
     333            <tbl:button
     334              disabled="<%=writePermission ? false : true%>"
     335              image="edit.gif"
     336              onclick="editItem()"
     337              title="Edit&hellip;"
     338              tooltip="<%=writePermission ? "Edit this experiment" : "You do not have permission to edit this experiment"%>"
     339            />
     340            <tbl:button
     341              disabled="<%=deletePermission ? false : true%>"
     342              image="delete.gif"
     343              onclick="deleteItem()"
     344              title="Delete"
     345              visible="<%=!experiment.isRemoved()%>"
     346              tooltip="<%=deletePermission ? "Delete this experiment" : "You do not have permission to delete this experiment"%>"
     347            />
     348            <tbl:button
     349              disabled="<%=writePermission ? false : true%>"
     350              image="restore.gif"
     351              onclick="restoreItem()"
     352              title="Restore"
     353              visible="<%=experiment.isRemoved()%>"
     354              tooltip="<%=writePermission ? "Restore this experiment" : "You do not have permission to restore this experiment"%>"
     355            />
     356            <tbl:button
     357              disabled="<%=sharePermission ? false : true%>"
     358              image="share.gif"
     359              onclick="shareItem()"
     360              title="Share&hellip;"
     361              tooltip="<%=sharePermission ? "Share this experiment to other user, groups and projects" : "You do not have permission to share this experiment"%>"
     362            />
     363            <tbl:button
     364              disabled="<%=setOwnerPermission ? false : true%>"
     365              image="take_ownership.png"
     366              onclick="setOwner()"
     367              title="Set owner&hellip;"
     368              tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
     369            />
     370            <tbl:button
     371              visible="<%=writePermission && (virtualDb.hasTable(VirtualTable.POSITION) || experiment.getRawDataType().isStoredInDb()) %>"
     372              image="copy.gif"
     373              onclick="cloneReporters()"
     374              title="Clone reporters&hellip;"
     375              tooltip="Clone reporter annotations for all reporters that are used in this experiment"
     376            />
     377            <tbl:button
     378              visible="<%=writePermission && virtualDb.hasClonedReporters() %>"
     379              image="delete_permanently.png"
     380              onclick="removeClonedReporters()"
     381              title="Remove cloned reporters&hellip;"
     382              tooltip="Remove all cloned reporter annotations"
     383            />
     384            <tbl:button
     385              image="import.gif"
     386              onclick="runPlugin('ImportItem')"
     387              title="Import&hellip;"
     388              tooltip="Import data"
     389              visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
     390            />
     391            <tbl:button
     392              image="export.gif"
     393              onclick="runPlugin('ExportItem')"
     394              title="Export&hellip;"
     395              tooltip="Export data"
     396              visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
     397            />
     398            <tbl:button
     399              image="runplugin.gif"
     400              onclick="runPlugin('RunPlugin')"
     401              title="Run plugin&hellip;"
     402              tooltip="Run a plugin"
     403              visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
     404            />
     405            <ext:render extensions="<%=invoker%>" context="<%=jspContext%>"
     406              wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
     407            <tbl:button
     408              image="help.png"
     409              onclick="<%="Main.openHelp('" + ID +"', 'experiment.view.properties')"%>"
     410              title="Help&hellip;"
     411              tooltip="Get help about this page"
     412            />
     413          </tbl:toolbar>
    473414        </td>
    474415      </tr>
    475       <tr>
    476         <td class="prompt">Title</td>
    477         <td><%=HTML.niceFormat(experiment.getTitle())%></td>
    478       </tr>
    479       <tr>
    480         <td class="prompt">Publication date</td>
    481         <td><%=dateFormatter.format(experiment.getPublicationDate())%></td>
    482       </tr>
    483       <tr>
    484         <td class="prompt">Abstract</td>
    485         <td><%=HTML.niceFormat(experiment.getAbstract())%></td>
    486       </tr>
    487       <tr>
    488         <td class="prompt">Experiment design</td>
    489         <td><%=HTML.niceFormat(experiment.getExperimentDesign())%></td>
    490       </tr>
    491       <tr>
    492         <td class="prompt">Experiment type</td>
    493         <td><%=HTML.niceFormat(experiment.getExperimentType())%></td>
    494       </tr>
    495       <tr>
    496         <td class="prompt">Affiliations</td>
    497         <td><%=HTML.niceFormat(experiment.getAffiliations())%></td>
    498       </tr>
    499       <tr>
    500         <td class="prompt">Authors</td>
    501         <td><%=HTML.niceFormat(experiment.getAuthors())%></td>
    502       </tr>
    503       <tr>
    504         <td class="prompt">Publication</td>
    505         <td><%=HTML.niceFormat(experiment.getPublication())%></td>
    506       </tr>
    507       </table>
    508     </base:section>
     416    </table>
     417    <table style="width: 100%; height: 16em;" class="bottomborder">
     418    <tr valign="top">
     419      <td style="width: 50%; height: 100%;">
     420        <table class="fullform" >
     421        <tr>
     422          <th>Name</th>
     423          <td><%=HTML.encodeTags(experiment.getName())%></td>
     424        </tr>
     425        <tr>
     426          <th>Registered</th>
     427          <td><%=dateFormatter.format(experiment.getEntryDate())%></td>
     428        </tr>
     429        <tr>
     430          <th>Raw data type</th>
     431          <td><base:catch><%=HTML.encodeTags(experiment.getRawDataType().getName())%></base:catch></td>
     432        </tr>
     433        <tr>
     434          <th>Directory</th>
     435          <td><base:propertyvalue item="<%=experiment%>" property="directory" /></td>
     436        </tr>
     437        <tr>
     438          <th>Reporter clone template</th>
     439          <td><base:propertyvalue item="<%=experiment%>" property="virtualDb.reporterCloneTemplate" nulltext="<i>- no cloned reporters -</i>" /></td>
     440        </tr>
     441        <tr>
     442          <th>Bytes</th>
     443          <td><%=Values.formatBytes(experiment.getBytes())%></td>
     444        </tr>
     445        <tr>
     446          <th>Owner</th>
     447          <td><base:propertyvalue item="<%=experiment%>" property="owner" /></td>
     448        </tr>
     449        <tr>
     450          <th>Permissions</th>
     451          <td><%=PermissionUtil.getFullPermissionNames(experiment)%></td>
     452        </tr>
     453        <tr class="dynamic">
     454          <th>Description</th>
     455          <td><%=HTML.niceFormat(experiment.getDescription())%></td>
     456        </tr>
     457        </table>
     458      </td>
     459      <td style="width: 50%; height: 100%;" class="leftborder">
     460        <table class="fullform">
     461        <tr>
     462          <th>PubMed ID</th>
     463          <td>
     464            <%=HTML.encodeTags(experiment.getPubMedId())%>
     465            <%
     466            int pubMedId = Values.getInt(experiment.getPubMedId(), -1);
     467            if (pubMedId != -1)
     468            {
     469              %>
     470              <b>Link to:</b>
     471              <a href="http://www.ebi.ac.uk/citexplore/citationDetails.do?externalId=<%=pubMedId%>&dataSource=MED"
     472                target="_new" title="External link to EBI Citation database"
     473                >EBI Citation database</a>,
     474              <a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=PureSearch&db=pubmed&details_term=<%=pubMedId%>"
     475                target="_new" title="External link to NCBI Entrez PubMed">NCBI Entrez PubMed</a>
     476              <%
     477            }
     478            %>
     479          </td>
     480        </tr>
     481        <tr>
     482          <th>Title</th>
     483          <td><%=HTML.niceFormat(experiment.getTitle())%></td>
     484        </tr>
     485        <tr>
     486          <th>Publication date</th>
     487          <td><%=dateFormatter.format(experiment.getPublicationDate())%></td>
     488        </tr>
     489        <tr>
     490          <th>Abstract</th>
     491          <td><%=HTML.niceFormat(experiment.getAbstract())%></td>
     492        </tr>
     493        <tr>
     494          <th>Experiment design</th>
     495          <td><%=HTML.niceFormat(experiment.getExperimentDesign())%></td>
     496        </tr>
     497        <tr>
     498          <th>Experiment type</th>
     499          <td><%=HTML.niceFormat(experiment.getExperimentType())%></td>
     500        </tr>
     501        <tr>
     502          <th>Affiliations</th>
     503          <td><%=HTML.niceFormat(experiment.getAffiliations())%></td>
     504        </tr>
     505        <tr>
     506          <th>Authors</th>
     507          <td><%=HTML.niceFormat(experiment.getAuthors())%></td>
     508        </tr>
     509        <tr class="dynamic">
     510          <th>Publication</th>
     511          <td><%=HTML.niceFormat(experiment.getPublication())%></td>
     512        </tr>
     513        </table>
     514      </td>
     515    </tr>
     516    </table>
     517    </div>
    509518     
    510519      <%
     
    513522      efQuery.order(Orders.asc(Hql.property("name")));
    514523      ItemResultList<AnnotationType> experimentalFactors = efQuery.list(dc);
    515       if (experimentalFactors.size() == 0)
    516       {
     524      %>
     525      <base:section
     526        id="experimentalFactors"
     527        title="<%="Experimental factors (" + experimentalFactors.size() +")"%>"
     528        context="<%=cc%>"
     529        >
     530        <%
     531        if (experimentalFactors.size() == 0)
     532        {
     533          %>
     534          <div class="messagecontainer note">
     535          No experimental factors has been added to this experiment
     536          (or, you don't have permission to view them).
     537          </div>
     538          <%
     539        }
     540        else
     541        {
     542          %>
     543          <div style="width: 100%; max-width: 1000px;">
     544          <tbl:table
     545            id="experimentalFactors"
     546            columns="all"
     547            action="index.jsp"
     548            >
     549            <tbl:hidden name="item_id" value="<%=Integer.toString(itemId)%>" />
     550            <tbl:columndef
     551              id="name"
     552              title="Name"
     553            />
     554            <tbl:columndef
     555              id="type"
     556              title="Value type"
     557            />
     558            <tbl:columndef
     559              id="values"
     560              title="Used values"
     561            />
     562            <tbl:columndef
     563              id="description"
     564              title="Description"
     565            />
     566            <tbl:columndef
     567              id="status"
     568              title="Status"
     569            />
     570            <tbl:data>
     571              <tbl:headers>
     572                <tbl:headerrow>
     573                  <tbl:columnheaders />
     574                </tbl:headerrow>
     575              </tbl:headers>
     576              <tbl:rows>
     577              <%
     578              for (AnnotationType item : experimentalFactors)
     579              {
     580                Type valueType = item.getValueType();
     581                usedFactorValues.put(item, new HashSet<Object>());
     582                factorValuesCount.put(item, 0);
     583                Formatter formatter = FormatterFactory.getTypeFormatter(sc, valueType);
     584                %>
     585                <tbl:row>
     586                  <tbl:cell column="name"><base:icon
     587                      image="deleted.gif"
     588                      tooltip="This item has been scheduled for deletion"
     589                      visible="<%=item.isRemoved()%>"
     590                    /><%=Base.getLinkedName(ID, item, false, true)%></tbl:cell>
     591                  <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
     592                  <tbl:cell column="type">
     593                    <%=valueType%>
     594                    <%=item.isEnumeration() ? "(enumeration)" : ""%>
     595                  </tbl:cell>
     596                  <tbl:cell column="values">
     597                    <%
     598                    if (!item.isEnumeration() && (valueType == Type.TEXT || valueType == Type.STRING))
     599                    {
     600                      %>
     601                      N/A
     602                      <%
     603                    }
     604                    else
     605                    {
     606                      %>
     607                      <div id="usedvalues.<%=item.getId()%>">Loading...</div>
     608                      <%
     609                    }
     610                    %>
     611                  </tbl:cell>
     612                  <tbl:cell column="status" id="<%="status." + item.getId()%>">
     613                  </tbl:cell>
     614                </tbl:row>
     615                <%
     616              }
     617              %>
     618              </tbl:rows>
     619            </tbl:data>
     620          </tbl:table>
     621          <div align="right" id="warning.missing" style="display: none;">
     622            <base:icon image="warning.gif" /> = Some raw bioassays are missing this factor value
     623          </div>
     624        </div>
     625        <%
     626        }
    517627        %>
    518         <h4>Experimental factors</h4>
    519         No experimental factors has been added to this experiment
    520         (or, you don't have permission to view them).
    521         <%
    522       }
    523       else
    524       {
    525         %>
    526         <base:section
    527           id="experimentalFactors"
    528           title="<%="Experimental factors (" + experimentalFactors.size() +")"%>"
    529           context="<%=cc%>"
    530           >
    531         <table border="0" cellspacing="0" cellpadding="0" style="width: 100%; max-width: 1000px;"><tr><td>
    532         <tbl:table
    533           id="experimentalFactors"
    534          
    535           columns="all"
    536           action="index.jsp"
    537           >
    538         <tbl:hidden name="item_id" value="<%=Integer.toString(itemId)%>" />
    539         <tbl:columndef
    540           id="name"
    541           title="Name"
    542         />
    543         <tbl:columndef
    544           id="type"
    545           title="Value type"
    546         />
    547         <tbl:columndef
    548           id="values"
    549           title="Used values"
    550         />
    551         <tbl:columndef
    552           id="description"
    553           title="Description"
    554         />
    555         <tbl:columndef
    556           id="status"
    557           title="Status"
    558         />
    559         <tbl:data>
    560           <tbl:columns>
    561           </tbl:columns>
    562           <tbl:rows>
    563           <%
    564           for (AnnotationType item : experimentalFactors)
    565           {
    566             Type valueType = item.getValueType();
    567             usedFactorValues.put(item, new HashSet<Object>());
    568             factorValuesCount.put(item, 0);
    569             Formatter formatter = FormatterFactory.getTypeFormatter(sc, valueType);
    570             %>
    571             <tbl:row>
    572               <tbl:cell column="name"><base:icon
    573                   image="deleted.gif"
    574                   tooltip="This item has been scheduled for deletion"
    575                   visible="<%=item.isRemoved()%>"
    576                 /><%=Base.getLinkedName(ID, item, false, true)%></tbl:cell>
    577               <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
    578               <tbl:cell column="type">
    579                 <%=valueType%>
    580                 <%=item.isEnumeration() ? "(enumeration)" : ""%>
    581               </tbl:cell>
    582               <tbl:cell column="values">
    583                 <%
    584                 if (!item.isEnumeration() && (valueType == Type.TEXT || valueType == Type.STRING))
    585                 {
    586                   %>
    587                   N/A
    588                   <%
    589                 }
    590                 else
    591                 {
    592                   %>
    593                   <div id="usedvalues.<%=item.getId()%>">Loading...</div>
    594                   <%
    595                 }
    596                 %>
    597               </tbl:cell>
    598               <tbl:cell column="status" id="<%="status." + item.getId()%>">
    599               </tbl:cell>
    600             </tbl:row>
    601             <%
    602           }
    603           %>
    604           </tbl:rows>
    605         </tbl:data>
    606         </tbl:table>
    607         <div align="right" id="warning.missing" style="display: none;">
    608           <base:icon image="warning.gif" /> = Some raw bioassays are missing this factor value<br>
    609           <base:icon image="ok.png" /> = All raw bioassays have a value for this factor
    610         </div>
    611         </td></tr></table>
    612         </base:section>
    613         <%
    614       }
    615       %>
     628      </base:section>
    616629      <%
    617630      ItemQuery<RawBioAssay> rbaQuery = experiment.getRawBioAssays();
     
    619632      rbaQuery.order(Orders.asc(Hql.property("name")));
    620633      ItemResultList<RawBioAssay> rawBioAssays = rbaQuery.list(dc);
    621       if (rawBioAssays.size() == 0)
    622       {
    623         %>
    624         <h4>Raw bioassays</h4>
    625         No raw bioassays has been added to this experiment
    626         (or, you don't have permission to view them).
     634      %>
     635      <base:section
     636        id="rawbioassays"
     637        title="<%="Raw bioassays (" + rawBioAssays.size() +")"%>"
     638        context="<%=cc%>">
    627639        <%
    628       }
    629       else
    630       {
    631         %>
    632         <base:section
    633           id="rawbioassays"
    634           title="<%="Raw bioassays (" + rawBioAssays.size() +")"%>"
    635           context="<%=cc%>">
    636         <tbl:table
    637           id="rawbioassays"
    638          
    639           columns="all"
    640           >
    641         <tbl:columndef
    642           id="name"
    643           title="Name"
    644         />
    645         <tbl:columndef
    646           id="description"
    647           title="Description"
    648         />
    649         <%
    650         for (AnnotationType at : experimentalFactors)
     640        if (rawBioAssays.size() == 0)
    651641        {
    652           Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
    653642          %>
    654           <tbl:columndef
    655             id="<%="at"+at.getId()%>"
    656             title="<%=HTML.encodeTags(at.getName())%>"
    657             formatter="<%=formatter%>"
    658           />
     643          <h4>Raw bioassays</h4>
     644          No raw bioassays has been added to this experiment
     645          (or, you don't have permission to view them).
    659646          <%
    660647        }
    661         %>
    662         <tbl:data>
    663           <tbl:columns>
    664           </tbl:columns>
    665           <tbl:rows>
    666           <%
    667           SnapshotManager manager = new SnapshotManager();
    668           AnnotationTypeFilter annotationTypeFilter = new AnnotationTypeFilter();
    669           for (RawBioAssay item : rawBioAssays)
    670           {
    671             AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
    672             AnnotationSetSnapshot snapshot = as == null ? null : manager.getSnapshot(dc, as.getId());
    673             %>
    674             <tbl:row>
    675               <tbl:cell column="name"><base:icon
    676                   image="deleted.gif"
    677                   tooltip="This item has been scheduled for deletion"
    678                   visible="<%=item.isRemoved()%>"
    679                 /><%=Base.getLinkedName(ID, item, false, true)%></tbl:cell>
    680               <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
    681               <%
    682               for (AnnotationType at : experimentalFactors)
    683               {
    684                 Unit unit = at.getDefaultUnit();
    685                 String unitSymbol = unit == null ? "" : "&nbsp;" + unit.getDisplaySymbol();
    686                
    687                 String value = "<i>- none -</i>";
    688                 annotationTypeFilter.setAnnotationType(at);
    689                 List<AnnotationSnapshot> all = snapshot == null ?
    690                     null : manager.findAnnotations(dc, snapshot, annotationTypeFilter, true);
    691                 Map<Annotatable, List> factorValues = new HashMap<Annotatable, List>();
    692                 if (all != null && all.size() > 0)
    693                 {
    694                   for (AnnotationSnapshot a : all)
    695                   {
    696                     List values = a.getValues();
    697                     usedFactorValues.get(at).addAll(values);
    698                     factorValuesCount.put(at, factorValuesCount.get(at)+1);
    699                     Annotatable aItem = null;
    700                     try
    701                     {
    702                       aItem = a.getItem(dc);
    703                     }
    704                     catch (Throwable t)
    705                     {}
    706                     List toAdd = factorValues.get(aItem);
    707                     if (toAdd == null)
    708                     {
    709                       toAdd = new LinkedList();
    710                       factorValues.put(aItem, toAdd);
    711                     }
    712                     toAdd.addAll(values);
    713                   }
    714                 }
    715                 %>
    716                 <tbl:cell column="<%="at"+at.getId()%>"
    717                   >
    718                   <%
    719                   for (Map.Entry<Annotatable, List> entry : factorValues.entrySet())
    720                   {
    721                     Annotatable aItem = entry.getKey();
    722                     List values = entry.getValue();
    723                     %>
    724                     <tbl:cellvalue list="<%=values%>" suffix="<%=unitSymbol%>"/>
    725                     <%
    726                     if (aItem != null && aItem.hasPermission(Permission.WRITE))
    727                     {
    728                       %>: <base:icon image="edit.gif"
    729                         onclick="<%="editAnnotation('"+aItem.getType().name()+"',"+aItem.getId()+","+at.getId()+")"%>"
    730                         tooltip="Modify the values of this experimental factor" />
    731                       <%
    732                     }
    733                   }
    734                   %>
    735                 </tbl:cell>
    736                 <%
    737               }
    738               %>
    739             </tbl:row>
    740             <%
    741           }
     648        else
     649        {
    742650          %>
    743           </tbl:rows>
    744         </tbl:data>
    745         </tbl:table>
    746         </base:section>
    747         <%
    748       }
    749       %>
    750       <jsp:include page="../../common/anytoany/list_anytoany.jsp">
    751         <jsp:param name="ID" value="<%=ID%>" />
    752         <jsp:param name="item_type" value="<%=itemType.name()%>" />
    753         <jsp:param name="item_id" value="<%=itemId%>" />
    754         <jsp:param name="title" value="Other items related to this experiment" />
    755       </jsp:include>
    756       <%
    757       // Tables with users/groups/projects that this item is shared to
    758       MultiPermissions mp = new MultiPermissions(Collections.singleton(experiment));
    759       ItemResultIterator<User> users = mp.getUsers().iterate(dc);
    760       ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
    761       ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
    762      
    763       if (users.hasNext() || groups.hasNext() || projects.hasNext())
    764       {
    765         %>
    766         <base:section
    767           id="sharedTo"
    768           title="Shared to"
    769           context="<%=cc%>">
    770         <tbl:table
    771           id="itemsSharedTo"
    772          
    773           columns="all"
    774         >
    775           <tbl:columndef
    776             id="itemType"
    777             title="Item type"
    778           />
     651          <tbl:table
     652            id="rawbioassays"
     653            columns="all"
     654            >
    779655          <tbl:columndef
    780656            id="name"
     
    782658          />
    783659          <tbl:columndef
    784             id="permissions"
    785             title="Permissions"
     660            id="description"
     661            title="Description"
    786662          />
     663          <%
     664          for (AnnotationType at : experimentalFactors)
     665          {
     666            Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
     667            %>
     668            <tbl:columndef
     669              id="<%="at"+at.getId()%>"
     670              title="<%=HTML.encodeTags(at.getName())%>"
     671              formatter="<%=formatter%>"
     672            />
     673            <%
     674          }
     675          %>
    787676          <tbl:data>
    788             <tbl:columns>
    789             </tbl:columns>
     677            <tbl:headers>
     678              <tbl:headerrow>
     679                <tbl:columnheaders />
     680              </tbl:headerrow>
     681            </tbl:headers>
    790682            <tbl:rows>
    791683            <%
    792             while(projects.hasNext())
     684            SnapshotManager manager = new SnapshotManager();
     685            AnnotationTypeFilter annotationTypeFilter = new AnnotationTypeFilter();
     686            for (RawBioAssay item : rawBioAssays)
    793687            {
    794               Project project = projects.next();
    795               Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
    796               %>     
     688              AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
     689              AnnotationSetSnapshot snapshot = as == null ? null : manager.getSnapshot(dc, as.getId());
     690              %>
    797691              <tbl:row>
    798                 <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
    799692                <tbl:cell column="name"><base:icon
    800                   image="deleted.gif"
    801                   tooltip="This item has been scheduled for deletion"
    802                   visible="<%=project.isRemoved()%>"
    803                 /><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
    804                 <tbl:cell column="permissions">
    805                   <%=PermissionUtil.translatePermissionsToString(permissions)%>
    806                 </tbl:cell>
    807               </tbl:row>
    808               <%
    809             }
    810             while(groups.hasNext())
    811             {
    812               Group group = groups.next();
    813               Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
    814               %>
    815               <tbl:row>             
    816                 <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
    817                 <tbl:cell column="name"><base:icon
    818                   image="deleted.gif"
    819                   tooltip="This item has been scheduled for deletion"
    820                   visible="<%=group.isRemoved()%>"
    821                 /><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
    822                 <tbl:cell column="permissions">
    823                   <%=PermissionUtil.translatePermissionsToString(permissions)%>
    824                 </tbl:cell>
    825               </tbl:row>
    826               <% 
    827             }
    828             while (users.hasNext())
    829             {
    830               User user = users.next();
    831               Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
    832               %>
    833               <tbl:row>             
    834                 <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
    835                 <tbl:cell column="name"><base:icon
    836                   image="deleted.gif"
    837                   tooltip="This item has been scheduled for deletion"
    838                   visible="<%=user.isRemoved()%>"
    839                 /><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
    840                 <tbl:cell column="permissions">
    841                   <%=PermissionUtil.translatePermissionsToString(permissions)%>
    842                 </tbl:cell>
     693                    image="deleted.gif"
     694                    tooltip="This item has been scheduled for deletion"
     695                    visible="<%=item.isRemoved()%>"
     696                  /><%=Base.getLinkedName(ID, item, false, true)%></tbl:cell>
     697                <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
     698                <%
     699                for (AnnotationType at : experimentalFactors)
     700                {
     701                  Unit unit = at.getDefaultUnit();
     702                  String unitSymbol = unit == null ? "" : "&nbsp;" + unit.getDisplaySymbol();
     703                 
     704                  String value = "<i>- none -</i>";
     705                  annotationTypeFilter.setAnnotationType(at);
     706                  List<AnnotationSnapshot> all = snapshot == null ?
     707                      null : manager.findAnnotations(dc, snapshot, annotationTypeFilter, true);
     708                  Map<Annotatable, List> factorValues = new HashMap<Annotatable, List>();
     709                  if (all != null && all.size() > 0)
     710                  {
     711                    for (AnnotationSnapshot a : all)
     712                    {
     713                      List values = a.getValues();
     714                      usedFactorValues.get(at).addAll(values);
     715                      factorValuesCount.put(at, factorValuesCount.get(at)+1);
     716                      Annotatable aItem = null;
     717                      try
     718                      {
     719                        aItem = a.getItem(dc);
     720                      }
     721                      catch (Throwable t)
     722                      {}
     723                      List toAdd = factorValues.get(aItem);
     724                      if (toAdd == null)
     725                      {
     726                        toAdd = new LinkedList();
     727                        factorValues.put(aItem, toAdd);
     728                      }
     729                      toAdd.addAll(values);
     730                    }
     731                  }
     732                  %>
     733                  <tbl:cell column="<%="at"+at.getId()%>"
     734                    >
     735                    <%
     736                    for (Map.Entry<Annotatable, List> entry : factorValues.entrySet())
     737                    {
     738                      Annotatable aItem = entry.getKey();
     739                      List values = entry.getValue();
     740                      %>
     741                      <tbl:cellvalue list="<%=values%>" suffix="<%=unitSymbol%>"/>
     742                      <%
     743                      if (aItem != null && aItem.hasPermission(Permission.WRITE))
     744                      {
     745                        %>: <base:icon image="edit.gif"
     746                          onclick="<%="editAnnotation('"+aItem.getType().name()+"',"+aItem.getId()+","+at.getId()+")"%>"
     747                          tooltip="Modify the values of this experimental factor" />
     748                        <%
     749                      }
     750                    }
     751                    %>
     752                  </tbl:cell>
     753                  <%
     754                }
     755                %>
    843756              </tbl:row>
    844757              <%
     
    848761          </tbl:data>
    849762        </tbl:table>
    850         </base:section>
    851763        <%
    852764      }
    853       else
    854       {
    855         %>
    856         <h4>Shared to</h4>
    857         This experiment is not shared
    858         (or, you don't have permission to view the ones it is shared to).
    859         <%
    860       }
    861765      %>
    862     </div>
     766      </base:section>
     767      <jsp:include page="../../common/anytoany/list_anytoany.jsp">
     768        <jsp:param name="ID" value="<%=ID%>" />
     769        <jsp:param name="item_type" value="<%=itemType.name()%>" />
     770        <jsp:param name="item_id" value="<%=itemId%>" />
     771        <jsp:param name="title" value="Other items related to this experiment" />
     772      </jsp:include>
     773      <jsp:include page="../../common/share/list_share.jsp">
     774        <jsp:param name="ID" value="<%=ID%>" />
     775        <jsp:param name="item_type" value="<%=itemType.name()%>" />
     776        <jsp:param name="item_id" value="<%=itemId%>" />
     777        <jsp:param name="title" value="Shared to" />
     778      </jsp:include>
    863779   
    864780    <script language="JavaScript">
  • trunk/www/views/formulas/view_formula.jsp

    r5937 r5939  
    156156  </base:head>
    157157  <base:body>
    158     <p>
    159     <p:path>
    160       <p:pathelement title="Formulas" href="<%="index.jsp?ID="+ID%>" />
    161       <p:pathelement title="<%=HTML.encodeTags(formula.getName())%>" />
    162     </p:path>
     158    <p:path><p:pathelement
     159      title="Formulas" href="<%="index.jsp?ID="+ID%>"
     160      /><p:pathelement title="<%=HTML.encodeTags(formula.getName())%>"
     161      /></p:path>
    163162   
    164     <t:tabcontrol id="main" active="<%=tab%>" switch="switchTab" remember="false">
     163    <t:tabcontrol
     164      id="main"
     165      subclass="content mastertabcontrol"
     166      active="<%=tab%>" switch="switchTab" remember="false">
    165167    <t:tab id="properties" title="Properties">
    166     <tbl:toolbar
    167       >
    168       <tbl:button
    169         disabled="<%=writePermission ? false : true%>"
    170         image="edit.gif"
    171         onclick="editItem()"
    172         title="Edit&hellip;"
    173         tooltip="<%=writePermission ? "Edit this formula" : "You do not have permission to edit this formula"%>"
    174       />
    175       <tbl:button
    176         disabled="<%=deletePermission ? false : true%>"
    177         image="delete.gif"
    178         onclick="deleteItem()"
    179         title="Delete"
    180         visible="<%=!formula.isRemoved()%>"
    181         tooltip="<%=deletePermission ? "Delete this formula" : "You do not have permission to delete this formula"%>"
    182       />
    183       <tbl:button
    184         disabled="<%=writePermission ? false : true%>"
    185         image="restore.gif"
    186         onclick="restoreItem()"
    187         title="Restore"
    188         visible="<%=formula.isRemoved()%>"
    189         tooltip="<%=writePermission ? "Restore this formula" : "You do not have permission to restore this formula"%>"
    190       />
    191       <tbl:button
    192         disabled="<%=sharePermission ? false : true%>"
    193         image="share.gif"
    194         onclick="shareItem()"
    195         title="Share&hellip;"
    196         tooltip="<%=sharePermission ? "Share this formula to other user, groups and projects" : "You do not have permission to share this formula"%>"
    197       />
    198       <tbl:button
    199         disabled="<%=setOwnerPermission ? false : true%>"
    200         image="take_ownership.png"
    201         onclick="setOwner()"
    202         title="Set owner&hellip;"
    203         tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
    204       />
    205       <tbl:button
    206         image="import.gif"
    207         onclick="runPlugin('ImportItem')"
    208         title="Import&hellip;"
    209         tooltip="Import data"
    210         visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
    211       />
    212       <tbl:button
    213         image="export.gif"
    214         onclick="runPlugin('ExportItem')"
    215         title="Export&hellip;"
    216         tooltip="Export data"
    217         visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
    218       />
    219       <tbl:button
    220         image="runplugin.gif"
    221         onclick="runPlugin('RunPlugin')"
    222         title="Run plugin&hellip;"
    223         tooltip="Run a plugin"
    224         visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
    225       />
    226       <ext:render extensions="<%=invoker%>" context="<%=jspContext%>"
    227         wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
    228       <tbl:button
    229         image="help.png"
    230         onclick="<%="Main.openHelp('" + ID +"', 'formula.view.properties')"%>"
    231         title="Help&hellip;"
    232         tooltip="Get help about this page"
    233       />
    234       </tbl:toolbar>
    235     <div class="boxedbottom">
    236       <div class="itemstatus">Permissions on this item: <i><%=PermissionUtil.getFullPermissionNames(formula)%></i></div>
    237       <%
    238       if (formula.isRemoved() || formula.isShared())
    239       {
    240         %>
    241         <div class="itemstatus">
     168      <div>
     169      <table class="fullform bottomborder">
     170      <tr>
     171        <th class="itemstatus">
    242172          <base:icon
    243             image="<%=deletePermanentlyPermission ? "deleted.gif" : "deleted_disabled.gif"%>"
    244             onclick="<%=deletePermanentlyPermission ? "deleteItemPermanently()" : null%>"
    245             tooltip="<%=deletePermanentlyPermission ? "Permanently delete this item" : null%>"
    246             visible="<%=isRemoved%>"> This item has been flagged for deletion<br></base:icon>
     173            image="shared.gif"
     174            visible="<%=formula.isShared()%>"
     175            tooltip="This item is shared to other users, groups and/or projects"
     176          />
     177          <base:icon
     178            image="deleted.gif"
     179            onclick="deleteItemPermanently()"
     180            tooltip="This item has been flagged for deletion. Click to delete it now."
     181            enabled="<%=deletePermanentlyPermission %>"
     182            visible="<%=isRemoved%>"
     183          />
    247184          <base:icon image="used.gif"
    248185            onclick="showUsingItems()"
    249             tooltip="Show the items that are using this one"
    250             visible="<%=isUsed%>"> This item is used by other items and can't be permanently deleted<br></base:icon>
    251           <base:icon image="shared.gif"
    252             visible="<%=formula.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    253         </div>
    254         <%
    255       }
    256       %>
    257       <table class="form" cellspacing="0">
    258       <tr>
    259         <td class="prompt">Name</td>
     186            tooltip="This item is used by other items and can't be permanently deleted. Show the items that are using this one"
     187            visible="<%=isRemoved && isUsed%>" />
     188        </th>
     189        <td style="padding: 0px;">
     190          <tbl:toolbar subclass="bottomborder">
     191            <tbl:button
     192              disabled="<%=writePermission ? false : true%>"
     193              image="edit.gif"
     194              onclick="editItem()"
     195              title="Edit&hellip;"
     196              tooltip="<%=writePermission ? "Edit this formula" : "You do not have permission to edit this formula"%>"
     197            />
     198            <tbl:button
     199              disabled="<%=deletePermission ? false : true%>"
     200              image="delete.gif"
     201              onclick="deleteItem()"
     202              title="Delete"
     203              visible="<%=!formula.isRemoved()%>"
     204              tooltip="<%=deletePermission ? "Delete this formula" : "You do not have permission to delete this formula"%>"
     205            />
     206            <tbl:button
     207              disabled="<%=writePermission ? false : true%>"
     208              image="restore.gif"
     209              onclick="restoreItem()"
     210              title="Restore"
     211              visible="<%=formula.isRemoved()%>"
     212              tooltip="<%=writePermission ? "Restore this formula" : "You do not have permission to restore this formula"%>"
     213            />
     214            <tbl:button
     215              disabled="<%=sharePermission ? false : true%>"
     216              image="share.gif"
     217              onclick="shareItem()"
     218              title="Share&hellip;"
     219              tooltip="<%=sharePermission ? "Share this formula to other user, groups and projects" : "You do not have permission to share this formula"%>"
     220            />
     221            <tbl:button
     222              disabled="<%=setOwnerPermission ? false : true%>"
     223              image="take_ownership.png"
     224              onclick="setOwner()"
     225              title="Set owner&hellip;"
     226              tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
     227            />
     228            <tbl:button
     229              image="import.gif"
     230              onclick="runPlugin('ImportItem')"
     231              title="Import&hellip;"
     232              tooltip="Import data"
     233              visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
     234            />
     235            <tbl:button
     236              image="export.gif"
     237              onclick="runPlugin('ExportItem')"
     238              title="Export&hellip;"
     239              tooltip="Export data"
     240              visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
     241            />
     242            <tbl:button
     243              image="runplugin.gif"
     244              onclick="runPlugin('RunPlugin')"
     245              title="Run plugin&hellip;"
     246              tooltip="Run a plugin"
     247              visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
     248            />
     249            <ext:render extensions="<%=invoker%>" context="<%=jspContext%>"
     250              wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
     251            <tbl:button
     252              image="help.png"
     253              onclick="<%="Main.openHelp('" + ID +"', 'formula.view.properties')"%>"
     254              title="Help&hellip;"
     255              tooltip="Get help about this page"
     256            />
     257          </tbl:toolbar>
     258        </td>
     259      </tr>
     260      <tr>
     261        <th>Name</th>
    260262        <td><%=HTML.encodeTags(formula.getName())%></td>
    261263      </tr>
    262264      <tr>
    263         <td class="prompt">Registered</td>
     265        <th>Registered</th>
    264266        <td><%=dateFormatter.format(formula.getEntryDate())%></td>
    265267      </tr>
    266268      <tr>
    267         <td class="prompt">Type</td>
     269        <th>Type</th>
    268270        <td><%=formula.getFormulaType()%></td>
    269271      </tr>
    270272      <tr>
    271         <td class="prompt">Value type</td>
     273        <th>Value type</th>
    272274        <td><%=formula.getValueType() == null ? "<i>- unknown -</i>" : formula.getValueType()%></td>
    273275      </tr>
    274276      <tr>
    275         <td class="prompt">Parser</td>
     277        <th>Parser</th>
    276278        <td><%=formula.getParser()%></td>
    277279      </tr>
    278280      <tr>
    279         <td class="prompt">Raw data type</td>
     281        <th>Raw data type</th>
    280282        <td><%=rawDataType == null ? "<i>- none -</i>" : HTML.encodeTags(rawDataType.getName())%></td>
    281283      </tr>
    282284      <tr>
    283         <td class="prompt">Channels</td>
     285        <th>Channels</th>
    284286        <td><%=formula.getChannels()%></td>
    285287      </tr>
    286       <tr >
    287         <td class="prompt">Expressions</td>
     288      <tr class="big">
     289        <th>Expressions</th>
    288290        <td>
    289291          <%
     
    298300      </tr>
    299301      <tr>
    300         <td class="prompt">Avg. method</td>
     302        <th>Avg. method</th>
    301303        <td><%=formula.getAverageMethod().toString()%></td>
    302304      </tr>
    303305      <tr>
    304         <td class="prompt">Source intensity transform</td>
     306        <th>Source intensity transform</th>
    305307        <td><%=formula.getSourceIntensityTransform() == null ? "<i>- any -</i>" : formula.getSourceIntensityTransform().toString()%></td>
    306308      </tr>
    307309      <tr>
    308         <td class="prompt">Result intensity transform</td>
     310        <th>Result intensity transform</th>
    309311        <td><%=formula.getResultIntensityTransform() == null ? "<i>- any -</i>" : formula.getResultIntensityTransform().toString()%></td>
    310312      </tr>
    311313      <tr>
    312         <td class="prompt">Use coloring</td>
     314        <th>Use coloring</th>
    313315        <td>
    314316          <%=coloring.isUsingColors() ? "yes" : "no"%>
     
    328330      </tr>
    329331      <tr>
    330         <td class="prompt">Owner</td>
     332        <th>Owner</th>
    331333        <td><base:propertyvalue item="<%=formula%>" property="owner" /></td>
    332334      </tr>
    333335      <tr>
    334         <td class="prompt">Description</td>
     336        <th>Permissions</th>
     337        <td><%=PermissionUtil.getFullPermissionNames(formula)%></td>
     338      </tr>
     339      <tr>
     340        <th>Description</th>
    335341        <td><%=HTML.niceFormat(formula.getDescription())%></td>
    336342      </tr>
    337343      </table>
     344      </div>
     345     
    338346      <jsp:include page="../../common/anytoany/list_anytoany.jsp">
    339347        <jsp:param name="ID" value="<%=ID%>" />
     
    342350        <jsp:param name="title" value="Other items related to this formula" />
    343351      </jsp:include>
    344       <%
    345       // Tables with users/groups/projects that this item is shared to
    346       MultiPermissions mp = new MultiPermissions(Collections.singleton(formula));
    347       ItemResultList<User> users = mp.getUsers().list(dc);
    348       ItemResultList<Group> groups = mp.getGroups().list(dc);
    349       ItemResultList<Project> projects = mp.getProjects().list(dc);
    350       int totalShare = users.size() + groups.size() + projects.size();
    351      
    352       if (totalShare > 0)
    353       {
    354         %>
    355         <base:section
    356           id="sharedTo"
    357           title="<%="Shared to (" + totalShare + ")"%>"
    358           context="<%=cc%>"
    359           >
    360           <tbl:table
    361             id="itemsSharedTo"
    362            
    363             columns="all"
    364           >
    365             <tbl:columndef
    366               id="itemType"
    367               title="Item type"
    368             />
    369             <tbl:columndef
    370               id="name"
    371               title="Name"
    372             />
    373             <tbl:columndef
    374               id="permissions"
    375               title="Permissions"
    376             />
    377             <tbl:data>
    378               <tbl:columns>
    379               </tbl:columns>
    380               <tbl:rows>
    381               <%
    382               for (Project project : projects)
    383               {
    384                 Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
    385                 %>     
    386                 <tbl:row>
    387                   <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
    388                   <tbl:cell column="name"><base:icon
    389                     image="deleted.gif"
    390                     tooltip="This item has been scheduled for deletion"
    391                     visible="<%=project.isRemoved()%>"
    392                   /><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
    393                   <tbl:cell column="permissions">
    394                     <%=PermissionUtil.translatePermissionsToString(permissions)%>
    395                   </tbl:cell>
    396                 </tbl:row>
    397                 <%
    398               }
    399               for (Group group : groups)
    400               {
    401                 Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
    402                 %>
    403                 <tbl:row>             
    404                   <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
    405                   <tbl:cell column="name"><base:icon
    406                     image="deleted.gif"
    407                     tooltip="This item has been scheduled for deletion"
    408                     visible="<%=group.isRemoved()%>"
    409                   /><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
    410                   <tbl:cell column="permissions">
    411                     <%=PermissionUtil.translatePermissionsToString(permissions)%>
    412                   </tbl:cell>
    413                 </tbl:row>
    414                 <% 
    415               }
    416               for (User user : users)
    417               {
    418                 Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
    419                 %>
    420                 <tbl:row>             
    421                   <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
    422                   <tbl:cell column="name"><base:icon
    423                     image="deleted.gif"
    424                     tooltip="This item has been scheduled for deletion"
    425                     visible="<%=user.isRemoved()%>"
    426                   /><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
    427                   <tbl:cell column="permissions">
    428                     <%=PermissionUtil.translatePermissionsToString(permissions)%>
    429                   </tbl:cell>
    430                 </tbl:row>
    431                 <%
    432               }
    433               %>
    434               </tbl:rows>
    435             </tbl:data>
    436           </tbl:table>
    437         </base:section>
    438         <%
    439       }
    440       else
    441       {
    442         %>
    443         <h4>Shared to</h4>
    444         This formula is not shared
    445         (or, you don't have permission to view the ones it is shared to).
    446         <%
    447       }     
    448       %>
    449 
    450     </div>
     352      <jsp:include page="../../common/share/list_share.jsp">
     353        <jsp:param name="ID" value="<%=ID%>" />
     354        <jsp:param name="item_type" value="<%=itemType.name()%>" />
     355        <jsp:param name="item_id" value="<%=itemId%>" />
     356        <jsp:param name="title" value="Shared to" />
     357      </jsp:include>
    451358    </t:tab>
    452359    <t:tab id="history" title="Change history"
  • trunk/www/views/permissiontemplates/view_template.jsp

    r5937 r5939  
    139139  </base:head>
    140140  <base:body>
    141     <p>
    142     <p:path>
    143       <p:pathelement title="Permission templates" href="<%="index.jsp?ID="+ID%>" />
    144       <p:pathelement title="<%=HTML.encodeTags(template.getName())%>" />
    145     </p:path>
     141    <p:path><p:pathelement
     142      title="Permission templates" href="<%="index.jsp?ID="+ID%>"
     143      /><p:pathelement title="<%=HTML.encodeTags(template.getName())%>"
     144      /></p:path>
    146145   
    147     <t:tabcontrol id="main" active="properties">
     146    <t:tabcontrol
     147      id="main"
     148      subclass="content mastertabcontrol"
     149      active="properties">
    148150    <t:tab id="properties" title="Properties">
    149     <tbl:toolbar
    150       >
    151       <tbl:button
    152         disabled="<%=writePermission ? false : true%>"
    153         image="edit.gif"
    154         onclick="editItem()"
    155         title="Edit&hellip;"
    156         tooltip="<%=writePermission ? "Edit this permission template" : "You do not have permission to edit this permission template"%>"
    157       />
    158       <tbl:button
    159         disabled="<%=deletePermission ? false : true%>"
    160         image="delete.gif"
    161         onclick="deleteItem()"
    162         title="Delete"
    163         visible="<%=!template.isRemoved()%>"
    164         tooltip="<%=deletePermission ? "Delete this permission template" : "You do not have permission to delete this permission template"%>"
    165       />
    166       <tbl:button
    167         disabled="<%=writePermission ? false : true%>"
    168         image="restore.gif"
    169         onclick="restoreItem()"
    170         title="Restore"
    171         visible="<%=template.isRemoved()%>"
    172         tooltip="<%=writePermission ? "Restore this permission template" : "You do not have permission to restore this permission template"%>"
    173       />
    174       <tbl:button
    175         disabled="<%=sharePermission ? false : true%>"
    176         image="share.gif"
    177         onclick="shareItem()"
    178         title="Permissions&hellip;"
    179         tooltip="<%=sharePermission ? "Set permission on this permission template" : "You do not have permission to modify this permission template"%>"
    180       />
    181       <tbl:button
    182         disabled="<%=setOwnerPermission ? false : true%>"
    183         image="take_ownership.png"
    184         onclick="setOwner()"
    185         title="Set owner&hellip;"
    186         tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
    187       />
    188       <tbl:button
    189         image="import.gif"
    190         onclick="runPlugin('ImportItem')"
    191         title="Import&hellip;"
    192         tooltip="Import data"
    193         visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
    194       />
    195       <tbl:button
    196         image="export.gif"
    197         onclick="runPlugin('ExportItem')"
    198         title="Export&hellip;"
    199         tooltip="Export data"
    200         visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
    201       />
    202       <tbl:button
    203         image="runplugin.gif"
    204         onclick="runPlugin('RunPlugin')"
    205         title="Run plugin&hellip;"
    206         tooltip="Run a plugin"
    207         visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
    208       />
    209       <ext:render extensions="<%=invoker%>" context="<%=jspContext%>"
    210         wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
    211       <tbl:button
    212         image="help.png"
    213         onclick="<%="Main.openHelp('" + ID +"', 'permissiontemplate.view.properties')"%>"
    214         title="Help&hellip;"
    215         tooltip="Get help about this page"
    216       /> 
    217       </tbl:toolbar>
    218     <div class="boxedbottom">
    219       <div class="itemstatus">Permissions on this item: <i><%=PermissionUtil.getFullPermissionNames(template)%></i></div>
    220       <%
    221       if (template.isRemoved() || template.isShared())
    222       {
    223         %>
    224         <div class="itemstatus">
     151      <div>
     152      <table class="fullform bottomborder">
     153      <tr>
     154        <th class="itemstatus">
    225155          <base:icon
    226             image="<%=deletePermanentlyPermission ? "deleted.gif" : "deleted_disabled.gif"%>"
    227             onclick="<%=deletePermanentlyPermission ? "deleteItemPermanently()" : null%>"
    228             tooltip="<%=deletePermanentlyPermission ? "Permanently delete this item" : null%>"
    229             visible="<%=isRemoved%>"> This item has been flagged for deletion<br></base:icon>
     156            image="shared.gif"
     157            visible="<%=template.isShared()%>"
     158            tooltip="This item is shared to other users, groups and/or projects"
     159          />
     160          <base:icon
     161            image="deleted.gif"
     162            onclick="deleteItemPermanently()"
     163            tooltip="This item has been flagged for deletion. Click to delete it now."
     164            enabled="<%=deletePermanentlyPermission %>"
     165            visible="<%=isRemoved%>"
     166          />
    230167          <base:icon image="used.gif"
    231168            onclick="showUsingItems()"
    232             tooltip="Show the items that are using this one"
    233             visible="<%=isUsed%>"> This item is used by other items and can't be permanently deleted<br></base:icon>
    234           <base:icon image="shared.gif"
    235             visible="<%=template.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    236         </div>
    237         <%
    238       }
    239       %>
    240       <table class="form" cellspacing=0>
    241       <tr>
    242         <td class="prompt">Name</td>
     169            tooltip="This item is used by other items and can't be permanently deleted. Show the items that are using this one"
     170            visible="<%=isRemoved && isUsed%>" />
     171        </th>
     172        <td style="padding: 0px;">
     173          <tbl:toolbar subclass="bottomborder">
     174            <tbl:button
     175              disabled="<%=writePermission ? false : true%>"
     176              image="edit.gif"
     177              onclick="editItem()"
     178              title="Edit&hellip;"
     179              tooltip="<%=writePermission ? "Edit this permission template" : "You do not have permission to edit this permission template"%>"
     180            />
     181            <tbl:button
     182              disabled="<%=deletePermission ? false : true%>"
     183              image="delete.gif"
     184              onclick="deleteItem()"
     185              title="Delete"
     186              visible="<%=!template.isRemoved()%>"
     187              tooltip="<%=deletePermission ? "Delete this permission template" : "You do not have permission to delete this permission template"%>"
     188            />
     189            <tbl:button
     190              disabled="<%=writePermission ? false : true%>"
     191              image="restore.gif"
     192              onclick="restoreItem()"
     193              title="Restore"
     194              visible="<%=template.isRemoved()%>"
     195              tooltip="<%=writePermission ? "Restore this permission template" : "You do not have permission to restore this permission template"%>"
     196            />
     197            <tbl:button
     198              disabled="<%=sharePermission ? false : true%>"
     199              image="share.gif"
     200              onclick="shareItem()"
     201              title="Permissions&hellip;"
     202              tooltip="<%=sharePermission ? "Set permission on this permission template" : "You do not have permission to modify this permission template"%>"
     203            />
     204            <tbl:button
     205              disabled="<%=setOwnerPermission ? false : true%>"
     206              image="take_ownership.png"
     207              onclick="setOwner()"
     208              title="Set owner&hellip;"
     209              tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
     210            />
     211            <tbl:button
     212              image="import.gif"
     213              onclick="runPlugin('ImportItem')"
     214              title="Import&hellip;"
     215              tooltip="Import data"
     216              visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
     217            />
     218            <tbl:button
     219              image="export.gif"
     220              onclick="runPlugin('ExportItem')"
     221              title="Export&hellip;"
     222              tooltip="Export data"
     223              visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
     224            />
     225            <tbl:button
     226              image="runplugin.gif"
     227              onclick="runPlugin('RunPlugin')"
     228              title="Run plugin&hellip;"
     229              tooltip="Run a plugin"
     230              visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
     231            />
     232            <ext:render extensions="<%=invoker%>" context="<%=jspContext%>"
     233              wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
     234            <tbl:button
     235              image="help.png"
     236              onclick="<%="Main.openHelp('" + ID +"', 'permissiontemplate.view.properties')"%>"
     237              title="Help&hellip;"
     238              tooltip="Get help about this page"
     239            /> 
     240          </tbl:toolbar>
     241        </td>
     242      </tr>
     243      <tr>
     244        <th>Name</th>
    243245        <td><%=HTML.encodeTags(template.getName())%></td>
    244246      </tr>
    245247      <tr>
    246         <td class="prompt">Owner</td>
     248        <th>Owner</th>
    247249        <td><base:propertyvalue item="<%=template%>" property="owner"/></td>
    248250      </tr>
    249251      <tr>
    250         <td class="prompt">Description</td>
     252        <th>Permissions</th>
     253        <td><%=PermissionUtil.getFullPermissionNames(template)%></td>
     254      </tr>
     255      <tr>
     256        <th>Description</th>
    251257        <td><%=HTML.niceFormat(template.getDescription())%></td>
    252258      </tr>
     
    258264        <jsp:param name="title" value="Other items related to this template" />
    259265      </jsp:include>
    260       <%
    261       // Tables with users/groups/projects that this item is shared to
    262       MultiPermissions mp = new MultiPermissions(Collections.singleton(template));
    263       ItemResultList<User> users = mp.getUsers().list(dc);
    264       ItemResultList<Group> groups = mp.getGroups().list(dc);
    265       ItemResultList<Project> projects = mp.getProjects().list(dc);
    266       int totalShare = users.size() + groups.size() + projects.size();
    267      
    268       if (totalShare > 0)
    269       {
    270         %>
    271         <base:section
    272           id="sharedTo"
    273           title="<%="Permissions (" + totalShare + ")"%>"
    274           context="<%=cc%>"
    275           >
    276           <tbl:table
    277             id="itemsSharedTo"
    278            
    279             columns="all"
    280           >
    281             <tbl:columndef
    282               id="itemType"
    283               title="Item type"
    284             />
    285             <tbl:columndef
    286               id="name"
    287               title="Name"
    288             />
    289             <tbl:columndef
    290               id="permissions"
    291               title="Permissions"
    292             />
    293             <tbl:data>
    294               <tbl:columns>
    295               </tbl:columns>
    296               <tbl:rows>
    297               <%
    298               for (Project project : projects)
    299               {
    300                 Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
    301                 %>     
    302                 <tbl:row>
    303                   <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
    304                   <tbl:cell column="name"><base:icon
    305                     image="deleted.gif"
    306                     tooltip="This item has been scheduled for deletion"
    307                     visible="<%=project.isRemoved()%>"
    308                   /><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
    309                   <tbl:cell column="permissions">
    310                     <%=PermissionUtil.translatePermissionsToString(permissions)%>
    311                   </tbl:cell>
    312                 </tbl:row>
    313                 <%
    314               }
    315               for (Group group : groups)
    316               {
    317                 Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
    318                 %>
    319                 <tbl:row>             
    320                   <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
    321                   <tbl:cell column="name"><base:icon
    322                     image="deleted.gif"
    323                     tooltip="This item has been scheduled for deletion"
    324                     visible="<%=group.isRemoved()%>"
    325                   /><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
    326                   <tbl:cell column="permissions">
    327                     <%=PermissionUtil.translatePermissionsToString(permissions)%>
    328                   </tbl:cell>
    329                 </tbl:row>
    330                 <% 
    331               }
    332               for (User user : users)
    333               {
    334                 Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
    335                 %>
    336                 <tbl:row>             
    337                   <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
    338                   <tbl:cell column="name"><base:icon
    339                     image="deleted.gif"
    340                     tooltip="This item has been scheduled for deletion"
    341                     visible="<%=user.isRemoved()%>"
    342                   /><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
    343                   <tbl:cell column="permissions">
    344                     <%=PermissionUtil.translatePermissionsToString(permissions)%>
    345                   </tbl:cell>
    346                 </tbl:row>
    347                 <%
    348               }
    349               %>
    350               </tbl:rows>
    351             </tbl:data>
    352           </tbl:table>
    353         </base:section>
    354         <%
    355       }
    356       else
    357       {
    358         %>
    359         <h4>Permissions</h4>
    360         This permission template doesn't contain any permissions
    361         (or, you don't have permission to view them).
    362         <%
    363       }     
    364       %>
    365 
    366     </div>
     266      <jsp:include page="../../common/share/list_share.jsp">
     267        <jsp:param name="ID" value="<%=ID%>" />
     268        <jsp:param name="item_type" value="<%=itemType.name()%>" />
     269        <jsp:param name="item_id" value="<%=itemId%>" />
     270        <jsp:param name="title" value="Shared to" />
     271      </jsp:include>
    367272    </t:tab>
    368273    </t:tabcontrol>
  • trunk/www/views/physicalbioassays/view_bioassay.jsp

    r5937 r5939  
    174174  </base:head>
    175175  <base:body>
    176     <p>
    177     <p:path>
    178       <p:pathelement title="Physical bioassays" href="<%="index.jsp?ID="+ID%>" />
    179       <p:pathelement title="<%=HTML.encodeTags(pba.getName())%>" />
    180     </p:path>
    181     <t:tabcontrol id="main" active="<%=tab%>" switch="switchTab" remember="false">
     176    <p:path><p:pathelement
     177      title="Physical bioassays" href="<%="index.jsp?ID="+ID%>"
     178      /><p:pathelement title="<%=HTML.encodeTags(pba.getName())%>"
     179      /></p:path>
     180    <t:tabcontrol
     181      id="main"
     182      subclass="content mastertabcontrol"
     183      active="<%=tab%>" switch="switchTab" remember="false">
    182184    <t:tab id="properties" title="Properties">
    183    
    184     <tbl:toolbar
    185       >
    186       <tbl:button
    187         disabled="<%=writePermission ? false : true%>"
    188         image="edit.gif"
    189         onclick="editItem()"
    190         title="Edit&hellip;"
    191         tooltip="<%=writePermission ? "Edit this physical bioassay" : "You do not have permission to edit this physical bioassay"%>"
    192       />
    193       <tbl:button
    194         disabled="<%=deletePermission ? false : true%>"
    195         image="delete.gif"
    196         onclick="deleteItem()"
    197         title="Delete"
    198         visible="<%=!pba.isRemoved()%>"
    199         tooltip="<%=deletePermission ? "Delete this physical bioassay" : "You do not have permission to delete this physical bioassay"%>"
    200       />
    201       <tbl:button
    202         disabled="<%=writePermission ? false : true%>"
    203         image="restore.gif"
    204         onclick="restoreItem()"
    205         title="Restore"
    206         visible="<%=pba.isRemoved()%>"
    207         tooltip="<%=writePermission ? "Restore this physical bioassay" : "You do not have permission to restore this physical bioassay"%>"
    208       />
    209       <tbl:button
    210         disabled="<%=sharePermission ? false : true%>"
    211         image="share.gif"
    212         onclick="shareItem()"
    213         title="Share&hellip;"
    214         tooltip="<%=sharePermission ? "Share this physical bioassay to other user, groups and projects" : "You do not have permission to share this physical bioassay"%>"
    215       />
    216       <tbl:button
    217         disabled="<%=setOwnerPermission ? false : true%>"
    218         image="take_ownership.png"
    219         onclick="setOwner()"
    220         title="Set owner&hellip;"
    221         tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
    222       />
    223       <tbl:button
    224         image="add.png"
    225         onclick="newDerivedBioAssay()"
    226         title="New derived bioassay&hellip;"
    227         tooltip="Create a derived bioassay from this bioassay"
    228         visible="<%=sc.hasPermission(Permission.CREATE, Item.DERIVEDBIOASSAY) && usePermission%>"
    229       />
    230       <tbl:button
    231         image="import.gif"
    232         onclick="runPlugin('ImportItem')"
    233         title="Import&hellip;"
    234         tooltip="Import data"
    235         visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
    236       />
    237       <tbl:button
    238         image="export.gif"
    239         onclick="runPlugin('ExportItem')"
    240         title="Export&hellip;"
    241         tooltip="Export data"
    242         visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
    243       />
    244       <tbl:button
    245         image="runplugin.gif"
    246         onclick="runPlugin('RunPlugin')"
    247         title="Run plugin&hellip;"
    248         tooltip="Run a plugin"
    249         visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
    250       />
    251       <ext:render extensions="<%=invoker%>" context="<%=jspContext%>"
    252         wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
    253       <tbl:button
    254         image="help.png"
    255         onclick="<%="Main.openHelp('" + ID +"', 'physicalbioassay.view.properties')"%>"
    256         title="Help&hellip;"
    257         tooltip="Get help about this page"
    258       />
    259       </tbl:toolbar>
    260     <div class="boxedbottom">
    261       <div class="itemstatus">Permissions on this item: <i><%=PermissionUtil.getFullPermissionNames(pba)%></i></div>
    262       <%
    263       if (pba.isRemoved() || pba.isShared())
    264       {
    265         %>
    266         <div class="itemstatus">
     185      <div>
     186      <table class="fullform bottomborder">
     187      <tr>
     188        <th class="itemstatus">
    267189          <base:icon
    268             image="<%=deletePermanentlyPermission ? "deleted.gif" : "deleted_disabled.gif"%>"
    269             onclick="<%=deletePermanentlyPermission ? "deleteItemPermanently()" : null%>"
    270             tooltip="<%=deletePermanentlyPermission ? "Permanently delete this item" : null%>"
    271             visible="<%=isRemoved%>"> This item has been flagged for deletion<br></base:icon>
     190            image="shared.gif"
     191            visible="<%=pba.isShared()%>"
     192            tooltip="This item is shared to other users, groups and/or projects"
     193          />
     194          <base:icon
     195            image="deleted.gif"
     196            onclick="deleteItemPermanently()"
     197            tooltip="This item has been flagged for deletion. Click to delete it now."
     198            enabled="<%=deletePermanentlyPermission %>"
     199            visible="<%=isRemoved%>"
     200          />
    272201          <base:icon image="used.gif"
    273202            onclick="showUsingItems()"
    274             tooltip="Show the items that are using this one"
    275             visible="<%=isUsed%>"> This item is used by other items and can't be permanently deleted<br></base:icon>
    276           <base:icon image="shared.gif"
    277             visible="<%=pba.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    278         </div>
    279         <%
    280       }
    281       %>
    282       <table class="form" cellspacing="0">
    283       <tr>
    284         <td class="prompt">Name</td>
     203            tooltip="This item is used by other items and can't be permanently deleted. Show the items that are using this one"
     204            visible="<%=isRemoved && isUsed%>" />
     205        </th>
     206        <td style="padding: 0px;">
     207          <tbl:toolbar subclass="bottomborder">
     208            <tbl:button
     209              disabled="<%=writePermission ? false : true%>"
     210              image="edit.gif"
     211              onclick="editItem()"
     212              title="Edit&hellip;"
     213              tooltip="<%=writePermission ? "Edit this physical bioassay" : "You do not have permission to edit this physical bioassay"%>"
     214            />
     215            <tbl:button
     216              disabled="<%=deletePermission ? false : true%>"
     217              image="delete.gif"
     218              onclick="deleteItem()"
     219              title="Delete"
     220              visible="<%=!pba.isRemoved()%>"
     221              tooltip="<%=deletePermission ? "Delete this physical bioassay" : "You do not have permission to delete this physical bioassay"%>"
     222            />
     223            <tbl:button
     224              disabled="<%=writePermission ? false : true%>"
     225              image="restore.gif"
     226              onclick="restoreItem()"
     227              title="Restore"
     228              visible="<%=pba.isRemoved()%>"
     229              tooltip="<%=writePermission ? "Restore this physical bioassay" : "You do not have permission to restore this physical bioassay"%>"
     230            />
     231            <tbl:button
     232              disabled="<%=sharePermission ? false : true%>"
     233              image="share.gif"
     234              onclick="shareItem()"
     235              title="Share&hellip;"
     236              tooltip="<%=sharePermission ? "Share this physical bioassay to other user, groups and projects" : "You do not have permission to share this physical bioassay"%>"
     237            />
     238            <tbl:button
     239              disabled="<%=setOwnerPermission ? false : true%>"
     240              image="take_ownership.png"
     241              onclick="setOwner()"
     242              title="Set owner&hellip;"
     243              tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
     244            />
     245            <tbl:button
     246              image="add.png"
     247              onclick="newDerivedBioAssay()"
     248              title="New derived bioassay&hellip;"
     249              tooltip="Create a derived bioassay from this bioassay"
     250              visible="<%=sc.hasPermission(Permission.CREATE, Item.DERIVEDBIOASSAY) && usePermission%>"
     251            />
     252            <tbl:button
     253              image="import.gif"
     254              onclick="runPlugin('ImportItem')"
     255              title="Import&hellip;"
     256              tooltip="Import data"
     257              visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
     258            />
     259            <tbl:button
     260              image="export.gif"
     261              onclick="runPlugin('ExportItem')"
     262              title="Export&hellip;"
     263              tooltip="Export data"
     264              visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
     265            />
     266            <tbl:button
     267              image="runplugin.gif"
     268              onclick="runPlugin('RunPlugin')"
     269              title="Run plugin&hellip;"
     270              tooltip="Run a plugin"
     271              visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
     272            />
     273            <ext:render extensions="<%=invoker%>" context="<%=jspContext%>"
     274              wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
     275            <tbl:button
     276              image="help.png"
     277              onclick="<%="Main.openHelp('" + ID +"', 'physicalbioassay.view.properties')"%>"
     278              title="Help&hellip;"
     279              tooltip="Get help about this page"
     280            />
     281          </tbl:toolbar>
     282        </td>
     283      </tr>
     284      <tr>
     285        <th>Name</th>
    285286        <td><%=HTML.encodeTags(pba.getName())%></td>
    286287      </tr>
    287288      <tr>
    288         <td class="prompt">Type</td>
     289        <th>Type</th>
    289290        <td><base:propertyvalue item="<%=pba%>" property="itemSubtype" /></td>
    290291      </tr>
    291292      <tr>
    292         <td class="prompt">Size</td>
     293        <th>Size</th>
    293294        <td><%=pba.getSize()%></td>
    294295      </tr>
    295296      <tr>
    296         <td class="prompt">Array slide</td>
     297        <th>Array slide</th>
    297298        <td><base:propertyvalue item="<%=pba%>" property="arraySlide" /></td>
    298299      </tr>
    299300      <tr>
    300         <td class="subprompt">-barcode</td>
     301        <th class="subprompt">-barcode</th>
    301302        <td><base:propertyvalue item="<%=pba%>" property="arraySlide.barcode" /></td>
    302303      </tr>
    303304      <tr>
    304         <td class="prompt">Created</td>
     305        <th>Created</th>
    305306        <td><%=dateFormatter.format(creationEvent.getEventDate())%></td>
    306307      </tr>
    307308      <tr>
    308         <td class="prompt">Registered</td>
     309        <th>Registered</th>
    309310        <td><%=dateFormatter.format(creationEvent.getEntryDate())%></td>
    310311      </tr>
    311312      <tr>
    312         <td class="prompt">Protocol</td>
     313        <th>Protocol</th>
    313314        <td><base:propertyvalue item="<%=creationEvent%>" property="protocol" /></td>
    314315      </tr>
    315316      <tr>
    316         <td class="prompt">Hardware</td>
     317        <th>Hardware</th>
    317318        <td><base:propertyvalue item="<%=creationEvent%>" property="hardware" /></td>
    318319      </tr>
    319320      <tr>
    320         <td class="prompt">Owner</td>
     321        <th>Owner</th>
    321322        <td><base:propertyvalue item="<%=pba%>" property="owner" /></td>
    322323      </tr>
    323324      <tr>
    324         <td class="prompt">Description</td>
     325        <th>Permissions</th>
     326        <td><%=PermissionUtil.getFullPermissionNames(pba)%></td>
     327      </tr>
     328      <tr>
     329        <th>Description</th>
    325330        <td><%=HTML.niceFormat(pba.getDescription())%></td>
    326331      </tr>
    327332      </table>
     333      </div>
    328334     
    329335      <%
     
    332338      sourceQuery.order(Orders.asc(Hql.property("bioMaterial.name")));
    333339      ResultList<BioMaterialEventSource> sources = sourceQuery.list(dc);
    334       if (sources.size() == 0)
    335       {
    336         %>
    337         <h4>Extracts</h4>
    338         No extracts has been added to this physical bioassay
    339         (or, you don't have permission to view them).
     340      %>
     341      <base:section
     342        id="extractSection"
     343        title="<%="Extracts (" + sources.size() + ")"%>"
     344        context="<%=cc%>"
     345        >
    340346        <%
    341       }
    342       else
    343       {
    344         %>
    345         <base:section
    346           id="extractSection"
    347           title="<%="Extracts (" + sources.size() + ")"%>"
    348           context="<%=cc%>"
    349           >
     347        if (sources.size() == 0)
     348        {
     349          %>
     350          <div class="messagecontainer note">
     351          No extracts has been added to this physical bioassay
     352          (or, you don't have permission to view them).
     353          </div>
     354          <%
     355        }
     356        else
     357        {
     358          %>
    350359          <tbl:table
    351360            id="extracts"
    352            
    353361            columns="all"
    354362            >
    355           <tbl:columndef
    356             id="position"
    357             title="Position"
    358             show="<%=pba.getSize() > 1 ? "always" : "never"%>"
    359           />
    360           <tbl:columndef
    361             id="name"
    362             title="Name"
    363           />
    364           <tbl:columndef
    365             id="tag"
    366             title="Tag"
    367           />
    368           <tbl:columndef
    369             id="quantity"
    370             title="Used quantity (µg)"
    371           />
    372           <tbl:columndef
    373             id="description"
    374             title="Description"
    375           />
    376           <tbl:data>
    377             <tbl:columns>
    378             </tbl:columns>
    379             <tbl:rows>
    380             <%
    381             for (BioMaterialEventSource item : sources)
    382             {
    383               BioMaterial bm = null;
    384               try
     363            <tbl:columndef
     364              id="position"
     365              title="Position"
     366              show="<%=pba.getSize() > 1 ? "always" : "never"%>"
     367            />
     368            <tbl:columndef
     369              id="name"
     370              title="Name"
     371            />
     372            <tbl:columndef
     373              id="tag"
     374              title="Tag"
     375            />
     376            <tbl:columndef
     377              id="quantity"
     378              title="Used quantity (µg)"
     379            />
     380            <tbl:columndef
     381              id="description"
     382              title="Description"
     383            />
     384            <tbl:data>
     385              <tbl:headers>
     386                <tbl:headerrow>
     387                  <tbl:columnheaders />
     388                </tbl:headerrow>
     389              </tbl:headers>
     390              <tbl:rows>
     391              <%
     392              for (BioMaterialEventSource item : sources)
    385393              {
    386                 bm = item.getBioMaterial();
     394                BioMaterial bm = null;
     395                try
     396                {
     397                  bm = item.getBioMaterial();
     398                }
     399                catch (PermissionDeniedException ex)
     400                {}
     401                %>
     402                <tbl:row>
     403                  <tbl:cell column="position"><%=item.getPosition()%></tbl:cell>
     404                  <tbl:cell column="name"><base:icon
     405                      image="deleted.gif"
     406                      tooltip="This item has been scheduled for deletion"
     407                      visible="<%=bm != null && bm.isRemoved()%>"
     408                    /><%=Base.getLinkedName(ID, bm, bm == null, true)%></tbl:cell>
     409                  <tbl:cell column="tag" visible="<%=bm != null && bm.getType() == Item.EXTRACT%>"><base:propertyvalue item="<%=bm%>" property="tag" /></tbl:cell>
     410                  <tbl:cell column="quantity"><%=Values.formatNumber(item.getUsedQuantity(), 2)%></tbl:cell>
     411                  <tbl:cell column="description"><%=HTML.encodeTags(bm == null ? "" : bm.getDescription())%></tbl:cell>
     412                </tbl:row>
     413                <%
    387414              }
    388               catch (PermissionDeniedException ex)
    389               {}
    390415              %>
    391               <tbl:row>
    392                 <tbl:cell column="position"><%=item.getPosition()%></tbl:cell>
    393                 <tbl:cell column="name"><base:icon
    394                     image="deleted.gif"
    395                     tooltip="This item has been scheduled for deletion"
    396                     visible="<%=bm != null && bm.isRemoved()%>"
    397                   /><%=Base.getLinkedName(ID, bm, bm == null, true)%></tbl:cell>
    398                 <tbl:cell column="tag" visible="<%=bm != null && bm.getType() == Item.EXTRACT%>"><base:propertyvalue item="<%=bm%>" property="tag" /></tbl:cell>
    399                 <tbl:cell column="quantity"><%=Values.formatNumber(item.getUsedQuantity(), 2)%></tbl:cell>
    400                 <tbl:cell column="description"><%=HTML.encodeTags(bm == null ? "" : bm.getDescription())%></tbl:cell>
    401               </tbl:row>
    402               <%
    403             }
    404             %>
    405             </tbl:rows>
    406           </tbl:data>
     416              </tbl:rows>
     417            </tbl:data>
    407418          </tbl:table>
    408         </base:section>
    409         <%
    410       }
    411       %>
    412 
     419          <%
     420        }
     421        %>
     422      </base:section>
    413423      <%
    414424      ItemQuery<DerivedBioAssay> childQuery = pba.getRootDerivedBioAssays();
     
    416426      childQuery.order(Orders.asc(Hql.property("name")));
    417427      ItemResultList<DerivedBioAssay> children = childQuery.list(dc);
    418       if (children.size() == 0)
    419       {
    420         %>
    421         <h4>Derived bioassays</h4>
    422         This bioassay doesn't have any derived bioassays.
     428      %>
     429      <base:section
     430        id="children"
     431        title="<%="Derived bioassays (" + children.size() + ")"%>"
     432        context="<%=cc%>"
     433        >
    423434        <%
    424       }
    425       else
    426       {
    427         %>
    428         <base:section
    429           id="children"
    430           title="<%="Derived bioassays (" + children.size() + ")"%>"
    431           context="<%=cc%>"
    432           >
     435        if (children.size() == 0)
     436        {
     437          %>
     438          <div class="messagecontainer note">
     439          This bioassay doesn't have any derived bioassays.
     440          </div>
     441          <%
     442        }
     443        else
     444        {
     445          %>
    433446          <tbl:table
    434447            id="children"
    435            
    436448            columns="all"
    437449            >
    438           <tbl:columndef
    439             id="name"
    440             title="Name"
    441           />
    442           <tbl:columndef
    443             id="itemSubtype"
    444             title="Type"
    445           />
    446           <tbl:columndef
    447             id="description"
    448             title="Description"
    449           />
    450           <tbl:data>
    451             <tbl:columns>
    452             </tbl:columns>
    453             <tbl:rows>
    454             <%
    455             for (DerivedBioAssay item : children)
    456             {
     450            <tbl:columndef
     451              id="name"
     452              title="Name"
     453            />
     454            <tbl:columndef
     455              id="itemSubtype"
     456              title="Type"
     457            />
     458            <tbl:columndef
     459              id="description"
     460              title="Description"
     461            />
     462            <tbl:data>
     463              <tbl:headers>
     464                <tbl:headerrow>
     465                  <tbl:columnheaders />
     466                </tbl:headerrow>
     467              </tbl:headers>
     468              <tbl:rows>
     469              <%
     470              for (DerivedBioAssay item : children)
     471              {
     472                %>
     473                <tbl:row>
     474                  <tbl:cell column="name"><%=Base.getLinkedName(ID, item, false, true)%></tbl:cell>
     475                  <tbl:cell column="itemSubtype"><base:propertyvalue item="<%=item%>" property="itemSubtype" /></tbl:cell>
     476                  <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
     477                </tbl:row>
     478                <%
     479              }
    457480              %>
    458               <tbl:row>
    459                 <tbl:cell column="name"><%=Base.getLinkedName(ID, item, false, true)%></tbl:cell>
    460                 <tbl:cell column="itemSubtype"><base:propertyvalue item="<%=item%>" property="itemSubtype" /></tbl:cell>
    461                 <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
    462               </tbl:row>
    463               <%
    464             }
    465             %>
    466             </tbl:rows>
    467           </tbl:data>
     481              </tbl:rows>
     482            </tbl:data>
    468483          </tbl:table>
    469         </base:section>
    470         <%
    471       }
    472       %>
    473 
    474 
     484          <%
     485        }
     486        %>
     487      </base:section>
    475488      <jsp:include page="../../common/anytoany/list_anytoany.jsp">
    476489        <jsp:param name="ID" value="<%=ID%>" />
  • trunk/www/views/rawbioassays/rawdata/view_rawdata.jsp

    r5924 r5939  
    271271                %>
    272272                  <%=needsTr ? "<tr><th>" : "<th class=\"leftborder\">" %>
    273                   <%=HTML.encodeTags(ep.getTitle())%></td>
     273                  <%=HTML.encodeTags(ep.getTitle())%></th>
    274274                  <td><%=value%></td>
    275275                  <%=needsTr ? "" : "</tr>"%>
  • trunk/www/views/rawbioassays/view_rawbioassay.jsp

    r5937 r5939  
    202202  </base:head>
    203203  <base:body>
    204     <p>
    205     <p:path>
    206       <p:pathelement title="Raw bioassays" href="<%="index.jsp?ID="+ID%>" />
    207       <p:pathelement title="<%=HTML.encodeTags(rawBioAssay.getName())%>" />
    208     </p:path>
     204    <p:path><p:pathelement
     205      title="Raw bioassays" href="<%="index.jsp?ID="+ID%>"
     206      /><p:pathelement title="<%=HTML.encodeTags(rawBioAssay.getName())%>"
     207      /></p:path>
    209208   
    210     <t:tabcontrol id="main" active="<%=tab%>" switch="switchTab" remember="false">
     209    <t:tabcontrol
     210      id="main"
     211      subclass="content mastertabcontrol"
     212      active="<%=tab%>" switch="switchTab" remember="false">
    211213    <t:tab id="properties" title="Properties">
    212    
    213     <tbl:toolbar
    214       >
    215       <tbl:button
    216         disabled="<%=writePermission ? false : true%>"
    217         image="edit.gif"
    218         onclick="editItem()"
    219         title="Edit&hellip;"
    220         tooltip="<%=writePermission ? "Edit this raw bioassay" : "You do not have permission to edit this raw bioassay"%>"
    221       />
    222       <tbl:button
    223         disabled="<%=deletePermission ? false : true%>"
    224         image="delete.gif"
    225         onclick="deleteItem()"
    226         title="Delete"
    227         visible="<%=!rawBioAssay.isRemoved()%>"
    228         tooltip="<%=deletePermission ? "Delete this raw bioassay" : "You do not have permission to delete this rawbioassay"%>"
    229       />
    230       <tbl:button
    231         disabled="<%=writePermission ? false : true%>"
    232         image="restore.gif"
    233         onclick="restoreItem()"
    234         title="Restore"
    235         visible="<%=rawBioAssay.isRemoved()%>"
    236         tooltip="<%=writePermission ? "Restore this raw bioassay" : "You do not have permission to restore this rawbioassay"%>"
    237       />
    238       <tbl:button
    239         disabled="<%=sharePermission ? false : true%>"
    240         image="share.gif"
    241         onclick="shareItem()"
    242         title="Share&hellip;"
    243         tooltip="<%=sharePermission ? "Share this raw bioassay to other user, groups and projects" : "You do not have permission to share this raw bioassay"%>"
    244       />
    245       <tbl:button
    246         disabled="<%=setOwnerPermission ? false : true%>"
    247         image="take_ownership.png"
    248         onclick="setOwner()"
    249         title="Set owner&hellip;"
    250         tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
    251       />
    252       <tbl:button
    253         image="import.gif"
    254         onclick="runPlugin('ImportItem')"
    255         title="Import&hellip;"
    256         tooltip="Import data"
    257         visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
    258       />
    259       <tbl:button
    260         image="export.gif"
    261         onclick="runPlugin('ExportItem')"
    262         title="Export&hellip;"
    263         tooltip="Export data"
    264         visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
    265       />
    266       <tbl:button
    267         image="runplugin.gif"
    268         onclick="runPlugin('RunPlugin')"
    269         title="Run plugin&hellip;"
    270         tooltip="Run a plugin"
    271         visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
    272       />
    273       <tbl:button
    274         onclick="editSpotImages()"
    275         image="runplugin.gif"
    276         title="Create spot images&hellip;"
    277         visible="<%=writePermission && rawBioAssay.getNumDbSpots() > 0%>"
    278       />
    279       <ext:render extensions="<%=invoker%>" context="<%=jspContext%>"
    280         wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
    281       <tbl:button
    282         image="help.png"
    283         onclick="<%="Main.openHelp('" + ID +"', 'rawbioassay.view.properties')"%>"
    284         title="Help&hellip;"
    285         tooltip="Get help about this page"
    286       />
    287       </tbl:toolbar>
    288     <div class="boxedbottom">
    289       <div class="itemstatus">Permissions on this item: <i><%=PermissionUtil.getFullPermissionNames(rawBioAssay)%></i></div>
    290       <%
    291       if (rawBioAssay.isRemoved() || rawBioAssay.isShared())
    292       {
    293         %>
    294         <div class="itemstatus">
     214      <div>
     215      <table class="fullform">
     216      <tr>
     217        <th class="itemstatus">
    295218          <base:icon
    296             image="<%=deletePermanentlyPermission ? "deleted.gif" : "deleted_disabled.gif"%>"
    297             onclick="<%=deletePermanentlyPermission ? "deleteItemPermanently()" : null%>"
    298             tooltip="<%=deletePermanentlyPermission ? "Permanently delete this item" : null%>"
    299             visible="<%=isRemoved%>"> This item has been flagged for deletion<br></base:icon>
     219            image="shared.gif"
     220            visible="<%=rawBioAssay.isShared()%>"
     221            tooltip="This item is shared to other users, groups and/or projects"
     222          />
     223          <base:icon
     224            image="deleted.gif"
     225            onclick="deleteItemPermanently()"
     226            tooltip="This item has been flagged for deletion. Click to delete it now."
     227            enabled="<%=deletePermanentlyPermission %>"
     228            visible="<%=isRemoved%>"
     229          />
    300230          <base:icon image="used.gif"
    301231            onclick="showUsingItems()"
    302             tooltip="Show the items that are using this one"
    303             visible="<%=isUsed%>"> This item is used by other items and can't be permanently deleted<br></base:icon>
    304           <base:icon image="shared.gif"
    305             visible="<%=rawBioAssay.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    306         </div>
     232            tooltip="This item is used by other items and can't be permanently deleted. Show the items that are using this one"
     233            visible="<%=isRemoved && isUsed%>" />
     234        </th>
     235        <td style="padding: 0px;">
     236          <tbl:toolbar subclass="bottomborder">
     237            <tbl:button
     238              disabled="<%=writePermission ? false : true%>"
     239              image="edit.gif"
     240              onclick="editItem()"
     241              title="Edit&hellip;"
     242              tooltip="<%=writePermission ? "Edit this raw bioassay" : "You do not have permission to edit this raw bioassay"%>"
     243            />
     244            <tbl:button
     245              disabled="<%=deletePermission ? false : true%>"
     246              image="delete.gif"
     247              onclick="deleteItem()"
     248              title="Delete"
     249              visible="<%=!rawBioAssay.isRemoved()%>"
     250              tooltip="<%=deletePermission ? "Delete this raw bioassay" : "You do not have permission to delete this rawbioassay"%>"
     251            />
     252            <tbl:button
     253              disabled="<%=writePermission ? false : true%>"
     254              image="restore.gif"
     255              onclick="restoreItem()"
     256              title="Restore"
     257              visible="<%=rawBioAssay.isRemoved()%>"
     258              tooltip="<%=writePermission ? "Restore this raw bioassay" : "You do not have permission to restore this rawbioassay"%>"
     259            />
     260            <tbl:button
     261              disabled="<%=sharePermission ? false : true%>"
     262              image="share.gif"
     263              onclick="shareItem()"
     264              title="Share&hellip;"
     265              tooltip="<%=sharePermission ? "Share this raw bioassay to other user, groups and projects" : "You do not have permission to share this raw bioassay"%>"
     266            />
     267            <tbl:button
     268              disabled="<%=setOwnerPermission ? false : true%>"
     269              image="take_ownership.png"
     270              onclick="setOwner()"
     271              title="Set owner&hellip;"
     272              tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
     273            />
     274            <tbl:button
     275              image="import.gif"
     276              onclick="runPlugin('ImportItem')"
     277              title="Import&hellip;"
     278              tooltip="Import data"
     279              visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
     280            />
     281            <tbl:button
     282              image="export.gif"
     283              onclick="runPlugin('ExportItem')"
     284              title="Export&hellip;"
     285              tooltip="Export data"
     286              visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
     287            />
     288            <tbl:button
     289              image="runplugin.gif"
     290              onclick="runPlugin('RunPlugin')"
     291              title="Run plugin&hellip;"
     292              tooltip="Run a plugin"
     293              visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
     294            />
     295            <tbl:button
     296              onclick="editSpotImages()"
     297              image="runplugin.gif"
     298              title="Create spot images&hellip;"
     299              visible="<%=writePermission && rawBioAssay.getNumDbSpots() > 0%>"
     300            />
     301            <ext:render extensions="<%=invoker%>" context="<%=jspContext%>"
     302              wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
     303            <tbl:button
     304              image="help.png"
     305              onclick="<%="Main.openHelp('" + ID +"', 'rawbioassay.view.properties')"%>"
     306              title="Help&hellip;"
     307              tooltip="Get help about this page"
     308            />
     309          </tbl:toolbar>
     310        </td>
     311      </tr>
     312    </table>
     313    <table style="width: 100%; height: 20em;" class="bottomborder">
     314    <tr valign="top">
     315      <td style="width: 50%; height: 100%;">
     316        <table class="fullform" >
     317        <tr>
     318          <th>Name</th>
     319          <td><%=HTML.encodeTags(rawBioAssay.getName())%></td>
     320        </tr>
     321        <tr>
     322          <th>Registered</th>
     323          <td><%=dateFormatter.format(rawBioAssay.getEntryDate())%></td>
     324        </tr>
     325        <tr>
     326          <th>Platform</th>
     327          <td><base:propertyvalue item="<%=rawBioAssay%>" property="platform" /></td>
     328        </tr>
     329        <tr>
     330          <th>Variant</th>
     331          <td><base:propertyvalue item="<%=rawBioAssay%>" property="variant" /></td>
     332        </tr>
     333        <tr>
     334          <th>Raw data type</th>
     335          <td><base:catch><%=HTML.encodeTags(rawBioAssay.getRawDataType().getName())%></base:catch></td>
     336        </tr>
     337        <tr>
     338          <th>Spots</th>
     339          <td><%=rawBioAssay.hasData() ? "yes (db: " + rawBioAssay.getNumDbSpots() +
     340              "; file: " + rawBioAssay.getNumFileSpots() + ")" : "no"%></td>
     341        </tr>
     342        <tr>
     343          <th>Parent bioassay</th>
     344          <td><base:propertyvalue item="<%=rawBioAssay%>" property="parentBioAssay" /></td>
     345        </tr>
     346        <tr>
     347          <th>Parent extract</th>
     348          <td><base:propertyvalue item="<%=rawBioAssay%>" property="parentExtract" /></td>
     349        </tr>
     350        <tr>
     351          <th>Protocol</th>
     352          <td><base:propertyvalue item="<%=rawBioAssay%>" property="protocol" /></td>
     353        </tr>
     354        <tr>
     355          <th>Software</th>
     356          <td><base:propertyvalue item="<%=rawBioAssay%>" property="software" /></td>
     357        </tr>
     358        <tr>
     359          <th>Array design</th>
     360          <td><base:propertyvalue item="<%=rawBioAssay%>" property="arrayDesign" /></td>
     361        </tr>
     362        <tr>
     363          <th>Owner</th>
     364          <td><base:propertyvalue item="<%=rawBioAssay%>" property="owner" /></td>
     365        </tr>
     366        <tr class="dynamic">
     367          <th>Description</th>
     368          <td><%=HTML.niceFormat(rawBioAssay.getDescription())%></td>
     369        </tr>
     370        </table>
     371      </td>
     372      <td style="width: 50%; height: 100%;" class="leftborder">
     373        <table class="fullform">
     374        <tbody class="sectionheader">
     375          <tr>
     376            <th colspan="4">Raw data import</th>
     377          </tr>
     378        </tbody>
     379        <tr>
     380          <th>Job</th>
     381          <td colspan="3"><%=Base.getLinkedName(ID, job, !readJob, true)%></td>
     382        </tr>
     383        <tr>
     384          <th>Date / time</th>
     385          <td colspan="3"><%=job == null ? "" : dateTimeFormatter.format(job.getEnded())%></td>
     386        </tr>
     387        <tr>
     388          <th>Plugin</th>
     389          <td colspan="3"><base:propertyvalue item="<%=rawBioAssay%>" property="job.pluginDefinition" /></td>
     390        </tr>
     391        <tr>
     392          <th>Configuration / file format</th>
     393          <td colspan="3"><base:propertyvalue item="<%=rawBioAssay%>" property="job.pluginConfiguration" /></td>
     394        </tr>
     395        <tbody class="sectionheader">
     396          <tr>
     397            <th colspan="4">Spot images</th>
     398          </tr>
     399        </tbody>
    307400        <%
    308       }
    309       %>
    310      
    311       <table width="100%">
    312       <tr >
    313       <td>
    314      
    315       <table class="form" cellspacing="0">
    316       <tr>
    317         <td class="prompt">Name</td>
    318         <td><%=HTML.encodeTags(rawBioAssay.getName())%></td>
    319       </tr>
    320       <tr>
    321         <td class="prompt">Registered</td>
    322         <td><%=dateFormatter.format(rawBioAssay.getEntryDate())%></td>
    323       </tr>
    324       <tr>
    325         <td class="prompt">Platform</td>
    326         <td><base:propertyvalue item="<%=rawBioAssay%>" property="platform" /></td>
    327       </tr>
    328       <tr>
    329         <td class="prompt">Variant</td>
    330         <td><base:propertyvalue item="<%=rawBioAssay%>" property="variant" /></td>
    331       </tr>
    332       <tr>
    333         <td class="prompt">Raw data type</td>
    334         <td><base:catch><%=HTML.encodeTags(rawBioAssay.getRawDataType().getName())%></base:catch></td>
    335       </tr>
    336       <tr>
    337         <td class="prompt">Spots</td>
    338         <td><%=rawBioAssay.hasData() ? "yes (db: " + rawBioAssay.getNumDbSpots() +
    339             "; file: " + rawBioAssay.getNumFileSpots() + ")" : "no"%></td>
    340       </tr>
    341       <tr>
    342         <td class="prompt">Parent bioassay</td>
    343         <td><base:propertyvalue item="<%=rawBioAssay%>" property="parentBioAssay" /></td>
    344       </tr>
    345       <tr>
    346         <td class="prompt">Parent extract</td>
    347         <td><base:propertyvalue item="<%=rawBioAssay%>" property="parentExtract" /></td>
    348       </tr>
    349       <tr>
    350         <td class="prompt">Protocol</td>
    351         <td><base:propertyvalue item="<%=rawBioAssay%>" property="protocol" /></td>
    352       </tr>
    353       <tr>
    354         <td class="prompt">Software</td>
    355         <td><base:propertyvalue item="<%=rawBioAssay%>" property="software" /></td>
    356       </tr>
    357       <tr>
    358         <td class="prompt">Array design</td>
    359         <td><base:propertyvalue item="<%=rawBioAssay%>" property="arrayDesign" /></td>
    360       </tr>
    361       <tr>
    362         <td class="prompt">Owner</td>
    363         <td><base:propertyvalue item="<%=rawBioAssay%>" property="owner" /></td>
    364       </tr>
    365       <tr>
    366         <td class="prompt">Description</td>
    367         <td><%=HTML.niceFormat(rawBioAssay.getDescription())%></td>
    368       </tr>
    369       </table>
    370      
    371       </td>
    372       <td>
    373      
    374       <%
    375       if (rawBioAssay.getNumDbSpots() > 0)
    376       {
     401        if (!rawBioAssay.hasSpotImages())
     402        {
     403          %>
     404          <tr class="dynamic">
     405            <td colspan="4">
     406              <div class="messagecontainer note">
     407              No spot images has been created for this raw bioassay.
     408              </div>
     409            </td>
     410          </tr>
     411          <%
     412        }
     413        else
     414        {
     415          SpotImages spi = rawBioAssay.getSpotImages();
     416          %>
     417          <tr>
     418            <th>X scale</th>
     419            <td><%=spi.getXScale()%></td>
     420            <th class="leftborder">Spot size</th>
     421            <td><%=spi.getSpotsize()%></td>
     422          </tr>
     423          <tr>
     424            <th>Y scale</th>
     425            <td><%=spi.getYScale()%></td>
     426            <th class="leftborder">Gamma correction</th>
     427            <td><%=spi.getGamma()%></td>
     428          </tr>
     429          <tr>
     430            <th>X offset</th>
     431            <td><%=spi.getXOffset()%></td>
     432            <th class="leftborder">Quality</th>
     433            <td><%=spi.getQuality()%></td>
     434          </tr>
     435          <tr>
     436            <th>Y offset</th>
     437            <td><%=spi.getYOffset()%></td>
     438            <th class="leftborder"></th>
     439            <td></td>
     440          </tr>
     441          <tr>
     442            <th class="topborder">Red image file</th>
     443            <td colspan="3" class="topborder"><base:propertyvalue item="<%=spi%>" property="redImageFile" /></td>
     444          </tr>
     445          <tr>
     446            <th>Green image file</th>
     447            <td colspan="3"><base:propertyvalue item="<%=spi%>" property="greenImageFile" /></td>
     448          </tr>
     449          <tr>
     450            <th>Blue image file</th>
     451            <td colspan="3"><base:propertyvalue item="<%=spi%>" property="blueImageFile" /></td>
     452          </tr>
     453          <tr>
     454            <th>Spot images file</th>
     455            <td colspan="3"><base:propertyvalue item="<%=spi%>" property="spotImagesFile" /></td>
     456          </tr>
     457          <%
     458        }
    377459        %>
    378         <h4 style="margin-top: 0px;">Raw data import</h4>
    379         <table class="form" cellspacing="0">
    380         <tr>
    381           <td class="prompt">Job</td>
    382           <td><%=Base.getLinkedName(ID, job, !readJob, true)%></td>
    383         </tr>
    384         <tr>
    385           <td class="prompt">Date / time</td>
    386           <td><%=job == null ? "" : dateTimeFormatter.format(job.getEnded())%></td>
    387         </tr>
    388         <tr>
    389           <td class="prompt">Plugin</td>
    390           <td><base:propertyvalue item="<%=rawBioAssay%>" property="job.pluginDefinition" /></td>
    391         </tr>
    392         <tr>
    393           <td class="prompt">Configuration / file format</td>
    394           <td><base:propertyvalue item="<%=rawBioAssay%>" property="job.pluginConfiguration" /></td>
    395         </tr>
    396460        </table>
    397         <%
    398       }
    399       %>
    400      
    401       <h4>Spot images</h4>
    402       <%
    403       if (!rawBioAssay.hasSpotImages())
    404       {
    405         %>
    406         No spot images has been created for this raw bioassay.
    407         <%
    408       }
    409       else
    410       {
    411         SpotImages spi = rawBioAssay.getSpotImages();
    412         %>
    413         <table class="form" cellspacing="0">
    414         <tr>
    415           <td class="prompt">X scale</td>
    416           <td><%=spi.getXScale()%></td>
    417           <td>&nbsp;&nbsp;</td>
    418           <td class="prompt">Spot size</td>
    419           <td><%=spi.getSpotsize()%></td>
    420         </tr>
    421         <tr>
    422           <td class="prompt">Y scale</td>
    423           <td><%=spi.getYScale()%></td>
    424           <td>&nbsp;&nbsp;</td>
    425           <td class="prompt">Gamma correction</td>
    426           <td><%=spi.getGamma()%></td>
    427         </tr>
    428         <tr>
    429           <td class="prompt">X offset</td>
    430           <td><%=spi.getXOffset()%></td>
    431           <td>&nbsp;&nbsp;</td>
    432           <td class="prompt">Quality</td>
    433           <td><%=spi.getQuality()%></td>
    434         </tr>
    435         <tr>
    436           <td class="prompt">Y offset</td>
    437           <td><%=spi.getYOffset()%></td>
    438         </tr>
    439         <tr>
    440           <td class="prompt">Red image file</td>
    441           <td><base:propertyvalue item="<%=spi%>" property="redImageFile" /></td>
    442         </tr>
    443         <tr>
    444           <td class="prompt">Green image file</td>
    445           <td><base:propertyvalue item="<%=spi%>" property="greenImageFile" /></td>
    446         </tr>
    447         <tr>
    448           <td class="prompt">Blue image file</td>
    449           <td><base:propertyvalue item="<%=spi%>" property="blueImageFile" /></td>
    450         </tr>
    451         <tr>
    452           <td class="prompt">Spot images file</td>
    453           <td><base:propertyvalue item="<%=spi%>" property="spotImagesFile" /></td>
    454         </tr>
    455         </table>
    456         <%
    457       }
    458       %>
    459 
    460461      </td>
    461462      </tr>
    462463      </table>
     464      </div>
    463465     
    464466      <jsp:include page="../../common/datafiles/list_files.jsp">
     
    470472      <%
    471473      Set<String> names = rawBioAssay.getHeaderNames();
    472       if (names == null || names.size() == 0)
    473       {
    474         %>
    475         <h4>Raw data headers</h4>
    476         None.
     474      %>
     475      <base:section
     476        id="headers"
     477        title="<%="Raw data headers (" + (names == null ? 0 : names.size()) + ")"%>"
     478        context="<%=cc%>"
     479        >
    477480        <%
    478       }
    479       else
    480       {
    481         %>
    482         <base:section
    483           id="headers"
    484           title="<%="Raw data headers (" + (names == null ? 0 : names.size()) + ")"%>"
    485           context="<%=cc%>"
    486           >
    487           <table class="form" cellspacing="0">
     481        if (names == null || names.size() == 0)
     482        {
     483          %>
     484          <div class="messagecontainer note">
     485          None.
     486          </div>
     487          <%
     488        }
     489        else
     490        {
     491          %>
     492          <table class="fullform fullborder">
    488493          <%
    489494          boolean needsTr = true;
     
    493498            {
    494499              %>
    495               <%=needsTr ? "<tr>" : "" %>
    496                 <td class="prompt"><%=HTML.encodeTags(name)%></td>
     500              <%=needsTr ? "<tr><th>" : "<th class=\"leftborder\">" %>
     501                <%=HTML.encodeTags(name)%></th>
    497502                <td><%=HTML.encodeTags(rawBioAssay.getHeader(name))%></td>
    498                 <td>&nbsp;&nbsp;</td>
    499503              <%=needsTr ? "" : "</tr>"%>
    500504              <%
     
    502506            }
    503507            %>
    504             <%=needsTr ? "" : "</tr>"%>
     508            <%=needsTr ? "" : "<th class=\"leftborder\"></th><td></td></tr>"%>
    505509            <%
    506510          }
    507511          %>
    508512          </table>
    509         </base:section>
    510         <%
    511       }
    512       %>
    513 
     513          <%
     514        }
     515        %>
     516      </base:section>
    514517      <%
    515518      ItemQuery<Experiment> experimentQuery = rawBioAssay.getExperiments();
     
    517520      experimentQuery.order(Orders.asc(Hql.property("name")));
    518521      ItemResultList<Experiment> experiments = experimentQuery.list(dc);
    519       if (experiments.size() == 0)
    520       {
    521         %>
    522         <h4>Experiments</h4>
    523         This raw bioassay isn't used in any experiments
    524         (or, you don't have permission to view them).
     522      %>
     523      <base:section
     524        id="experiments"
     525        title="<%="Experiments (" + experiments.size() + ")"%>"
     526        context="<%=cc%>"
     527        >
    525528        <%
    526       }
    527       else
    528       {
    529         %>
    530         <base:section
    531           id="experiments"
    532           title="<%="Experiments (" + experiments.size() + ")"%>"
    533           context="<%=cc%>"
    534           >
     529        if (experiments.size() == 0)
     530        {
     531          %>
     532          <div class="messagecontainer note">
     533          This raw bioassay isn't used in any experiments
     534          (or, you don't have permission to view them).
     535          </div>
     536          <%
     537        }
     538        else
     539        {
     540          %>
    535541          <tbl:table
    536542            id="experiments"
    537            
    538543            columns="all"
    539544            >
    540           <tbl:columndef
    541             id="name"
    542             title="Name"
    543           />
    544           <tbl:columndef
    545             id="description"
    546             title="Description"
    547           />
    548           <tbl:data>
    549             <tbl:columns>
    550             </tbl:columns>
    551             <tbl:rows>
    552             <%
    553             for (Experiment item : experiments)
    554             {
     545            <tbl:columndef
     546              id="name"
     547              title="Name"
     548            />
     549            <tbl:columndef
     550              id="description"
     551              title="Description"
     552            />
     553            <tbl:data>
     554              <tbl:headers>
     555                <tbl:headerrow>
     556                  <tbl:columnheaders />
     557                </tbl:headerrow>
     558              </tbl:headers>
     559              <tbl:rows>
     560              <%
     561              for (Experiment item : experiments)
     562              {
     563                %>
     564                <tbl:row>
     565                  <tbl:cell column="name"><base:icon
     566                    image="deleted.gif"
     567                    tooltip="This item has been scheduled for deletion"
     568                    visible="<%=item.isRemoved()%>"
     569                  /><%=Base.getLinkedName(ID, item, false, true)%></tbl:cell>
     570                  <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
     571                </tbl:row>
     572                <%
     573              }
    555574              %>
    556               <tbl:row>
    557                 <tbl:cell column="name"><base:icon
    558                   image="deleted.gif"
    559                   tooltip="This item has been scheduled for deletion"
    560                   visible="<%=item.isRemoved()%>"
    561                 /><%=Base.getLinkedName(ID, item, false, true)%></tbl:cell>
    562                 <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
    563               </tbl:row>
    564               <%
    565             }
    566             %>
    567             </tbl:rows>
    568           </tbl:data>
     575              </tbl:rows>
     576            </tbl:data>
    569577          </tbl:table>
    570         </base:section>
    571         <%
    572       }
    573       %>
     578          <%
     579        }
     580        %>
     581      </base:section>
     582
    574583      <jsp:include page="../../common/anytoany/list_anytoany.jsp">
    575584        <jsp:param name="ID" value="<%=ID%>" />
     
    584593        <jsp:param name="title" value="Shared to" />
    585594      </jsp:include>
    586       </div>
    587595      </t:tab>
    588596     
  • trunk/www/views/reporterlists/view_reporterlist.jsp

    r5937 r5939  
    157157  </base:head>
    158158  <base:body>
    159     <p>
    160     <p:path>
    161       <p:pathelement title="Reporter lists" href="<%="index.jsp?ID="+ID%>" />
    162       <p:pathelement title="<%=HTML.encodeTags(reporterList.getName())%>" />
    163     </p:path>
     159    <p:path><p:pathelement
     160      title="Reporter lists" href="<%="index.jsp?ID="+ID%>"
     161      /><p:pathelement title="<%=HTML.encodeTags(reporterList.getName())%>"
     162      /></p:path>
    164163   
    165     <t:tabcontrol id="main" active="properties" switch="switchTab">
     164    <t:tabcontrol
     165      id="main"
     166      subclass="content mastertabcontrol"
     167      active="properties" switch="switchTab">
    166168    <t:tab id="properties" title="Properties">
    167     <tbl:toolbar
    168       >
    169       <tbl:button
    170         disabled="<%=writePermission ? false : true%>"
    171         image="edit.gif"
    172         onclick="editItem()"
    173         title="Edit&hellip;"
    174         tooltip="<%=writePermission ? "Edit this reporter list" : "You do not have permission to edit this reporter list"%>"
    175       />
    176       <tbl:button
    177         disabled="<%=deletePermission ? false : true%>"
    178         image="delete.gif"
    179         onclick="deleteItem()"
    180         title="Delete"
    181         visible="<%=!reporterList.isRemoved()%>"
    182         tooltip="<%=deletePermission ? "Delete this reporter list" : "You do not have permission to delete this reporter list"%>"
    183       />
    184       <tbl:button
    185         disabled="<%=writePermission ? false : true%>"
    186         image="restore.gif"
    187         onclick="restoreItem()"
    188         title="Restore"
    189         visible="<%=reporterList.isRemoved()%>"
    190         tooltip="<%=writePermission ? "Restore this reporter list" : "You do not have permission to restore this reporter list"%>"
    191       />
    192       <tbl:button
    193         disabled="<%=sharePermission ? false : true%>"
    194         image="share.gif"
    195         onclick="shareItem()"
    196         title="Share&hellip;"
    197         tooltip="<%=sharePermission ? "Share this reporter list to other user, groups and projects" : "You do not have permission to share this formula"%>"
    198       />
    199       <tbl:button
    200         disabled="<%=setOwnerPermission ? false : true%>"
    201         image="take_ownership.png"
    202         onclick="setOwner()"
    203         title="Set owner&hellip;"
    204         tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
    205       />
    206       <tbl:button
    207         visible="<%=writePermission%>"
    208         image="set_operations/union_small.png"
    209         onclick="merge('union')"
    210         title="Union&hellip;"
    211         tooltip="Add reporters from other lists to this list"
    212       />
    213       <tbl:button
    214         visible="<%=writePermission%>"
    215         image="set_operations/intersection_small.png"
    216         onclick="merge('intersection')"
    217         title="Intersection&hellip;"
    218         tooltip="Keep only reporters that are present in other lists"
    219       />
    220       <tbl:button
    221         visible="<%=writePermission%>"
    222         image="set_operations/complement_small.png"
    223         onclick="merge('complement')"
    224         title="Complement&hellip;"
    225         tooltip="Remove reporters in other lists from this list"
    226       />
    227       <tbl:button
    228         image="import.gif"
    229         onclick="runPlugin('ImportItem')"
    230         title="Import&hellip;"
    231         tooltip="Import data"
    232         visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
    233       />
    234       <tbl:button
    235         image="export.gif"
    236         onclick="runPlugin('ExportItem')"
    237         title="Export&hellip;"
    238         tooltip="Export data"
    239         visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
    240       />
    241       <tbl:button
    242         image="runplugin.gif"
    243         onclick="runPlugin('RunPlugin')"
    244         title="Run plugin&hellip;"
    245         tooltip="Run a plugin"
    246         visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
    247       />