removed: ezn patterns for rawcontent and ajaxcontent:
index_rawcontent.html, index_ajaxcontent.html
now we have out_streams in Request and some special
keyword in ezc templates for sending content to the
specified streams
changed: the way how winix answers to the client's browsers:
info from Request class:
winix answer send to the client's browser
|
|
depending on send_bin_stream
-------------------------------------------------
| |
text answer binary answer
| |
depending on return_json sending out_bin_stream
------------------------------------
| |
normal request ajax request
| |
sending out_streams[0] depending on return_info_only
------------------------------------------------------
| |
generating JSON object from: generating JSON object only from info
out_streams and info, e.g.: e.g.:
{ { info object serialized here }
"stream_1": "some html content",
"stream_2": "some other html content",
"info": { info object serialized here }
}
note that out_streams[0] is not sent
in JSON answers
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@937 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
@@ -464,9 +464,9 @@ void Rm::Clear()
|
||||
void Rm::CreateJSON(bool status)
|
||||
{
|
||||
if( status )
|
||||
cur->request->page << "[true]\n";
|
||||
cur->request->out_streams[0] << "[true]\n";
|
||||
else
|
||||
cur->request->page << "[false]\n";
|
||||
cur->request->out_streams[0] << "[false]\n";
|
||||
|
||||
cur->request->page_generated = true;
|
||||
cur->request->use_html_filter = false;
|
||||
|
||||
@@ -29,6 +29,12 @@ Upload::Upload()
|
||||
}
|
||||
|
||||
|
||||
void Upload::Init()
|
||||
{
|
||||
json_serializer.TreatAsTable(L"infospace");
|
||||
json_serializer.TreatAsNumeric(L"size");
|
||||
}
|
||||
|
||||
|
||||
bool Upload::HasAccess(const Item & item)
|
||||
{
|
||||
@@ -188,7 +194,7 @@ void Upload::UploadMulti()
|
||||
}
|
||||
|
||||
if( is_jquery_upload )
|
||||
CreateJSON();
|
||||
CreateAnswer();
|
||||
else
|
||||
system->RedirectToLastDir();
|
||||
}
|
||||
@@ -224,7 +230,7 @@ void Upload::UploadSingle()
|
||||
post_file.tmp_filename.clear();
|
||||
|
||||
if( is_jquery_upload )
|
||||
CreateJSON();
|
||||
CreateAnswer();
|
||||
else
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
system->RedirectTo(cur->request->item, L"/cat");
|
||||
@@ -255,17 +261,38 @@ void Upload::MakePost()
|
||||
|
||||
|
||||
|
||||
void Upload::CreateJSON()
|
||||
void Upload::CreateAnswer()
|
||||
{
|
||||
size_t loc = TemplatesFunctions::locale.GetCurLang();
|
||||
Ezc::Pattern * pat = TemplatesFunctions::patterns.Get(template_index, loc);
|
||||
Request & req = *cur->request;
|
||||
req.info.name = L"infospace"; // 'infospace' will be serialized to an array
|
||||
|
||||
if( pat )
|
||||
for(size_t i=0 ; i<req.item_tab.size() ; ++i)
|
||||
{
|
||||
templates->Generate(*pat);
|
||||
cur->request->page_generated = true;
|
||||
cur->request->use_html_filter = false;
|
||||
PT::Space & file = req.info.AddSpace(L"");
|
||||
|
||||
file.Add(L"name", req.item_tab[i].url);
|
||||
file.Add(L"size", req.item_tab[i].file_size);
|
||||
|
||||
std::wstring & link = file.Add(L"url", L"");
|
||||
system->CreateItemLink(req.item_tab[i], link);
|
||||
|
||||
std::wstring & del_url = file.Add(L"delete_url", link);
|
||||
del_url += L"/rm/jquery_upload";
|
||||
|
||||
file.Add(L"delete_type", L"POST");
|
||||
|
||||
if( req.item_tab[i].file_type == WINIX_ITEM_FILETYPE_IMAGE )
|
||||
{
|
||||
std::wstring & thumb = file.Add(L"thumbnail_url", link);
|
||||
|
||||
if( req.item_tab[i].has_thumb )
|
||||
thumb += L"/-/thumb";
|
||||
}
|
||||
}
|
||||
|
||||
cur->request->return_json = true;
|
||||
cur->request->return_info_only = true;
|
||||
cur->request->info_serializer = &json_serializer;
|
||||
}
|
||||
|
||||
|
||||
@@ -280,7 +307,7 @@ void Upload::MakeGet()
|
||||
|
||||
db->GetItems(cur->request->item_tab, query);
|
||||
|
||||
CreateJSON();
|
||||
CreateAnswer();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* This file is a part of Winix
|
||||
* and is not publicly distributed
|
||||
*
|
||||
* Copyright (c) 2010, Tomasz Sowa
|
||||
* Copyright (c) 2010-2013, Tomasz Sowa
|
||||
* All rights reserved.
|
||||
*
|
||||
*/
|
||||
@@ -11,7 +11,7 @@
|
||||
#define headerfile_winix_functions_upload
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
#include "space/spacetojson.h"
|
||||
|
||||
|
||||
namespace Fun
|
||||
@@ -35,6 +35,13 @@ private:
|
||||
DbItemQuery query;
|
||||
bool is_jquery_upload;
|
||||
|
||||
// this object is used in App at the end of a request
|
||||
// for serializing Request::info to JSON
|
||||
// this will make a problem if in the future we'll use multithread requests
|
||||
PT::SpaceToJSON json_serializer;
|
||||
|
||||
void Init();
|
||||
|
||||
bool HasAccess(const Item & item);
|
||||
bool UploadSaveStaticFile(const Item & item, const std::wstring & tmp_filename);
|
||||
bool FunUploadCheckAbuse();
|
||||
@@ -42,7 +49,7 @@ private:
|
||||
void UploadSingle();
|
||||
void ResizeImage(Item & item);
|
||||
void CreateThumb(Item & item);
|
||||
void CreateJSON();
|
||||
void CreateAnswer();
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user