You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by br...@apache.org on 2015/07/11 22:47:04 UTC
svn commit: r1690406 - in /jspwiki/trunk: ./
jspwiki-war/src/main/config/wro/ jspwiki-war/src/main/java/org/apache/wiki/
jspwiki-war/src/main/scripts/behaviors/
jspwiki-war/src/main/scripts/moo-extend/
jspwiki-war/src/main/scripts/wiki-edit/ jspwiki-wa...
Author: brushed
Date: Sat Jul 11 20:47:04 2015
New Revision: 1690406
URL: http://svn.apache.org/r1690406
Log:
2.10.2-svn-25 -- more fixes for the Haddock Template
* [JSPWIKI-896] Haddock template – user preferences are not saved.
* [JSPWIKI-518] Saving after editing a section will return you to that section.
* [JSPWIKI-433] Allow back button for TAB keys.
Modified:
jspwiki/trunk/ChangeLog
jspwiki/trunk/jspwiki-war/src/main/config/wro/wro-haddock.xml
jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/Release.java
jspwiki/trunk/jspwiki-war/src/main/scripts/behaviors/Tabs.js
jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/Accesskey.js
jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/Element.Extend.js
jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/String.Extend.js
jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/Textarea.js
jspwiki/trunk/jspwiki-war/src/main/scripts/wiki-edit/Wiki.Snips.js
jspwiki/trunk/jspwiki-war/src/main/scripts/wiki/Prefs.js
jspwiki/trunk/jspwiki-war/src/main/scripts/wiki/Wiki.js
jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/Header.jsp
jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/PageTab.jsp
jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/PreferencesTab.jsp
Modified: jspwiki/trunk/ChangeLog
URL: http://svn.apache.org/viewvc/jspwiki/trunk/ChangeLog?rev=1690406&r1=1690405&r2=1690406&view=diff
==============================================================================
--- jspwiki/trunk/ChangeLog (original)
+++ jspwiki/trunk/ChangeLog Sat Jul 11 20:47:04 2015
@@ -1,3 +1,25 @@
+2015-07-12 Dirk Frederickx (brushed AT apache DOT org)
+
+ * 2.10.2-svn-25
+
+ * [JSPWIKI-896] Haddock template â user preferences are not saved.
+ haddock-pref.js was not properly included into the build, due to lowercase
+ issue in wro-haddock.xml.
+
+ * [JSPWIKI-518] Saving after editing a section will return you to that section.
+ Fixed missing commits on wiki.js. Should work now.
+
+ * Fixed issue with Accesskey
+
+ * [JSPWIKI-433] Allow back button for TAB keys.
+ It is now also possible to click a link to a hidden pane of a tabbed section
+ (eg from the Table Of Contents) to automatically open that TAB pane.
+
+ * Added a "title" attribute to the pagename in the header. In case a very long
+ pagename is truncated (with ellipsis ...) you can still see the full
+ pagename when you hover the mouse over the pagename.
+
+
2015-07-09 Juan Pablo Santos (juanpablo AT apache DOT org)
* 2.10.2-svn-24
Modified: jspwiki/trunk/jspwiki-war/src/main/config/wro/wro-haddock.xml
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/config/wro/wro-haddock.xml?rev=1690406&r1=1690405&r2=1690406&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/config/wro/wro-haddock.xml (original)
+++ jspwiki/trunk/jspwiki-war/src/main/config/wro/wro-haddock.xml Sat Jul 11 20:47:04 2015
@@ -106,7 +106,7 @@
</group>
<group name="haddock-prefs">
- <js>/scripts/wiki/prefs.js</js>
+ <js>/scripts/wiki/Prefs.js</js>
<!--<js>/scripts/wiki/group.js</js>-->
</group>
Modified: jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/Release.java
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/Release.java?rev=1690406&r1=1690405&r2=1690406&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/Release.java (original)
+++ jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/Release.java Sat Jul 11 20:47:04 2015
@@ -72,7 +72,7 @@ public final class Release {
* <p>
* If the build identifier is empty, it is not added.
*/
- public static final String BUILD = "24";
+ public static final String BUILD = "25";
/**
* This is the generic version string you should use when printing out the version. It is of
Modified: jspwiki/trunk/jspwiki-war/src/main/scripts/behaviors/Tabs.js
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/scripts/behaviors/Tabs.js?rev=1690406&r1=1690405&r2=1690406&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/scripts/behaviors/Tabs.js (original)
+++ jspwiki/trunk/jspwiki-war/src/main/scripts/behaviors/Tabs.js Sat Jul 11 20:47:04 2015
@@ -96,9 +96,9 @@ var Tab = new Class({
items.push("li", [
"a", {
- id: String.uniqueID(),
- text: this.getName( pane ),
- events: { click: this.show}
+ //id: String.uniqueID(),
+ text: this.getName( pane )
+ //events: { click: this.show }
}
]);
}
@@ -107,12 +107,13 @@ var Tab = new Class({
items[0] += ".active";
- [this.options.nav, {}, items]
-// [this.options.nav, {events: {"click:relay(a)": this.show}}, items]
+ [this.options.nav, {events: {"click:relay(a)": this.show}}, items]
.slick()
.inject(container, "before");
- panes.addClass("tab-pane")[0].addClass("active");
+ panes.addEvent("popstate", this.popstate )
+ .addClass("tab-pane")[0].addClass("active");
+
container.addClass("tab-content");
}
@@ -167,26 +168,33 @@ var Tab = new Class({
/*
Click-handler to toggle the visibilities of the tab panes.
*/
- show: function( event ){
+ show: function( ){
var active = "active",
nav = this.getParent("ul"),
index = nav.getElements("a").indexOf(this),
- tabpane;
-
+ panes = nav.getNext();
- nav.getChildren().removeClass(active)[index].addClass(active);
+ nav.getChildren().removeClass( active )[ index ].addClass( active );
+ panes.getChildren().removeClass( active )[ index ].addClass( active ).id.setHash();
- tabpane = nav.getNext().getChildren().removeClass(active)[index].addClass( active );
+ },
- if( event ){
+ /*
+ Popstate handler triggered when the #hash is changed of a tabpane
+ */
+ popstate: function( ){
- event.stop();
+ var active = "active",
+ panes = this.getParent(),
+ nav = panes.getPrevious(),
+ index = this.getAllPrevious().length;
- }
+ //console.log("popstate event", this.id, index );
+ nav.getChildren().removeClass( active )[ index ].addClass( active );
+ panes.getChildren().removeClass( active )[ index ].addClass( active );
}
-
});
Modified: jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/Accesskey.js
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/Accesskey.js?rev=1690406&r1=1690405&r2=1690406&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/Accesskey.js (original)
+++ jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/Accesskey.js Sat Jul 11 20:47:04 2015
@@ -44,20 +44,21 @@ Example:
function Accesskey(element){
- var accesskey = 'accesskey',
- key = element.get(accesskey),
- title = element.get('title');
+ var accesskey = "accesskey",
+ key = element.get( accesskey ).slice(0,1),
+ title = element.get( "title" );
+
+ if( key && !element.getElement( "span." + accesskey ) ){
- if( key && !element.getElement('span.'+accesskey) ){
element.set({
html: element.get('html').replace(
- RegExp( '('+key+')', 'i'),
- "<span class='"+accesskey+"'>$1</span>"
+ RegExp( "^([^<]*)(" + key + ")", "i" ),
+ "$1<span class='" + accesskey + "'>$2</span>"
)
});
- if(title){ element.set('title', title + ' ['+key+']'); }
+ if(title){ element.set( "title", title + " [" + key + "]" ); }
//console.log("ACCESSKEY ::",key, element.get('text'), element.get('title') );
Modified: jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/Element.Extend.js
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/Element.Extend.js?rev=1690406&r1=1690405&r2=1690406&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/Element.Extend.js (original)
+++ jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/Element.Extend.js Sat Jul 11 20:47:04 2015
@@ -337,7 +337,10 @@ console.log(message);
if( type == "checkbox" ){ //checkbox.get-value = returns "on" on some browsers, T/F on others
- return ("input[type=checkbox]" + (self.defaultChecked?":checked":"")).slick().get("value");
+ //console.log("pipo", self.get("value"), self.value, self.checked, self.defaultChecked);
+ //console.log("input[type=checkbox]" + (self.defaultChecked ? ":checked" : "")).slick().get("value") );
+ //return ("input[type=checkbox]" + (self.defaultChecked ? ":checked" : "")).slick().get("value");
+ return self.defaultChecked;
}
Modified: jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/String.Extend.js
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/String.Extend.js?rev=1690406&r1=1690405&r2=1690406&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/String.Extend.js (original)
+++ jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/String.Extend.js Sat Jul 11 20:47:04 2015
@@ -118,6 +118,39 @@ String.implement({
},
+
+ /*
+ Function: setHash
+ Set HASH without page jump
+
+ Example:
+ > "here is a new hash".setHash();
+ */
+ setHash:function( ){
+
+ if( history.pushState ){
+
+ //history.pushState( state-object, title-ffs, "#" + hash );
+ history.pushState( null, "", "#" + this);
+
+ }
+
+ else {
+
+ var el = $( this ),
+ id = el && el.id;
+
+ el && el.removeAttribute( id );
+
+ location.hash = "#" + this ;
+
+ el && el.setAttribute("id", id);
+
+ }
+
+ },
+
+
/*
Function: xsubs (extended Substitute)
Equal to substitute(), but also supports anonymous arguments.
Modified: jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/Textarea.js
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/Textarea.js?rev=1690406&r1=1690405&r2=1690406&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/Textarea.js (original)
+++ jspwiki/trunk/jspwiki-war/src/main/scripts/moo-extend/Textarea.js Sat Jul 11 20:47:04 2015
@@ -36,8 +36,6 @@ var Textarea = new Class({
Implements: [Options, Events],
- //options: { onChange:function(e){} );
-
initialize: function(el, options){
var self = this,
Modified: jspwiki/trunk/jspwiki-war/src/main/scripts/wiki-edit/Wiki.Snips.js
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/scripts/wiki-edit/Wiki.Snips.js?rev=1690406&r1=1690405&r2=1690406&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/scripts/wiki-edit/Wiki.Snips.js (original)
+++ jspwiki/trunk/jspwiki-war/src/main/scripts/wiki-edit/Wiki.Snips.js Sat Jul 11 20:47:04 2015
@@ -613,7 +613,7 @@ Wiki.Snips = {
plugin: [ Dialog.Selection, {
caption: "Plugin",
body: {
- "ALLOW permission principal ": "Page Access Rights",
+ "ALLOW permission principal ": "Page Access Rights <span class='icon-unlock-alt' />",
"SET name='value'":"Set a Wiki variable",
"$varname":"Get a Wiki variable",
"If name='value' page='pagename' exists='true' contains='regexp'\n\nbody\n":"IF plugin",
@@ -660,10 +660,10 @@ Wiki.Snips = {
selectInline: [Dialog.Selection, {
cssClass: ".dialog-horizontal",
body:{
- "__bold__":"bold",
- "''italic''":"italic",
- "{{mono}}":"mono",
- "[link]":"link"
+ "__bold__":"<b>bold</b>",
+ "''italic''":"<i>italic</i>",
+ "{{mono}}":"<tt>mono</tt>",
+ "[description|{link}|options]":"<span class='icon-link'/>"
}
}]
},
Modified: jspwiki/trunk/jspwiki-war/src/main/scripts/wiki/Prefs.js
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/scripts/wiki/Prefs.js?rev=1690406&r1=1690405&r2=1690406&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/scripts/wiki/Prefs.js (original)
+++ jspwiki/trunk/jspwiki-war/src/main/scripts/wiki/Prefs.js Sat Jul 11 20:47:04 2015
@@ -33,38 +33,43 @@ Javascript routines to support JSPWiki U
*/
!function(wiki){
- var datapref = "[data-pref]"; //data preference elements
+ var datapref = "*[data-pref]"; //data preference elements
+
+ function getValue( el ){
+ return (el.match("[type=checkbox]") ? el.checked : el.value );
+ }
function windowUnload( onbeforeunload ){
window.onbeforeunload = onbeforeunload || function(){};
}
- wiki.once("#setCookie", function(form){
+ wiki.add("#setCookie", function(form){
windowUnload( function(){
- if( form.getElements( datapref ).some(function(el){
+ if( form.getElements( datapref ).some( function(el){
- //a checkbox.get("value") returns "on" when checked;
- //so getDefaultValue() should also return "on"
- return (el.get("value") != el.getDefaultValue());
+ return ( getValue(el) != el.getDefaultValue() );
}) ){ return "prefs.areyousure".localize(); }
+
} );
form.addEvent("submit", function(){
this.getElements( datapref ).each( function(el){
- wiki.prefs.set( el.get( datapref ), el.get("value") );
+ //console.log( el.get( "data-pref" ), el.value, el.getDefaultValue(),getValue(el) );
+ wiki.prefs.set( el.get( "data-pref" ), getValue(el) );
});
+
windowUnload();
});
})
- .once("#clearCookie", function(form){
+ .add("#clearCookie", function(form){
form.addEvent("submit", function(){
Modified: jspwiki/trunk/jspwiki-war/src/main/scripts/wiki/Wiki.js
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/scripts/wiki/Wiki.js?rev=1690406&r1=1690405&r2=1690406&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/scripts/wiki/Wiki.js (original)
+++ jspwiki/trunk/jspwiki-war/src/main/scripts/wiki/Wiki.js Sat Jul 11 20:47:04 2015
@@ -164,7 +164,12 @@ var Wiki = {
});
- window.addEvent( "domready", wiki.domready.bind(wiki) );
+
+
+ window.addEvents({
+ popstate: wiki.popstate,
+ domready: wiki.domready.bind(wiki)
+ });
},
@@ -192,14 +197,59 @@ var Wiki = {
wiki.addEditLinks( wiki.toUrl( wiki.PageName, true ) );
}
- wiki.srcollTo( ( document.referrer.match( /\§ion=(\d+)$/ ) || [-1])[0] );
+ //console.log( "section", document.referrer, document.referrer.match( /\§ion=(\d+)$/ ) );
+ wiki.srcollTo( ( document.referrer.match( /\§ion=(\d+)$/ ) || [,-1])[1] );
wiki.update(); // initialize all registered behaviors
- //FIXME: -- check bootstrap router concept, or History class
- //wiki.parseHash.periodical(500);
wiki.autofocus();
+ //on page-load, also read the #hash and fire popstate events
+ wiki.popstate();
+
+
+ },
+
+ /*
+ Function: popstate
+ When pressing the back-button, the "popstate" event is fired.
+
+ Behaviors (such as Tabs or Accordions) can push the ID of their
+ visible content on the window.location hash.
+ This ID can be retrieved when the back-button is pressed.
+
+ The popstate function will fire a internal 'popstate' event
+ on the target DOM element.
+
+ When clicking a link inside a hidden content (tab, accordion), the
+ popstate event is 'bubbled' up the DOM tree.
+
+ */
+ popstate: function(){
+
+ var target = $(location.hash.slice(1)),
+ events,
+ popstate = "popstate";
+
+ console.log( popstate, location.hash, target );
+
+ //only send popstate events to targets within the main page; eg not sidebar
+ if( target && target.getParent(".page") ){
+
+ while( !target.hasClass("page") ){
+
+ events = target.retrieve("events"); //mootools specific
+
+ if( events && events[ popstate ] ){
+
+ target.fireEvent( popstate );
+
+ }
+
+ target = target.getParent();
+
+ }
+ }
},
autofocus: function(){
@@ -279,6 +329,7 @@ var Wiki = {
if( element ){
pos = element.getPosition();
+ //console.log("SCROLL TO ", element,pos );
window.scrollTo(pos.x, pos.y);
}
@@ -321,42 +372,6 @@ var Wiki = {
},
/*
- Function: parseHash
- Periodic validation of #hash to ensure hidden screen sections are displayed.
- (eg tabs, accordions, ...)
- FIXME:
- Add handling of BACK button for tabs ??
- Use concept of ROUTER from backbone ??
- */
- parseHash: function(){
-
- var h = location.hash;
-
- if( this.url == location.href ){ return; }
- this.url = location.href;
- if( !h /*|| h===""*/ ){ return; }
- h = $( h.slice(1) );
-/*
- //if( h.isVisible() ) return;
- //arr=this.getParents(...); //tabs, accordion, pills, collapsible, ...
- while( typeOf( h ) == "element" ){
- if( h.hasClass("hidetab") ){
- TabbedSection.click.apply($("menu-" + h.id));
- } else if( h.hasClass("tab") ){
- // accordion -- need to find accordion toggle object
- h.fireEvent("onShow");
- } else if( !h.isVisible() ){
- //alert("not visible"+el.id);
- //fixme need to find the correct toggler
- el.show(); //eg collapsedBoxes: fixme
- }
- h = h.getParent();
- }
- location = location.href; // now jump to the #hash
-*/
- },
-
- /*
Function: addEditLinks
Add to each Section title (h2/h3/h4) a quick edit link.
FFS: should better move server side
Modified: jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/Header.jsp
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/Header.jsp?rev=1690406&r1=1690405&r2=1690406&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/Header.jsp (original)
+++ jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/Header.jsp Sat Jul 11 20:47:04 2015
@@ -50,7 +50,7 @@
</div>
- <div class="pagename">
+ <div class="pagename" title="<wiki:PageName />">
<wiki:CheckRequestContext context='view'><wiki:PageName /></wiki:CheckRequestContext>
<wiki:CheckRequestContext context='!view'><wiki:Link><wiki:PageName/></wiki:Link></wiki:CheckRequestContext>
</div>
Modified: jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/PageTab.jsp
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/PageTab.jsp?rev=1690406&r1=1690405&r2=1690406&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/PageTab.jsp (original)
+++ jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/PageTab.jsp Sat Jul 11 20:47:04 2015
@@ -112,9 +112,9 @@
<wiki:NoSuchPage>
<%-- FIXME: Should also note when a wrong version has been fetched. --%>
<%-- FIXME: Should add .createpage class to the EditLink, to color red. Not possible with wiki:EditLink --%>
- <div class="information" >
+ <div class="error" >
<fmt:message key="common.nopage">
- <fmt:param><wiki:EditLink><fmt:message key="common.createit"/></wiki:EditLink></fmt:param>
+ <fmt:param><a class="createpage" href="<wiki:EditLink format='url'/>"><fmt:message key="common.createit"/></a></fmt:param>
</fmt:message>
</div>
</wiki:NoSuchPage>
\ No newline at end of file
Modified: jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/PreferencesTab.jsp
URL: http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/PreferencesTab.jsp?rev=1690406&r1=1690405&r2=1690406&view=diff
==============================================================================
--- jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/PreferencesTab.jsp (original)
+++ jspwiki/trunk/jspwiki-war/src/main/webapp/templates/haddock/PreferencesTab.jsp Sat Jul 11 20:47:04 2015
@@ -102,7 +102,7 @@
<label class="btn btn-default" for="prefSectionEditing">
<input class="" id="prefSectionEditing" name="prefSectionEditing" data-pref="SectionEditing"
- type="checkbox" ${prefs.SectionEditing=='on' ? 'checked="checked"' : ''} >
+ type="checkbox" ${prefs.SectionEditing ? 'checked="checked"' : ''} >
<fmt:message key="prefs.user.sectionediting.text"/>
</label>