added: issues ticket system

added functions: ticket, createticket, editticket
         (there is no 'rm' function working for tickets yet)
changed: mount parser and mount points
         now we have more parameters (arguments in parameters)
some refactoring in functions 'emacs' and 'mkdir'



git-svn-id: svn://ttmath.org/publicrep/cmslu/trunk@554 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2010-01-25 04:52:17 +00:00
parent 356e93914b
commit 89daf6489d
48 changed files with 2856 additions and 874 deletions

View File

@@ -15,6 +15,8 @@
#include "../core/data.h"
bool Content::FunCreateThreadCheckAccess()
{
if( !request.CanCreateThread() )
@@ -28,6 +30,7 @@ return true;
}
bool Content::FunCreateThreadCheckAbuse()
{
if( !CheckRebus() )
@@ -55,49 +58,74 @@ return true;
}
void Content::ReadThread(Thread & thread)
{
thread.parent_id = request.dir_table.back()->id;
}
void Content::AddThread()
{
request.thread.dir_id = request.dir_table.back()->id;
request.thread.closed = false;
request.thread.items = 1;
request.thread.last_item = request.item; // set by PostFunEmacsAdd()
request.session->done_status = db.AddThread(request.thread);
}
void Content::PostFunCreateThreadLogAndRedirect()
{
if( request.session->done_status == Error::ok )
{
request.session->done = Done::added_thread;
log << log2 << "Content: added a new thread" << logend;
RedirectToLastDir();
}
else
{
log << log1 << "Content: problem with adding a new thread, error code:"
<< request.session->done_status << logend;
}
}
void Content::PostFunCreateThread()
{
if( !FunCreateThreadCheckAccess() )
return;
ReadItem(request.item, Item::dir);
ReadThread(request.thread);
request.item.privileges = 0777; // !! tymczasowo 777 aby wszyscy mogli wysylac posty
if( !FunCreateThreadCheckAbuse() )
{
request.PostVar("url", request.item.url);
request.PostVar("subject", request.item.subject);
request.PostVar("content", request.item.content);
SetContentType();
SetUser(request.item);
ReadItemContentWithType(request.item); // for correctly displaying the form
return;
}
request.post_table.insert( std::make_pair(std::string("url"), std::string()) ); // !! tymczasowo, zrobic aby mkdir i emacs nie rzucaly wyjatkiem gdy nie ma url zdefiniowanego
request.thread.parent_id = request.dir_table.back()->id;
PostFunMkdir(true, 0777); // !! tymczasowo 777 aby wszyscy mogli wysylac posty
Mkdir(request.item, true);
if( request.session->done_status == Error::ok )
{
PostFunEmacs();
ReadItemContentWithType(request.item);
request.item.type = Item::file;
request.item.privileges = 0644; // !! tymczasowo
request.item.parent_id = request.dir_table.back()->id;
PostFunEmacsAdd();
if( request.session->done_status == Error::ok )
{
request.thread.dir_id = request.dir_table.back()->id;
request.thread.closed = false;
request.thread.items = 1;
request.thread.last_item = request.item; // set by PostFunEmacs()
request.session->done_status = db.AddThread(request.thread);
}
if( request.session->done_status == Error::ok )
{
request.session->done = Done::added_thread;
log << log2 << "Content: added a new thread" << logend;
RedirectTo(*request.dir_table.back());
}
AddThread();
}
PostFunCreateThreadLogAndRedirect();
}