changed: in editticket: closing ticket is better to do via POST request

added:   a new message sent by editticket when closing a ticket:
         #define WINIX_PL_TICKET_CLOSED                                 4105
         // a ticket has been closed (closed button pressed)
         // in p1 you have a pointer to the Item struct
         // in p2 you have a pointer to the Ticket struct





git-svn-id: svn://ttmath.org/publicrep/winix/trunk@909 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
Tomasz Sowa 2012-11-05 23:13:52 +00:00
parent 32750a7d50
commit 825694c880
3 changed files with 55 additions and 37 deletions

View File

@ -10,6 +10,8 @@
#include "editticket.h" #include "editticket.h"
#include "functions/functions.h" #include "functions/functions.h"
#include "sessiondata.h" #include "sessiondata.h"
#include "core/plugin.h"
#include "pluginmsg.h"
@ -164,32 +166,7 @@ return new_space;
} }
void EditTicket::MakePost() bool EditTicket::CloseTicket()
{
ticket_info->Clear();
ticket_info->FindCurrentConf();
Ticket & ticket = PrepareTicket();
PT::Space & meta = PrepareSpace();
Item & item = cur->request->item;
old_url = item.url;
ticket_info->ticket = &ticket;
ticket_info->item = &item;
ticket_info->ReadTicketParams(ticket, false, meta);
functions->ReadItem(item, Item::file);
ticket_info->CopyTicketSpace(meta, item);
if( !cur->request->IsPostVar(L"fileuploadsubmit") )
{
Submit(ticket, item);
ticket_info->ticket = ticket_info->GetEmptyTicket(); // ticket was deleted by Submit() method -- RemoveTmpTicket() was used
}
}
void EditTicket::CloseTicket()
{ {
PT::Space & ticket_space = cur->request->item.ameta.FindAddSpace(L"ticket"); PT::Space & ticket_space = cur->request->item.ameta.FindAddSpace(L"ticket");
ticket_space.Add(L"closed", true); ticket_space.Add(L"closed", true);
@ -198,32 +175,69 @@ void EditTicket::CloseTicket()
thread_space.Add(L"closed", true); thread_space.Add(L"closed", true);
if( db->EditAdminMetaById(cur->request->item.ameta, cur->request->item.id) == WINIX_ERR_OK ) if( db->EditAdminMetaById(cur->request->item.ameta, cur->request->item.id) == WINIX_ERR_OK )
{
log << log3 << "EditTicket: closing ticket" << logend; log << log3 << "EditTicket: closing ticket" << logend;
return true;
}
return false;
} }
void EditTicket::MakeGet()
void EditTicket::MakePost()
{ {
ticket_info->Clear();
ticket_info->FindCurrentConf();
Ticket & ticket = PrepareTicket();
PT::Space & meta = PrepareSpace();
Item & item = cur->request->item;
old_url = item.url;
ticket_info->ticket = &ticket;
ticket_info->item = &item;
if( cur->request->IsParam(L"close") ) if( cur->request->IsParam(L"close") )
{ {
CloseTicket(); if( CloseTicket() )
plugin.Call(WINIX_PL_TICKET_CLOSED, ticket_info->item, ticket_info->ticket);
ticket_info->MakeRedirectIfPossible(*cur->request->last_item); ticket_info->MakeRedirectIfPossible(*cur->request->last_item);
} }
else else
{ {
ticket_info->Clear(); ticket_info->ReadTicketParams(ticket, false, meta);
ticket_info->FindCurrentConf(); functions->ReadItem(item, Item::file);
Ticket & ticket = PrepareTicket(); ticket_info->CopyTicketSpace(meta, item);
PT::Space & meta = PrepareSpace();
ticket_info->ticket = &ticket;
ticket_info->item = &cur->request->item;
// copy meta info to display correctly new files if( !cur->request->IsPostVar(L"fileuploadsubmit") )
ticket_info->CopyTicketSpace(meta, cur->request->item); {
Submit(ticket, item);
ticket_info->ticket = ticket_info->GetEmptyTicket(); // ticket was deleted by Submit() method -- RemoveTmpTicket() was used
}
} }
} }
void EditTicket::MakeGet()
{
Ticket & ticket = PrepareTicket();
PT::Space & meta = PrepareSpace();
ticket_info->ticket = &ticket;
ticket_info->item = &cur->request->item;
ticket_info->Clear();
ticket_info->FindCurrentConf();
// copy meta info to display correctly new files
ticket_info->CopyTicketSpace(meta, cur->request->item);
}
} // namespace } // namespace

View File

@ -46,7 +46,7 @@ private:
PT::Space & PrepareSpace(); PT::Space & PrepareSpace();
void ChangeTicket(Ticket & ticket, Item & item); void ChangeTicket(Ticket & ticket, Item & item);
void Submit(Ticket & ticket, Item & item); void Submit(Ticket & ticket, Item & item);
void CloseTicket(); bool CloseTicket();
}; };

View File

@ -38,6 +38,10 @@
#define WINIX_PL_TICKET_TICKETS_TAB_IS_NEXT 4104 #define WINIX_PL_TICKET_TICKETS_TAB_IS_NEXT 4104
// a ticket has been closed (closed button pressed)
// in p1 you have a pointer to the Item struct
// in p2 you have a pointer to the Ticket struct
#define WINIX_PL_TICKET_CLOSED 4105
#endif #endif