Skip to content

Commit

Permalink
Added ability to add a label overlay, so people know what they are us…
Browse files Browse the repository at this point in the history
…ing the slider for.
  • Loading branch information
Mellisa Hankins committed Feb 13, 2015
1 parent 97e5992 commit 42cd9eb
Show file tree
Hide file tree
Showing 6 changed files with 159 additions and 73 deletions.
40 changes: 40 additions & 0 deletions _assets/css/imports/range-slider.less
Original file line number Diff line number Diff line change
Expand Up @@ -70,4 +70,44 @@ tr.ss-gridfield-range-slider.field.date {
> th > button {
display: none;
}
}

.ss-gridfield-range-slider--holder_hasLabel {
position: relative;

.rangeslider-display.noUi-horizontal {
height:20px;
}

.rangeslider-display.noUi-horizontal .noUi-handle {
width: 30px;
height: 30px;
left: -15px;
top: -6px;
}

.rangeslider-display .noUi-handle:after,
.rangeslider-display .noUi-handle:before {
top: 10px;
}

.ss-gridfield-range-slider--holder-label {
display: block !important;
position: absolute;
top: 15px;
bottom: 15px;
left: 50%;
width: 150px;
margin-left: -150px;
text-align: center;
text-transform: uppercase;
/* font-weight: normal; */
background: rgba(255,255,255,0.9);
color: #98aab6;
padding-top: 2px;
}

.noUi-handle {
z-index: 20;
}
}
68 changes: 34 additions & 34 deletions _assets/js/mwm.gridfield.utils.js
Original file line number Diff line number Diff line change
@@ -1,36 +1,36 @@
(function($) {
$.entwine("ss", function($) {
$(".gridfield-help-button-dialog").entwine({
loadDialog: function(deferred) {
var dialog = this.addClass("loading").children(".ui-dialog-content").empty();

deferred.done(function(data) {
dialog.html(data).parent().removeClass("loading");
});
}
});

$(".ss-gridfield .gridfield-help-button").entwine({
onclick: function() {
var dialog = $("<div></div>").appendTo("body").dialog({
modal: false,
resizable: true,
width: 600,
height: 600,
close: function() {
$(this).dialog("destroy").remove();
}
});

dialog.parent().addClass("gridfield-help-button-dialog").loadDialog(
$.get(this.prop("href"))
);

dialog.data("grid", this.closest(".ss-gridfield"));

return false;
}
});
$.entwine("ss", function($) {
$(".gridfield-help-button-dialog").entwine({
loadDialog: function(deferred) {
var dialog = this.addClass("loading").children(".ui-dialog-content").empty();

deferred.done(function(data) {
dialog.html(data).parent().removeClass("loading");
});
}
});

$(".ss-gridfield .gridfield-help-button").entwine({
onclick: function() {
var dialog = $("<div></div>").appendTo("body").dialog({
modal: false,
resizable: true,
width: 600,
height: 600,
close: function() {
$(this).dialog("destroy").remove();
}
});

dialog.parent().addClass("gridfield-help-button-dialog").loadDialog(
$.get(this.prop("href"))
);

dialog.data("grid", this.closest(".ss-gridfield"));

return false;
}
});

$(".ss-gridfield-treeView--toggle").entwine({
onclick: function() {
Expand Down Expand Up @@ -62,9 +62,9 @@
row = this.find(".ss-gridfield-add-inline-extended--template:last"),
num = this.data("add-inline-num") || 1;

tmpl.cache["ss-gridfield-add-inline-extended--template"] = tmpl(row.html());
tmpl.cache[this[0].id + "-ss-gridfield-add-inline-extended--template"] = tmpl(row.html());

var item = $(tmpl("ss-gridfield-add-inline-extended--template", { num: num }));
var item = $(tmpl(this[0].id + "-ss-gridfield-add-inline-extended--template", { num: num }));

this.find("tbody:first").append(item);
this.find("tbody:first").children(".ss-gridfield-no-items:first").hide();
Expand Down
20 changes: 16 additions & 4 deletions code/RangeSlider.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,21 @@ class RangeSlider implements \GridField_ActionProvider, \GridField_DataManipulat
public $hideNavigation = false;

public $label;
public $navigationLabel;

public $comparisonFilter = 'LessThan';

private $working;

public function __construct($filterField = 'Created', $fragment = 'header', $label = '') {
public function __construct($filterField = 'Created', $fragment = 'header', $label = '', $navigationLabel = '') {
if(!\ClassInfo::exists('RangeSliderField')) {
throw new \LogicException('Please install the milkyway-multimedia/ss-mwm-formfields module to use this feature');
}

$this->filterField = $filterField;
$this->fragment = $fragment;
$this->label = $label ?: _t('GridFieldUtils.SHOW', 'Show');
$this->label = $label;
$this->navigationLabel = $navigationLabel ?: _t('GridFieldUtils.SHOW', 'Show');
}

public function getActions($gridField) {
Expand Down Expand Up @@ -139,6 +141,10 @@ public function getHTMLFragments($gridField) {
->setAttribute('title', _t('GridField.Filter', 'Filter'))
->setAttribute('id', 'action_filter_' . $gridField->getModelClass() . '_' . $this->filterField);

if($this->label !== null) {
$data['Label'] = $this->label ?: singleton($gridField->getModelClass())->fieldLabel($this->filterField);
}

$data['Slider']->inputCallback = function($fields) use($fieldName, $dbField, $settings, &$data) {
foreach($fields as $field) {
$this->modifyFormFieldForDBField($dbField, $field->Render, $settings);
Expand All @@ -147,9 +153,15 @@ public function getHTMLFragments($gridField) {
$data['HasDates'] = true;
}

if($this->label) {
if($this->navigationLabel) {
$fields->unshift(\ArrayData::create([
'Render' => \LabelField::create($fieldName . '[label]', $this->navigationLabel)
]));
}

if(isset($data['Label']) && $data['Label']) {
$fields->unshift(\ArrayData::create([
'Render' => \LabelField::create($fieldName . '[label]', $this->label)
'Render' => \LabelField::create($fieldName . '--LABEL', $data['Label'])->addExtraClass('ss-gridfield-range-slider--holder-label')
]));
}
};
Expand Down
34 changes: 34 additions & 0 deletions css/mwm.gridfield.utils.css
Original file line number Diff line number Diff line change
Expand Up @@ -353,3 +353,37 @@ tr.ss-gridfield-range-slider.field.date {
.ss-gridfield-range-slider > th > button {
display: none;
}
.ss-gridfield-range-slider--holder_hasLabel {
position: relative;
}
.ss-gridfield-range-slider--holder_hasLabel .rangeslider-display.noUi-horizontal {
height: 20px;
}
.ss-gridfield-range-slider--holder_hasLabel .rangeslider-display.noUi-horizontal .noUi-handle {
width: 30px;
height: 30px;
left: -15px;
top: -6px;
}
.ss-gridfield-range-slider--holder_hasLabel .rangeslider-display .noUi-handle:after,
.ss-gridfield-range-slider--holder_hasLabel .rangeslider-display .noUi-handle:before {
top: 10px;
}
.ss-gridfield-range-slider--holder_hasLabel .ss-gridfield-range-slider--holder-label {
display: block !important;
position: absolute;
top: 15px;
bottom: 15px;
left: 50%;
width: 150px;
margin-left: -150px;
text-align: center;
text-transform: uppercase;
/* font-weight: normal; */
background: rgba(255, 255, 255, 0.9);
color: #98aab6;
padding-top: 2px;
}
.ss-gridfield-range-slider--holder_hasLabel .noUi-handle {
z-index: 20;
}
68 changes: 34 additions & 34 deletions js/mwm.gridfield.utils.js
Original file line number Diff line number Diff line change
@@ -1,36 +1,36 @@
(function($) {
$.entwine("ss", function($) {
$(".gridfield-help-button-dialog").entwine({
loadDialog: function(deferred) {
var dialog = this.addClass("loading").children(".ui-dialog-content").empty();

deferred.done(function(data) {
dialog.html(data).parent().removeClass("loading");
});
}
});

$(".ss-gridfield .gridfield-help-button").entwine({
onclick: function() {
var dialog = $("<div></div>").appendTo("body").dialog({
modal: false,
resizable: true,
width: 600,
height: 600,
close: function() {
$(this).dialog("destroy").remove();
}
});

dialog.parent().addClass("gridfield-help-button-dialog").loadDialog(
$.get(this.prop("href"))
);

dialog.data("grid", this.closest(".ss-gridfield"));

return false;
}
});
$.entwine("ss", function($) {
$(".gridfield-help-button-dialog").entwine({
loadDialog: function(deferred) {
var dialog = this.addClass("loading").children(".ui-dialog-content").empty();

deferred.done(function(data) {
dialog.html(data).parent().removeClass("loading");
});
}
});

$(".ss-gridfield .gridfield-help-button").entwine({
onclick: function() {
var dialog = $("<div></div>").appendTo("body").dialog({
modal: false,
resizable: true,
width: 600,
height: 600,
close: function() {
$(this).dialog("destroy").remove();
}
});

dialog.parent().addClass("gridfield-help-button-dialog").loadDialog(
$.get(this.prop("href"))
);

dialog.data("grid", this.closest(".ss-gridfield"));

return false;
}
});

$(".ss-gridfield-treeView--toggle").entwine({
onclick: function() {
Expand Down Expand Up @@ -62,9 +62,9 @@
row = this.find(".ss-gridfield-add-inline-extended--template:last"),
num = this.data("add-inline-num") || 1;

tmpl.cache["ss-gridfield-add-inline-extended--template"] = tmpl(row.html());
tmpl.cache[this[0].id + "-ss-gridfield-add-inline-extended--template"] = tmpl(row.html());

var item = $(tmpl("ss-gridfield-add-inline-extended--template", { num: num }));
var item = $(tmpl(this[0].id + "-ss-gridfield-add-inline-extended--template", { num: num }));

this.find("tbody:first").append(item);
this.find("tbody:first").children(".ss-gridfield-no-items:first").hide();
Expand Down
2 changes: 1 addition & 1 deletion templates/GridField_RangeSlider_Row.ss
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<tr class="ss-gridfield-range-slider<% if $HasDates %> field date<% end_if %><% if $HideNavigation %> ss-gridfield-range-slider--hide-navigation<% end_if %>">
<th class="ss-gridfield-range-slider--holder rangeslider-display--form main" colspan="$ColumnCount">
<th class="ss-gridfield-range-slider--holder rangeslider-display--form main<% if $Label %> ss-gridfield-range-slider--holder_hasLabel<% end_if %>" colspan="$ColumnCount">
$Slider
$Button
</th>
Expand Down

0 comments on commit 42cd9eb

Please sign in to comment.