Author: ajaquith
Date: Sat Feb 20 17:57:09 2010
New Revision: 912162

URL: http://svn.apache.org/viewvc?rev=912162&view=rev
Log:
Removed posteditor. Moved Stripes AJAX function to jspwiki-common.js. Light 
cleanup of unneeded functions in prefs/edit JS.

Removed:
    incubator/jspwiki/trunk/src/WebContent/scripts/posteditor.js
    incubator/jspwiki/trunk/src/WebContent/scripts/stripes-support.js
Modified:
    incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-common.js
    incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-edit.js
    incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-prefs.js

Modified: incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-common.js
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-common.js?rev=912162&r1=912161&r2=912162&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-common.js (original)
+++ incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-common.js Sat Feb 20 
17:57:09 2010
@@ -764,33 +764,12 @@
        },
 
        /*
-       Function: SubmitOnce
-               Disable all form buttons to avoid double submits.
-               At the start, overwrite any {{onbeforeunload}} handler 
installed by
-               eg. the WikiEdit class.
-
-       Fixme:
-               Replaced by stripes in v3.0 ??
-       */
-       submitOnce: function(form){
-
-               window.onbeforeunload = null; /* regular exit of this page -- 
see jspwiki-edit.js */
-               (function(){
-                       $A(form.elements).each(function(e){
-                               if( (/submit|button/i).test(e.type)) e.disabled 
= true;
-                       });
-               }).delay(10);
-
-               return true;
-       },
-
-       /*
        Function: submitUpload
                Support for the upload progressbar.
                Attached to the attachment upload submit form.
 
        Returns:
-               Returns via the submitOnce() function.
+               Returns via the form.submit().
        */
        submitUpload: function(form, progress){
 
@@ -805,7 +784,7 @@
                                if(!result.code) 
bar.getFirst().setStyle('width',result+'%').set('html',result+'%');
                        }]
                );
-               return self.submitOnce(form);
+               return form.submit();
        },
 
        /*
@@ -1447,20 +1426,9 @@
                $('searchTarget').set('html','('+qv+') :');
                $('searchSpin').show();
 
-               Wiki.jsonrpc('search.findPages', [qv,20], function(result){
-                               $('searchSpin').hide();
-                               if(!result.list) return;
-                               var frag = new Element('ul');
-
-                               result.list.each(function(el){
-                                       new Element('li').adopt(
-                                               new 
Element('a',{'href':Wiki.toUrl(el.map.page) }).set('html',el.map.page),
-                                               new 
Element('span',{'class':'small'}).set('html'," ("+el.map.score+")")
-                                       ).inject(frag);
-                               });
-                               $('searchOutput').empty().adopt(frag);
-                               Wiki.locatemenu( $('query'), $('searchboxMenu') 
);
-               });
+    Stripes.submitFormEvent('searchForm', 'quickSearch', 'searchOutput', null);
+               $('searchSpin').hide();
+               Wiki.locatemenu( $('query'), $('searchboxMenu') );
        } ,
 
        /* navigate to url, after smart pagename handling */
@@ -2942,6 +2910,60 @@
 
 });
 
+/*
+Class: Stripes
+       The main javascript class to support AJAX calls to Stripes ActionBeans.
+*/
+var Stripes = {
+  /*
+  Function: submitFormEvent
+    Submits a form to its parent ActionBean URL, using a supplied event.
+    
+  Arguments:
+    formName -  ID of the form to submit. It will be submitted to the
+                action URL supplied by the form element itself. We assume
+                this is a Stripes ActionBean URL; for example, this URL
+                is likely to be generated by a s:form tag.
+    event -     the Stripes event handler to invoke. Its name should match
+                an event named in a @HandlesEvent method annotation. The
+                event method must return an EventResolution, the response
+                for which will be eval'ed and be assigned to the variable
+                'eventResponse.' See 
org.apache.wiki.ui.stripes.EventResolution.
+    divTarget - if the 'eventResponse' variable returned by the AJAX call
+                has an 'html' property whose boolean value is true,
+                the results will be injected into this target div.
+    callback -  a callback function to invoke. The 'eventResponse' variable
+                will be passed to this function. It contains the response
+                object, which can be any primitive type, an array, map
+                or anything supported by 
net.sourceforge.stripes.ajax.JavaScriptBuilder.
+                It also contains a list of validation errors messages and
+                the 'html' boolean property.
+  */
+  submitFormEvent: function( formName, event, divTarget, callback ){
+    var form = $(formName);
+    var url = form.action;
+    var params = event + "=&" + form.toQueryString();
+    var request = new Request( {
+      url: url,
+      data: params,
+      method: 'post',
+      evalResponse: true,
+      onComplete: function(response) {
+        // If HTML response, put results into the div
+        if (eventResponse.html) {
+          $(divTarget).empty();
+          $(divTarget).set('html',eventResponse.results);
+        }
+        // Call the callback function
+        if (callback) {
+          callback(eventResponse);
+        }
+      }
+    });
+    request.send();
+  }
+}
+
 
 /*
 Global: domready

Modified: incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-edit.js
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-edit.js?rev=912162&r1=912161&r2=912162&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-edit.js (original)
+++ incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-edit.js Sat Feb 20 
17:57:09 2010
@@ -57,7 +57,8 @@
                //should always run first, but seems not guaranteed on ie so 
let's do this for sure
                Wiki.initialize();
 
-               var txta = $('wikiText'),
+    // Snip-editing is deliberately disabled, for now, because it causes 
duplication in post contents.
+               var txta = $('wikiTexts'),
                        self = this,
                        snipe,
                        config,
@@ -159,28 +160,6 @@
                });
                configFn();
 
-               /*
-                       Initialize the preview layout buttons: tile-vert or 
tile-horz
-               */
-               tileBtns = $$('.tHORZ','.tVERT');
-               tileFn = function(tile){
-
-                       prefs.set('previewLayout',tile);
-                       tileBtns.each(function(el){
-                               el[( el.get('text')==tile ) ? 'hide': 'show']();
-                       });
-
-                       tile = (tile=='tile-vert') ? 'size1of1':'size1of2';
-                       $('editor-content').getChildren().each(function(el){
-                               
el.removeClass('size1of1').removeClass('size1of2').addClass(tile);
-                       });
-               };
-               tileBtns.each( function(el){
-                       el.addEvent( 'click',function(){ 
tileFn(this.get('text')); });
-               });
-               tileFn( prefs.get('previewLayout')||'tile-vert' );
-
-
                //add a localized hover title to the resize drag-bar
                //CHECK !v1.2.3.
                document.getElement('.editor-container 
.resize-bar').set('title', 'edit.resize'.localize());
@@ -189,8 +168,6 @@
                // cursor = -2 (all) or 0..n (section# - first section is 0)
                tocCursor = location.search.match(/[&?]section=(\d+)/);
                snipe.selectTocItem( tocCursor ? tocCursor[1].toInt() : -2 );
-
-               self.initializePreview( snipe );
        },
 
        /*
@@ -525,75 +502,7 @@
                };
 
                return result;
-       },
-
-       /*
-       Function: initializePreview
-               Initialize textarea preview functionality.
-               When #autopreview checkbox is checked, bind the
-               [refreshPreview] handler to the {{preview}} event
-               of the textarea.
-
-               Finally, send periodically the preview event.
-       */
-       initializePreview: function( snipe ){
-
-               var autopreview = 'autopreview',
-                       self = this,
-                       prefs = Wiki.prefs,
-                       refreshFn = self.refreshPreview.bind(self);
-
-               $(autopreview)
-                       .set('checked', prefs.get(autopreview) || false)
-                       .addEvent('click', function(){
-                               prefs.set(autopreview, this.checked);
-                               refreshFn();
-                       })
-                       .fireEvent('click');
-
-               refreshFn.periodical(3000);
-               $(snipe).addEvent('change',refreshFn);
-    },
-
-
-       /*
-       Function: refreshPreview
-               Make AJAX call to the backend to convert the contents of the 
textarea
-               (wiki markup) to HTML.
-
-       */
-       refreshPreview: function(){
-
-       var     self = this,
-               snipe = self.snipEditor,
-               text = snipe.get('textarea').getValue(),
-               page = Wiki.PageName,
-               preview = $('livepreview'),
-               spin = $('previewspin');
-
-
-               if( !$('autopreview').checked ){
-
-                       if( self.previewcache ){
-                               preview.empty();
-                               self.previewcache = null;
-                       }
-
-               } else if( self.previewcache != text ){
-
-                       self.previewcache = text;
-
-                       new Request.HTML({
-                               url:Wiki.BaseUrl + 
"/Edit.action?ajaxPreview=&page=" + page,
-                               data: 'wikiText=' + encodeURIComponent( text ),
-                               update: preview,
-                               onRequest: function(){ spin.show(); },
-                               onComplete: function(){ spin.hide(); 
Wiki.renderPage(preview, page); }
-                       }).send();
-
-               }
        }
-
 }
 
 /*
@@ -608,7 +517,7 @@
 Class: SnipEditor
        The SnipEditor class enriches a TEXTAREA object with many capabilities,
        including tab-autocompletion, auto-indentation, smart typing pairs, 
suggestion
-       popups, live-preview, textarea resizing, toggle buttons etc.
+       popups, textarea resizing, toggle buttons etc.
        The configuration of the snip-editor is done through Snippet objects.
        See [getSnippet] for more info on how to define snippets.
 

Modified: incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-prefs.js
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-prefs.js?rev=912162&r1=912161&r2=912162&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-prefs.js (original)
+++ incubator/jspwiki/trunk/src/WebContent/scripts/jspwiki-prefs.js Sat Feb 20 
17:57:09 2010
@@ -74,10 +74,6 @@
                        for( var el in prefs ){
                                if( p = $(el) ) wikiprefs.set( prefs[el], 
p.get('value') );
                        };
-
-                       //CHECK: covered by stripes ?
-                       //Wiki.submitOnce(this);
-
                });
 
                /*
@@ -97,111 +93,3 @@
 
 }
 window.addEvent('domready', WikiPreferences.initialize );
-
-// refactor me
-var WikiGroup =
-{
-       MembersID   : "membersfield",
-       GroupID     : "groupfield",
-       NewGroupID  : "newgroup",
-       GroupInfoID : "groupinfo",
-       CancelBtnID : "cancelButton",
-       SaveBtnID   : "saveButton",
-       CreateBtnID : "createButton",
-       DeleteBtnID : "deleteButton",
-       groups      : { "(new)": { members:"", groupInfo:"" } },
-       cursor      : null,
-       isEditOn    : false,
-       isCreateOn  : false,
-
-       putGroup: function(group, members, groupInfo, isSelected){
-               this.groups[group] = { members: members, groupInfo: groupInfo };
-
-               var g = $("grouptemplate");
-                       gg = 
g.clone().removeProperty('id').set('html',group).inject(g.getParent()).show();
-
-               if(isSelected || !this.cursor) this.onMouseOverGroup(gg);
-       } ,
-
-       onMouseOverGroup: function(node){
-               if(this.isEditOn) return;
-               this.setCursor(node);
-
-               var g = this.groups[ (node.id == this.GroupID) ? "(new)": 
node.innerHTML ];
-               $(this.MembersID).value = g.members;
-               $(this.GroupInfoID).innerHTML = g.groupInfo;
-       } ,
-
-       setCursor: function(node){
-               if(this.cursor) $(this.cursor).removeClass('cursor');
-               this.cursor = $(node).addClass('cursor');
-       } ,
-
-       //create new group: focus on input field
-       onClickNew: function(){
-               if(this.isEditOn) return;
-
-               this.isCreateOn = true;
-               $(this.MembersID).value = "";
-               this.toggle();
-       } ,
-
-       //toggle edit status of Group Editor
-       toggle: function(){
-               this.isEditOn = !this.isEditOn; //toggle
-
-               $(this.MembersID  ).disabled =
-               $(this.SaveBtnID  ).disabled =
-               $(this.CreateBtnID).disabled =
-               $(this.CancelBtnID).disabled = !this.isEditOn;
-               var del = $(this.DeleteBtnID);
-               if(del) del.disabled = this.isCreateOn || !this.isEditOn;
-
-               if(this.isCreateOn) { $(this.CreateBtnID).toggle(); 
$(this.SaveBtnID).toggle() };
-
-               var newGrp  = $(this.NewGroupID),
-                       members = $(this.MembersID);
-
-               if(this.isEditOn){
-                       members.getParent().addClass("cursor");
-
-                       newGrp.disabled = !this.isCreateOn;
-                       if(this.isCreateOn) { newGrp.focus(); } else { 
members.focus(); }
-               } else {
-                       members.getParent().removeClass("cursor");
-
-                       if(this.isCreateOn){
-                               this.isCreateOn = false;
-                               newGrp.value = newGrp.defaultValue;
-                               members.value = "";
-                       }
-                       newGrp.blur();
-                       members.blur();
-                       newGrp.disabled = false;
-               }
-       } ,
-
-       // submit form to create new group
-       onSubmitNew: function(form, actionURL){
-               var newGrp = $(this.NewGroupID);
-               if(newGrp.value == newGrp.defaultValue){
-                       alert("group.validName".localize());
-                       newGrp.focus();
-               } else this.onSubmit(form, actionURL);
-       } ,
-
-       // submit form: fill out actual group and members info
-       onSubmit: function(form, actionURL){
-               if(! this.cursor) return false;
-               var g = (this.cursor.id == this.GroupID) ? 
$(this.NewGroupID).value: this.cursor.innerHTML;
-
-               /* form.action = actionURL; -- doesn't work in IE */
-               form.setAttribute("action", actionURL) ;
-               form.group.value = g;
-               form.members.value = $(this.MembersID).value;
-               form.action.value = "save";
-
-               Wiki.submitOnce(form);
-               form.submit();
-       }
-}
\ No newline at end of file


Reply via email to