Changeset 5904
- Timestamp:
- Dec 9, 2011, 2:52:53 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/clients/web/net/sf/basedb/clients/web/taglib/tab/TabControl.java
r5809 r5904 25 25 import javax.servlet.jsp.JspException; 26 26 import javax.servlet.jsp.JspTagException; 27 import javax.servlet.jsp.tagext.TagSupport;28 27 29 28 import net.sf.basedb.clients.web.extensions.tabcontrol.TabAction; 29 import net.sf.basedb.clients.web.taglib.StylableTag; 30 30 import net.sf.basedb.util.extensions.ExtensionsInvoker; 31 31 import net.sf.basedb.util.extensions.Renderer; … … 41 41 id=... 42 42 clazz=... 43 subclass=... 43 44 style=... 44 45 contentstyle=... 45 width=...46 46 active=... 47 47 switch=... 48 48 position=... 49 autoheight=true|false50 49 notabs=true|false 51 50 extensions=... … … 77 76 <tr> 78 77 <td>clazz</td> 79 <td> button</td>78 <td>tabcontrol</td> 80 79 <td>no</td> 81 80 <td> … … 83 82 <code>class</code> attribute. This allows you to apply different styles 84 83 to different tables. 84 </td> 85 </tr> 86 <tr> 87 <td>subclass</td> 88 <td>-</td> 89 <td>no</td> 90 <td> 91 Additional classes to put in the HTML class attribute. Doesn't 92 replace the main class attribute. 85 93 </td> 86 94 </tr> … … 141 149 </tr> 142 150 <tr> 143 <td>autoheight</td>144 <td>true</td>145 <td>no</td>146 <td>147 If the tab control should try to automatically adjust the height of the tab content148 area when the window is resized. This functionality replaces the149 <code>window.onresize</code> event handler. If an existing event handler exists150 it will be saved as <code>window.oldOnresize</code> and invoked before the151 tabs are resized.152 </td>153 </tr>154 <tr>155 151 <td>notabs</td> 156 152 <td>false</td> … … 178 174 */ 179 175 public class TabControl 180 extends TagSupport176 extends StylableTag 181 177 implements Renderer<TabAction> 182 178 { … … 187 183 188 184 /** 189 Optional <code>class</code> attribute.190 @since 2.17191 */192 private String clazz;193 194 /**195 Optional <code>style</code> attribute196 */197 private String style = null;198 199 /**200 185 Optional <code>style</code> attribute for the content section 201 186 */ … … 203 188 204 189 /** 205 The width of the tab control.206 */207 private String width = null;208 209 /**210 190 The ID attribute of the active tab. 211 191 */ … … 274 254 public static final int BOTTOM = 2; 275 255 256 public TabControl() 257 { 258 super("tabcontrol"); 259 } 260 276 261 /* 277 262 Taglib initialization methods 278 263 */ 279 /**280 @since 2.17281 */282 public void setClazz(String clazz)283 {284 this.clazz = clazz;285 }286 /**287 @since 2.17288 */289 public String getClazz()290 {291 return clazz;292 }293 294 public void setStyle(String style)295 {296 this.style = style;297 }298 public String getStyle()299 {300 return style;301 }302 303 264 public void setContentstyle(String contentStyle) 304 265 { … … 310 271 } 311 272 312 public void setWidth(String width)313 {314 this.width = width;315 }316 public String getWidth()317 {318 return width;319 }320 321 273 public void setActive(String active) 322 274 { … … 349 301 } 350 302 351 public void setAutoheight(boolean auto)352 {353 this.autoAdjustHeight = auto;354 }355 356 public void setNotabs(boolean noTabs)357 {358 this.noTabs = noTabs;359 }360 361 303 public void setExtensions(ExtensionsInvoker<TabAction> extensions) 362 304 { … … 387 329 tabs.append(" onclick=\"").append(getSwitch()).append("('").append(getId()).append("','").append(tab.getId()).append("')\""); 388 330 if (tab.getTooltip() != null) tabs.append(" title=\"").append(tab.getTooltip()).append("\""); 389 tabs.append(">").append(tab.getTitle()).append("</td> \n");331 tabs.append(">").append(tab.getTitle()).append("</td><td class=\"tabspace\"></td>\n"); 390 332 391 333 script.append("TabControl.initTab('"); … … 417 359 418 360 if (noTabs) return EVAL_BODY_INCLUDE; 419 String className = position == BOTTOM ? "tabcontrol_bottom" : "tabcontrol";420 if (getClazz() != null) className += " " + getClazz();421 361 StringBuilder sb = new StringBuilder(); 422 sb.append("<div class=\"").append(className).append("\""); 423 sb.append(" id=\"").append(getId()).append("\""); 424 sb.append(" border=0 cellspacing=0 cellpadding=0"); 425 if (getStyle() != null) sb.append(" style=\"").append(getStyle()).append("\""); 426 if (getWidth() != null) sb.append(" width=\"").append(getWidth()).append("\""); 362 sb.append("<div "); 363 addIdAndStyles(sb, position == BOTTOM ? "tabsatbottom" : "tabsattop"); 427 364 sb.append(">\n"); 428 365 429 tabs.append("<table border=0 cellspacing=0 cellpadding=0 class=\"tabscontainer\">"); 430 tabs.append("<tr valign=top>\n"); 431 tabs.append("<td class=\"pretabs\">\n"); 432 tabs.append("<table border=0 cellspacing=0 cellpadding=0 class=\"tabs\">\n"); 366 tabs.append("<table class=\"tabscontainer\">"); 367 tabs.append("<tr>\n"); 368 tabs.append("<td class=\"tabfillbefore\"></td>\n"); 369 tabs.append("<td class=\"tabs\">\n"); 370 tabs.append("<table>\n"); 433 371 tabs.append("<tr>\n"); 434 372 … … 459 397 tabs.append("</table>\n"); 460 398 tabs.append("</td>\n"); 461 tabs.append("<td class=\"tabfill \"> </td>\n");399 tabs.append("<td class=\"tabfillafter\"></td>\n"); 462 400 tabs.append("</tr>\n"); 463 401 tabs.append("</table>"); … … 472 410 sb.append(content); 473 411 sb.append("</div>"); 474 //sb.append("</td>\n</tr>\n");475 412 } 476 413 if (!noTabs && position == BOTTOM) sb.append(tabs); … … 483 420 sb.append("\tif (typeof ").append(getSwitch()).append(" != 'undefined') switchFunction = ").append(getSwitch()).append(";\n"); 484 421 sb.append("\tTabControl.setInitialTab('").append(getId()).append("', '").append(startActive).append("', "); 485 sb.append(remember ? "1" : "0").append(", switchFunction, "); 486 sb.append(autoAdjustHeight ? "true" : "false").append(");\n"); 422 sb.append(remember ? "1" : "0").append(", switchFunction);\n"); 487 423 sb.append("});\n"); 488 424 sb.append("</script>\n"); -
trunk/www/WEB-INF/tab.tld
r5482 r5904 58 58 </attribute> 59 59 <attribute> 60 <name>subclass</name> 61 <required>false</required> 62 <rtexprvalue>true</rtexprvalue> 63 </attribute> 64 <attribute> 60 65 <name>style</name> 61 66 <required>false</required> … … 64 69 <attribute> 65 70 <name>contentstyle</name> 66 <required>false</required>67 <rtexprvalue>true</rtexprvalue>68 </attribute>69 <attribute>70 <name>width</name>71 71 <required>false</required> 72 72 <rtexprvalue>true</rtexprvalue> … … 94 94 <attribute> 95 95 <name>remember</name> 96 <required>false</required>97 <rtexprvalue>true</rtexprvalue>98 </attribute>99 <attribute>100 <name>autoheight</name>101 96 <required>false</required> 102 97 <rtexprvalue>true</rtexprvalue> -
trunk/www/admin/server/broadcast.jsp
r5903 r5904 93 93 { 94 94 %> 95 <table class="fullform smaller ">95 <table class="fullform smaller bottomborder"> 96 96 <tr> 97 97 <th>Title</td> -
trunk/www/include/menu.jsp
r5903 r5904 404 404 <m:menuitem 405 405 title="<%=menu.getString("recentoptions.title") + "…"%>" 406 onclick="<%="Main.openPopup('"+root+"my_base/user/preferences.jsp?ID="+ID+"&page=mostRecent', 'Preferences', 500, 400);"%>"406 onclick="<%="Main.openPopup('"+root+"my_base/user/preferences.jsp?ID="+ID+"&page=mostRecent', 'Preferences', 600, 400);"%>" 407 407 tooltip="<%=menu.getString("recentoptions.tooltip")%>" 408 408 /> … … 617 617 <m:menuitem 618 618 title="<%=menu.getString("preferences.title") + "…"%>" 619 onclick="<%="Main.openPopup('"+root+"my_base/user/preferences.jsp?ID="+ID+"', 'Preferences', 500, 400);"%>"619 onclick="<%="Main.openPopup('"+root+"my_base/user/preferences.jsp?ID="+ID+"', 'Preferences', 600, 400);"%>" 620 620 tooltip="<%=menu.getString("preferences.tooltip")%>" 621 621 /> -
trunk/www/include/scripts/tabcontrol.js
r5809 r5904 30 30 function TabControlClass() 31 31 { 32 this.autoAdjust = new Array();33 32 34 33 /** … … 37 36 a remembered active tab. 38 37 */ 39 this.setInitialTab = function(tabControlId, tabId, checkRemembered, switchFunction , autoAdjustHeight)38 this.setInitialTab = function(tabControlId, tabId, checkRemembered, switchFunction) 40 39 { 41 40 if (checkRemembered) … … 57 56 TabControl.setActiveTab(tabControlId, tabId); 58 57 } 59 60 // Set initial size of tab control as compared to the window 61 if (autoAdjustHeight) 62 { 63 var tabContent = document.getElementById(tabControlId+'.content'); 64 var tabHeight = parseInt(tabContent.style.height); 65 var windowHeight = Main.getWindowHeight(); 66 if (tabHeight && windowHeight) 67 { 68 TabControl.autoAdjust[TabControl.autoAdjust.length] = tabControlId; 69 tabContent.initialHeightDifference = windowHeight - tabHeight; 70 } 71 } 58 72 59 } 73 60 … … 90 77 if (tabControl.activeTab != null) 91 78 { 92 tabControl.activeTab.className = 'tab';79 Main.removeClass(tabControl.activeTab, 'active'); 93 80 } 94 tab.className = 'activetab';81 Main.addClass(tab, 'active'); 95 82 96 83 tabControl.activeTab = tab; … … 185 172 } 186 173 } 187 188 this.adjustTabHeights = function() 189 { 190 for (var i = 0; i < TabControl.autoAdjust.length; i++) 191 { 192 var tabControlId = TabControl.autoAdjust[i]; 193 var tabContent = document.getElementById(tabControlId + '.content'); 194 if (tabContent) 195 { 196 var heightDiff = tabContent.initialHeightDifference; 197 if (heightDiff != undefined) 198 { 199 var winHeight = Main.getWindowHeight(); 200 var newHeight = winHeight-heightDiff; 201 if (newHeight >= 0) tabContent.style.height = newHeight+'px'; 202 } 203 } 204 } 205 } 174 206 175 } 207 176 208 window.oldOnresize = window.onresize;209 window.onresize = function()210 {211 if (window.oldOnresize) window.oldOnresize();212 TabControl.adjustTabHeights();213 }214 177 178 -
trunk/www/include/styles/main.css
r5903 r5904 149 149 } 150 150 151 152 151 /* 153 152 Generic commonly used styles … … 160 159 border-bottom: 1px solid #A0A0A0; 161 160 } 161 162 .filled 163 { 164 background: #E8E8E8; 165 } 166 162 167 /* 163 168 STYLES BELOW ARE OLD AND SHOULD BE VERIFIED -
trunk/www/include/styles/popup.css
r5903 r5904 71 71 right: 0px; 72 72 /* top and bottom are specified in one of size_*.css */ 73 overflow: auto; 74 } 75 76 /* Fill the content area with a background color and a bottom border */ 77 .popup .content.filled 78 { 73 79 background: #E8E8E8; 74 80 border-bottom: 1px solid #A0A0A0; 75 overflow: auto;76 81 } 77 82 … … 85 90 /* needed for scrollbars to appear if content is overflowing */ 86 91 min-height: 100px; 92 background: #E8E8E8; 93 border-bottom: 1px solid #A0A0A0; 87 94 } 88 95 … … 120 127 or <table class="fullform larger"> 121 128 */ 122 .popup .contenttable.fullform129 .popup table.fullform 123 130 { 124 131 width: 100%; 125 132 height: 100%; 126 background: #FFFFFF; 133 background: #E8E8E8; 134 xborder-bottom: 1px solid #A0A0A0; 135 127 136 } 128 137 … … 141 150 width: 150px; 142 151 font-weight: bold; 143 background-color: #E8E8E8;144 152 white-space: nowrap; 145 153 text-align: left; … … 157 165 table.fullform td 158 166 { 167 background: #FFFFFF; 159 168 padding: 1px 2px 1px 2px; 160 169 } -
trunk/www/include/styles/size_m.css
r5903 r5904 63 63 } 64 64 65 .popup .content 65 .popup .content, .popup .dialogtabcontrol 66 66 { 67 67 /* should fit between title and buttons */ -
trunk/www/include/styles/tabcontrol.css
r5809 r5904 28 28 */ 29 29 30 .tabcontrol, .tabcontrol_bottom { 31 border-left: 1px solid #999999; 32 margin-bottom: 0px; 30 /* Main tab control */ 31 .tabcontrol 32 { 33 border-color: #A0A0A0; 34 border-style: solid; 35 border-width: 0px; 33 36 } 34 37 35 .tabcontrol .tabs { 36 border-top: 1px solid #999999; 37 border-bottom: 0px; 38 border-left: 0px; 39 border-right: 0px; 38 /* Main content area */ 39 .tabcontrol .tabcontents 40 { 41 background: #E8E8E8; 40 42 } 41 43 42 .tabcontrol_bottom .tabs { 43 border-bottom: 1px solid #999999; 44 border-top: 0px; 45 border -left: 0px;46 border- right: 0px;44 /* Add border on top or bottom depending on where tabs are */ 45 .tabsatbottom .tabcontents 46 { 47 border: inherit; 48 border-width: 1px 1px 0px 1px; 47 49 } 48 50 49 .tabcontrol .tab { 50 background: #CCCCCC; 51 border-top: 1px solid #FFFFFF; 52 border-left: 1px solid #FFFFFF; 53 border-bottom: 1px solid #999999; 54 border-right: 1px solid #999999; 55 white-space: nowrap; 56 padding: 2px 6px 2px 4px; 57 } 58 .tabcontrol .tab:hover { 59 background: #F0F0F0; 60 cursor: pointer; 51 .tabsontop .tabcontents 52 { 53 border: inherit; 54 border-width: 0px 1px 1px 1px; 61 55 } 62 56 63 .tabcontrol_bottom .tab { 64 background: #CCCCCC; 65 border-top: 1px solid #999999; 66 border-left: 1px solid #FFFFFF; 67 border-bottom: 0px; 68 border-right: 1px solid #999999; 57 58 /* Tabs */ 59 .tabcontrol .tab 60 { 61 background: #E8E8E8; 69 62 white-space: nowrap; 63 cursor: pointer; 64 border: 1px solid #A0A0A0; 70 65 padding: 2px 6px 2px 4px; 71 66 } 72 67 73 .tabcontrol_bottom .tab:hover { 74 background: #F0F0F0; 75 cursor: pointer; 68 /* Put blue-ish border around tab when hovering */ 69 .tabcontrol .tab:hover 70 { 71 /* Decrese padding to avoid movement */ 72 padding: 1px 5px 1px 3px; 73 border: 2px solid #2288AA; 76 74 } 77 75 78 .tabcontrol .activetab { 76 .tabcontrol .tab.active 77 { 79 78 font-weight: bold; 80 background: #E0E0E0; 81 border-top: 1px solid #FFFFFF; 82 border-left: 1px solid #FFFFFF; 83 border-bottom: 0px; 84 border-right: 1px solid #999999; 85 white-space: nowrap; 79 } 80 81 /* Revert to default for the active tab */ 82 .tabcontrol .tab.active:hover 83 { 84 cursor: auto; 85 border: 1px solid #A0A0A0; 86 86 padding: 2px 6px 2px 4px; 87 87 } 88 .tabcontrol_bottom .activetab { 89 font-weight: bold; 90 background: #E0E0E0; 91 border-top: 0px; 92 border-left: 1px solid #FFFFFF; 93 border-bottom: 0px; 94 border-right: 1px solid #999999; 95 white-space: nowrap; 96 padding: 3px 6px 2px 4px; 88 89 /* Creates a small space between the tabs */ 90 .tabcontrol .tabspace 91 { 92 width: 2px; 93 max-width: 2px; 94 min-width: 2px; 97 95 } 98 96 99 100 .tabcontrol .activetab a, .tabcontrol_bottom .activetab a { 101 text-decoration: none; 102 color: #000000; 103 cursor: default; 104 } 105 .tabcontrol .pretabs, .tabcontrol_bottom .pretabs { 106 width: 1%; 97 /* Specific for tabcontrol with tabs at bottom */ 98 .tabsatbottom .tabs 99 { 100 vertical-align: top; 107 101 } 108 102 109 .tabcontrol .tabfill { 110 border-bottom: 1px solid #999999; 111 border-top: 0px; 112 border-left: 0px; 113 border-right: 0px; 114 width: 99%; 115 } 116 .tabcontrol_bottom .tabfill { 117 border-top: 1px solid #999999; 118 border-bottom: 0px; 119 border-left: 0px; 120 border-right: 0px; 121 width: 99%; 122 } 123 .tabcontrol .tabcontents { 124 border-top: 0px; 125 border-left: 1px solid #FFFFFF; 126 border-bottom: 1px solid #999999; 127 border-right: 1px solid #999999; 128 padding: 4px; 129 margin-top: 0px; 130 background: #E0E0E0; 131 overflow: auto; 132 } 133 .tabcontrol_bottom .tabcontents { 134 border-top: 1px solid #999999; 135 border-left: 1px solid #FFFFFF; 136 border-bottom: 0px; 137 border-right: 1px solid #999999; 138 padding: 4px; 139 background: #E0E0E0; 140 overflow: auto; 103 .tabsatbottom .tab 104 { 105 /* Rounded corners at bottom */ 106 border-radius: 0px 0px 5px 5px; 141 107 } 142 108 109 /* Hide top border from active tab */ 110 .tabsatbottom .tab.active 111 { 112 border-top: 1px solid #E8E8E8 !important; 113 } 143 114 115 /* Add top border on tabspace */ 116 .tabsatbottom .tabspace 117 { 118 border-top: 1px solid #A0A0A0; 119 } 120 121 .tabsatbottom .tabfillbefore 122 { 123 width: 5px; 124 min-width: 5px; 125 max-width: 5px; 126 border-top: 1px solid #A0A0A0; 127 } 128 129 .tabsatbottom .tabfillafter 130 { 131 width: 99%; 132 border-top: 1px solid #A0A0A0; 133 } 134 135 /* Used in popup windows to fill out the area between title and buttons */ 136 .tabcontrol.dialogtabcontrol 137 { 138 position: absolute; 139 left: 0px; 140 right: 0px; 141 } 142 143 .dialogtabcontrol .tabcontents > div 144 { 145 position: absolute; 146 top: 0px; 147 left: 0px; 148 right: 0px; 149 bottom: 2em; 150 border-width: 0px !important; 151 } 152 153 .dialogtabcontrol .tabscontainer 154 { 155 position: absolute; 156 bottom: 0px; 157 height: 2em; 158 } 159 -
trunk/www/my_base/user/preferences.jsp
r5901 r5904 227 227 </base:head> 228 228 <base:body onload="initItemTypes()"> 229 230 229 <h1>Preferences for <%=HTML.encodeTags(user.getName())%> <base:help tabcontrol="settings" /></h1> 231 <br><br> 232 <form action="submit_user.jsp?ID=<%=ID%>" method="post" name="preferences" 233 onsubmit="return false;"> 234 <input type=hidden name="cmd" value="SavePreferences"> 235 <input type="hidden" name="mincolor" value="0000FF"> 236 <input type="hidden" name="midcolor" value="000000"> 237 <input type="hidden" name="maxcolor" value="FFFF00"> 238 239 <t:tabcontrol active="<%=activePage%>" remember="<%=activePage == null%>" id="settings" 240 contentstyle="<%="height: "+(int)(scale*260)+"px;"%>" 241 position="bottom"> 242 <t:tab 243 id="appearance" 244 title="Appearance" 245 validate="validateAppearance()" 246 helpid="userpreferences.appearance" 247 > 248 <table class="form" cellspacing=0> 249 <tr> 250 <td class="prompt">Font size</td> 251 <td> 230 <form action="submit_user.jsp?ID=<%=ID%>" method="post" name="preferences" 231 onsubmit="return false;"> 232 <input type=hidden name="cmd" value="SavePreferences"> 233 <input type="hidden" name="mincolor" value="0000FF"> 234 <input type="hidden" name="midcolor" value="000000"> 235 <input type="hidden" name="maxcolor" value="FFFF00"> 236 237 <t:tabcontrol 238 subclass="dialogtabcontrol" 239 active="<%=activePage%>" remember="<%=activePage == null%>" id="settings" 240 position="bottom"> 241 <t:tab 242 id="appearance" 243 title="Appearance" 244 validate="validateAppearance()" 245 helpid="userpreferences.appearance" 246 > 247 <table class="fullform"> 248 <tr> 249 <th>Font size</th> 250 <td> 251 <% 252 String fontsize = Values.getString(sc.getUserClientSetting("appearance.fontsize"), "size_m.css"); 253 %> 254 <input type="radio" name="fontsize" id="fontsizeXS" value="size_xs.css" 255 <%="size_xs.css".equals(fontsize) ? "checked" : ""%> onclick="setScale(80)" 256 ><label for="fontsizeXS">XS</label> 257 <input type="radio" name="fontsize" id="fontsizeS" value="size_s.css" 258 <%="size_s.css".equals(fontsize) ? "checked" : ""%> onclick="setScale(90)" 259 ><label for="fontsizeS">S</label> 260 <input type="radio" name="fontsize" id="fontsizeM" value="size_m.css" 261 <%="size_m.css".equals(fontsize) ? "checked" : ""%> onclick="setScale(100)" 262 ><label for="fontsizeM">M</label> 263 <input type="radio" name="fontsize" id="fontsizeL" value="size_l.css" 264 <%="size_l.css".equals(fontsize) ? "checked" : ""%> onclick="setScale(120)" 265 ><label for="fontsizeL">L</label> 266 <input type="radio" name="fontsize" id="fontsizeXL" value="size_xl.css" 267 <%="size_xl.css".equals(fontsize) ? "checked" : ""%> onclick="setScale(140)" 268 ><label for="fontsizeXL">XL</label> 269 </td> 270 </tr> 271 <tr> 272 <th>Scale factor</th> 273 <td> 274 <input class="text required" type="text" name="scale" 275 value="<%=Values.getInt(sc.getUserClientSetting("appearance.scale"), 100)%>" 276 size="4" maxlength="3" onkeypress="return Numbers.integerOnly(event);">% 277 (50 - 200) 278 </td> 279 </tr> 280 <tr> 281 <th>Display long texts</th> 282 <td> 283 <input type="radio" name="longTexts" id="longTextsAlways" value="display" 284 <%="display".equals(longTexts) ? "checked" : "" %> 285 ><label for="longTextsAlways">Always</label> 286 <input type="radio" name="longTexts" id="longTextsHover" value="hover" 287 <%="hover".equals(longTexts) ? "checked" : "" %> 288 ><label for="longTextsHover">On hover</label> 289 <input type="radio" name="longTexts" id="longTextsClick" value="click" 290 <%="click".equals(longTexts) ? "checked" : "" %> 291 ><label for="longTextsClick">On click</label> 292 </td> 293 </tr> 294 <tr> 295 <th>Toolbar</th> 296 <td> 297 <input type="radio" name="toolbar" id="toolbarBoth" value="both" 298 <%=hasImages && hasText ? "checked" : "" %> 299 ><label for="toolbarBoth">Images and text</label> 300 <input type="radio" name="toolbar" id="toolbarImages" value="images" 301 <%=hasImages && !hasText ? "checked" : "" %> 302 ><label for="toolbarImages">Images only</label> 303 <input type="radio" name="toolbar" id="toolbarText" value="text" 304 <%=!hasImages && hasText ? "checked" : "" %> 305 ><label for="toolbarText">Text only</label> 306 </td> 307 </tr> 308 <tr> 309 <th>Ratio color range</th> 310 <td> 311 <table> 312 <tr> 313 <td><a href="javascript:selectColor('Color for min value', 'mincolor')"><div 314 id="mincolor" style="background: #<%=minColor%>;" class="colorbox"></div>Min</a></td> 315 <td><a href="javascript:selectColor('Color for midpoint value', 'midcolor')"><div 316 id="midcolor" style="background: #<%=midColor%>;" class="colorbox"></div>Mid</a></td> 317 <td><a href="javascript:selectColor('Color for max value', 'maxcolor')"><div 318 id="maxcolor" style="background: #<%=maxColor%>;" class="colorbox"></div>Max</td> 319 320 <td> 321 <select name="presets" onchange="presetColorOnChange()" class="selectionlist"> 322 <option value="">- presets - 323 <option value="FF0000,FFFF00,00FF00">Red - Yellow - Green 324 <option value="0000FF,FFFFFF,FFFF00">Blue - White - Yellow 325 <option value="000000,999999,FFFFFF">Black - Grey - White 326 <% 327 if (recentColors != null && recentColors.size() > 0) 328 { 329 %> 330 <option value="" class="recentheader">- recently used - 331 <% 332 for (int i = 0; i < recentColors.size(); ++i) 333 { 334 String color = recentColors.get(i); 335 %> 336 <option value="<%=color%>" class="recent"><%=color%> 337 <% 338 } 339 } 340 %> 341 </select> 342 </td> 343 </tr> 344 </table> 345 </td> 346 </tr> 347 <tr> 348 <th>Date format</th> 349 <td> 350 <input class="text" type="text" name="date_format" 351 value="<%=HTML.encodeTags(FormatterSettings.getDateFormat(sc))%>" 352 size="20"> 353 <select name="datePresets" onchange="datePresetOnChange()" class="selectionlist"> 354 <option value="">- presets - 355 <option value="yyyy-MM-dd">yyyy-MM-dd 356 <option value="d/M/yyyy">d/M/yyyy 357 <option value="M/d/yyyy">M/d/yyyy 358 <% 359 if (recentDateFormats != null && recentDateFormats.size() > 0) 360 { 361 %> 362 <option value="" class="recentheader">- recently used - 363 <% 364 for (int i = 0; i < recentDateFormats.size(); ++i) 365 { 366 String format = HTML.encodeTags(recentDateFormats.get(i)); 367 %> 368 <option value="<%=format%>" class="recent"><%=format%> 369 <% 370 } 371 } 372 %> 373 </select> 374 </td> 375 </tr> 376 377 <tr> 378 <th>Date-time format</th> 379 <td> 380 <input class="text" type="text" name="datetime_format" 381 value="<%=HTML.encodeTags(FormatterSettings.getDateTimeFormat(sc))%>" 382 size="20"> 383 <select name="dateTimePresets" onchange="dateTimePresetOnChange()" class="selectionlist"> 384 <option value="">- presets - 385 <option value="yyyy-MM-dd HH:mm:ss">yyyy-MM-dd HH:mm:ss 386 <option value="d/M/yyyy HH:mm:ss">d/M/yyyy HH:mm:ss 387 <option value="M/d/yyyy HH:mm:ss">M/d/yyyy HH:mm:ss 388 <% 389 if (recentDateTimeFormats != null && recentDateTimeFormats.size() > 0) 390 { 391 %> 392 <option value="" class="recentheader">- recently used - 393 <% 394 for (int i = 0; i < recentDateTimeFormats.size(); ++i) 395 { 396 String format = HTML.encodeTags(recentDateTimeFormats.get(i)); 397 %> 398 <option value="<%=format%>" class="recent"><%=format%> 399 <% 400 } 401 } 402 %> 403 </select> 404 </td> 405 </tr> 252 406 <% 253 String fontsize = Values.getString(sc.getUserClientSetting("appearance.fontsize"), "size_m.css");407 int numDecimals = FormatterSettings.getNumDecimals(sc); 254 408 %> 255 <input type="radio" name="fontsize" id="fontsizeXS" value="size_xs.css" 256 <%="size_xs.css".equals(fontsize) ? "checked" : ""%> onclick="setScale(80)" 257 ><label for="fontsizeXS">XS</label> 258 <input type="radio" name="fontsize" id="fontsizeS" value="size_s.css" 259 <%="size_s.css".equals(fontsize) ? "checked" : ""%> onclick="setScale(90)" 260 ><label for="fontsizeS">S</label> 261 <input type="radio" name="fontsize" id="fontsizeM" value="size_m.css" 262 <%="size_m.css".equals(fontsize) ? "checked" : ""%> onclick="setScale(100)" 263 ><label for="fontsizeM">M</label> 264 <input type="radio" name="fontsize" id="fontsizeL" value="size_l.css" 265 <%="size_l.css".equals(fontsize) ? "checked" : ""%> onclick="setScale(120)" 266 ><label for="fontsizeL">L</label> 267 <input type="radio" name="fontsize" id="fontsizeXL" value="size_xl.css" 268 <%="size_xl.css".equals(fontsize) ? "checked" : ""%> onclick="setScale(140)" 269 ><label for="fontsizeXL">XL</label> 270 </td> 271 </tr> 272 <tr> 273 <td class="prompt">Scale factor</td> 274 <td> 275 <input class="text required" type="text" name="scale" 276 value="<%=Values.getInt(sc.getUserClientSetting("appearance.scale"), 100)%>" 277 size="4" maxlength="3" onkeypress="return Numbers.integerOnly(event);">% 278 (50 - 200) 279 </td> 280 </tr> 281 <tr> 282 <td class="prompt">Display long texts</td> 283 <td> 284 <input type="radio" name="longTexts" id="longTextsAlways" value="display" 285 <%="display".equals(longTexts) ? "checked" : "" %> 286 ><label for="longTextsAlways">Always</label> 287 <input type="radio" name="longTexts" id="longTextsHover" value="hover" 288 <%="hover".equals(longTexts) ? "checked" : "" %> 289 ><label for="longTextsHover">On hover</label> 290 <input type="radio" name="longTexts" id="longTextsClick" value="click" 291 <%="click".equals(longTexts) ? "checked" : "" %> 292 ><label for="longTextsClick">On click</label> 293 </td> 294 </tr> 295 <tr> 296 <td class="prompt">Toolbar</td> 297 <td> 298 <input type="radio" name="toolbar" id="toolbarBoth" value="both" 299 <%=hasImages && hasText ? "checked" : "" %> 300 ><label for="toolbarBoth">Images and text</label> 301 <input type="radio" name="toolbar" id="toolbarImages" value="images" 302 <%=hasImages && !hasText ? "checked" : "" %> 303 ><label for="toolbarImages">Images only</label> 304 <input type="radio" name="toolbar" id="toolbarText" value="text" 305 <%=!hasImages && hasText ? "checked" : "" %> 306 ><label for="toolbarText">Text only</label> 307 </td> 308 </tr> 309 <tr> 310 <td class="prompt">Ratio color range</td> 311 <td> 312 <table> 313 <tr> 314 <td><a href="javascript:selectColor('Color for min value', 'mincolor')"><div 315 id="mincolor" style="background: #<%=minColor%>;" class="colorbox"></div>Min</a></td> 316 <td><a href="javascript:selectColor('Color for midpoint value', 'midcolor')"><div 317 id="midcolor" style="background: #<%=midColor%>;" class="colorbox"></div>Mid</a></td> 318 <td><a href="javascript:selectColor('Color for max value', 'maxcolor')"><div 319 id="maxcolor" style="background: #<%=maxColor%>;" class="colorbox"></div>Max</td> 320 321 <td> 322 <select name="presets" onchange="presetColorOnChange()" class="selectionlist"> 323 <option value="">- presets - 324 <option value="FF0000,FFFF00,00FF00">Red - Yellow - Green 325 <option value="0000FF,FFFFFF,FFFF00">Blue - White - Yellow 326 <option value="000000,999999,FFFFFF">Black - Grey - White 327 <% 328 if (recentColors != null && recentColors.size() > 0) 329 { 330 %> 331 <option value="" class="recentheader">- recently used - 409 <tr> 410 <th>Decimals</th> 411 <td> 412 <select name="decimals"> 332 413 <% 333 for (int i = 0; i < recentColors.size(); ++i)414 for (int i = 0; i < 8; i++) 334 415 { 335 String color = recentColors.get(i);336 416 %> 337 <option value="<%= color%>" class="recent"><%=color%>417 <option value="<%=i%>" <%=numDecimals == i ? "selected" : ""%>><%=i%> 338 418 <% 339 419 } 340 } 341 %> 342 </select> 343 </td> 420 %> 421 <option value="-1" <%=numDecimals < 0 ? "selected" : ""%>>all 422 </select> 423 </td> 424 </tr> 425 <tr class="dynamic"> 426 <th></th> 427 <td style="vertical-align: bottom;"><base:icon image="required.gif" /> = required information</i></td> 344 428 </tr> 345 429 </table> 346 </td> 347 </tr> 348 <tr> 349 <td class="prompt">Date format</td> 350 <td> 351 <input class="text" type="text" name="date_format" 352 value="<%=HTML.encodeTags(FormatterSettings.getDateFormat(sc))%>" 353 size="20"> 354 <select name="datePresets" onchange="datePresetOnChange()" class="selectionlist"> 355 <option value="">- presets - 356 <option value="yyyy-MM-dd">yyyy-MM-dd 357 <option value="d/M/yyyy">d/M/yyyy 358 <option value="M/d/yyyy">M/d/yyyy 359 <% 360 if (recentDateFormats != null && recentDateFormats.size() > 0) 361 { 430 </t:tab> 431 432 <t:tab 433 id="plugins" 434 title="Plugins" 435 validate="validatePlugins()" 436 helpid="userpreferences.plugins" 437 > 438 <table class="fullform"> 439 <tr> 440 <th>Messages</th> 441 <td> 442 <% 443 boolean sendMessage = Values.getBoolean(sc.getUserClientSetting("plugins.sendmessage"), true); 362 444 %> 363 <option value="" class="recentheader">- recently used - 445 <input type="checkbox" name="sendmessage" id="sendMessage" value="1" <%=sendMessage ? "checked" : ""%> 446 ><label for="sendMessage">Send message when plugin completes</label> 447 </td> 448 </tr> 449 <tr> 450 <th>Remove jobs</th> 451 <td> 364 452 <% 365 for (int i = 0; i < recentDateFormats.size(); ++i) 366 { 367 String format = HTML.encodeTags(recentDateFormats.get(i)); 368 %> 369 <option value="<%=format%>" class="recent"><%=format%> 370 <% 371 } 372 } 373 %> 374 </select> 375 </td> 376 </tr> 377 378 <tr> 379 <td class="prompt">Date-time format</td> 380 <td> 381 <input class="text" type="text" name="datetime_format" 382 value="<%=HTML.encodeTags(FormatterSettings.getDateTimeFormat(sc))%>" 383 size="20"> 384 <select name="dateTimePresets" onchange="dateTimePresetOnChange()" class="selectionlist"> 385 <option value="">- presets - 386 <option value="yyyy-MM-dd HH:mm:ss">yyyy-MM-dd HH:mm:ss 387 <option value="d/M/yyyy HH:mm:ss">d/M/yyyy HH:mm:ss 388 <option value="M/d/yyyy HH:mm:ss">M/d/yyyy HH:mm:ss 389 <% 390 if (recentDateTimeFormats != null && recentDateTimeFormats.size() > 0) 391 { 453 boolean removeJobWhenFinished = Values.getBoolean(sc.getUserClientSetting("plugins.removejob"), false); 392 454 %> 393 <option value="" class="recentheader">- recently used - 455 <input type="checkbox" name="removejob" id="removeJob" value="1" <%=removeJobWhenFinished ? "checked" : "" %> 456 ><label for="removeJob">Remove import and export jobs when they are finished.</label> 457 </td> 458 </tr> 459 <tr> 460 <th>Show warnings</th> 461 <td> 394 462 <% 395 for (int i = 0; i < recentDateTimeFormats.size(); ++i) 396 { 397 String format = HTML.encodeTags(recentDateTimeFormats.get(i)); 398 %> 399 <option value="<%=format%>" class="recent"><%=format%> 400 <% 401 } 402 } 403 %> 404 </select> 405 </td> 406 </tr> 407 <% 408 int numDecimals = FormatterSettings.getNumDecimals(sc); 409 %> 410 <tr> 411 <td class="prompt">Decimals</td> 412 <td> 413 <select name="decimals"> 463 boolean showWarnings = Values.getBoolean(sc.getUserClientSetting("plugins.showWarnings"), false); 464 %> 465 <input type="checkbox" name="show_warnings" id="showWarnings" value="1" <%=showWarnings ? "checked" : "" %> 466 ><label for="showWarnings">Show plug-in warning messages when starting a new job.</label> 467 </td> 468 </tr> 469 <tr class="dynamic"> 470 <th></th> 471 <td></td> 472 </tr> 473 </table> 474 </t:tab> 475 476 <t:tab 477 id="mostRecent" 478 title="Recent items" 479 validate="validateMostRecent()" 480 helpid="userpreferences.mostrecent" 481 tooltip="Specify how many items to remember in lists of 'most recent items'" 482 > 414 483 <% 415 for (int i = 0; i < 8; i++) 416 { 417 %> 418 <option value="<%=i%>" <%=numDecimals == i ? "selected" : ""%>><%=i%> 419 <% 420 } 484 boolean loadNames = Values.getBoolean(sc.getUserClientSetting("menu.mostRecent.loadNames"), true); 421 485 %> 422 <option value="-1" <%=numDecimals < 0 ? "selected" : ""%>>all 423 </select> 424 </td> 425 </tr> 426 427 </table> 428 <div align="right"> <i><base:icon image="required.gif" /> = required information</i></div> 429 </t:tab> 430 431 <t:tab 432 id="plugins" 433 title="Plugins" 434 validate="validatePlugins()" 435 helpid="userpreferences.plugins" 436 > 437 <table class="form" cellspacing=0> 438 <tr> 439 <td class="prompt">Messages</td> 440 <td> 441 <% 442 boolean sendMessage = Values.getBoolean(sc.getUserClientSetting("plugins.sendmessage"), true); 443 %> 444 <input type="checkbox" name="sendmessage" id="sendMessage" value="1" <%=sendMessage ? "checked" : ""%> 445 ><label for="sendMessage">Send message when plugin completes</label> 446 </td> 447 </tr> 448 <tr> 449 <td class="prompt">Remove jobs</td> 450 <td> 451 <% 452 boolean removeJobWhenFinished = Values.getBoolean(sc.getUserClientSetting("plugins.removejob"), false); 453 %> 454 <input type="checkbox" name="removejob" id="removeJob" value="1" <%=removeJobWhenFinished ? "checked" : "" %> 455 ><label for="removeJob">Remove import and export jobs when they are finished.</label> 456 </td> 457 </tr> 458 <tr> 459 <td class="prompt">Show warnings</td> 460 <td> 461 <% 462 boolean showWarnings = Values.getBoolean(sc.getUserClientSetting("plugins.showWarnings"), false); 463 %> 464 <input type="checkbox" name="show_warnings" id="showWarnings" value="1" <%=showWarnings ? "checked" : "" %> 465 ><label for="showWarnings">Show plug-in warning messages when starting a new job.</label> 466 </td> 467 </tr> 468 </table> 469 </t:tab> 470 471 <t:tab 472 id="mostRecent" 473 title="Recent items" 474 validate="validateMostRecent()" 475 helpid="userpreferences.mostrecent" 476 tooltip="Specify how many items to remember in lists of 'most recent items'" 477 > 478 <% 479 boolean loadNames = Values.getBoolean(sc.getUserClientSetting("menu.mostRecent.loadNames"), true); 480 %> 481 <table border=0 cellspacing=0 cellpadding=2 class="form"> 482 <tr valign="baseline"> 483 <td class="prompt">Recently viewed items</td> 484 <td> 485 <input class="text required" type="text" name="maxViewed" 486 value="<%=Values.getInt(sc.getUserClientSetting("menu.mostRecent.maxViewed"), 6)%>" 487 size="4" maxlength="2" onkeypress="return Numbers.integerOnly(event);"> 488 (0 - 10) 489 </td> 490 </tr> 491 <tr> 492 <td class="prompt">Recently used items</td> 493 <td> 494 <input class="text required" type="text" name="maxUsed" 495 value="<%=Values.getInt(sc.getUserClientSetting("appearance.recent"), 4)%>" 496 size="4" maxlength="2" onkeypress="return Numbers.integerOnly(event);"> 497 (0 - 10) 498 </td> 499 </tr> 500 <tr> 501 <td class="prompt"><label for="loadNames">Load the names of all items</label></td> 502 <td> 503 <input type="checkbox" name="loadNames" id="loadNames" value="1" <%=loadNames ? "checked" : ""%>> 504 </td> 505 </tr> 506 </table> 507 <table border=0 cellspacing=0 cellpadding=2> 508 509 <tr> 510 <td style="vertical-align: middle"> 511 <br> 512 <base:button 513 onclick="moveSelected(document.forms['preferences'].sticky_items, false)" 514 title="<img src='../../images/move_up.gif' alt='' style='vertical-align: middle;'>" 515 tooltip="Move up" 516 /><p> 517 <base:button 518 onclick="moveSelected(document.forms['preferences'].sticky_items, true)" 519 title="<img src='../../images/move_down.gif' alt='' style='vertical-align: middle;'>" 520 tooltip="Move down" 521 /> 522 <br> 523 </td> 524 <td> 525 <b>Sticky items</b><br> 526 <select name="sticky_items" multiple size="10" style="width: 12em;" 527 ondblclick="moveBetween(document.forms['preferences'].sticky_items, document.forms['preferences'].all_items)"> 528 </select> 529 </td> 530 531 <td> 532 <br> 533 <base:button 534 onclick="moveBetween(document.forms['preferences'].all_items, document.forms['preferences'].sticky_items)" 535 title="<img src='../../images/move_left.gif' alt='' style='vertical-align: middle;'>" 536 tooltip="Show this item in the 'Most recent' menu" 537 /><p> 538 <base:button 539 onclick="moveBetween(document.forms['preferences'].sticky_items, document.forms['preferences'].all_items)" 540 title="<img src='../../images/move_right.gif' alt='' style='vertical-align: middle;'>" 541 tooltip="Don't show this item in the 'Most recent' menu" 542 /> 543 <br> 544 </td> 545 546 <td> 547 <b>All items</b><br> 548 <select name="all_items" multiple size="10" style="width: 12em;" 549 ondblclick="moveBetween(document.forms['preferences'].all_items, document.forms['preferences'].sticky_items)"> 550 </select> 551 </td> 552 </tr> 553 </table> 554 </t:tab> 555 </t:tabcontrol> 556 </form> 486 <table class="fullform"> 487 <tr valign="baseline"> 488 <th>Recently viewed items</th> 489 <td> 490 <input class="text required" type="text" name="maxViewed" 491 value="<%=Values.getInt(sc.getUserClientSetting("menu.mostRecent.maxViewed"), 6)%>" 492 size="4" maxlength="2" onkeypress="return Numbers.integerOnly(event);"> 493 (0 - 10) 494 </td> 495 </tr> 496 <tr> 497 <th>Recently used items</th> 498 <td> 499 <input class="text required" type="text" name="maxUsed" 500 value="<%=Values.getInt(sc.getUserClientSetting("appearance.recent"), 4)%>" 501 size="4" maxlength="2" onkeypress="return Numbers.integerOnly(event);"> 502 (0 - 10) 503 </td> 504 </tr> 505 <tr> 506 <th>Load item names</th> 507 <td> 508 <input type="checkbox" name="loadNames" id="loadNames" value="1" <%=loadNames ? "checked" : ""%>> 509 <label for="loadNames">Load the names of all items</label> 510 </td> 511 </tr> 512 <tr class="dynamic"> 513 <th></th> 514 <td> 515 <table> 516 <tr> 517 <td style="vertical-align: middle"> 518 <br> 519 <base:button 520 onclick="moveSelected(document.forms['preferences'].sticky_items, false)" 521 title="<img src='../../images/move_up.gif' alt='' style='vertical-align: middle;'>" 522 tooltip="Move up" 523 /><p> 524 <base:button 525 onclick="moveSelected(document.forms['preferences'].sticky_items, true)" 526 title="<img src='../../images/move_down.gif' alt='' style='vertical-align: middle;'>" 527 tooltip="Move down" 528 /> 529 <br> 530 </td> 531 <td> 532 <b>Sticky items</b><br> 533 <select name="sticky_items" "multiple size="12" style="width: 12em;" 534 ondblclick="moveBetween(document.forms['preferences'].sticky_items, document.forms['preferences'].all_items)"> 535 </select> 536 </td> 537 538 <td> 539 <br> 540 <base:button 541 onclick="moveBetween(document.forms['preferences'].all_items, document.forms['preferences'].sticky_items)" 542 title="<img src='../../images/move_left.gif' alt='' style='vertical-align: middle;'>" 543 tooltip="Show this item in the 'Most recent' menu" 544 /><p> 545 <base:button 546 onclick="moveBetween(document.forms['preferences'].sticky_items, document.forms['preferences'].all_items)" 547 title="<img src='../../images/move_right.gif' alt='' style='vertical-align: middle;'>" 548 tooltip="Don't show this item in the 'Most recent' menu" 549 /> 550 <br> 551 </td> 552 553 <td> 554 <b>All items</b><br> 555 <select name="all_items" multiple size="12" style="width: 12em;" 556 ondblclick="moveBetween(document.forms['preferences'].all_items, document.forms['preferences'].sticky_items)"> 557 </select> 558 </td> 559 </tr> 560 </table> 561 562 </td> 563 </tr> 564 </table> 565 </t:tab> 566 </t:tabcontrol> 567 </form> 557 568 558 569 <base:buttongroup subclass="dialogbuttons"> -
trunk/www/my_base/user/reset_filters.jsp
r5903 r5904 94 94 <input type=hidden name="cmd" value="ResetFilters"> 95 95 96 <div class="content ">97 <div class="bottomborder">98 <table class="fullform smaller ">96 <div class="content filled"> 97 <div> 98 <table class="fullform smaller bottomborder"> 99 99 <tr> 100 100 <th>Which list?</th> 101 101 <td> 102 <select name="item_type" onchange="itemTypeOnChange()" style="width: 100%;">102 <select name="item_type" onchange="itemTypeOnChange()" class="selectionlist"> 103 103 <option value="">- all - 104 104 <% … … 120 120 </td> 121 121 </tr> 122 123 122 </table> 124 </div> 123 </div> 124 125 125 <div class="padded"> 126 126 * = This setting is only in the database -
trunk/www/my_base/user/settings.jsp
r5901 r5904 59 59 { 60 60 final User user = User.getById(dc, sc.getLoggedInUserId()); 61 final String title = "Information for " + HTML.encodeTags(user.getName()); 61 62 final boolean writePermission = user.hasPermission(Permission.RESTRICTED_WRITE); 62 63 final String clazz = writePermission ? "class=\"text\"" : "class=\"text disabled\" disabled readonly"; … … 78 79 String htmlDateTimeFormat = HTML.encodeTags(dateTimeFormat); 79 80 %> 80 <base:page type="popup" title="<%= "Information for "+HTML.encodeTags(user.getName())%>">81 <base:page type="popup" title="<%=title%>"> 81 82 <base:head scripts="tabcontrol.js" styles="tabcontrol.css"> 82 83 <script language="JavaScript"> … … 179 180 </base:head> 180 181 <base:body> 181 <h1>Information for <%=HTML.encodeTags(user.getName())%> <base:help tabcontrol="settings" /></h1> 182 183 <br><br> 184 182 <h1><%=title%><base:help tabcontrol="settings" /></h1> 183 185 184 <form action="submit_user.jsp?ID=<%=ID%>" method="post" name="user" onsubmit="return false;"> 186 185 <input type=hidden name="cmd" value="SaveSettings"> 187 186 188 <t:tabcontrol active="<%=activePage%>" id="settings" 189 contentstyle="<%="height: "+(int)(scale*240)+"px;"%>" position="bottom" remember="false"> 187 <t:tabcontrol 188 subclass="dialogtabcontrol" 189 active="<%=activePage%>" id="settings" 190 position="bottom" remember="false"> 190 191 191 192 <t:tab id="contact" title="Contact information" validate="validateContact()" helpid="userpreferences.contact"> 192 <table class="f orm" cellspacing=0>193 <tr> 194 <t d class="prompt">Full name</td>193 <table class="fullform"> 194 <tr> 195 <th>Full name</th> 195 196 <td><%=HTML.encodeTags(user.getName())%></td> 196 </tr> 197 <tr> 198 <td class="prompt">Email</td> 199 <td><input <%=clazz%> type="text" name="email" value="<%=HTML.encodeTags(user.getEmail())%>" size="40" maxlength="<%=User.MAX_EMAIL_LENGTH%>"></td> 197 <td></td> 198 </tr> 199 <tr> 200 <th>Email</th> 201 <td><input <%=clazz%> type="text" name="email" value="<%=HTML.encodeTags(user.getEmail())%>" style="width: 98%;" maxlength="<%=User.MAX_EMAIL_LENGTH%>"></td> 202 <td></td> 200 203 </tr> 201 204 <% … … 204 207 %> 205 208 <tr> 206 <t d class="prompt"></td>209 <th></th> 207 210 <td> 208 211 <% … … 212 215 ><label for="sendMessagesAsEmail">Send system messages as email</label> 213 216 </td> 217 <td></td> 214 218 </tr> 215 219 <% … … 217 221 %> 218 222 <tr> 219 <td class="prompt">Organisation</td> 220 <td><input <%=clazz%> type="text" name="organisation" value="<%=HTML.encodeTags(user.getOrganisation())%>" size="40" maxlength="<%=User.MAX_ORGANISATION_LENGTH%>"></td> 223 <th>Organisation</th> 224 <td><input <%=clazz%> type="text" name="organisation" value="<%=HTML.encodeTags(user.getOrganisation())%>" style="width: 98%;" maxlength="<%=User.MAX_ORGANISATION_LENGTH%>"></td> 225 <td></td> 221 226 </tr> 222 227 <tr valign=top> 223 <t d class="prompt">Address</td>228 <th>Address</th> 224 229 <td> 225 <textarea <%=clazz%> rows="4" cols="40" name="address" wrap="virtual"><%=HTML.encodeTags(user.getAddress())%></textarea> 230 <textarea <%=clazz%> rows="4" style="width: 98%;" name="address" wrap="virtual"><%=HTML.encodeTags(user.getAddress())%></textarea> 231 </td> 232 <td style="width: 20px;"> 226 233 <a href="javascript:Main.zoom('Address', 'user', 'address', <%=!writePermission%>)" title="Edit in larger window"><base:icon image="zoom.gif" /></a> 227 234 </td> 228 235 </tr> 229 236 <tr> 230 <td class="prompt">Phone</td> 231 <td><input <%=clazz%> type="text" name="phone" value="<%=HTML.encodeTags(user.getPhone())%>" size="40" maxlength="<%=User.MAX_PHONE_LENGTH%>"></td> 232 </tr> 233 <tr> 234 <td class="prompt">Fax</td> 235 <td><input <%=clazz%> type="text" name="fax" value="<%=HTML.encodeTags(user.getFax())%>" size="40" maxlength="<%=User.MAX_FAX_LENGTH%>"></td> 236 </tr> 237 <tr> 238 <td class="prompt">Url</td> 239 <td><input <%=clazz%> type="text" name="url" value="<%=HTML.encodeTags(user.getUrl())%>" size="40" maxlength="<%=User.MAX_URL_LENGTH%>"></td> 237 <th>Phone</th> 238 <td><input <%=clazz%> type="text" name="phone" value="<%=HTML.encodeTags(user.getPhone())%>" style="width: 98%;" maxlength="<%=User.MAX_PHONE_LENGTH%>"></td> 239 <td></td> 240 </tr> 241 <tr> 242 <th>Fax</th> 243 <td><input <%=clazz%> type="text" name="fax" value="<%=HTML.encodeTags(user.getFax())%>" style="width: 98%;" maxlength="<%=User.MAX_FAX_LENGTH%>"></td> 244 <td></td> 245 </tr> 246 <tr> 247 <th>Url</th> 248 <td><input <%=clazz%> type="text" name="url" value="<%=HTML.encodeTags(user.getUrl())%>" style="width: 98%;" maxlength="<%=User.MAX_URL_LENGTH%>"></td> 249 <td></td> 250 </tr> 251 <tr class="dynamic"> 252 <th></th> 253 <td></td> 254 <td></td> 240 255 </tr> 241 256 </table> … … 250 265 } 251 266 %> 252 <table class="f orm" cellspacing=0>253 <tr> 254 <t d class="prompt">Login</td>267 <table class="fullform"> 268 <tr> 269 <th>Login</th> 255 270 <td><%=HTML.encodeTags(user.getLogin())%></td> 256 271 </tr> 257 272 <tr> 258 <td class="prompt">New password</td> 259 <td><input <%=passwordClass%> type="password" name="password" value="" size="30" maxlength="30"></td> 260 </tr> 261 <tr> 262 <td class="prompt">Retype password</td> 263 <td><input <%=passwordClass%> type="password" name="retype_password" value="" size="30" maxlength="30"></td> 273 <th>New password</th> 274 <td><input <%=passwordClass%> type="password" name="password" value="" style="width: 98%;" maxlength="30"></td> 275 </tr> 276 <tr> 277 <th>Retype password</th> 278 <td><input <%=passwordClass%> type="password" name="retype_password" value="" style="width: 98%;" maxlength="30"></td> 279 </tr> 280 <tr class="dynamic"> 281 <th></th> 282 <td><i>- leave empty to not change the password</i></td> 264 283 </tr> 265 284 </table> 266 <div align=right> <i>- leave empty to not change the password</i></div>267 285 </t:tab> 268 286 269 287 <t:tab id="other" title="Other information" 270 288 validate="validateExtendedProperties()" helpid="userpreferences.other"> 271 <table class="f orm" cellspacing="0">289 <table class="fullform"> 272 290 <% 273 291 if (extendedProperties != null) … … 281 299 String theClazz = required ? requiredClazz : clazz; 282 300 %> 283 <tr valign="top">284 <t d class="prompt"><%=HTML.encodeTags(ep.getTitle())%></td>301 <tr> 302 <th><%=HTML.encodeTags(ep.getTitle())%></th> 285 303 <td> 286 304 <% … … 308 326 <input <%=theClazz%> type="text" name="<%=name%>" 309 327 value="<%=HTML.encodeTags((String)value)%>" 310 s ize="40" maxlength="<%=ep.getLength()%>"328 style="width: 98%;" maxlength="<%=ep.getLength()%>" 311 329 > 312 330 <% … … 315 333 { 316 334 %> 317 <textarea <%=theClazz%> name="<%=name%>" rows="6" cols="40"335 <textarea <%=theClazz%> name="<%=name%>" rows="6" style="width: 98%;" 318 336 ><%=HTML.encodeTags((String)value)%></textarea> 319 337 <a href="javascript:Main.zoom( … … 346 364 { 347 365 %> 348 <table border="0" cellspacing="0" cellpadding="0">366 <table> 349 367 <tr> 350 368 <td> … … 371 389 { 372 390 %> 373 <table border="0" cellspacing="0" cellpadding="0">391 <table> 374 392 <tr> 375 393 <td> … … 395 413 %> 396 414 </td> 415 <td></td> 397 416 </tr> 398 417 <% … … 400 419 } 401 420 %> 402 <tr valign="top">403 <t d class="prompt">Description</td>421 <tr class="dynamic"> 422 <th>Description</th> 404 423 <td> 405 <textarea <%=clazz%> rows="5" cols="40" name="description" wrap="virtual"><%=HTML.encodeTags(user.getDescription())%></textarea> 424 <textarea <%=clazz%> style="width: 98%; height: 98%;" rows="5" name="description" wrap="virtual"><%=HTML.encodeTags(user.getDescription())%></textarea> 425 </td> 426 <td style="width: 20px;"> 406 427 <a href="javascript:Main.zoom('Description', 'user', 'description', <%=!writePermission%>)" title="Edit in larger window"><base:icon image="zoom.gif" /></a> 407 428 </td> 408 429 </tr> 430 431 409 432 </table> 410 433 </t:tab>
Note: See TracChangeset
for help on using the changeset viewer.