##// END OF EJS Templates
Revert PR #5388...
Revert PR #5388 We realised that #5388 introduces a different problem of about the same magnitude as the one it fixes (both are quite minor). A proper fix would be too invasive this close to release, and after discussion, we decided it was better to leave the same problem that has been in previous releases.

File last commit:

r15427:3bb7cf6a
r15886:7bba2551
Show More
widget_bool.js
125 lines | 4.5 KiB | application/javascript | JavascriptLexer
Jonathan Frederic
Added standard IPY JS header to widget JS files.
r14366 //----------------------------------------------------------------------------
// Copyright (C) 2013 The IPython Development Team
//
// Distributed under the terms of the BSD License. The full license is in
// the file COPYING, distributed as part of this software.
//----------------------------------------------------------------------------
//============================================================================
// BoolWidget
//============================================================================
/**
* @module IPython
* @namespace IPython
**/
Jonathan Frederic
Added boolean widget
r14259
Jonathan Frederic
Updated require references to point to new files
r15427 define(["widgets/js/widget"], function(WidgetManager){
Jonathan Frederic
Added PEP8 style comments to all of the JS code.
r14609
Jonathan Frederic
Renamed widgets......
r14834 var CheckboxView = IPython.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
Jonathan Frederic
MAJOR CSS FIXES...
r14295 .addClass('widget-hbox-single');
this.$label = $('<div />')
Jonathan Frederic
Fixed vertical widget labels
r14297 .addClass('widget-hlabel')
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
Jonathan Frederic
Set default element to be styled in built-in views
r14314 this.$el_to_style = this.$checkbox; // Set default element to style
Jonathan Frederic
Added boolean widget
r14259 this.update(); // Set defaults.
},
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
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
Renamed widgets......
r14834 WidgetManager.register_widget_view('CheckboxView', CheckboxView);
Jonathan Frederic
Added toggle button view
r14262
Jonathan Frederic
Added PEP8 style comments to all of the JS code.
r14609
Jonathan Frederic
s/BaseWidgetView/WidgetView and s/WidgetView/DOMWidgetView
r14564 var ToggleButtonView = IPython.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
Added toggle button view
r14262 .addClass('btn')
.attr('type', 'button')
Jonathan Frederic
More fixes
r14595 .on('click', function (e) {
e.preventDefault();
that.handle_click();
}));
Jonathan Frederic
Added toggle button view
r14262
this.update(); // Set defaults.
},
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');
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
Widget require.js fix...
r14627 WidgetManager.register_widget_view('ToggleButtonView', ToggleButtonView);
Jonathan Frederic
Added boolean widget
r14259 });