##// END OF EJS Templates
don't use fixed header...
don't use fixed header instead, use static header and flex box to accomplish the same thing. fixes various issues related to scrolling, anchors, etc.

File last commit:

r19366:3d155011
r20050:a5cb9bb0
Show More
widget_bool.js
158 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) {
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 {
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
*
* 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
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 });