fixed: imgcrop winix function should load only images
(when called in a directory) added: to reload winix function: reloading (clearing) the cache from 'menu' plugin added: to 'menu' plugin possibility to read 'meta' information from files third argument 'withmeta' to menu_dir_tab ezc function e.g. [for menu_dir_tab "/directory" "..." "withmeta"]...[end] and some ezc functions to retrieve the meta values git-svn-id: svn://ttmath.org/publicrep/winix/trunk@921 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
parent
aed891764a
commit
8705b3437c
|
@ -33,8 +33,12 @@ bool ImgCrop::HasAccess()
|
|||
|
||||
void ImgCrop::GetDirContent()
|
||||
{
|
||||
iq.sel_type = Item::file;
|
||||
iq.sel_content = false;
|
||||
|
||||
iq.WhereParentId(cur->request->dir_tab.back()->id);
|
||||
iq.WhereFileType(WINIX_ITEM_FILETYPE_IMAGE);
|
||||
|
||||
db->GetItems(cur->request->item_tab, iq);
|
||||
system->CheckWriteAccessToItems(cur->request->item_tab);
|
||||
}
|
||||
|
|
|
@ -20,6 +20,10 @@
|
|||
<li><a href="[doc_base_url][dir]reload/export">{reload_export}</a></li>
|
||||
[end]
|
||||
|
||||
[if winix_has_plugin "menu"]
|
||||
<li><a href="[doc_base_url][dir]reload/menu">{reload_menu}</a></li>
|
||||
[end]
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
|
|
@ -226,6 +226,7 @@ reload_templates = html templates
|
|||
reload_tickets = tickets config files
|
||||
reload_group = groups config files
|
||||
reload_export = "export directories (FTP)"
|
||||
reload_menu = plugin menu cache
|
||||
|
||||
|
||||
rm_header = Remove
|
||||
|
|
|
@ -248,6 +248,7 @@ reload_templates = szablony html
|
|||
reload_tickets = pliki konfiguracyjne ticketów
|
||||
reload_group = pliki konfiguracyjne grup
|
||||
reload_export = "katalogi exportu (FTP)"
|
||||
reload_menu = cache pluginu 'menu'
|
||||
|
||||
|
||||
rm_header = Usuń
|
||||
|
|
|
@ -165,3 +165,4 @@ templates.o: ../../functions/tinymce.h ../../functions/uname.h
|
|||
templates.o: ../../functions/upload.h ../../functions/uptime.h
|
||||
templates.o: ../../functions/who.h ../../functions/vim.h ../../core/log.h
|
||||
templates.o: ../../core/misc.h cache.h ../../core/dirs.h
|
||||
templates.o: ../../templates/miscspace.h ../../templates/templates.h
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* This file is a part of Winix
|
||||
* and is not publicly distributed
|
||||
*
|
||||
* Copyright (c) 2012, Tomasz Sowa
|
||||
* Copyright (c) 2012-2013, Tomasz Sowa
|
||||
* All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
@ -24,11 +24,12 @@ namespace Menu
|
|||
|
||||
struct MenuItem
|
||||
{
|
||||
long id; // item id
|
||||
long id; // item id
|
||||
std::wstring url;
|
||||
std::wstring subject;
|
||||
Item::Type type;
|
||||
int file_type;
|
||||
PT::Space meta;
|
||||
Item::Type type;
|
||||
int file_type;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* This file is a part of Winix
|
||||
* and is not publicly distributed
|
||||
*
|
||||
* Copyright (c) 2011-2012, Tomasz Sowa
|
||||
* Copyright (c) 2011-2013, Tomasz Sowa
|
||||
* All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
@ -85,6 +85,19 @@ void InvalidateCacheById(PluginInfo & info)
|
|||
|
||||
|
||||
|
||||
void ProcessRequest(PluginInfo & info)
|
||||
{
|
||||
if( info.cur->request->function == &info.functions->fun_reload )
|
||||
{
|
||||
if( info.cur->request->IsParam(L"menu") )
|
||||
{
|
||||
cache.Clear();
|
||||
log << log3 << "Menu: cache has been cleared" << logend;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void AddEzcFunctions(PluginInfo & info);
|
||||
|
||||
} // namespace
|
||||
|
@ -117,6 +130,7 @@ using namespace Menu;
|
|||
plugin.Assign(WINIX_FILE_PREPARE_TO_MOVE, InvalidateCacheByPointerParent);
|
||||
plugin.Assign(WINIX_FILE_MOVED, InvalidateCacheByPointerParent);
|
||||
plugin.Assign(WINIX_DIR_CONTENT_SORTED, InvalidateCacheByPointer);
|
||||
plugin.Assign(WINIX_PROCESS_REQUEST, ProcessRequest);
|
||||
|
||||
// !! IMPROVE ME
|
||||
// we need a WINIX_DIR_CHANGED message
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* This file is a part of Winix
|
||||
* and is not publicly distributed
|
||||
*
|
||||
* Copyright (c) 2011-2012, Tomasz Sowa
|
||||
* Copyright (c) 2011-2013, Tomasz Sowa
|
||||
* All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
@ -13,6 +13,7 @@
|
|||
#include "core/log.h"
|
||||
#include "core/misc.h"
|
||||
#include "cache.h"
|
||||
#include "templates/miscspace.h"
|
||||
|
||||
|
||||
#define WINIX_PL_MENU_PARAM_NONE 0
|
||||
|
@ -70,7 +71,7 @@ return WINIX_PL_MENU_PARAM_NONE;
|
|||
|
||||
|
||||
|
||||
void read_from_db(long dir_id, int param)
|
||||
void read_from_db(long dir_id, int param, bool with_meta)
|
||||
{
|
||||
iq.SetAll(false, false);
|
||||
iq.sel_subject = true;
|
||||
|
@ -78,6 +79,7 @@ void read_from_db(long dir_id, int param)
|
|||
iq.sel_sort_index = true;
|
||||
iq.sel_type = true;
|
||||
iq.sel_file = true;
|
||||
iq.sel_meta = with_meta;
|
||||
iq.WhereParentId(dir_id);
|
||||
|
||||
if( param == WINIX_PL_MENU_PARAM_IMAGES )
|
||||
|
@ -158,6 +160,7 @@ void copy_items(CacheItem & citem)
|
|||
menu_item.id = item_tab[i].id;
|
||||
menu_item.subject = item_tab[i].subject;
|
||||
menu_item.url = item_tab[i].url;
|
||||
menu_item.meta = item_tab[i].meta;
|
||||
menu_item.type = item_tab[i].type;
|
||||
menu_item.file_type = item_tab[i].file_type;
|
||||
|
||||
|
@ -167,13 +170,13 @@ void copy_items(CacheItem & citem)
|
|||
|
||||
|
||||
|
||||
void menu_dir_init(Info & i, long dir_id, int param)
|
||||
void menu_dir_init(Info & i, long dir_id, int param, bool with_meta)
|
||||
{
|
||||
CacheItem * citem = cache.Get(dir_id, param);
|
||||
|
||||
if( !citem )
|
||||
{
|
||||
read_from_db(dir_id, param);
|
||||
read_from_db(dir_id, param, with_meta);
|
||||
citem = cache.Insert(dir_id, param);
|
||||
copy_items(*citem);
|
||||
skip_mount_items(*citem);
|
||||
|
@ -186,13 +189,13 @@ void menu_dir_init(Info & i, long dir_id, int param)
|
|||
}
|
||||
|
||||
|
||||
void menu_dir_init(Info & i, const std::wstring & dir, int param)
|
||||
void menu_dir_init(Info & i, const std::wstring & dir, int param, bool with_meta)
|
||||
{
|
||||
Item * pdir = system->dirs.GetDir(dir);
|
||||
|
||||
if( pdir )
|
||||
{
|
||||
menu_dir_init(i, pdir->id, param);
|
||||
menu_dir_init(i, pdir->id, param, with_meta);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -205,13 +208,17 @@ void menu_dir_init(Info & i, const std::wstring & dir, int param)
|
|||
void menu_dir_init(Info & i)
|
||||
{
|
||||
int param = WINIX_PL_MENU_PARAM_NONE;
|
||||
bool with_meta = false;
|
||||
|
||||
if( i.params.size() >= 2 )
|
||||
param = string_to_param(i.params[1]);
|
||||
|
||||
if( i.params.size() >=3 && i.params[2] == L"withmeta" )
|
||||
with_meta = true;
|
||||
|
||||
if( i.params.empty() || i.params[0].empty() )
|
||||
{
|
||||
menu_dir_init(i, cur->request->dir_tab.back()->id, param);
|
||||
menu_dir_init(i, cur->request->dir_tab.back()->id, param, with_meta);
|
||||
}
|
||||
else
|
||||
if( !i.params.empty() )
|
||||
|
@ -223,10 +230,15 @@ void menu_dir_init(Info & i)
|
|||
StackItem * previous_sitem = reinterpret_cast<StackItem*>(stack->fun_data);
|
||||
|
||||
if( stack->iter < previous_sitem->citem->menu_items.size() )
|
||||
menu_dir_init(i, previous_sitem->citem->menu_items[stack->iter].id, param);
|
||||
menu_dir_init(i, previous_sitem->citem->menu_items[stack->iter].id, param, with_meta);
|
||||
}
|
||||
}
|
||||
else
|
||||
if( i.params[0] == L"this" )
|
||||
{
|
||||
menu_dir_init(i, cur->request->dir_tab.back()->id, param, with_meta);
|
||||
}
|
||||
else
|
||||
if( !i.params[0].empty() && i.params[0][0] != '/' )
|
||||
{
|
||||
log << log1 << "Menu: path for a menu should not be relative" << logend;
|
||||
|
@ -234,7 +246,7 @@ void menu_dir_init(Info & i)
|
|||
}
|
||||
else
|
||||
{
|
||||
menu_dir_init(i, i.params[0], param);
|
||||
menu_dir_init(i, i.params[0], param, with_meta);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -274,6 +286,13 @@ void menu_dir_tab(Info & i)
|
|||
}
|
||||
|
||||
|
||||
|
||||
void menu_dir_tab_index(Info & i)
|
||||
{
|
||||
i.out << stack->iter;
|
||||
}
|
||||
|
||||
|
||||
void menu_dir_tab_subject(Info & i)
|
||||
{
|
||||
if( stack->fun_data )
|
||||
|
@ -314,6 +333,66 @@ void menu_dir_tab_link(Info & i)
|
|||
}
|
||||
|
||||
|
||||
|
||||
void menu_dir_tab_meta_str(Info & i)
|
||||
{
|
||||
if( stack->fun_data )
|
||||
{
|
||||
StackItem * sitem = reinterpret_cast<StackItem*>(stack->fun_data);
|
||||
|
||||
if( stack->iter < sitem->citem->menu_items.size() )
|
||||
sitem->citem->menu_items[stack->iter].meta.Serialize(i.out, true, false);
|
||||
}
|
||||
}
|
||||
|
||||
void menu_dir_tab_meta(Info & i)
|
||||
{
|
||||
if( stack->fun_data )
|
||||
{
|
||||
StackItem * sitem = reinterpret_cast<StackItem*>(stack->fun_data);
|
||||
|
||||
if( stack->iter < sitem->citem->menu_items.size() )
|
||||
space(i, sitem->citem->menu_items[stack->iter].meta);
|
||||
}
|
||||
}
|
||||
|
||||
void menu_dir_tab_meta_tab(Info & i)
|
||||
{
|
||||
if( stack->fun_data )
|
||||
{
|
||||
StackItem * sitem = reinterpret_cast<StackItem*>(stack->fun_data);
|
||||
|
||||
if( stack->iter < sitem->citem->menu_items.size() )
|
||||
spaces_tab(i, sitem->citem->menu_items[stack->iter].meta);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void menu_dir_tab_meta_tab_value(Info & i)
|
||||
{
|
||||
if( stack->fun_data )
|
||||
{
|
||||
StackItem * sitem = reinterpret_cast<StackItem*>(stack->fun_data);
|
||||
|
||||
if( stack->iter < sitem->citem->menu_items.size() )
|
||||
spaces_tab_value(i, sitem->citem->menu_items[stack->iter].meta);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void menu_dir_tab_meta_tab_has_next(Info & i)
|
||||
{
|
||||
if( stack->fun_data )
|
||||
{
|
||||
StackItem * sitem = reinterpret_cast<StackItem*>(stack->fun_data);
|
||||
|
||||
if( stack->iter < sitem->citem->menu_items.size() )
|
||||
spaces_tab_has_next(i, sitem->citem->menu_items[stack->iter].meta);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void menu_dir_tab_is_dir(Info & i)
|
||||
{
|
||||
if( stack->fun_data )
|
||||
|
@ -428,9 +507,17 @@ void AddEzcFunctions(PluginInfo & info)
|
|||
EzcFun * fun = reinterpret_cast<EzcFun*>(info.p1);
|
||||
|
||||
fun->Insert("menu_dir_tab", menu_dir_tab);
|
||||
fun->Insert("menu_dir_tab_index", menu_dir_tab_index);
|
||||
fun->Insert("menu_dir_tab_subject", menu_dir_tab_subject);
|
||||
fun->Insert("menu_dir_tab_url", menu_dir_tab_url);
|
||||
fun->Insert("menu_dir_tab_link", menu_dir_tab_link);
|
||||
|
||||
fun->Insert("menu_dir_tab_meta_str", menu_dir_tab_meta_str);
|
||||
fun->Insert("menu_dir_tab_meta", menu_dir_tab_meta);
|
||||
fun->Insert("menu_dir_tab_meta_tab", menu_dir_tab_meta_tab);
|
||||
fun->Insert("menu_dir_tab_meta_tab_value", menu_dir_tab_meta_tab_value);
|
||||
fun->Insert("menu_dir_tab_meta_tab_has_next", menu_dir_tab_meta_tab_has_next);
|
||||
|
||||
fun->Insert("menu_dir_tab_is_dir", menu_dir_tab_is_dir);
|
||||
fun->Insert("menu_dir_tab_is_file", menu_dir_tab_is_file);
|
||||
fun->Insert("menu_dir_tab_is_symlink", menu_dir_tab_is_symlink);
|
||||
|
|
Loading…
Reference in New Issue