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
This commit is contained in:
parent
53fe5c35b9
commit
ab89ffe096
|
@ -331,6 +331,11 @@ bool App::Init()
|
|||
model_connector.set_winix_config(&config);
|
||||
model_connector.set_winix_request(&req);
|
||||
model_connector.set_winix_logger(&log);
|
||||
model_connector.set_winix_dirs(&system.dirs);
|
||||
model_connector.set_winix_mounts(&system.mounts);
|
||||
model_connector.set_winix_users(&system.users);
|
||||
model_connector.set_winix_groups(&system.groups);
|
||||
model_connector.set_winix_session_logger(nullptr); // will be set for each request
|
||||
|
||||
if( !TryToMakeDatabaseMigration() )
|
||||
return false;
|
||||
|
|
|
@ -106,10 +106,6 @@ public:
|
|||
|
||||
|
||||
|
||||
/*
|
||||
model
|
||||
*/
|
||||
|
||||
// ...
|
||||
System system;
|
||||
|
||||
|
@ -121,9 +117,6 @@ public:
|
|||
bool stdout_is_closed;
|
||||
|
||||
|
||||
/*
|
||||
view
|
||||
*/
|
||||
|
||||
Templates templates;
|
||||
|
||||
|
|
|
@ -95,9 +95,19 @@ void ThreadManager::Add(BaseThread * pbase, const wchar_t * thread_name)
|
|||
data.postgresql_connector.wait_for_connection();
|
||||
data.model_connector.set_db_connector(data.postgresql_connector);
|
||||
data.model_connector.set_flat_connector(data.json_connector);
|
||||
data.model_connector.set_winix_config(config);
|
||||
data.model_connector.set_winix_logger(item.object->get_logger());
|
||||
data.model_connector.set_logger(item.object->get_logger());
|
||||
data.model_connector.set_winix_config(config);
|
||||
data.model_connector.set_winix_request(nullptr);
|
||||
data.model_connector.set_winix_logger(item.object->get_logger());
|
||||
data.model_connector.set_winix_dirs(nullptr);
|
||||
data.model_connector.set_winix_mounts(nullptr);
|
||||
data.model_connector.set_winix_users(nullptr);
|
||||
data.model_connector.set_winix_groups(nullptr);
|
||||
data.model_connector.set_winix_session_logger(nullptr);
|
||||
|
||||
|
||||
|
||||
|
||||
//data.model_connector.set_winix_request();
|
||||
|
||||
item.object->set_model_connector(&data.model_connector);
|
||||
|
|
|
@ -67,8 +67,9 @@ void Item::fields()
|
|||
field(L"sort_index", sort_index);
|
||||
field(L"content_id", L"content", item_content, morm::FT::foreign_key);
|
||||
|
||||
field(L"is", &Item::is);
|
||||
field(L"link", &Item::link);
|
||||
field(L"is", &Item::is);
|
||||
field(L"dir_link", &Item::dir_link);
|
||||
field(L"link", &Item::link);
|
||||
|
||||
|
||||
// may we should add a method setTypeFromInt(int t)?
|
||||
|
@ -281,6 +282,21 @@ void Item::is(Ezc::FunInfo<HtmlTextStream> & env)
|
|||
}
|
||||
|
||||
|
||||
void Item::dir_link(Ezc::FunInfo<HtmlTextStream> & env)
|
||||
{
|
||||
Dirs * dirs = get_dirs();
|
||||
std::vector<Item*> dir_tab;
|
||||
|
||||
if( dirs && dirs->CreateDirTab(parent_id, dir_tab) )
|
||||
{
|
||||
for(Item * pitem : dir_tab)
|
||||
{
|
||||
env.out << pitem->url << '/';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Item::link(Ezc::FunInfo<HtmlTextStream> & env)
|
||||
{
|
||||
Config * config = get_config();
|
||||
|
@ -295,8 +311,15 @@ void Item::link(Ezc::FunInfo<HtmlTextStream> & env)
|
|||
|
||||
env.out << config->base_url;
|
||||
|
||||
// FIXME this prints cur->request->dir_tab but we should print the directory in which actually there is the item
|
||||
print_dir(env);
|
||||
if( parent_id == req->dir_tab.back()->id )
|
||||
{
|
||||
print_dir(env);
|
||||
}
|
||||
else
|
||||
{
|
||||
dir_link(env);
|
||||
}
|
||||
|
||||
env.out << url;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -188,6 +188,7 @@ public:
|
|||
void print_dir_without_slash(Ezc::FunInfo<HtmlTextStream> & env);
|
||||
|
||||
void is(Ezc::FunInfo<HtmlTextStream> & env);
|
||||
void dir_link(Ezc::FunInfo<HtmlTextStream> & env);
|
||||
void link(Ezc::FunInfo<HtmlTextStream> & env);
|
||||
|
||||
|
||||
|
|
|
@ -76,6 +76,74 @@ Log * WinixModel::get_logger()
|
|||
}
|
||||
|
||||
|
||||
Dirs * WinixModel::get_dirs()
|
||||
{
|
||||
WinixModelConnector * connector = get_winix_model_connector();
|
||||
|
||||
if( connector )
|
||||
{
|
||||
return connector->get_winix_dirs();
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
Mounts * WinixModel::get_mounts()
|
||||
{
|
||||
WinixModelConnector * connector = get_winix_model_connector();
|
||||
|
||||
if( connector )
|
||||
{
|
||||
return connector->get_winix_mounts();
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
Users * WinixModel::get_users()
|
||||
{
|
||||
WinixModelConnector * connector = get_winix_model_connector();
|
||||
|
||||
if( connector )
|
||||
{
|
||||
return connector->get_winix_users();
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
Groups * WinixModel::get_groups()
|
||||
{
|
||||
WinixModelConnector * connector = get_winix_model_connector();
|
||||
|
||||
if( connector )
|
||||
{
|
||||
return connector->get_winix_groups();
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
SLog * WinixModel::get_session_logger()
|
||||
{
|
||||
WinixModelConnector * connector = get_winix_model_connector();
|
||||
|
||||
if( connector )
|
||||
{
|
||||
return connector->get_winix_session_logger();
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
WinixModelConnector * WinixModel::get_winix_model_connector()
|
||||
{
|
||||
if( model_connector )
|
||||
|
|
|
@ -45,6 +45,11 @@ namespace Winix
|
|||
class Config;
|
||||
class Request;
|
||||
class Log;
|
||||
class Dirs;
|
||||
class Mounts;
|
||||
class Users;
|
||||
class Groups;
|
||||
class SLog;
|
||||
|
||||
|
||||
class WinixModel : public morm::Model
|
||||
|
@ -54,7 +59,11 @@ public:
|
|||
Config * get_config();
|
||||
Request * get_request();
|
||||
Log * get_logger();
|
||||
|
||||
Dirs * get_dirs();
|
||||
Mounts * get_mounts();
|
||||
Users * get_users();
|
||||
Groups * get_groups();
|
||||
SLog * get_session_logger(); // FIXME always return null at the moment, should be set when a new request is created and clear at the end of a request
|
||||
|
||||
protected:
|
||||
|
||||
|
|
|
@ -44,6 +44,11 @@ WinixModelConnector::WinixModelConnector()
|
|||
config = nullptr;
|
||||
request = nullptr;
|
||||
log = nullptr;
|
||||
dirs = nullptr;
|
||||
mounts = nullptr;
|
||||
users = nullptr;
|
||||
groups = nullptr;
|
||||
slog = nullptr;
|
||||
}
|
||||
|
||||
|
||||
|
@ -65,6 +70,35 @@ Log * WinixModelConnector::get_winix_logger()
|
|||
}
|
||||
|
||||
|
||||
Dirs * WinixModelConnector::get_winix_dirs()
|
||||
{
|
||||
return dirs;
|
||||
}
|
||||
|
||||
|
||||
Mounts * WinixModelConnector::get_winix_mounts()
|
||||
{
|
||||
return mounts;
|
||||
}
|
||||
|
||||
|
||||
Users * WinixModelConnector::get_winix_users()
|
||||
{
|
||||
return users;
|
||||
}
|
||||
|
||||
|
||||
Groups * WinixModelConnector::get_winix_groups()
|
||||
{
|
||||
return groups;
|
||||
}
|
||||
|
||||
SLog * WinixModelConnector::get_winix_session_logger()
|
||||
{
|
||||
return slog;
|
||||
}
|
||||
|
||||
|
||||
void WinixModelConnector::set_winix_config(Config * config)
|
||||
{
|
||||
this->config = config;
|
||||
|
@ -83,6 +117,34 @@ void WinixModelConnector::set_winix_logger(Log * log)
|
|||
}
|
||||
|
||||
|
||||
void WinixModelConnector::set_winix_dirs(Dirs * dirs)
|
||||
{
|
||||
this->dirs = dirs;
|
||||
}
|
||||
|
||||
|
||||
void WinixModelConnector::set_winix_mounts(Mounts * mounts)
|
||||
{
|
||||
this->mounts = mounts;
|
||||
}
|
||||
|
||||
|
||||
void WinixModelConnector::set_winix_users(Users * users)
|
||||
{
|
||||
this->users = users;
|
||||
}
|
||||
|
||||
|
||||
void WinixModelConnector::set_winix_groups(Groups * groups)
|
||||
{
|
||||
this->groups = groups;
|
||||
}
|
||||
|
||||
void WinixModelConnector::set_winix_session_logger(SLog * slog)
|
||||
{
|
||||
this->slog = slog;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -43,6 +43,12 @@ namespace Winix
|
|||
class Config;
|
||||
class Request;
|
||||
class Log;
|
||||
class Dirs;
|
||||
class Mounts;
|
||||
class Users;
|
||||
class Groups;
|
||||
class SLog;
|
||||
|
||||
|
||||
class WinixModelConnector : public morm::ModelConnector
|
||||
{
|
||||
|
@ -50,13 +56,23 @@ public:
|
|||
|
||||
WinixModelConnector();
|
||||
|
||||
Config * get_winix_config();
|
||||
Config * get_winix_config();
|
||||
Request * get_winix_request();
|
||||
Log * get_winix_logger();
|
||||
Log * get_winix_logger();
|
||||
Dirs * get_winix_dirs();
|
||||
Mounts * get_winix_mounts();
|
||||
Users * get_winix_users();
|
||||
Groups * get_winix_groups();
|
||||
SLog * get_winix_session_logger();
|
||||
|
||||
void set_winix_config(Config * config);
|
||||
void set_winix_request(Request * request);
|
||||
void set_winix_logger(Log * log);
|
||||
void set_winix_dirs(Dirs * dirs);
|
||||
void set_winix_mounts(Mounts * mounts);
|
||||
void set_winix_users(Users * users);
|
||||
void set_winix_groups(Groups * groups);
|
||||
void set_winix_session_logger(SLog * slog);
|
||||
|
||||
|
||||
protected:
|
||||
|
@ -64,6 +80,11 @@ protected:
|
|||
Config * config; // one global config
|
||||
Request * request; // each thread worker has its own request (not implemented yet)
|
||||
Log * log; // each thread has its own logger
|
||||
Dirs * dirs;
|
||||
Mounts * mounts;
|
||||
Users * users;
|
||||
Groups * groups;
|
||||
SLog * slog;
|
||||
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue