Skip to content

Commit

Permalink
Merge pull request #371 from jamietre/misc-fixes
Browse files Browse the repository at this point in the history
Resolves #137 - fix handling of href attribute empty/missing
Resolves #170 - fix missing/non-conforming shape attribute
Resolves #364 - fix uncaught promise when mouseoutDelay -1
Resolves #365 - fix selected state when `staticState === true`
Resolves #366 - fix selected state when `staticState === false`
Resolves #367 - fix options not correctly applied when calling set/selected API
  • Loading branch information
techfg authored Feb 14, 2021
2 parents e87b63f + 57d9086 commit d2c6c5f
Show file tree
Hide file tree
Showing 9 changed files with 1,072 additions and 41 deletions.
3 changes: 3 additions & 0 deletions examples/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ <h1>ImageMapster Examples</h1>
<li><a href="navigate-simple.html">Navigate - Simple</a></li>
<li><a href="navigate-full.html">Navigate - Full</a></li>
<li><a href="autoresize.html">Automatic Resize</a></li>
<li><a href="shapes-spec.html">Shape Attribute Values</a></li>
<li><a href="nohref.html">Nohref & Href Attribute Values</a></li>
<li><a href="staticstate.html">StaticState Values</a></li>
</ul>
</div>
</body>
Expand Down
297 changes: 297 additions & 0 deletions examples/nohref.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,297 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Nohref & Href Attribute Values Test</title>

<script
type="text/javascript"
src="https://cdn.jsdelivr.net/npm/es6-promise/dist/es6-promise.auto.min.js"
></script>

<script type="text/javascript" src="redist/jquery.3.5.1.min.js"></script>
<script
type="text/javascript"
src="../dist/jquery.imagemapster.js"
></script>

<!-- <script type="text/javascript" src="redist/zepto.1.2.0.min.js"></script>
<script
type="text/javascript"
src="../dist/jquery.imagemapster.zepto.js"
></script> -->

<link rel="stylesheet" href="stylesheets/base.css" />
<style type="text/css">
thead {
color: green;
}
tbody {
color: blue;
}
tfoot {
color: red;
}

table,
th,
td {
border: 1px solid black;
border-collapse: collapse;
padding: 5px;
}
</style>

<style type="text/css">
p,
div {
font-family: Arial, Helvetica, Sans Serif;
font-size: 12px;
font-weight: normal;
}
</style>
</head>

<body>
<div class="navmenu">
Return to <a href="index.html">Main Menu</a>
<hr />
</div>
<h2>Nohref & Href Attribute Values Test</h2>
<p>
Test 'nohref/href' attributes using various combinations of values. This
should be converted to a unit test once the testing framework is updated.
</p>
<p>The behavior of each area should be:</p>
<table>
<thead>
<tr>
<th>Vegetable</th>
<th>nohref</th>
<th>href</th>
<th>highlight</th>
<th>select</th>
<th>navigation</th>
<th>tooltip</th>
<th>description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Red Pepper</td>
<td>yes</td>
<td>no</td>
<td>no</td>
<td>no</td>
<td>no</td>
<td>no</td>
<td>nohref disables IM completely</td>
</tr>
<tr>
<td>Celery</td>
<td>no</td>
<td>no</td>
<td>no</td>
<td>no</td>
<td>no</td>
<td>no</td>
<td>missing href treated as nohref per HTML spec</td>
</tr>
<tr>
<td>Carrots</td>
<td>no</td>
<td>yes - empty</td>
<td>yes</td>
<td>yes</td>
<td>no</td>
<td>yes</td>
<td>navigation disabled due to empty/#</td>
</tr>
<tr>
<td>Asparagus</td>
<td>no</td>
<td>yes - #</td>
<td>yes</td>
<td>yes</td>
<td>no</td>
<td>yes</td>
<td>navigation disabled due to empty/#</td>
</tr>
<tr>
<td>Squash</td>
<td>no</td>
<td>yes - https://www.google.com</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>navigates due to href != empty/#</td>
</tr>
<tr>
<td>Yellow Pepper</td>
<td>no</td>
<td>yes - empty</td>
<td>yes</td>
<td>yes</td>
<td>no</td>
<td>yes</td>
<td>navigation disabled due to empty/#</td>
</tr>
<tr>
<td>Broccoli</td>
<td>no</td>
<td>yes - empty</td>
<td>yes</td>
<td>yes</td>
<td>no</td>
<td>yes</td>
<td>navigation disabled due to empty/#</td>
</tr>
<tr>
<td>Broccoli #2</td>
<td>no</td>
<td>yes - empty</td>
<td>yes</td>
<td>yes</td>
<td>no</td>
<td>yes</td>
<td>navigation disabled due to empty/#</td>
</tr>
<tr>
<td>Dip</td>
<td>no</td>
<td>yes - empty</td>
<td>yes</td>
<td>yes</td>
<td>no</td>
<td>yes</td>
<td>navigation disabled due to empty/#</td>
</tr>
</tbody>
</table>
<p>
You can toggle the values of navigateMode and clickNavigate. The behavior
should be identical regardless of their values.
</p>
<div>
NavigateMode: <a id="navigateMode" href="javascript:void(0);">TBD</a>
</div>
<div>
ClickNavigate: <a id="clickNavigate" href="javascript:void(0);">TBD</a>
</div>
<br />

<img id="veg_image" src="images/vegetables.jpg" usemap="#veg_map" />

<script type="text/javascript">
$(document).ready(function () {
'use strict';

function updateOptions() {
var options = $('#veg_image').mapster('get_options');
$('#clickNavigate').text(options.clickNavigate);
$('#navigateMode').text(options.navigateMode);
}

$('#clickNavigate').on('click', function () {
var options = $('#veg_image').mapster('get_options');
$('#veg_image').mapster('set_options', {
clickNavigate: options.clickNavigate === true ? false : true
});
updateOptions();
});

$('#navigateMode').on('click', function () {
var options = $('#veg_image').mapster('get_options');
$('#veg_image').mapster('set_options', {
navigateMode: options.navigateMode === 'open' ? 'location' : 'open'
});
updateOptions();
});

$('#veg_image').mapster({
mapKey: 'name',
fillOpacity: 0.4,
fillColor: 'd42e16',
strokeColor: '3320FF',
strokeOpacity: 0.8,
strokeWidth: 4,
stroke: true,
clickNavigate: false,
onClick: function () {
return true;
},
showToolTip: true,
toolTip: function (data) {
return $(data.target).data('tooltip');
}
});
updateOptions();
});
</script>
<map id="veg_map" name="veg_map">
<area
shape="poly"
name="redpepper"
data-tooltip="redpepper"
coords="412,156, 427,161, 429,163, 444,153, 453,155, 457,159, 452,168, 459,174, 455,178, 460,179, 463,193, 460,203, 441,214, 436,217, 458,238, 469,257, 479,267, 478,269, 479,285, 458,309, 436,310, 414,305, 410,323, 397,334, 379,313, 389,316, 401,320, 399,305, 382,300, 371,290, 367,296, 366,298, 338,274, 332,272, 300,239, 316,238, 316,234, 313,230, 328,225, 333,213, 338,196, 333,181, 337,166, 345,145"
nohref
/>
<area
shape="poly"
name="celery"
data-tooltip="celery"
coords="147,131, 156,143, 163,146, 177,129, 175,138, 177,138, 182,144, 180,164, 148,169, 139,171, 144,180, 141,198, 139,208, 140,222, 127,237, 148,216, 163,212, 166,216, 160,223, 163,233, 153,281, 135,318, 129,313, 122,322, 117,320, 99,301, 98,293, 85,300, 80,303, 74,300, 64,285, 76,272, 98,249, 94,246, 72,261, 57,258, 62,251, 60,248, 47,228, 51,207, 71,195, 72,192, 38,202, 33,195, 30,173, 147,127"
/>
<area
shape="poly"
name="carrots"
data-tooltip="carrots"
coords="175,74, 170,80, 154,85, 189,103, 190,111, 182,111, 179,98, 157,95, 142,111, 140,128, 38,169, 39,163, 74,143, 74,141, 56,135, 52,115, 79,111, 78,106, 63,98, 71,91, 81,88, 82,83, 91,75, 136,74, 174,70"
href=""
/>
<area
shape="poly"
name="asparagus"
data-tooltip="asparagus"
coords="224,25, 239,33, 244,36, 247,32, 327,23, 344,31, 343,36, 319,41, 315,42, 302,52, 272,61, 265,64, 270,73, 256,67, 248,60, 187,55, 192,58, 192,60, 184,64, 185,67, 176,67, 173,69, 142,67, 146,63, 135,59, 123,57, 142,44, 145,42, 143,39, 145,32, 207,38, 185,18, 212,19, 220,22"
href="#"
/>
<area
shape="poly"
name="squash"
data-tooltip="squash"
coords="388,26, 391,38, 394,43, 395,46, 425,58, 427,68, 428,92, 386,125, 371,132, 374,124, 377,118, 374,105, 371,105, 370,107, 364,102, 368,97, 356,87, 353,89, 348,86, 322,87, 314,100, 314,102, 282,85, 278,84, 273,74, 272,68, 319,46, 346,31"
href="https://www.google.com"
/>
<area
shape="poly"
name="yellowpepper"
data-tooltip="yellowpepper"
coords="237,222, 246,254, 255,291, 262,323, 271,322, 285,350, 306,352, 307,365, 298,374, 285,366, 270,375, 249,378, 244,384, 231,389, 215,373, 210,363, 203,357, 199,368, 184,361, 175,349, 162,356, 140,340, 143,305, 161,252, 168,224, 188,240, 194,223, 198,232, 213,226, 224,224, 229,218"
href="#"
/>
<area
shape="poly"
name="broccoli"
data-tooltip="broccoli"
coords="341,89, 342,91, 360,95, 353,100, 360,104, 364,109, 368,115, 369,112, 367,110, 376,111, 373,123, 367,128, 362,128, 359,131, 348,134, 345,137, 340,138, 341,148, 334,167, 323,172, 315,165, 315,162, 312,165, 311,172, 293,167, 292,141, 298,136, 307,134, 322,129, 328,128, 329,116, 319,109, 314,104, 317,93, 332,84"
href="#"
/>
<area
shape="poly"
name="broccoli"
data-tooltip="broccoli #2"
coords="328,178, 338,197, 337,202, 330,215, 328,217, 325,228, 307,234, 305,239, 287,225, 287,216, 286,212, 282,216, 277,212, 277,185, 284,179, 310,175"
href="#"
/>
<area
shape="poly"
name="dip"
data-tooltip="dip"
coords="253,102, 277,100, 280,105, 290,107, 295,111, 304,130, 290,140, 287,147, 240,157, 238,159, 227,153, 203,146, 198,125, 200,116, 214,102, 231,102"
href="#"
/>
</map>
</body>
</html>
Loading

0 comments on commit d2c6c5f

Please sign in to comment.