fixed: meta and admin meta information were not saved in memory (in system.dirs)
when 'meta' winix function was used added: to DbItemsQuery sort_index_asc and sort_index_date different sort type can be made by 'index' and by 'date' git-svn-id: svn://ttmath.org/publicrep/winix/trunk@1013 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
parent
f54df8d600
commit
632b49ab90
18
db/db.cpp
18
db/db.cpp
|
@ -869,6 +869,15 @@ void Db::GetItemsQueryWhere(const DbItemQuery & iq, DbTextStream & query)
|
|||
}
|
||||
|
||||
|
||||
void Db::GetItemsQueryOrder(bool sort_asc)
|
||||
{
|
||||
if( sort_asc )
|
||||
query << R(" asc");
|
||||
else
|
||||
query << R(" desc");
|
||||
}
|
||||
|
||||
|
||||
void Db::GetItemsQueryOrder(const DbItemQuery & iq, DbTextStream & query)
|
||||
{
|
||||
if( iq.sel_sort_index || iq.sel_date )
|
||||
|
@ -876,7 +885,10 @@ void Db::GetItemsQueryOrder(const DbItemQuery & iq, DbTextStream & query)
|
|||
query << R(" order by");
|
||||
|
||||
if( iq.sel_sort_index )
|
||||
{
|
||||
query << R(" sort_index");
|
||||
GetItemsQueryOrder(iq.sort_index_asc);
|
||||
}
|
||||
|
||||
if( iq.sel_date )
|
||||
{
|
||||
|
@ -884,12 +896,8 @@ void Db::GetItemsQueryOrder(const DbItemQuery & iq, DbTextStream & query)
|
|||
query << R(",");
|
||||
|
||||
query << R(" item.date_creation");
|
||||
GetItemsQueryOrder(iq.sort_date_asc);
|
||||
}
|
||||
|
||||
if( iq.sort_asc )
|
||||
query << R(" asc");
|
||||
else
|
||||
query << R(" desc");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
1
db/db.h
1
db/db.h
|
@ -159,6 +159,7 @@ protected:
|
|||
void GetItemsQuerySelect(const DbItemQuery & iq, DbTextStream & query, bool skip_other_sel);
|
||||
void GetItemsQueryJoin(const DbItemQuery & iq, DbTextStream & query);
|
||||
void GetItemsQueryWhere(const DbItemQuery & iq, DbTextStream & query);
|
||||
void GetItemsQueryOrder(bool sort_asc);
|
||||
void GetItemsQueryOrder(const DbItemQuery & iq, DbTextStream & query);
|
||||
void GetItemsQueryLimit(const DbItemQuery & iq, DbTextStream & query);
|
||||
PGresult * GetItemsQuery(const DbItemQuery & iq, DbTextStream & query, bool skip_other_sel = false);
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* Copyright (c) 2010-2014, Tomasz Sowa
|
||||
* Copyright (c) 2010-2015, Tomasz Sowa
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -49,7 +49,8 @@ DbItemQuery::DbItemQuery()
|
|||
|
||||
void DbItemQuery::Clear()
|
||||
{
|
||||
sort_asc = true;
|
||||
sort_index_asc = true;
|
||||
sort_date_asc = true;
|
||||
|
||||
SetAll(true, false);
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* Copyright (c) 2010-2014, Tomasz Sowa
|
||||
* Copyright (c) 2010-2015, Tomasz Sowa
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -75,7 +75,8 @@ struct DbItemQuery
|
|||
bool type_equal;
|
||||
int file_type;
|
||||
bool file_type_equal; // if true means file_type should be equal
|
||||
bool sort_asc;
|
||||
bool sort_index_asc;
|
||||
bool sort_date_asc;
|
||||
|
||||
const std::vector<long> * id_tab; // != 0 if WhereIdIn was used
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* Copyright (c) 2011-2014, Tomasz Sowa
|
||||
* Copyright (c) 2011-2015, Tomasz Sowa
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -133,7 +133,12 @@ void Meta::ChangeAdminMeta()
|
|||
const std::wstring & meta_str = cur->request->PostVar(L"itemmeta");
|
||||
|
||||
if( EditAdminMeta(cur->request->last_item->id, meta_str, true) )
|
||||
{
|
||||
if( cur->request->last_item->type == Item::dir )
|
||||
cur->request->last_item->ameta = space;
|
||||
|
||||
system->RedirectToLastItem();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -145,7 +150,12 @@ void Meta::ChangeMeta()
|
|||
const std::wstring & meta_str = cur->request->PostVar(L"itemmeta");
|
||||
|
||||
if( EditMeta(cur->request->last_item->id, meta_str, true) )
|
||||
{
|
||||
if( cur->request->last_item->type == Item::dir )
|
||||
cur->request->last_item->meta = space;
|
||||
|
||||
system->RedirectToLastItem();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -72,12 +72,8 @@ void ExportThread::SetBaseUrl(const std::wstring & url)
|
|||
|
||||
void ExportThread::AddMessage(const Message & message)
|
||||
{
|
||||
log << log1 << "export thread: a" << logsave << logend;
|
||||
|
||||
message_tab.insert(message_tab.end(), message);
|
||||
WakeUpThread();
|
||||
|
||||
log << log1 << "export thread: b" << logsave << logend;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* Copyright (c) 2011-2014, Tomasz Sowa
|
||||
* Copyright (c) 2011-2015, Tomasz Sowa
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -106,6 +106,7 @@ void read_from_db(long dir_id, int param, bool with_meta)
|
|||
iq.sel_subject = true;
|
||||
iq.sel_url = true;
|
||||
iq.sel_sort_index = true;
|
||||
iq.sort_date_asc = false; // !! FIXED ME we need an option for this
|
||||
iq.sel_type = true;
|
||||
iq.sel_file = true;
|
||||
iq.sel_meta = with_meta;
|
||||
|
|
|
@ -86,7 +86,7 @@ void FunThread::PrepareThread(long file_id)
|
|||
DbItemQuery iq;
|
||||
|
||||
if( system->mounts.pmount->IsArg(thread_info->mount_par_thread, L"sort_desc") )
|
||||
iq.sort_asc = false;
|
||||
iq.sort_date_asc = false; // sort_index_asc we are ignoring
|
||||
|
||||
iq.WhereIdIn(id_tab);
|
||||
iq.WhereType(Item::file);
|
||||
|
|
Loading…
Reference in New Issue