some methods from templates/item.cpp moved to ItemContent

This commit is contained in:
Tomasz Sowa 2021-06-20 21:22:08 +02:00
parent 801fc062ef
commit ade96bf6d3
10 changed files with 261 additions and 118 deletions

View File

@ -87,8 +87,8 @@
<tr> <tr>
<td>d</td> <td>d</td>
<td>[child_dirs.content.privileges_octal]</td> <td>[child_dirs.content.privileges_octal]</td>
<td>[child_dirs.content.user_name]</td> <td>[if child_dirs.content.has_user][child_dirs.content.user.login][end]</td>
<td>[child_dirs.content.group_name]</td> <td>[if child_dirs.content.has_group][child_dirs.content.group.name][end]</td>
<td> <td>
[if child_dirs.is_parent_for_current_dir] [if child_dirs.is_parent_for_current_dir]
<a href="[doc_base_url][dir_parent_without_slash][if winix_function_param_is "dirls"]/ls/l/dirls[end]">../</a> <a href="[doc_base_url][dir_parent_without_slash][if winix_function_param_is "dirls"]/ls/l/dirls[end]">../</a>
@ -101,10 +101,10 @@
[for items] [for items]
<tr> <tr>
<td>[if items.type_is_symlink]l[else][if items.has_static_file]s[else]-[end][end]</td> <td>[if items.type_is_symlink]l[else][if items.content.has_static_file]s[else]-[end][end]</td>
<td>[items.content.privileges_octal]</td> <td>[items.content.privileges_octal]</td>
<td>[items.content.user_name]</td> <td>[if items.content.has_user][items.content.user.login][end]</td>
<td>[items.content.group_name]</td> <td>[if items.content.has_group][items.content.group.name][end]</td>
<td><a href="[doc_base_url][dir][items.url]">[items.url]</a>[if items.type_is_symlink] -> [items.content.link_to][end]</td> <td><a href="[doc_base_url][dir][items.url]">[items.url]</a>[if items.type_is_symlink] -> [items.content.link_to][end]</td>
</tr> </tr>
[end] [end]

View File

@ -39,6 +39,42 @@ namespace Winix
{ {
Group::Group()
{
Clear();
}
void Group::fields()
{
field(L"id", id, morm::FT::no_insertable | morm::FT::no_updatable | morm::FT::primary_key);
field(L"name", name);
}
void Group::table()
{
table_name(L"core", L"group");
}
void Group::after_insert()
{
get_last_sequence_for_primary_key(L"core.group_id_seq", id);
}
void Group::Clear()
{
id = -1;
name.clear();
//members.clear();
}
bool Group::do_migration(int & current_table_version) bool Group::do_migration(int & current_table_version)
{ {
bool ok = true; bool ok = true;

View File

@ -53,36 +53,13 @@ public:
std::wstring name; // group name std::wstring name; // group name
//std::vector<long> members; // users id //std::vector<long> members; // users id
Group() Group();
{
Clear();
}
void fields();
void table();
void after_insert();
void fields() void Clear();
{
field(L"id", id, morm::FT::no_insertable | morm::FT::no_updatable | morm::FT::primary_key);
field(L"name", name);
}
void table()
{
table_name(L"core", L"group");
}
void after_insert()
{
get_last_sequence_for_primary_key(L"core.group_id_seq", id);
}
void Clear()
{
id = -1;
name.clear();
//members.clear();
}
bool do_migration(int & current_table_version); bool do_migration(int & current_table_version);

View File

@ -40,6 +40,7 @@
#include "core/request.h" #include "core/request.h"
#include "core/users.h" #include "core/users.h"
#include "core/groups.h" #include "core/groups.h"
#include "templates/miscspace.h"
namespace Winix namespace Winix
@ -88,6 +89,8 @@ void ItemContent::fields()
field(L"print_content", &ItemContent::print_content); field(L"print_content", &ItemContent::print_content);
field(L"has_static_file", &ItemContent::has_static_file); field(L"has_static_file", &ItemContent::has_static_file);
field(L"privileges_octal", &ItemContent::privileges_octal); field(L"privileges_octal", &ItemContent::privileges_octal);
field(L"has_user", &ItemContent::has_user);
field(L"has_group", &ItemContent::has_group);
field(L"user", &ItemContent::user); field(L"user", &ItemContent::user);
field(L"group", &ItemContent::group); field(L"group", &ItemContent::group);
field(L"type_is", &ItemContent::type_is); field(L"type_is", &ItemContent::type_is);
@ -101,6 +104,19 @@ void ItemContent::fields()
field(L"has_thumb", &ItemContent::has_thumb); field(L"has_thumb", &ItemContent::has_thumb);
field(L"display_user_name", &ItemContent::display_user_name); field(L"display_user_name", &ItemContent::display_user_name);
field(L"meta_to_str", &ItemContent::meta_to_str);
field(L"meta_prop", &ItemContent::meta_prop);
field(L"meta_prop_no_escape", &ItemContent::meta_prop_no_escape);
field(L"meta_prop_tab", &ItemContent::meta_prop_tab);
field(L"meta_prop_tab_value", &ItemContent::meta_prop_tab_value);
field(L"meta_prop_tab_has_next",&ItemContent::meta_prop_tab_has_next);
field(L"admin_meta_to_str", &ItemContent::admin_meta_to_str);
field(L"admin_meta_prop", &ItemContent::admin_meta_prop);
field(L"admin_meta_prop_no_escape", &ItemContent::admin_meta_prop_no_escape);
field(L"admin_meta_prop_tab", &ItemContent::admin_meta_prop_tab);
field(L"admin_meta_prop_tab_value", &ItemContent::admin_meta_prop_tab_value);
field(L"admin_meta_prop_tab_has_next", &ItemContent::admin_meta_prop_tab_has_next);
// IMPROVEME prepare a setter functions which tests whether content_raw_type_helper and content_parsed_type_helper are correct values // IMPROVEME prepare a setter functions which tests whether content_raw_type_helper and content_parsed_type_helper are correct values
@ -433,6 +449,17 @@ void ItemContent::privileges_octal(EzcEnv & env)
} }
bool ItemContent::has_user() const
{
return user_id != -1;
}
bool ItemContent::has_group() const
{
return group_id != -1;
}
void ItemContent::user(morm::ModelWrapper ** model_wrapper) void ItemContent::user(morm::ModelWrapper ** model_wrapper)
{ {
Users * users = get_users(); Users * users = get_users();
@ -576,5 +603,75 @@ void ItemContent::display_user_name(EzcEnv & env)
} }
void ItemContent::meta_to_str(EzcEnv & env)
{
meta.serialize_to_space_stream(env.out, true);
}
void ItemContent::meta_prop(EzcEnv & env)
{
TemplatesFunctions::space_value(env, meta);
}
void ItemContent::meta_prop_no_escape(EzcEnv & env)
{
TemplatesFunctions::space_value(env, meta, false);
}
void ItemContent::meta_prop_tab(EzcEnv & env)
{
TemplatesFunctions::space_list_tab(env, meta);
}
void ItemContent::meta_prop_tab_value(EzcEnv & env)
{
// FIXME there is no "item_meta_tab" now
TemplatesFunctions::space_list_tab_value(env, meta, L"item_meta_tab");
}
void ItemContent::meta_prop_tab_has_next(EzcEnv & env)
{
// FIXME there is no "item_meta_tab" now
TemplatesFunctions::space_list_tab_has_next(env, meta, L"item_meta_tab");
}
void ItemContent::admin_meta_to_str(EzcEnv & env)
{
meta_admin.serialize_to_space_stream(env.out, true);
}
void ItemContent::admin_meta_prop(EzcEnv & env)
{
TemplatesFunctions::space_value(env, meta_admin);
}
void ItemContent::admin_meta_prop_no_escape(EzcEnv & env)
{
TemplatesFunctions::space_value(env, meta_admin, false);
}
void ItemContent::admin_meta_prop_tab(EzcEnv & env)
{
TemplatesFunctions::space_list_tab(env, meta_admin);
}
void ItemContent::admin_meta_prop_tab_value(EzcEnv & env)
{
// FIXME there is no "item_admin_meta_tab" now
TemplatesFunctions::space_list_tab_value(env, meta_admin, L"item_admin_meta_tab");
}
void ItemContent::admin_meta_prop_tab_has_next(EzcEnv & env)
{
// FIXME there is no "item_admin_meta_tab" now
TemplatesFunctions::space_list_tab_has_next(env, meta_admin, L"item_admin_meta_tab");
}
} // namespace Winix } // namespace Winix

View File

@ -270,6 +270,8 @@ public:
bool is_sticky_bit_set() const; bool is_sticky_bit_set() const;
bool has_user() const;
bool has_group() const;
protected: protected:
@ -292,7 +294,18 @@ protected:
void file_type_is_sound(EzcEnv & env); void file_type_is_sound(EzcEnv & env);
void has_thumb(EzcEnv & env); void has_thumb(EzcEnv & env);
void display_user_name(EzcEnv & env); void display_user_name(EzcEnv & env);
void meta_to_str(EzcEnv & env);
void meta_prop(EzcEnv & env);
void meta_prop_no_escape(EzcEnv & env);
void meta_prop_tab(EzcEnv & env);
void meta_prop_tab_value(EzcEnv & env);
void meta_prop_tab_has_next(EzcEnv & env);
void admin_meta_to_str(EzcEnv & env);
void admin_meta_prop(EzcEnv & env);
void admin_meta_prop_no_escape(EzcEnv & env);
void admin_meta_prop_tab(EzcEnv & env);
void admin_meta_prop_tab_value(EzcEnv & env);
void admin_meta_prop_tab_has_next(EzcEnv & env);
MORM_MEMBER_FIELD(ItemContent) MORM_MEMBER_FIELD(ItemContent)

View File

@ -375,75 +375,75 @@ void item_sort(Info & i)
void item_meta_str(Info & i) //void item_meta_str(Info & i)
{ //{
cur->request->last_item->item_content.meta.serialize_to_space_stream(i.out, true); // cur->request->last_item->item_content.meta.serialize_to_space_stream(i.out, true);
} //}
//
//
void item_meta(Info & i) //void item_meta(Info & i)
{ //{
space_value(i, cur->request->last_item->item_content.meta); // space_value(i, cur->request->last_item->item_content.meta);
} //}
//
//
void item_meta_noescape(Info & i) //void item_meta_noescape(Info & i)
{ //{
space_value(i, cur->request->last_item->item_content.meta, false); // space_value(i, cur->request->last_item->item_content.meta, false);
} //}
void item_meta_tab(Info & i) //void item_meta_tab(Info & i)
{ //{
space_list_tab(i, cur->request->last_item->item_content.meta); // space_list_tab(i, cur->request->last_item->item_content.meta);
} //}
//
//
void item_meta_tab_value(Info & i) //void item_meta_tab_value(Info & i)
{ //{
space_list_tab_value(i, cur->request->last_item->item_content.meta, L"item_meta_tab"); // space_list_tab_value(i, cur->request->last_item->item_content.meta, L"item_meta_tab");
} //}
//
//
//
void item_meta_tab_has_next(Info & i) //void item_meta_tab_has_next(Info & i)
{ //{
space_list_tab_has_next(i, cur->request->last_item->item_content.meta, L"item_meta_tab"); // space_list_tab_has_next(i, cur->request->last_item->item_content.meta, L"item_meta_tab");
} //}
void item_admin_meta_str(Info & i) //void item_admin_meta_str(Info & i)
{ //{
cur->request->last_item->item_content.meta_admin.serialize_to_space_stream(i.out, true); // cur->request->last_item->item_content.meta_admin.serialize_to_space_stream(i.out, true);
} //}
//
//
void item_admin_meta(Info & i) //void item_admin_meta(Info & i)
{ //{
space_value(i, cur->request->last_item->item_content.meta_admin); // space_value(i, cur->request->last_item->item_content.meta_admin);
} //}
//
//
void item_admin_meta_tab(Info & i) //void item_admin_meta_tab(Info & i)
{ //{
space_list_tab(i, cur->request->last_item->item_content.meta_admin); // space_list_tab(i, cur->request->last_item->item_content.meta_admin);
} //}
//
//
void item_admin_meta_tab_value(Info & i) //void item_admin_meta_tab_value(Info & i)
{ //{
space_list_tab_value(i, cur->request->last_item->item_content.meta_admin, L"item_admin_meta_tab"); // space_list_tab_value(i, cur->request->last_item->item_content.meta_admin, L"item_admin_meta_tab");
} //}
//
//
void item_admin_meta_tab_has_next(Info & i) //void item_admin_meta_tab_has_next(Info & i)
{ //{
space_list_tab_has_next(i, cur->request->last_item->item_content.meta_admin, L"item_admin_meta_tab"); // space_list_tab_has_next(i, cur->request->last_item->item_content.meta_admin, L"item_admin_meta_tab");
} //}
//
void item_can_content_be_html_filtered(Info & i) void item_can_content_be_html_filtered(Info & i)
{ {

View File

@ -161,6 +161,25 @@ void print_user_name(Info & i, User * puser, const std::wstring & guest_name)
} }
bool should_escape(Info & env)
{
bool res = true;
for(size_t i=0 ; i < env.params.size() ; ++i)
{
// CHECKME what about env.params[i].is_function ?
if( env.params[i].str == L"noescape" || env.params[i].str == L"raw" )
{
res = false;
break;
}
}
return res;
}

View File

@ -82,6 +82,7 @@ void print_date_nice(Info & i, const pt::Date & date);
void print_user_name(Info & i, User * puser, const std::wstring & guest_name); void print_user_name(Info & i, User * puser, const std::wstring & guest_name);
bool should_escape(Info & env);
} // namespace TemplatesFunctions } // namespace TemplatesFunctions

View File

@ -475,17 +475,17 @@ void Templates::CreateFunctions()
ezc_functions.Insert("item_is_link_redirect", item_is_link_redirect); ezc_functions.Insert("item_is_link_redirect", item_is_link_redirect);
ezc_functions.Insert("item_file_size", item_file_size); ezc_functions.Insert("item_file_size", item_file_size);
ezc_functions.Insert("item_sort", item_sort); ezc_functions.Insert("item_sort", item_sort);
ezc_functions.Insert("item_meta_str", item_meta_str); // ezc_functions.Insert("item_meta_str", item_meta_str);
ezc_functions.Insert("item_meta", item_meta); // ezc_functions.Insert("item_meta", item_meta);
ezc_functions.Insert("item_meta_noescape", item_meta_noescape); // ezc_functions.Insert("item_meta_noescape", item_meta_noescape);
ezc_functions.Insert("item_meta_tab", item_meta_tab); // ezc_functions.Insert("item_meta_tab", item_meta_tab);
ezc_functions.Insert("item_meta_tab_value", item_meta_tab_value); // ezc_functions.Insert("item_meta_tab_value", item_meta_tab_value);
ezc_functions.Insert("item_meta_tab_has_next", item_meta_tab_has_next); // ezc_functions.Insert("item_meta_tab_has_next", item_meta_tab_has_next);
ezc_functions.Insert("item_admin_meta_str", item_admin_meta_str); // ezc_functions.Insert("item_admin_meta_str", item_admin_meta_str);
ezc_functions.Insert("item_admin_meta", item_admin_meta); // ezc_functions.Insert("item_admin_meta", item_admin_meta);
ezc_functions.Insert("item_admin_meta_tab", item_admin_meta_tab); // ezc_functions.Insert("item_admin_meta_tab", item_admin_meta_tab);
ezc_functions.Insert("item_admin_meta_tab_value", item_admin_meta_tab_value); // ezc_functions.Insert("item_admin_meta_tab_value", item_admin_meta_tab_value);
ezc_functions.Insert("item_admin_meta_tab_has_next", item_admin_meta_tab_has_next); // ezc_functions.Insert("item_admin_meta_tab_has_next", item_admin_meta_tab_has_next);
ezc_functions.Insert("item_can_content_be_html_filtered", item_can_content_be_html_filtered); ezc_functions.Insert("item_can_content_be_html_filtered", item_can_content_be_html_filtered);
/* /*

View File

@ -365,17 +365,17 @@ namespace TemplatesFunctions
void item_is_link_redirect(Info & i); void item_is_link_redirect(Info & i);
void item_file_size(Info & i); void item_file_size(Info & i);
void item_sort(Info & i); void item_sort(Info & i);
void item_meta_str(Info & i); //void item_meta_str(Info & i);
void item_meta(Info & i); //void item_meta(Info & i);
void item_meta_noescape(Info & i); //void item_meta_noescape(Info & i);
void item_meta_tab(Info & i); // void item_meta_tab(Info & i);
void item_meta_tab_value(Info & i); // void item_meta_tab_value(Info & i);
void item_meta_tab_has_next(Info & i); // void item_meta_tab_has_next(Info & i);
void item_admin_meta_str(Info & i); // void item_admin_meta_str(Info & i);
void item_admin_meta(Info & i); // void item_admin_meta(Info & i);
void item_admin_meta_tab(Info & i); // void item_admin_meta_tab(Info & i);
void item_admin_meta_tab_value(Info & i); // void item_admin_meta_tab_value(Info & i);
void item_admin_meta_tab_has_next(Info & i); // void item_admin_meta_tab_has_next(Info & i);
void item_can_content_be_html_filtered(Info & i); void item_can_content_be_html_filtered(Info & i);
/* /*