From: <de...@de...> - 2007-06-20 21:05:50
|
Author: ArthurClemens Date: 2007-06-20 16:05:47 -0500 (Wed, 20 Jun 2007) New Revision: 14219 Modified: twiki/branches/MAIN/twikiplugins/TwistyContrib/data/TWiki/TwistyContrib.txt twiki/branches/MAIN/twikiplugins/TwistyContrib/lib/TWiki/Contrib/TwistyContrib.pm twiki/branches/MAIN/twikiplugins/TwistyContrib/pub/TWiki/TwistyContrib/twist.compressed.js twiki/branches/MAIN/twikiplugins/TwistyContrib/pub/TWiki/TwistyContrib/twist.css twiki/branches/MAIN/twikiplugins/TwistyContrib/pub/TWiki/TwistyContrib/twist.js Log: Item4279: support TwistyPlugin 1.4 Modified: twiki/branches/MAIN/twikiplugins/TwistyContrib/data/TWiki/TwistyContrib.txt =================================================================== --- twiki/branches/MAIN/twikiplugins/TwistyContrib/data/TWiki/TwistyContrib.txt 2007-06-20 16:10:17 UTC (rev 14218) +++ twiki/branches/MAIN/twikiplugins/TwistyContrib/data/TWiki/TwistyContrib.txt 2007-06-20 21:05:47 UTC (rev 14219) @@ -1,4 +1,4 @@ -%META:TOPICINFO{author="TWikiContributor" date="1140597757" format="1.1" version="$Rev$"}% +%META:TOPICINFO{author="TWikiContributor" date="1140597757" format="1.1" version="1.1"}% ---+!! <nop>%TOPIC% *This contrib packages in a convenient way the !JavaScript library and the CSS file needed to implement Twisty sections.* @@ -173,6 +173,7 @@ | Copyright ©: | 2005 Sam Hasler and Rafael Alvarez, 2006,2007 Arthur Clemens | | License: | [[http://www.gnu.org/copyleft/gpl.html][GPL]] | | Dependencies: | %$DEPENDENCIES% | +| 20 Jun 2007 | 1.4 Arthur Clemens - Updated script so TwistyPlugin can work without extra javascript 'init' calls. | | 18 Jun 2007 | 1.3 Arthur Clemens - Updated with TWiki 4 !JavaScript files. | | 25 Oct 2006 | 1.2 Arthur Clemens - Updated !JavaScript to support !TwistyPlugin version 1.2 | | 26 Sep 2006 | 1.010 Arthur Clemens - Complete !JavaScript rewrite | Modified: twiki/branches/MAIN/twikiplugins/TwistyContrib/lib/TWiki/Contrib/TwistyContrib.pm =================================================================== --- twiki/branches/MAIN/twikiplugins/TwistyContrib/lib/TWiki/Contrib/TwistyContrib.pm 2007-06-20 16:10:17 UTC (rev 14218) +++ twiki/branches/MAIN/twikiplugins/TwistyContrib/lib/TWiki/Contrib/TwistyContrib.pm 2007-06-20 21:05:47 UTC (rev 14219) @@ -9,7 +9,7 @@ # This is a free-form string you can use to "name" your own plugin version. # It is *not* used by the build automation tools, but is reported as part # of the version number in PLUGINDESCRIPTIONS. -$RELEASE = '1.3'; +$RELEASE = '1.4.0'; 1; Modified: twiki/branches/MAIN/twikiplugins/TwistyContrib/pub/TWiki/TwistyContrib/twist.compressed.js =================================================================== --- twiki/branches/MAIN/twikiplugins/TwistyContrib/pub/TWiki/TwistyContrib/twist.compressed.js 2007-06-20 16:10:17 UTC (rev 14218) +++ twiki/branches/MAIN/twikiplugins/TwistyContrib/pub/TWiki/TwistyContrib/twist.compressed.js 2007-06-20 21:05:47 UTC (rev 14219) @@ -1 +1 @@ -var twiki;if(!twiki){twiki={};}twiki.TwistyPlugin=new function(){var _1=this;this._getName=function(_2){var re=new RegExp("(.*)(hide|show|toggle)","g");var m=re.exec(_2);var _5=(m&&m[1])?m[1]:"";return _5;};this._getType=function(_6){var re=new RegExp("(.*)(hide|show|toggle)","g");var m=re.exec(_6);var _9=(m&&m[2])?m[2]:"";return _9;};this._toggleTwisty=function(_a){if(!_a){return;}_a.state=(_a.state==twiki.TwistyPlugin.CONTENT_HIDDEN)?twiki.TwistyPlugin.CONTENT_SHOWN:twiki.TwistyPlugin.CONTENT_HIDDEN;_1._update(_a,true);};this._update=function(_b,_c){var _d=_b.show;var _e=_b.hide;var _f=_b.toggle;if(_b.state==twiki.TwistyPlugin.CONTENT_SHOWN){twiki.CSS.addClass(_d,"twistyHidden");twiki.CSS.removeClass(_e,"twistyHidden");twiki.CSS.removeClass(_f,"twistyHidden");}else{twiki.CSS.removeClass(_d,"twistyHidden");twiki.CSS.addClass(_e,"twistyHidden");twiki.CSS.addClass(_f,"twistyHidden");}if(_c&&_b.saveSetting){twiki.Pref.setPref(twiki.TwistyPlugin.COOKIE_PREFIX+_b.name,_b.state);}if(_b.clearSetting){twiki.Pref.setPref(twiki.TwistyPlugin.COOKIE_PREFIX+_b.name,"");}};this._register=function(e){if(!e){return;}var _11=_1._getName(e.id);var ref=_1._storage[_11];if(!ref){ref=new twiki.TwistyPlugin.Storage();}if(twiki.CSS.hasClass(e,"twistyRememberSetting")){ref.saveSetting=true;}if(twiki.CSS.hasClass(e,"twistyForgetSetting")){ref.clearSetting=true;}if(twiki.CSS.hasClass(e,"twistyStartShow")){ref.startShown=true;}if(twiki.CSS.hasClass(e,"twistyStartHide")){ref.startHidden=true;}if(twiki.CSS.hasClass(e,"twistyFirstStartShow")){ref.firstStartShown=true;}if(twiki.CSS.hasClass(e,"twistyFirstStartHide")){ref.firstStartHidden=true;}ref.name=_11;var _13=_1._getType(e.id);ref[_13]=e;_1._storage[_11]=ref;switch(_13){case "show":case "hide":e.onclick=function(){_1._toggleTwisty(ref);return false;};break;}return ref;};this._storage={};this._UIbehaviour={".twistyTrigger":function(e){twiki.TwistyPlugin.init(e.id);},".twistyContent":function(e){twiki.TwistyPlugin.init(e.id);},".twistyExpandAll":function(e){e.onclick=function(){twiki.TwistyPlugin.toggleAll(twiki.TwistyPlugin.CONTENT_SHOWN);};},".twistyCollapseAll":function(e){e.onclick=function(){twiki.TwistyPlugin.toggleAll(twiki.TwistyPlugin.CONTENT_HIDDEN);};}};Behaviour.register(this._UIbehaviour);};twiki.TwistyPlugin.CONTENT_HIDDEN=0;twiki.TwistyPlugin.CONTENT_SHOWN=1;twiki.TwistyPlugin.COOKIE_PREFIX="TwistyContrib_";twiki.TwistyPlugin.prefList;twiki.TwistyPlugin.init=function(_18){var e=document.getElementById(_18);if(!e){return;}var _1a=this._getName(_18);var ref=this._storage[_1a];if(ref&&ref.show&&ref.hide&&ref.toggle){return ref;}ref=this._register(e);if(twiki.CSS.hasClass(e,"twistyMakeHidden")){twiki.CSS.replaceClass(e,"twistyMakeHidden","twistyHidden");}if(twiki.CSS.hasClass(e,"twistyMakeVisible")){twiki.CSS.removeClass(e,"twistyMakeVisible");}if(ref.show&&ref.hide&&ref.toggle){if(twiki.TwistyPlugin.prefList==null){twiki.TwistyPlugin.prefList=twiki.Pref.getPrefList();}var _1c=twiki.Pref.getPrefValueFromPrefList(twiki.TwistyPlugin.COOKIE_PREFIX+ref.name,twiki.TwistyPlugin.prefList);if(ref.firstStartHidden){ref.state=twiki.TwistyPlugin.CONTENT_HIDDEN;}if(ref.firstStartShown){ref.state=twiki.TwistyPlugin.CONTENT_SHOWN;}if(_1c&&_1c=="0"){ref.state=twiki.TwistyPlugin.CONTENT_HIDDEN;}if(_1c&&_1c=="1"){ref.state=twiki.TwistyPlugin.CONTENT_SHOWN;}if(ref.startHidden){ref.state=twiki.TwistyPlugin.CONTENT_HIDDEN;}if(ref.startShown){ref.state=twiki.TwistyPlugin.CONTENT_SHOWN;}this._update(ref,false);}return ref;};twiki.TwistyPlugin.toggleAll=function(_1d){var i;for(var i in this._storage){var e=this._storage[i];e.state=_1d;this._update(e,true);}};twiki.TwistyPlugin.Storage=function(){this.name;this.state=twiki.TwistyPlugin.CONTENT_HIDDEN;this.hide;this.show;this.toggle;this.saveSetting=false;this.clearSetting=false;this.startShown;this.startHidden;this.firstStartShown;this.firstStartHidden;}; \ No newline at end of file +var twiki;if(!twiki){twiki={};}twiki.TwistyPlugin=new function(){var _1=this;this._getName=function(_2){var re=new RegExp("(.*)(hide|show|toggle)","g");var m=re.exec(_2);var _5=(m&&m[1])?m[1]:"";return _5;};this._getType=function(_6){var re=new RegExp("(.*)(hide|show|toggle)","g");var m=re.exec(_6);var _9=(m&&m[2])?m[2]:"";return _9;};this._toggleTwisty=function(_a){if(!_a){return;}_a.state=(_a.state==twiki.TwistyPlugin.CONTENT_HIDDEN)?twiki.TwistyPlugin.CONTENT_SHOWN:twiki.TwistyPlugin.CONTENT_HIDDEN;_1._update(_a,true);};this._update=function(_b,_c){var _d=_b.show;var _e=_b.hide;var _f=_b.toggle;if(_b.state==twiki.TwistyPlugin.CONTENT_SHOWN){twiki.CSS.addClass(_d,"twistyHidden");twiki.CSS.removeClass(_e,"twistyHidden");twiki.CSS.removeClass(_f,"twistyHidden");}else{twiki.CSS.removeClass(_d,"twistyHidden");twiki.CSS.addClass(_e,"twistyHidden");twiki.CSS.addClass(_f,"twistyHidden");}if(_c&&_b.saveSetting){twiki.Pref.setPref(twiki.TwistyPlugin.COOKIE_PREFIX+_b.name,_b.state);}if(_b.clearSetting){twiki.Pref.setPref(twiki.TwistyPlugin.COOKIE_PREFIX+_b.name,"");}};this._register=function(e){if(!e){return;}var _11=_1._getName(e.id);var ref=_1._storage[_11];if(!ref){ref=new twiki.TwistyPlugin.Storage();}if(twiki.CSS.hasClass(e,"twistyRememberSetting")){ref.saveSetting=true;}if(twiki.CSS.hasClass(e,"twistyForgetSetting")){ref.clearSetting=true;}if(twiki.CSS.hasClass(e,"twistyStartShow")){ref.startShown=true;}if(twiki.CSS.hasClass(e,"twistyStartHide")){ref.startHidden=true;}if(twiki.CSS.hasClass(e,"twistyFirstStartShow")){ref.firstStartShown=true;}if(twiki.CSS.hasClass(e,"twistyFirstStartHide")){ref.firstStartHidden=true;}ref.name=_11;var _13=_1._getType(e.id);ref[_13]=e;_1._storage[_11]=ref;switch(_13){case "show":case "hide":e.onclick=function(){_1._toggleTwisty(ref);return false;};break;}return ref;};this._storage={};this._UIbehaviour={".twistyTrigger":function(e){twiki.TwistyPlugin.init(e.id);e=null;},".twistyContent":function(e){twiki.TwistyPlugin.init(e.id);e=null;},".twistyExpandAll":function(e){e.onclick=function(){twiki.TwistyPlugin.toggleAll(twiki.TwistyPlugin.CONTENT_SHOWN);};e=null;},".twistyCollapseAll":function(e){e.onclick=function(){twiki.TwistyPlugin.toggleAll(twiki.TwistyPlugin.CONTENT_HIDDEN);};e=null;}};Behaviour.register(this._UIbehaviour);};twiki.TwistyPlugin.CONTENT_HIDDEN=0;twiki.TwistyPlugin.CONTENT_SHOWN=1;twiki.TwistyPlugin.COOKIE_PREFIX="TwistyContrib_";twiki.TwistyPlugin.prefList;twiki.TwistyPlugin.init=function(_18){var e=document.getElementById(_18);if(!e){return;}var _1a=this._getName(_18);var ref=this._storage[_1a];if(ref&&ref.show&&ref.hide&&ref.toggle){return ref;}ref=this._register(e);twiki.CSS.replaceClass(e,"twistyMakeHidden","twistyHidden");twiki.CSS.removeClass(e,"twistyMakeVisible");twiki.CSS.removeClass(e,"twikiMakeHidden");if(ref.show&&ref.hide&&ref.toggle){if(twiki.CSS.hasClass(e,"twistyInited1")){ref.state=twiki.TwistyPlugin.CONTENT_SHOWN;this._update(ref,false);return ref;}if(twiki.CSS.hasClass(e,"twistyInited0")){ref.state=twiki.TwistyPlugin.CONTENT_HIDDEN;this._update(ref,false);return ref;}if(twiki.TwistyPlugin.prefList==null){twiki.TwistyPlugin.prefList=twiki.Pref.getPrefList();}var _1c=twiki.Pref.getPrefValueFromPrefList(twiki.TwistyPlugin.COOKIE_PREFIX+ref.name,twiki.TwistyPlugin.prefList);if(ref.firstStartHidden){ref.state=twiki.TwistyPlugin.CONTENT_HIDDEN;}if(ref.firstStartShown){ref.state=twiki.TwistyPlugin.CONTENT_SHOWN;}if(_1c&&_1c=="0"){ref.state=twiki.TwistyPlugin.CONTENT_HIDDEN;}if(_1c&&_1c=="1"){ref.state=twiki.TwistyPlugin.CONTENT_SHOWN;}if(ref.startHidden){ref.state=twiki.TwistyPlugin.CONTENT_HIDDEN;}if(ref.startShown){ref.state=twiki.TwistyPlugin.CONTENT_SHOWN;}this._update(ref,false);}return ref;};twiki.TwistyPlugin.toggleAll=function(_1d){var i;for(var i in this._storage){var e=this._storage[i];e.state=_1d;this._update(e,true);}};twiki.TwistyPlugin.Storage=function(){this.name;this.state=twiki.TwistyPlugin.CONTENT_HIDDEN;this.hide;this.show;this.toggle;this.saveSetting=false;this.clearSetting=false;this.startShown;this.startHidden;this.firstStartShown;this.firstStartHidden;}; \ No newline at end of file Modified: twiki/branches/MAIN/twikiplugins/TwistyContrib/pub/TWiki/TwistyContrib/twist.css =================================================================== --- twiki/branches/MAIN/twikiplugins/TwistyContrib/pub/TWiki/TwistyContrib/twist.css 2007-06-20 16:10:17 UTC (rev 14218) +++ twiki/branches/MAIN/twikiplugins/TwistyContrib/pub/TWiki/TwistyContrib/twist.css 2007-06-20 21:05:47 UTC (rev 14219) @@ -2,8 +2,12 @@ .twistyMakeHidden {} /* reserved */ .twistyMakeVisible { display:none; } +.twistyTrigger {} +span.twistyContent {} .twistyPlaceholder { /* color to be implemented by skin */ } .twistyRememberSetting { /* behavior class */ } .twistyForgetSetting { /* behavior class */ } .twistyStartHide { /* behavior class */ } -.twistyStartShow { /* behavior class */ } \ No newline at end of file +.twistyStartShow { /* behavior class */ } +.twistyInited1 { /* behavior class: state is set to shown */ } +.twistyInited0 { /* behavior class: state is set to hidden */ } \ No newline at end of file Modified: twiki/branches/MAIN/twikiplugins/TwistyContrib/pub/TWiki/TwistyContrib/twist.js =================================================================== --- twiki/branches/MAIN/twikiplugins/TwistyContrib/pub/TWiki/TwistyContrib/twist.js 2007-06-20 16:10:17 UTC (rev 14218) +++ twiki/branches/MAIN/twikiplugins/TwistyContrib/pub/TWiki/TwistyContrib/twist.js 2007-06-20 21:05:47 UTC (rev 14219) @@ -11,7 +11,7 @@ twiki.TwistyPlugin = new function () { var self = this; - + /** Retrieves the name of the twisty from an HTML element id. For example 'demotoggle' will return 'demo'. @param inId : (String) HTML element id @@ -58,6 +58,7 @@ var showControl = ref.show; var hideControl = ref.hide; var contentElem = ref.toggle; + if (ref.state == twiki.TwistyPlugin.CONTENT_SHOWN) { // show content twiki.CSS.addClass(showControl, 'twistyHidden'); // hide 'show' @@ -128,12 +129,14 @@ */ '.twistyTrigger' : function(e) { twiki.TwistyPlugin.init(e.id); + e = null; }, /** Content element */ '.twistyContent' : function(e) { twiki.TwistyPlugin.init(e.id); + e = null; }, /** Content element @@ -142,11 +145,13 @@ e.onclick = function() { twiki.TwistyPlugin.toggleAll(twiki.TwistyPlugin.CONTENT_SHOWN); } + e = null; }, '.twistyCollapseAll' : function(e) { e.onclick = function() { twiki.TwistyPlugin.toggleAll(twiki.TwistyPlugin.CONTENT_HIDDEN); } + e = null; } }; Behaviour.register(this._UIbehaviour); @@ -183,11 +188,24 @@ // else register ref = this._register(e); - if (twiki.CSS.hasClass(e, "twistyMakeHidden")) twiki.CSS.replaceClass(e, "twistyMakeHidden", "twistyHidden"); - if (twiki.CSS.hasClass(e, "twistyMakeVisible")) twiki.CSS.removeClass(e, "twistyMakeVisible"); + twiki.CSS.replaceClass(e, "twistyMakeHidden", "twistyHidden"); + twiki.CSS.removeClass(e, "twistyMakeVisible"); + twiki.CSS.removeClass(e, "twikiMakeHidden"); if (ref.show && ref.hide && ref.toggle) { // all Twisty elements present + + if (twiki.CSS.hasClass(e, "twistyInited1")) { + ref.state = twiki.TwistyPlugin.CONTENT_SHOWN + this._update(ref, false); + return ref; + } + if (twiki.CSS.hasClass(e, "twistyInited0")) { + ref.state = twiki.TwistyPlugin.CONTENT_HIDDEN + this._update(ref, false); + return ref; + } + if (twiki.TwistyPlugin.prefList == null) { // cache complete cookie string twiki.TwistyPlugin.prefList = twiki.Pref.getPrefList(); @@ -201,6 +219,7 @@ // startHidden and startShown may override cookie if (ref.startHidden) ref.state = twiki.TwistyPlugin.CONTENT_HIDDEN; if (ref.startShown) ref.state = twiki.TwistyPlugin.CONTENT_SHOWN; + this._update(ref, false); } return ref; |