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:
Tomasz Sowa 2015-06-16 02:37:07 +00:00
parent f54df8d600
commit 632b49ab90
8 changed files with 34 additions and 16 deletions

View File

@ -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");
}
}

View File

@ -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);

View File

@ -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);

View File

@ -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

View File

@ -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();
}
}
}

View File

@ -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;
}

View File

@ -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;

View File

@ -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);