[Kimchi-devel] [PATCH] Add jquery widget dropDown button
Yu Xin Huo
huoyuxin at linux.vnet.ibm.com
Fri Jan 3 07:12:06 UTC 2014
On 12/31/2013 1:54 PM, zhoumeina wrote:
> This patch is working for make dropDown button a jquery
> widget.
> We can create a dropdown button simply with:
> $('#buttonId').dropdownButton();
>
> And in html:
>
> <div id="buttonId">
> <span class="text">$_("Button label")</span><span class="arrow"></span>
> <div>
> <button><span class="text">$_("dropdownbutton1")</span></button>
> <button><span class="text">$_("dropdownbutton2")</span></button>
> </div>
> </div>
For dropdown button, it is a button plus a menu. Refer to below to
define the html structure.
http://getbootstrap.com/components/#btn-dropdowns
There are still some css classes defined on the internal html elements,
remove them from html and add them in javascript.
>
> If we need some other style, you can add it to html, and bind action in js.
> Not a perfect widget, but a beginning.
> Signed-off-by: zhoumeina <zhoumein at linux.vnet.ibm.com>
> ---
> ui/js/widgets/button-dropDown.js | 42 ++++++++++++++++++++++++++++++++++++++
> 1 files changed, 42 insertions(+), 0 deletions(-)
> create mode 100644 ui/js/widgets/button-dropDown.js
>
> diff --git a/ui/js/widgets/button-dropDown.js b/ui/js/widgets/button-dropDown.js
> new file mode 100644
> index 0000000..49259e3
> --- /dev/null
> +++ b/ui/js/widgets/button-dropDown.js
> @@ -0,0 +1,42 @@
> +/*
> + * Project Kimchi
> + *
> + * Copyright IBM, Corp. 2013
> + *
> + * Authors:
> + * zhoumeina <zhoumein at linux.vnet.ibm.com>
> + *
> + * Licensed under the Apache License, Version 2.0 (the 'License');
> + * you may not use this file except in compliance with the License.
> + * You may obtain a copy of the License at
> + *
> + * http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing, software
> + * distributed under the License is distributed on an 'AS IS' BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> + * See the License for the specific language governing permissions and
> + * limitations under the License.
> + */
> +(function($) {
> + $.widget('kimchi.dropdownButton', {
> + options: {
> + key: 0,
> + value: 0
> + },
I did not see any usage of 'key' and 'value', remove them.
> +
> + _create : function() {
> + this.actionDiv = this.element;
> + this.actionDiv.addClass('btn dropdown popable');
> + this.actionDiv.find('div').addClass('popover');
> + this.actionDiv.find('button').addClass('button-big');
> + },
> +
> + _setOption : function(key,value) {},
The _setOption method has an empty body, remove it.
> +
> + destroy : function() {
> + // call the base destroy function
> + $.Widget.prototype.destroy.call(this);
> + }
In destroy method, what are added to html in '_create' method, they
should be removed here to restore the html back to original state.
http://learn.jquery.com/jquery-ui/widget-factory/how-to-use-the-widget-factory/
> + });
> +}(jQuery));
> \ No newline at end of file
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/kimchi-devel/attachments/20140103/57eece47/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: eefdjcgb.png
Type: image/png
Size: 15864 bytes
Desc: not available
URL: <http://lists.ovirt.org/pipermail/kimchi-devel/attachments/20140103/57eece47/attachment.png>
More information about the Kimchi-devel
mailing list