]> source.dussan.org Git - jquery-ui.git/commitdiff
Controlgroup: Add missing entry to demos bootstrap
authorAlexander Schmitz <arschmitz@gmail.com>
Sun, 9 Aug 2015 04:30:34 +0000 (00:30 -0400)
committerAlexander Schmitz <arschmitz@gmail.com>
Thu, 8 Oct 2015 18:02:36 +0000 (14:02 -0400)
demos/controlgroup/default.html
demos/controlgroup/splitbutton.html
demos/controlgroup/toolbar.html
tests/unit/controlgroup/common.js
tests/unit/controlgroup/controlgroup_core.js [deleted file]
tests/unit/controlgroup/core.js
tests/unit/controlgroup/methods.js
tests/unit/controlgroup/options.js
ui/controlgroup.js [deleted file]
ui/widgets/controlgroup.js [new file with mode: 0644]

index 0fc9635379da90cfa1c7ba7bc9e9734e0d772bae..3206c74cba86ba5e9dad8030287f1513797b1aba 100644 (file)
@@ -4,23 +4,13 @@
        <meta charset="utf-8">
        <title>jQuery UI Controlgroup - Default Functionality</title>
        <link rel="stylesheet" href="../../themes/base/all.css">
-       <script src="../../external/jquery/jquery.js"></script>
-       <script src="../../ui/core.js"></script>
-       <script src="../../ui/widget.js"></script>
-       <script src="../../ui/button.js"></script>
-       <script src="../../ui/checkboxradio.js"></script>
-       <script src="../../ui/menu.js"></script>
-       <script src="../../ui/position.js"></script>
-       <script src="../../ui/selectmenu.js"></script>
-       <script src="../../ui/controlgroup.js"></script>
        <link rel="stylesheet" href="../demos.css">
-       <script>
-       $(function() {
+       <script src="../../external/requirejs/require.js"></script>
+       <script src="../bootstrap.js">
                $( ".controlgroup" ).controlgroup()
                $( ".controlgroup-vertical" ).controlgroup({
                        "direction": "vertical"
                });
-       });
        </script>
        <style>
                .ui-controlgroup-vertical {
index a72cefd96de79c9283fb3c61391d8fad25eaa28b..763c14dad3773625fd7534e28f7e039a1462d4ce 100644 (file)
@@ -4,18 +4,9 @@
        <meta charset="utf-8">
        <title>jQuery UI Controlgroup - Split Button</title>
        <link rel="stylesheet" href="../../themes/base/all.css">
-       <script src="../../external/jquery/jquery.js"></script>
-       <script src="../../ui/core.js"></script>
-       <script src="../../ui/widget.js"></script>
-       <script src="../../ui/button.js"></script>
-       <script src="../../ui/checkboxradio.js"></script>
-       <script src="../../ui/menu.js"></script>
-       <script src="../../ui/position.js"></script>
-       <script src="../../ui/selectmenu.js"></script>
-       <script src="../../ui/controlgroup.js"></script>
        <link rel="stylesheet" href="../demos.css">
-       <script>
-       $(function() {
+       <script src="../../external/requirejs/require.js"></script>
+       <script src="../bootstrap.js" data-modules="button checkboxradio selectmenu">
                $( "select" ).selectmenu({
                        classes: {
                                "ui-selectmenu-button": "ui-button-icon-only"
@@ -28,7 +19,6 @@
                $( "button" ).click(function() {
                        $( ".output" ).append( "<li>Running Last Action...</li>" );
                });
-       });
        </script>
 </head>
 <body>
index fb3172418ffab9f0ec41af171c4acfdf86aceaf8..6153dff875c57112fd3e945815ce650b302cf36c 100644 (file)
@@ -4,18 +4,9 @@
        <meta charset="utf-8">
        <title>jQuery UI Controlgroup - Toolbar</title>
        <link rel="stylesheet" href="../../themes/base/all.css">
-       <script src="../../external/jquery/jquery.js"></script>
-       <script src="../../ui/core.js"></script>
-       <script src="../../ui/widget.js"></script>
-       <script src="../../ui/button.js"></script>
-       <script src="../../ui/checkboxradio.js"></script>
-       <script src="../../ui/menu.js"></script>
-       <script src="../../ui/position.js"></script>
-       <script src="../../ui/selectmenu.js"></script>
-       <script src="../../ui/controlgroup.js"></script>
        <link rel="stylesheet" href="../demos.css">
-       <script>
-       $(function() {
+       <script src="../../external/requirejs/require.js"></script>
+       <script src="../bootstrap.js" data-modules="button checkboxradio selectmenu">
                var iframe = $( "<iframe id='display' contenteditable='true'>" ),
                        contents = iframe.appendTo( "body" );
 
@@ -54,7 +45,6 @@
                                return false;
                        });
                });
-       });
        </script>
        <style>
                #zoom, #fontsize {
index 421e92e71f382084e7fa420a36761353b75cce5d..b403e174c5069ff83547180b4fe8fea169ed404a 100644 (file)
@@ -1,9 +1,9 @@
 define( [
        "lib/common",
-       "ui/controlgroup",
-       "ui/checkboxradio",
-       "ui/selectmenu",
-       "ui/button"
+       "ui/widgets/controlgroup",
+       "ui/widgets/checkboxradio",
+       "ui/widgets/selectmenu",
+       "ui/widgets/button"
 ], function( common ) {
 
 common.testWidget( "controlgroup", {
diff --git a/tests/unit/controlgroup/controlgroup_core.js b/tests/unit/controlgroup/controlgroup_core.js
deleted file mode 100644 (file)
index 2177c76..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-module( "Controlgroup: Core" );
-
-function hasCornerClass( element ) {
-       return !!element.attr( "class" ).match( /ui-corner/g );
-}
-
-test( "selectmenu: open/close corners", function( assert ) {
-       expect( 1 );
-       var element = $( ".controlgroup" ).controlgroup(),
-               selects = element.find( "select" ),
-               selectButton = selects.eq( 0 ).selectmenu( "widget" );
-
-       expect( 12 );
-
-       selects.eq( 0 ).selectmenu( "open" );
-       assert.hasClasses( selectButton, "ui-corner-tl",
-               "Horizontal: First selectmenu gets ui-corner-tl when opened" );
-
-       selects.eq( 0 ).selectmenu( "close" );
-       assert.hasClasses( selectButton, "ui-corner-left",
-               "Horizontal: First selectmenu gets ui-corner-left when closed" );
-
-       selectButton = selects.eq( 1 ).selectmenu( "widget" );
-       selects.eq( 1 ).selectmenu( "open" );
-       strictEqual( hasCornerClass( selectButton ), false,
-               "Horizontal: Middle selectmenu does not get corner class when opened" );
-
-       selects.eq( 1 ).selectmenu( "close" );
-       strictEqual( hasCornerClass( selectButton ), false,
-               "Horizontal: Middle selectmenu does not get corner class when closed" );
-
-       selectButton = selects.eq( 2 ).selectmenu( "widget" );
-       selects.eq( 2 ).selectmenu( "open" );
-       assert.hasClasses( selectButton, "ui-corner-tr",
-               "Horizontal: Last selectmenu gets ui-corner-tr when opened" );
-
-       selects.eq( 2 ).selectmenu( "close" );
-       assert.hasClasses( selectButton, "ui-corner-right",
-               "Horizontal: Last selectmenu gets ui-corner-right when closed" );
-
-       element.controlgroup( "option", "direction", "vertical" );
-       selectButton = selects.eq( 0 ).selectmenu( "widget" );
-       selects.eq( 0 ).selectmenu( "open" );
-       assert.hasClasses( selectButton, "ui-corner-top",
-               "vertical: First selectmenu gets ui-corner-top when opened" );
-
-       selects.eq( 0 ).selectmenu( "close" );
-       assert.hasClasses( selectButton, "ui-corner-top",
-               "vertical: First selectmenu gets ui-corner-top when closed" );
-
-       selectButton = selects.eq( 1 ).selectmenu( "widget" );
-       selects.eq( 1 ).selectmenu( "open" );
-       strictEqual( hasCornerClass( selectButton ), false,
-               "vertical: Middle selectmenu does not get corner class when opened" );
-
-       selects.eq( 1 ).selectmenu( "close" );
-       strictEqual( hasCornerClass( selectButton ), false,
-               "vertical: Middle selectmenu does not get corner class when closed" );
-
-       selectButton = selects.eq( 2 ).selectmenu( "widget" );
-       selects.eq( 2 ).selectmenu( "open" );
-       strictEqual( hasCornerClass( selectButton ), false,
-               "vertical: Last selectmenu does not get corner class when opened" );
-
-       selects.eq( 2 ).selectmenu( "close" );
-       assert.hasClasses( selectButton, "ui-corner-bottom",
-               "vertical: Last selectmenu gets ui-corner-bottom when closed" );
-});
-test( "invisibles excluded from corner classes", function( assert ) {
-       expect( 2 );
-       var element = $( ".controlgroup" ).controlgroup(),
-               buttons = element.children( ".ui-button" );
-       strictEqual( hasCornerClass( buttons.eq( 0 ) ), false,
-               "ExcludeInvisible: true: Hidden first element does not get a corner class" );
-       assert.hasClasses( buttons.eq( 1 ), "ui-corner-left",
-               "ExcludeInvisible: true: First button is hidden second button get corner class" );
-});
\ No newline at end of file
index f84136b2fe10c808cee76aaf1599dd4fdfd9c3d2..385e0cfd4e0302dc710647b95c868c4d5d5a03cc 100644 (file)
@@ -1,9 +1,9 @@
 define( [
        "jquery",
-       "ui/controlgroup",
-       "ui/checkboxradio",
-       "ui/selectmenu",
-       "ui/button"
+       "ui/widgets/controlgroup",
+       "ui/widgets/checkboxradio",
+       "ui/widgets/selectmenu",
+       "ui/widgets/button"
 ], function( $ ) {
 
 module( "Controlgroup: Core" );
index c691e4c46e4aac960a708d7a7c68bf29ce4f9052..de1d56f9d26db5ce332ad7e73eb02ff62e1df765 100644 (file)
@@ -1,9 +1,9 @@
 define( [
        "jquery",
-       "ui/controlgroup",
-       "ui/checkboxradio",
-       "ui/selectmenu",
-       "ui/button"
+       "ui/widgets/controlgroup",
+       "ui/widgets/checkboxradio",
+       "ui/widgets/selectmenu",
+       "ui/widgets/button"
 ], function( $ ) {
 
 module( "Controlgroup: methods" );
index 82375381a5b641b5078e4a03c791a375e184410c..e2e8f4ee731605e60428fde431fba16e96c22178 100644 (file)
@@ -1,9 +1,9 @@
 define( [
        "jquery",
-       "ui/controlgroup",
-       "ui/checkboxradio",
-       "ui/selectmenu",
-       "ui/button"
+       "ui/widgets/controlgroup",
+       "ui/widgets/checkboxradio",
+       "ui/widgets/selectmenu",
+       "ui/widgets/button"
 ], function( $ ) {
 
 module( "Controlgroup: options" );
diff --git a/ui/controlgroup.js b/ui/controlgroup.js
deleted file mode 100644 (file)
index effe42d..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-/*!
- * jQuery UI Controlgroup @VERSION
- * http://jqueryui.com
- *
- * Copyright 2014 jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/controlgroup/
- */
-( function( factory ) {
-       if ( typeof define === "function" && define.amd ) {
-
-               // AMD. Register as an anonymous module.
-               define( [
-                       "jquery",
-                       "./core",
-                       "./widget"
-               ], factory );
-       } else {
-
-               // Browser globals
-               factory( jQuery );
-       }
-}( function( $ ) {
-
-return $.widget( "ui.controlgroup", {
-       version: "@VERSION",
-       defaultElement: "<div>",
-       options: {
-               disabled: null,
-               items: {
-                       "button": "input[type=button], input[type=submit], input[type=reset], button, a",
-                       "checkboxradio": "input[type='checkbox'], input[type='radio']",
-                       "selectmenu": "select"
-               },
-               direction: "horizontal",
-               excludeInvisible: true
-       },
-
-       _create: function() {
-               this._enhance();
-       },
-
-       // To support the enhanced option in jQuery Mobile, we isolate DOM manipulation
-       _enhance: function() {
-               this.element.attr( "role", "toolbar" );
-               this.refresh();
-       },
-
-       _destroy: function() {
-               this._callChildMethod( "destroy" );
-               this.childWidgets.removeData( "ui-controlgroup-data" );
-               this.element.removeAttr( "role" );
-       },
-
-       _initWidgets: function() {
-               var that = this,
-                       childWidgets = [];
-
-               // First we iterate over each of the items options
-               $.each( this.options.items, function( widget, selector ) {
-                       var widgets,
-                               options = {};
-
-                       // We assume everything is in the middle to start because we can't determine
-                       // first / last elements until all enhancments are done.
-                       if ( that[ "_" + widget + "_options" ] ) {
-                               options = that[ "_" + widget + "_options" ]( "middle" );
-                       }
-
-                       // Make sure the widget actually exists and has a selector set
-                       if ( $.fn[ widget ] && selector ) {
-
-                               // Find instances of this widget inside controlgroup and run method or set options
-                               widgets = that.element.find( selector )[ widget ]( options );
-
-                               // Don't set data or add to the collection if the method is destroy
-                               widgets.each( function() {
-
-                                       // Set data on the widget element pointing to the this.element of the widget
-                                       // and telling us what type of widget this is
-                                       var widgetElement =
-                                               $( this )[ widget ]( "widget" ).data( "ui-controlgroup-data", {
-                                                       "widgetType": widget,
-                                                       "element": $( this )
-                                               } );
-
-                                       childWidgets.push( widgetElement[ 0 ] );
-                               } );
-                       }
-               } );
-
-               this.childWidgets = $( $.unique( childWidgets ) );
-       },
-
-       _callChildMethod: function( method ) {
-               this.childWidgets.each( function() {
-                       var element = $( this ),
-                               data = element.data( "ui-controlgroup-data" );
-
-                       data.element[ data.widgetType ]( method );
-               } );
-       },
-
-       _buildSimpleOptions: function( position, direction, key ) {
-               var result = {
-                       classes: {}
-               };
-               result.classes[ key ] = {
-                       "middle": null,
-                       "first": "ui-corner-" + ( direction ? "top" : "left" ),
-                       "last": "ui-corner-" + ( direction ? "bottom" : "right" )
-               }[ position ];
-
-               return result;
-       },
-
-       _button_options: function( position, direction ) {
-               return this._buildSimpleOptions( position, direction, "ui-button" );
-       },
-
-       _checkboxradio_options: function( position, direction ) {
-               return this._buildSimpleOptions( position, direction, "ui-checkboxradio-label" );
-       },
-
-       _selectmenu_options: function( position, direction ) {
-               return {
-                       width: direction ? "auto" : false,
-                       classes: {
-                               middle: {
-                                       "ui-selectmenu-button-open": null,
-                                       "ui-selectmenu-button-closed": null
-                               },
-                               first: {
-                                       "ui-selectmenu-button-open":
-                                       "ui-corner-" + ( direction ? "top" : "tl" ),
-                                       "ui-selectmenu-button-closed":
-                                       "ui-corner-" + ( direction ? "top" : "left" )
-                               },
-                               last: {
-                                       "ui-selectmenu-button-open":
-                                       direction ? null : "ui-corner-tr",
-                                       "ui-selectmenu-button-closed":
-                                       "ui-corner-" + ( direction ? "bottom" : "right" )
-                               }
-
-                       }[ position ]
-               };
-       },
-
-       _setOption: function( key, value ) {
-               if ( key === "direction" ) {
-                       this._removeClass( "ui-controlgroup-" + this.options.direction );
-               }
-
-               this._super( key, value );
-               if ( key === "disabled" ) {
-                       this._callChildMethod( value ? "disable" : "enable" );
-                       return;
-               }
-
-               this.refresh();
-       },
-
-       refresh: function() {
-               var children,
-                       that = this;
-
-               this._addClass( "ui-controlgroup ui-controlgroup-" + this.options.direction );
-
-               if ( this.options.direction === "horizontal" ) {
-                       this._addClass( null, "ui-helper-clearfix" );
-               }
-               this._initWidgets();
-
-               children = this.childWidgets;
-
-               // We filter here because we need to track all childWidgets not just the visible ones
-               if ( this.options.excludeInvisible ) {
-                       children = children.filter( ":visible" );
-               }
-
-               if ( children.length ) {
-
-                       // We do this last because we need to make sure all enhancment is done
-                       // before determining first and last
-                       [ "first", "last" ].forEach( function( value ) {
-                               var data = children[ value ]().data( "ui-controlgroup-data" );
-                               if ( that[ "_" + data.widgetType + "_options" ] ) {
-                                       data.element[ data.widgetType ](
-                                               that[ "_" + data.widgetType + "_options" ](
-                                                       value,
-                                                       that.options.direction === "vertical"
-                                               )
-                                       );
-                               }
-                       } );
-
-                       // Finally call the refresh method on each of the child widgets.
-                       this._callChildMethod( "refresh" );
-               }
-       }
-} );
-} ) );
diff --git a/ui/widgets/controlgroup.js b/ui/widgets/controlgroup.js
new file mode 100644 (file)
index 0000000..1614f91
--- /dev/null
@@ -0,0 +1,204 @@
+/*!
+ * jQuery UI Controlgroup @VERSION
+ * http://jqueryui.com
+ *
+ * Copyright 2014 jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/controlgroup/
+ */
+( function( factory ) {
+       if ( typeof define === "function" && define.amd ) {
+
+               // AMD. Register as an anonymous module.
+               define( [
+                       "jquery",
+                       "../widget"
+               ], factory );
+       } else {
+
+               // Browser globals
+               factory( jQuery );
+       }
+}( function( $ ) {
+
+return $.widget( "ui.controlgroup", {
+       version: "@VERSION",
+       defaultElement: "<div>",
+       options: {
+               disabled: null,
+               items: {
+                       "button": "input[type=button], input[type=submit], input[type=reset], button, a",
+                       "checkboxradio": "input[type='checkbox'], input[type='radio']",
+                       "selectmenu": "select"
+               },
+               direction: "horizontal",
+               excludeInvisible: true
+       },
+
+       _create: function() {
+               this._enhance();
+       },
+
+       // To support the enhanced option in jQuery Mobile, we isolate DOM manipulation
+       _enhance: function() {
+               this.element.attr( "role", "toolbar" );
+               this.refresh();
+       },
+
+       _destroy: function() {
+               this._callChildMethod( "destroy" );
+               this.childWidgets.removeData( "ui-controlgroup-data" );
+               this.element.removeAttr( "role" );
+       },
+
+       _initWidgets: function() {
+               var that = this,
+                       childWidgets = [];
+
+               // First we iterate over each of the items options
+               $.each( this.options.items, function( widget, selector ) {
+                       var widgets,
+                               options = {};
+
+                       // We assume everything is in the middle to start because we can't determine
+                       // first / last elements until all enhancments are done.
+                       if ( that[ "_" + widget + "_options" ] ) {
+                               options = that[ "_" + widget + "_options" ]( "middle" );
+                       }
+
+                       // Make sure the widget actually exists and has a selector set
+                       if ( $.fn[ widget ] && selector ) {
+
+                               // Find instances of this widget inside controlgroup and run method or set options
+                               widgets = that.element.find( selector )[ widget ]( options );
+
+                               // Don't set data or add to the collection if the method is destroy
+                               widgets.each( function() {
+
+                                       // Set data on the widget element pointing to the this.element of the widget
+                                       // and telling us what type of widget this is
+                                       var widgetElement =
+                                               $( this )[ widget ]( "widget" ).data( "ui-controlgroup-data", {
+                                                       "widgetType": widget,
+                                                       "element": $( this )
+                                               } );
+
+                                       childWidgets.push( widgetElement[ 0 ] );
+                               } );
+                       }
+               } );
+
+               this.childWidgets = $( $.unique( childWidgets ) );
+       },
+
+       _callChildMethod: function( method ) {
+               this.childWidgets.each( function() {
+                       var element = $( this ),
+                               data = element.data( "ui-controlgroup-data" );
+
+                       data.element[ data.widgetType ]( method );
+               } );
+       },
+
+       _buildSimpleOptions: function( position, direction, key ) {
+               var result = {
+                       classes: {}
+               };
+               result.classes[ key ] = {
+                       "middle": null,
+                       "first": "ui-corner-" + ( direction ? "top" : "left" ),
+                       "last": "ui-corner-" + ( direction ? "bottom" : "right" )
+               }[ position ];
+
+               return result;
+       },
+
+       _button_options: function( position, direction ) {
+               return this._buildSimpleOptions( position, direction, "ui-button" );
+       },
+
+       _checkboxradio_options: function( position, direction ) {
+               return this._buildSimpleOptions( position, direction, "ui-checkboxradio-label" );
+       },
+
+       _selectmenu_options: function( position, direction ) {
+               return {
+                       width: direction ? "auto" : false,
+                       classes: {
+                               middle: {
+                                       "ui-selectmenu-button-open": null,
+                                       "ui-selectmenu-button-closed": null
+                               },
+                               first: {
+                                       "ui-selectmenu-button-open":
+                                       "ui-corner-" + ( direction ? "top" : "tl" ),
+                                       "ui-selectmenu-button-closed":
+                                       "ui-corner-" + ( direction ? "top" : "left" )
+                               },
+                               last: {
+                                       "ui-selectmenu-button-open":
+                                       direction ? null : "ui-corner-tr",
+                                       "ui-selectmenu-button-closed":
+                                       "ui-corner-" + ( direction ? "bottom" : "right" )
+                               }
+
+                       }[ position ]
+               };
+       },
+
+       _setOption: function( key, value ) {
+               if ( key === "direction" ) {
+                       this._removeClass( "ui-controlgroup-" + this.options.direction );
+               }
+
+               this._super( key, value );
+               if ( key === "disabled" ) {
+                       this._callChildMethod( value ? "disable" : "enable" );
+                       return;
+               }
+
+               this.refresh();
+       },
+
+       refresh: function() {
+               var children,
+                       that = this;
+
+               this._addClass( "ui-controlgroup ui-controlgroup-" + this.options.direction );
+
+               if ( this.options.direction === "horizontal" ) {
+                       this._addClass( null, "ui-helper-clearfix" );
+               }
+               this._initWidgets();
+
+               children = this.childWidgets;
+
+               // We filter here because we need to track all childWidgets not just the visible ones
+               if ( this.options.excludeInvisible ) {
+                       children = children.filter( ":visible" );
+               }
+
+               if ( children.length ) {
+
+                       // We do this last because we need to make sure all enhancment is done
+                       // before determining first and last
+                       [ "first", "last" ].forEach( function( value ) {
+                               var data = children[ value ]().data( "ui-controlgroup-data" );
+                               if ( that[ "_" + data.widgetType + "_options" ] ) {
+                                       data.element[ data.widgetType ](
+                                               that[ "_" + data.widgetType + "_options" ](
+                                                       value,
+                                                       that.options.direction === "vertical"
+                                               )
+                                       );
+                               }
+                       } );
+
+                       // Finally call the refresh method on each of the child widgets.
+                       this._callChildMethod( "refresh" );
+               }
+       }
+} );
+} ) );