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_config(&config);
|
||||||
model_connector.set_winix_request(&req);
|
model_connector.set_winix_request(&req);
|
||||||
model_connector.set_winix_logger(&log);
|
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() )
|
if( !TryToMakeDatabaseMigration() )
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -106,10 +106,6 @@ public:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
model
|
|
||||||
*/
|
|
||||||
|
|
||||||
// ...
|
// ...
|
||||||
System system;
|
System system;
|
||||||
|
|
||||||
|
@ -121,9 +117,6 @@ public:
|
||||||
bool stdout_is_closed;
|
bool stdout_is_closed;
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
view
|
|
||||||
*/
|
|
||||||
|
|
||||||
Templates templates;
|
Templates templates;
|
||||||
|
|
||||||
|
|
|
@ -95,9 +95,19 @@ void ThreadManager::Add(BaseThread * pbase, const wchar_t * thread_name)
|
||||||
data.postgresql_connector.wait_for_connection();
|
data.postgresql_connector.wait_for_connection();
|
||||||
data.model_connector.set_db_connector(data.postgresql_connector);
|
data.model_connector.set_db_connector(data.postgresql_connector);
|
||||||
data.model_connector.set_flat_connector(data.json_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_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();
|
//data.model_connector.set_winix_request();
|
||||||
|
|
||||||
item.object->set_model_connector(&data.model_connector);
|
item.object->set_model_connector(&data.model_connector);
|
||||||
|
|
|
@ -68,6 +68,7 @@ void Item::fields()
|
||||||
field(L"content_id", L"content", item_content, morm::FT::foreign_key);
|
field(L"content_id", L"content", item_content, morm::FT::foreign_key);
|
||||||
|
|
||||||
field(L"is", &Item::is);
|
field(L"is", &Item::is);
|
||||||
|
field(L"dir_link", &Item::dir_link);
|
||||||
field(L"link", &Item::link);
|
field(L"link", &Item::link);
|
||||||
|
|
||||||
|
|
||||||
|
@ -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)
|
void Item::link(Ezc::FunInfo<HtmlTextStream> & env)
|
||||||
{
|
{
|
||||||
Config * config = get_config();
|
Config * config = get_config();
|
||||||
|
@ -295,8 +311,15 @@ void Item::link(Ezc::FunInfo<HtmlTextStream> & env)
|
||||||
|
|
||||||
env.out << config->base_url;
|
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
|
if( parent_id == req->dir_tab.back()->id )
|
||||||
|
{
|
||||||
print_dir(env);
|
print_dir(env);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dir_link(env);
|
||||||
|
}
|
||||||
|
|
||||||
env.out << url;
|
env.out << url;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -188,6 +188,7 @@ public:
|
||||||
void print_dir_without_slash(Ezc::FunInfo<HtmlTextStream> & env);
|
void print_dir_without_slash(Ezc::FunInfo<HtmlTextStream> & env);
|
||||||
|
|
||||||
void is(Ezc::FunInfo<HtmlTextStream> & env);
|
void is(Ezc::FunInfo<HtmlTextStream> & env);
|
||||||
|
void dir_link(Ezc::FunInfo<HtmlTextStream> & env);
|
||||||
void 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()
|
WinixModelConnector * WinixModel::get_winix_model_connector()
|
||||||
{
|
{
|
||||||
if( model_connector )
|
if( model_connector )
|
||||||
|
|
|
@ -45,6 +45,11 @@ namespace Winix
|
||||||
class Config;
|
class Config;
|
||||||
class Request;
|
class Request;
|
||||||
class Log;
|
class Log;
|
||||||
|
class Dirs;
|
||||||
|
class Mounts;
|
||||||
|
class Users;
|
||||||
|
class Groups;
|
||||||
|
class SLog;
|
||||||
|
|
||||||
|
|
||||||
class WinixModel : public morm::Model
|
class WinixModel : public morm::Model
|
||||||
|
@ -54,7 +59,11 @@ public:
|
||||||
Config * get_config();
|
Config * get_config();
|
||||||
Request * get_request();
|
Request * get_request();
|
||||||
Log * get_logger();
|
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:
|
protected:
|
||||||
|
|
||||||
|
|
|
@ -44,6 +44,11 @@ WinixModelConnector::WinixModelConnector()
|
||||||
config = nullptr;
|
config = nullptr;
|
||||||
request = nullptr;
|
request = nullptr;
|
||||||
log = 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)
|
void WinixModelConnector::set_winix_config(Config * config)
|
||||||
{
|
{
|
||||||
this->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 Config;
|
||||||
class Request;
|
class Request;
|
||||||
class Log;
|
class Log;
|
||||||
|
class Dirs;
|
||||||
|
class Mounts;
|
||||||
|
class Users;
|
||||||
|
class Groups;
|
||||||
|
class SLog;
|
||||||
|
|
||||||
|
|
||||||
class WinixModelConnector : public morm::ModelConnector
|
class WinixModelConnector : public morm::ModelConnector
|
||||||
{
|
{
|
||||||
|
@ -53,10 +59,20 @@ public:
|
||||||
Config * get_winix_config();
|
Config * get_winix_config();
|
||||||
Request * get_winix_request();
|
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_config(Config * config);
|
||||||
void set_winix_request(Request * request);
|
void set_winix_request(Request * request);
|
||||||
void set_winix_logger(Log * log);
|
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:
|
protected:
|
||||||
|
@ -64,6 +80,11 @@ protected:
|
||||||
Config * config; // one global config
|
Config * config; // one global config
|
||||||
Request * request; // each thread worker has its own request (not implemented yet)
|
Request * request; // each thread worker has its own request (not implemented yet)
|
||||||
Log * log; // each thread has its own logger
|
Log * log; // each thread has its own logger
|
||||||
|
Dirs * dirs;
|
||||||
|
Mounts * mounts;
|
||||||
|
Users * users;
|
||||||
|
Groups * groups;
|
||||||
|
SLog * slog;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue