------------------------------------------------------------------------------ ooooooooooooooooooooooooooo WDK Version 1.19 ooooooooooooooooooooooooooooooo ------------------------------------------------------------------------------ Summary: A minor release, fixed several bugs, and some new features. =========================== Model Features =========================== * new type-ahead param * new dependent param =========================== View Features =========================== * allow adding multiple columns at once into the summary view. ------------------------------------------------------------------------------ ooooooooooooooooooooooooooo WDK Version 1.19 ooooooooooooooooooooooooooooooo ------------------------------------------------------------------------------ Summary: This is a major release, the WDK is updated to support the Lasted UI advancement, including the strategy systems. ------------------------------------------------------------------------------ ooooooooooooooooooooooooooo WDK Version 1.18 ooooooooooooooooooooooooooooooo ------------------------------------------------------------------------------ Summary: This is a major release, many of the model code have been rewritten, including new caching strategy, and primaryKey can now have multiple columns, and new filter mechanism has been added. =========================== Model Features =========================== * The persistent tables are changed (check out the sql script in Model/data); Answer persistent data is put into answer schema, and user persistent data is put into user schema; * The caching tables are changed. Caching index tables include "Query" and "QueryInstance", and they are created automatically. Cache tables are created per question, and query_instance_id is used to identify the result set for each query instance. * Authors are required to define for each , which can have one or more columns to be used as combined primary key. (For compatibility consideration, a "project_id" column is suggested). * the id queries (queries referred by questions) are required to return all primary key columns, and WDK will verify it on model loading time; * the attribute queries (queries referred by in records are required to return all primary key columns too. An attribute query is supposed to return rows for all records, and one row per unique primary key; it should not have any param defined. * the table queries (queries referred by in records) are required to return all primary key columns too; (This constraint may be removed in the future releases;) It can have optional params and the param name must match any of the primary key columns. * is removed, and replaced by ; answerParam is required to define an associated recordClass; * and are used to define filters on the results of a given recordClass type. A filter instance can be applied to any questions of that recordClass type. A filter query must have one answerParam, and optional other params; the values for the other params should be defined in ; while the value of the answerParam is fetched automatically at rum-time. User can define a default filter, and it will be applied automatically for all answers of the given recordClass type. If a booleanExpansion flag is assigned, all boolean results will be expanded by that filter before the boolean operation. * provides directives to layout a group of filters on GUI; but it's up to the UI to decide the final display; * "sortingTable" property is deprecated, and if a "sortingColumn" is specified, it must be an existing column in the same query; * "lowerCase" property is changed to "ignoreCase"; if it's specified, the case of the values will be ignored when sorting on the column; * Author can nest other attributes in primaryKeyAttribute(), textAttribute() and linkAttribute(, ), but only columnAttribute and primaryKeyAttribute are allow in such nesting; the syntax is similar to params, for example, $$source_id$$; * An columnAttribute will be created by WDK for each primary column, if the author doesn't define one. * the model-config.xml format changed. The data is grouped into appDb and userDb, and some of the configurations become optional. * property declarations added in the model; WDK will make sure all the declared properties present in model prop. * More model validations; WDK now catches many of the model inconsistancies at loading time, and better error messages. * Sanity tests are integrated into the model, and the command lines are easier to use. "-d" will allow wdkQuery and wdkSummary use default values as input; * "-filter" in wdkSummary to display a view on command-line; * wsQuery is renamed to processQuery to reflect its nature. =========================== View Features =========================== * Filter summary and view are added to the summary page. * User can click on a filter to view the filtered results; * A history item is created for each filter result; and we also display filter name on history page, if a history has a filter applied * User can choose to expand all boolean operands before boolean operations. * for every new query from the query page, a history item is created, even if the params of this query is identical to a previous history. ============================= Bug Fixes ============================== * Improved error messages, and more model errors are caught in model loading phase. ------------------------------------------------------------------------------ ooooooooooooooooooooooooooo WDK Version 1.17 ooooooooooooooooooooooooooooooo ------------------------------------------------------------------------------ Summary: Unified EnumParam and FlatVocabParam =========================== Model Features =========================== * Unified EnumParam & FlatVocabParam to use identical interfaces, and thus use only one EnumParamBean and enumParamInput.tag * As part of the unification, FlatVocabParam supports optional "Display" column; If "Display" is not defined, Enum/FlatVocabParam will use "Term" by default. * Add more constraints into model definition; the valid values for all boolean properties should be choose from "true" or "false", and enum values are listed in wdkModel.rng as well; * add new option, "dropSingle" to wdkCache command, which drops a single cache, or a group of caches of same query; * add documentations for model syntax and allowed values; =========================== View Features =========================== * added display "All" button in summary that lists all records when the size is less than 1000; when all records are display for an answer, it won't be set as the default page size for the similar answers from same question. ============================= Bug Fixes ============================== * solved a connection leak when reloading webapps; * display IdPrefix correctly for record. ------------------------------------------------------------------------------ ooooooooooooooooooooooooooo WDK Version 1.15 ooooooooooooooooooooooooooooooo ------------------------------------------------------------------------------ Summary: This is a minor release with lots of bug fixes, as well as some new features in the model. =========================== Model Features =========================== * new optional "displaType" for enumParam and flatVocabParam. It enforces the display style of the list: checkBox or listBox * Support local process query. If the "local" property in wsQuery is set to true, the Process query will invoke the WSF Plugin directly, bypassing all web service steps. It requires that the Plugin is deployed into the same webapp with WDK. * "resultSizeOnly" param for showSummary.do will ask the action to return the size of the answer in plain text; all html info is truncated. This param is useful to the clients who need to process the result size programatically. * The directory layout for config file has be changed. Now the config and prop file are: $GUS_HOME//model-config.xml, and $GUS_HOME//model.prop, respectively. ============================= Bug Fixes ============================== * Fixed a bug that truncates the result in detailed cached report; * Corrected the behavior of "include empty table" option; * Improved error messages and verbiage. ------------------------------------------------------------------------------ ooooooooooooooooooooooooooo WDK Version 1.14 ooooooooooooooooooooooooooooooo ------------------------------------------------------------------------------ Summary: In this release, the architecture of WDK Model has major changes. We now allow multiple projects sharing the same model, and use ProjectId to configure the project specific sections. =========================== Model Features =========================== * Re-organize the layout of the model file, and the model can be distributed into multiple files with tag; * "includeProjects" & "excludeProjects" properties can be applied to all levels of tags in the model file (except tag); * new (in the model level) and (in the question level) defines the properties consumable by the question. The overrides the of the same name; * new tag for the params. It separates the "default", "allowEmpty", "emptyValue" from the param tag. * "default" property defines the default value for the param. * If "allowEmpty" is true, the value to the param can be omitted from the web UI, and the assigned "emptyValue" will be used (if defined), or the "default" will be used if "emptyValue" is not defined. * new tag for params that separates "sumamry" and "sorting" attribute list from tag * new "quote" property (true/false) in the param to determine whether a param should be quoted in the SQL. * new that allows author to define enumerations. The "default" is defined directly into the as "true/false". * the "quote", "default", "allowEmpty", "emptyValue" can be override by the values defined in the tag. The can also override the sql reference in the . * new provides a macro to construct SQL statements that are specific to each project. The substitution markers are &¯o_name&& in SQL. * Strong type enforcement are put into many properties of the tags, such as boolean, enumeration values. ------------------------------------------------------------------------------ ooooooooooooooooooooooooooo WDK Version 1.13 ooooooooooooooooooooooooooooooo ------------------------------------------------------------------------------ Summary: In this release, several major features are added into WDK, including column sorting, dynamic configuration, batch data uploading, report maker framework, as well as many bug fixes =========================== Model Features =========================== * Add optional "sortingTable", "sortingColumn" property into column tag to enable sorting ability on the given column; * Add optional "sortable" property into attribute fields into flag whether an attribute field is allowed to be sorted on from the summary result page; * Add optional "sortingAttributeList" into questions to define the default sorting for the given question; * Add "default" on params; author can specify default value for a param globally, or query-specifically. FlatVocabParam can have mutliple default values, separated by comma; * Add dataset Param to allow bulk input * Add history Param to use one history as the input of another question =========================== Controller Features =========================== * Keep complete query information in the url (question, parameters, etc), so that user can bookmark result summary page * Handle errors more gracefully with new error page * New report maker controllers to support different formats of output =========================== View Features =========================== * Allow user to sort result in the summary page * Allow user to configure the columns in the summary page * Allow user to choose different types of downloadable reporter * Display incompatible query histories from previous version * Allow uploading of a list of ids ------------------------------------------------------------------------------ ooooooooooooooooooooooooooo WDK Version 1.12 ooooooooooooooooooooooooooooooo ------------------------------------------------------------------------------ Summary: this is a version that supports PlasmoDB 5.1 general release (http://www.plasmodb.org/). In addition to fixes of issues and bugs revealed by extensive QA of the above site, we have user authentication functions, and user comments for authorized users. ------------------------------------------------------------------------------ ooooooooooooooooooooooooooo WDK Version 1.11 ooooooooooooooooooooooooooooooo ------------------------------------------------------------------------------ Summary: this is a version that supports PlasmoDB 5.1 general release (http://v5-1.plasmodb.org/). In addition to fixes of issues and bugs revealed by extensive QA of the above site, the process queries component of WDK is factored out into a companion project WSF (short for Web Service Framework). =========================== Model Features =========================== * Add user register/login function * Add session based user histories * Add global- & project-based user preferences * Add boolean operations (UNION, INTERSET, MINUS) between query histories =========================== Controller Features =========================== * Add following user login related actions: - register - login - logout - updateProfile - changePassword - resetPassword * Refine the boolean operation action for the support of query history =========================== View Features =========================== * Add following new user interfaces: - register - login - logout - updateProfile - changePassword - resetPassword * refine the boolean operation action for the support of query history ------------------------------------------------------------------------------ ooooooooooooooooooooooooooo WDK Version 1.10 ooooooooooooooooooooooooooooooo ------------------------------------------------------------------------------ Summary: this is a version that supports PlasmoDB 5.0 Beta release (http://v5-0.plasmodb.org/). Main features are dynamic attributes to support process queries and blast process queries. There has been numerous fixes and enhancements since Version 1.9. ==================== Model - Fixed Bugs ======================== * fixed bug 266: dynamic attributes not handled properly in reportMaker (aka download) ===================== Model - Features ========================== * definition of record attributes are moved up from attribute queries to record itself * added flags in attributes to indicate whether they should be included in reportMaker * include all attributes not excluded from reportMaker available for download * added displayName, internal, help to tables and attributes * added support of readonly and hidden (visible=false) params * persisted user history into database ===================== Controller - Fixed Bugs =================== * handle session correctly when a question is re-accessed via browser back button * when answer has dynamic attributes, do not skip summary page even if there is only one result ===================== Controller - Features ===================== * make all record attributes not excluded for report maker to be available for selection in report maker config page * allow download config page to refer to summary page for default downloadable attributes * question by url w/ prefilled params goto summary only if goto_summary=1 is included in url * allow summary page to load directly when a question is asked with all params prefilled * allow question page to be linked to with prefilled values * added hooks for custom error page, config more types of global errors to handle ===================== View - Fixed Bugs ========================= * handle session correctly when a question is re-accessed via browser back button ===================== View - Features =========================== * added select all and clear all buttons to reportMaker page * remove reset button and say Get Report instead of Continue * added javascript to auto uncheck attribute selections between default and custom * report maker config page no longer use all record atrributes for selection * download config page to refer to summary page for default downloadable attributes ------------------------------------------------------------------------------ ooooooooooooooooooooooooooo WDK Version 1.9 oooooooooooooooooooooooooooooooo ------------------------------------------------------------------------------ Summary: this is a version that supports PlasmoDB 5.0 Beta release (http://v5-0.plasmodb.org/). Main features are dynamic attributes to support process queries and blast process queries. Sections below will be filled in as we recover from the big deadline (12/8/05) push and reflect. ==================== Model - Fixed Bugs ======================== * fixed bug 184: failed question block access to query history * fixed bug 192: paging in summary page does not work when viewing result from query history page (page index advances but page content stay at page 1) * fixed bug 199: combined answer in query history links initially to a paging/download page that corresponds to a different question in query history * fixed bug 190 (and 202): download header use display names instead of internal names * fixed bug 204: view results from history then download not working properly (this bug is revealed as bug 184 was fixed) ===================== Model - Features ========================== * dynamic attributes for questions are now supported ===================== Controller - Fixed Bugs =================== ===================== Controller - Features ===================== ===================== View - Fixed Bugs ========================= ===================== View - Features =========================== ------------------------------------------------------------------------------ ooooooooooooooooooooooooooo WDK Version 1.8 oooooooooooooooooooooooooooooooo ------------------------------------------------------------------------------ ==================== Model - Fixed Bugs ======================== ===================== Model - Features ========================== * Added XML output support (-toXml option of wdkSummary command) * Added facilities to convert appropriate XML output into BRC's IOWG compliant GFF3 format * Added XmlQuestion, XmlAnswer, XmlRecordClass, XmlRecordInstance and associated facilities to take XML documents as input content * Added XSLT support for converting XML documents prior to consumption by WDK Model or on the fly in the Model * Added xmlAnswer.rng schema to specify XML documents suitable for WDK * Made Model/lib/xml accessible from webinstall for access of XML contents ===================== Controller - Fixed Bugs =================== ===================== Controller - Features ===================== * Added configration and actions to support the discovery of XML data dir, the listing of all data content names for website, and the display of the actual data content for each item on the list ===================== View - Fixed Bugs ========================= ===================== View - Features =========================== * Added default pages for listing data content names and displaying data content ------------------------------------------------------------------------------ ooooooooooooooooooooooooooo WDK Version 1.7 oooooooooooooooooooooooooooooooo ------------------------------------------------------------------------------ ==================== Model - Fixed Bugs ======================== * 161, Question reference cannot be resolved properly by Model (Solution: force the model to resolve sets in this order: QuerySets, ParamSets, RecordSets, QuestionSets) * 112, wdkSummary: get model name from command line args when reporting errors * 57, attribute query can not be an aggregate query: reopened and fixed ===================== Model - Features ========================== * 64, initial history implementation: this includes the addition of User, UserAnswer, BooleanExpression concepts; the relevant jspwrappers for the view; wdkUnitTest focused on unit testing for query history. * introduced Model/lib/java/db_driver to hold database drivers so that they can be manually copied to the common/lib dir of Tomcat (or other webservers) to avoid problems of multiple webapps interfering with each other under the same server. * refacted the command line tools by introducing WDK::Model::CommandHelper to handler Java CLASSPATH and args for all tools needing them. ===================== Controller - Fixed Bugs =================== ===================== Controller - Features ===================== * 65, initial history implementation - view: this includes form beans, actions, and struts configurations to allow history entry display, report, download, boolean operation and delete. Note the history is session based so it will expire after extended inactivity. Also note that boolean operation currently only operates on answers with exactly the same record type. ===================== View - Fixed Bugs ========================= ===================== View - Features =========================== * 65, initial history implementation - view: displaying of answers in history, organized by the record types of answers and ordered by answer IDs in descending order. * download configuration now allows all attribute fields of the underlying record of an answer to be included in downloads, even if they are not specified as one of the summary attributes by the question that returned the answer ------------------------------------------------------------------------------ ooooooooooooooooooooooooooo WDK Version 1.6 oooooooooooooooooooooooooooooooo ------------------------------------------------------------------------------ ==================== Model - Fixed Bugs ======================== postgres support bugs: * 100, fix postgres support. Support for postgres is now tested. wdkSanityTest runs successfully against postgres. attribute query rewriting bugs: * 56, attribute query with nested where clause not handled correctly * 57, attribute query can not be an aggregate query * 83, union queries mangled by caching rewrite * 89, column count mismatch for attribute queries command line tools: * 98, wdkQuery: don't allow isCacheable to be set on command line * 99, wdkSanityTest: missing queries, etc, must cause the test to fail * 111, Summary paging broken * 91, wdkQuery does not allow isCacheable='false' * 107, wdkSanityTest mis-counts and mis-reports * 82, wdkSummary throws exception on uncached attribute queries * 60, wdkQuery should be able to display the SQL it's running code cleanup: * 97, refactor and clean up of Answer and friends ===================== Model - Features ========================== * 81, wdkSanity needs to handle questions * 88, require summary tests in sanityTest * 62, add -showQuery flag to wdkQuery and wdkSummary * 103, make release script ===================== Controller - Fixed Bugs =================== ===================== Controller - Features ===================== ===================== View - Fixed Bugs ========================= * 109, method renames in model.PrimaryKeyValue broken the view ===================== View - Features =========================== ------------------------------------------------------------------------------ ooooooooooooooooooooooooooo WDK Version 1.5 oooooooooooooooooooooooooooooooo ------------------------------------------------------------------------------ Model - Fixed Bugs * 22, SQL query replacement code couldn't handle keywords (e.g. "select", "where") of different cases. Now a case insensitive seach is in place. * 56, naive parsing of attribute query SQL to join with id query result cache table might result in non-functional SQL in many non-trivial cases. Implemented quick fix for simple cases, more robust solution proposed in tracker item 57. * 82, wdkSummary throws exception on uncached attribute queries. Note isCacheable attribute for attributes queries does not matter - it is intended for id queries instead. However the model does have bug when it reads this value in determining whether to check for the multi-mode column in the mangled attribute query. * Made the SQL query replacement code to support UNION queries, as well as INTERSECT and EXCEPT Model - Features * add -showQuery option to wdkQuery and wdkSummary command to print out the SQL * Provide support for federated primary key. Now the primary key can be a combination of project_id and local_primary_key, where project_id is a unique name-id pair that identifies the GUS instance involved in the federated system, and local_primary_key is the current key used to identify the piece of information, such as locus_tag, source_id, etc. * Provide backward compatibility to the current non-federation models; that is, the federated key is totally options. Controller - Fixed Bugs Controller - Features * Provide support for federated primary key. View - Fixed Bugs * 76, record page showing Federation specific headings such as Project ID View - Features * Provide support for federated primary key. * Allow questionSets to be displayed either as a flattened list of quesitons (cp index.jsp.flat to index.jsp) or as drop down lists, each of which representing a questionSet (cp index.jsp.sets to index.jsp). * Added custom page hooks (under customPages/) so that you do not need to modify default view files in order to customize your site: I) site wide customizations: questionSets.jsp -- customQuestionSets.jsp question.jsp -- customQuestion.jsp questionSetsFlat.jsp -- customQuestionSetsFlat.jsp summary.jsp -- customSummary.jsp record.jsp -- customRecord.jsp II) record-type specific customizations: question.jsp -- ..question.jsp summary.jsp -- ..summary.jsp record.jsp -- ..jsp III) question-name specific customizations: question.jsp -- ..jsp summary.jsp -- ..summary.jsp Note: 1) there is no .question in ..jsp 2) there is no .record in ..jsp 3) more specific customization take precedence when more than one levels of customization exist for the same default view.