##// END OF EJS Templates
Merge pull request #1 from ipython/master...
Merge pull request #1 from ipython/master Update from ipython/ipython:master

File last commit:

r20606:e6c4eaaa
r20633:d587f5ea merge
Show More
widget_bool.js
157 lines | 5.2 KiB | application/javascript | JavascriptLexer
Jonathan Frederic
Almost done!...
r17198 // Copyright (c) IPython Development Team.
// Distributed under the terms of the Modified BSD License.
Jonathan Frederic
Added standard IPY JS header to widget JS files.
r14366
Jonathan Frederic
Almost done!...
r17198 define([
"widgets/js/widget",
Jonathan Frederic
Fix all the tests
r17216 "jquery",
MinRK
add bootstrap shim for require...
r17312 "bootstrap",
Jonathan Frederic
Fix all the tests
r17216 ], function(widget, $){
Jonathan Frederic
Added standard IPY JS header to widget JS files.
r14366
Jonathan Frederic
Almost done!...
r17198 var CheckboxView = widget.DOMWidgetView.extend({
Jonathan Frederic
Added boolean widget
r14259 render : function(){
Jonathan Frederic
Ran function comment conversion tool
r19176 /**
* Called when view is rendered.
*/
Jonathan Frederic
Make sure backbone events fire....
r14395 this.$el
Jason Grout
Add semantic classes to top-level containers for single widgets...
r18120 .addClass('widget-hbox widget-checkbox');
Jonathan Frederic
MAJOR CSS FIXES...
r14295 this.$label = $('<div />')
Jonathan Frederic
Cleaned up hbox and vbox widget div styles,...
r17929 .addClass('widget-label')
Jonathan Frederic
MAJOR CSS FIXES...
r14295 .appendTo(this.$el)
Jonathan Frederic
Added labels to basic widgets
r14292 .hide();
Jonathan Frederic
Added boolean widget
r14259 this.$checkbox = $('<input />')
.attr('type', 'checkbox')
Jonathan Frederic
More fixes
r14595 .appendTo(this.$el)
.click($.proxy(this.handle_click, this));
Jonathan Frederic
Added boolean widget
r14259
this.update(); // Set defaults.
},
Jonathan Frederic
More fixes
r14595
Jonathan Frederic
Partial implementation of styles
r17723 update_attr: function(name, value) {
Jonathan Frederic
Ran function comment conversion tool
r19176 /**
* Set a css attr of the widget view.
*/
Jonathan Frederic
Fix padding of widgets.
r19366 if (name == 'padding' || name == 'margin') {
this.$el.css(name, value);
} else {
this.$checkbox.css(name, value);
}
Jonathan Frederic
Partial implementation of styles
r17723 },
Jonathan Frederic
More fixes
r14595 handle_click: function() {
Jonathan Frederic
Ran function comment conversion tool
r19176 /**
* Handles when the checkbox is clicked.
*
* Calling model.set will trigger all of the other views of the
* model to update.
*/
Jonathan Frederic
More fixes
r14595 var value = this.model.get('value');
this.model.set('value', ! value, {updated_view: this});
this.touch();
},
Jonathan Frederic
Added boolean widget
r14259
Jonathan Frederic
add locks to update everywhere by using options to pass this...
r14570 update : function(options){
Jonathan Frederic
Ran function comment conversion tool
r19176 /**
* Update the contents of this view
*
* Called when the model is changed. The model may have been
* changed by another view or by a state update from the back-end.
*/
Jonathan Frederic
More fixes
r14595 this.$checkbox.prop('checked', this.model.get('value'));
Jonathan Frederic
Added labels to basic widgets
r14292
Jonathan Frederic
More fixes
r14595 if (options === undefined || options.updated_view != this) {
Sylvain Corlay
Moving styling to else statement
r20606 this.$checkbox.prop("disabled", this.model.get("disabled"));
Jonathan Frederic
Made checkbox and togglebutton compatable with disabled property
r14304
Sylvain Corlay
Moving styling to else statement
r20606 var description = this.model.get("description");
MinRK
handle space-only strings, not just zero-length
r15330 if (description.trim().length === 0) {
Jonathan Frederic
MAJOR CSS FIXES...
r14295 this.$label.hide();
Jonathan Frederic
Added labels to basic widgets
r14292 } else {
Nicholas Bollweg (Nick)
reversing order of arguments, as text may already exist
r19196 this.typeset(this.$label, description);
Jonathan Frederic
MAJOR CSS FIXES...
r14295 this.$label.show();
Jonathan Frederic
Added labels to basic widgets
r14292 }
Jonathan Frederic
Added boolean widget
r14259 }
Jonathan Frederic
Renamed widgets......
r14834 return CheckboxView.__super__.update.apply(this);
Jonathan Frederic
Added boolean widget
r14259 },
});
Jonathan Frederic
Added toggle button view
r14262
Jonathan Frederic
Added PEP8 style comments to all of the JS code.
r14609
Jonathan Frederic
Almost done!...
r17198 var ToggleButtonView = widget.DOMWidgetView.extend({
Jonathan Frederic
More fixes
r14595 render : function() {
Jonathan Frederic
Ran function comment conversion tool
r19176 /**
* Called when view is rendered.
*/
Jonathan Frederic
More fixes
r14595 var that = this;
Jonathan Frederic
toggle button, set $el to button (removing extra div)
r14571 this.setElement($('<button />')
Jonathan Frederic
Ran jdfreder/bootstrap2to3
r16913 .addClass('btn btn-default')
Jonathan Frederic
Added toggle button view
r14262 .attr('type', 'button')
Jonathan Frederic
More fixes
r14595 .on('click', function (e) {
e.preventDefault();
that.handle_click();
}));
Sylvain Corlay
Tooltip on toggle button
r18824 this.$el.attr("data-toggle", "tooltip");
Jonathan Frederic
Added Bootstrap specific classes,...
r17728 this.model.on('change:button_style', function(model, value) {
this.update_button_style();
}, this);
this.update_button_style('');
Jonathan Frederic
Added toggle button view
r14262 this.update(); // Set defaults.
},
Jonathan Frederic
Added Bootstrap specific classes,...
r17728
update_button_style: function(previous_trait_value) {
var class_map = {
primary: ['btn-primary'],
success: ['btn-success'],
info: ['btn-info'],
warning: ['btn-warning'],
danger: ['btn-danger']
};
this.update_mapped_classes(class_map, 'button_style', previous_trait_value);
},
Jonathan Frederic
Added toggle button view
r14262
Jonathan Frederic
add locks to update everywhere by using options to pass this...
r14570 update : function(options){
Jonathan Frederic
Ran function comment conversion tool
r19176 /**
* Update the contents of this view
*
Sylvain Corlay
Moving styling to else statement
r20606 * Called when the model is changed. The model may have been
Jonathan Frederic
Ran function comment conversion tool
r19176 * changed by another view or by a state update from the back-end.
*/
Jonathan Frederic
Many checks off the todo list, test fixes
r14583 if (this.model.get('value')) {
this.$el.addClass('active');
} else {
this.$el.removeClass('active');
}
Jonathan Frederic
Added labels to basic widgets
r14292
Jonathan Frederic
Many checks off the todo list, test fixes
r14583 if (options === undefined || options.updated_view != this) {
Sylvain Corlay
Moving styling to else statement
r20606 this.$el.prop("disabled", this.model.get("disabled"));
Sylvain Corlay
Tooltip on toggle button
r18824 this.$el.attr("title", this.model.get("tooltip"));
Sylvain Corlay
Moving styling to else statement
r20606
var description = this.model.get("description");
Sylvain Corlay
font awesome icon
r20397 var icon = this.model.get("icon");
if (description.trim().length === 0 && icon.trim().length ===0) {
MinRK
use non-breaking space for button with no description...
r15329 this.$el.html("&nbsp;"); // Preserve button height
Sylvain Corlay
Moving styling to else statement
r20606 } else {
this.$el.text(description);
$('<i class="fa"></i>').prependTo(this.$el).addClass(icon);
Jonathan Frederic
Added labels to basic widgets
r14292 }
Jonathan Frederic
Added toggle button view
r14262 }
Jonathan Frederic
Many checks off the todo list, test fixes
r14583 return ToggleButtonView.__super__.update.apply(this);
Jonathan Frederic
Added toggle button view
r14262 },
Jonathan Frederic
More fixes
r14595 handle_click: function(e) {
Jonathan Frederic
Ran function comment conversion tool
r19176 /**
* Handles and validates user input.
*
* Calling model.set will trigger all of the other views of the
* model to update.
*/
Jonathan Frederic
More fixes
r14595 var value = this.model.get('value');
this.model.set('value', ! value, {updated_view: this});
Jonathan Frederic
Moved touch logic out of model into view....
r14482 this.touch();
Jonathan Frederic
Added toggle button view
r14262 },
});
Jonathan Frederic
Almost done!...
r17198
return {
'CheckboxView': CheckboxView,
'ToggleButtonView': ToggleButtonView,
};
Jonathan Frederic
Added boolean widget
r14259 });