added: function: default
changes the default item in a directory git-svn-id: svn://ttmath.org/publicrep/cmslu/trunk@473 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
@@ -96,6 +96,60 @@ void dir_tab_link(Info & i)
|
||||
|
||||
|
||||
|
||||
static Item dir_last_default_item;
|
||||
static size_t dir_last_default_item_reqid = 0;
|
||||
|
||||
|
||||
|
||||
void dir_last_default_item_init()
|
||||
{
|
||||
if( dir_last_default_item_reqid == request.id )
|
||||
return;
|
||||
|
||||
dir_last_default_item_reqid = request.id;
|
||||
|
||||
dir_last_default_item.Clear();
|
||||
log << "inicjalizacja dir_last_default_item" << logend;
|
||||
|
||||
if( request.dir_table.empty() )
|
||||
return;
|
||||
|
||||
long default_item = request.dir_table.back()->default_item;
|
||||
|
||||
if( default_item == -1 )
|
||||
return;
|
||||
|
||||
std::vector<Item> item_table; // !! tymczasowo, nie bedzie tego po zmianie interfejsu dla Db
|
||||
db.GetItem(item_table, default_item);
|
||||
|
||||
if( item_table.empty() )
|
||||
return;
|
||||
|
||||
dir_last_default_item = item_table[0];
|
||||
}
|
||||
|
||||
|
||||
|
||||
void dir_last_default_item_dir(Info & i)
|
||||
{
|
||||
dir_last_default_item_init();
|
||||
|
||||
std::string path;
|
||||
|
||||
if( dir_last_default_item.parent_id != -1 )
|
||||
if( data.dirs.MakePath(dir_last_default_item.parent_id, path) )
|
||||
HtmlEscape(i.out, path);
|
||||
}
|
||||
|
||||
|
||||
void dir_last_default_item_url(Info & i)
|
||||
{
|
||||
dir_last_default_item_init();
|
||||
|
||||
HtmlEscape(i.out, dir_last_default_item.url);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace TemplatesFunctions
|
||||
|
||||
@@ -27,6 +27,12 @@ void done_status(Info & i)
|
||||
}
|
||||
|
||||
|
||||
void done_status_no_item(Info & i)
|
||||
{
|
||||
i.result = request.session->done_status == Error::db_no_item;
|
||||
}
|
||||
|
||||
|
||||
void done_status_incorrect_dir(Info & i)
|
||||
{
|
||||
i.result = request.session->done_status == Error::incorrect_dir;
|
||||
@@ -75,6 +81,12 @@ void done_added_dir(Info & i)
|
||||
|
||||
|
||||
|
||||
void done_defaulted_dir(Info & i)
|
||||
{
|
||||
i.result = request.session->done == Done::defaulted_dir;
|
||||
}
|
||||
|
||||
|
||||
} // namespace TemplatesFunctions
|
||||
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ Ezc::Pattern pat_fun_cat;
|
||||
Ezc::Pattern pat_fun_ls;
|
||||
Ezc::Pattern pat_fun_emacs;
|
||||
Ezc::Pattern pat_fun_mkdir;
|
||||
Ezc::Pattern pat_fun_default_item;
|
||||
Ezc::Pattern pat_fun_privileges;
|
||||
Ezc::Pattern pat_fun_rm;
|
||||
Ezc::Pattern pat_err_item_required;
|
||||
@@ -80,6 +81,10 @@ Ezc::Pattern * p = 0;
|
||||
p = &pat_fun_mkdir;
|
||||
break;
|
||||
|
||||
case Function::default_item:
|
||||
p = &pat_fun_default_item;
|
||||
break;
|
||||
|
||||
case Function::privileges:
|
||||
p = &pat_fun_privileges;
|
||||
break;
|
||||
@@ -209,15 +214,17 @@ void Templates::CreateFunctions()
|
||||
/*
|
||||
dir
|
||||
*/
|
||||
functions.Insert("dir", dir);
|
||||
functions.Insert("dir", dir);
|
||||
|
||||
functions.Insert("dir_childs_tab", dir_childs_tab);
|
||||
functions.Insert("dir_childs_tab_url", dir_childs_tab_url);
|
||||
functions.Insert("dir_childs_tab", dir_childs_tab);
|
||||
functions.Insert("dir_childs_tab_url", dir_childs_tab_url);
|
||||
|
||||
functions.Insert("dir_tab", dir_tab);
|
||||
functions.Insert("dir_tab_url", dir_tab_url);
|
||||
functions.Insert("dir_tab_link", dir_tab_link);
|
||||
functions.Insert("dir_tab", dir_tab);
|
||||
functions.Insert("dir_tab_url", dir_tab_url);
|
||||
functions.Insert("dir_tab_link", dir_tab_link);
|
||||
|
||||
functions.Insert("dir_last_default_item_dir", dir_last_default_item_dir);
|
||||
functions.Insert("dir_last_default_item_url", dir_last_default_item_url);
|
||||
|
||||
/*
|
||||
user
|
||||
@@ -244,6 +251,7 @@ void Templates::CreateFunctions()
|
||||
*/
|
||||
functions.Insert("done_errors", done_errors);
|
||||
functions.Insert("done_status", done_status);
|
||||
functions.Insert("done_status_no_item", done_status_no_item);
|
||||
functions.Insert("done_status_incorrect_dir", done_status_incorrect_dir);
|
||||
functions.Insert("done_added_item", done_added_item);
|
||||
functions.Insert("done_edited_item", done_edited_item);
|
||||
@@ -251,6 +259,7 @@ void Templates::CreateFunctions()
|
||||
functions.Insert("done_privileged_item", done_privileged_item);
|
||||
functions.Insert("done_loggedout", done_loggedout);
|
||||
functions.Insert("done_added_dir", done_added_dir);
|
||||
functions.Insert("done_defaulted_dir", done_defaulted_dir);
|
||||
|
||||
|
||||
/*
|
||||
@@ -298,6 +307,9 @@ void Templates::Read()
|
||||
pat_fun_mkdir.Directory(data.templates);
|
||||
pat_fun_mkdir.ParseFile("fun_mkdir.html");
|
||||
|
||||
pat_fun_default_item.Directory(data.templates);
|
||||
pat_fun_default_item.ParseFile("fun_default_item.html");
|
||||
|
||||
pat_fun_privileges.Directory(data.templates);
|
||||
pat_fun_privileges.ParseFile("fun_privileges.html");
|
||||
|
||||
|
||||
@@ -100,6 +100,8 @@ namespace TemplatesFunctions
|
||||
void dir_tab_url(Info & i);
|
||||
void dir_tab_link(Info & i);
|
||||
|
||||
void dir_last_default_item_dir(Info &);
|
||||
void dir_last_default_item_url(Info & i);
|
||||
|
||||
/*
|
||||
user
|
||||
@@ -127,6 +129,7 @@ namespace TemplatesFunctions
|
||||
*/
|
||||
void done_errors(Info & i);
|
||||
void done_status(Info & i);
|
||||
void done_status_no_item(Info & i);
|
||||
void done_status_incorrect_dir(Info & i);
|
||||
|
||||
void done_added_item(Info & i);
|
||||
@@ -135,6 +138,7 @@ namespace TemplatesFunctions
|
||||
void done_privileged_item(Info & i);
|
||||
|
||||
void done_added_dir(Info & i);
|
||||
void done_defaulted_dir(Info & i);
|
||||
|
||||
void done_loggedout(Info & i);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user