Changeset 5950


Ignore:
Timestamp:
Feb 9, 2012, 11:30:23 AM (10 years ago)
Author:
Nicklas Nordborg
Message:

References #1655: GUI improvements

Fixes the "Disk usage" pages.

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/clients/web/net/sf/basedb/clients/web/extensions/toolbar/CompactButtonRenderer.java

    r4512 r5950  
    5757   href="javascript:[onClick]"
    5858   title="[title]: [tooltip]"
    59 ><img src="[icon]" border="0"></a>
     59><img src="[icon]"></a>
    6060</pre>
    6161
     
    8585      out.write("><img");
    8686      if (btn.getIcon() != null) out.write(" src=\"" + btn.getIcon() + "\"");
    87       out.write(" border=\"0\"></a>\n");
     87      out.write("></a>\n");
    8888    }
    8989    catch (IOException ex)
  • trunk/www/admin/diskusage/details/view_details.jsp

    r5948 r5950  
    200200    }
    201201    </script>
     202    <style>
     203    table.special
     204    {
     205      border-collapse: collapse;
     206      width: auto;
     207    }
     208    table.special td, table.special tr:first-child th
     209    {
     210      text-align: right;
     211      border-right: 1px dotted #A0A0A0;
     212    }
     213   
     214    </style>
    202215  </base:head>
    203216  <base:body>
    204     <p>
    205     <p:path>
    206       <p:pathelement title="Disk usage" enabled="<%=hasDiskUsagePermission%>"
    207         href="<%="../index.jsp?ID="+ID+"&cmd="+returnCmd%>" />
    208       <p:pathelement title="<%=HTML.encodeTags(title)%>" />
    209     </p:path>
     217    <p:path><p:pathelement
     218      title="Disk usage" enabled="<%=hasDiskUsagePermission%>"
     219        href="<%="../index.jsp?ID="+ID+"&cmd="+returnCmd%>"
     220      /><p:pathelement title="<%=HTML.encodeTags(title)%>"
     221      /></p:path>
    210222   
    211     <t:tabcontrol id="main">
     223    <t:tabcontrol id="main"
     224      subclass="mastertabcontrol content">
    212225    <t:tab id="details" title="Details">
     226      <div>
     227      <table class="fullform" style="height: auto;">
     228      <tr>
     229        <th class="itemstatus"></th>
     230        <td style="padding: 0px;">
     231          <tbl:toolbar subclass="bottomborder">
     232            <tbl:button
     233              disabled="<%=!writePermission%>"
     234              image="edit.png"
     235              onclick="editItem()"
     236              title="Edit&hellip;"
     237              tooltip="<%=writePermission ? "Edit this item" : "You do not have permission to edit this item"%>"
     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 +"', 'diskusage.details')"%>"
     244              title="Help&hellip;"
     245              tooltip="Get help about this page"
     246            />
     247          </tbl:toolbar>
     248        </td>
     249      </tr>
     250      </table>
     251      <table style="width: 100%; height: 8em;" class="bottomborder">
     252      <tr valign="top">
     253        <td style="width: 50%; height: 100%;">
     254          <%
     255          if (user != null)
     256          {
     257            %>
     258            <table class="fullform">
     259            <tr>
     260              <th>Name</th>
     261              <td><%=Base.getLinkedName(ID, user, false, true)%></td>
     262            </tr>
     263            <tr>
     264              <th>Quota</th>
     265              <td><base:propertyvalue item="<%=user%>" property="quota" /></td>
     266            </tr>
     267            <tr>
     268              <th>Quota group</th>
     269              <td><base:propertyvalue item="<%=user%>" property="quotaGroup" /></td>
     270            </tr>
     271            <tr class="dynamic">
     272              <th>Description</th>
     273              <td><%=HTML.niceFormat(user.getDescription())%></td>
     274            </tr>
     275            </table>
     276            <%
     277          }
     278          else if (group != null)
     279          {
     280            %>
     281            <table class="fullform">
     282            <tr>
     283              <th>Name</th>
     284              <td><%=Base.getLinkedName(ID, group, false, true)%></td>
     285            </tr>
     286            <tr>
     287              <th>Quota</th>
     288              <td><base:propertyvalue item="<%=group%>" property="quota" /></td>
     289            </tr>
     290            <tr class="dynamic">
     291              <th>Description</th>
     292              <td><%=HTML.niceFormat(group.getDescription())%></td>
     293            </tr>
     294            </table>
     295            <%
     296          }
     297          %>
     298        </td>
     299        <td style="width: 50%; height: 100%;" class="leftborder">
     300          <table class="special fullform">
     301          <tr>
     302            <th style="width: 10em;"></th>
     303            <th style="width: 12em;">Total</td>
     304            <th style="width: 12em;">Primary</td>
     305            <th style="width: 12em;">Secondary</td>
     306            <th style="width: 12em;">Offline</td>
     307            <th style="width: 12em;">External</td>
     308          </tr>
     309          <tr style="border-top: 1px solid #A0A0A0;" class="highlight">
     310            <th>Total</th>
     311            <td><%=Values.formatBytes(summary.getTotal())%></td>
     312            <td><%=Values.formatBytes(summary.getTotal(Location.PRIMARY))%></td>
     313            <td><%=Values.formatBytes(summary.getTotal(Location.SECONDARY))%></td>
     314            <td><%=Values.formatBytes(summary.getTotal(Location.OFFLINE))%></td>     
     315            <td><%=Values.formatBytes(summary.getTotal(Location.EXTERNAL))%></td>     
     316          </tr>
     317          <%
     318          for (QuotaType qt : quotaTypes)
     319          {
     320            %>
     321            <tr class="highlight">
     322              <th><%=HTML.encodeTags(qt.getName())%></th>
     323              <td><%=Values.formatBytes(summary.getTotal(qt))%></td>
     324              <td><%=Values.formatBytes(summary.getTotal(qt, Location.PRIMARY))%></td>
     325              <td><%=qt.hasSecondaryLocation() ? Values.formatBytes(summary.getTotal(qt, Location.SECONDARY)) : "n/a"%></td>
     326              <td><%=qt.getSystemId().equals(QuotaType.FILE) ? Values.formatBytes(summary.getTotal(qt, Location.OFFLINE)) : "n/a"%></td>
     327              <td><%=qt.getSystemId().equals(QuotaType.FILE) ? Values.formatBytes(summary.getTotal(qt, Location.EXTERNAL)) : "n/a"%></td>
     328            </tr>
     329            <%
     330          }
     331          %>
     332          </table>
     333        </td>
     334      </tr>
     335      </table>
     336      </div>
    213337   
    214     <tbl:toolbar
    215       >
    216       <tbl:button
    217         disabled="<%=!writePermission%>"
    218         image="edit.png"
    219         onclick="editItem()"
    220         title="Edit&hellip;"
    221         tooltip="<%=writePermission ? "Edit this item" : "You do not have permission to edit this item"%>"
    222       />
    223       <ext:render extensions="<%=invoker%>" context="<%=jspContext%>"
    224         wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
    225       <tbl:button
    226         image="help.png"
    227         onclick="<%="Main.openHelp('" + ID +"', 'diskusage.details')"%>"
    228         title="Help&hellip;"
    229         tooltip="Get help about this page"
    230       />
    231       </tbl:toolbar>
    232     <div class="boxedbottom">
    233 
    234     <table>
    235     <tr >
    236     <td width="50%">
    237       <%
    238       if (user != null)
    239       {
    240         %>
    241         <table class="form" cellspacing=0>
    242         <tr >
    243           <td class="prompt" width="10%">Name</td>
    244           <td width="40%"><%=Base.getLinkedName(ID, user, false, true)%></td>
    245         </tr>
    246         <tr >
    247           <td class="prompt">Quota</td>
    248           <td><base:propertyvalue item="<%=user%>" property="quota" /></td>
    249         </tr>
    250         <tr >
    251           <td class="prompt">Quota group</td>
    252           <td><base:propertyvalue item="<%=user%>" property="quotaGroup" /></td>
    253         </tr>
    254         <tr >
    255           <td class="prompt">Description</td>
    256           <td><%=HTML.niceFormat(user.getDescription())%></td>
    257         </tr>
    258         </table>
    259         <%
    260       }
    261       else if (group != null)
    262       {
    263         %>
    264         <table class="form" cellspacing=0>
    265         <tr >
    266           <td class="prompt" width="10%">Name</td>
    267           <td width="40%"><%=Base.getLinkedName(ID, group, false, true)%></td>
    268         </tr>
    269         <tr >
    270           <td class="prompt">Quota</td>
    271           <td><base:propertyvalue item="<%=group%>" property="quota" /></td>
    272         </tr>
    273         <tr >
    274           <td class="prompt">Description</td>
    275           <td><%=HTML.niceFormat(group.getDescription())%></td>
    276         </tr>
    277         </table>
    278         <%
    279       }
    280       %>
    281     </td>
    282     <td width="50%">
    283       <%
    284       long total = summary.getTotal();
    285       %>
    286       <table border="0" cellspacing="0" cellpadding="2">
    287       <tr>
    288         <th>&nbsp;</th>
    289         <th style="text-align: right;">Total</th>
    290         <th style="text-align: right;">&nbsp;&nbsp;Primary</th>
    291         <th style="text-align: right;">&nbsp;&nbsp;Secondary</th>
    292         <th style="text-align: right;">&nbsp;&nbsp;Offline</th>
    293         <th style="text-align: right;">&nbsp;&nbsp;External</th>
    294       </tr>
    295       <tr>
    296         <td colspan="6" style="border-bottom: 1px dotted #999999"></td>
    297       </tr>   
    298       <tr style="background: #E0E0E0;">
    299         <th>Total</th>
    300         <td style="text-align: right;"><%=Values.formatBytes(total)%></td>
    301         <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(Location.PRIMARY))%></td>
    302         <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(Location.SECONDARY))%></td>
    303         <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(Location.OFFLINE))%></td>
    304         <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(Location.EXTERNAL))%></td>
    305       </tr>
    306       <tr>
    307         <td colspan="6" style="border-top: 1px dotted #999999"></td>
    308       </tr>   
    309       <%
    310       for (QuotaType qt : quotaTypes)
    311       {
    312         %>
    313         <tr>
    314           <th><%=HTML.encodeTags(qt.getName())%></th>
    315           <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(qt))%></td>
    316           <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(qt, Location.PRIMARY))%></td>
    317           <td style="text-align: right;"><%=qt.hasSecondaryLocation() ? Values.formatBytes(summary.getTotal(qt, Location.SECONDARY)) : "n/a"%></td>
    318           <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(qt, Location.OFFLINE))%></td>         
    319           <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(qt, Location.EXTERNAL))%></td>         
    320         </tr>
    321         <%
    322       }
    323       %>
    324       </table>
    325     </td>
    326     </tr>
    327     </table>
    328 
    329       <h4 class="docked">Disk consuming items</h4>
    330       <%
    331       if (cc.getMessage() != null)
    332       {
    333         %>
    334         <div class="error"><%=HTML.encodeTags(cc.getMessage())%></div>
    335         <%
    336         cc.setMessage(null);
    337       }
    338       %>
     338    <base:section id="items"
     339      title="<%="Disk consuming items (" + totalCount + ")"%>"
     340      context="<%=cc%>">
    339341      <tbl:table
    340342        id="items"
    341          
    342343        columns="<%=cc.getSetting("columns")%>"
    343344        sortby="<%=cc.getSortProperty()%>"
     
    408409          title="Description"
    409410        />
    410         <tbl:toolbar>
    411           <tbl:button
    412             image="delete.png"
    413             onclick="deleteItems()"
    414             title="Delete"
    415             tooltip="Mark the selected items for deletion"
    416             disabled="<%=totalCount <= 0%>"
    417           />
    418           <tbl:button
    419             image="restore.png"
    420             onclick="restoreItems()"
    421             title="Restore"
    422             tooltip="Restore the selected items"
    423             disabled="<%=totalCount <= 0%>"
    424           />
    425           <tbl:button
    426             image="share.png"
    427             onclick="shareItems()"
    428             title="Share&hellip;"
    429             tooltip="Share the selected items"
    430             disabled="<%=totalCount <= 0%>"
    431           />
    432           <tbl:button
    433             image="columns.png"
    434             onclick="configureColumns()"
    435             title="Columns&hellip;"
    436             tooltip="Show, hide and re-order columns"
    437           />
    438         </tbl:toolbar>
     411        <div class="panelgroup topborder leftborder rightborder">
     412          <tbl:toolbar subclass="bottomborder">
     413            <tbl:button
     414              image="delete.png"
     415              onclick="deleteItems()"
     416              title="Delete"
     417              tooltip="Mark the selected items for deletion"
     418              disabled="<%=totalCount <= 0%>"
     419            />
     420            <tbl:button
     421              image="restore.png"
     422              onclick="restoreItems()"
     423              title="Restore"
     424              tooltip="Restore the selected items"
     425              disabled="<%=totalCount <= 0%>"
     426            />
     427            <tbl:button
     428              image="share.png"
     429              onclick="shareItems()"
     430              title="Share&hellip;"
     431              tooltip="Share the selected items"
     432              disabled="<%=totalCount <= 0%>"
     433            />
     434            <tbl:button
     435              image="columns.png"
     436              onclick="configureColumns()"
     437              title="Columns&hellip;"
     438              tooltip="Show, hide and re-order columns"
     439            />
     440          </tbl:toolbar>
     441          <tbl:panel>
    439442            <tbl:presetselector
    440               clazz="columnheader"
    441443              onchange="presetOnChange()"
    442444              disableremoved="true"
    443445            />
    444         <tbl:navigator
    445           page="<%=cc.getPage()%>"
    446           rowsperpage="<%=cc.getRowsPerPage()%>"
    447           totalrows="<%=totalCount%>"
    448         />     
     446            <tbl:navigator
     447              page="<%=cc.getPage()%>"
     448              rowsperpage="<%=cc.getRowsPerPage()%>"
     449              totalrows="<%=totalCount%>"
     450            />
     451          </tbl:panel>
     452        </div>
    449453        <tbl:data>
    450454          <tbl:headers>
     455            <tbl:headerrow>
     456              <tbl:header colspan="3" />
     457              <tbl:columnheaders />
     458            </tbl:headerrow>
    451459            <tbl:headerrow>
    452460              <tbl:header subclass="index" />
     
    466474          <tbl:rows>
    467475          <%
     476          if (cc.getMessage() != null)
     477          {
     478            %>
     479            <tbl:panel clazz="messagepanel">
     480              <div class="messagecontainer error"><%=HTML.encodeTags(cc.getMessage())%></div>
     481            </tbl:panel>
     482            <%
     483            cc.setMessage(null);
     484          }
    468485          int index = cc.getPage()*cc.getRowsPerPage();
    469486          if (diskUsage != null)
     
    544561              }
    545562            }
     563            if (numListed == 0)
     564            {
     565              %>
     566              <tbl:panel clazz="messagepanel">
     567                <div class="messagecontainer note">
     568                <%=totalCount == 0 ? "No items were found" : "No items on this page. Please select another page!" %>
     569                </div>
     570              </tbl:panel>
     571              <%
     572            }
    546573          %>
    547574          </tbl:rows>
    548575        </tbl:data>
    549         <%
    550         if (numListed == 0)
    551         {
    552           %>
    553           <tbl:panel><%=totalCount == 0 ? "No items were found" : "No items on this page. Please select another page!" %></tbl:panel>
    554           <%
    555         }
    556         else
    557         {
    558           %>
    559           <tbl:navigator
    560             page="<%=cc.getPage()%>"
    561             rowsperpage="<%=cc.getRowsPerPage()%>"
    562             totalrows="<%=totalCount%>"
    563             locked="true"
    564           />
    565           <%
    566         }
    567         %>     
    568576      </tbl:table>
    569     </div>
     577      </base:section>
    570578    </t:tab>
    571579    </t:tabcontrol>
  • trunk/www/admin/diskusage/list_groups.jsp

    r5948 r5950  
    165165    }   
    166166    </script>
     167    <style>
     168    table.special
     169    {
     170      border-collapse: collapse;
     171    }
     172    table.special td, table.special th
     173    {
     174      text-align: right;
     175      border-right: 1px dotted #A0A0A0;
     176      padding: 1px 2px 1px 2px;
     177    }
     178    </style>
    167179  </base:head>
    168180 
    169181  <base:body>
    170  
    171     <t:tabcontrol id="main" active="groups" switch="switchTab">
     182    <h1>Disk usage</h1>
     183    <t:tabcontrol
     184      id="main"
     185      subclass="mastertabcontrol content"
     186      active="groups" switch="switchTab">
    172187    <t:tab id="overview" title="Overview" />
    173    
    174188    <t:tab id="users" title="Per user" />
    175    
    176189    <t:tab id="groups" title="Per group">
    177  
    178     <%
    179     if (cc.getMessage() != null)
    180     {
    181       %>
    182       <div class="error"><%=cc.getMessage()%></div>
    183       <%
    184       cc.setMessage(null);
    185     }
    186     %>
    187190    <tbl:table
    188191      id="groups"
    189        
    190192      columns="<%=cc.getSetting("columns")%>"
    191193      sortby="<%=cc.getSortProperty()%>"
     
    195197      item="<%=itemType%>"
    196198      subcontext="<%=subContext%>"
     199      subclass="fulltable"
    197200      >
    198201      <tbl:hidden
     
    234237        exportable="true"
    235238      />
    236       <tbl:toolbar
    237         visible="<%=mode.hasToolbar()%>"
    238         >
    239         <tbl:button
    240           image="columns.png"
    241           onclick="configureColumns()"
    242           title="Columns&hellip;"
    243           tooltip="Show, hide and re-order columns"
    244         />
    245         <ext:render extensions="<%=invoker%>" context="<%=jspContext%>"
    246           wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
    247       </tbl:toolbar>
    248       <tbl:panel>
    249         <b>Show summary</b>
    250         <input type="radio" name="showStatistics" value="total"
    251           <%="total".equals(showStatistics) ? "checked" : ""%>
    252           onclick="setShowStatistics()"><a
    253           href="javascript:document.forms[formId].showStatistics[0].click()">Total only</a>
    254         <input type="radio" name="showStatistics" value="location"
    255           <%="location".equals(showStatistics) ? "checked" : ""%>
    256           onclick="setShowStatistics()"><a
    257           href="javascript:document.forms[formId].showStatistics[1].click()">Per location</a>
    258         <input type="radio" name="showStatistics" value="quotaType"
    259           <%="quotaType".equals(showStatistics) ? "checked" : ""%>
    260           onclick="setShowStatistics()"><a
    261           href="javascript:document.forms[formId].showStatistics[2].click()">Per quota type</a>
    262         <input type="radio" name="showStatistics" value="full"
    263           <%="full".equals(showStatistics) ? "checked" : ""%>
    264           onclick="setShowStatistics()"><a
    265           href="javascript:document.forms[formId].showStatistics[3].click()">Full</a>
    266       </tbl:panel>
    267       <tbl:navigator
    268         page="<%=cc.getPage()%>"
    269         rowsperpage="<%=cc.getRowsPerPage()%>"
    270         totalrows="<%=groups == null ? 0 : groups.getTotalCount()%>"
    271       />
     239      <div class="panelgroup bottomborder">
     240        <tbl:toolbar
     241          visible="<%=mode.hasToolbar()%>"
     242          subclass="bottomborder"
     243          >
     244          <tbl:button
     245            image="columns.png"
     246            onclick="configureColumns()"
     247            title="Columns&hellip;"
     248            tooltip="Show, hide and re-order columns"
     249          />
     250          <ext:render extensions="<%=invoker%>" context="<%=jspContext%>"
     251            wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
     252        </tbl:toolbar>
     253        <tbl:panel>
     254          <tbl:presetselector
     255            onchange="presetOnChange()"
     256          />
     257          <tbl:navigator
     258            page="<%=cc.getPage()%>"
     259            rowsperpage="<%=cc.getRowsPerPage()%>"
     260            totalrows="<%=groups == null ? 0 : groups.getTotalCount()%>"
     261          />
     262          <b>Show summary</b>
     263          <input type="radio" name="showStatistics" value="total"
     264            <%="total".equals(showStatistics) ? "checked" : ""%>
     265            onclick="setShowStatistics()"><a
     266            href="javascript:document.forms[formId].showStatistics[0].click()">Total only</a>
     267          <input type="radio" name="showStatistics" value="location"
     268            <%="location".equals(showStatistics) ? "checked" : ""%>
     269            onclick="setShowStatistics()"><a
     270            href="javascript:document.forms[formId].showStatistics[1].click()">Per location</a>
     271          <input type="radio" name="showStatistics" value="quotaType"
     272            <%="quotaType".equals(showStatistics) ? "checked" : ""%>
     273            onclick="setShowStatistics()"><a
     274            href="javascript:document.forms[formId].showStatistics[2].click()">Per quota type</a>
     275          <input type="radio" name="showStatistics" value="full"
     276            <%="full".equals(showStatistics) ? "checked" : ""%>
     277            onclick="setShowStatistics()"><a
     278            href="javascript:document.forms[formId].showStatistics[3].click()">Full</a>
     279        </tbl:panel>
     280      </div>
     281
    272282      <tbl:data>
    273283        <tbl:headers>
     
    299309        <tbl:rows>
    300310          <%
     311          if (cc.getMessage() != null)
     312          {
     313            %>
     314            <tbl:panel clazz="messagepanel">
     315              <div class="messagecontainer error"><%=cc.getMessage()%></div>
     316            </tbl:panel>
     317            <%
     318            cc.setMessage(null);
     319          }
    301320          int index = cc.getPage()*cc.getRowsPerPage();
    302321          int selectedItemId = cc.getId();
     
    349368                  title="<%=tooltip%>"><%=name%></div></tbl:cell>
    350369                <tbl:cell column="id"><%=item.getId()%></tbl:cell>
    351                 <tbl:cell column="diskUsage">
     370                <tbl:cell column="diskUsage" style="padding: 0px;">
    352371                  <%
    353372                  DiskUsageStatistics.Summary summary = du.getSummary(item);
     
    356375                  {
    357376                    %>
    358                     <table border="0" cellspacing="0" cellpadding="2">
     377                    <table class="special bottomborder">
    359378                    <%
    360379                    if (hasLocation)
    361380                    {
    362381                      %>
    363                       <tr>
     382                      <tr class="bottomborder">
    364383                        <%
    365384                        if (hasQuotaType)
    366385                        {
    367386                          %>
    368                           <th>&nbsp;</th>
     387                          <th></th>
    369388                          <%
    370389                        }
    371390                        %>
    372                         <th style="text-align: right;">Total</th>
    373                         <td style="text-align: right;">&nbsp;&nbsp;Primary</td>
    374                         <td style="text-align: right;">&nbsp;&nbsp;Secondary</td>
    375                         <td style="text-align: right;">&nbsp;&nbsp;Offline</td>
    376                         <td style="text-align: right;">&nbsp;&nbsp;External</td>
     391                        <th>Total</th>
     392                        <td>Primary</td>
     393                        <td>Secondary</td>
     394                        <td>Offline</td>
     395                        <td>External</td>
    377396                      </tr>
    378397                      <%
    379398                    }
    380                     %>
    381                     <tr>
    382                       <td colspan="6" style="border-bottom: 1px dotted #999999"></td>
    383                     </tr>   
    384                     <tr style="background: #E0E0E0;">
     399                    %> 
     400                    <tr class="bottomborder" style="background: #D8D8D8;">
    385401                      <%
    386402                      if (hasQuotaType)
     
    391407                      }
    392408                      %>
    393                       <td style="text-align: right;"><%=Values.formatBytes(total)%></td>
     409                      <td><%=Values.formatBytes(total)%></td>
    394410                      <%
    395411                      if (hasLocation)
    396412                      {
    397413                        %>
    398                         <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(Location.PRIMARY))%></td>
    399                         <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(Location.SECONDARY))%></td>
    400                         <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(Location.OFFLINE))%></td>
    401                         <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(Location.EXTERNAL))%></td>
     414                        <td><%=Values.formatBytes(summary.getTotal(Location.PRIMARY))%></td>
     415                        <td><%=Values.formatBytes(summary.getTotal(Location.SECONDARY))%></td>
     416                        <td><%=Values.formatBytes(summary.getTotal(Location.OFFLINE))%></td>
     417                        <td><%=Values.formatBytes(summary.getTotal(Location.EXTERNAL))%></td>
    402418                        <%
    403419                      }
    404420                      %>
    405                     </tr>
    406                     <tr>
    407                       <td colspan="6" style="border-top: 1px dotted #999999"></td>
    408                     </tr>   
     421                    </tr>
    409422                    <%
    410423                    if (hasQuotaType && total > 0)
     
    415428                        <tr>
    416429                          <td><%=HTML.encodeTags(qt.getName())%></td>
    417                           <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(qt))%></td>
     430                          <td><%=Values.formatBytes(summary.getTotal(qt))%></td>
    418431                          <%
    419432                          if (hasLocation)
    420433                          {
    421434                            %>
    422                             <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(qt, Location.PRIMARY))%></td>
    423                             <td style="text-align: right;"><%=qt.hasSecondaryLocation() ? Values.formatBytes(summary.getTotal(qt, Location.SECONDARY)) : "n/a"%></td>
    424                             <td style="text-align: right;"><%=qt.getSystemId().equals(QuotaType.FILE) ? Values.formatBytes(summary.getTotal(qt, Location.OFFLINE)) : "n/a"%></td>
    425                             <td style="text-align: right;"><%=qt.getSystemId().equals(QuotaType.FILE) ? Values.formatBytes(summary.getTotal(qt, Location.EXTERNAL)) : "n/a"%></td>
     435                            <td><%=Values.formatBytes(summary.getTotal(qt, Location.PRIMARY))%></td>
     436                            <td><%=qt.hasSecondaryLocation() ? Values.formatBytes(summary.getTotal(qt, Location.SECONDARY)) : "n/a"%></td>
     437                            <td><%=qt.getSystemId().equals(QuotaType.FILE) ? Values.formatBytes(summary.getTotal(qt, Location.OFFLINE)) : "n/a"%></td>
     438                            <td><%=qt.getSystemId().equals(QuotaType.FILE) ? Values.formatBytes(summary.getTotal(qt, Location.EXTERNAL)) : "n/a"%></td>
    426439                            <%
    427440                          }
     
    438451                  {
    439452                    %>
    440                     <%=Values.formatBytes(total)%>
     453                    &nbsp;<%=Values.formatBytes(total)%>
    441454                    <%
    442455                  }
     
    444457                  {
    445458                    %>
    446                     <base:icon image="bullet.png" />
    447                     <a href="javascript:viewDiskUsageDetails(<%=itemId%>)">View details</a>
     459                    <base:icon image="gonext.png"
     460                      onclick="<%="viewDiskUsageDetails(" + itemId + ")"%>">View details</base:icon>
    448461                    <%
    449462                  }
     
    462475              }
    463476            }
    464           %>
    465           </tbl:rows>
     477            if (numListed == 0)
     478            {
     479              %>
     480              <tbl:panel clazz="messagepanel">
     481                <div class="messagecontainer note">
     482                <%=groups == null || groups.getTotalCount() == 0 ? "No groups were found" : "No groups on this page. Please select another page!" %>
     483                </div>
     484              </tbl:panel>
     485              <%
     486            }
     487            %>
     488        </tbl:rows>
    466489      </tbl:data>
    467       <%
    468       if (numListed == 0)
    469       {
    470         %>
    471         <tbl:panel><%=groups == null || groups.getTotalCount() == 0 ? "No groups were found" : "No groups on this page. Please select another page!" %></tbl:panel>
    472         <%
    473       }
    474       else
    475       {
    476         %>
    477         <tbl:navigator
    478           page="<%=cc.getPage()%>"
    479           rowsperpage="<%=cc.getRowsPerPage()%>"
    480           totalrows="<%=groups == null ? 0 : groups.getTotalCount()%>"
    481           visible="<%=mode.hasNavigator()%>"
    482           locked="true"
    483         />
    484         <%
    485       }
    486       %>
    487490    </tbl:table>
    488491    </t:tab>
  • trunk/www/admin/diskusage/list_users.jsp

    r5948 r5950  
    169169    }   
    170170    </script>
     171    <style>
     172    table.special
     173    {
     174      border-collapse: collapse;
     175    }
     176    table.special td, table.special th
     177    {
     178      text-align: right;
     179      border-right: 1px dotted #A0A0A0;
     180      padding: 1px 2px 1px 2px;
     181    }
     182   
     183    </style>
    171184  </base:head>
    172185 
    173186  <base:body>
    174  
    175     <t:tabcontrol id="main" active="users" switch="switchTab">
     187    <h1>Disk usage</h1>
     188    <t:tabcontrol
     189      id="main"
     190      subclass="mastertabcontrol content"
     191      active="users" switch="switchTab">
    176192    <t:tab id="overview" title="Overview" />
    177    
    178193    <t:tab id="users" title="Per user">
    179  
    180     <%
    181     if (cc.getMessage() != null)
    182     {
    183       %>
    184       <div class="error"><%=cc.getMessage()%></div>
    185       <%
    186       cc.setMessage(null);
    187     }
    188     %>
    189194    <tbl:table
    190195      id="users"
    191        
    192196      columns="<%=cc.getSetting("columns")%>"
    193197      sortby="<%=cc.getSortProperty()%>"
     
    197201      item="<%=itemType%>"
    198202      subcontext="<%=subContext%>"
     203      subclass="fulltable"
    199204      >
    200205      <tbl:hidden
     
    366371        exportable="true"
    367372      />
    368       <tbl:toolbar
    369         visible="<%=mode.hasToolbar()%>"
    370         >
    371         <tbl:button
    372           image="columns.png"
    373           onclick="configureColumns()"
    374           title="Columns&hellip;"
    375           tooltip="Show, hide and re-order columns"
    376         />
    377         <ext:render extensions="<%=invoker%>" context="<%=jspContext%>"
    378           wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
    379       </tbl:toolbar>
    380       <tbl:panel>
    381         <b>Show summary</b>
    382         <input type="radio" name="showStatistics" value="total"
    383           <%="total".equals(showStatistics) ? "checked" : ""%>
    384           onclick="setShowStatistics()"><a
    385           href="javascript:document.forms[formId].showStatistics[0].click()">Total only</a>
    386         <input type="radio" name="showStatistics" value="location"
    387           <%="location".equals(showStatistics) ? "checked" : ""%>
    388           onclick="setShowStatistics()"><a
    389           href="javascript:document.forms[formId].showStatistics[1].click()">Per location</a>
    390         <input type="radio" name="showStatistics" value="quotaType"
    391           <%="quotaType".equals(showStatistics) ? "checked" : ""%>
    392           onclick="setShowStatistics()"><a
    393           href="javascript:document.forms[formId].showStatistics[2].click()">Per quota type</a>
    394         <input type="radio" name="showStatistics" value="full"
    395           <%="full".equals(showStatistics) ? "checked" : ""%>
    396           onclick="setShowStatistics()"><a
    397           href="javascript:document.forms[formId].showStatistics[3].click()">Full</a>
    398       </tbl:panel>
    399       <tbl:navigator
    400         page="<%=cc.getPage()%>"
    401         rowsperpage="<%=cc.getRowsPerPage()%>"
    402         totalrows="<%=users == null ? 0 : users.getTotalCount()%>"
    403       />
     373      <div class="panelgroup bottomborder">
     374        <tbl:toolbar
     375          visible="<%=mode.hasToolbar()%>"
     376          subclass="bottomborder"
     377          >
     378          <tbl:button
     379            image="columns.png"
     380            onclick="configureColumns()"
     381            title="Columns&hellip;"
     382            tooltip="Show, hide and re-order columns"
     383          />
     384          <ext:render extensions="<%=invoker%>" context="<%=jspContext%>"
     385            wrapper="<%=new PrefixSuffixRenderer(jspContext, "<td>", "</td>") %>"/>
     386        </tbl:toolbar>
     387        <tbl:panel>
     388          <tbl:presetselector
     389            onchange="presetOnChange()"
     390          />
     391          <tbl:navigator
     392            page="<%=cc.getPage()%>"
     393            rowsperpage="<%=cc.getRowsPerPage()%>"
     394            totalrows="<%=users == null ? 0 : users.getTotalCount()%>"
     395          />
     396          <b>Show summary</b>
     397          <input type="radio" name="showStatistics" value="total"
     398            <%="total".equals(showStatistics) ? "checked" : ""%>
     399            onclick="setShowStatistics()"><a
     400            href="javascript:document.forms[formId].showStatistics[0].click()">Total only</a>
     401          <input type="radio" name="showStatistics" value="location"
     402            <%="location".equals(showStatistics) ? "checked" : ""%>
     403            onclick="setShowStatistics()"><a
     404            href="javascript:document.forms[formId].showStatistics[1].click()">Per location</a>
     405          <input type="radio" name="showStatistics" value="quotaType"
     406            <%="quotaType".equals(showStatistics) ? "checked" : ""%>
     407            onclick="setShowStatistics()"><a
     408            href="javascript:document.forms[formId].showStatistics[2].click()">Per quota type</a>
     409          <input type="radio" name="showStatistics" value="full"
     410            <%="full".equals(showStatistics) ? "checked" : ""%>
     411            onclick="setShowStatistics()"><a
     412            href="javascript:document.forms[formId].showStatistics[3].click()">Full</a>
     413        </tbl:panel>
     414      </div>
    404415      <tbl:data>
    405416        <tbl:headers>
     
    431442        <tbl:rows>
    432443          <%
     444          if (cc.getMessage() != null)
     445          {
     446            %>
     447            <tbl:panel clazz="messagepanel">
     448              <div class="messagecontainer error"><%=cc.getMessage()%></div>
     449            </tbl:panel>
     450            <%
     451            cc.setMessage(null);
     452          }
    433453          int index = cc.getPage()*cc.getRowsPerPage();
    434454          int selectedItemId = cc.getId();
     
    486506                  title="<%=tooltip%>"><%=name%></div></tbl:cell>
    487507                <tbl:cell column="id"><%=item.getId()%></tbl:cell>
    488                 <tbl:cell column="diskUsage">
     508                <tbl:cell column="diskUsage" style="padding: 0px;">
    489509                  <%
    490510                  DiskUsageStatistics.Summary summary = du.getSummary(item);
     
    493513                  {
    494514                    %>
    495                     <table border="0" cellspacing="0" cellpadding="2">
     515                    <table class="special bottomborder">
    496516                    <%
    497517                    if (hasLocation)
    498518                    {
    499519                      %>
    500                       <tr>
     520                      <tr class="bottomborder">
    501521                        <%
    502522                        if (hasQuotaType)
     
    507527                        }
    508528                        %>
    509                         <th style="text-align: right;">Total</th>
    510                         <td style="text-align: right;">&nbsp;&nbsp;Primary</td>
    511                         <td style="text-align: right;">&nbsp;&nbsp;Secondary</td>
    512                         <td style="text-align: right;">&nbsp;&nbsp;Offline</td>
    513                         <td style="text-align: right;">&nbsp;&nbsp;External</td>
     529                        <th>Total</th>
     530                        <td>Primary</td>
     531                        <td>Secondary</td>
     532                        <td>Offline</td>
     533                        <td>External</td>
    514534                      </tr>
    515535                      <%
    516536                    }
    517                     %>
    518                     <tr>
    519                       <td colspan="6" style="border-bottom: 1px dotted #999999"></td>
    520                     </tr>   
    521                     <tr style="background: #E0E0E0;">
     537                    %> 
     538                    <tr class="bottomborder" style="background: #D8D8D8;">
    522539                      <%
    523540                      if (hasQuotaType)
     
    528545                      }
    529546                      %>
    530                       <td style="text-align: right;"><%=Values.formatBytes(total)%></td>
     547                      <td><%=Values.formatBytes(total)%></td>
    531548                      <%
    532549                      if (hasLocation)
    533550                      {
    534551                        %>
    535                         <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(Location.PRIMARY))%></td>
    536                         <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(Location.SECONDARY))%></td>
    537                         <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(Location.OFFLINE))%></td>
    538                         <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(Location.EXTERNAL))%></td>
     552                        <td><%=Values.formatBytes(summary.getTotal(Location.PRIMARY))%></td>
     553                        <td><%=Values.formatBytes(summary.getTotal(Location.SECONDARY))%></td>
     554                        <td><%=Values.formatBytes(summary.getTotal(Location.OFFLINE))%></td>
     555                        <td><%=Values.formatBytes(summary.getTotal(Location.EXTERNAL))%></td>
    539556                        <%
    540557                      }
    541558                      %>
    542559                    </tr>
    543                     <tr>
    544                       <td colspan="6" style="border-top: 1px dotted #999999"></td>
    545                     </tr>   
    546560                    <%
    547561                    if (hasQuotaType && total > 0)
     
    552566                        <tr>
    553567                          <td><%=HTML.encodeTags(qt.getName())%></td>
    554                           <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(qt))%></td>
     568                          <td><%=Values.formatBytes(summary.getTotal(qt))%></td>
    555569                          <%
    556570                          if (hasLocation)
    557571                          {
    558572                            %>
    559                             <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(qt, Location.PRIMARY))%></td>
    560                             <td style="text-align: right;"><%=qt.hasSecondaryLocation() ? Values.formatBytes(summary.getTotal(qt, Location.SECONDARY)) : "n/a"%></td>
    561                             <td style="text-align: right;"><%=qt.getSystemId().equals(QuotaType.FILE) ? Values.formatBytes(summary.getTotal(qt, Location.OFFLINE)) : "n/a"%></td>
    562                             <td style="text-align: right;"><%=qt.getSystemId().equals(QuotaType.FILE) ? Values.formatBytes(summary.getTotal(qt, Location.EXTERNAL)) : "n/a"%></td>
     573                            <td><%=Values.formatBytes(summary.getTotal(qt, Location.PRIMARY))%></td>
     574                            <td><%=qt.hasSecondaryLocation() ? Values.formatBytes(summary.getTotal(qt, Location.SECONDARY)) : "n/a"%></td>
     575                            <td><%=qt.getSystemId().equals(QuotaType.FILE) ? Values.formatBytes(summary.getTotal(qt, Location.OFFLINE)) : "n/a"%></td>
     576                            <td><%=qt.getSystemId().equals(QuotaType.FILE) ? Values.formatBytes(summary.getTotal(qt, Location.EXTERNAL)) : "n/a"%></td>
    563577                            <%
    564578                          }
     
    575589                  {
    576590                    %>
    577                     <%=Values.formatBytes(total)%>
     591                    &nbsp;<%=Values.formatBytes(total)%>
    578592                    <%
    579593                  }
     
    581595                  {
    582596                    %>
    583                     <base:icon image="bullet.png" />
    584                     <a href="javascript:viewDiskUsageDetails(<%=itemId%>)">View details</a>
     597                    <base:icon image="gonext.png"
     598                      onclick="<%="viewDiskUsageDetails(" + itemId + ")"%>">View details</base:icon>
    585599                    <%
    586600                  }
     
    618632              }
    619633            }
     634            if (numListed == 0)
     635            {
     636              %>
     637              <tbl:panel clazz="messagepanel">
     638                <div class="messagecontainer note">
     639                <%=users == null || users.getTotalCount() == 0 ? "No users were found" : "No users on this page. Please select another page!" %>
     640                </div>
     641              </tbl:panel>
     642              <%
     643            }
    620644          %>
    621           </tbl:rows>
     645        </tbl:rows>
    622646      </tbl:data>
    623       <%
    624       if (numListed == 0)
    625       {
    626         %>
    627         <tbl:panel><%=users == null || users.getTotalCount() == 0 ? "No users were found" : "No users on this page. Please select another page!" %></tbl:panel>
    628         <%
    629       }
    630       else
    631       {
    632         %>
    633         <tbl:navigator
    634           page="<%=cc.getPage()%>"
    635           rowsperpage="<%=cc.getRowsPerPage()%>"
    636           totalrows="<%=users == null ? 0 : users.getTotalCount()%>"
    637           visible="<%=mode.hasNavigator()%>"
    638           locked="true"
    639         />
    640         <%
    641       }
    642       %>
    643     </tbl:table>
    644    
     647      </tbl:table>
    645648    </t:tab>
    646649    <t:tab id="groups" title="Per group" />
  • trunk/www/admin/diskusage/overview.jsp

    r5426 r5950  
    8989        TabControl.setActiveTab(tabControlId, tabId);
    9090      }
    91     }   
     91    }
    9292    </script>
     93    <style>
     94   
     95    table.special
     96    {
     97      border-collapse: collapse;
     98      width: auto;
     99    }
     100    table.special td, table.special tr:first-child th
     101    {
     102      text-align: right;
     103      border-right: 1px dotted #A0A0A0;
     104    }
     105   
     106    </style>
     107   
    93108  </base:head>
    94109  <base:body>
    95     <p>
    96    
    97     <t:tabcontrol id="main" active="overview" switch="switchTab">
     110    <h1>Disk usage</h1>
     111 
     112    <t:tabcontrol
     113      id="main"
     114      subclass="mastertabcontrol content"
     115      active="overview" switch="switchTab">
    98116    <t:tab id="overview" title="Overview">
    99117
    100     <div class="boxed">
    101    
    102     <table border="0" cellspacing="0" cellpadding="2">
    103     <tr>
    104       <th>&nbsp;</th>
    105       <th style="text-align: right;">Total</th>
    106       <th style="text-align: right;">&nbsp;&nbsp;Primary</th>
    107       <th style="text-align: right;">&nbsp;&nbsp;Secondar</th>
    108       <th style="text-align: right;">&nbsp;&nbsp;Offline</th>     
    109       <th style="text-align: right;">&nbsp;&nbsp;External</th>     
    110     </tr>
    111     <tr>
    112       <td colspan="6" style="border-bottom: 1px dotted #999999"></td>
    113     </tr>   
    114     <tr style="background: #E0E0E0;">
    115       <th>Total</th>
    116       <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal())%></td>
    117       <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(Location.PRIMARY))%></td>
    118       <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(Location.SECONDARY))%></td>
    119       <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(Location.OFFLINE))%></td>     
    120       <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(Location.EXTERNAL))%></td>     
    121     </tr>
    122     <tr>
    123       <td colspan="6" style="border-top: 1px dotted #999999"></td>
    124     </tr>   
    125     <%
    126     for (QuotaType qt : quotaTypes)
    127     {
    128       %>
     118      <table class="special fullform bottomborder rightborder">
    129119      <tr>
    130         <th><%=HTML.encodeTags(qt.getName())%></th>
    131         <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(qt))%></td>
    132         <td style="text-align: right;"><%=Values.formatBytes(summary.getTotal(qt, Location.PRIMARY))%></td>
    133         <td style="text-align: right;"><%=qt.hasSecondaryLocation() ? Values.formatBytes(summary.getTotal(qt, Location.SECONDARY)) : "n/a"%></td>
    134         <td style="text-align: right;"><%=qt.getSystemId().equals(QuotaType.FILE) ? Values.formatBytes(summary.getTotal(qt, Location.OFFLINE)) : "n/a"%></td>
    135         <td style="text-align: right;"><%=qt.getSystemId().equals(QuotaType.FILE) ? Values.formatBytes(summary.getTotal(qt, Location.EXTERNAL)) : "n/a"%></td>
     120        <th style="width: 10em;"></th>
     121        <th style="width: 12em;">Total</td>
     122        <th style="width: 12em;">Primary</td>
     123        <th style="width: 12em;">Secondary</td>
     124        <th style="width: 12em;">Offline</td>
     125        <th style="width: 12em;">External</td>
     126      </tr>
     127      <tr style="border-top: 1px solid #A0A0A0;" class="highlight">
     128        <th>Total</th>
     129        <td><%=Values.formatBytes(summary.getTotal())%></td>
     130        <td><%=Values.formatBytes(summary.getTotal(Location.PRIMARY))%></td>
     131        <td><%=Values.formatBytes(summary.getTotal(Location.SECONDARY))%></td>
     132        <td><%=Values.formatBytes(summary.getTotal(Location.OFFLINE))%></td>     
     133        <td><%=Values.formatBytes(summary.getTotal(Location.EXTERNAL))%></td>     
    136134      </tr>
    137135      <%
    138     }
    139     %>
    140     </table>
    141     </div>
     136      for (QuotaType qt : quotaTypes)
     137      {
     138        %>
     139        <tr class="highlight">
     140          <th><%=HTML.encodeTags(qt.getName())%></th>
     141          <td><%=Values.formatBytes(summary.getTotal(qt))%></td>
     142          <td><%=Values.formatBytes(summary.getTotal(qt, Location.PRIMARY))%></td>
     143          <td><%=qt.hasSecondaryLocation() ? Values.formatBytes(summary.getTotal(qt, Location.SECONDARY)) : "n/a"%></td>
     144          <td><%=qt.getSystemId().equals(QuotaType.FILE) ? Values.formatBytes(summary.getTotal(qt, Location.OFFLINE)) : "n/a"%></td>
     145          <td><%=qt.getSystemId().equals(QuotaType.FILE) ? Values.formatBytes(summary.getTotal(qt, Location.EXTERNAL)) : "n/a"%></td>
     146        </tr>
     147        <%
     148      }
     149      %>
     150      </table>
    142151    </t:tab>
    143152    <t:tab id="users" title="Per user" />
  • trunk/www/include/styles/table.css

    r5948 r5950  
    4141.itemlist div.panel
    4242{
    43   padding: 1px 4px 2px 6px;
     43  padding: 1px 2px 2px 2px;
    4444  height: 1.6em;
    4545  max-height: 1.75em;
     
    6262.itemlist div.presetselector, .itemlist div.navigator
    6363{
    64   display: inline;
     64  display: inline-block;
     65  border-right: 1px solid #A0A0A0;
     66  padding-right: 4px;
    6567}
    6668
  • trunk/www/include/styles/toolbar.css

    r5940 r5950  
    3434  background: #E8E8E8;
    3535  padding: 0px;
     36  padding-left: 2px;
    3637  margin: 0px;
    3738}
    3839
    3940.toolbar > table
    40 {
    41   height: 100%;
    42 }
     41{}
    4342
    4443/* Each button is inside a td element */
     
    4645{
    4746  border-right: 1px solid #A0A0A0;
     47  height: 100%;
    4848}
    4949
Note: See TracChangeset for help on using the changeset viewer.