added: 'subject' winix function is using WINIX_FILE_CHANGED message now (when changing a file's subject)

added: 'postredirect' global parameter (it can be a param or post value)
       you can use this parameter in a html POST form
       after processing the POST request winix will make a redirect to the value



git-svn-id: svn://ttmath.org/publicrep/winix/trunk@881 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
Tomasz Sowa 2012-09-04 20:24:42 +00:00
parent 43b4075b16
commit 0c6ddc2218
34 changed files with 194 additions and 10 deletions

View File

@ -465,6 +465,25 @@ bool sent = false;
}
void App::CheckPostRedirect()
{
if( cur.request->method == Request::post )
{
if( cur.request->IsParam(L"postredirect") )
{
cur.request->redirect_to = cur.request->ParamValue(L"postredirect");
cur.request->redirect_type = 303;
}
else
if( cur.request->IsPostVar(L"postredirect") )
{
cur.request->redirect_to = cur.request->PostVar(L"postredirect");
cur.request->redirect_type = 303;
}
}
}
// zmienic nazwe np na ProcessRequest
// !! ta nazwa chyba juz zajeta...
void App::Make()
@ -494,6 +513,8 @@ void App::Make()
if( cur.request->status == WINIX_ERR_OK )
plugin.Call(WINIX_PROCESS_REQUEST);
CheckPostRedirect();
if( !cur.request->redirect_to.empty() )
return;

View File

@ -2,7 +2,7 @@
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2010-2011, Tomasz Sowa
* Copyright (c) 2010-2012, Tomasz Sowa
* All rights reserved.
*
*/
@ -130,6 +130,7 @@ private:
bool ShouldNotUseSSL();
bool CheckSSLcorrectness();
void SetLocale();
void CheckPostRedirect();
void MakePage();
void Make();
void SaveSessionsIfNeeded(); // !! wywalic do menagera sesji??

View File

@ -1439,6 +1439,12 @@ subject.o: ../core/ugcontainer.h ../core/lastcontainer.h ../core/mounts.h
subject.o: ../core/mountparser.h ../core/crypt.h ../core/users.h
subject.o: ../core/groups.h ../core/group.h ../core/loadavg.h ../core/image.h
subject.o: ../core/threadmanager.h ../core/timezones.h ../core/synchro.h
subject.o: ../core/plugin.h ../core/pluginmsg.h ../core/system.h
subject.o: ../core/sessionmanager.h ../core/sessioncontainer.h
subject.o: ../functions/functions.h ../templates/templates.h
subject.o: ../templates/patterncacher.h ../templates/indexpatterns.h
subject.o: ../templates/patterns.h ../templates/changepatterns.h
subject.o: ../templates/htmltextstream.h ../core/sessionmanager.h
template.o: template.h functionbase.h ../core/item.h
template.o: ../../pikotools/space/space.h ../../pikotools/textstream/types.h
template.o: ../../pikotools/date/date.h ../db/db.h ../db/dbbase.h

View File

@ -2,12 +2,13 @@
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2008-2010, Tomasz Sowa
* Copyright (c) 2008-2012, Tomasz Sowa
* All rights reserved.
*
*/
#include "subject.h"
#include "core/plugin.h"
namespace Fun
@ -48,6 +49,10 @@ void Subject::EditDirSubject()
cur->request->PostVar(L"subject", dir.subject);
db->EditSubjectById(dir, dir.id);
// !! IMPROVE ME
// we need something like WINIX_DIR_CHANGED message
//plugin.Call(WINIX______CHANGED, cur->request->dir_tab.back());
system->RedirectToLastDir();
}
@ -58,6 +63,8 @@ void Subject::EditFileSubject()
cur->request->PostVar(L"subject", cur->request->item.subject);
db->EditSubjectById(cur->request->item, cur->request->item.id);
plugin.Call(WINIX_FILE_CHANGED, &cur->request->item);
system->RedirectTo(cur->request->item);
}

View File

@ -25,6 +25,11 @@
<input type="checkbox" name="autoactivate" id="autoactivate"><label style="display: inline;" for="autoactivate">{adduser_auto_activate}</label>
</p>
[end]
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="[if-one user_logged]{adduser_submit}[else]{register_user_submit}[end]">
</fieldset>

View File

@ -7,18 +7,18 @@
<legend>{form_emacs_legend}</legend>
[if mount_type_is "cms"]
<p class="withnext">{title}:</p>
<p class="withnext" style="text-indent: 0;">{title}:</p>
<input class="edit" type="text" name="subject" value="[item_subject]">
<p class="withnext">{suggested_url}:</p>
<p class="withnext" style="text-indent: 0;">{suggested_url}:</p>
<input class="edit" type="text" name="url" value="[item_url]">
[end]
[if-any mount_type_is "thread" mount_thread_arg_is "subject"]
<p class="withnext">{title}:</p>
<p class="withnext" style="text-indent: 0;">{title}:</p>
<input class="edit" type="text" name="subject" value="[item_subject]">
<p class="withnext">{suggested_url}:</p>
<p class="withnext" style="text-indent: 0;">{suggested_url}:</p>
<input class="edit" type="text" name="url" value="[item_url]">
[end]
@ -39,14 +39,20 @@
[end]
[if-no user_logged]
<p class="withnext">{nick}:</p>
<p class="withnext" style="text-indent: 0;">{nick}:</p>
<input class="edit" type="text" name="guestname" value="[item_guest_name]">
<p class="withnext">{rebus_how_is_it} [rebus_question]?</p>
<p class="withnext" style="text-indent: 0;">{rebus_how_is_it} [rebus_question]?</p>
<input class="edit" type="text" name="rebus">
[end]
<input class="submit" type="submit" value="[if item_is]{change}[else]{add}[end]">
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
</fieldset>
</form>

View File

@ -23,6 +23,11 @@
<label><input type="checkbox" name="followsymlinks" checked="checked">{cp_follow_symlinks}</label>
[end]
</p>
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="{copy}">
</fieldset>

View File

@ -24,6 +24,10 @@
<p class="withnext">{rebus_how_is_it} [rebus_question]?</p>
<input class="edit" type="text" name="rebus">
[end]
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="{button_thread_submit}">
</fieldset>

View File

@ -113,6 +113,11 @@
[end]
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="[if item_is]{form_ticket_edit_submit}[else]{form_ticket_create_submit}[end]">
</fieldset>
</form>

View File

@ -11,6 +11,10 @@
<p>
<label><input class="" type="checkbox" name="makeredirect"[if dir_last_is_link_redirect] checked="checked"[end]>{default_make_redirect}</label>
</p>
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="{change}">
</fieldset>

View File

@ -22,6 +22,10 @@
<p class="withnext">{rebus_how_is_it} [rebus_question]?</p>
<input class="edit" type="text" name="rebus">
[end]
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="[if item_is]{change}[else]{add}[end]">
</fieldset>

View File

@ -22,6 +22,11 @@
<input type="hidden" name="changeuser">
<input class="submit" type="submit" value="{env_change_user}">
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
</fieldset>
</form>
@ -37,6 +42,10 @@
<textarea class="multitext" rows="30" cols="60" name="envvar">[if winix_function_param_is "a"][env_user_admin_env_str][else][env_user_env_str][end]</textarea>
<input type="hidden" name="userid" value="[env_user_id]">
<input class="submit" type="submit" value="{change}">
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
</fieldset>
</form>

View File

@ -13,6 +13,11 @@
<br><br>
<input type="submit" value="Export">
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
</fieldset>
</form>

View File

@ -22,6 +22,11 @@
<p>
<label><input class="" type="checkbox" name="makeredirect">{ln_make_redirect}</label>
</p>
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="{change}">
</fieldset>

View File

@ -19,6 +19,11 @@
<option value="[winix_locale_tab_id]" [is user_locale_id winix_locale_tab_id]selected="selected"[end]>[winix_locale_tab_name]</option>
[end]
</select>
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="{change}">
</fieldset>

View File

@ -11,6 +11,11 @@
<input class="editshort" type="password" name="password">
<label><input class="remember" type="checkbox" name="rememberme">{remember_me}</label>
<input class="submit" type="submit" value="{button_login}">
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
</fieldset>
</form>
[end]

View File

@ -7,6 +7,11 @@
<legend>{form_meta_legend}</legend>
<textarea class="multitext" rows="30" cols="60" name="itemmeta">[item_meta_str]</textarea>
<input class="submit" type="submit" value="{change}">
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
</fieldset>
</form>
[else]
@ -19,6 +24,11 @@
<legend>{form_meta_legend}</legend>
<textarea class="multitext" rows="30" cols="60" name="itemmeta">[dir_last_meta_str]</textarea>
<input class="submit" type="submit" value="{change}">
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
</fieldset>
</form>
[else]

View File

@ -10,6 +10,11 @@
<input class="edit" type="text" name="subject" value="">
<p class="withnext">{suggested_url}</p>
<input class="edit" type="text" name="url" value="">
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="{add}">
</fieldset>
</form>

View File

@ -18,6 +18,10 @@
[if-no item_is]
<label><input type="checkbox" name="c"[if winix_function_param_is "c"]checked="checked"[end]>{mv_only_content}</label>
[end]
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="{move}">
</fieldset>

View File

@ -48,6 +48,10 @@
<p class="withnext">{rebus_how_is_it} [rebus_question]?</p>
<input class="edit" type="text" name="rebus">
[end]
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="[if item_is]{change}[else]{add}[end]">
</fieldset>

View File

@ -22,6 +22,10 @@
<p class="withnext">{passwd_confirm_new_password}:</p>
<input class="edit" type="password" name="passwordconfirm" value="">
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="{passwd_submit}">
</fieldset>
</form>

View File

@ -39,6 +39,10 @@
[end]
</table>
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="{change}">
</fieldset>
@ -110,7 +114,12 @@
<label><input class="check" type="checkbox" name="changesubdirs">{priv_change_all}</label>
<label><input class="check" type="checkbox" name="changecurrentdir">{priv_change_current_dir}: [dir_without_slash]</label>
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="{change}">
</fieldset>
</form>

View File

@ -16,6 +16,11 @@
<input class="edit" type="password" name="passwordconfirm" value="">
<input class="submit" type="submit" value="{passwd_submit}">
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
</fieldset>
</form>

View File

@ -39,6 +39,11 @@
<p class="withnext">{rebus_how_is_it} [rebus_question]?</p>
<input class="edit" type="text" name="rebus">
[end]
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="{add}">
</fieldset>

View File

@ -30,6 +30,10 @@
<label><input type="checkbox" name="c" [if winix_function_param_is "c"]checked="checked"[end]>{rm_only_content}</label>
</p>
[end]
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="{rm_submit}">

View File

@ -19,6 +19,10 @@
<p>{rmuser_removecurrent}</p>
<input type="hidden" value="[user_id]">
[end]
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input type="submit" value="{rmuser_submit}">
</fieldset>

View File

@ -9,6 +9,11 @@
<p class="withnext">{sort_current_sortindex}:</p>
<input class="editshort" type="text" name="sortindex" value="[item_sort]">
<input class="submit" type="submit" value="{change}">
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
</div>
</form>
@ -27,6 +32,10 @@
[end]
</ul>
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="{change}">
</div>
</form>

View File

@ -6,8 +6,12 @@
<fieldset>
<legend>{subject_form_legend}</legend>
<p class="withnext">{title}</p>
<p class="withnext" style="text-indent: 0;">{title}</p>
<input class="edit" type="text" name="subject" value="[if-one item_is][item_subject][else][dir_last_subject][end]">
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="{change}">
</fieldset>

View File

@ -58,6 +58,10 @@
<option value="[template_tab_index]"[if-one template_tab_isdefault] selected[end]>[template_tab_file_name]</option>
[end]
</select>
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="{change}">
</fieldset>

View File

@ -19,6 +19,10 @@
<option value="[winix_tz_tab_id]" [is user_time_zone_id winix_tz_tab_id]selected="selected"[end]>UTC[winix_tz_tab_offset_hour_min] [winix_tz_tab_name]</option>
[end]
</select>
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="{change}">
</fieldset>

View File

@ -39,6 +39,10 @@
<p class="withnext">{rebus_how_is_it} [rebus_question]?</p>
<input class="edit" type="text" name="rebus">
[end]
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="[if item_is]{change}[else]{add}[end]">
</fieldset>

View File

@ -27,7 +27,7 @@
<h1>{upload_header}</h1>
[# The file upload form used as target for the file upload widget]
<form id="fileupload" action="[doc_base_url][dir]upload" method="POST" enctype="multipart/form-data">
<form id="fileupload" action="[doc_base_url][dir]upload" method="post" enctype="multipart/form-data">
[# The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload]
<div class="row fileupload-buttonbar">
<div class="span7">

View File

@ -41,6 +41,10 @@
<p class="withnext">{rebus_how_is_it} [rebus_question]?</p>
<input class="edit" type="text" name="rebus">
[end]
[if winix_function_param_is "postredirect"]
<input type="hidden" name="postredirect" value="[winix_function_param_value "postredirect"]">
[end]
<input class="submit" type="submit" value="[if item_is]{change}[else]{add}[end]">
</fieldset>

View File

@ -118,6 +118,10 @@ using namespace Menu;
plugin.Assign(WINIX_FILE_MOVED, InvalidateCacheByPointerParent);
plugin.Assign(WINIX_DIR_CONTENT_SORTED, InvalidateCacheByPointer);
// !! IMPROVE ME
// we need a WINIX_DIR_CHANGED message
// for example when changing the subject of a directory
info.p1 = (void*)(plugin_name);
}