[pLog-svn] r4145 - in plog/branches/lifetype-1.1.2: js/ui
templates/admin
Oscar Renalias
oscar at renalias.net
Fri Oct 20 21:52:15 GMT 2006
If there's any of you there using a character set other than
iso-8859-1 or utf-8 could you give this a try? I'd like to verify
that this is working for all sorts of character sets.
No need to download and install LT 1.1.2, just create a new user at
http://devel.lifetype.net/register.php and test it there.
Thanks.
On 21 Oct 2006, at 00:05, oscar at devel.lifetype.net wrote:
> Author: oscar
> Date: 2006-10-20 21:05:51 +0000 (Fri, 20 Oct 2006)
> New Revision: 4145
>
> Modified:
> plog/branches/lifetype-1.1.2/js/ui/common.js
> plog/branches/lifetype-1.1.2/templates/admin/editpost.template
> plog/branches/lifetype-1.1.2/templates/admin/newpost.template
> Log:
> no more clumsy code to implement the post preview feature and no
> more problems with locale. I finally managed to find a way to
> submit a form to a window created via window.open() so we can now
> safely let the browswer do all the encoding of characters and
> forget about our hacks. This seems to work fine with IE 6, Firefox
> 2.0 and Safari 2.0 and it should fix issue 1066 (http://
> bugs.lifetype.net/view.php?id=1066)
>
>
> Modified: plog/branches/lifetype-1.1.2/js/ui/common.js
> ===================================================================
> --- plog/branches/lifetype-1.1.2/js/ui/common.js 2006-10-19
> 11:08:45 UTC (rev 4144)
> +++ plog/branches/lifetype-1.1.2/js/ui/common.js 2006-10-20
> 21:05:51 UTC (rev 4145)
> @@ -239,154 +239,7 @@
> }
> }
>
> -function getPostEditFormElements( formId )
> -{
> - var formData = '';
> -
> - form = document.getElementById( formId );
> -
> - for(i = 0; i < form.elements.length; i++ ) {
> - itemName = form.elements[i].name;
> - itemValue = form.elements[i].value;
> -
> - if( itemName != "op" ) {
> - // we don't want to send more than one "op" parameter... do we?
> - if( itemName == "postCategories[]" ) {
> - // we need to have a special case for this one because it's a
> list that
> - // allows multiple selection... only using the "value"
> attribute will
> - // return one of the items and we would like to have them all
> - for (var j = 0; j < form.elements[i].options.length; j++) {
> - if (form.elements[i].options[j].selected)
> - formData = formData + itemName + "=" + form.elements
> [i].options[j].value + "&";
> - }
> - }
> - else if( itemName == "postText" && htmlAreaEnabled ) {
> - if ( blogLocale == "UTF-8" ) {
> - formData = formData + itemName + "=" + encodeURIComponent
> (tinyMCE.getContent('postText')) + "&";
> - } else {
> - formData = formData + itemName + "=" + escape
> (tinyMCE.getContent('postText')) + "&";
> - }
> - }
> - else if( itemName == "postExtendedText" && htmlAreaEnabled ) {
> - if ( blogLocale == "UTF-8" ) {
> - formData = formData + itemName + "=" + encodeURIComponent
> (tinyMCE.getContent('postExtendedText')) + "&";
> - } else {
> - formData = formData + itemName + "=" + escape
> (tinyMCE.getContent('postExtendedText')) + "&";
> - }
> - }
> - else {
> - // for all other elements, normal handling
> - if ( blogLocale == "UTF-8" ) {
> - formData = formData + itemName + "=" + encodeURIComponent
> (itemValue) + "&";
> - } else {
> - formData = formData + itemName + "=" + escape(itemValue) +
> "&";
> - }
> - }
> - }
> - }
> -
> - return formData;
> -}
> -
> /**
> - * opens a new window where the post preview will be shown
> - */
> -function previewNewPost( htmlAreaEnabled )
> -{
> - previewPost( "newPost", htmlAreaEnabled );
> -}
> -
> -function previewUpdatedPost( htmlAreaEnabled )
> -{
> - previewPost( "editPost", htmlAreaEnabled );
> -}
> -
> -function previewPost_old( formId )
> -{
> - form = document.getElementById( formId );
> -
> - // we will only open this window if there is at least one
> category selected, otherwise it
> - // will cause problems!
> - if( submitNewPost( form )) {
> - url = "?op=previewPost&" + getPostEditFormElements( formId );
> - //window.alert(url);
> - postPreview = window.open
> ( url,'Preview','scrollbars=yes,resizable=yes,toolbar=no');
> - }
> -
> - return true;
> -}
> -
> -function previewPost( formId, htmlAreaEnabled )
> -{
> - form = document.getElementById( formId )
> -
> - if( submitNewPost( form )) {
> - preview = window.open( '', '',
> 'scrollbars=yes,resizable=yes,toolbar=no' );
> - preview.focus();
> -
> - // write the contents as a form with hidden fields
> - preview.document.open();
> - preview.document.write( '<html>' +
> - '<meta http-equiv="content-type"
> content="text/html;charset=' + blogLocale + '" />' +
> - '<body><div style="display:none">' +
> - '<form name="previewForm"
> method="post" action="admin.php" accept-charset="' + blogLocale +
> '">' +
> - '<input type="hidden" name="op"
> value="previewPost">' );
> - // post text, slug and topic... if we put everything in
> textareas, we avoid the need to escape things
> - // also we should keep in mind whether we're using
> htmlarea or not, since then we should use a different method
> - // to get the value out of the textareas
> - if( htmlAreaEnabled ) {
> - postText = tinyMCE.getContent('postText');
> - postExtendedText = tinyMCE.getContent('postExtendedText');
> - }
> - else {
> - postText = form.postText.value;
> - postExtendedText = form.postExtendedText.value;
> - }
> - preview.document.write( '<textarea name="postText">' +
> postText + '</textarea>' +
> - '<textarea name="postTopic">' +
> form.postTopic.value + '</textarea>' +
> - '<textarea
> name="postExtendedText">' + postExtendedText + '</textarea>' +
> - '<input type="hidden"
> name="postSlug" value="' + form.postSlug.value + '" />' );
> - // post date and time
> - preview.document.write( '<input type="hidden"
> name="postDateTime" value="' + form.postDateTime.value + '" /> ' );
> -
> - // article categories
> - preview.document.write( '<select name="postCategories[]"
> multiple="multiple">' );
> - for( var i = 0; i < form.postCategories.options.length; i+
> + ) {
> - if( form.postCategories.options[i].selected )
> - preview.document.write( '<option
> selected="selected" value="' + form.postCategories.options[i].value
> + '">test</option>' );
> - }
> - preview.document.write( '</select>' );
> - // custom fields -- since we don't know their exact names
> and amount, we need to loop through the whole form to find them!
> - for(var i = 0; i < form.elements.length; i++ ) {
> - var itemName = form.elements[i].name;
> - if( itemName ) {
> - if( itemName.substr(0,11) == "customField" ) {
> - if( form.elements[i].type == "checkbox" )
> - preview.document.write( '<input
> type="hidden" name="' + itemName + '" value="' + form.elements
> [i].value + '" />' );
> - else
> - preview.document.write( '<textarea name="'
> + itemName + '">' + form.elements[i].value + '</textarea>' );
> - }
> - }
> - }
> -
> - // footer
> - preview.document.write( '</form></div>' +
> - '<b>Loading preview, please
> wait...</b>' +
> - '</body></html>' );
> - preview.document.close();
> -
> - // and submit the form
> - preview.document.previewForm.submit();
> - }
> -}
> -
> -/*****
> - *
> - * functions for dealing with the "edit blog" screen
> - *
> - *****/
> -
> -/**
> * generic function for moving elements from one list to another!
> */
> function moveElement(srcList, dstList)
>
> Modified: plog/branches/lifetype-1.1.2/templates/admin/
> editpost.template
> ===================================================================
> --- plog/branches/lifetype-1.1.2/templates/admin/editpost.template
> 2006-10-19 11:08:45 UTC (rev 4144)
> +++ plog/branches/lifetype-1.1.2/templates/admin/editpost.template
> 2006-10-20 21:05:51 UTC (rev 4145)
> @@ -22,10 +22,29 @@
> var msgSaving = "{$locale->tr("saving_message")}";
> var msgShowOptionPanel = "{$locale->tr("show_option_panel")}";
> var msgHideOptionPanel = "{$locale->tr("hide_option_panel")}";
> + var preview = false;
>
> {include file="$admintemplatepath/calendarstuff.template"}
> +
> +{literal}
> +
> +function selectOperation( t )
> +{
> + if( preview ) {
> + document.editPost.op.value="previewPost";
> + window.open("", t, "scrollbars=yes,resizable=yes,toolbar=no" );
> + return true;
> + }
> + else {
> + document.editPost.op.value="updatePost";
> + document.editPost.target="";
> + document.editPost.action="admin.php";
> + return true;
> + }
> +}
> +{/literal}
> </script>
> - <form name="editPost" id="editPost" action="admin.php"
> method="post">
> + <form name="editPost" id="editPost" method="post"
> onSubmit="return selectOperation(this.target);" target="admin">
> <fieldset class="inputField">
> <legend>{$locale->tr("editPost")}</legend>
>
> @@ -159,8 +178,8 @@
> </div>
> </fieldset>
> <div class="buttons">
> - <input type="button" name="previewPost" value="{$locale->tr
> ("preview")}" onclick="javascript:previewUpdatedPost
> (htmlAreaEnabled)" />
> - <input type="submit" name="updatePost" value="{$locale->tr
> ("update")}"/>
> + <input type="submit" name="previewPost" value="{$locale->tr
> ("preview")}" onClick="preview=true" />
> + <input type="submit" name="updatePost" value="{$locale->tr
> ("update")}" onClick="preview=false"/>
> <input type="hidden" name="op" value="updatePost"/>
> <input type="hidden" name="postId" id="postId"
> value="{$postId}"/>
> </div>
>
> Modified: plog/branches/lifetype-1.1.2/templates/admin/
> newpost.template
> ===================================================================
> --- plog/branches/lifetype-1.1.2/templates/admin/newpost.template
> 2006-10-19 11:08:45 UTC (rev 4144)
> +++ plog/branches/lifetype-1.1.2/templates/admin/newpost.template
> 2006-10-20 21:05:51 UTC (rev 4145)
> @@ -34,16 +34,35 @@
>
> var todayDay = '{$today->getDay()}';
> var todayMonth = '{$today->getMonth()}';
> - var todayYear = '{$today->getYear()}';
> + var todayYear = '{$today->getYear()}';
>
> + // this needs to be pre-initialized
> + var preview = false;
> +
> {include file="$admintemplatepath/calendarstuff.template"}
> -
> - </script>
>
> - <form name="newPost" id="newPost" action="admin.php" method="post">
> +{literal}
> +
> +function selectOperation( t )
> +{
> + if( preview ) {
> + document.newPost.op.value="previewPost";
> + window.open("", t, "scrollbars=yes,resizable=yes,toolbar=no" );
> + return true;
> + }
> + else {
> + document.newPost.op.value="addPost";
> + document.newPost.target="";
> + document.newPost.action="admin.php";
> + return true;
> + }
> +}
> +{/literal}
> +</script>
> +
> + <form name="newPost" id="newPost" method="post" onSubmit="return
> selectOperation(this.target);" target="admin">
> <fieldset class="inputField">
> <legend>{$locale->tr("newPost")}</legend>
> -
> <div class="optionIcon">
> <a id="optionIconLink" href="#" title="{$locale->tr
> ("hide_option_panel")}" onclick="switchOptionPanel()">{$locale->tr
> ("hide_option_panel")}</a>
> </div>
> @@ -192,10 +211,10 @@
> {if $browser->has_feature("xmlhttpreq")}
> <input type="button" name="saveDraftAndContinue" value="{$locale-
> >tr("save_draft_and_continue")}"
> onclick="javascript:saveDraftArticleAjax()" />
> {/if}
> - <input type="button" name="previewPost" value="{$locale->tr
> ("preview")}" onclick="javascript:previewNewPost(htmlAreaEnabled)" />
> - <input type="submit" name="addPost" value="{$locale->tr
> ("add_post")}" />
> + <input type="submit" name="previewPost" value="{$locale->tr
> ("preview")}" onClick="preview=true"/>
> + <input type="submit" name="addPost" value="{$locale->tr
> ("add_post")}" onClick="preview=false" />
> <input type="hidden" name="isDraft" value="" />
> - <input type="hidden" name="op" value="addPost"/>
> + <input type="hidden" name="op" value="addPost" />
> <input type="hidden" name="postId" id="postId" value="{$postId}" />
> </div>
> </form>
>
> _______________________________________________
> pLog-svn mailing list
> pLog-svn at devel.lifetype.net
> http://devel.lifetype.net/mailman/listinfo/plog-svn
>
More information about the pLog-svn
mailing list