diff --git a/winixd/core/config.cpp b/winixd/core/config.cpp index 06e4f81..9558d74 100644 --- a/winixd/core/config.cpp +++ b/winixd/core/config.cpp @@ -5,7 +5,7 @@ */ /* - * Copyright (c) 2008-2018, Tomasz Sowa + * Copyright (c) 2008-2021, Tomasz Sowa * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -186,6 +186,7 @@ void Config::AssignValues(bool stdout_is_closed) templates_fun_prefix = Text(L"templates_fun_prefix", L"fun_"); templates_fun_postfix = Text(L"templates_fun_postfix", L".html"); templates_index = Text(L"templates_index", L"index.html"); + templates_index_generic = Text(L"templates_index_generic", L"index_generic.html"); templates_index_raw = Text(L"templates_index_raw", L"index_raw.html"); template_only_root_use_template_fun = Bool(L"template_only_root_use_template_fun", false); diff --git a/winixd/core/config.h b/winixd/core/config.h index 8322c26..97a17f6 100644 --- a/winixd/core/config.h +++ b/winixd/core/config.h @@ -5,7 +5,7 @@ */ /* - * Copyright (c) 2008-2018, Tomasz Sowa + * Copyright (c) 2008-2021, Tomasz Sowa * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -181,6 +181,10 @@ public: // default: index.html std::wstring templates_index; + // html template used to send generic content - without site-css styles and markup (only uikit) + // default: index_generic.html + std::wstring templates_index_generic; + // html template used to send raw content // default: index_raw.html std::wstring templates_index_raw; diff --git a/winixd/core/request.cpp b/winixd/core/request.cpp index d5e4884..f6cf15f 100644 --- a/winixd/core/request.cpp +++ b/winixd/core/request.cpp @@ -5,7 +5,7 @@ */ /* - * Copyright (c) 2008-2015, Tomasz Sowa + * Copyright (c) 2008-2021, Tomasz Sowa * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -153,6 +153,8 @@ void Request::Clear() ip = 0; ip_str.clear(); use_200_status_for_not_found_and_permission_denied = false; + + html_template.clear(); } diff --git a/winixd/core/request.h b/winixd/core/request.h index 86f21a0..d46bcb8 100644 --- a/winixd/core/request.h +++ b/winixd/core/request.h @@ -5,7 +5,7 @@ */ /* - * Copyright (c) 2008-2018, Tomasz Sowa + * Copyright (c) 2008-2021, Tomasz Sowa * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -339,6 +339,8 @@ struct Request bool gen_use_special_chars; + // index template name + std::wstring html_template; /* diff --git a/winixd/functions/cat.cpp b/winixd/functions/cat.cpp index 3b021fe..3fd37be 100644 --- a/winixd/functions/cat.cpp +++ b/winixd/functions/cat.cpp @@ -51,6 +51,9 @@ Cat::Cat() void Cat::MakeGet() { + // IMPROVE ME this probably should be set for all winix functions + cur->request->html_template = cur->request->last_item->html_template; + if( !cur->request->is_item ) { log << log1 << "Content: cat function requires an item" << logend; diff --git a/winixd/functions/ls.cpp b/winixd/functions/ls.cpp index 9b01de3..d50b5eb 100644 --- a/winixd/functions/ls.cpp +++ b/winixd/functions/ls.cpp @@ -56,7 +56,7 @@ void Ls::MakeGet() // this should be moved to ckeditor function (similarly the html content from fun_ls.html) if( cur->request->IsParam(L"ckeditor_browse") ) { - cur->request->index_template = config->templates_index_generic; + cur->request->html_template = config->templates_index_generic; } if( !cur->request->is_item ) diff --git a/winixd/functions/run.cpp b/winixd/functions/run.cpp index 280ad49..baf682b 100644 --- a/winixd/functions/run.cpp +++ b/winixd/functions/run.cpp @@ -60,6 +60,9 @@ void Run::MakePost() void Run::MakeGet() { + // IMPROVE ME this probably should be set for all winix functions + cur->request->html_template = cur->request->last_item->html_template; + if( !cur->request->is_item ) { log << log1 << "Content: Run function requires an item" << logend; diff --git a/winixd/functions/template.cpp b/winixd/functions/template.cpp index 2f8f4df..ac30372 100644 --- a/winixd/functions/template.cpp +++ b/winixd/functions/template.cpp @@ -97,12 +97,17 @@ void Template::CreateTemplateFileName(const std::wstring & index_str) } else if( index == 1 ) + { + html_template = config->templates_index_generic; + } + else + if( index == 2 ) { html_template = config->templates_index_raw; } else { - index -= 2; + index -= 3; Mount::ParamRow & par = system->mounts.pmount->param[system->mounts.MountParHtmlTemplate()]; if( !par.defined || (size_t)index >= par.arg.size() ) diff --git a/winixd/html/index_generic.html b/winixd/html/index_generic.html new file mode 100644 index 0000000..1420223 --- /dev/null +++ b/winixd/html/index_generic.html @@ -0,0 +1,16 @@ + +[# minimalistic template] + + + +
+ [include "index_head_functions_add.html"] + +