Allow resizing of regular multi-select boxes

Remove event handler

Add mouse leave event handler

Improve visibility and accessibility

Fix tag name

Style compromise

Repack charts
This commit is contained in:
guerler
2015-11-04 02:16:45 -05:00
parent 593cb4074b
commit 7717659c78
9 changed files with 65 additions and 27 deletions
+5 -5
View File
@@ -4,8 +4,8 @@
var ensure_dd_helper = function () {
// Insert div that covers everything when dragging the borders
if ( $( "#DD-helper" ).length == 0 ) {
$( "<div id='DD-helper'/>" ).appendTo( "body" ).hide();
if ( $( "#dd-helper" ).length == 0 ) {
$( "<div id='dd-helper'/>" ).appendTo( "body" ).hide();
}
}
@@ -111,7 +111,7 @@ $.extend( Panel.prototype, {
}
this.$drag.on( "mousedown", function( e ) {
prevX = e.pageX;
$( '#DD-helper' ).show()
$( '#dd-helper' ).show()
.on( 'mousemove', move )
.one( 'mouseup', function( e ){
$( this ).hide().off( 'mousemove', move );
@@ -259,7 +259,7 @@ $(function() {
var $dropdowns = $("#masthead ul.nav > li.dropdown > .dropdown-menu");
$("body").on( "click.nav_popups", function( e ) {
$dropdowns.hide();
$("#DD-helper").hide();
$("#dd-helper").hide();
// If the target is in the menu, treat normally
if ( $(e.target).closest( "#masthead ul.nav > li.dropdown > .dropdown-menu" ).length ) {
return;
@@ -267,7 +267,7 @@ $(function() {
// Otherwise, was the click in a tab
var $clicked = $(e.target).closest( "#masthead ul.nav > li.dropdown" );
if ( $clicked.length ) {
$("#DD-helper").show();
$("#dd-helper").show();
$clicked.children( ".dropdown-menu" ).show();
e.preventDefault();
}
@@ -29,8 +29,20 @@ var View = Backbone.View.extend({
// link elements
this.$select = this.$el.find('.select');
this.$icon = this.$el.find('.icon');
this.$button = this.$el.find('.button');
this.$icon_dropdown = this.$el.find('.icon-dropdown');
// allow regular multi-select field to be resized
var minHeight = null;
this.$('.icon-resize').on('mousedown', function(event) {
var currentY = event.pageY;
var currentHeight = self.$select.height();
minHeight = minHeight || currentHeight;
$('#dd-helper').show().on('mousemove', function(event) {
self.$select.height(Math.max(currentHeight + (event.pageY - currentY), minHeight));
}).on('mouseup mouseleave', function() {
$('#dd-helper').hide().off();
});
});
// multiple select fields have an additional button and other custom properties
if (this.options.multiple) {
@@ -47,11 +59,11 @@ var View = Backbone.View.extend({
}
});
this.$el.prepend(this.all_button.$el);
} else {
this.$el.addClass('ui-select-multiple');
}
// customize style and content
this.$el.addClass('ui-select-multiple');
this.$select.prop('multiple', true);
this.$button.remove();
this.$icon_dropdown.remove();
}
// update initial options
@@ -142,15 +154,15 @@ var View = Backbone.View.extend({
/** Show a spinner indicating that the select options are currently loaded
*/
wait: function() {
this.$icon.removeClass();
this.$icon.addClass('fa fa-spinner fa-spin');
this.$icon_dropdown.removeClass();
this.$icon_dropdown.addClass('icon-dropdown fa fa-spinner fa-spin');
},
/** Hide spinner indicating that the request has been completed
*/
unwait: function() {
this.$icon.removeClass();
this.$icon.addClass('fa fa-caret-down');
this.$icon_dropdown.removeClass();
this.$icon_dropdown.addClass('icon-dropdown fa fa-caret-down');
},
/** Returns true if the field is disabled
@@ -267,8 +279,9 @@ var View = Backbone.View.extend({
_template: function(options) {
return '<div id="' + options.id + '" class="' + options.cls + '">' +
'<select id="' + options.id + '_select" class="select"/>' +
'<div class="button">' +
'<i class="icon"/>' +
'<div class="icon-dropdown"/>' +
'<div class="icon-resize">' +
'<i class="fa fa-angle-double-right fa-rotate-45"/>' +
'</div>' +
'</div>';
}
+2 -2
View File
@@ -211,7 +211,7 @@ body.has-message-box.has-inactivity-box {
height: @panel_footer_height;
line-height: @panel_footer_height;
width: 100%;
z-index: 1000; // Above #DD-helper
z-index: 1000; // Above #dd-helper
border-top: solid @layout-border-color 1px;
background: @navbar-default-bg;
@@ -328,7 +328,7 @@ div.unified-panel-body-background {
}
// Used for dragging panels, popup menus, to deal with capturing clicks in iframes
#DD-helper {
#dd-helper {
background: white;
opacity: 0;
z-index: 900; // Bootstrap elements start at 1000
+29 -4
View File
@@ -19,6 +19,14 @@
transition: none !important;
}
.fa-rotate-45 {
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
}
// default margins
@ui-margin-vertical: 5px;
@ui-margin-horizontal: 5px;
@@ -566,10 +574,13 @@
.ui-select {
position: relative;
.button {
.icon-dropdown {
position: absolute;
top: 5px;
right: 5px;
top: 8px;
right: 8px;
}
.icon-resize {
display: none;
}
select {
position: relative;
@@ -601,8 +612,22 @@
}
.ui-select-multiple {
.icon-resize {
display: block;
position: absolute;
bottom: 0px;
right: 0px;
width: 20px;
height: 20px;
cursor: row-resize;
i {
position: absolute;
right: 3px;
bottom: 2px;
}
}
select {
height: 80px !important;
height: 80px;
.box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
}
}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"ui-select-default.js","sources":["../../../src/mvc/ui/ui-select-default.js"],"names":["define","Utils","Buttons","View","Backbone","extend","optionsDefault","id","uid","cls","error_text","empty_text","visible","wait","multiple","searchable","optional","initialize","options","self","this","merge","setElement","_template","$select","$el","find","$icon","$button","all_button","ButtonCheck","onclick","new_value","value","_availableOptions","trigger","prepend","addClass","prop","remove","update","data","undefined","hide","show","on","onchange","exists","val","select2","current","_getValue","$","isArray","length","_size","first","text","unwait","removeClass","disabled","is","enable","disable","append","_templateOption","label","key","off","setOnChange","callback","validate","available","each","i","e","push","attr"],"mappings":"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"}
{"version":3,"file":"ui-select-default.js","sources":["../../../src/mvc/ui/ui-select-default.js"],"names":["define","Utils","Buttons","View","Backbone","extend","optionsDefault","id","uid","cls","error_text","empty_text","visible","wait","multiple","searchable","optional","initialize","options","self","this","merge","setElement","_template","$select","$el","find","$icon_dropdown","minHeight","$","on","event","currentY","pageY","currentHeight","height","show","Math","max","hide","off","all_button","ButtonCheck","onclick","new_value","value","_availableOptions","trigger","prepend","addClass","prop","remove","update","data","undefined","onchange","exists","val","select2","current","_getValue","isArray","length","_size","first","text","unwait","removeClass","disabled","is","enable","disable","append","_templateOption","label","key","setOnChange","callback","validate","available","each","i","e","push","attr"],"mappings":"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"}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,2 +1,2 @@
define(["utils/utils","mvc/ui/ui-buttons"],function(a,b){var c=Backbone.View.extend({optionsDefault:{id:a.uid(),cls:"ui-select",error_text:"No options available",empty_text:"Nothing selected",visible:!0,wait:!1,multiple:!1,searchable:!0,optional:!1},initialize:function(c){var d=this;this.options=a.merge(c,this.optionsDefault),this.setElement(this._template(this.options)),this.$select=this.$el.find(".select"),this.$icon=this.$el.find(".icon"),this.$button=this.$el.find(".button"),this.options.multiple&&(this.options.searchable&&(this.all_button=new b.ButtonCheck({onclick:function(){var a=[];0!==d.all_button.value()&&(a=d._availableOptions()),d.value(a),d.trigger("change")}}),this.$el.prepend(this.all_button.$el)),this.$el.addClass("ui-select-multiple"),this.$select.prop("multiple",!0),this.$button.remove()),this.update(this.options.data),void 0!==this.options.value&&this.value(this.options.value),this.options.visible||this.hide(),this.options.wait?this.wait():this.show(),this.$select.on("change",function(){d.trigger("change")}),this.on("change",function(){d.options.onchange&&d.options.onchange(this.value())})},value:function(a){void 0!==a&&(null===a&&(a="__null__"),(this.exists(a)||this.options.multiple)&&(this.$select.val(a),this.$select.select2&&this.$select.select2("val",a)));var b=this._getValue();return this.all_button&&this.all_button.value($.isArray(b)&&b.length||0,this._size()),b},first:function(){var a=this.$select.find("option").first();return a.length>0?a.val():null},text:function(){return this.$select.find("option:selected").text()},show:function(){this.unwait(),this.$select.show(),this.$el.show()},hide:function(){this.$el.hide()},wait:function(){this.$icon.removeClass(),this.$icon.addClass("fa fa-spinner fa-spin")},unwait:function(){this.$icon.removeClass(),this.$icon.addClass("fa fa-caret-down")},disabled:function(){return this.$select.is(":disabled")},enable:function(){this.$select.prop("disabled",!1)},disable:function(){this.$select.prop("disabled",!0)},update:function(a){var b=this._getValue();this.$select.find("option").remove(),!this.options.multiple&&this.options.optional&&this.$select.append(this._templateOption({value:"__null__",label:this.options.empty_text}));for(var c in a)this.$select.append(this._templateOption(a[c]));0==this._size()?(this.disable(),this.$select.append(this._templateOption({value:"__null__",label:this.options.error_text}))):this.enable(),this.options.searchable&&(this.$select.select2("destroy"),this.$select.select2(),this.$(".select2-container .select2-search input").off("blur")),this.value(b),null!==this._getValue()||this.options.multiple&&this.options.optional||this.value(this.first())},setOnChange:function(a){this.options.onchange=a},exists:function(a){return this.$select.find('option[value="'+a+'"]').length>0},_getValue:function(){var b=this.$select.val();return a.validate(b)?b:null},_availableOptions:function(){var a=[];return this.$select.find("option").each(function(b,c){a.push($(c).attr("value"))}),a},_size:function(){return this.$select.find("option").length},_templateOption:function(a){return'<option value="'+a.value+'">'+a.label+"</option>"},_template:function(a){return'<div id="'+a.id+'" class="'+a.cls+'"><select id="'+a.id+'_select" class="select"/><div class="button"><i class="icon"/></div></div>'}});return{View:c}});
define(["utils/utils","mvc/ui/ui-buttons"],function(a,b){var c=Backbone.View.extend({optionsDefault:{id:a.uid(),cls:"ui-select",error_text:"No options available",empty_text:"Nothing selected",visible:!0,wait:!1,multiple:!1,searchable:!0,optional:!1},initialize:function(c){var d=this;this.options=a.merge(c,this.optionsDefault),this.setElement(this._template(this.options)),this.$select=this.$el.find(".select"),this.$icon_dropdown=this.$el.find(".icon-dropdown");var e=null;this.$(".icon-resize").on("mousedown",function(a){var b=a.pageY,c=d.$select.height();e=e||c,$("#dd-helper").show().on("mousemove",function(a){d.$select.height(Math.max(c+(a.pageY-b),e))}).on("mouseup mouseleave",function(){$("#dd-helper").hide().off()})}),this.options.multiple&&(this.options.searchable?(this.all_button=new b.ButtonCheck({onclick:function(){var a=[];0!==d.all_button.value()&&(a=d._availableOptions()),d.value(a),d.trigger("change")}}),this.$el.prepend(this.all_button.$el)):this.$el.addClass("ui-select-multiple"),this.$select.prop("multiple",!0),this.$icon_dropdown.remove()),this.update(this.options.data),void 0!==this.options.value&&this.value(this.options.value),this.options.visible||this.hide(),this.options.wait?this.wait():this.show(),this.$select.on("change",function(){d.trigger("change")}),this.on("change",function(){d.options.onchange&&d.options.onchange(this.value())})},value:function(a){void 0!==a&&(null===a&&(a="__null__"),(this.exists(a)||this.options.multiple)&&(this.$select.val(a),this.$select.select2&&this.$select.select2("val",a)));var b=this._getValue();return this.all_button&&this.all_button.value($.isArray(b)&&b.length||0,this._size()),b},first:function(){var a=this.$select.find("option").first();return a.length>0?a.val():null},text:function(){return this.$select.find("option:selected").text()},show:function(){this.unwait(),this.$select.show(),this.$el.show()},hide:function(){this.$el.hide()},wait:function(){this.$icon_dropdown.removeClass(),this.$icon_dropdown.addClass("icon-dropdown fa fa-spinner fa-spin")},unwait:function(){this.$icon_dropdown.removeClass(),this.$icon_dropdown.addClass("icon-dropdown fa fa-caret-down")},disabled:function(){return this.$select.is(":disabled")},enable:function(){this.$select.prop("disabled",!1)},disable:function(){this.$select.prop("disabled",!0)},update:function(a){var b=this._getValue();this.$select.find("option").remove(),!this.options.multiple&&this.options.optional&&this.$select.append(this._templateOption({value:"__null__",label:this.options.empty_text}));for(var c in a)this.$select.append(this._templateOption(a[c]));0==this._size()?(this.disable(),this.$select.append(this._templateOption({value:"__null__",label:this.options.error_text}))):this.enable(),this.options.searchable&&(this.$select.select2("destroy"),this.$select.select2(),this.$(".select2-container .select2-search input").off("blur")),this.value(b),null!==this._getValue()||this.options.multiple&&this.options.optional||this.value(this.first())},setOnChange:function(a){this.options.onchange=a},exists:function(a){return this.$select.find('option[value="'+a+'"]').length>0},_getValue:function(){var b=this.$select.val();return a.validate(b)?b:null},_availableOptions:function(){var a=[];return this.$select.find("option").each(function(b,c){a.push($(c).attr("value"))}),a},_size:function(){return this.$select.find("option").length},_templateOption:function(a){return'<option value="'+a.value+'">'+a.label+"</option>"},_template:function(a){return'<div id="'+a.id+'" class="'+a.cls+'"><select id="'+a.id+'_select" class="select"/><div class="icon-dropdown"/><div class="icon-resize"><i class="fa fa-angle-double-right fa-rotate-45"/></div></div>'}});return{View:c}});
//# sourceMappingURL=../../../maps/mvc/ui/ui-select-default.js.map
File diff suppressed because one or more lines are too long