<body onload="document.configform.title.focus();">
<div id="pageheader">
{include="page.header"}
- {$timezone_js}
<form method="POST" action="#" name="configform" id="configform">
<input type="hidden" name="token" value="{$token}">
<table id="configuration_table">
<tr>
<td><b>Timezone:</b></td>
- <td>{$timezone_form}</td>
+ <td>
+ <select id="continent" name="continent">
+ {loop="$continents"}
+ {if="$key !== 'selected'"}
+ <option value="{$value}" {if="$continents.selected === $value"}selected{/if}>
+ {$value}
+ </option>
+ {/if}
+ {/loop}
+ </select>
+ <select id="city" name="city">
+ {loop="$cities"}
+ {if="$key !== 'selected'"}
+ <option value="{$value.city}"
+ {if="$cities.selected === $value.city"}selected{/if}
+ data-continent="{$value.continent}">
+ {$value.city}
+ </option>
+ {/if}
+ {/loop}
+ </select>
+ </td>
</tr>
<tr>
font-weight: bold;
}
+.hidden {
+ display: none;
+}
+
/* Buttons */
.bigbutton, #pageheader a.bigbutton {
background-color: #c0c0c0;
<!DOCTYPE html>
<html>
-<head>{include="includes"}{$timezone_js}</head>
+<head>{include="includes"}</head>
<body onload="document.installform.setlogin.focus();">
<div id="install">
<h1>Shaarli</h1>
<table>
<tr><td><b>Login:</b></td><td><input type="text" name="setlogin" size="30"></td></tr>
<tr><td><b>Password:</b></td><td><input type="password" name="setpassword" size="30"></td></tr>
- {$timezone_html}
+ <tr>
+ <td><b>Timezone:</b></td>
+ <td>
+ <select id="continent" name="continent">
+ {loop="$continents"}
+ {if="$key !== 'selected'"}
+ <option value="{$value}" {if="$continents.selected === $value"}selected{/if}>
+ {$value}
+ </option>
+ {/if}
+ {/loop}
+ </select>
+ <select id="city" name="city">
+ {loop="$cities"}
+ {if="$key !== 'selected'"}
+ <option value="{$value.city}"
+ {if="$cities.selected === $value.city"}selected{/if}
+ data-continent="{$value.continent}">
+ {$value.city}
+ </option>
+ {/if}
+ {/loop}
+ </select>
+ </td>
+ </tr>
<tr><td><b>Page title:</b></td><td><input type="text" name="title" size="30"></td></tr>
<tr><td valign="top"><b>Update:</b></td><td>
<input type="checkbox" name="updateCheck" id="updateCheck" checked="checked"><label for="updateCheck"> Notify me when a new release is ready</label></td>
--- /dev/null
+window.onload = function () {
+ var continent = document.getElementById('continent');
+ var city = document.getElementById('city');
+ if (continent != null && city != null) {
+ continent.addEventListener('change', function(event) {
+ hideTimezoneCities(city, continent.options[continent.selectedIndex].value, true);
+ });
+ hideTimezoneCities(city, continent.options[continent.selectedIndex].value, false);
+ }
+};
+
+/**
+ * Add the class 'hidden' to city options not attached to the current selected continent.
+ *
+ * @param cities List of <option> elements
+ * @param currentContinent Current selected continent
+ * @param reset Set to true to reset the selected value
+ */
+function hideTimezoneCities(cities, currentContinent, reset = false) {
+ var first = true;
+ [].forEach.call(cities, function(option) {
+ if (option.getAttribute('data-continent') != currentContinent) {
+ option.className = 'hidden';
+ } else {
+ option.className = '';
+ if (reset === true && first === true) {
+ option.setAttribute('selected', 'selected');
+ first = false;
+ }
+ }
+ });
+}
<script>function confirmDeleteLink() { var agree=confirm("Are you sure you want to delete this link ?"); if (agree) return true ; else return false ; }</script>
{/if}
+<script src="js/shaarli.js"></script>
{loop="$plugins_footer.js_files"}
<script src="{$value}#"></script>
{/loop}