
adam at svn
Nov 16, 2009, 3:26 PM
Post #1 of 1
(56 views)
Permalink
|
|
SVN: [59152] trunk/extensions/UsabilityInitiative
|
|
http://www.mediawiki.org/wiki/Special:Code/MediaWiki/59152 Revision: 59152 Author: adam Date: 2009-11-16 23:26:02 +0000 (Mon, 16 Nov 2009) Log Message: ----------- migrating the toc resizing to use jquery ui resizable Modified Paths: -------------- trunk/extensions/UsabilityInitiative/UsabilityInitiative.hooks.php trunk/extensions/UsabilityInitiative/css/combined.css trunk/extensions/UsabilityInitiative/css/combined.min.css trunk/extensions/UsabilityInitiative/css/wikiEditor.css trunk/extensions/UsabilityInitiative/css/wikiEditor.toc.css trunk/extensions/UsabilityInitiative/js/plugins/jquery.wikiEditor.toc.js trunk/extensions/UsabilityInitiative/js/plugins/jquery.wikiEditor.toolbar.js trunk/extensions/UsabilityInitiative/js/plugins.combined.js trunk/extensions/UsabilityInitiative/js/plugins.combined.min.js Modified: trunk/extensions/UsabilityInitiative/UsabilityInitiative.hooks.php =================================================================== --- trunk/extensions/UsabilityInitiative/UsabilityInitiative.hooks.php 2009-11-16 22:31:06 UTC (rev 59151) +++ trunk/extensions/UsabilityInitiative/UsabilityInitiative.hooks.php 2009-11-16 23:26:02 UTC (rev 59152) @@ -22,16 +22,16 @@ array( 'src' => 'css/wikiEditor.css', 'version' => 6 ), array( 'src' => 'css/wikiEditor.toolbar.css', 'version' => 7 ), array( 'src' => 'css/wikiEditor.dialogs.css', 'version' => 2 ), - array( 'src' => 'css/wikiEditor.toc.css', 'version' => 16 ), + array( 'src' => 'css/wikiEditor.toc.css', 'version' => 18 ), array( 'src' => 'css/wikiEditor.preview.css', 'version' => 1 ), array( 'src' => 'css/vector/jquery-ui-1.7.2.css', 'version' => '1.7.2y' ), ), 'combined' => array( - array( 'src' => 'css/combined.css', 'version' => 24 ), + array( 'src' => 'css/combined.css', 'version' => 25 ), array( 'src' => 'css/vector/jquery-ui-1.7.2.css', 'version' => '1.7.2y' ), ), 'minified' => array( - array( 'src' => 'css/combined.min.css', 'version' => 24 ), + array( 'src' => 'css/combined.min.css', 'version' => 25 ), array( 'src' => 'css/vector/jquery-ui-1.7.2.css', 'version' => '1.7.2y' ), ), ) @@ -73,14 +73,14 @@ array( 'src' => 'js/plugins/jquery.wikiEditor.js', 'version' => 17 ), array( 'src' => 'js/plugins/jquery.wikiEditor.toolbar.js', 'version' => 29 ), array( 'src' => 'js/plugins/jquery.wikiEditor.dialogs.js', 'version' => 9 ), - array( 'src' => 'js/plugins/jquery.wikiEditor.toc.js', 'version' => 36 ), + array( 'src' => 'js/plugins/jquery.wikiEditor.toc.js', 'version' => 37 ), array( 'src' => 'js/plugins/jquery.wikiEditor.preview.js', 'version' => 3 ), ), 'combined' => array( - array( 'src' => 'js/plugins.combined.js', 'version' => 78 ), + array( 'src' => 'js/plugins.combined.js', 'version' => 79 ), ), 'minified' => array( - array( 'src' => 'js/plugins.combined.min.js', 'version' => 78 ), + array( 'src' => 'js/plugins.combined.min.js', 'version' => 79 ), ), ), ); Modified: trunk/extensions/UsabilityInitiative/css/combined.css =================================================================== --- trunk/extensions/UsabilityInitiative/css/combined.css 2009-11-16 22:31:06 UTC (rev 59151) +++ trunk/extensions/UsabilityInitiative/css/combined.css 2009-11-16 23:26:02 UTC (rev 59152) @@ -97,6 +97,7 @@ } .wikiEditor-ui .wikiEditor-ui-right { float: right; + overflow:hidden; } .wikiEditor-wikitext { float: left; @@ -111,7 +112,7 @@ .wikiEditor-buttons { float: right; width: 50%; -}/* wikiEditor dialogs module */ +} *//* wikiEditor dialogs module */ .ui-widget table { margin-top: 0.75em; @@ -127,13 +128,9 @@ z-index: 1099; } /* wikiEditor toc module */ - -.wikiEditor-ui-text { - /*border-right: solid silver 1px;*/ -} body.rtl .wikiEditor-ui-text { - /*border-right: none;*/ - /*border-left: solid silver 1px;*/ + border-right: none; + border-left: solid silver 1px; } .wikiEditor-ui-toc { /* height and width are set dynamically */ @@ -151,6 +148,7 @@ */ } .wikiEditor-ui-toc ul { + border-left: solid silver 1px; padding: 0; margin: 0; list-style: none; @@ -160,6 +158,10 @@ list-style-type: none; width: 100%; } +body.rtl .wikiEditor-ui-toc ul { + border-left: none; + border-right: solid silver 1px; +} .tab-toc { /* Should match the toolbar */ background-image: url(../images/wikiEditor/toolbar/base.png); @@ -170,6 +172,8 @@ line-height: 26px; padding-left: 1em; border-bottom: solid 1px silver; + white-space:nowrap; + overflow:hidden; } .tab-toc a{ outline:none; @@ -254,7 +258,8 @@ } /* Resizing Changes */ -#wikiEditor-ui-toc-resize-vertical{ +.wikiEditor-ui-toc-resize-vertical, +.ui-resizable-w{ width:4px; position:absolute; top:0; @@ -262,25 +267,36 @@ height:100%; cursor:ew-resize; } -#wikiEditor-ui-toc-resize-grip{ +.wikiEditor-ui .wikiEditor-ui-right { + overflow:visible; +} +.wikiEditor-ui-right .ui-resizable-w{ + left: 0px !important; +} + +.wikiEditor-ui-right .wikiEditor-ui-toc-resize-grip{ width:5px; height:12px; padding:3px; position:absolute; top:7px; - right:2px; + left:-12px !important; cursor:ew-resize; background:url(../images/wikiEditor/toc/grip.png) 50% 50% no-repeat; } -#wikiEditor-ui-toolbar .tab-toc{ +.wikiEditor-ui-toolbar .tab-toc{ float:right; margin:3px 16px 3px 3px; line-height:26px; } -#wikiEditor-ui-text textarea{ +.wikiEditor-ui-text textarea{ resize:none; } -#wikiEditor-ui-text textarea:focus {outline:none;}/* wikiEditor toolbar module */ +.wikiEditor-ui-text textarea:focus {outline:none;} +.wikiEditor-ui-right{ + left: 0px !important; +} +/* wikiEditor toolbar module */ .wikiEditor-ui-toolbar { position: relative; Modified: trunk/extensions/UsabilityInitiative/css/combined.min.css =================================================================== --- trunk/extensions/UsabilityInitiative/css/combined.min.css 2009-11-16 22:31:06 UTC (rev 59151) +++ trunk/extensions/UsabilityInitiative/css/combined.min.css 2009-11-16 23:26:02 UTC (rev 59152) @@ -90,6 +90,7 @@ } .wikiEditor-ui .wikiEditor-ui-right{ float:right; +overflow:hidden; } .wikiEditor-wikitext{ float:left; @@ -104,7 +105,7 @@ .wikiEditor-buttons{ float:right; width:50%; -} +} */ .ui-widget table{ margin-top:0.75em; } @@ -116,9 +117,9 @@ div.suggestions{ z-index:1099; } -.wikiEditor-ui-text{ -} body.rtl .wikiEditor-ui-text{ +border-right:none; +border-left:solid silver 1px; } .wikiEditor-ui-toc{ padding:0; @@ -134,6 +135,7 @@ */ } .wikiEditor-ui-toc ul{ +border-left:solid silver 1px; padding:0; margin:0; list-style:none; @@ -142,6 +144,10 @@ list-style-type:none; width:100%; } +body.rtl .wikiEditor-ui-toc ul{ +border-left:none; +border-right:solid silver 1px; +} .tab-toc{ background-image:url(../images/wikiEditor/toolbar/base.png); background-position:left top; @@ -151,6 +157,8 @@ line-height:26px; padding-left:1em; border-bottom:solid 1px silver; +white-space:nowrap; +overflow:hidden; } .tab-toc a{ outline:none; @@ -228,7 +236,8 @@ .wikiEditor-ui-toc-collapse-closed{ background:#f3f3f3 url(../images/wikiEditor/toc/open.png) 4px 50% no-repeat; } -#wikiEditor-ui-toc-resize-vertical{ +.wikiEditor-ui-toc-resize-vertical, +.ui-resizable-w{ width:4px; position:absolute; top:0; @@ -236,25 +245,34 @@ height:100%; cursor:ew-resize; } -#wikiEditor-ui-toc-resize-grip{ +.wikiEditor-ui .wikiEditor-ui-right{ +overflow:visible; +} +.wikiEditor-ui-right .ui-resizable-w{ +left:0px !important; +} +.wikiEditor-ui-right .wikiEditor-ui-toc-resize-grip{ width:5px; height:12px; padding:3px; position:absolute; top:7px; -right:2px; +left:-12px !important; cursor:ew-resize; background:url(../images/wikiEditor/toc/grip.png) 50% 50% no-repeat; } -#wikiEditor-ui-toolbar .tab-toc{ +.wikiEditor-ui-toolbar .tab-toc{ float:right; margin:3px 16px 3px 3px; line-height:26px; } -#wikiEditor-ui-text textarea{ +.wikiEditor-ui-text textarea{ resize:none; } -#wikiEditor-ui-text textarea:focus{outline:none;} +.wikiEditor-ui-text textarea:focus{outline:none;} +.wikiEditor-ui-right{ +left:0px !important; +} .wikiEditor-ui-toolbar{ position:relative; width:100%; Modified: trunk/extensions/UsabilityInitiative/css/wikiEditor.css =================================================================== --- trunk/extensions/UsabilityInitiative/css/wikiEditor.css 2009-11-16 22:31:06 UTC (rev 59151) +++ trunk/extensions/UsabilityInitiative/css/wikiEditor.css 2009-11-16 23:26:02 UTC (rev 59152) @@ -47,6 +47,7 @@ } .wikiEditor-ui .wikiEditor-ui-right { float: right; + overflow:hidden; } .wikiEditor-wikitext { float: left; @@ -61,4 +62,4 @@ .wikiEditor-buttons { float: right; width: 50%; -} \ No newline at end of file +} */ \ No newline at end of file Modified: trunk/extensions/UsabilityInitiative/css/wikiEditor.toc.css =================================================================== --- trunk/extensions/UsabilityInitiative/css/wikiEditor.toc.css 2009-11-16 22:31:06 UTC (rev 59151) +++ trunk/extensions/UsabilityInitiative/css/wikiEditor.toc.css 2009-11-16 23:26:02 UTC (rev 59152) @@ -1,11 +1,7 @@ /* wikiEditor toc module */ - -.wikiEditor-ui-text { - /*border-right: solid silver 1px;*/ -} body.rtl .wikiEditor-ui-text { - /*border-right: none;*/ - /*border-left: solid silver 1px;*/ + border-right: none; + border-left: solid silver 1px; } .wikiEditor-ui-toc { /* height and width are set dynamically */ @@ -23,6 +19,7 @@ */ } .wikiEditor-ui-toc ul { + border-left: solid silver 1px; padding: 0; margin: 0; list-style: none; @@ -32,6 +29,10 @@ list-style-type: none; width: 100%; } +body.rtl .wikiEditor-ui-toc ul { + border-left: none; + border-right: solid silver 1px; +} .tab-toc { /* Should match the toolbar */ background-image: url(../images/wikiEditor/toolbar/base.png); @@ -42,6 +43,8 @@ line-height: 26px; padding-left: 1em; border-bottom: solid 1px silver; + white-space:nowrap; + overflow:hidden; } .tab-toc a{ outline:none; @@ -126,7 +129,8 @@ } /* Resizing Changes */ -#wikiEditor-ui-toc-resize-vertical{ +.wikiEditor-ui-toc-resize-vertical, +.ui-resizable-w{ width:4px; position:absolute; top:0; @@ -134,22 +138,32 @@ height:100%; cursor:ew-resize; } -#wikiEditor-ui-toc-resize-grip{ +.wikiEditor-ui .wikiEditor-ui-right { + overflow:visible; +} +.wikiEditor-ui-right .ui-resizable-w{ + left: 0px !important; +} + +.wikiEditor-ui-right .wikiEditor-ui-toc-resize-grip{ width:5px; height:12px; padding:3px; position:absolute; top:7px; - right:2px; + left:-12px !important; cursor:ew-resize; background:url(../images/wikiEditor/toc/grip.png) 50% 50% no-repeat; } -#wikiEditor-ui-toolbar .tab-toc{ +.wikiEditor-ui-toolbar .tab-toc{ float:right; margin:3px 16px 3px 3px; line-height:26px; } -#wikiEditor-ui-text textarea{ +.wikiEditor-ui-text textarea{ resize:none; } -#wikiEditor-ui-text textarea:focus {outline:none;} \ No newline at end of file +.wikiEditor-ui-text textarea:focus {outline:none;} +.wikiEditor-ui-right{ + left: 0px !important; +} Modified: trunk/extensions/UsabilityInitiative/js/plugins/jquery.wikiEditor.toc.js =================================================================== --- trunk/extensions/UsabilityInitiative/js/plugins/jquery.wikiEditor.toc.js 2009-11-16 22:31:06 UTC (rev 59151) +++ trunk/extensions/UsabilityInitiative/js/plugins/jquery.wikiEditor.toc.js 2009-11-16 23:26:02 UTC (rev 59152) @@ -125,6 +125,8 @@ * @param {Object} event Event object with context as data */ collapse: function( event ) { + /* + FIXME: Needs rewritten to deal with all of the recent changes var context = event.data; var $toc = context.modules.$toc; if( !$toc.data( 'openWidth' ) ) { @@ -142,6 +144,7 @@ //.prev() //.animate( {'marginRight': '1px'}, 'fast', function() { $(this).css('marginRight', '-1px'); } ); $.cookie( 'wikiEditor-' + context.instance + '-toc-width', 1 ); + */ return false; }, @@ -151,6 +154,8 @@ * @param {Object} event Event object with context as data */ expand: function( event) { + /* + FIXME: Needs rewritten to deal with all of the recent changes var context = event.data; context.$ui.find( '.tab-toc' ) .unbind( 'click', $.wikiEditor.modules.toc.fn.expand ) @@ -166,8 +171,18 @@ //.prev() //.animate( { 'marginRight': context.modules.$toc.data( 'openWidth' ) }, 'fast' ); $.cookie( 'wikiEditor-' + context.instance + '-toc-width', context.modules.$toc.data( 'openWidth' ) ); + */ return false; }, + startResize: function ( event, ui ){ + + }, + resize: function( event, ui ) { + + }, + stopResize: function( event, ui ){ + + }, /** * Handles drag events on the contents module * @@ -180,10 +195,13 @@ // returned NaN in some cases. Even this seems to be buggy in that .offset().left // is sometimes 0. // FIXME: We should ditch the whole thing and use jQuery UI Resizable if possible + + if ( pageX ) mR = pageX; else mR = e.pageX - context.$ui.find( '.wikiEditor.ui-left' ).offset().left; + console.log(mR); mR = context.$ui.find( '.wikiEditor-ui-left' ).width() - mR; if( mR < 26 || mR > context.$ui.find( '.wikiEditor-ui-left' ).width() - 250) return false; @@ -274,10 +292,10 @@ return list; } function buildCollapseBar() { - // FIXME: Move this to a .css file + /* FIXME: Move this to a .css file context.modules.$toc.find( 'ul:first' ).css( 'width', '147px' ) - .css( 'margin-left', '19px' ).css( 'border-left', '1px solid #DDDDDD' ); - var $collapseBar = $( '<div />' ) + .css( 'margin-left', '19px' ).css( 'border-left', '1px solid #DDDDDD' ); */ + return $( '<div />' ) .addClass( 'wikiEditor-ui-toc-collapse-open' ) .attr( 'id', 'wikiEditor-ui-toc-collapse' ) .data( 'openWidth', $.wikiEditor.modules.toc.defaultWidth ) @@ -307,29 +325,13 @@ } }); - return $collapseBar; } function buildResizeControls() { - var $resizeControlVertical = $( '<div />' ) - .attr( 'id', 'wikiEditor-ui-toc-resize-vertical') - .mousedown( function() { - context.modules.$toc - .data( 'openWidth', context.modules.$toc.width() ); - $() - .bind( 'mousemove', context, $.wikiEditor.modules.toc.fn.drag ) - .bind( 'mouseup', context, $.wikiEditor.modules.toc.fn.stopDrag ); - $( context.$iframe[0].contentWindow.document ) - .mousemove( function( e ) { - parent.top.$j().trigger( 'mousemove', e.pageX ); - return false; - } ) - .bind( 'mouseup', function() { - parent.top.$j().trigger( 'mouseup' ); - return false; - }); - return false; - }); - + context.$ui.find( '.ui-resizable-e' ) + .removeClass( 'ui-resizable-e' ) + .addClass( 'ui-resizable-w' ) + .addClass( 'wikiEditor-ui-toc-resize-grip' ) + .appendTo(context.$ui.find( '.wikiEditor-ui-right' )); var $collapseControl = $( '<div />' ).addClass( 'tab' ).addClass( 'tab-toc' ) .append( '<a href="#" />' ); if( $.cookie( 'wikiEditor-' + context.instance + '-toc-width' ) != 1 ) { @@ -347,7 +349,7 @@ } if ( context.initialWidth == 1 ) $.wikiEditor.modules.toc.fn.collapse( { data: context } ); - return $resizeControlVertical; + return ""; } // Build outline from wikitext @@ -409,11 +411,38 @@ 'wrapper': div } ); } context.modules.$toc.html( buildList( structure ) ); - if(wgNavigableTOCResizable) { + context.$ui.find( '.wikiEditor-ui-right' ) + .data( 'wikiEditor-ui-left', context.$ui.find( '.wikiEditor-ui-left' )) + .resizable( {handles: 'w,e', minWidth: 50, + start: function( e, ui ) { + $( '<div />' ).addClass( 'wikiEditor-ui-resize-mask' ) + .css( 'position', 'absolute' ) + .css( 'z-index', 2 ) + .css( 'left', 0 ).css( 'top', 0 ).css( 'bottom', 0 ).css( 'right', 0 ) + .appendTo(context.$ui.find( '.wikiEditor-ui-left' )); + }, + resize: function( e, ui ) { + /* + * FIXME: Currently setting a heigh property on the resizable with ever mousemove event + * which breaks our height resizing code in jquery.wikiEditor.toolbar.js + */ + + // for some odd reason, ui.size.width seems a step ahead of what the *actual* width of + // the resizable is + $( this ).css( 'width' , ui.size.width ) + .data( 'wikiEditor-ui-left' ).css( 'marginRight', ( -1 * ui.size.width ) ) + .children( ).css( 'marginRight', ui.size.width ); + }, + stop: function ( e, ui ) { + context.$ui.find( '.wikiEditor-ui-resize-mask' ).remove(); + if( ui.size.width < 70 ){ + // collapse + } + } + }); + context.modules.$toc.append( buildResizeControls() ); - } else if(wgNavigableTOCCollapseEnable) { - context.modules.$toc.append( buildCollapseBar() ); } context.modules.$toc.find( 'div' ).autoEllipse( { 'position': 'right', 'tooltip': true } ); // Cache the outline for later use Modified: trunk/extensions/UsabilityInitiative/js/plugins/jquery.wikiEditor.toolbar.js =================================================================== --- trunk/extensions/UsabilityInitiative/js/plugins/jquery.wikiEditor.toolbar.js 2009-11-16 22:31:06 UTC (rev 59151) +++ trunk/extensions/UsabilityInitiative/js/plugins/jquery.wikiEditor.toolbar.js 2009-11-16 23:26:02 UTC (rev 59152) @@ -478,12 +478,15 @@ $(this).data( 'context' ).$ui.find( '.section-' + $(this).parent().attr( 'rel' ) ); var show = $section.css( 'display' ) == 'none'; $previousSections = $section.parent().find( '.section:visible' ); + var dH = $previousSections.outerHeight(); $previousSections.css( 'position', 'absolute' ); $previousSections.fadeOut( 'fast', function() { $(this).css( 'position', 'relative' ); } ); $(this).parent().parent().find( 'a' ).removeClass( 'current' ); $sections.css('overflow', 'hidden'); if ( show ) { $section.fadeIn( 'fast' ); + dH = $section.outerHeight() - dH; + context.modules.$toc.animate({'height': "+="+dH}, $section.outerHeight() * 2); $sections.animate( { 'height': $section.outerHeight() }, $section.outerHeight() * 2, function() { $(this).css('overflow', 'visible').css('height', 'auto'); } ); @@ -493,6 +496,7 @@ .animate( { 'height': 0 }, $section.outerHeight() * 2, function() { $(this).css('overflow', 'visible'); } ); + context.modules.$toc.animate({'height': "-="+$section.outerHeight()}, $section.outerHeight() * 2); } // Click tracking if($.trackAction != undefined){ @@ -562,33 +566,6 @@ }, build : function( context, config ) { var $tabs = $( '<div />' ).addClass( 'tabs' ).appendTo( context.modules.$toolbar ); - /* - if( wgNavigableTOCCollapseEnable ) { - // FIXME: This code is duplicated from the TOC plugin and doesn't belong here; - // the TOC drag thingy should be in the TOC plugin instead - // placeholder for drag control creation code - $dragControl = $( '<div />' ).addClass( 'tab' ).attr( 'id', 'wikiEditor-ui-toc-resize-grip' ) - .append( '<a href="#" title="Drag to resize"></a>' ) - .mousedown( function() { - context.modules.$toc - .data( 'openWidth', $( '#wikiEditor-ui-toc' ).width() ); - $() - .bind( 'mousemove', context, $.wikiEditor.modules.toc.fn.drag ) - .bind( 'mouseup', context, $.wikiEditor.modules.toc.fn.stopDrag ); - $( context.$iframe[0].contentWindow.document ) - .mousemove( function() { - parent.top.$j().trigger( 'mousemove', e.pageX ); - return false; - } ) - .mouseup( function() { - parent.top.$j().trigger( 'mouseup' ); - return false; - }); - return false; - }) - context.modules.$toolbar.append( $dragControl ); - } - */ var $sections = $( '<div />' ).addClass( 'sections' ).appendTo( context.modules.$toolbar ); context.modules.$toolbar.append( $( '<div />' ).css( 'clear', 'both' ) ); var sectionQueue = []; @@ -619,7 +596,12 @@ s.$sections.append( $.wikiEditor.modules.toolbar.fn.buildSection( s.context, s.id, s.config ) ); var $section = s.$sections.find( '.section:visible' ); if ( $section.size() ) { - $sections.animate( { 'height': $section.outerHeight() }, $section.outerHeight() * 2 ); + $sections.animate( { 'height': $section.outerHeight() }, $section.outerHeight() * 2, function( ) { + context.modules.$toc.height( + context.$ui.find( '.wikiEditor-ui-left' ) + .outerHeight() - context.$ui.find( '.tab-toc' ).outerHeight() + ); + } ); } } } ); Modified: trunk/extensions/UsabilityInitiative/js/plugins.combined.js =================================================================== --- trunk/extensions/UsabilityInitiative/js/plugins.combined.js 2009-11-16 22:31:06 UTC (rev 59151) +++ trunk/extensions/UsabilityInitiative/js/plugins.combined.js 2009-11-16 23:26:02 UTC (rev 59152) @@ -2390,12 +2390,15 @@ $(this).data( 'context' ).$ui.find( '.section-' + $(this).parent().attr( 'rel' ) ); var show = $section.css( 'display' ) == 'none'; $previousSections = $section.parent().find( '.section:visible' ); + var dH = $previousSections.outerHeight(); $previousSections.css( 'position', 'absolute' ); $previousSections.fadeOut( 'fast', function() { $(this).css( 'position', 'relative' ); } ); $(this).parent().parent().find( 'a' ).removeClass( 'current' ); $sections.css('overflow', 'hidden'); if ( show ) { $section.fadeIn( 'fast' ); + dH = $section.outerHeight() - dH; + context.modules.$toc.animate({'height': "+="+dH}, $section.outerHeight() * 2); $sections.animate( { 'height': $section.outerHeight() }, $section.outerHeight() * 2, function() { $(this).css('overflow', 'visible').css('height', 'auto'); } ); @@ -2405,6 +2408,7 @@ .animate( { 'height': 0 }, $section.outerHeight() * 2, function() { $(this).css('overflow', 'visible'); } ); + context.modules.$toc.animate({'height': "-="+$section.outerHeight()}, $section.outerHeight() * 2); } // Click tracking if($.trackAction != undefined){ @@ -2531,7 +2535,12 @@ s.$sections.append( $.wikiEditor.modules.toolbar.fn.buildSection( s.context, s.id, s.config ) ); var $section = s.$sections.find( '.section:visible' ); if ( $section.size() ) { - $sections.animate( { 'height': $section.outerHeight() }, $section.outerHeight() * 2 ); + $sections.animate( { 'height': $section.outerHeight() }, $section.outerHeight() * 2, function( ) { + context.modules.$toc.height( + context.$ui.find( '.wikiEditor-ui-left' ) + .outerHeight() - context.$ui.find( '.tab-toc' ).outerHeight() + ); + } ); } } } ); @@ -2587,8 +2596,9 @@ .css( 'width', $.wikiEditor.modules.toc.defaultWidth ) .append( context.modules.$toc ); context.modules.$toc.height( - context.$ui.find( '.wikiEditor-ui-left' ).height() + context.$ui.find( '.wikiEditor-ui-left' ).height() - 1 ); + context.modules.$toc context.$ui.find( '.wikiEditor-ui-left' ) .css( 'marginRight', "-" + $.wikiEditor.modules.toc.defaultWidth ) .children() Modified: trunk/extensions/UsabilityInitiative/js/plugins.combined.min.js =================================================================== --- trunk/extensions/UsabilityInitiative/js/plugins.combined.min.js 2009-11-16 22:31:06 UTC (rev 59151) +++ trunk/extensions/UsabilityInitiative/js/plugins.combined.min.js 2009-11-16 23:26:02 UTC (rev 59152) @@ -146,7 +146,7 @@ $.wikiEditor.autoMsg(row[cell],['html','text'])+'</span></td>';} html+='</tr>';return html;},buildCharacter:function(character,actions){if(typeof character=='string'){character={'label':character,'action':{'type':'encapsulate','options':{'pre':character}}};}else if(0 in character&&1 in character){character={'label':character[0],'action':{'type':'encapsulate','options':{'pre':character[1]}}};} if('action'in character&&'label'in character){actions[character.label]=character.action;return'<a rel="'+character.label+'" href="#">'+character.label+'</a>';}},buildTab:function(context,id,section){var selected=$.cookie('wikiEditor-'+context.instance+'-toolbar-section');return $('<span />').attr({'class':'tab tab-'+id,'rel':id}).append($('<a />').addClass(selected==id?'current':null).attr('href','#').text($.wikiEditor.autoMsg(section,'label')).data('context',context).bind('mouseup',function(e){$(this).blur();}).bind('mousedown',function(e){if(e.button!==0&&(e.button&1)==0){return true;} -var $sections=$(this).data('context').$ui.find('.sections');var $section=$(this).data('context').$ui.find('.section-'+$(this).parent().attr('rel'));var show=$section.css('display')=='none';$previousSections=$section.parent().find('.section:visible');$previousSections.css('position','absolute');$previousSections.fadeOut('fast',function(){$(this).css('position','relative');});$(this).parent().parent().find('a').removeClass('current');$sections.css('overflow','hidden');if(show){$section.fadeIn('fast');$sections.animate({'height':$section.outerHeight()},$section.outerHeight()*2,function(){$(this).css('overflow','visible').css('height','auto');});$(this).addClass('current');}else{$sections.css('height',$section.outerHeight()).animate({'height':0},$section.outerHeight()*2,function(){$(this).css('overflow','visible');});} +var $sections=$(this).data('context').$ui.find('.sections');var $section=$(this).data('context').$ui.find('.section-'+$(this).parent().attr('rel'));var show=$section.css('display')=='none';$previousSections=$section.parent().find('.section:visible');var dH=$previousSections.outerHeight();$previousSections.css('position','absolute');$previousSections.fadeOut('fast',function(){$(this).css('position','relative');});$(this).parent().parent().find('a').removeClass('current');$sections.css('overflow','hidden');if(show){$section.fadeIn('fast');dH=$section.outerHeight()-dH;context.modules.$toc.animate({'height':"+="+dH},$section.outerHeight()*2);$sections.animate({'height':$section.outerHeight()},$section.outerHeight()*2,function(){$(this).css('overflow','visible').css('height','auto');});$(this).addClass('current');}else{$sections.css('height',$section.outerHeight()).animate({'height':0},$section.outerHeight()*2,function(){$(this).css('overflow','visible');});context.modules.$toc.animate({'height':"-="+$section.outerHeight()},$section.outerHeight()*2);} if($.trackAction!=undefined){$.trackAction($section.attr('rel')+'.'+(show?'show':'hide'));} $.cookie('wikiEditor-'+$(this).data('context').instance+'-toolbar-section',show?$section.attr('rel'):null);}).click(function(){return false;}));},buildSection:function(context,id,section){context.$textarea.trigger('wikiEditor-toolbar-buildSection-'+id,[section]);var selected=$.cookie('wikiEditor-'+context.instance+'-toolbar-section');var $section;switch(section.type){case'toolbar':var $section=$('<div />').attr({'class':'toolbar section section-'+id,'rel':id});if('groups'in section){for(group in section.groups){$section.append($.wikiEditor.modules.toolbar.fn.buildGroup(context,group,section.groups[group]));}} break;case'booklet':var $pages=$('<div />').addClass('pages');var $index=$('<div />').addClass('index');if('pages'in section){for(page in section.pages){$pages.append($.wikiEditor.modules.toolbar.fn.buildPage(context,page,section.pages[page]));$index.append($.wikiEditor.modules.toolbar.fn.buildBookmark(context,page,section.pages[page]));}} @@ -154,9 +154,10 @@ if($section!==null&&id!=='main'){var show=selected==id;$section.css('display',show?'block':'none');} return $section;},updateBookletSelection:function(context,id,$pages,$index){var cookie='wikiEditor-'+context.instance+'-booklet-'+id+'-page';var selected=$.cookie(cookie);var $selectedIndex=$index.find('*[rel='+selected+']');if($selectedIndex.size()==0){selected=$index.children().eq(0).attr('rel');$.cookie(cookie,selected);} $pages.children().hide();$pages.find('*[rel='+selected+']').show();$index.children().removeClass('current');$selectedIndex.addClass('current');},build:function(context,config){var $tabs=$('<div />').addClass('tabs').appendTo(context.modules.$toolbar);var $sections=$('<div />').addClass('sections').appendTo(context.modules.$toolbar);context.modules.$toolbar.append($('<div />').css('clear','both'));var sectionQueue=[];for(section in config){if(section=='main'){context.modules.$toolbar.prepend($.wikiEditor.modules.toolbar.fn.buildSection(context,section,config[section]));}else{sectionQueue.push({'$sections':$sections,'context':context,'id':section,'config':config[section]});$tabs.append($.wikiEditor.modules.toolbar.fn.buildTab(context,section,config[section]));}} -$.eachAsync(sectionQueue,{'bulk':0,'end':function(){$('body').css('position','static');$('body').css('position','relative');},'loop':function(i,s){s.$sections.append($.wikiEditor.modules.toolbar.fn.buildSection(s.context,s.id,s.config));var $section=s.$sections.find('.section:visible');if($section.size()){$sections.animate({'height':$section.outerHeight()},$section.outerHeight()*2);}}});}}};})(jQuery);(function($){$.wikiEditor.modules.toc={api:{},defaultWidth:'13em',fn:{create:function(context,config){if('$toc'in context.modules){return;} +$.eachAsync(sectionQueue,{'bulk':0,'end':function(){$('body').css('position','static');$('body').css('position','relative');},'loop':function(i,s){s.$sections.append($.wikiEditor.modules.toolbar.fn.buildSection(s.context,s.id,s.config));var $section=s.$sections.find('.section:visible');if($section.size()){$sections.animate({'height':$section.outerHeight()},$section.outerHeight()*2,function(){context.modules.$toc.height(context.$ui.find('.wikiEditor-ui-left').outerHeight()-context.$ui.find('.tab-toc').outerHeight());});}}});}}};})(jQuery);(function($){$.wikiEditor.modules.toc={api:{},defaultWidth:'13em',fn:{create:function(context,config){if('$toc'in context.modules){return;} context.initialWidth=$.wikiEditor.modules.toc.defaultWidth;if(wgNavigableTOCResizable){if(!$.cookie('wikiEditor-'+context.instance+'-toc-width')){$.cookie('wikiEditor-'+context.instance+'-toc-width',$.wikiEditor.modules.toc.defaultWidth);}else{context.initialWidth=$.cookie('wikiEditor-'+context.instance+'-toc-width');}} -var height=context.$ui.find('.wikiEditor-ui-left').height();context.modules.$toc=$('<div />').addClass('wikiEditor-ui-toc').data('context',context);context.$ui.find('.wikiEditor-ui-right').css('width',$.wikiEditor.modules.toc.defaultWidth).append(context.modules.$toc);context.modules.$toc.height(context.$ui.find('.wikiEditor-ui-left').height());context.$ui.find('.wikiEditor-ui-left').css('marginRight',"-"+$.wikiEditor.modules.toc.defaultWidth).children().css('marginRight',$.wikiEditor.modules.toc.defaultWidth);$.wikiEditor.modules.toc.fn.build(context,config);context.$textarea.delayedBind(250,'mouseup scrollToPosition focus keyup encapsulateSelection change',function(event){var context=$(this).data('wikiEditor-context');$(this).eachAsync({bulk:0,loop:function(){$.wikiEditor.modules.toc.fn.build(context);$.wikiEditor.modules.toc.fn.update(context);}});}).blur(function(){var context=$(this).data('wikiEditor-context');context.$textarea.delayedBindCancel(250,'mouseup scrollToPosition focus keyup encapsulateSelection change');$.wikiEditor.modules.toc.fn.unhighlight(context);});},unhighlight:function(context){context.modules.$toc.find('div').removeClass('current');},update:function(context){$.wikiEditor.modules.toc.fn.unhighlight(context);var position=context.$textarea.textSelection('getCaretPosition');var section=0;if(context.data.outline.length>0){if(!(position<context.data.outline[0].position-1)){while(section<context.data.outline.length&&context.data.outline[section].position-1<position){section++;} +var height=context.$ui.find('.wikiEditor-ui-left').height();context.modules.$toc=$('<div />').addClass('wikiEditor-ui-toc').data('context',context);context.$ui.find('.wikiEditor-ui-right').css('width',$.wikiEditor.modules.toc.defaultWidth).append(context.modules.$toc);context.modules.$toc.height(context.$ui.find('.wikiEditor-ui-left').height()-1);context.modules.$toc +context.$ui.find('.wikiEditor-ui-left').css('marginRight',"-"+$.wikiEditor.modules.toc.defaultWidth).children().css('marginRight',$.wikiEditor.modules.toc.defaultWidth);$.wikiEditor.modules.toc.fn.build(context,config);context.$textarea.delayedBind(250,'mouseup scrollToPosition focus keyup encapsulateSelection change',function(event){var context=$(this).data('wikiEditor-context');$(this).eachAsync({bulk:0,loop:function(){$.wikiEditor.modules.toc.fn.build(context);$.wikiEditor.modules.toc.fn.update(context);}});}).blur(function(){var context=$(this).data('wikiEditor-context');context.$textarea.delayedBindCancel(250,'mouseup scrollToPosition focus keyup encapsulateSelection change');$.wikiEditor.modules.toc.fn.unhighlight(context);});},unhighlight:function(context){context.modules.$toc.find('div').removeClass('current');},update:function(context){$.wikiEditor.modules.toc.fn.unhighlight(context);var position=context.$textarea.textSelection('getCaretPosition');var section=0;if(context.data.outline.length>0){if(!(position<context.data.outline[0].position-1)){while(section<context.data.outline.length&&context.data.outline[section].position-1<position){section++;} section=Math.max(0,section);} var sectionLink=context.modules.$toc.find('div.section-'+section);sectionLink.addClass('current');var relTop=sectionLink.offset().top-context.modules.$toc.offset().top;var scrollTop=context.modules.$toc.scrollTop();var divHeight=context.modules.$toc.height();var sectionHeight=sectionLink.height();if(relTop<0) context.modules.$toc.scrollTop(scrollTop+relTop);else if(relTop+sectionHeight>divHeight) _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS [at] lists https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs
|