add config options:
db_startup_connection_max_attempts - default 0 (infinite)
db_startup_connection_attempt_delay - delay in seconds between attempts (default 5)
BREAKING CHANGE: WINIX_PLUGIN_INIT plugin message requires to set result status,
you have to set the result status to true (env.res) if your
plugin was initialized correctly, otherwise winix will not start
now winix can return json, xml, csv from out_main_stream or from frames and json from models
removed from Request:
bool send_bin_stream
bool return_json
bool return_info_only
pt::Space info
bool page_generated
bool out_main_stream_use_html_filter
bool out_streams_use_html_filter
added to Request:
enum AnswerSource
enum AnswerContainer
AnswerSource answer_source
AnswerContainer answer_container
bool use_ezc_engine
std::wstring frame
bool send_all_frames
bool use_html_filter
added to Config:
// the name of the url parameter for returning all frames, e.g. https://domain.tld/mydir/myfunction/allframes
// default: allframes
std::wstring request_all_frames_parameter;
// the name of the root element when serializing request answer to xml
// default: winix
std::wstring xml_root;
algorithm (the whole algorithm is described in core/request.h):
at the beginning of a request winix sets
answer_source to models
answer_container to text
use_ezc_engine to true
next answer_container and use_ezc_engine can be changed in the following way:
1. winix will look for 'Accept' http header and depending on the header winix will set:
(not implemented yet)
Accept | answer_container | use_ezc_engine
------------------------------------|-----------------
application/json | json | false
application/xml | xml | false
text/csv | csv | false
2. next answer_container is set depending on 'container' url parameter
container | answer_container
---------------------------------------------------------
not present | don't change the value
text | text
json | json
xml | xml
csv | csv
use_ezc_engine is set depending on 'answer' url parameter:
answer | use_ezc_engine
---------------------------------
not present | don't change the value
html | true
data | false
if 'answer' is html then we take into account two more parameters:
frame: frame_name (empty default) - if set then winix returns this specific frame
allframes: (if present then winix returns all frames)
added to config:
int send_file_mode;
// 0 - full path to a file in send_file_header header
// 1 - relative path to a file in send_file_header (need http_send_file_relative_prefix set) (used for nginx)
std::wstring send_file_header;
// default: X-SENDFILE
// for Apache set: X-SENDFILE
// for Lighttpd set: X-LIGHTTPD-send-file
// for Nginx set: X-Accel-Redirect
std::wstring send_file_relative_prefix;
// relative prefix used for sending static files if send_file_mode is 1
// default: "upload-files-internal"
some plugins need to be fixed yet: ticket, gallery, group, menu
- added current user to default models as "user"
- renamed in User: super_user -> is_super_user, env -> admin_env, pass_hash_salted -> is_pass_hash_salted
- now Users class has a WinixModel as a base class
some plugin calls have to be fixed yet
- added UserWrapper model with a pointer to User class
- removed from ItemContent: methods for accessing 'meta' and 'admin_meta', now ezc can iterate through Space classes
- fixed in env winix function: if there is "changeuser" parameter then we should only switch the user (not save anything)
added: WinixModel (models/winixmodel.h|cpp) - a class inheriting from morm::WinixModel, we have methods such as: get_config(), get_logger(), get_request()
and this class will be a base class for our models
added: WinixModelConnector (models/winixmodelconnector.h|cpp) - a class inheriting from morm::WinixModelConnector
this connector we are using instead of morm::ModelConnector - there are pointers to winix objects there (config, request, log)
added to Request: Ezc::Models models
removed from TemplatesFunctions: Ezc::Models ezc_models;
changed: ImgCrop winix functions is using its own item_tab vector now (not finished yet)
added: Item::is(), Item::link(), ItemContent::print_content()
and added ItemModelData (based on morm::ModelData) class which has 'prepare_unique_url' field,
an object of this class is passed to update(), insert() and save() methods
fixed: Dirs::CheckRootDir(): update should update childs too (privileges)
WIP: #4
- log_level and save_each_line moved from Log to FileLog
- other fixes in loggers
- DirContainer from Dirs and LoadAvg had no dependencies set
git-svn-id: svn://ttmath.org/publicrep/winix/branches/0.7.x@1148 e52654a7-88a9-db11-a3e9-0013d4bc506e
- added FileLog which stores content to the file log
- now Log is only a wrapper - it puts messages to the local buffer and when logsave is used then the buffer is put to FileLog
- new base classes:
WinixBase (Log, Config*, Synchro*)
WinixModel : public WinixBase (morm::ModelConnector*, Plugin*)
WinixSystem : public WinixModel (System*)
WinixRequest : public WinixSystem (SLog, Cur*)
- singletons: log, slog, plugin are depracated - now references to them are in base classses (WinixBase, WinixModel)
- DbBase, DbConn and Db are depracated - now we are using Morm project (in WinixModel there is a model_connector pointer)
each thread will have its own ModelConnector
git-svn-id: svn://ttmath.org/publicrep/winix/branches/0.7.x@1146 e52654a7-88a9-db11-a3e9-0013d4bc506e
for taking a pointer (can be null) to a parameter value
added: bool System::IsSSLRequired(bool try_to_use_ssl)
returns true if we should use ssl
try_to_use_ssl is to be meant: config->use_ssl, config->use_ssl_static, config->use_ssl_common
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@1094 e52654a7-88a9-db11-a3e9-0013d4bc506e
(html filter was used but they are mostly javascript files)
added: new Item::ContentType: ct_other
if an item has ct_other then the html filter is not used for the content
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@1040 e52654a7-88a9-db11-a3e9-0013d4bc506e
option for setting raw template from 'emacs' function has been removed
now we have index_raw.html template and it can be set from 'template' function
removed: template index_fullscreen.html
changed: some work in miscspace (changed: space_list_tab, space_list_tab_value and space_list_tab_has_next)
fixed: main index template could not be set through 'template' function
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@1039 e52654a7-88a9-db11-a3e9-0013d4bc506e