Tomasz Sowa
443c2023d9
make depend
2021-06-23 17:04:21 +02:00
Tomasz Sowa
2c5062ba22
UrlEncode() methods from core/misc.h are now thread safe
2021-06-23 17:04:07 +02:00
Tomasz Sowa
8ab07d11b1
fixed: cur.request->function->fun didn't have a model connector set when a request started
2021-06-21 16:51:35 +02:00
Tomasz Sowa
a1c0f6f7f0
added config option: add_header_cache_no_store_in_htmx_request
...
send "Cache-Control: no-store, max-age=0" http header if a request is made by htmx library (ajax)
if a webbrowser get a page from the cache then it will render just the last request without the whole html page (css, js, etc)
https://github.com/bigskysoftware/htmx/issues/497
2021-06-21 11:43:59 +02:00
Tomasz Sowa
801fc062ef
added FunctionBase::Clear() which is called at the end of a request
2021-06-20 20:47:59 +02:00
Tomasz Sowa
79eda7abb0
- added to FunctionBase: bool register_default_models (default true)
...
if true then winix will add default models for ezc templates such as "request", "item", etc.
- some methods from templates/item.cpp moved to Item
2021-06-20 18:04:50 +02:00
Tomasz Sowa
e7c7324058
ItemContent::user_name(EzcEnv & env) changed to ItemContent::user(morm::ModelWrapper ** model_wrapper) and we return a User class
...
ItemContent::group_name(EzcEnv & env) changed to ItemContent::group(morm::ModelWrapper ** model_wrapper) and we return a Group class
added ItemContent::display_user_name(EzcEnv & env)
some functions in templates/item.cpp moved to Item
2021-06-19 23:48:12 +02:00
Tomasz Sowa
d8c1a81bcb
removed config options: ezc_error_prefix and ezc_error_postfix
...
Ezc::PatternParser and Ezc::Generator use only pt::Log as a logger now
2021-06-19 20:33:35 +02:00
Tomasz Sowa
94f96c11cb
make depend
2021-06-18 19:18:46 +02:00
Tomasz Sowa
ec94dff7d7
some ezc functions from templates/item.cpp moved to Item and ItemContent
...
methods HasAccess() HasReadAccess() and similar moved from System to Item and ItemContent
2021-06-18 19:18:13 +02:00
Tomasz Sowa
ebd791a256
changed: now Request class is a model class - we have fields() method there to map fields for ezc templates (currently only dir_tab)
...
removed: [dir_tab] ezc statement
changed: Ls winix function loads its own dir_tab container (beforehand it was loaded by [dir_tab] ezc statement)
it's available by [child_dirs] name
2021-06-17 21:44:29 +02:00
Tomasz Sowa
ab89ffe096
fixed in Item: void Item::link(Ezc::FunInfo<HtmlTextStream> & env) now returns a correct directory for the item (before the current directory was returned)
...
added to Item: void Item::dir_link(Ezc::FunInfo<HtmlTextStream> & env)
added to WinixModel:
Dirs * get_dirs();
Mounts * get_mounts();
Users * get_users();
Groups * get_groups();
SLog * get_session_logger(); // not finished yet
2021-06-16 23:42:23 +02:00
Tomasz Sowa
f2f2c851df
make depend
2021-06-16 18:09:01 +02:00
Tomasz Sowa
6dddc5e948
renamed: WinixModel -> WinixModelDeprecated (this class will be removed)
...
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()
2021-06-16 18:07:44 +02:00
Tomasz Sowa
81df52f6ca
make depend
2021-05-31 18:59:49 +02:00
Tomasz Sowa
22de3322ae
- added to Request: is_htmx_request (bool) - true if the request is made by htmx library (ajax)
...
- commented out using mount_page_arg_is "subject" and "info" from fun_cat.html and fun_run.html - they will be removed soon
- some improvements in fun_reply.html, fun_showthreads.html and fun_thread.html (scrolling)
2021-05-31 10:58:34 +02:00
Tomasz Sowa
e6fae4598c
updated to the new pikotools api: [ezc out] and [out] changed to [ezc frame] or just [frame]
...
- when returning json streams changed "out" field to "frames"
- renamed config parameter: allow_ezc_out_in_executable_items -> allow_ezc_frames_in_executable_items
- added basic support for ajax requests in thread plugin
2021-05-28 18:36:19 +02:00
Tomasz Sowa
ba331dea4a
added basic support for htmx (ajax)
...
- if there is HX-Request header present we sent only a part of the whole html
- we return only specific stream defined by [out ...] ezc statement
- the name of the stream is passed in the 'frame' parameter
(if not present then 'content' is assumed)
- added ezc function: winix_is_htmx_request
2021-05-27 19:36:04 +02:00
Tomasz Sowa
6a452ffed0
version changed to 0.7.3
2021-05-27 12:21:59 +02:00
Tomek
fc24570062
fixed compilation: pikotools is in src subdirectory now
2021-05-27 12:04:41 +02:00
Tomasz Sowa
fb64f5e456
fixed: reply winix function (from thread plugin) didn't add a reply - system->Add() didn't set the model_connector to the item
2021-05-26 19:55:50 +02:00
Tomasz Sowa
86ef2529b1
fixed in some places: system->AddFile() returns bool now instead of Error
2021-05-21 17:41:16 +02:00
Tomasz Sowa
f1b9d1b870
updated to the new pikotools api: changed the way how child_spaces are created in Space class
2021-05-21 17:17:17 +02:00
Tomasz Sowa
fe67b5d72a
updated to the new pikotools api: snake_case names of methods from SpaceParser
2021-05-21 04:51:58 +02:00
Tomasz Sowa
27720afaf2
updated to the new pikotools api: SpaceParser::SetSpace(...) methods have been removed
2021-05-21 01:37:42 +02:00
Tomasz Sowa
8bb585d97d
updated to the new pikotools api: changed utf8 functions PascalCase to snake_case
2021-05-21 00:41:27 +02:00
Tomasz Sowa
e48a28a5c8
namespace PT renamed to pt
2021-05-20 20:59:12 +02:00
Tomasz Sowa
d66a36cf21
make depend
2021-05-14 03:32:03 +02:00
Tomasz Sowa
a94e09f0aa
added support for Model migrations
...
now we have a table core.migration and each model (User, Group, Item, ItemContent and a new Migration) have its own
row in the table with a version number
added to config:
db_make_migration_if_needed and db_stop_if_migration_fails (need description yet)
2021-05-14 03:31:29 +02:00
Tomasz Sowa
031e673c51
fixed: passwd winix function: pass_encrypted was not cleared if we are not using rsa for encrypting passwords anymore
2021-05-13 02:02:15 +02:00
Tomasz Sowa
801c9a2cda
make depend
2021-05-11 22:22:10 +02:00
Tomasz Sowa
f1af7e2eeb
updated to the current pikotools api from branch api2021
2021-05-11 22:20:46 +02:00
Tomasz Sowa
85f9fda984
fixed: in passwd winix function: clear password hash when using rsa encoding
2021-05-11 22:15:52 +02:00
Tomasz Sowa
bb513b0187
make depend
2021-04-30 01:35:40 +02:00
Tomasz Sowa
4277f90bad
start working on User and Group classes
...
- User and Group has been moved to 'models' directory
- removed UserPass struct (passwords fields were put to User struct)
not working yet, we need support for binary blobs in morm
2021-04-30 01:34:48 +02:00
Tomasz Sowa
ccda2bc2fd
added option do_migration_to_winix_fullmorm do the config (only temporarily)
...
if true then we make Item::do_migration() and exit
2021-04-14 14:13:47 +02:00
Tomasz Sowa
4b71530f4c
added to Config:
...
bool Config::HasValue(const wchar_t * name, const wchar_t * value)
2021-04-12 18:55:04 +02:00
Tomasz Sowa
a8a9db53be
remove some Lock() and Unlock() from Plugin
2021-04-11 12:09:42 +02:00
Tomasz Sowa
634cf07d44
using Winix::Lock object instead of Lock() method in ThreadManager
2021-04-10 21:12:28 +02:00
Tomasz Sowa
0e0c006d5a
fixed: thread locking problem in Image: method Lock() was used instead of Winix::Lock object
2021-04-10 19:46:50 +02:00
Tomasz Sowa
486067a4b2
clang thread sanitizer reported a data race in App::Start()
...
synchro.was_stop_signal was read without locking
==================
WARNING: ThreadSanitizer: data race (pid=13831)
Write of size 1 at 0x000000dc4d18 by thread T1 (mutexes: write M44):
#0 Winix::App::SpecialThreadForSignals(void*) /disk2Tc/home/tomek/roboczy/prog/winix/winixd/core/app.cpp:2226:31 (winix.so+0x1f7465)
Previous read of size 1 at 0x000000dc4d18 by main thread:
#0 Winix::App::Start() /disk2Tc/home/tomek/roboczy/prog/winix/winixd/core/app.cpp:651:18 (winix.so+0x1ee9af)
#1 main /disk2Tc/home/tomek/roboczy/prog/winix/winixd/main/main.cpp:222:6 (winix+0x2d74c1)
Location is global 'Winix::app' of size 65840 at 0x000000db5908 (winix+0x000000dc4d18)
Mutex M44 (0x000000dc4d10) created at:
#0 pthread_mutex_lock /disk2Tb/usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:4153:3 (winix+0x2ac204)
#1 Winix::Synchro::Lock() /disk2Tc/home/tomek/roboczy/prog/winix/winixd/core/synchro.cpp:68:12 (winix.so+0x2e5822)
#2 Winix::Lock::Lock(Winix::Synchro*) /disk2Tc/home/tomek/roboczy/prog/winix/winixd/core/lock.cpp:53:11 (winix.so+0x295522)
#3 Winix::FileLog::get_local_date(PT::Date const&) /disk2Tc/home/tomek/roboczy/prog/winix/winixd/core/filelog.cpp:98:8 (winix.so+0x261183)
#4 Winix::Log::PrintDate(PT::Date const&) /disk2Tc/home/tomek/roboczy/prog/winix/winixd/core/log.cpp:80:30 (winix.so+0x295a21)
#5 Winix::LogInfo(Winix::Log&, Winix::LogManipulators, char const*, bool, char const*) /disk2Tc/home/tomek/roboczy/prog/winix/winixd/main/main.cpp:104:6 (winix+0x2d69ec)
#6 main /disk2Tc/home/tomek/roboczy/prog/winix/winixd/main/main.cpp:190:2 (winix+0x2d7363)
Thread T1 (tid=100187, running) created by main thread at:
#0 pthread_create /disk2Tb/usr/src/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:962:3 (winix+0x295bb3)
#1 Winix::App::StartThreads() /disk2Tc/home/tomek/roboczy/prog/winix/winixd/core/app.cpp:2246:2 (winix.so+0x1f7549)
#2 main /disk2Tc/home/tomek/roboczy/prog/winix/winixd/main/main.cpp:212:6 (winix+0x2d743e)
SUMMARY: ThreadSanitizer: data race /disk2Tc/home/tomek/roboczy/prog/winix/winixd/core/app.cpp:2226:31 in Winix::App::SpecialThreadForSignals(void*)
==================
2021-04-10 17:14:51 +02:00
Tomasz Sowa
35e10ed469
updated to the new Pikotools api (new Space struct)
2021-04-09 17:50:58 +02:00
Tomasz Sowa
8d87d9a875
changed in Makefile: we have now one lib pikotools/pikotools.a
...
make depend
2021-03-31 20:25:09 +02:00
Tomasz Sowa
bbc0a67153
added support for new morm api
...
- field(...) methods from Model take now FT structure instead of insertable/updatable/primary_key boolean flags
- table name is set in a prepare_table() method now
- added meta and admin_meta from ItemContent (morm has a field() method with PT::Space argument now)
2021-03-11 18:48:18 +01:00
Tomasz Sowa
23f1c112a4
make depend
2021-03-10 16:40:22 +01:00
Tomasz Sowa
57aad8b454
removed from Item: update() and save() methods which take the 'url_was_changed' argument
...
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
2021-03-08 21:06:50 +01:00
Tomasz Sowa
3e84eb9dbf
Makefile deps
2021-02-25 00:15:03 +01:00
Tomasz Sowa
afbe82e9f4
changed the way how prefixes are added to urls
...
instead at the end we adding a prefix before an extension, e.g: filename_(2).jpg
2021-02-25 00:12:45 +01:00
Tomasz Sowa
32e93a04c5
Item class has been moved to a new directory 'models', a new class has been added: ItemContent
...
and same fields from Item were moved to ItemContent
Item
- id
- parent_id
- type (file, dir, symlink)
- url
- subject
- template (html template)
- sort_index
- content_id
ItemContent
- id
- ref -> references (renamed)
- user_id
- modification_user_id
- group_id
- privileges
- date_creation
- date_modification
- guest_name
- link_to
- link_redirect
- file_path
- file_fs
- file_type
- file_size
- has_thumb -> file_has_thumb (renamed)
- hash -> file_hash (renamed)
- hash_type -> file_hash_type (renamed)
- content -> content_raw (renamed)
- content_type -> content_raw_type (renamed)
- content_parsed
- content_parsed_type
- meta
- ameta -> meta_admin (renamed)
- modify_index (removed)
WIP: #4
2021-02-24 01:19:47 +01:00
Tomasz Sowa
3d7ece15f8
changed version to 0.7.2
2021-02-18 21:07:05 +01:00