0.9928: - draw_select_cell sub added (by pashka); - draw_text_cell fixed for {off => 1} (by pashka); 0.9927: - fixed a js bug introduced in 0.9926 (popup menus rendering); 0.9926: - new option no_clear_button in draw_form_field_datetime (thanks RomALo); - fixed a bug with empty record duplication in draw_toolbar_input_select (thanks RomALo); - added support for plain CGI in pub_handler; - plain hrefs in menus (thanks pashka); 0.9925: - out_html, sql_download_file and pub_handler fixed for proper file downloading on public sites; 0.9924: - draw_radio_cell sub added (by pashka for another pashka); 0.9923: - module compilation errors are in STDERR again (lost in 0.9922); - fixed [X] button for datetime control: ; - fixed default Content-Type header for pub_handler; - added X-Powered-By header; - fixed a bug: keepalive requests now work for non-root install; - HTML cacheing for public sites is completely redone (files instead of LONGTEXT), many bugs fixed; - some code cleanup; 0.9922: - cache_html column types are changed to longtext; - added support for client side caching (proper If-Modified-Since handling); - get rid of Mozilla/Unsupported; - doc fixes; - [X] button for datetime control (by pashka); - fixed a bug with CGI interface inroduced in 0.9918 (by pashka); 0.9921: - new $conf option: core_cache_html. HTML cacheing in pub_handler introduced; 0.9920: - new redirect kind: 'http'; - fixed a bug in draw_form_field_select (empty item duplicates); - fixed a bug in draw_form_field_select (" -> " in IDs); - added support for public sites: pub_handler introduced; 0.9919: - fixed a bug introduced in 0.9918 (current path resolution); - 0.gif & 0.html are moved to $_REQUEST {__uri}; 0.9918: - saving files fith original extensions in upload_file; - file purging fixes; - new sub: sql_select_loop; - Zanas.pm application can now live in a separated subdirectory (e.g. /admin/?sid=123456, /crm/?sid=6666666...); 0.9917: - new option 'target' in redirect of kind 'js'; - new option 'before' in redirect of kind 'js'; 0.9916: - added size option for draw_toolbar_input_text; - fixed HTML for toolbar inputs; - new widget: draw_toolbar_input_submit; - create_url fixed for setting 'salt' directly (by pashka) (why?!); 0.9915: - fixed a typo in draw_form_field_htmleditor; 0.9914: - fixed minor bug in i18n ($$i18n{toolbar_pager_empty_list} wasn't interpolated); - i18n for page_title implemented ($conf -> {$lang} -> {_page_title}); - new form field type introduced: 'iframe'; - onChange option for form field type 'file'; 0.9913: - new option in draw_form_field_htmleditor: toolbar (by pashka); - new option in draw_table: top_toolbar; - new option in draw_table: path; - new option in draw_table: title; - draw_toolbar: buttons as hashrefs, not plain HTML; - i18n support added; - simultaneous sessions for multiple roles support added (by pashka); 0.9912: - create_url sub fixed to always set random 'salt' parameter; - new feature: js redirects with messages; 0.9911: - js fix: checkboxes (draw_checkbox_cell) are now toggled by spacebar even when focused; - js fixes related to focus handling on slider move; - 'undocumented' warnings in docs generator; 0.9910: - 'keep_params' option added to draw_form and draw_toolbar_input_text subs; - fixed a bug caused the table slider to disappear then lpt option was set in draw_table; - draw_toolbar_input_checkbox sub added; 0.9909: - fixed a bug in draw_row_button (no sid inheritance when confirm is defined); 0.9908: - check_title sub is added, draw_table_header, draw_row_button and draw_text_cell are fixed to use it; 0.9907: - magic %_REQUEST params documented; - trees in 'checkboxes' are supported; 0.9906: - new $conf options: kb_options_menu, kb_options_buttons, kb_options_pager and kb_options_focus; - hotkey and hotkeys subs added; - draw_toolbar_input_select sub added; - draw_form_field_checkboxes redone dramatically; 0.9905: - Zanas::Docs added; 0.9904: - added 'read_only' option in draw_menu sub; 0.9903: - new magic parameter: __help_url; - draw_text_cell fix: no hrefs rendered when lpt=1; - added 'position' option in add_totals sub; - added 'read_only' option in draw_input_cell sub; - another XLS fix: $conf -> {site_root} removed, $$ added in temporary filename; 0.9902: - serving XLS responses refactored: $conf -> {site_root} is obsoleted & no more filesystem garbage; - fixed to $$conf{page_title} in lpt mode; - new magic parameter: $_REQUEST{_xls_checksum}. Added in the 1st <td> in an invisible extra row of the main table (LPT mode only); 0.9901: - added magic parameter _xml (included in <head>); - added namespace for excel; - added title attribute for table headers an cells; - added 'a_class' option to draw_text_cells sub; # - storing sid in session-only cookie; 0.99: 15.03.2004 10:30 - pulldown menu rendering fixed (no glitches now); - js function open_popup_menu is moved to navigation.js; - HTTP_X_FORWARDED_FOR logging; 0.98: 12.03.2004 11:00 - new feature: 2-level main menu; sub get_menu_for_my_role { return [ { name => 'type1', label => 'Screen Type 1', items => [ { name => 'type11', label => 'Screen Type 11', }, { name => 'type12', label => 'Screen Type 12', }, ] }, { name => 'type2', label => 'Screen Type 2', }, ] } 0.97: 10.03.2004 16:40 - sql_reconnect and Config reloading order fixed; - target option added in draw_toolbar_button sub; 0.96: 09.03.2004 17:00 - target option added in draw_toolbar sub; - Zanas::Install is forked out; - order sub fixed for correct DESC handling; - draw_table fixed for not scrolling through totals; - added is_total option to draw_text_cell sub; - added real_path option to upload_file output; - added add_columns option in sql_upload_file sub (by pashka); - Zanas::Request fixed for the case where directory listing is denied; - Apache::Constants::OK fixed for prototype matching. 0.95: 03.03.2004 12:30 - add_totals sub added; - $_REQUEST {__response_sent} is now used when doing actions (by pashka); - redirection target is changed from _top to _parent (by pashka); 0.94: 02.03.2004 16:00 - (by pashka) no more strong dependency on Apache::Request or even mod_perl. One can use Zanas.pm based apps on any raw CGI hosting. The script is ----------- cut here ------------------------ #!/usr/bin/perl -w use lib '/path/to/webapp/library'; use MYAPP; $MYAPP::preconf = { db_dsn => "DBI:mysql:database=mybase", db_user => 'myuser', db_password => 'mypassword', core_load_modules => 0, core_spy_modules => 0, core_fix_modules => 0, core_gzip => 1, }; MYAPP::handler; ----------- cut here ------------------------ It's 20 times more slow, but it works; - fixed a security hole with 'type=users_for_admin' (by pashka); - multirole fixes (by pashka); - added $_REQUEST {redirect_params} handling (idea by pashka); - new log fields: id_object and ip; 0.93: 26.02.04 12:50 - targets are now in use with activate_link js function; - target option is now passed in draw_text_cells; - don't show labels for hrgoups items that are off; - <tr> are now marked as id="tr_$$field{name}" in draw_form; - added setVisible js function; - added onChange option to draw_form_field_select sub; - added onClose option to draw_form_field_datetime sub; - fixed a bug with calendar format; 0.92: 19.02.04 10:40 - added href option in draw_text_cells sub; - draw_text_cell now receives 2 args: data and options, data can be scalar (label only); - '..' option in draw_table; - don't load Mozilla3; 0.91: 13.02.04 10:30 - added a 'no_nobr' option in draw_text_cell; - added a 'title' option in draw_text_cell; 0.90: 12.02.04 10:30 - added a configuration option: $conf -> {exit_url}; 0.89: - fixed a bug in draw_toolbar_input_text (useless sid hidden input); - fixed a bug in check_href (useless sid appending); - href option in check_href sub ( => almost *EVRYWHERE*) can now be a HASHref (fed to create_url); - added 'additional_buttons' option in draw_form. - added 'status_switch' utility function. Synopsis (in YOUR_APP/Config.pm): our ($SQL_STATUS, $status) = status_switch (<<EOS); CASE WHEN now() > my_table.expire_dt THEN 2 # Expired WHEN my_table.is_ok THEN 1 # OK ELSE 0 # New END EOS To use it, add 'use Zanas::Util;' BEFORE 'use YOUR_APP::Config;'. - added 'read_only' option for all form inputs; - now working unless Apache::Request is installed: in this case, params are fetched with CGI.pm; - 'values' option in draw_form_field_static sub can be a hashref; 0.88: added 'headers' sub: draw_table ( headers (qw( ¹ no Label label _ )), sub { ... } ) - added 'hrefs' sub (for column ordering): href => create_url (order => $order, desc => 0), href_asc => create_url (order => $order, desc => 0), href_desc => create_url (order => $order, desc => 1), - added 'href_asc' and 'href_desc' options to draw_text_cell. - new magic parameter: __pack. Resizes the new opened window to fit its contents. - added js function: nop. Does nothing. - new magic parameter: __read_only. All form inputs are static. - added 'picture' option to draw_form_field_string and draw_form_field_static subs 0.87: 30.01.04 10:30 - added 'value' option to draw_checkbox_cell sub 0.86: 29.01.04 16:30 - added 'confirm' option to draw_centered_toolbar_button sub - added 'target' option to draw_toolbar_button sub 0.85: 22.01.04 11:52 - 0.gif is relocated to the root - no more 'keepalive' iframe on logon screen 0.84: 21.01.04 13:45 - Accept-Encoding header is now considered 0.83: 21.01.04 12:15 - menu.js is killed 0.82: 21.01.04 11:00 - 0.html is relocated to the root 0.81: 20.01.04 14:00 - Zanas::Install module added; - gzip encoding for basic js and css; - sub sql_select_subtree added; 0.80: 26.12.03 14:30 - basic js and css is now served from Zanas.pm itself; - fixed a memory leak related to __include_js and __include_css handling; - distro is cleaned up; 0.79: 25.12.03 12:30 - added html sweeping option ($conf -> {core_sweep_spaces}); - _W_A_R_N_I_N_G_ !!! Basic navigation javaScript is now served as static content. Copy or symlink static/navigation.js to your app /docroot/i/ dir; - added gzipping option ($conf -> {core_gzip}). Requires Compress::Zlib. - added Content-Range header in download_file sub; 0.78: 24.12.03 12:30 - added Content-Length header in download_file sub; - added support for $preconf configuration hash (setting in <perl> section); - added support for __focused_input magic parameter; - sub add_vocabularies added; - sub sql_select_vocabulary added; - $conf -> {top_banner} is now rendered; 0.77: 17.12.03 10:30 - added db schema autocheck with DBIx::ModelUpdate; - added support for multiroled users (by pashka); - __no_navigation is now passed through URL rewriting (by pashka); - fixed check_href for /i/ (by pashka); 0.76: 16.12.03 10:30 - various js fixes in table scrolling/focus handling; 0.75: 15.12.03 14:00 - new field type: 'calendar' (control taken from http://dynarch.com/mishoo/calendar.epl); - added support for: $conf -> {include_js} ||= ['js']; $_REQUEST {__include_js} = $conf -> {include_js}; $conf -> {include_css} ||= ['new']; $_REQUEST {__include_css} = $conf -> {include_css}; Fckeditor js include moved there. - added off option to draw_toolbar_input_htmleditor sub; 0.74: 04.12.03 14:00 - added confirm option to draw_toolbar_button sub; - added target option to draw_form sub; 0.73: 02.12.03 15:00 - added off option to draw_toolbar_input_text sub; - added top_banner configuration option; 0.72: 28.11.03 16:00 - added type-ahead facility to all <select> controls (recipe taken from http://www.oreillynet.com/javascript/2003/09/03/examples/jsdhtmlcb_bonus2_example.html); - new magic parameter: __no_navigation. Hides top navigation toolbar and replaces ok_esc_toolbar by close toolbar (for popup windows); - added draw_close_toolbar sub; - added attributes option to draw_form_field_string sub (for attributes like readonly, disabled etc.); 0.71: 27.11.03 16:20 - fixed sql_select_all_cnt sub (case: GROUP BY); - added value option draw_form_field_select sub; 0.70: 26.11.03 12:00 - added sql_select_scalar sub; - added draw_input_cell sub (by hekima); - fixed MSIE_5_js_ok_escape sub (case: no_ok option is set); - fixed a bug in draw_form_field_static (case: values option defined); - added label_width and cell_width options to all draw_form_field_... subs; - added href, target and a_class options in draw_form_field_static sub; - fixed draw_form sub (empty <tr>s when $field -> {off}); - fixed upload_file sub (case: no file upload field at all); 0.69: 25.11.03 15:50 - added picture option in draw_text_cell sub (Number::Format is now required for install); - added draw_text_cells sub; - added tooltips in draw_text_cell sub; 0.68: 24.11.03 10:10 - js fix (char 13 from keyboard & javascript href); - added checked option in draw_form_field_checkbox sub (by hekima); - added support for $_REQUEST {__meta_refresh} parameter; - truncating long strings in draw_form_field_static sub; 0.67: 20.11.03 14:00 - added values option in draw_form_field_static - added support for multicolumn form rows via nested arrays in draw_form sub - steps in draw_path in multiline mode (Mayakovsky style) - added support for multirow table headers via nested arrays in draw_table sub - draw_toolbar_pager is fixed for the case total == 0 0.66: 18.11.03 13:40 - added portion option in draw_toolbar_pager - added support for $_REQUEST {__blur_all} parameter - added support for $_REQUEST {__scrollable_table_row} parameter - more js fixes - added file (up|down)load API: delete_file, download_file, upload_file, sql_download_file, sql_upload_file subs and $_REQUEST {__response_sent} parameter - added hidden inputs to draw_form_field_static (by hekima) - multiline path fixes (by pashka) - separate tds for each button in draw_row_buttons sub 0.65: 17.11.03 12:44 - "Generator" meta tag with version number added in draw_page sub - empty action values are now allowed in draw_form 0.64: 17.11.03 11:51 - added multiline option in draw_path - added width & height options in draw_form_field_htmleditor (by pashka) - added check_href facility to draw_ok_esc_toolbar and draw_esc_toolbar (by pashka) 0.63: 14.11.03 12:35 - added value option in draw_form_field_static sub (by hekima) - don't show ':' after empty labels in draw_form_field_hgroup (by hekima) - js fix: added support for scancodes 48..57 0.62: 13.11.03 09:40 - added href attribute for table headers in draw_table sub (by hekima) - added value option in draw_form_field_text sub (by hekima) - fixed a bug with '$name.submit' - added 'off' parameter in draw_toolbar_button sub 0.61: ... Can't remember at all :-(( 0.60: 06.11.03 10:40 - added draw_form_field_button sub (by hekima) - added support for arbitary value in draw_toolbar_input_text sub (by hekima) - optional rows and cols numbers in draw_form_field_text sub (by hekima) - optional form name in draw_ok_esc_toolbar and draw_form subs (by hekima) - js fix for scrollable table navigation - draw_toolbar_input_text refactored for parameter stickness - added cgi_tail option in sql_select_path and sql_draw_path subs 0.59: 03.11.03 12:28 - added support for keepalive - size and max_length attributes separated in draw_form_field_string - default 'string' type in draw_form_field_hgroup - don't show ':' after empty labels in forms 0.58: 30.10.03 14:21 - workaround for missing error message templates (by Hekima) - added 'mandatory' option in draw_form sub - added 'a_class' parameter in draw_text_cell sub 0.57: 23.10.03 14:52 - added 'off' parameter in draw_window_title and draw_table subs - added 'draw_text_cell' parameter in draw_text_cell sub - added 'attributes' parameter in draw_text_cell sub - added support for multiple per-row callbacks in draw_table sub - js fixes for fast find/table scrolling - js fixes for multitable scrolling 0.56: 21.10.03 15:56 - fixed check_href: period parameter 0.55: 13.10.03 10:23 - added sql_select_path sub; 0.54: 30.09.03 10:28 - added check_href sub; - new field types: 'image' & 'htmleditor' (htmleditor taken from http://www.fredck.com/FCKeditor/); 0.53: 26.09.03 13:18 - added error reporting when reloading modules; - fixed hidden inputs rendering; - added $options -> {value} for hidden inputs.