|
5 | 5 |
|
6 | 6 | <body> |
7 | 7 |
|
| 8 | +<!-- Navigation --> |
| 9 | +<nav class="navbar navbar-default navbar-static-top navbar-inverse navbar-black"> |
| 10 | + <div class="navbar-container container-fluid"> |
| 11 | + {% include brand.html %} |
| 12 | + |
| 13 | + <!-- Collect the nav links, forms, and other content for toggling --> |
| 14 | + <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> |
| 15 | + <ul class="nav navbar-nav navbar-right"> |
| 16 | + {% include menu.html %} |
| 17 | + <li class="dropdown"> |
| 18 | + <a id="locale-selector" href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="true"><span id="locale-display">EU</span><span class="caret"></span></a> |
| 19 | + <ul class="dropdown-menu"> |
| 20 | + <li class="dropdown-header">Change Store</li> |
| 21 | + <li><a href="#" onclick="changeStore('EU')">EU</a></li> |
| 22 | + <li><a href="#" onclick="changeStore('NA')">NA</a></li> |
| 23 | + </ul> |
| 24 | + </li> |
| 25 | + <li><a href="#"></a></li> |
| 26 | + </ul> |
| 27 | + </div> |
| 28 | + <!-- /.navbar-collapse --> |
| 29 | + </div> |
| 30 | + <!-- /.container-fluid --> |
| 31 | +</nav> |
| 32 | + |
| 33 | + |
8 | 34 | <div id="librenms-shop"> |
9 | 35 | </div> |
10 | 36 |
|
11 | 37 | <script> |
| 38 | + const eu_store = 'https://librenms.myspreadshop.net'; |
| 39 | + const na_store = 'https://librenms.myspreadshop.com'; |
| 40 | + |
12 | 41 | var spread_shop_config = { |
13 | 42 | shopName: 'librenms', |
14 | | - prefix: 'https://librenms.myspreadshop.net', |
| 43 | + locale: 'en_EU', |
| 44 | + prefix: localStorage.getItem('store_url'), |
15 | 45 | baseId: 'librenms-shop' |
16 | 46 | }; |
17 | | -</script> |
18 | 47 |
|
19 | | -<script type="text/javascript" src="https://librenms.myspreadshop.net/shopfiles/shopclient/shopclient.nocache.js"></script> |
| 48 | + const store_map = { |
| 49 | + 'NA': na_store, |
| 50 | + 'US': na_store, |
| 51 | + 'EU': eu_store, |
| 52 | + 'GB': eu_store, |
| 53 | + 'AU': na_store, |
| 54 | + 'CA': na_store, |
| 55 | + 'SE': eu_store, |
| 56 | + 'CH': eu_store |
| 57 | + }; |
| 58 | + |
| 59 | + function intializeStore() { |
| 60 | + var parts = getLocale(); |
| 61 | + var country = parts[1]; |
| 62 | + spread_shop_config.locale = parts[0] + '_' + country; |
| 63 | + console.log(spread_shop_config.locale); |
| 64 | + |
| 65 | + if (! spread_shop_config.prefix) { |
| 66 | + setStore(country); |
| 67 | + } |
| 68 | + document.getElementById('locale-display').innerText = spread_shop_config.prefix === na_store ? 'NA' : 'EU'; |
| 69 | + |
| 70 | + $.getScript(spread_shop_config.prefix + '/shopfiles/shopclient/shopclient.nocache.js'); |
| 71 | + } |
| 72 | + |
| 73 | + function changeStore(country) { |
| 74 | + document.getElementById('locale-display').innerText = country; |
| 75 | + setStore(country) |
| 76 | + |
| 77 | + location.reload(); |
| 78 | + } |
| 79 | + |
| 80 | + function setStore(country) { |
| 81 | + spread_shop_config.prefix = country in store_map ? store_map[country] : eu_store; |
| 82 | + console.log(spread_shop_config.prefix, store_map[country], country); |
| 83 | + localStorage.setItem('store_url', spread_shop_config.prefix); |
| 84 | + } |
| 85 | + |
| 86 | + function getLocale() { |
| 87 | + if (navigator.languages !== undefined) |
| 88 | + return navigator.languages[0].split(/[-_]/, 2); |
| 89 | + return navigator.language.split(/[-_]/, 2); |
| 90 | + } |
| 91 | + |
| 92 | + // set locale |
| 93 | + intializeStore(); |
20 | 94 |
|
21 | | -<script> |
22 | 95 | document.arrive(".sprd-header__image", function () { |
23 | 96 | document.unbindArrive(".sprd-header__image"); // don't infinite loop |
24 | 97 | const new_element = this.cloneNode(true); |
|
0 commit comments