Changeset 7982
- Timestamp:
- Jun 14, 2021, 10:01:21 AM (2 years ago)
- Location:
- trunk
- Files:
-
- 139 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/3.18-stable merged: 7942,7944-7945,7956-7960,7964,7976-7979 /tags/3.18.2 (added) merged: 7980
- Property svn:mergeinfo changed
-
trunk/doc/historical/admin/extended-properties.html
r4889 r7982 4 4 $Id$ 5 5 6 Copyright (C) 2006 Jari H äkkinen, Nicklas Nordborg7 Copyright (C) 2007 Jari H äkkinen6 Copyright (C) 2006 Jari H�kkinen, Nicklas Nordborg 7 Copyright (C) 2007 Jari H�kkinen 8 8 9 9 This file is part of BASE - BioArray Software Environment. … … 60 60 for ExtendableData</a> </li> 61 61 <li> <a 62 href="http ://base.thep.lu.se/browser/trunk/src/core/net/sf/basedb/core/dtd/extended-properties.dtd">extended-properties.dtd</a> </li>62 href="https://base.thep.lu.se/browser/trunk/src/core/net/sf/basedb/core/dtd/extended-properties.dtd">extended-properties.dtd</a> </li> 63 63 </ul> 64 64 … … 110 110 The 111 111 <a 112 href= http://base.thep.lu.se/browser/trunk/config/dist/extended-properties.xml>default112 href="https://base.thep.lu.se/browser/trunk/config/dist/extended-properties.xml">default 113 113 extended properties</a> file. The properties described in 114 114 this sample file is required when migration from BASE 1.2 … … 124 124 A 125 125 <a 126 href= http://base.thep.lu.se/browser/trunk/misc/config/minimalistic_extended-properties.xml>minimalistic126 href="https://base.thep.lu.se/browser/trunk/misc/config/minimalistic_extended-properties.xml">minimalistic 127 127 setup</a>. This is useful when, at BASE installation time, 128 128 it is not known what reporter data will be stored in the … … 146 146 to follow the straightforward format of 147 147 <a 148 href= http://base.thep.lu.se/browser/trunk/src/extended-properties.xml>default148 href="https://base.thep.lu.se/browser/trunk/src/extended-properties.xml">default 149 149 extended properties</a>. The problem is that some knowledge of 150 150 the underlying database schema is needed. -
trunk/doc/historical/admin/plugin_configuration/coreplugins.html
r4889 r7982 3 3 $Id$ 4 4 5 Copyright (C) 2007 Jari H äkkinen, Peter Johansson, Martin Svensson5 Copyright (C) 2007 Jari H�kkinen, Peter Johansson, Martin Svensson 6 6 7 7 This file is part of BASE - BioArray Software Environment. … … 39 39 <p> 40 40 This document is mostly superseeded by the <a 41 href="http ://base.thep.lu.se/chrome/site/latest/html/appendix/appendix.coreplugins.html">core41 href="https://base.thep.lu.se/chrome/site/latest/html/appendix/appendix.coreplugins.html">core 42 42 plugins list in the BASE 2 documentation</a>. Some tools are 43 43 still listed here. … … 51 51 <p class="authors"> 52 52 <b>Last updated:</b> $Date: 2007-01-09$ <br> 53 <b>Copyright ©</b> 2007 The respective authors. All rights reserved.53 <b>Copyright �</b> 2007 The respective authors. All rights reserved. 54 54 </p> 55 55 </div> -
trunk/doc/historical/development/build.html
r5656 r7982 41 41 <div class="warning"> 42 42 NOTE! This document is outdated and has been replaced with newer 43 documentation. See <a href="http ://base.thep.lu.se/wiki/BuildingBase">Building BASE from source code</a>43 documentation. See <a href="https://base.thep.lu.se/wiki/BuildingBase">Building BASE from source code</a> 44 44 </div> 45 45 … … 90 90 </p> 91 91 <pre class="code"> 92 svn checkout http ://base.thep.lu.se/svn/trunk/ base92 svn checkout https://base.thep.lu.se/svn/trunk/ base 93 93 </pre> 94 94 … … 99 99 For information about how to get other version, including specific releases and bugfix 100 100 branches, read the information on the 101 <a href="http ://base.thep.lu.se/wiki/DownloadPage">BASE download page</a>102 or check the <a href="http ://base.thep.lu.se/browser">subversion source repository</a>101 <a href="https://base.thep.lu.se/wiki/DownloadPage">BASE download page</a> 102 or check the <a href="https://base.thep.lu.se/browser">subversion source repository</a> 103 103 directly. 104 104 </p> -
trunk/doc/historical/development/plugins/index.html
r4889 r7982 3 3 $Id$ 4 4 5 Copyright (C) 2006 Jari H äkkinen, Nicklas Nordborg5 Copyright (C) 2006 Jari H�kkinen, Nicklas Nordborg 6 6 7 7 This file is part of BASE - BioArray Software Environment. … … 124 124 null, 125 125 "base@thep.lu.se", 126 "http ://base.thep.lu.se"126 "https://base.thep.lu.se" 127 127 ); 128 128 -
trunk/doc/historical/test/index.html
r4889 r7982 4 4 $Id$ 5 5 6 Copyright (C) 2006 Jari H äkkinen, Nicklas Nordborg6 Copyright (C) 2006 Jari H�kkinen, Nicklas Nordborg 7 7 8 8 This file is part of BASE - BioArray Software Environment. … … 71 71 target="_new">basedb-devel archive</a>) for discussions about 72 72 BASE 2.0. Please use the <a 73 href= http://www.edgewall.com/trac/>trac</a> based73 href="http://www.edgewall.com/trac/">trac</a> based 74 74 reporting system for bug reports, enhancement ideas, and feature 75 75 requests. More information at <a 76 href= http://base.thep.lu.se/#Feedback>the feedback section</a> of77 the <a href= http://base.thep.lu.se/>BASE trac enviroment</a>.76 href="https://base.thep.lu.se/#Feedback">the feedback section</a> of 77 the <a href="https://base.thep.lu.se/">BASE trac enviroment</a>. 78 78 </p> 79 79 -
trunk/doc/historical/test/merge/index.html
r4509 r7982 71 71 <b>See also</b><br> 72 72 <ol> 73 <li><a href="http ://base.thep.lu.se/ticket/215">Ticket #215: Incorrect use of73 <li><a href="https://base.thep.lu.se/ticket/215">Ticket #215: Incorrect use of 74 74 DynamicSpotQuery in table view, plot function, filter function, etc.</a> 75 75 </ol> -
trunk/doc/historical/user/getting_started.html
r4889 r7982 4 4 $Id$ 5 5 6 Copyright (C) 2006 Jari H äkkinen6 Copyright (C) 2006 Jari H�kkinen 7 7 8 8 This file is part of BASE - BioArray Software Environment. … … 103 103 other works out of the box. Some external plug-ins as the 104 104 <a 105 href= http://baseplugins.thep.lu.se/wiki/thep.lu.se.RMAExpress>RMAExpress105 href="https://baseplugins.thep.lu.se/wiki/thep.lu.se.RMAExpress">RMAExpress 106 106 plug-in for BASE</a> has to be compiled before including 107 107 them into your BASE server.</p> … … 442 442 <p> (Affymetrix only) <b>Install 443 443 <a name=RMAExpressInstall 444 href= http://baseplugins.thep.lu.se/wiki/thep.lu.se.RMAExpress>RMAExpress444 href="https://baseplugins.thep.lu.se/wiki/thep.lu.se.RMAExpress">RMAExpress 445 445 plug-in for BASE</a></b> <br> This plug-in is required for 446 446 Affymetrix data. The plug-in will create a bioassay set, … … 650 650 BASE. We have not covered how to use the LIMS part of BASE, nor 651 651 annotations, and much more. We are creating documentation, please 652 browse <a href= http://base.thep.lu.se/>BASE web site</a> for the652 browse <a href="https://base.thep.lu.se/">BASE web site</a> for the 653 653 latest available documents. </p> 654 654 -
trunk/doc/src/docbook/admin/installation.xml
r7916 r7982 157 157 This option is for advanced users only and is not 158 158 covered here. Please refer to 159 <ulink url="http ://base.thep.lu.se/wiki/BuildingBase" /> for information on159 <ulink url="https://base.thep.lu.se/wiki/BuildingBase" /> for information on 160 160 this download option. 161 161 </para> … … 420 420 <para> 421 421 <ulink 422 url="http ://base.thep.lu.se/wiki/DownloadPage">Download422 url="https://base.thep.lu.se/wiki/DownloadPage">Download 423 423 BASE</ulink> and unpack the downloaded file, 424 424 i.e. <command>tar zxpf base-...tar.gz</command>. If you … … 426 426 a checkout of the source from the subversion repository 427 427 (subversion checkout instructions at 428 <ulink url="http ://base.thep.lu.se/wiki/DownloadPage">BASE428 <ulink url="https://base.thep.lu.se/wiki/DownloadPage">BASE 429 429 trac site</ulink>). 430 430 </para> … … 451 451 is available in the 452 452 <ulink 453 url="http ://base.thep.lu.se/wiki/BuildingBase">building453 url="https://base.thep.lu.se/wiki/BuildingBase">building 454 454 BASE document</ulink>. When you return back after 455 455 compiling in the subversion tree you can follow the … … 530 530 There is an 531 531 administrator <ulink 532 url="http ://base.thep.lu.se/chrome/site/doc/historical/admin/extended-properties.html">document532 url="https://base.thep.lu.se/chrome/site/doc/historical/admin/extended-properties.html">document 533 533 discussing extended properties</ulink> available. If you 534 534 plan to perform a migration of a BASE version 1.2 database you … … 906 906 downloads at 907 907 <ulink 908 url="http ://base.thep.lu.se/wiki/DownloadPage">http://base.thep.lu.se/wiki/DownloadPage</ulink>908 url="https://base.thep.lu.se/wiki/DownloadPage">https://base.thep.lu.se/wiki/DownloadPage</ulink> 909 909 </para> 910 910 </listitem> … … 1363 1363 BASE version on the BASE web site, 1364 1364 <ulink 1365 url="http ://base.thep.lu.se/chrome/site/doc/html/index.html">1366 http ://base.thep.lu.se/chrome/site/doc/html/index.html</ulink>.1365 url="https://base.thep.lu.se/chrome/site/doc/html/index.html"> 1366 https://base.thep.lu.se/chrome/site/doc/html/index.html</ulink>. 1367 1367 1368 1368 If you want the documentation for a specific version you will … … 1390 1390 perhaps other feedback that concerns the program. As default 1391 1391 this is set to the feedback section on BASE web site, 1392 <ulink url="http ://base.thep.lu.se/#Feedback">http://base.thep.lu.se/#Feedback</ulink>.1392 <ulink url="https://base.thep.lu.se/#Feedback">https://base.thep.lu.se/#Feedback</ulink>. 1393 1393 Note that users must login in order to submit information. 1394 1394 </para> -
trunk/doc/src/docbook/appendix/base.config.xml
r7598 r7982 829 829 If you want to setup your own test environment with a https server that only 830 830 accepts clients with a trusted certificate you can find some information about 831 this on our wiki: <ulink url="http ://base.thep.lu.se/wiki/HttpsFiles"832 >http ://base.thep.lu.se/wiki/HttpsFiles</ulink>831 this on our wiki: <ulink url="https://base.thep.lu.se/wiki/HttpsFiles" 832 >https://base.thep.lu.se/wiki/HttpsFiles</ulink> 833 833 </para> 834 834 -
trunk/doc/src/docbook/appendix/coreplugins.xml
r7640 r7982 42 42 <para> 43 43 Contributed plug-ins are available at <ulink 44 url="http ://baseplugins.thep.lu.se" >http://baseplugins.thep.lu.se44 url="https://baseplugins.thep.lu.se" >https://baseplugins.thep.lu.se 45 45 </ulink>. These plug-ins are either developed outside the core team 46 46 or require external non-Java compilers and tools. These packages -
trunk/doc/src/docbook/appendix/incompatible.xml
r7681 r7982 201 201 other clients that use a different client id are affected and may stop to work 202 202 until they have been updated to use the new API. For more information see 203 <ulink url="http ://base.thep.lu.se/ticket/2011">ticket 2011</ulink>.203 <ulink url="https://base.thep.lu.se/ticket/2011">ticket 2011</ulink>. 204 204 </para> 205 205 … … 345 345 event handlers and script sections since this is a possible entry 346 346 point for cross-site scripting attacks (see <ulink 347 url="http ://base.thep.lu.se/ticket/1712">ticket 1712</ulink>).347 url="https://base.thep.lu.se/ticket/1712">ticket 1712</ulink>). 348 348 Extension developers are encouraged to make the same changes in 349 349 their applications. … … 469 469 for the best user experience. The changes are too numerous so we can't 470 470 list them here. Please use the developers mailing list if specific 471 information is needed or see <ulink url="http ://base.thep.lu.se/ticket/1655">ticket471 information is needed or see <ulink url="https://base.thep.lu.se/ticket/1655">ticket 472 472 1655</ulink> for some screenshots and other information. 473 473 </para> … … 484 484 may cause problems for code that is expecting all annotations to be 485 485 available. See <classname docapi="net.sf.basedb.core">ReporterCloneTemplate</classname> 486 and <ulink url="http ://base.thep.lu.se/ticket/1616">ticket 1616</ulink>486 and <ulink url="https://base.thep.lu.se/ticket/1616">ticket 1616</ulink> 487 487 for more information. 488 488 </para> … … 497 497 this situation. Particulary, infinite loops must be avoided when traversing the "parent" 498 498 tree of an item (but this should already be in place since it can already happen due to 499 mistakes when creating items). See <ulink url="http ://base.thep.lu.se/ticket/1605">ticket 1605</ulink>499 mistakes when creating items). See <ulink url="https://base.thep.lu.se/ticket/1605">ticket 1605</ulink> 500 500 for more information. 501 501 </para> … … 520 520 <para> 521 521 The list of changes made in the various BASE 2.x releases can be found 522 in the <ulink url="http ://base.thep.lu.se/chrome/site/2.17/html/appendix/appendix.incompatible.html"522 in the <ulink url="https://base.thep.lu.se/chrome/site/2.17/html/appendix/appendix.incompatible.html" 523 523 >BASE 2.17 documentation</ulink>. 524 524 </para> -
trunk/doc/src/docbook/appendix/update_warnings.xml
r7916 r7982 571 571 We only support updating to BASE 3 from BASE 2.17. If you have an older BASE 572 572 version and wish to update to BASE 3, you first have to upgrade to BASE 2.17. 573 BASE 2.17 can be downloaded from the <ulink url="http ://base.thep.lu.se/wiki/DownloadPage">BASE573 BASE 2.17 can be downloaded from the <ulink url="https://base.thep.lu.se/wiki/DownloadPage">BASE 574 574 download page</ulink>. Documentation for BASE 2.17 is available as part of the 575 download and at <ulink url="http ://base.thep.lu.se/chrome/site/2.17/html/index.html"576 >http ://base.thep.lu.se/chrome/site/2.17/html/index.html</ulink>.575 download and at <ulink url="https://base.thep.lu.se/chrome/site/2.17/html/index.html" 576 >https://base.thep.lu.se/chrome/site/2.17/html/index.html</ulink>. 577 577 </para> 578 578 -
trunk/doc/src/docbook/appendix/web.xml.xml
r7609 r7982 64 64 of a POST request instead. This functionality can disabled by 65 65 setting this value to 0. For more information see 66 <ulink url="http ://base.thep.lu.se/ticket/1032">http://base.thep.lu.se/ticket/1032</ulink>.66 <ulink url="https://base.thep.lu.se/ticket/1032">https://base.thep.lu.se/ticket/1032</ulink>. 67 67 </para> 68 68 </listitem> -
trunk/doc/src/docbook/developer/base_api.xml
r7640 r7982 2499 2499 This documentation is only available in the old format which may not be up-to-date with 2500 2500 the current implementation. 2501 See <ulink url="http ://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/authentication.html"2502 >http ://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/authentication.html</ulink>2501 See <ulink url="https://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/authentication.html" 2502 >https://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/authentication.html</ulink> 2503 2503 </para> 2504 2504 </sect2> … … 2509 2509 This documentation is only available in the old format which may not be up-to-date with 2510 2510 the current implementation. 2511 See <ulink url="http ://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/accesspermissions.html"2512 >http ://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/accesspermissions.html</ulink>2511 See <ulink url="https://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/accesspermissions.html" 2512 >https://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/accesspermissions.html</ulink> 2513 2513 </para> 2514 2514 </sect2> … … 2531 2531 This documentation is only available in the old format which may not be up-to-date with 2532 2532 the current implementation. 2533 See <ulink url="http ://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/itemhandling.html"2534 >http ://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/itemhandling.html</ulink>2533 See <ulink url="https://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/itemhandling.html" 2534 >https://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/itemhandling.html</ulink> 2535 2535 </para> 2536 2536 </sect2> … … 2540 2540 This documentation is only available in the old format which may not be up-to-date with 2541 2541 the current implementation. 2542 See <ulink url="http ://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/batchprocessing.html"2543 >http ://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/batchprocessing.html</ulink>2542 See <ulink url="https://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/batchprocessing.html" 2543 >https://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/batchprocessing.html</ulink> 2544 2544 </para> 2545 2545 </sect2> … … 2556 2556 This documentation is only available in the old format which may not be up-to-date with 2557 2557 the current implementation. 2558 See <ulink url="http ://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/plugins.html"2559 >http ://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/plugins.html</ulink>2558 See <ulink url="https://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/plugins.html" 2559 >https://base.thep.lu.se/chrome/site/doc/historical/development/overview/core/plugins.html</ulink> 2560 2560 </para> 2561 2561 </sect2> … … 3161 3161 This documentation is only available in the old format which may not be up-to-date with 3162 3162 the current implementation. 3163 See <ulink url="http ://base.thep.lu.se/chrome/site/doc/historical/development/overview/query/index.html"3164 >http ://base.thep.lu.se/chrome/site/doc/historical/development/overview/query/index.html</ulink>3163 See <ulink url="https://base.thep.lu.se/chrome/site/doc/historical/development/overview/query/index.html" 3164 >https://base.thep.lu.se/chrome/site/doc/historical/development/overview/query/index.html</ulink> 3165 3165 </para> 3166 3166 … … 3173 3173 This documentation is only available in the old format which may not be up-to-date with 3174 3174 the current implementation. 3175 See <ulink url="http ://base.thep.lu.se/chrome/site/doc/historical/development/overview/dynamic/index.html"3176 >http ://base.thep.lu.se/chrome/site/doc/historical/development/overview/dynamic/index.html</ulink>3175 See <ulink url="https://base.thep.lu.se/chrome/site/doc/historical/development/overview/dynamic/index.html" 3176 >https://base.thep.lu.se/chrome/site/doc/historical/development/overview/dynamic/index.html</ulink> 3177 3177 </para> 3178 3178 </sect1> -
trunk/doc/src/docbook/developer/core_ref.xml
r6912 r7982 31 31 <title>Publishing a new release</title> 32 32 <para> 33 This documentation is available on the <ulink url="http ://base.thep.lu.se/wiki/ReleaseProcedure">BASE wiki</ulink>.33 This documentation is available on the <ulink url="https://base.thep.lu.se/wiki/ReleaseProcedure">BASE wiki</ulink>. 34 34 </para> 35 35 </sect1> … … 38 38 <title>Subversion / building BASE</title> 39 39 <para> 40 This documentation is available on the <ulink url="http ://base.thep.lu.se/wiki/BuildingBase">BASE wiki</ulink>.40 This documentation is available on the <ulink url="https://base.thep.lu.se/wiki/BuildingBase">BASE wiki</ulink>. 41 41 </para> 42 42 </sect1> … … 586 586 587 587 This file is part of BASE - BioArray Software Environment. 588 Available at http ://base.thep.lu.se/588 Available at https://base.thep.lu.se/ 589 589 590 590 BASE is free software; you can redistribute it and/or … … 3069 3069 3070 3070 This file is part of BASE - BioArray Software Environment. 3071 Available at http ://base.thep.lu.se/3071 Available at https://base.thep.lu.se/ 3072 3072 3073 3073 BASE is free software; you can redistribute it and/or -
trunk/doc/src/docbook/developer/documentation.xml
r6576 r7982 1352 1352 <xref linkend="docbook.usedtags.links" /> 1353 1353 <link linkend="docbook.usedtags.links">Link to this section</link> 1354 <ulink url="http ://base.thep.lu.se">Base2's homepage</ulink>1354 <ulink url="https://base.thep.lu.se">Base2's homepage</ulink> 1355 1355 ]]> 1356 1356 </programlisting> … … 1857 1857 <para> 1858 1858 Existing Javadoc documentation is available on-line at: 1859 <ulink url="http ://base.thep.lu.se/chrome/site/doc/api/index.html"1860 >http ://base.thep.lu.se/chrome/site/doc/api/index.html</ulink>.1859 <ulink url="https://base.thep.lu.se/chrome/site/doc/api/index.html" 1860 >https://base.thep.lu.se/chrome/site/doc/api/index.html</ulink>. 1861 1861 </para> 1862 1862 -
trunk/doc/src/docbook/developer/extensions.xml
r7915 r7982 81 81 The code examples in this chapter can be downloaded from the 82 82 BASE plug-ins site: 83 <ulink url="http ://baseplugins.thep.lu.se/wiki/net.sf.basedb.examplecode"84 >http ://baseplugins.thep.lu.se/wiki/net.sf.basedb.examplecode</ulink>83 <ulink url="https://baseplugins.thep.lu.se/wiki/net.sf.basedb.examplecode" 84 >https://baseplugins.thep.lu.se/wiki/net.sf.basedb.examplecode</ulink> 85 85 </para> 86 86 </sect2> … … 1943 1943 BASE doesn't ship with any service, but there is an FTP service 1944 1944 available at the BASE plug-ins site: <ulink 1945 url="http ://baseplugins.thep.lu.se/wiki/net.sf.basedb.ftp">1946 http ://baseplugins.thep.lu.se/wiki/net.sf.basedb.ftp</ulink>1945 url="https://baseplugins.thep.lu.se/wiki/net.sf.basedb.ftp"> 1946 https://baseplugins.thep.lu.se/wiki/net.sf.basedb.ftp</ulink> 1947 1947 </para> 1948 1948 </sect2> … … 1991 1991 The BASE plug-ins site has an connection manager that support 1992 1992 external files via FTP and SFTP: <ulink 1993 url="http ://baseplugins.thep.lu.se/wiki/net.sf.basedb.xfiles">1994 http ://baseplugins.thep.lu.se/wiki/net.sf.basedb.xfiles</ulink>1993 url="https://baseplugins.thep.lu.se/wiki/net.sf.basedb.xfiles"> 1994 https://baseplugins.thep.lu.se/wiki/net.sf.basedb.xfiles</ulink> 1995 1995 </para> 1996 1996 … … 2486 2486 factory that can be used without coding if the added column can be expressed as a property path that 2487 2487 can be handled by the <classname docapi="net.sf.basedb.core">Metadata</classname> class. 2488 As usual, see the <ulink url="http ://baseplugins.thep.lu.se/wiki/net.sf.basedb.examplecode">example code</ulink>2488 As usual, see the <ulink url="https://baseplugins.thep.lu.se/wiki/net.sf.basedb.examplecode">example code</ulink> 2489 2489 for some examples. 2490 2490 </para> … … 2516 2516 extension with a custom column that uses the <code>!x.</code> prefix 2517 2517 as the column id. Here is an example from the Variant Search extension 2518 (<ulink url="http ://baseplugins.thep.lu.se/wiki/net.sf.basedb.varsearch"2519 >http ://baseplugins.thep.lu.se/wiki/net.sf.basedb.varsearch</ulink>):2518 (<ulink url="https://baseplugins.thep.lu.se/wiki/net.sf.basedb.varsearch" 2519 >https://baseplugins.thep.lu.se/wiki/net.sf.basedb.varsearch</ulink>): 2520 2520 </para> 2521 2521 … … 2603 2603 login with some other method. Examples of actual implementations can be found in the 2604 2604 the <ulink 2605 url="http ://baseplugins.thep.lu.se/wiki/net.sf.basedb.yubikey">YubiKey</ulink>2605 url="https://baseplugins.thep.lu.se/wiki/net.sf.basedb.yubikey">YubiKey</ulink> 2606 2606 and <ulink 2607 url="http ://baseplugins.thep.lu.se/wiki/net.sf.basedb.otp">OTP</ulink> extensions.2607 url="https://baseplugins.thep.lu.se/wiki/net.sf.basedb.otp">OTP</ulink> extensions. 2608 2608 </para> 2609 2609 -
trunk/doc/src/docbook/developer/migrate_2_3.xml
r6576 r7982 52 52 <itemizedlist> 53 53 <listitem> 54 <para><ulink url="http ://base.thep.lu.se/chrome/site/2.17/html/index.html">http://base.thep.lu.se/chrome/site/2.17/html/index.html</ulink>:54 <para><ulink url="https://base.thep.lu.se/chrome/site/2.17/html/index.html">https://base.thep.lu.se/chrome/site/2.17/html/index.html</ulink>: 55 55 User manual. 56 56 </para> 57 57 </listitem> 58 58 <listitem> 59 <para><ulink url="http ://base.thep.lu.se/chrome/site/2.17/api/index.html">http://base.thep.lu.se/chrome/site/2.17/api/index.html</ulink>:59 <para><ulink url="https://base.thep.lu.se/chrome/site/2.17/api/index.html">https://base.thep.lu.se/chrome/site/2.17/api/index.html</ulink>: 60 60 API documentation. 61 61 </para> … … 133 133 You'll need to make sure that your build system can handle this. 134 134 The BASE JAR files can be downloaded from 135 <ulink url="http ://base.thep.lu.se/chrome/site/files/base/jars/">http://base.thep.lu.se/chrome/site/files/base/jars/</ulink>.135 <ulink url="https://base.thep.lu.se/chrome/site/files/base/jars/">https://base.thep.lu.se/chrome/site/files/base/jars/</ulink>. 136 136 </note> 137 137 … … 170 170 Additionally, several other items implement the new <interfacename 171 171 docapi="net.sf.basedb.core">Subtypable</interfacename> interface. 172 See <ulink url="http ://base.thep.lu.se/ticket/1597">ticket #1597 (Subtypes of items)</ulink>172 See <ulink url="https://base.thep.lu.se/ticket/1597">ticket #1597 (Subtypes of items)</ulink> 173 173 for more information. 174 174 </para> … … 189 189 converted to a physical bioassay in BASE 3 with the subtype 'Hybridization'. The 190 190 server admin can define additional subtypes. See 191 <ulink url="http ://base.thep.lu.se/ticket/1153">ticket #1153 (Handling short read191 <ulink url="https://base.thep.lu.se/ticket/1153">ticket #1153 (Handling short read 192 192 transcript sequence data)</ulink> for more information. 193 193 … … 212 212 <xref linkend="extensions_developer.fileset_validator"/> and 213 213 <ulink 214 url="http ://base.thep.lu.se/ticket/1598">ticket #1598 (Use214 url="https://base.thep.lu.se/ticket/1598">ticket #1598 (Use 215 215 the extensions system for data file validators and metadata readers)</ulink> for more information. 216 216 </para> … … 222 222 store more than one file for each <classname docapi="net.sf.basedb.core">DataFileType</classname> 223 223 which was not possible before. The API for adding files have changed. 224 See <ulink url="http ://base.thep.lu.se/ticket/1604">ticket #1604224 See <ulink url="https://base.thep.lu.se/ticket/1604">ticket #1604 225 225 (Support for multiple files of the same type in a FileSet)</ulink> for 226 226 more information. … … 235 235 make it possible to get information about the main zip/tar file that is being 236 236 unpacked. See <ulink 237 url="http ://base.thep.lu.se/ticket/978">ticket #978 (Unzipped files never inherit237 url="https://base.thep.lu.se/ticket/978">ticket #978 (Unzipped files never inherit 238 238 file type specified during upload)</ulink> for more information. 239 239 </para> … … 248 248 a moderate computer today. If additional security is needed we recommend that 249 249 BASE is installed with HTTPS access only. See <ulink 250 url="http ://base.thep.lu.se/ticket/1641">ticket #1641 (Use bcrypt for storing250 url="https://base.thep.lu.se/ticket/1641">ticket #1641 (Use bcrypt for storing 251 251 passwords instead of MD5)</ulink> for more information. 252 252 </para> … … 300 300 <xref linkend="plugins.installation" /> and 301 301 <ulink 302 url="http ://base.thep.lu.se/ticket/1592">ticket #1592 (Unified installation302 url="https://base.thep.lu.se/ticket/1592">ticket #1592 (Unified installation 303 303 procedure for plug-ins, extensions and more...)</ulink> for more information. 304 304 </para> … … 311 311 JAR file. The <property>Class-Path</property> attribute in <filename>META-INF/MANIFEST.MF</filename> 312 312 must still be set. See <xref linkend="plugin_developer.organize"/> and <ulink 313 url="http ://base.thep.lu.se/ticket/1594">ticket #1594 (JarClassLoader support for JARs within JARs)</ulink>.313 url="https://base.thep.lu.se/ticket/1594">ticket #1594 (JarClassLoader support for JARs within JARs)</ulink>. 314 314 </para> 315 315 </listitem> -
trunk/doc/src/docbook/developer/overview.xml
r6465 r7982 455 455 <listitem> 456 456 <para> 457 The <ulink url="http ://baseplugins.thep.lu.se">BASE plug-ins site</ulink> also457 The <ulink url="https://baseplugins.thep.lu.se">BASE plug-ins site</ulink> also 458 458 has examples of extensions. 459 459 </para> -
trunk/doc/src/docbook/developer/plugins.xml
r7598 r7982 3727 3727 since code doesn't have to be installed in the 3728 3728 WEB-INF/lib or WEB-INF/classes directory. See <ulink 3729 url="http ://base.thep.lu.se/ticket/1600">ticket #1600: Convert file3729 url="https://base.thep.lu.se/ticket/1600">ticket #1600: Convert file 3730 3730 packing plug-in system to an extension point</ulink> for more information. 3731 3731 </para> … … 4021 4021 You can download a tar file with the source and compiled plug-in code from 4022 4022 the BASE plug-ins website: 4023 <ulink url="http ://baseplugins.thep.lu.se/wiki/net.sf.basedb.examplecode"4024 >http ://baseplugins.thep.lu.se/wiki/net.sf.basedb.examplecode</ulink>4023 <ulink url="https://baseplugins.thep.lu.se/wiki/net.sf.basedb.examplecode" 4024 >https://baseplugins.thep.lu.se/wiki/net.sf.basedb.examplecode</ulink> 4025 4025 </para> 4026 4026 -
trunk/doc/src/docbook/faq/faqs.xml
r5820 r7982 453 453 <para> 454 454 Submit a ticket through 455 <ulink url="http ://base.thep.lu.se">http://base.thep.lu.se</ulink>455 <ulink url="https://base.thep.lu.se">https://base.thep.lu.se</ulink> 456 456 explaining what you'd like to see with respect to to CDT and CAB files. 457 457 </para> … … 477 477 <para> 478 478 Yes, but not by default. There is 479 an <ulink url="http ://baseplugins.thep.lu.se/wiki/net.sf.basedb.illumina">Illumina479 an <ulink url="https://baseplugins.thep.lu.se/wiki/net.sf.basedb.illumina">Illumina 480 480 package</ulink> that provides Illumina support to 481 481 BASE. The package is straightforward to install, visit … … 526 526 though even though this might depend on your set-up...) 527 527 The plug-in is not included in a standard BASE installation, but 528 can be downloaded from the <ulink url="http ://baseplugins.thep.lu.se/wiki/se.lu.thep.affymetrix"528 can be downloaded from the <ulink url="https://baseplugins.thep.lu.se/wiki/se.lu.thep.affymetrix" 529 529 >BASE plug-ins web site</ulink>. 530 530 </para> -
trunk/doc/src/docbook/overview/features.xml
r6465 r7982 158 158 of tools are pre-installed with BASE, and optional plug-ins can 159 159 be downloaded from the <ulink 160 url="http ://baseplugins.thep.lu.se">BASE plug-in site160 url="https://baseplugins.thep.lu.se">BASE plug-in site 161 161 </ulink>. BASE capitalise from other software tools, such as 162 162 MEV, by integrating them into the user interface. Such … … 257 257 BASE comes with a specific Affymetrix platform and Illumina can 258 258 be supported by customising BASE (go to the <ulink 259 url="http ://baseplugins.thep.lu.se/wiki/net.sf.basedb.illumina">259 url="https://baseplugins.thep.lu.se/wiki/net.sf.basedb.illumina"> 260 260 Illumina package</ulink> web site for more information on adding 261 261 Illumina support to BASE). … … 335 335 platform support is not included in a standard BASE 336 336 installation but there is a <ulink 337 url="http ://baseplugins.thep.lu.se/wiki/net.sf.basedb.illumina">337 url="https://baseplugins.thep.lu.se/wiki/net.sf.basedb.illumina"> 338 338 Illumina package</ulink> available for seamless 339 339 integration of the Illumina array platform to BASE. … … 472 472 Not available in BASE directly but it is added with the 473 473 <ulink 474 url="http ://baseplugins.thep.lu.se/wiki/net.sf.basedb.illumina">474 url="https://baseplugins.thep.lu.se/wiki/net.sf.basedb.illumina"> 475 475 Illumina plug-in</ulink> that adds Illumina array 476 476 platform support to BASE. -
trunk/doc/src/docbook/overview/resources.xml
r6576 r7982 38 38 <para> 39 39 The BASE project site is located at 40 <ulink url='http ://base.thep.lu.se'>http://base.thep.lu.se</ulink>.40 <ulink url='https://base.thep.lu.se'>https://base.thep.lu.se</ulink>. 41 41 Here is a lot of useful information about the project and the program, e.g. 42 42 documentation/manuals, download-pages, contact information and much more. The most … … 48 48 The download page is accessed from the download section, on the home page, by 49 49 following the link to 50 <guilabel><ulink url='http ://base.thep.lu.se/wiki/DownloadPage'50 <guilabel><ulink url='https://base.thep.lu.se/wiki/DownloadPage' 51 51 >Download Page</ulink></guilabel>. 52 52 From this page you can download BASE releases as packaged tar.gz … … 110 110 A ticket is a note about a bug or a new feature that has not yet been 111 111 implemented. To show the list of outstanding tickets use the 112 <guibutton><ulink url="http ://base.thep.lu.se/query"112 <guibutton><ulink url="https://base.thep.lu.se/query" 113 113 >View Tickets</ulink></guibutton> button on BASE web site. 114 114 It is a good idea to have a look at this list before reporting a bug … … 131 131 <para> 132 132 The roadmap of BASE is accessed from the 133 <guibutton><ulink url="http ://base.thep.lu.se/roadmap"133 <guibutton><ulink url="https://base.thep.lu.se/roadmap" 134 134 >Roadmap</ulink></guibutton> button on the home page. This page 135 135 contains information about the plans for future development, including … … 197 197 Plug-ins which are not included in the installation of BASE, have their own site, 198 198 called 199 <ulink url="http ://baseplugins.thep.lu.se/">BASE plug-ins web site</ulink>199 <ulink url="https://baseplugins.thep.lu.se/">BASE plug-ins web site</ulink> 200 200 which includes a download page for submitted none-core plug-ins. 201 201 Here is also information how to become a plug-in developer, with … … 211 211 explore BASE without having to install it. Follow the link on 212 212 BASE web site to the demo server or go directly to 213 <ulink url="http ://base.onk.lu.se/demo/">214 http ://base.onk.lu.se/demo/213 <ulink url="https://base.onk.lu.se/demo/"> 214 https://base.onk.lu.se/demo/ 215 215 </ulink>. NOTE! The demo server is currently down! 216 216 </para> … … 229 229 <para> 230 230 BASE project has three different mailing lists available for subscription. Visit the 231 <ulink url="http ://base.thep.lu.se/wiki/MailingLists">mailing list page</ulink>231 <ulink url="https://base.thep.lu.se/wiki/MailingLists">mailing list page</ulink> 232 232 to get more information about each one of the mailing lists. All posted mails are saved 233 233 in an archive for each list, it can therefore be a good idea to have a look here before -
trunk/doc/src/docbook/overview/why_base.xml
r5844 r7982 104 104 BASE. This implies interplay with adopting the BASE software 105 105 (the <ulink 106 url='http ://baseplugins.thep.lu.se/wiki/net.sf.basedb.reggie'>Reggie106 url='https://baseplugins.thep.lu.se/wiki/net.sf.basedb.reggie'>Reggie 107 107 extension</ulink> is an example of adaptation on BASE to 108 108 specific needs in SCAN-B) and the laboratory work to achieve -
trunk/doc/src/docbook/user/file_system.xml
r7598 r7982 635 635 On this tab you may specify options for SSH connections. BASE has not 636 636 built-in support for SSH but this can be enabled via plug-ins. 637 See the <ulink url="http ://baseplugins.thep.lu.se/wiki/net.sf.basedb.xfiles">External637 See the <ulink url="https://baseplugins.thep.lu.se/wiki/net.sf.basedb.xfiles">External 638 638 files support</ulink> extension package. 639 639 </para> -
trunk/doc/src/docbook/user/webclient.xml
r7847 r7982 47 47 <para> 48 48 You may, for example, try the BASE demo server. Go to the 49 URL <ulink url="http ://base.onk.lu.se/demo/">http://base.onk.lu.se/demo/</ulink>49 URL <ulink url="https://base.onk.lu.se/demo/">https://base.onk.lu.se/demo/</ulink> 50 50 and enter <userinput>base2</userinput> for the login and <userinput>base2</userinput> 51 51 for the password. NOTE! The demo server is currently down! … … 2279 2279 </varlistentry> 2280 2280 2281 2281 <varlistentry> 2282 <term><guilabel>Sticky column</guilabel></term> 2283 <listitem> 2284 <para> 2285 In most lists one column can be selected to be <emphasis>sticky</emphasis>, 2286 which means that it will always be visible and stick to either the left or right 2287 side of the browser window when scrolling would take outside the visible area. 2288 In most lists the <guilabel>Name</guilabel> column is the default sticky 2289 column. 2290 </para> 2291 </listitem> 2292 </varlistentry> 2293 2282 2294 <varlistentry> 2283 2295 <term><guilabel>Presets</guilabel></term> -
trunk/doc/src/javadoc/overview.html
r5818 r7982 30 30 or plug-in developers. We guarantee a certain degree of stability 31 31 among the classes and methods in the public API. See documentation 32 on the <a href="http ://base.thep.lu.se/chrome/site/doc/docbook/html/developerdoc/api/api_overview.html"32 on the <a href="https://base.thep.lu.se/chrome/site/doc/docbook/html/developerdoc/api/api_overview.html" 33 33 >BASE web site</a> for more information. 34 34 Methods that have been tagged as <code>@deprecated</code> should be considered -
trunk/doc/test/performance/index.html
r4889 r7982 4 4 5 5 Copyright (C) 2007 Nicklas Nordborg 6 Copyright (C) 2008 Jari H äkkinen6 Copyright (C) 2008 Jari H�kkinen 7 7 8 8 This file is part of BASE - BioArray Software Environment. … … 78 78 make them publicly available for download. To get the test file you need to be a 79 79 core developer. Read the instructions on the 80 <a href="http ://base.thep.lu.se/wiki/DeveloperInformation">DeveloperInformation</a>80 <a href="https://base.thep.lu.se/wiki/DeveloperInformation">DeveloperInformation</a> 81 81 page, <code>Test data</code> section on the Base 2 web site. 82 82 </p> -
trunk/doc/test/roles/index.html
r7052 r7982 143 143 make them publicly available for download. To get the test file you need to be a 144 144 core developer. Read the instructions on the 145 <a href="http ://base.thep.lu.se/wiki/DeveloperInformation">DeveloperInformation</a>145 <a href="https://base.thep.lu.se/wiki/DeveloperInformation">DeveloperInformation</a> 146 146 page, <code>Test data</code> section on the BASE web site. The automated 147 147 test programs require that file are placed (checked out) in the 'testdata' -
trunk/src/clients/web/net/sf/basedb/clients/web/Base.java
r7962 r7982 532 532 { 533 533 cc.setObject("defaultColumns", defaultContext.getObject("defaultColumns")); 534 cc.setObject("defaultColumns.sticky", defaultContext.getObject("defaultColumns.sticky")); 534 535 } 535 536 if (request != null) … … 567 568 // Visible columns 568 569 cc.setSetting("columns", Values.getString(Values.getStringOrNull(request.getParameter("columns")), cc.getSetting("columns"))); 570 // Sticky column 571 String stickyCol = Values.getStringOrNull(request.getParameter("sticky_column")); 572 if (stickyCol != null) cc.setSetting("columns.sticky", stickyCol); 569 573 570 574 // Page settings, ignore negative values, 'rowsperpage' setting may come as an … … 991 995 992 996 /** 997 Create a default context where the sortProperty is also used as 998 the default sticky column. 999 @see #createDefaultContext(String, String, String) 1000 */ 1001 public static ItemContext createDefaultContext(String sortProperty, String defaultColumns) 1002 { 1003 return createDefaultContext(sortProperty, defaultColumns, sortProperty); 1004 } 1005 1006 /** 993 1007 Create a default <code>ItemContext</code> with settings for default 994 1008 visible columns and sort property. 'MINE' and 'SHARED' objects are set to be included. … … 996 1010 a '-', the sort is made in descending order (and the minus is removed) 997 1011 @param defaultColumns The visible columns as a comma separated String. 1012 @param stickyColumn The default sticky column or null to not use a sticky column 998 1013 @return an {@link net.sf.basedb.core.ItemContext} object 999 */ 1000 public static ItemContext createDefaultContext(String sortProperty, String defaultColumns) 1014 @since 3.18.2 1015 */ 1016 public static ItemContext createDefaultContext(String sortProperty, String defaultColumns, String stickyColumn) 1001 1017 { 1002 1018 SortDirection sortDirection = SortDirection.ASC; … … 1009 1025 cc.setSetting("columns", defaultColumns); 1010 1026 cc.setObject("defaultColumns", defaultColumns); 1027 if (stickyColumn != null) 1028 { 1029 cc.setSetting("columns.sticky", stickyColumn); 1030 cc.setObject("defaultColumns.sticky", stickyColumn); 1031 } 1011 1032 cc.getInclude().add(Include.MINE); 1012 1033 cc.getInclude().add(Include.SHARED); -
trunk/src/clients/web/net/sf/basedb/clients/web/ExperimentExplorer.java
r7703 r7982 138 138 */ 139 139 private static final ItemContext defaultReporterContext = 140 Base.createDefaultContext("@externalId", "externalId,symbol" );140 Base.createDefaultContext("@externalId", "externalId,symbol", "externalId"); 141 141 142 142 /** -
trunk/src/clients/web/net/sf/basedb/clients/web/taglib/table/Table.java
r7943 r7982 742 742 addHidden("sortby", getSortby()); 743 743 addHidden("direction", getDirection().name()); 744 if (hasStickyHeaders()) addHidden("sticky_column", getStickyCol()); 744 745 745 746 if (sc != null && itemType != null) -
trunk/src/clients/web/web-extensions.xml
r7850 r7982 35 35 <copyright>BASE development team</copyright> 36 36 <email>basedb-users@lists.sourceforge.net</email> 37 <url>http ://base.thep.lu.se/</url>37 <url>https://base.thep.lu.se/</url> 38 38 </about> 39 39 -
trunk/src/core/core-extensions.xml
r7895 r7982 35 35 <copyright>BASE development team</copyright> 36 36 <email>basedb-users@lists.sourceforge.net</email> 37 <url>http ://base.thep.lu.se/</url>37 <url>https://base.thep.lu.se/</url> 38 38 </about> 39 39 -
trunk/src/core/net/sf/basedb/core/HibernateUtil.java
r7947 r7982 29 29 import net.sf.basedb.core.data.MessageData; 30 30 import net.sf.basedb.core.data.RemovableData; 31 import net.sf.basedb.core.data.SessionData; 31 32 import net.sf.basedb.core.data.OwnableData; 32 33 import net.sf.basedb.core.data.ShareableData; … … 34 35 import net.sf.basedb.core.data.NewsData; 35 36 import net.sf.basedb.core.data.UserData; 37 import net.sf.basedb.core.data.UserDeviceData; 36 38 import net.sf.basedb.core.dbengine.DbEngine; 37 39 import net.sf.basedb.core.dbengine.EngineFactory; … … 572 574 defineFilter(classTag, itemType, "ownedBy", ":owner = `to_user_id`", filterConfig); 573 575 defineFilter(classTag, itemType, "ownedOrRemovedBy", "(:user = `to_user_id` OR :user = `removed_by`)", filterConfig); 576 } 577 if (SessionData.class.isAssignableFrom(c)) 578 { 579 log.info("Adding 'ownedBy' filter to " + c.getName()); 580 defineFilter(classTag, itemType, "ownedBy", ":owner = `user_id`", filterConfig); 581 } 582 if (UserDeviceData.class.isAssignableFrom(c)) 583 { 584 log.info("Adding 'ownedBy' filter to " + c.getName()); 585 defineFilter(classTag, itemType, "ownedBy", ":owner = `user_id`", filterConfig); 574 586 } 575 587 if (AnnotationData.class.isAssignableFrom(c)) -
trunk/src/core/net/sf/basedb/core/ItemContext.java
r7911 r7982 1425 1425 { 1426 1426 return settings == null ? null : settings.get(name); 1427 } 1428 1429 /** 1430 Get a value from the settings or the default value 1431 if no current value exists. 1432 @since 3.18.2 1433 */ 1434 public String getSetting(String name, String defaultValue) 1435 { 1436 String s = getSetting(name); 1437 return s == null ? defaultValue : s; 1427 1438 } 1428 1439 -
trunk/src/core/net/sf/basedb/core/Message.java
r7738 r7982 28 28 import net.sf.basedb.core.hibernate.TypeWrapper; 29 29 import net.sf.basedb.core.query.Restrictions; 30 import net.sf.basedb.core.query.EntityQuery; 30 31 import net.sf.basedb.core.query.Hql; 31 32 import net.sf.basedb.util.EmailUtil; … … 56 57 */ 57 58 public static final Item TYPE = Item.MESSAGE; 59 60 /** 61 This filter will limit a query to only return messages 62 for the logged in user unless the logged in user has generic 63 read permission. 64 */ 65 private static final QueryRuntimeFilter RUNTIME_FILTER = new QueryRuntimeFilterImpl(); 58 66 59 67 /** … … 165 173 public static ItemQuery<Message> getQuery(User user) 166 174 { 167 ItemQuery<Message> query = null; 168 175 ItemQuery<Message> query = new ItemQuery<Message>(Message.class, RUNTIME_FILTER); 169 176 if (user != null) 170 177 { 171 query = new ItemQuery<Message>(Message.class, null);172 178 query.restrictPermanent( 173 179 Restrictions.eq( … … 176 182 ) 177 183 ); 178 }179 else180 {181 query = new ItemQuery<Message>(Message.class);182 184 } 183 185 return query; … … 468 470 } 469 471 472 /** 473 A runtime filter implementation that limits a query to only 474 return messages for the currently logged in user unless the logged 475 in user has generic read permission. 476 */ 477 private static class QueryRuntimeFilterImpl 478 implements QueryRuntimeFilter 479 { 480 @Override 481 public void enableFilters(QueryRuntimeFilterManager manager, EntityQuery query, DbControl dc) 482 { 483 SessionControl sc = dc.getSessionControl(); 484 if (sc.isDenied(query.getItemPermission(), query.getItemType()) || !sc.isLoggedIn()) 485 { 486 manager.enableFilter("denyAll"); 487 } 488 else if (query.isIncluded(Include.OTHERS) && 489 sc.hasPermission(query.getItemPermission(), query.getItemType())) 490 { 491 // Logged in user has generic permission and wants other user's items... --> no filter 492 } 493 else 494 { 495 // Load sessions for the logged in user 496 org.hibernate.Filter filter = manager.enableFilter("ownedBy"); 497 if (filter != null) 498 { 499 filter.setParameter("owner", sc.getLoggedInUserId()); 500 } 501 } 502 } 503 } 504 470 505 } -
trunk/src/core/net/sf/basedb/core/Session.java
r7900 r7982 26 26 import net.sf.basedb.core.hibernate.TypeWrapper; 27 27 import net.sf.basedb.core.query.Restrictions; 28 import net.sf.basedb.core.query.EntityQuery; 28 29 import net.sf.basedb.core.query.Hql; 29 30 … … 49 50 */ 50 51 public static final Item TYPE = Item.SESSION; 52 53 /** 54 This filter will limit a query to only return sessions 55 for the logged in user unless the logged in user has generic 56 read permission. 57 */ 58 private static final QueryRuntimeFilter RUNTIME_FILTER = new QueryRuntimeFilterImpl(); 51 59 52 60 /** … … 74 82 Get a query configured to retrieve sessions for the specified user. 75 83 76 @param user The user to retreive sessions for, null is allowed if 77 the logged in user has generic READ permission for sessions in which case 78 all sessions will be returned 84 @param user The user to retreive sessions for or null to load all 85 sessions. 79 86 @return An {@link ItemQuery} object 80 87 */ 81 88 public static ItemQuery<Session> getQuery(User user) 82 89 { 83 ItemQuery<Session> query = null; 84 90 ItemQuery<Session> query = new ItemQuery<Session>(Session.class, RUNTIME_FILTER);; 85 91 if (user != null) 86 92 { 87 query = new ItemQuery<Session>(Session.class, null);88 93 query.restrictPermanent( 89 94 Restrictions.eq( … … 92 97 ) 93 98 ); 94 }95 else96 {97 query = new ItemQuery<Session>(Session.class);98 99 } 99 100 return query; … … 307 308 return getData().getAuthenticationMethod(); 308 309 } 310 311 /** 312 A runtime filter implementation that limits a query to only 313 return sessions for the currently logged in user unless the logged 314 in user has generic read permission. 315 */ 316 private static class QueryRuntimeFilterImpl 317 implements QueryRuntimeFilter 318 { 319 @Override 320 public void enableFilters(QueryRuntimeFilterManager manager, EntityQuery query, DbControl dc) 321 { 322 SessionControl sc = dc.getSessionControl(); 323 if (sc.isDenied(query.getItemPermission(), query.getItemType()) || !sc.isLoggedIn()) 324 { 325 manager.enableFilter("denyAll"); 326 } 327 else if (query.isIncluded(Include.OTHERS) && 328 sc.hasPermission(query.getItemPermission(), query.getItemType())) 329 { 330 // Logged in user has generic permission and wants other user's items... --> no filter 331 } 332 else 333 { 334 // Load sessions for the logged in user 335 org.hibernate.Filter filter = manager.enableFilter("ownedBy"); 336 if (filter != null) 337 { 338 filter.setParameter("owner", sc.getLoggedInUserId()); 339 } 340 } 341 } 342 } 343 309 344 } 310 345 -
trunk/src/core/net/sf/basedb/core/UserDevice.java
r7818 r7982 24 24 import net.sf.basedb.core.data.UserDeviceData; 25 25 import net.sf.basedb.core.query.Restrictions; 26 import net.sf.basedb.core.query.EntityQuery; 26 27 import net.sf.basedb.core.query.Hql; 27 28 … … 47 48 48 49 /** 50 This filter will limit a query to only return devices 51 for the logged in user unless the logged in user has generic 52 read permission. 53 */ 54 private static final QueryRuntimeFilter RUNTIME_FILTER = new QueryRuntimeFilterImpl(); 55 56 /** 49 57 Get a <code>UserDevice</code> item when you know the ID. 50 58 … … 72 80 public static ItemQuery<UserDevice> getQuery(User user) 73 81 { 74 ItemQuery<UserDevice> query = null; 75 82 ItemQuery<UserDevice> query = new ItemQuery<UserDevice>(UserDevice.class, RUNTIME_FILTER); 76 83 if (user != null) 77 84 { 78 query = new ItemQuery<UserDevice>(UserDevice.class, null);79 85 query.restrictPermanent( 80 86 Restrictions.eq( … … 84 90 ); 85 91 } 86 else87 {88 query = new ItemQuery<UserDevice>(UserDevice.class);89 }90 92 return query; 91 93 } … … 283 285 } 284 286 287 /** 288 A runtime filter implementation that limits a query to only 289 return devices for the currently logged in user unless the logged 290 in user has generic read permission. 291 */ 292 private static class QueryRuntimeFilterImpl 293 implements QueryRuntimeFilter 294 { 295 @Override 296 public void enableFilters(QueryRuntimeFilterManager manager, EntityQuery query, DbControl dc) 297 { 298 SessionControl sc = dc.getSessionControl(); 299 if (sc.isDenied(query.getItemPermission(), query.getItemType()) || !sc.isLoggedIn()) 300 { 301 manager.enableFilter("denyAll"); 302 } 303 else if (query.isIncluded(Include.OTHERS) && 304 sc.hasPermission(query.getItemPermission(), query.getItemType())) 305 { 306 // Logged in user has generic permission and wants other user's items... --> no filter 307 } 308 else 309 { 310 // Load sessions for the logged in user 311 org.hibernate.Filter filter = manager.enableFilter("ownedBy"); 312 if (filter != null) 313 { 314 filter.setParameter("owner", sc.getLoggedInUserId()); 315 } 316 } 317 } 318 } 319 285 320 } 286 321 -
trunk/src/install/net/sf/basedb/install/Webclient.java
r7947 r7982 137 137 createSetting(client, "server.transferRate", Integer.toString(100 * 1024 * 1024)); // 100MB/s 138 138 createSetting(client, "server.transferRate.download", Integer.toString(0)); // No limit 139 createSetting(client, "server.links.reportbug", "http ://base.thep.lu.se/#Feedback");140 createSetting(client, "server.links.help", "http ://base.thep.lu.se/chrome/site/latest/html/index.html");139 createSetting(client, "server.links.reportbug", "https://base.thep.lu.se/#Feedback"); 140 createSetting(client, "server.links.help", "https://base.thep.lu.se/chrome/site/latest/html/index.html"); 141 141 createSetting(client, "server.links.faq", ""); 142 142 -
trunk/src/plugins/core/core-plugins.xml
r7849 r7982 34 34 <copyright>BASE development team</copyright> 35 35 <email>basedb-users@lists.sourceforge.net</email> 36 <url>http ://base.thep.lu.se/</url>36 <url>https://base.thep.lu.se/</url> 37 37 </about> 38 38 -
trunk/src/test/TestFile.java
r7548 r7982 78 78 int id2 = test_create("data/test.upload.txt", false, false); 79 79 int baseTracServer = TestFileServer.test_create("base.thep.lu.se", "BASE trac site", 80 "base", "base", null, null, null);80 "base", "base", "data/base.thep.lu.se.crt", null, null); 81 81 int base2DemoServer = TestFileServer.test_create("base.onk.lu.se", "BASE demo site", null, null, 82 82 "data/base.onk.lu.se.crt", null, null); 83 int extId1 = test_create("http ://base.thep.lu.se/robots.txt", false, false);83 int extId1 = test_create("https://base.thep.lu.se/robots.txt", false, false); 84 84 int extId2 = test_create("https://base.onk.lu.se/onk/images/baselogo.png", false, false); 85 int extId3 = test_create("http ://base.thep.lu.se/login", false, false);85 int extId3 = test_create("https://base.thep.lu.se/login", false, false); 86 86 test_load(id1); 87 87 test_list(); -
trunk/src/test/TestFileServer.java
r7428 r7982 56 56 write_header(); 57 57 // Standard tests: create, load, list 58 int id = test_create("base.thep.lu.se", "BASE trac site", "base", "base", null, null, null);58 int id = test_create("base.thep.lu.se", "BASE trac site", "base", "base", "data/base.thep.lu.se.crt", null, null); 59 59 int id2 = test_create("base.onk.lu.se", "BASE demo site", null, null, "data/base.onk.lu.se.crt", null, null); 60 60 test_load(id); … … 225 225 { 226 226 X509Certificate tmp = fs.getServerX509Certificate(); 227 cert = tmp.getSubjectX500Principal().toString(); 227 if (tmp != null) 228 { 229 cert = tmp.getSubjectX500Principal().toString(); 230 cert += "; Valid until "+DateUtil.formatDate(tmp.getNotAfter()); 231 } 228 232 } 229 233 catch (Exception ex) -
trunk/www/admin/annotationtypecategories/list_categories.jsp
r7954 r7982 134 134 filterrows="<%=cc.getFilterRows()%>" 135 135 subclass="fulltable" 136 stickyheaders=" name"136 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 137 137 > 138 138 <tbl:hidden -
trunk/www/admin/annotationtypes/list_annotationtypes.jsp
r7954 r7982 176 176 filterrows="<%=cc.getFilterRows()%>" 177 177 subclass="fulltable" 178 stickyheaders=" name"178 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 179 179 > 180 180 <tbl:hidden -
trunk/www/admin/clients/help/list_help.jsp
r7954 r7982 129 129 filterrows="<%=cc.getFilterRows()%>" 130 130 subclass="fulltable" 131 stickyheaders=" name"131 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 132 132 > 133 133 <tbl:hidden -
trunk/www/admin/clients/list_clients.jsp
r7954 r7982 119 119 filterrows="<%=cc.getFilterRows()%>" 120 120 subclass="fulltable" 121 stickyheaders=" name"121 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 122 122 > 123 123 <tbl:hidden -
trunk/www/admin/datafiletypes/list_filetypes.jsp
r7954 r7982 155 155 filterrows="<%=cc.getFilterRows()%>" 156 156 subclass="fulltable" 157 stickyheaders=" name"157 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 158 158 > 159 159 <tbl:hidden -
trunk/www/admin/diskusage/list_groups.jsp
r7954 r7982 158 158 filterrows="<%=cc.getFilterRows()%>" 159 159 subclass="fulltable" 160 stickyheaders=" name"160 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 161 161 > 162 162 <tbl:hidden -
trunk/www/admin/diskusage/list_users.jsp
r7954 r7982 158 158 filterrows="<%=cc.getFilterRows()%>" 159 159 subclass="fulltable" 160 stickyheaders=" name"160 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 161 161 > 162 162 <tbl:hidden -
trunk/www/admin/extravaluetypes/list_extravaluetypes.jsp
r7954 r7982 133 133 filterrows="<%=cc.getFilterRows()%>" 134 134 subclass="fulltable" 135 stickyheaders=" name"135 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 136 136 > 137 137 <tbl:hidden -
trunk/www/admin/groups/list_groups.jsp
r7954 r7982 135 135 filterrows="<%=cc.getFilterRows()%>" 136 136 subclass="fulltable" 137 stickyheaders=" name"137 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 138 138 > 139 139 <tbl:hidden -
trunk/www/admin/hardware/list_hardware.jsp
r7954 r7982 139 139 filterrows="<%=cc.getFilterRows()%>" 140 140 subclass="fulltable" 141 stickyheaders=" name"141 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 142 142 > 143 143 <tbl:hidden -
trunk/www/admin/itemsubtypes/list_subtypes.jsp
r7954 r7982 144 144 filterrows="<%=cc.getFilterRows()%>" 145 145 subclass="fulltable" 146 stickyheaders=" name"146 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 147 147 > 148 148 <tbl:hidden -
trunk/www/admin/jobagents/list_agents.jsp
r7954 r7982 126 126 filterrows="<%=cc.getFilterRows()%>" 127 127 subclass="fulltable" 128 stickyheaders=" name"128 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 129 129 > 130 130 <tbl:hidden -
trunk/www/admin/mimetypes/list_mimetypes.jsp
r7954 r7982 124 124 filterrows="<%=cc.getFilterRows()%>" 125 125 subclass="fulltable" 126 stickyheaders=" name"126 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 127 127 > 128 128 <tbl:hidden -
trunk/www/admin/news/list_news.jsp
r7954 r7982 118 118 filterrows="<%=cc.getFilterRows()%>" 119 119 subclass="fulltable" 120 stickyheaders=" name"120 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 121 121 > 122 122 <tbl:hidden -
trunk/www/admin/platforms/list_platforms.jsp
r7954 r7982 127 127 filterrows="<%=cc.getFilterRows()%>" 128 128 subclass="fulltable" 129 stickyheaders=" name"129 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 130 130 > 131 131 <tbl:hidden -
trunk/www/admin/platforms/variants/list_variants.jsp
r7954 r7982 143 143 filterrows="<%=cc.getFilterRows()%>" 144 144 subclass="fulltable" 145 stickyheaders=" name"145 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 146 146 > 147 147 <tbl:hidden -
trunk/www/admin/pluginconfigurations/list_configurations.jsp
r7954 r7982 145 145 filterrows="<%=cc.getFilterRows()%>" 146 146 subclass="fulltable" 147 stickyheaders=" name"147 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 148 148 > 149 149 <tbl:hidden -
trunk/www/admin/plugindefinitions/list_plugins.jsp
r7954 r7982 154 154 filterrows="<%=cc.getFilterRows()%>" 155 155 subclass="fulltable" 156 stickyheaders=" name"156 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 157 157 > 158 158 <tbl:hidden -
trunk/www/admin/plugintypes/list_plugintypes.jsp
r7954 r7982 128 128 filterrows="<%=cc.getFilterRows()%>" 129 129 subclass="fulltable" 130 stickyheaders=" name"130 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 131 131 > 132 132 <tbl:hidden -
trunk/www/admin/protocols/list_protocol.jsp
r7954 r7982 139 139 filterrows="<%=cc.getFilterRows()%>" 140 140 subclass="fulltable" 141 stickyheaders=" name"141 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 142 142 > 143 143 <tbl:hidden -
trunk/www/admin/quantities/list_quantities.jsp
r7954 r7982 126 126 filterrows="<%=cc.getFilterRows()%>" 127 127 subclass="fulltable" 128 stickyheaders=" name"128 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 129 129 > 130 130 <tbl:hidden -
trunk/www/admin/quota/list_quota.jsp
r7954 r7982 118 118 filterrows="<%=cc.getFilterRows()%>" 119 119 subclass="fulltable" 120 stickyheaders=" name"120 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 121 121 > 122 122 <tbl:hidden -
trunk/www/admin/quotatypes/list_quotatypes.jsp
r7954 r7982 116 116 filterrows="<%=cc.getFilterRows()%>" 117 117 subclass="fulltable" 118 stickyheaders=" name"118 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 119 119 > 120 120 <tbl:hidden -
trunk/www/admin/reporterclonetemplates/list_templates.jsp
r7954 r7982 119 119 filterrows="<%=cc.getFilterRows()%>" 120 120 subclass="fulltable" 121 stickyheaders=" name"121 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 122 122 > 123 123 <tbl:hidden -
trunk/www/admin/reportertypes/list_reportertypes.jsp
r7954 r7982 118 118 filterrows="<%=cc.getFilterRows()%>" 119 119 subclass="fulltable" 120 stickyheaders=" name"120 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 121 121 > 122 122 <tbl:hidden -
trunk/www/admin/roles/list_roles.jsp
r7954 r7982 128 128 filterrows="<%=cc.getFilterRows()%>" 129 129 subclass="fulltable" 130 stickyheaders=" name"130 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 131 131 > 132 132 <tbl:hidden -
trunk/www/admin/software/list_software.jsp
r7954 r7982 139 139 filterrows="<%=cc.getFilterRows()%>" 140 140 subclass="fulltable" 141 stickyheaders=" name"141 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 142 142 > 143 143 <tbl:hidden -
trunk/www/admin/users/list_users.jsp
r7954 r7982 152 152 filterrows="<%=cc.getFilterRows()%>" 153 153 subclass="fulltable" 154 stickyheaders=" name"154 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 155 155 > 156 156 <tbl:hidden -
trunk/www/biomaterials/bioplateeventtypes/list_eventtypes.jsp
r7954 r7982 117 117 filterrows="<%=cc.getFilterRows()%>" 118 118 subclass="fulltable" 119 stickyheaders=" name"119 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 120 120 > 121 121 <tbl:hidden -
trunk/www/biomaterials/bioplates/events/index.jsp
r7954 r7982 64 64 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %> 65 65 <%! 66 private static final ItemContext defaultContext = Base.createDefaultContext("entryDate", "name,eventType,role,entryDate,description" );66 private static final ItemContext defaultContext = Base.createDefaultContext("entryDate", "name,eventType,role,entryDate,description", "name"); 67 67 private static final Item itemType = Item.BIOPLATEEVENT; 68 68 %> -
trunk/www/biomaterials/bioplates/events/list_events.jsp
r7954 r7982 154 154 filterrows="<%=cc.getFilterRows()%>" 155 155 subclass="fulltable" 156 stickyheaders=" name"156 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 157 157 > 158 158 <tbl:hidden -
trunk/www/biomaterials/bioplates/list_bioplates.jsp
r7954 r7982 165 165 filterrows="<%=cc.getFilterRows()%>" 166 166 subclass="fulltable" 167 stickyheaders=" name"167 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 168 168 > 169 169 <tbl:hidden -
trunk/www/biomaterials/bioplates/wells/index.jsp
r7954 r7982 61 61 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %> 62 62 <%! 63 private static final ItemContext defaultContext = Base.createDefaultContext("row", "row,column,bioMaterial.name" );63 private static final ItemContext defaultContext = Base.createDefaultContext("row", "row,column,bioMaterial.name", null); 64 64 private static final Item itemType = Item.BIOWELL; 65 65 -
trunk/www/biomaterials/bioplates/wells/list_biowells.jsp
r7954 r7982 207 207 filterrows="<%=cc.getFilterRows()%>" 208 208 subclass="fulltable" 209 stickyheaders="<%= null%>"209 stickyheaders="<%=cc.getSetting("columns.sticky", null)%>" 210 210 > 211 211 <tbl:hidden -
trunk/www/biomaterials/bioplatetypes/list_platetypes.jsp
r7954 r7982 145 145 filterrows="<%=cc.getFilterRows()%>" 146 146 subclass="fulltable" 147 stickyheaders=" name"147 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 148 148 > 149 149 <tbl:hidden -
trunk/www/biomaterials/biosources/list_biosources.jsp
r7954 r7982 163 163 subclass="fulltable" 164 164 data-relateditem-columns="true" 165 stickyheaders=" name"165 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 166 166 > 167 167 <tbl:hidden -
trunk/www/biomaterials/events/index.jsp
r7954 r7982 60 60 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %> 61 61 <%! 62 private static final ItemContext defaultContext = Base.createDefaultContext("entryDate", "type,bioPlateEvent,entryDate,eventDate,quantity,protocol,comment" );62 private static final ItemContext defaultContext = Base.createDefaultContext("entryDate", "type,bioPlateEvent,entryDate,eventDate,quantity,protocol,comment", null); 63 63 private static final Item itemType = Item.BIOMATERIALEVENT; 64 64 %> -
trunk/www/biomaterials/events/list_events.jsp
r7954 r7982 160 160 filterrows="<%=cc.getFilterRows()%>" 161 161 subclass="fulltable" 162 stickyheaders="<%= null%>"162 stickyheaders="<%=cc.getSetting("columns.sticky", null)%>" 163 163 > 164 164 <tbl:hidden -
trunk/www/biomaterials/extracts/list_extracts.jsp
r7954 r7982 246 246 data-inherited-annotations="true" 247 247 data-relateditem-columns="true" 248 stickyheaders=" name"248 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 249 249 > 250 250 <tbl:hidden -
trunk/www/biomaterials/kits/list_kits.jsp
r7954 r7982 137 137 filterrows="<%=cc.getFilterRows()%>" 138 138 subclass="fulltable" 139 stickyheaders=" name"139 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 140 140 > 141 141 <tbl:hidden -
trunk/www/biomaterials/samples/list_samples.jsp
r7954 r7982 221 221 data-inherited-annotations="true" 222 222 data-relateditem-columns="true" 223 stickyheaders=" name"223 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 224 224 > 225 225 <tbl:hidden -
trunk/www/biomaterials/tags/list_tags.jsp
r7954 r7982 141 141 filterrows="<%=cc.getFilterRows()%>" 142 142 subclass="fulltable" 143 stickyheaders=" name"143 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 144 144 > 145 145 <tbl:hidden -
trunk/www/common/columns/configure.js
r7853 r7982 28 28 var columnDefs; 29 29 var currentColumns; 30 var currentStickyColumn; 30 31 31 32 var configure = {}; … … 41 42 columnDefs = window.opener.Table.getColumnDefs(tableId); 42 43 currentColumns = window.opener.Table.getColumns(tableId); 44 currentStickyColumn = window.opener.Table.getStickyColumn(tableId); 43 45 44 46 // Initialize the visible and hidden columns lists 45 configure.initColumns(currentColumns );47 configure.initColumns(currentColumns, currentStickyColumn); 46 48 47 49 // Buttons … … 78 80 @param columns A comma-separated string with visible columns 79 81 */ 80 configure.initColumns = function(columns )81 { 82 var frm = document.forms['columns']; 83 // Remove all entries from the 'visible' and 'hidden' lists82 configure.initColumns = function(columns, stickyColumn) 83 { 84 var frm = document.forms['columns']; 85 // Remove all entries from the 'visible', 'hidden' and 'sticky' lists 84 86 var visible = frm.visible; 85 87 var hidden = frm.hidden; 88 var sticky = frm.sticky; 86 89 visible.length = 0; 87 90 hidden.length = 0; 91 if (sticky) 92 { 93 sticky.length = 0; 94 sticky[0] = new Option('- none -', '_'); 95 } 88 96 89 97 // The visibled columns (comma-separated) … … 96 104 { 97 105 var col = columnDefs[i]; 98 if (!col.alwaysHide) configure.addColumn(toList, col); 106 if (!col.alwaysHide) 107 { 108 configure.addColumn(toList, col); 109 if (sticky) 110 { 111 configure.addColumn(sticky, col); 112 if (col.id == stickyColumn) sticky.selectedIndex = sticky.length-1; 113 } 114 } 99 115 } 100 116 … … 139 155 var option = new Option(column.title, column.id); 140 156 option.title = column.title; 141 if (column.alwaysShow )157 if (column.alwaysShow && list.multiple) 142 158 { 143 159 option.style.fontWeight = 'bold'; … … 156 172 var presets = frm.presets; 157 173 var columns = presets.value; 174 var stickyColumn = Data.get(presets[presets.selectedIndex], 'sticky-column'); 158 175 if (columns == '') return; 159 if (columns == '_default_') columns = Data.get('page-data', 'default-columns'); 160 if (columns == '_current_') columns = currentColumns; 176 if (columns == '_default_') 177 { 178 columns = Data.get('page-data', 'default-columns'); 179 stickyColumn = Data.get('page-data', 'default-sticky'); 180 } 181 if (columns == '_current_') 182 { 183 columns = currentColumns; 184 stickyColumn = currentStickyColumn; 185 } 161 186 if (columns == '_minimal_') 162 187 { … … 169 194 columns = temp.join(','); 170 195 } 171 configure.initColumns(columns); 196 if (stickyColumn == null && frm.sticky) stickyColumn = frm.sticky.value; 197 configure.initColumns(columns, stickyColumn); 172 198 presets.selectedIndex = 0; 173 199 } … … 179 205 { 180 206 var visible = configure.getVisibleColumns(); 207 var frm = document.forms['columns']; 208 181 209 var url = 'save_preset.jsp?ID='+App.getSessionId(); 182 210 url += '&item_type='+Data.get('page-data', 'item-type'); 183 211 url += '&subcontext='+Data.get('page-data', 'subcontext', ''); 184 212 url += '&settingName='+Data.get('page-data', 'setting-name'); 185 url += '&columns='+visible; 213 url += '&columns='+encodeURIComponent(visible); 214 if (frm.sticky) url += '&stickyColumn='+encodeURIComponent(frm.sticky.value) 186 215 Dialogs.openPopup(url, 'SavePreset', 450, 300); 187 216 } … … 209 238 var item = event.detail; 210 239 var colId = 'ia'+item.id; 211 // Do not add duplicates212 for (var i = 0; i < frm.visible.length; i++)213 {214 if (frm.visible[i].value == colId) return;215 }216 240 // Remove from 'hidden' list 217 241 for (var i = frm.hidden.length-1; i >= 0; i--) … … 219 243 if (frm.hidden[i].value == colId) frm.hidden[i] = null; 220 244 } 221 frm.visible[frm.visible.length] = new Option(item.name + ' [I]', colId); 245 configure.addUniqueOption(frm.visible, new Option(item.name + ' [I]', colId)); 246 if (frm.sticky) 247 { 248 configure.addUniqueOption(frm.sticky, new Option(item.name + ' [I]', colId)); 249 } 250 222 251 } 223 252 … … 235 264 var frm = document.forms['columns']; 236 265 var data = event.detail; 237 // Do not add duplicates 238 for (var i = 0; i < frm.visible.length; i++) 239 { 240 if (frm.visible[i].value == data.property) return; 241 } 242 frm.visible[frm.visible.length] = new Option(data.title, data.property); 266 configure.addUniqueOption(frm.visible, new Option(data.title, data.property)); 267 if (frm.sticky) 268 { 269 configure.addUniqueOption(frm.sticky, new Option(data.title, data.property)); 270 } 243 271 } 244 272 … … 256 284 var frm = document.forms['columns']; 257 285 var data = event.detail; 258 // Do not add duplicates 259 for (var i = 0; i < frm.visible.length; i++) 260 { 261 if (frm.visible[i].value == data.property) return; 262 } 263 frm.visible[frm.visible.length] = new Option(data.title, data.property); 286 configure.addUniqueOption(frm.visible, new Option(data.title, data.property)); 287 if (frm.sticky) 288 { 289 configure.addUniqueOption(frm.sticky, new Option(data.title, data.property)); 290 } 291 } 292 293 /** 294 Add the option to the list if there is no other options with the 295 same value. 296 */ 297 configure.addUniqueOption = function(list, option) 298 { 299 for (var i = 0; i < list.length; i++) 300 { 301 if (list[i].value == option.value) return; 302 } 303 list[list.length] = option; 264 304 } 265 305 … … 269 309 configure.save = function() 270 310 { 311 var frm = document.forms['columns']; 271 312 var tableId = Data.get('page-data', 'table-id'); 272 313 var visible = configure.getVisibleColumns(); 273 window.opener.Table.setColumns(tableId, visible );314 window.opener.Table.setColumns(tableId, visible, frm.sticky ? frm.sticky.value : null); 274 315 window.close(); 275 316 } -
trunk/www/common/columns/configure.jsp
r7851 r7982 56 56 final boolean enableRelatedItemColumns = Values.getBoolean(request.getParameter("enableRelatedItemColumns")); 57 57 final boolean enableLinkedItemColumns = Values.getBoolean(request.getParameter("enableLinkedItemColumns")); 58 final boolean enableStickyColumn = Values.getBoolean(request.getParameter("enableStickyColumn")); 58 59 final ItemContext cc = sc.getCurrentContext(itemType, subContext); 59 60 60 61 final String defaultColumns = cc.getObject("defaultColumns"); 62 final String defaultSticky = cc.getObject("defaultColumns.sticky"); 61 63 final String settingName = Values.getString(request.getParameter("settingName"), "columns"); 62 64 %> … … 69 71 data-table-id="<%=tableId%>" 70 72 data-default-columns="<%=HTML.encodeTags(defaultColumns) %>" 73 data-default-sticky="<%=HTML.encodeTags(defaultSticky) %>" 71 74 data-item-type="<%=itemType.name() %>" 72 75 data-subcontext="<%=subContext %>" … … 160 163 </tr> 161 164 <tr> 162 <td colspan="4" > 165 <td></td> 166 <% 167 // The layout will be different depending on if the "Sticky column" option 168 // is available or not 169 if (enableStickyColumn) 170 { 171 // We display the "Sticky column" and "Presets" side-by-side 172 %> 173 <td> 174 <b>Sticky column</b><br> 175 <select name="sticky" id="sticky" style="width: calc(100% - 10px);"></select> 176 </td> 177 <td></td> 178 <td> 179 <b>Presets</b><br> 180 <table style="width: 100%;"> 181 <tr> 182 <td> 183 <% 184 } 185 else 186 { 187 // We display the "Presets" centered 188 %> 189 <td colspan="3"> 163 190 <table style="margin-left: auto; margin-right: auto;"> 164 191 <tr> 165 <td> 166 <b>Presets</b> 167 <select name="presets" id="presets"> 168 <option value="">-- predefined -- 169 <option value="all">All 170 <option value="_minimal_">Required 171 <option value="_current_">Current 172 <% 173 if (defaultColumns != null) 192 <td style="padding-right: 0.5em;"><b>Presets</b></td> 193 <td> 194 <% 195 } 196 %> 197 <select name="presets" id="presets" style="width: calc(100% - 10px);"> 198 <option value="">-- predefined -- 199 <option value="all">All 200 <option value="_minimal_">Required 201 <option value="_current_">Current 202 <% 203 if (defaultColumns != null) 204 { 205 %> 206 <option value="_default_">Default 207 <% 208 } 209 %> 210 <option value="">-- user defined -- 211 <% 212 Enumeration<Integer, String> contexts = sc.getContextNames(itemType, subContext); 213 for (int i = 0; i < contexts.size(); ++i) 214 { 215 ItemContext context = sc.getContext(contexts.getKey(i)); 216 if (context != null && !ItemContext.DEFAULT_NAME.equals(context.getName())) 217 { 218 String columns = context.getSetting(settingName); 219 String stickyColumn = context.getSetting(settingName+".sticky"); 220 if (columns != null) 174 221 { 175 222 %> 176 <option value="_default_">Default 223 <option value="<%=columns%>" 224 <%if (stickyColumn != null){%> 225 data-sticky-column="<%=stickyColumn%>" 226 <%}%> 227 ><%=HTML.encodeTags(context.getName())%> 177 228 <% 178 229 } 179 %>180 <option value="">-- user defined --181 <%182 Enumeration<Integer, String> contexts = sc.getContextNames(itemType, subContext);183 for (int i = 0; i < contexts.size(); ++i)184 {185 ItemContext context = sc.getContext(contexts.getKey(i));186 if (context != null && !ItemContext.DEFAULT_NAME.equals(context.getName()))187 {188 String columns = context.getSetting(settingName);189 if (columns != null)190 {191 %>192 <option value="<%=columns%>"><%=HTML.encodeTags(context.getName())%>193 <%194 }195 }196 }197 %>198 </select>199 </td>200 <%201 if (request.getParameter("nosavedelete") == null)202 {203 %>204 <td><base:button id="btnSavePreset" title="Save as…" /></td>205 <%206 230 } 207 %> 208 </tr> 209 </table> 210 211 <div class="padded" style="text-align: right;"> 212 <b>×</b> = This column cannot be hidden 213 </div> 214 215 </td> 231 } 232 %> 233 </select> 234 </td> 235 <% 236 if (request.getParameter("nosavedelete") == null) 237 { 238 %> 239 <td><base:button id="btnSavePreset" title="Save as…" /></td> 240 <% 241 } 242 %> 243 </tr> 244 </table> 245 </td> 246 </tr> 247 <tr> 248 <td colspan="4" > 249 <div class="padded" style="text-align: right;"> 250 <b>×</b> = This column cannot be hidden 251 </div> 252 </td> 216 253 </tr> 217 254 </table> -
trunk/www/common/columns/save_preset.js
r7604 r7982 81 81 } 82 82 presets[addIndex] = new Option(name, frm.columns.value); 83 if (frm.stickyColumn) 84 { 85 Data.set(presets[addIndex], 'sticky-column', frm.stickyColumn.value); 86 } 83 87 presets.selectedIndex = addIndex; 84 88 frm.submit(); -
trunk/www/common/columns/save_preset.jsp
r6607 r7982 42 42 final String columns = request.getParameter("columns"); 43 43 final String settingName = Values.getString(request.getParameter("settingName"), "columns"); 44 final String stickyColumn = Values.getStringOrNull(request.getParameter("stickyColumn")); 44 45 %> 45 46 <base:page type="popup" title="Save preset"> … … 55 56 <input type="hidden" name="subcontext" value="<%=subContext%>"> 56 57 <input type="hidden" name="settingName" value="<%=settingName%>"> 57 58 58 <% 59 if (stickyColumn != null) 60 { 61 %> 62 <input type="hidden" name="stickyColumn" value="<%=HTML.encodeTags(stickyColumn)%>"> 63 <% 64 } 65 %> 59 66 <div class="content"> 60 67 <table class="fullform input100 smaller bottomborder"> -
trunk/www/common/columns/submit_preset.jsp
r6192 r7982 54 54 final String name = request.getParameter("name"); 55 55 final String settingName = Values.getString(request.getParameter("settingName"), "columns"); 56 final String stickyColumn = Values.getStringOrNull(request.getParameter("stickyColumn")); 56 57 final ItemContext cc = sc.getCurrentContext(itemType, subContext); 57 58 String forward = null; … … 62 63 String columns = request.getParameter("columns"); 63 64 cc.setSetting(settingName, columns); 65 if (stickyColumn != null) cc.setSetting(settingName+".sticky", stickyColumn); 64 66 sc.saveCurrentContextAs(itemType, subContext, name, true, false); 65 67 } -
trunk/www/common/history/index.jsp
r7954 r7982 76 76 <%! 77 77 private static final ItemContext defaultContext = 78 Base.createDefaultContext("-$hst.time", "time,changeType,changeInfo,transaction,user" );78 Base.createDefaultContext("-$hst.time", "time,changeType,changeInfo,transaction,user", "time"); 79 79 private static final Item itemType = Item.CHANGEHISTORY; 80 80 -
trunk/www/common/history/list_history.jsp
r7954 r7982 170 170 filterrows="<%=cc.getFilterRows()%>" 171 171 subclass="fulltable" 172 stickyheaders=" time"172 stickyheaders="<%=cc.getSetting("columns.sticky", "time")%>" 173 173 subcontext="<%=subContext%>" 174 174 > -
trunk/www/filemanager/files/list_files.jsp
r7954 r7982 318 318 filterrows="<%=cc.getFilterRows()%>" 319 319 subclass="fulltable" 320 stickyheaders=" name"320 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 321 321 > 322 322 <tbl:hidden -
trunk/www/filemanager/fileservers/list_fileservers.jsp
r7954 r7982 116 116 filterrows="<%=cc.getFilterRows()%>" 117 117 subclass="fulltable" 118 stickyheaders=" name"118 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 119 119 > 120 120 <tbl:hidden -
trunk/www/include/scripts/lazy-items.js
r7840 r7982 127 127 }(); 128 128 129 Doc. onLoad(Lazy.initLazyItems);129 Doc.addFinalizer(Lazy.initLazyItems); 130 130 -
trunk/www/include/scripts/table.js
r7952 r7982 841 841 @param columns Comma-separated list of column ID:s of the visible columns, or the value 'all' 842 842 */ 843 table.setColumns = function(tableDiv, columns) 844 { 845 tableDiv = Doc.element(tableDiv); 846 var frm = document.forms[tableDiv.id]; 843 table.setColumns = function(tableDiv, columns, stickyColumn) 844 { 845 tableDiv = Doc.element(tableDiv); 846 var frm = document.forms[tableDiv.id]; 847 var submit = false; 847 848 if (frm.columns.value != columns) 848 849 { 849 850 frm.columns.value = columns; 850 Forms.submit(frm); 851 } 851 submit = true; 852 } 853 if (stickyColumn && frm.sticky_column && frm.sticky_column.value != stickyColumn) 854 { 855 frm.sticky_column.value = stickyColumn; 856 submit = true; 857 } 858 if (submit) Forms.submit(frm); 852 859 } 853 860 … … 880 887 } 881 888 889 table.getStickyColumn = function(tableDiv) 890 { 891 tableDiv = Doc.element(tableDiv); 892 var frm = document.forms[tableDiv.id]; 893 return frm.sticky_column ? frm.sticky_column.value : null; 894 } 882 895 883 896 /** … … 928 941 { 929 942 tableDiv = Doc.element(tableDiv); 943 var frm = document.forms[tableDiv.id]; 930 944 var itemType = Data.get(tableDiv, 'item-type'); 931 945 var subContext = Data.get(tableDiv, 'subcontext', ''); … … 939 953 if (enableRelatedItemColumns) url += '&enableRelatedItemColumns=1'; 940 954 if (!disableLinkedItemColumns) url += '&enableLinkedItemColumns=1'; 955 if (frm.sticky_column) url += '&enableStickyColumn=1'; 941 956 942 957 if (settingName) url += '&settingName='+settingName; -
trunk/www/lims/arraybatches/list_batches.jsp
r7954 r7982 157 157 subclass="fulltable" 158 158 data-inherited-annotations="true" 159 stickyheaders=" name"159 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 160 160 > 161 161 <tbl:hidden -
trunk/www/lims/arraydesigns/features/index.jsp
r7954 r7982 55 55 <%! 56 56 private static final ItemContext defaultContext = Base.createDefaultContext("position", 57 "position,externalId,block,row,column,reporter.name,reporter.externalId" );57 "position,externalId,block,row,column,reporter.name,reporter.externalId", "externalId"); 58 58 private static final Item itemType = Item.FEATURE; 59 59 -
trunk/www/lims/arraydesigns/features/list_features.jsp
r7954 r7982 187 187 filterrows="<%=cc.getFilterRows()%>" 188 188 subclass="fulltable" 189 stickyheaders="<%= fiMethod == FeatureIdentificationMethod.FEATURE_ID ? "externalId" : "position"%>"189 stickyheaders="<%=cc.getSetting("columns.sticky", fiMethod == FeatureIdentificationMethod.FEATURE_ID ? "externalId" : "position")%>" 190 190 > 191 191 <tbl:hidden -
trunk/www/lims/arraydesigns/list_designs.jsp
r7954 r7982 190 190 subclass="fulltable" 191 191 data-inherited-annotations="true" 192 stickyheaders=" name"192 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 193 193 > 194 194 <tbl:hidden -
trunk/www/lims/arrayslides/list_slides.jsp
r7954 r7982 146 146 subclass="fulltable" 147 147 data-inherited-annotations="true" 148 stickyheaders=" name"148 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 149 149 > 150 150 <tbl:hidden -
trunk/www/lims/geometries/list_geometries.jsp
r7954 r7982 128 128 filterrows="<%=cc.getFilterRows()%>" 129 129 subclass="fulltable" 130 stickyheaders=" name"130 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 131 131 > 132 132 <tbl:hidden -
trunk/www/lims/platemappings/list_mappings.jsp
r7954 r7982 127 127 filterrows="<%=cc.getFilterRows()%>" 128 128 subclass="fulltable" 129 stickyheaders=" name"129 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 130 130 > 131 131 <tbl:hidden -
trunk/www/lims/plates/events/index.jsp
r7954 r7982 60 60 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %> 61 61 <%! 62 private static final ItemContext defaultContext = Base.createDefaultContext("plateEventType.ordinal", "eventType,ordinal,entryDate,eventDate,protocol,comment" );62 private static final ItemContext defaultContext = Base.createDefaultContext("plateEventType.ordinal", "eventType,ordinal,entryDate,eventDate,protocol,comment", "eventType"); 63 63 private static final Item itemType = Item.PLATEEVENT; 64 64 %> -
trunk/www/lims/plates/events/list_events.jsp
r7954 r7982 136 136 filterrows="<%=cc.getFilterRows()%>" 137 137 subclass="fulltable" 138 stickyheaders=" eventType"138 stickyheaders="<%=cc.getSetting("columns.sticky", "eventType")%>" 139 139 > 140 140 <tbl:hidden -
trunk/www/lims/plates/list_plates.jsp
r7954 r7982 163 163 filterrows="<%=cc.getFilterRows()%>" 164 164 subclass="fulltable" 165 stickyheaders=" name"165 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 166 166 > 167 167 <tbl:hidden -
trunk/www/lims/plates/wells/index.jsp
r7954 r7982 59 59 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %> 60 60 <%! 61 private static final ItemContext defaultContext = Base.createDefaultContext("row", "row,column,reporter.name,reporter.externalId" );61 private static final ItemContext defaultContext = Base.createDefaultContext("row", "row,column,reporter.name,reporter.externalId", null); 62 62 private static final Item itemType = Item.WELL; 63 63 -
trunk/www/lims/plates/wells/list_wells.jsp
r7954 r7982 187 187 filterrows="<%=cc.getFilterRows()%>" 188 188 subclass="fulltable" 189 stickyheaders="<%= null%>"189 stickyheaders="<%=cc.getSetting("columns.sticky", null)%>" 190 190 > 191 191 <tbl:hidden -
trunk/www/lims/platetypes/eventtypes/list_eventtypes.jsp
r7954 r7982 127 127 filterrows="<%=cc.getFilterRows()%>" 128 128 subclass="fulltable" 129 stickyheaders=" name"129 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 130 130 > 131 131 <tbl:hidden -
trunk/www/lims/platetypes/list_platetypes.jsp
r7954 r7982 136 136 filterrows="<%=cc.getFilterRows()%>" 137 137 subclass="fulltable" 138 stickyheaders=" name"138 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 139 139 > 140 140 <tbl:hidden -
trunk/www/my_base/messages/list_messages.jsp
r7954 r7982 120 120 filterrows="<%=cc.getFilterRows()%>" 121 121 subclass="fulltable" 122 stickyheaders=" name"122 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 123 123 > 124 124 <tbl:hidden -
trunk/www/my_base/projects/items/list_items.jsp
r7954 r7982 164 164 subclass="fulltable" 165 165 data-no-linkeditem-columns="1" 166 stickyheaders=" name"166 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 167 167 > 168 168 <tbl:hidden -
trunk/www/my_base/projects/list_projects.jsp
r7954 r7982 133 133 filterrows="<%=cc.getFilterRows()%>" 134 134 subclass="fulltable" 135 stickyheaders=" name"135 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 136 136 > 137 137 <tbl:hidden -
trunk/www/views/derivedbioassays/list_bioassays.jsp
r7954 r7982 201 201 data-inherited-annotations="true" 202 202 data-relateditem-columns="true" 203 stickyheaders=" name"203 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 204 204 > 205 205 <tbl:hidden -
trunk/www/views/devices/list_devices.jsp
r7954 r7982 79 79 try 80 80 { 81 final User user = cc.getInclude().contains(Include.OTHERS) ? 82 null : User.getById(dc, sc.getLoggedInUserId()); 81 final User user = User.getById(dc, sc.getLoggedInUserId()); 83 82 84 83 Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc); … … 88 87 try 89 88 { 90 final ItemQuery<UserDevice> query = Base.getConfiguredQuery(dc, cc, jspContext, true, UserDevice.getQuery( user), mode);89 final ItemQuery<UserDevice> query = Base.getConfiguredQuery(dc, cc, jspContext, true, UserDevice.getQuery(null), mode); 91 90 devices = query.iterate(dc); 92 91 } … … 119 118 filterrows="<%=cc.getFilterRows()%>" 120 119 subclass="fulltable" 121 stickyheaders=" name"120 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 122 121 > 123 122 <tbl:hidden -
trunk/www/views/experiments/bioassays/list_bioassays.jsp
r7954 r7982 204 204 subclass="fulltable" 205 205 data-inherited-annotations="true" 206 stickyheaders=" name"206 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 207 207 > 208 208 <tbl:hidden -
trunk/www/views/experiments/bioassaysets/analysis_tree.jsp
r7954 r7982 372 372 filterrows="<%=cc.getFilterRows()%>" 373 373 subclass="<%=root == null ? "fulltable" : "" %>" 374 stickyheaders=" name"374 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 375 375 > 376 376 <tbl:hidden -
trunk/www/views/experiments/explorer/search/list.jsp
r7954 r7982 148 148 filterrows="<%=cc.getFilterRows()%>" 149 149 subclass="fulltable" 150 stickyheaders=" externalId"150 stickyheaders="<%=cc.getSetting("columns.sticky", "externalId")%>" 151 151 > 152 152 <tbl:hidden -
trunk/www/views/experiments/list_experiments.jsp
r7954 r7982 140 140 filterrows="<%=cc.getFilterRows()%>" 141 141 subclass="fulltable" 142 stickyheaders=" name"142 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 143 143 > 144 144 <tbl:hidden -
trunk/www/views/experiments/reporters/index.jsp
r7954 r7982 62 62 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %> 63 63 <%! 64 private static final ItemContext defaultContext = Base.createDefaultContext("@externalId", "cln.externalId,upToDate" );64 private static final ItemContext defaultContext = Base.createDefaultContext("@externalId", "cln.externalId,upToDate","cln.externalId"); 65 65 private static final Item itemType = Item.REPORTER; 66 66 %> -
trunk/www/views/experiments/reporters/list_reporters.jsp
r7954 r7982 155 155 filterrows="<%=cc.getFilterRows()%>" 156 156 subclass="fulltable" 157 stickyheaders=" cln.externalId"157 stickyheaders="<%=cc.getSetting("columns.sticky", "cln.externalId")%>" 158 158 > 159 159 <tbl:hidden -
trunk/www/views/experiments/spotdata/index.jsp
r7954 r7982 52 52 { 53 53 // Default visible columns are: position, ch1, ch2, ... 54 StringBuilder columns = new StringBuilder("POSITION ");54 StringBuilder columns = new StringBuilder("POSITION,rep.externalId"); 55 55 for (int ch = 1; ch <= rdt.getChannels(); ++ch) 56 56 { … … 58 58 } 59 59 defaultContexts.put(rdt, 60 Base.createDefaultContext("POSITION", columns.toString() ));60 Base.createDefaultContext("POSITION", columns.toString(), "rep.externalId")); 61 61 } 62 62 } -
trunk/www/views/experiments/spotdata/list_spotdata.jsp
r7954 r7982 208 208 filterrows="<%=cc.getFilterRows()%>" 209 209 subclass="fulltable" 210 stickyheaders=" rep.externalId"210 stickyheaders="<%=cc.getSetting("columns.sticky", "rep.externalId")%>" 211 211 > 212 212 <tbl:hidden -
trunk/www/views/formulas/list_formulas.jsp
r7954 r7982 157 157 filterrows="<%=cc.getFilterRows()%>" 158 158 subclass="fulltable" 159 stickyheaders=" name"159 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 160 160 > 161 161 <tbl:hidden -
trunk/www/views/itemlists/list_lists.jsp
r7954 r7982 178 178 filterrows="<%=cc.getFilterRows()%>" 179 179 subclass="fulltable" 180 stickyheaders=" name"180 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 181 181 > 182 182 <tbl:hidden -
trunk/www/views/itemlists/members/list_members.jsp
r7954 r7982 205 205 data-inherited-annotations="<%=annotatable%>" 206 206 data-relateditem-columns="true" 207 stickyheaders=" name"207 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 208 208 > 209 209 <tbl:hidden -
trunk/www/views/items/list_items.jsp
r7954 r7982 151 151 subclass="fulltable" 152 152 data-no-linkeditem-columns="1" 153 stickyheaders=" name"153 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 154 154 > 155 155 <tbl:columndef -
trunk/www/views/jobs/list_jobs.jsp
r7954 r7982 166 166 filterrows="<%=cc.getFilterRows()%>" 167 167 subclass="fulltable" 168 stickyheaders=" name"168 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 169 169 > 170 170 <tbl:hidden -
trunk/www/views/permissiontemplates/list_templates.jsp
r7954 r7982 114 114 filterrows="<%=cc.getFilterRows()%>" 115 115 subclass="fulltable" 116 stickyheaders=" name"116 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 117 117 > 118 118 <tbl:hidden -
trunk/www/views/physicalbioassays/list_bioassays.jsp
r7954 r7982 189 189 data-inherited-annotations="true" 190 190 data-relateditem-columns="true" 191 stickyheaders=" name"191 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 192 192 > 193 193 <tbl:hidden -
trunk/www/views/rawbioassays/list_rawbioassays.jsp
r7954 r7982 204 204 data-inherited-annotations="true" 205 205 data-relateditem-columns="true" 206 stickyheaders=" name"206 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 207 207 > 208 208 <tbl:hidden -
trunk/www/views/rawbioassays/rawdata/list_rawdata.jsp
r7954 r7982 191 191 filterrows="<%=cc.getFilterRows()%>" 192 192 subclass="fulltable" 193 stickyheaders=" position"193 stickyheaders="<%=cc.getSetting("columns.sticky", "position")%>" 194 194 > 195 195 <tbl:hidden -
trunk/www/views/reporterlists/list_reporterlists.jsp
r7954 r7982 116 116 filterrows="<%=cc.getFilterRows()%>" 117 117 subclass="fulltable" 118 stickyheaders=" name"118 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 119 119 > 120 120 <tbl:hidden -
trunk/www/views/reporterlists/reporters/list_reporters.jsp
r7954 r7982 148 148 filterrows="<%=cc.getFilterRows()%>" 149 149 subclass="fulltable" 150 stickyheaders=" name"150 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 151 151 > 152 152 <tbl:hidden -
trunk/www/views/reporters/list_reporters.jsp
r7954 r7982 132 132 filterrows="<%=cc.getFilterRows() %>" 133 133 subclass="fulltable" 134 stickyheaders=" name"134 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 135 135 > 136 136 <tbl:hidden -
trunk/www/views/sessions/list_sessions.jsp
r7954 r7982 91 91 try 92 92 { 93 final ItemQuery<Session> query = Base.getConfiguredQuery(dc, cc, jspContext, true, Session.getQuery( cc.getInclude().contains(Include.OTHERS) ? null : user), mode);93 final ItemQuery<Session> query = Base.getConfiguredQuery(dc, cc, jspContext, true, Session.getQuery(null), mode); 94 94 sessions = query.iterate(dc); 95 95 } … … 122 122 filterrows="<%=cc.getFilterRows()%>" 123 123 subclass="fulltable" 124 stickyheaders=" loginTime"124 stickyheaders="<%=cc.getSetting("columns.sticky", "loginTime")%>" 125 125 > 126 126 <tbl:hidden -
trunk/www/views/trashcan/list_trash.jsp
r7954 r7982 153 153 subclass="fulltable" 154 154 data-no-linkeditem-columns="1" 155 stickyheaders=" name"155 stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>" 156 156 > 157 157 <tbl:columndef
Note: See TracChangeset
for help on using the changeset viewer.