This commit is contained in:
marijus 2015-01-22 02:34:57 +01:00
commit 200220ff36
8 changed files with 37 additions and 8 deletions

View File

@ -84,7 +84,8 @@ $DIRECTORY_FALLBACK_SERVERS = array(
'https://red.zottel.red', 'https://red.zottel.red',
'https://red.pixelbits.de', 'https://red.pixelbits.de',
'https://my.federated.social', 'https://my.federated.social',
'https://whogotzot.com' 'https://whogotzot.com',
'https://redmatrix.nl'
); );

View File

@ -2,6 +2,9 @@
Roadmap for Redmatrix V3 Roadmap for Redmatrix V3
Crypto
Convert E2EE to dynamic loading (on demand) using jQuery.getScript() [or other methods] to only load encryption libs when you require them. This should also support multiple encryption libraries (e.g. SJCL, others) triggered from the choice of algorithm and remain pluggable.
Subscriptions and business models Subscriptions and business models
Build enough into core(/addons) to generate income (or at least try and cover costs) out of the box Build enough into core(/addons) to generate income (or at least try and cover costs) out of the box

File diff suppressed because one or more lines are too long

View File

@ -19,6 +19,9 @@
opacity: 1; opacity: 1;
z-index: 2; z-index: 2;
} }
.slider-container .back-bar .pointer.last-active {
z-index: 3;
}
.slider-container .back-bar .pointer-label { .slider-container .back-bar .pointer-label {
position: absolute; position: absolute;
top: -17px; top: -17px;

View File

@ -33,7 +33,9 @@
step : 1, step : 1,
format: '%s', format: '%s',
theme : 'theme-green', theme : 'theme-green',
width : 300 width : 300,
minRange: 0,
maxRange: 'auto'
}, },
template : '<div class="slider-container">\ template : '<div class="slider-container">\
<div class="back-bar">\ <div class="back-bar">\
@ -103,7 +105,8 @@
if(e.which !== 1){return;} if(e.which !== 1){return;}
e.stopPropagation(); e.preventDefault(); e.stopPropagation(); e.preventDefault();
var pointer = $(e.target); var pointer = $(e.target);
pointer.addClass('focused'); this.pointers.removeClass('last-active');
pointer.addClass('focused last-active');
this[(pointer.hasClass('low')?'low':'high') + 'Label'].addClass('focused'); this[(pointer.hasClass('low')?'low':'high') + 'Label'].addClass('focused');
$(document).on('mousemove.slider', $.proxy(this.onDrag, this, pointer)); $(document).on('mousemove.slider', $.proxy(this.onDrag, this, pointer));
$(document).on('mouseup.slider', $.proxy(this.onDragEnd, this)); $(document).on('mouseup.slider', $.proxy(this.onDragEnd, this));
@ -280,6 +283,7 @@
options = typeof option === 'object' && option; options = typeof option === 'object' && option;
if (!data) { if (!data) {
$this.data('plugin_' + pluginName, (data = new jRange(this, options))); $this.data('plugin_' + pluginName, (data = new jRange(this, options)));
$(window).resize(function() { data.setValue(data.getValue()); }); // Update slider position when window is resized to keep it in sync with scale
} }
// if first argument is a string, call silimarly named function // if first argument is a string, call silimarly named function
// this gives flexibility to call functions of the plugin e.g. // this gives flexibility to call functions of the plugin e.g.
@ -294,4 +298,4 @@
return result || this; return result || this;
}; };
})(jQuery, window, document); })(jQuery, window, document);

View File

@ -73,6 +73,9 @@
cursor: move; cursor: move;
opacity: 1; opacity: 1;
z-index: 2; z-index: 2;
&.last-active{
z-index: 3;
}
} }
.pointer-label { .pointer-label {
position: absolute; position: absolute;

View File

@ -124,9 +124,8 @@ if (typeof jQuery === 'undefined') {
this.views = []; this.views = [];
this.option = $.extend({}, Completer._getDefaults(), option); this.option = $.extend({}, Completer._getDefaults(), option);
if (!this.$el.is('input[type=text]') && !this.$el.is('textarea') && !element.isContentEditable && element.contentEditable != 'true') { if (!this.$el.is('input[type=text]') && !this.$el.is('textarea') && !element.isContentEditable && element.contentEditable != 'true') {
throw new Error('textcomplete must be called on a input[type=text], Textarea or a ContentEditable.'); throw new Error('textcomplete must be called on a Textarea or a ContentEditable.');
} }
if (element === document.activeElement) { if (element === document.activeElement) {
@ -414,6 +413,22 @@ if (typeof jQuery === 'undefined') {
setPosition: function (position) { setPosition: function (position) {
this.$el.css(this._applyPlacement(position)); this.$el.css(this._applyPlacement(position));
// Make the dropdown fixed if the input is also fixed
// This can't be done during init, as textcomplete may be used on multiple elements on the same page
// Because the same dropdown is reused behind the scenes, we need to recheck every time the dropdown is showed
var position = 'absolute';
// Check if input or one of its parents has positioning we need to care about
this.$inputEl.add(this.$inputEl.parents()).each(function() {
if($(this).css('position') === 'absolute') // The element has absolute positioning, so it's all OK
return false;
if($(this).css('position') === 'fixed') {
position = 'fixed';
return false;
}
});
this.$el.css({ position: position }); // Update positioning
return this; return this;
}, },

View File

@ -1 +1 @@
2015-01-20.922 2015-01-21.923