##// END OF EJS Templates
Make output widget reactive.
Make output widget reactive.

File last commit:

r18824:8bfce450
r18954:9844b2f2
Show More
widget_bool.js
141 lines | 4.8 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
Added PEP8 style comments to all of the JS code.
r14609 // 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) {
// Set a css attr of the widget view.
this.$checkbox.css(name, value);
},
Jonathan Frederic
More fixes
r14595 handle_click: function() {
Jonathan Frederic
Added PEP8 style comments to all of the JS code.
r14609 // Handles when the checkbox is clicked.
Jonathan Frederic
More fixes
r14595 // Calling model.set will trigger all of the other views of the
// model to update.
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
make JS update comment more descriptive (english)
r14568 // 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) {
Jonathan Frederic
Made checkbox and togglebutton compatable with disabled property
r14304 var disabled = this.model.get('disabled');
this.$checkbox.prop('disabled', disabled);
Jonathan Frederic
Added labels to basic widgets
r14292 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 {
Jonathan Frederic
Replace .html with .text everywhere possible
r14663 this.$label.text(description);
Jonathan Frederic
Add latex support in widget labels,...
r16817 MathJax.Hub.Queue(["Typeset",MathJax.Hub,this.$label.get(0)]);
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
Added PEP8 style comments to all of the JS code.
r14609 // 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
make JS update comment more descriptive (english)
r14568 // 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
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) {
Jonathan Frederic
More fixes
r14595
Jonathan Frederic
Made checkbox and togglebutton compatable with disabled property
r14304 var disabled = this.model.get('disabled');
Jonathan Frederic
toggle button, set $el to button (removing extra div)
r14571 this.$el.prop('disabled', disabled);
Jonathan Frederic
Made checkbox and togglebutton compatable with disabled property
r14304
Jonathan Frederic
Added labels to basic widgets
r14292 var description = this.model.get('description');
Sylvain Corlay
Tooltip on toggle button
r18824 this.$el.attr("title", this.model.get("tooltip"));
MinRK
handle space-only strings, not just zero-length
r15330 if (description.trim().length === 0) {
MinRK
use non-breaking space for button with no description...
r15329 this.$el.html("&nbsp;"); // Preserve button height
Jonathan Frederic
Added labels to basic widgets
r14292 } else {
Jonathan Frederic
Replace .html with .text everywhere possible
r14663 this.$el.text(description);
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
Added PEP8 style comments to all of the JS code.
r14609 // Handles and validates user input.
Jonathan Frederic
add locks to update everywhere by using options to pass this...
r14570
Jonathan Frederic
comment model.set, so we know that it triggers update on other views
r14569 // 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 });