link.href = href;
});
+ // Disable the button group and also the buttons to avoid
+ // inconsistent behaviour when zooming
var editDisabled = zoom < 13;
$("#edit_tab")
.tooltip({ placement: "bottom" })
- .attr("data-bs-original-title", editDisabled ?
- I18n.t("javascripts.site.edit_disabled_tooltip") : "")
- // Disable the button group and also the buttons to avoid
- // inconsistent behaviour when zooming
+ .tooltip(editDisabled ? "enable" : "disable")
.toggleClass("disabled", editDisabled)
.find("a")
.toggleClass("disabled", editDisabled);
};
$(document).ready(function () {
+ $("#edit_tab")
+ .attr("title", I18n.t("javascripts.site.edit_disabled_tooltip"));
+
var headerWidth = 0,
compactWidth = 0;
var addOverlay = function (layer, name, maxArea) {
var item = $("<li>")
- .tooltip({
- placement: "top"
- })
.appendTo(overlays);
+ if (name === "notes" || name === "data") {
+ item
+ .attr("title", I18n.t("javascripts.site.map_" + name + "_zoom_in_tooltip"))
+ .tooltip("disable");
+ }
+
var label = $("<label>")
.attr("class", "form-check-label")
.appendTo(item);
.trigger("change");
}
- $(item).attr("class", disabled ? "disabled" : "");
- item.attr("data-bs-original-title", disabled ?
- I18n.t("javascripts.site.map_" + name + "_zoom_in_tooltip") : "");
+ $(item)
+ .attr("class", disabled ? "disabled" : "")
+ .tooltip(disabled ? "enable" : "disable");
});
};
tooltip.assert_no_text "Zoom in"
end
- test "tooltip shows for query button when zoomed out" do
- visit "/#map=10/0/0"
+ [
+ "#edit_tab",
+ ".control-note .control-button",
+ ".control-query .control-button"
+ ].each do |selector|
+ test "tooltips on low zoom levels for disabled control '#{selector}'" do
+ visit "/#map=10/0/0"
- assert_no_selector ".tooltip"
- button = find ".control-query .control-button"
- button.hover
- tooltip = find ".tooltip"
- tooltip.assert_text "Zoom in to query features"
+ assert_no_selector ".tooltip"
+ find(selector).hover
+ assert_selector ".tooltip", :text => "Zoom in"
+ end
+
+ test "no zoom-in tooltips on high zoom levels, then tooltips appear after zoom out for control '#{selector}'" do
+ visit "/#map=14/0/0"
+
+ assert_no_selector ".tooltip"
+ find(selector).hover
+ assert_no_selector ".tooltip", :text => "Zoom in"
+ find("h1").hover # un-hover original element
+
+ visit "#map=10/0/0"
+ find(selector).hover
+ assert_selector ".tooltip", :text => "Zoom in"
+ end
end
- test "tooltip shows for edit button when zoomed out" do
- visit "/#map=11/0/0"
+ test "notes layer tooltip appears on zoom out" do
+ visit "/#map=9/40/-4" # depends on zoom levels where notes are allowed
- assert_no_selector ".tooltip"
- button = find "#edit_tab"
- button.hover
- tooltip = find ".tooltip"
- tooltip.assert_text "Zoom in to edit the map"
+ find(".control-layers .control-button").click
+ li = find(".layers-ui .overlay-layers li:first-child")
+ li.not_matches_css? ".disabled"
+ li.hover # try to trigger disabled tooltip
+ zoomout = find(".control-button.zoomout")
+ zoomout.hover # un-hover the tooltip that's being tested
+ zoomout.click
+ li.matches_css? ".disabled"
+ li.hover
+ assert_selector ".tooltip", :text => "Zoom in"
end
end