[636] | 1 | == Requirements == |
---|
| 2 | |
---|
[4240] | 3 | 1. BASE 3.10 or later. |
---|
[636] | 4 | |
---|
| 5 | == Introduction == |
---|
| 6 | |
---|
[683] | 7 | This package contains a few simple variants of ''Hello world'' applications |
---|
| 8 | in the form of extensions to the BASE web client. The package installs |
---|
| 9 | several examples into the ''Extensions -> Hello world examples'' menu: |
---|
[636] | 10 | |
---|
[683] | 11 | * Hello world! - A basic example using only javascript |
---|
| 12 | * Hello factory world! - An example that uses a custom action factory |
---|
| 13 | * Greetings Root! - An example of a custom action factory with parameters |
---|
| 14 | * Hello JSP world! - Uses a JSP file to display the message instead of javascript |
---|
| 15 | * Hello X-JSP world! - Another variant of a JSP file |
---|
| 16 | * Hello Servlet world! - Uses a servlet to generate the message |
---|
[1150] | 17 | * Hello Servlet world (alternate)! - Uses an alternative servlet path |
---|
[636] | 18 | |
---|
[1019] | 19 | There are also a few toolbar button extensions: |
---|
| 20 | |
---|
| 21 | * More info - A toolbar button on all single-item toolbars and |
---|
| 22 | displays some information in a popup window about the current item. |
---|
| 23 | * Annotation filter - A toolbar button on all list pages for annotatable |
---|
| 24 | items which allows a user to show only items with/without annotations. |
---|
| 25 | |
---|
[1269] | 26 | And a edit/save extension: |
---|
| 27 | |
---|
| 28 | * Sample history data - Two extensions that works together. The first adds |
---|
| 29 | a tab to the "Edit sample" dialog were the user can select a file to link |
---|
| 30 | with the sample. The second extensions attaches to the save event and |
---|
| 31 | saves the link. |
---|
[1271] | 32 | * Last updated by - An on-save extension that creates an any-to-any link |
---|
| 33 | between any item and the currently logged in user. This is a very simple |
---|
| 34 | logging feature that stores information about the last update to an item. |
---|
[1269] | 35 | |
---|
[1596] | 36 | And some extra list columns: |
---|
| 37 | |
---|
| 38 | * Owner registration date - Adds a list column that display the registration |
---|
| 39 | date of the owner of the item. The column is added to all list pages that |
---|
| 40 | list items that have an owner. |
---|
| 41 | * Onwer email - Adds a list column that display the email address of the |
---|
| 42 | owner of the item. This uses a custom formatter to create mailto links |
---|
| 43 | on the web page and a formatter that convert to upper case when exporting. |
---|
| 44 | The column is added to all list pages that list items that have an owner. |
---|
| 45 | * Data files - Adds a column to the raw bioassay list that display the |
---|
| 46 | data files that are attached to each raw bioassay. This uses a custom |
---|
| 47 | action factory and illustrates the possibility to create fullblown HTML |
---|
| 48 | for the web page, and a text-only variant for the table exporter. |
---|
| 49 | |
---|
[1604] | 50 | Item overview extensions: |
---|
| 51 | |
---|
[1611] | 52 | * Loader that add the owner of an item to the overview. |
---|
| 53 | * Validator that check that the owner has an URL and that it is valid. |
---|
| 54 | * Loader that load the role membership of users. |
---|
| 55 | * Validator that check that a user is a member of at least one role. |
---|
| 56 | * A extra information section which display some information about the |
---|
| 57 | currently selected node and item. |
---|
[1604] | 58 | |
---|
[1711] | 59 | Logging extensions: |
---|
| 60 | |
---|
| 61 | * A logging extension that write information about created, updated and |
---|
| 62 | deleted items to stdout. The logger is based on the default database |
---|
| 63 | logger. |
---|
| 64 | |
---|
[4239] | 65 | A custom extension point: |
---|
| 66 | |
---|
| 67 | * A simple example of defining a custom extension point. There is |
---|
| 68 | one implementation provided in this package, but the main purpose |
---|
| 69 | of the extension point is to make it easier for other extensions to |
---|
| 70 | test and implement custom extension points. |
---|
| 71 | |
---|
[1347] | 72 | This package contains the following plug-ins: |
---|
| 73 | |
---|
| 74 | * An importer that pretends to be able to import samples. It will |
---|
| 75 | accept any file, but doesn't do anything. Main purpose is to |
---|
| 76 | show parameter handling with plug-ins. |
---|
| 77 | * An analyser plug-in that does some bogus calculations on a |
---|
| 78 | bioassay set. Main purpose is to show how a plug-in can access |
---|
| 79 | analysed data, do some calculations and store the result as |
---|
| 80 | a new bioassay set. |
---|
| 81 | |
---|
| 82 | |
---|
[636] | 83 | == Installation == |
---|
| 84 | |
---|
[1392] | 85 | 1. Download the base-examples-*.tar.gz file. |
---|
| 86 | 2. Unpack the downloaded file to a directory of your choice. |
---|
| 87 | 3. Copy the 'base-examples.jar' file to your BASE plug-ins directory |
---|
| 88 | as configured in the base.config[plugins.dir] setting. |
---|
| 89 | 4. Go to 'Administrate->Plug-ins & Extensions->Overview' page. |
---|
| 90 | 5. Run the installation wizard and select to install 'base-examples.jar'. |
---|
| 91 | 6. The ''Hello X-JSP world'' example requires that the X-JSP compiler is installed |
---|
[683] | 92 | on the server. Read in the documentation how to do this. |
---|
[6306] | 93 | https://base.thep.lu.se/chrome/site/latest/html/admin/plugins.installation.html |
---|
[1392] | 94 | 7. Done. You may have to use 'BASE->Reload permissions' from the menu to see the |
---|
| 95 | 'Extensions' menu. |
---|
[636] | 96 | |
---|
[1392] | 97 | |
---|
[636] | 98 | == Compiling == |
---|
| 99 | |
---|
| 100 | To compile this package you also need: |
---|
| 101 | |
---|
[1433] | 102 | 1. Ant 1.8 |
---|
[4236] | 103 | 2. Java 1.8 |
---|
[636] | 104 | |
---|
| 105 | Follow these instructions: |
---|
| 106 | |
---|
[691] | 107 | 1. Type `ant download-lib` to automatically download the BASE core JAR file that |
---|
| 108 | are neeed for compilation. You can also do this manually by copying the |
---|
[2287] | 109 | base-core-3.x.jar and base-webclient-3.x.jar files from the BASE installation |
---|
[1346] | 110 | directory (<basedir>/www/WEB-INF/lib/) to the ./lib/compile directory. |
---|
[636] | 111 | |
---|
[1392] | 112 | 2. Type 'ant' to compile the code and generate the 'base-examples.jar' |
---|
[1094] | 113 | file in the project directory. This file can be installed into BASE following |
---|
| 114 | the intructions above. |
---|
| 115 | |
---|
[1346] | 116 | 3. Use 'ant package' to create a downloadable tar.gz. |
---|
| 117 | |
---|
| 118 | 4. If you create a file called 'build.properties' and enter a the path to the |
---|
| 119 | plug-ins directory under the key 'base.plugins', you can simply type |
---|
| 120 | 'ant install' to copy the examples to the BASE plug-ins directory. |
---|