diff --git a/plugins/ticket/editticket.cpp b/plugins/ticket/editticket.cpp index 6f2b919..e8170a6 100755 --- a/plugins/ticket/editticket.cpp +++ b/plugins/ticket/editticket.cpp @@ -10,6 +10,8 @@ #include "editticket.h" #include "functions/functions.h" #include "sessiondata.h" +#include "core/plugin.h" +#include "pluginmsg.h" @@ -164,32 +166,7 @@ return new_space; } -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; - - 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() +bool EditTicket::CloseTicket() { PT::Space & ticket_space = cur->request->item.ameta.FindAddSpace(L"ticket"); ticket_space.Add(L"closed", true); @@ -198,32 +175,69 @@ void EditTicket::CloseTicket() thread_space.Add(L"closed", true); if( db->EditAdminMetaById(cur->request->item.ameta, cur->request->item.id) == WINIX_ERR_OK ) + { 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") ) { - CloseTicket(); + if( CloseTicket() ) + plugin.Call(WINIX_PL_TICKET_CLOSED, ticket_info->item, ticket_info->ticket); + ticket_info->MakeRedirectIfPossible(*cur->request->last_item); } else { - ticket_info->Clear(); - ticket_info->FindCurrentConf(); + ticket_info->ReadTicketParams(ticket, false, meta); + functions->ReadItem(item, Item::file); - Ticket & ticket = PrepareTicket(); - PT::Space & meta = PrepareSpace(); - ticket_info->ticket = &ticket; - ticket_info->item = &cur->request->item; + ticket_info->CopyTicketSpace(meta, item); - // copy meta info to display correctly new files - ticket_info->CopyTicketSpace(meta, cur->request->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::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 diff --git a/plugins/ticket/editticket.h b/plugins/ticket/editticket.h index 52df157..f5963dc 100755 --- a/plugins/ticket/editticket.h +++ b/plugins/ticket/editticket.h @@ -46,7 +46,7 @@ private: PT::Space & PrepareSpace(); void ChangeTicket(Ticket & ticket, Item & item); void Submit(Ticket & ticket, Item & item); - void CloseTicket(); + bool CloseTicket(); }; diff --git a/plugins/ticket/pluginmsg.h b/plugins/ticket/pluginmsg.h index 68b1bed..0a59845 100755 --- a/plugins/ticket/pluginmsg.h +++ b/plugins/ticket/pluginmsg.h @@ -38,6 +38,10 @@ #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