heimaerbest: dev
This commit is contained in:
parent
825cd7ef2d
commit
4216e036e4
9 changed files with 131851 additions and 27 deletions
131156
heimaerbest/app/Stadfangaskra.csv
Normal file
131156
heimaerbest/app/Stadfangaskra.csv
Normal file
File diff suppressed because it is too large
Load diff
144
heimaerbest/app/combobox.js
Normal file
144
heimaerbest/app/combobox.js
Normal file
|
@ -0,0 +1,144 @@
|
||||||
|
const m = require('mithril')
|
||||||
|
const util = require('./util')
|
||||||
|
|
||||||
|
let activeBox = null
|
||||||
|
let boxIndex = 1
|
||||||
|
|
||||||
|
document.body.addEventListener('click', function() {
|
||||||
|
activeBox = null
|
||||||
|
m.redraw()
|
||||||
|
})
|
||||||
|
|
||||||
|
const Combobox = {
|
||||||
|
oninit: function(vnode) {
|
||||||
|
this.filtered = []
|
||||||
|
this.open = false
|
||||||
|
this.input = null
|
||||||
|
this.id = boxIndex++
|
||||||
|
this.onbeforeupdate(vnode)
|
||||||
|
this.focus = this.onFocus.bind(this, vnode)
|
||||||
|
},
|
||||||
|
|
||||||
|
onbeforeupdate: function(vnode) {
|
||||||
|
if (!vnode.attrs.value) {
|
||||||
|
this.filtered = vnode.attrs.items || []
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
let val = vnode.attrs.value.toLocaleLowerCase()
|
||||||
|
this.filtered = vnode.attrs.items.filter(item => {
|
||||||
|
return item.toLocaleLowerCase().indexOf(val) >= 0
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
onInput: function(vnode, e) {
|
||||||
|
this.smartOpen(vnode)
|
||||||
|
if (vnode.attrs.oninput) {
|
||||||
|
vnode.attrs.oninput(e)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onDone: function(vnode) {
|
||||||
|
if (vnode.attrs.ondone) {
|
||||||
|
vnode.attrs.ondone()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onFocus: function(vnode) {
|
||||||
|
this.input.focus()
|
||||||
|
},
|
||||||
|
|
||||||
|
selectText: function(vnode, text) {
|
||||||
|
this.input.value = text
|
||||||
|
this.onInput(vnode, { target: this.input })
|
||||||
|
activeBox = null
|
||||||
|
this.onDone(vnode)
|
||||||
|
return false
|
||||||
|
},
|
||||||
|
|
||||||
|
onKeyPress: function(vnode, e) {
|
||||||
|
if (e.key === 'ArrowDown') {
|
||||||
|
if (e.target.dataset.type === 'input' && e.target.nextElementSibling && e.target.nextElementSibling.childNodes) {
|
||||||
|
e.target.nextElementSibling.childNodes[0].focus()
|
||||||
|
} else if (e.target.dataset.type === 'item') {
|
||||||
|
if (e.target.nextElementSibling) {
|
||||||
|
e.target.nextElementSibling.focus()
|
||||||
|
} else {
|
||||||
|
this.input.focus()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if (e.key === 'ArrowUp') {
|
||||||
|
if (e.target.dataset.type === 'input' && e.target.nextElementSibling && e.target.nextElementSibling.lastChild) {
|
||||||
|
e.target.nextElementSibling.scrollTop = e.target.nextElementSibling.scrollHeight
|
||||||
|
e.target.nextElementSibling.lastChild.focus()
|
||||||
|
} else if (e.target.dataset.type === 'item') {
|
||||||
|
if (e.target.previousElementSibling) {
|
||||||
|
e.target.previousElementSibling.focus()
|
||||||
|
} else {
|
||||||
|
this.input.focus()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if (e.key === 'Enter') {
|
||||||
|
let newVal = ''
|
||||||
|
if (e.target.dataset.type === 'input' && this.filtered.length) {
|
||||||
|
if (e.target.value && e.target.value !== this.filtered[0]) {
|
||||||
|
return this.selectText(vnode, this.filtered[0])
|
||||||
|
}
|
||||||
|
this.onDone(vnode)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if (e.target.dataset.type === 'item') {
|
||||||
|
return this.selectText(vnode, e.target.dataset.value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
smartOpen: function(vnode) {
|
||||||
|
if (this.input.value && this.input.value === this.filtered[0]) {
|
||||||
|
activeBox = null
|
||||||
|
} else {
|
||||||
|
activeBox = this.id
|
||||||
|
}
|
||||||
|
m.redraw()
|
||||||
|
},
|
||||||
|
|
||||||
|
view: function(vnode) {
|
||||||
|
closeBox = false
|
||||||
|
|
||||||
|
return m('div.form-item.combobox', {
|
||||||
|
class: vnode.attrs.class,
|
||||||
|
onclick: util.cancelPropagation,
|
||||||
|
}, [
|
||||||
|
m('label', vnode.attrs.label),
|
||||||
|
m('input', {
|
||||||
|
'data-type': 'input',
|
||||||
|
oncreate: (e) => { this.input = e.dom },
|
||||||
|
onkeydown: (e) => this.onKeyPress(vnode, e),
|
||||||
|
type: vnode.attrs.type || 'text',
|
||||||
|
value: vnode.attrs.value,
|
||||||
|
onfocus: () => this.smartOpen(vnode),
|
||||||
|
placeholder: vnode.attrs.placeholder || '',
|
||||||
|
oninput: this.onInput.bind(this, vnode),
|
||||||
|
}),
|
||||||
|
activeBox === this.id
|
||||||
|
? m('div.combobox-list', [
|
||||||
|
this.filtered.slice(0, 50).map(item => {
|
||||||
|
return m('div.combobox-list-item', {
|
||||||
|
'data-type': 'item',
|
||||||
|
'data-value': item,
|
||||||
|
onkeydown: (e) => this.onKeyPress(vnode, e),
|
||||||
|
onclick: (e) => this.selectText(vnode, item),
|
||||||
|
tabindex: '0',
|
||||||
|
}, item)
|
||||||
|
})
|
||||||
|
])
|
||||||
|
: null,
|
||||||
|
])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = Combobox
|
272
heimaerbest/app/consts.js
Normal file
272
heimaerbest/app/consts.js
Normal file
File diff suppressed because one or more lines are too long
|
@ -1,15 +1,18 @@
|
||||||
const m = require('mithril')
|
const m = require('mithril')
|
||||||
|
|
||||||
|
const Combobox = require('./combobox')
|
||||||
|
const Constants = require('./consts')
|
||||||
|
|
||||||
const Frontpage = {
|
const Frontpage = {
|
||||||
oninit: function(vnode) {
|
oninit: function(vnode) {
|
||||||
this.error = ''
|
this.error = ''
|
||||||
this.showAddLocation = false
|
this.showAddLocation = true
|
||||||
this.form = {
|
this.form = {
|
||||||
city: '',
|
city: '',
|
||||||
zip: '',
|
zip: '',
|
||||||
street_name: '',
|
street_name: '',
|
||||||
locations: [
|
locations: [
|
||||||
'Hverfisgata, 101 - Reykjavík',
|
// 'Hverfisgata, 101 - Reykjavík',
|
||||||
],
|
],
|
||||||
type: [ true, false, false, false, false ],
|
type: [ true, false, false, false, false ],
|
||||||
size: [ true, false, false, false, false ],
|
size: [ true, false, false, false, false ],
|
||||||
|
@ -20,11 +23,23 @@ const Frontpage = {
|
||||||
size: [ 'Alveg sama', '0 - 50fm', '50 - 80fm', '80 - 120fm', '120fm +'],
|
size: [ 'Alveg sama', '0 - 50fm', '50 - 80fm', '80 - 120fm', '120fm +'],
|
||||||
rooms: [ 'Alveg sama', 'Stúdíó', '2 - 3 herb.', '3 - 4 herb.', '5 + herb.' ],
|
rooms: [ 'Alveg sama', 'Stúdíó', '2 - 3 herb.', '3 - 4 herb.', '5 + herb.' ],
|
||||||
}
|
}
|
||||||
|
this.inputs = {
|
||||||
|
zip: null,
|
||||||
|
street: null,
|
||||||
|
}
|
||||||
|
this.cities = Object.keys(Constants.Locations)
|
||||||
|
this.zips = Object.keys(Constants.Streets)
|
||||||
|
this.streets = []
|
||||||
},
|
},
|
||||||
|
|
||||||
onFormUpdate: function(vnode, key, index, event) {
|
onFormUpdate: function(vnode, key, index, event) {
|
||||||
if (['city', 'zip', 'street_name'].includes(key)) {
|
if (['city', 'zip', 'street_name'].includes(key)) {
|
||||||
this.form[key] = event.target.value
|
this.form[key] = event.target.value
|
||||||
|
if (key === 'city') {
|
||||||
|
this.zips = Constants.Locations[this.form.city] || []
|
||||||
|
} else if (key === 'zip') {
|
||||||
|
this.streets = Constants.Streets[this.form.zip] || []
|
||||||
|
}
|
||||||
} else if (key === 'type' || key === 'size' || key === 'rooms') {
|
} else if (key === 'type' || key === 'size' || key === 'rooms') {
|
||||||
if (index > 0) {
|
if (index > 0) {
|
||||||
this.form[key][0] = false
|
this.form[key][0] = false
|
||||||
|
@ -58,6 +73,9 @@ const Frontpage = {
|
||||||
this.form.zip = ''
|
this.form.zip = ''
|
||||||
this.form.street_name = ''
|
this.form.street_name = ''
|
||||||
this.form.locations.push(entry)
|
this.form.locations.push(entry)
|
||||||
|
this.cities = Object.keys(Constants.Locations)
|
||||||
|
this.zips = Object.keys(Constants.Streets)
|
||||||
|
this.streets = []
|
||||||
return false
|
return false
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -99,30 +117,33 @@ const Frontpage = {
|
||||||
hidden: !this.showAddLocation,
|
hidden: !this.showAddLocation,
|
||||||
onsubmit: (e) => this.onLocationAdd(e),
|
onsubmit: (e) => this.onLocationAdd(e),
|
||||||
}, [
|
}, [
|
||||||
m('div.form-item', [
|
m(Combobox, {
|
||||||
m('label', 'City*'),
|
label: 'City*',
|
||||||
m('input', {
|
items: this.cities,
|
||||||
type: 'text',
|
value: this.form.city,
|
||||||
placeholder: 'Reykjavík',
|
placeholder: 'Reykjavík',
|
||||||
oninput: (e) => this.onFormUpdate(vnode, 'city', null, e),
|
oninput: (e) => this.onFormUpdate(vnode, 'city', null, e),
|
||||||
}),
|
ondone: () => { this.inputs.zip.state.focus() },
|
||||||
]),
|
}),
|
||||||
m('div.form-item', [
|
m(Combobox, {
|
||||||
m('label', 'Postal code (optional)'),
|
label: 'Postal code (optional)',
|
||||||
m('input', {
|
items: this.zips,
|
||||||
type: 'text',
|
value: this.form.zip,
|
||||||
placeholder: '000',
|
placeholder: '000',
|
||||||
oninput: (e) => this.onFormUpdate(vnode, 'zip', null, e),
|
oninput: (e) => this.onFormUpdate(vnode, 'zip', null, e),
|
||||||
}),
|
oncreate: (e) => { this.inputs.zip = e },
|
||||||
]),
|
ondone: () => { this.inputs.street.state.focus() },
|
||||||
m('div.form-item.form-fill', [
|
}),
|
||||||
m('label', 'Street name (optional)'),
|
m(Combobox, {
|
||||||
m('input', {
|
class: 'form-fill',
|
||||||
type: 'text',
|
label: 'Street name (optional)',
|
||||||
placeholder: 'Enter your dream street adress',
|
items: this.streets,
|
||||||
oninput: (e) => this.onFormUpdate(vnode, 'street_name', null, e),
|
value: this.form.street_name,
|
||||||
}),
|
placeholder: 'Enter your dream street adress',
|
||||||
]),
|
oninput: (e) => this.onFormUpdate(vnode, 'street_name', null, e),
|
||||||
|
oncreate: (e) => { this.inputs.street = e },
|
||||||
|
ondone: () => { this.onLocationAdd(vnode) },
|
||||||
|
}),
|
||||||
m('div.form-item.form-small.form-no-label', [
|
m('div.form-item.form-small.form-no-label', [
|
||||||
m('input', {
|
m('input', {
|
||||||
class: this.form.city ? 'button-active' : 'button-outline',
|
class: this.form.city ? 'button-active' : 'button-outline',
|
||||||
|
|
0
heimaerbest/app/temp.txt
Normal file
0
heimaerbest/app/temp.txt
Normal file
4
heimaerbest/app/util.js
Normal file
4
heimaerbest/app/util.js
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
export function cancelPropagation(event) {
|
||||||
|
event.stopPropagation()
|
||||||
|
return false
|
||||||
|
}
|
195
heimaerbest/app/zipcode.txt
Normal file
195
heimaerbest/app/zipcode.txt
Normal file
|
@ -0,0 +1,195 @@
|
||||||
|
101 Reykjavík Reykjavík (Miðborg) Þéttbýli Hagatorgi 1
|
||||||
|
102 Reykjavík Reykjavík (Vatnsmýri og Skerjafjörður) Þéttbýli Hagatorgi 1
|
||||||
|
103 Reykjavík Reykjavík (Háaleitis- og Bústaðahverfi) Þéttbýli Síðumúla 3-5, 108 Reykjavík
|
||||||
|
104 Reykjavík Reykjavík (Laugardalur) Þéttbýli Síðumúla 3-5, 108 Reykjavík
|
||||||
|
105 Reykjavík Reykjavík (Hlíðar) Þéttbýli Síðumúla 3-5, 108 Reykjavík
|
||||||
|
107 Reykjavík Reykjavík (Vesturbær) Þéttbýli Hagatorgi 1
|
||||||
|
108 Reykjavík Reykjavík (Múlar) Þéttbýli Síðumúla 3-5, 108 Reykjavík
|
||||||
|
109 Reykjavík Reykjavík (Breiðholt) Þéttbýli Þönglabakka 4
|
||||||
|
110 Reykjavík Reykjavík (Árbær) Þéttbýli Höfðabakka 9, 110 Reykjavík
|
||||||
|
111 Reykjavík Reykjavík (Breiðholt) Þéttbýli Þönglabakka 4, 109 Reykjavík
|
||||||
|
112 Reykjavík Reykjavík (Grafarvogur) Þéttbýli Höfðabakka 9, 110 Reykjavík
|
||||||
|
113 Reykjavík Reykjavík (Grafarholt og Úlfarsárdalur) Þéttbýli Höfðabakka 9, 110 Reykjavík
|
||||||
|
116 Reykjavík Reykjavík (Grundarhverfi) Þéttbýli Háholti 14, 270 Mosfellsbæ
|
||||||
|
121 Reykjavík Reykjavík, pósthólf Pósthólf Pósthússtræti 5, 101 Reykjavík
|
||||||
|
123 Reykjavík Reykjavík, pósthólf Pósthólf Síðumúla 3-5, 108 Reykjavík
|
||||||
|
124 Reykjavík Reykjavík, pósthólf Pósthólf Síðumúla 3-5, 108 Reykjavík
|
||||||
|
125 Reykjavík Reykjavík, pósthólf Pósthólf Síðumúla 3-5, 108 Reykjavík
|
||||||
|
127 Reykjavík Reykjavík, pósthólf Pósthólf Eiðistorgi 15, 170 Seltjarnarnesi
|
||||||
|
128 Reykjavík Reykjavík, pósthólf Pósthólf Síðumúli 3-5, 108 Reykjavík
|
||||||
|
129 Reykjavík Reykjavík, pósthólf Pósthólf Þönglabakka 4, 109 Reykjavík
|
||||||
|
130 Reykjavík Reykjavík, pósthólf Pósthólf Höfðabakka 9, 110 Reykjavík
|
||||||
|
132 Reykjavík Reykjavík, pósthólf Pósthólf Hverafold 1-3, 112 Reykjavík
|
||||||
|
150 Reykjavík Annað Opinberar stofnanir, eins og ráðuneyti og ríkisstofnanir.
|
||||||
|
155 Reykjavík Annað Einkafyrirtæki, eins og viðskiptabankar.
|
||||||
|
161 Reykjavík Reykjavík, dreifbýli (ofan Elliðavatns) Dreifbýli Höfðabakka 9, 110 Reykjavík
|
||||||
|
162 Reykjavík - Dreifbýli Kjalarnes, dreifbýli Dreifbýli Höfðabakka 9, 110 Reykjavík
|
||||||
|
170 Seltjarnarnesi Seltjarnarnes Þéttbýli Hagatorg 1
|
||||||
|
172 Seltjarnarnesi Seltjarnarnes, pósthólf Pósthólf Hagatorg 1
|
||||||
|
200 Kópavogi Kópavogur (Miðbær) Þéttbýli Dalvegi 18, 201 Kópavogi
|
||||||
|
201 Kópavogi Kópavogur (Smárar, Lindir, Salir) Þéttbýli Dalvegi 18
|
||||||
|
202 Kópavogi Kópavogur, pósthólf Pósthólf Dalvegi 18, 201 Kópavogi
|
||||||
|
203 Kópavogi Kópavogur (Hvörf, Kórar) Þéttbýli Dalvegi 18, 201 Kópavogi
|
||||||
|
206 Kópavogi Kópavogur, dreifbýli Dreifbýli Dalvegi 18
|
||||||
|
210 Garðabæ Garðabær Þéttbýli Fjarðargötu 13-15, 220 Hafnarfirði
|
||||||
|
212 Garðabæ Garðabær, pósthólf Pósthólf Fjarðargötu 13-15, 220 Hafnarfirði
|
||||||
|
220 Hafnarfirði Hafnarfjörður (Miðbær) Þéttbýli Fjarðargötu 13-15
|
||||||
|
221 Hafnarfirði Hafnarfjörður (Vellir) Þéttbýli Fjarðargötu 13-15, 220 Hafnarfirði
|
||||||
|
222 Hafnarfirði Hafnarfjörður, pósthólf Pósthólf Fjarðargötu 13-15, 220 Hafnarfirði
|
||||||
|
225 Garðabæ Garðabær (Álftanes) Þéttbýli Fjarðargötu 13-15, 220 Hafnarfirði
|
||||||
|
270 Mosfellsbæ Mosfellsbær Þéttbýli Höfðabakka 9, 110 Reykjavík
|
||||||
|
271 Mosfellsbæ Mosfellssveit, dreifbýli Dreifbýli Höfðabakka 9, 110 Reykjavík
|
||||||
|
276 Mosfellsbæ Hvalfjörður og Kjós, dreifbýli Dreifbýli Höfðabakka 9, 110 Reykjavík
|
||||||
|
190 Vogum Vogar Þéttbýli Hafnargötu 89, 230 Reykjanesbæ
|
||||||
|
191 Vogum Vatnsleysuströnd, dreifbýli Dreifbýli Hafnargötu 89, 230 Reykjanesbæ
|
||||||
|
230 Reykjanesbæ Reykjanesbær (Keflavík) Þéttbýli Hafnargötu 89, 230 Reykjanesbæ
|
||||||
|
232 Reykjanesbæ Reykjanesbær, pósthólf Pósthólf Hafnargötu 89, 230 Reykjanesbæ
|
||||||
|
233 Reykjanesbæ Reykjanesbær (Hafnir) Þéttbýli Hafnargötu 89, 230 Reykjanesbæ
|
||||||
|
235 Reykjanesbæ Keflavíkurflugvöllur Þéttbýli Hafnargötu 89, 230 Reykjanesbæ
|
||||||
|
240 Grindavík Grindavík Þéttbýli Víkurbraut 25
|
||||||
|
241 Grindavík Grindavík, dreifbýli Dreifbýli Víkurbraut 25, 240 Grindavík
|
||||||
|
245 Suðurnesjabæ Sandgerði Þéttbýli Suðurgötu 2-4
|
||||||
|
246 Suðurnesjabæ Sandgerði, dreifbýli Dreifbýli Suðurgötu 2-4, 245 Sandgerði
|
||||||
|
250 Suðurnesjabæ Garður Þéttbýli Garðbraut 69
|
||||||
|
251 Suðurnesjabæ Garður, dreifbýli Dreifbýli Garðbraut 69, 250 Garði
|
||||||
|
260 Reykjanesbæ Reykjanesbær (Njarðvík) Þéttbýli Hafnargötu 89, 230 Reykjanesbæ
|
||||||
|
262 Reykjanesbæ Reykjanesbær (Ásbrú) Þéttbýli Hafnargötu 89, 230 Reykjanesbæ
|
||||||
|
300 Akranesi Akranes Þéttbýli Smiðjuvöllum 30
|
||||||
|
301 Akranesi Akranes, dreifbýli Dreifbýli Smiðjuvöllum 30, 300 Akranesi
|
||||||
|
302 Akranesi Akranes, pósthólf Pósthólf Smiðjuvöllum 30, 300 Akranesi
|
||||||
|
310 Borgarnesi Borgarnes Þéttbýli Borgarbraut 12
|
||||||
|
311 Borgarnesi Borgarnes, dreifbýli Dreifbýli Borgarbraut 12, 310 Borgarnesi
|
||||||
|
320 Reykholti í Borgarfirði Reykholt í Borgarfirði, dreifbýli Dreifbýli Borgarbraut 12, 310 Borgarnesi
|
||||||
|
340 Stykkishólmi Stykkishólmur Þéttbýli Aðalgötu 31
|
||||||
|
341 Stykkishólmi Stykkishólmur, dreifbýli Dreifbýli Aðalgötu 31, 340 Stykkilshólmi
|
||||||
|
342 Stykkishólmi Eyja og Miklaholtshreppur Dreifbýli Aðalgötu 31, 340 Stykkilshólmi
|
||||||
|
345 Flatey á Breiðafirði Flatey á Breiðafirði Dreifbýli Aðalgötu 31, 340 Stykkishólmi
|
||||||
|
350 Grundarfirði Grundarfjörður Þéttbýli Grundargötu 50
|
||||||
|
351 Grundarfirði Grundarfjörður, dreifbýli Dreifbýli Grundargötu 50, 350 Grundarfirði
|
||||||
|
355 Ólafsvík Ólafsvík Þéttbýli Bæjartúni 5
|
||||||
|
356 Snæfellsbæ Snæfellsbær, dreifbýli Dreifbýli Bæjartúni 5, 355 Ólafsvík
|
||||||
|
360 Hellissandi Hellissandur Þéttbýli Bæjartúni 5, 355 Ólafsvík
|
||||||
|
370 Búðardal Búðardalur Þéttbýli Miðbraut 13
|
||||||
|
371 Búðardal Búðardalur, dreifbýli Dreifbýli Miðbraut 13, 370 Búðardal
|
||||||
|
380 Reykhólahreppi Reykhólar Þéttbýli Miðbraut 13, 370 Búðardal
|
||||||
|
381 Reykhólahreppi Reykhólahreppur, dreifbýli Dreifbýli Miðbraut 13, 370 Búðardal
|
||||||
|
400 Ísafirði Ísafjörður Þéttbýli Hafnarstræti 9-13
|
||||||
|
401 Ísafirði Ísafjarðardjúp, dreifbýli (frá Ögri til Laugarholts) Dreifbýli Hafnarstræti 9-13, 400 Ísafirði
|
||||||
|
410 Hnífsdal Hnífsdalur Þéttbýli Hafnarstræti 9-13, 400 Ísafirði
|
||||||
|
415 Bolungarvík Bolungarvík Þéttbýli Aðalstræti 14
|
||||||
|
416 Bolungarvík Bolungarvík, dreifbýli Dreifbýli Aðalstræti 14, 415 Bolungarvík
|
||||||
|
420 Súðavík Súðavík Þéttbýli Grundarstræti 3-5
|
||||||
|
421 Súðavík Súðavík, dreifbýli Dreifbýli Grundarstræti 3-5, Súðavík
|
||||||
|
425 Flateyri Flateyri Þéttbýli Hafnarstræti 9-13, Ísafirði
|
||||||
|
426 Flateyri Flateyri, dreifbýli Dreifbýli Hafnarstræti 9-13, Ísafirði
|
||||||
|
430 Suðureyri Suðureyri Þéttbýli Hafnarstræti 9-13, Ísafirði
|
||||||
|
431 Suðureyri Súgandafjörður, dreifbýli Dreifbýli Hafnarstræti 9-13, Ísafirði
|
||||||
|
450 Patreksfirði Patreksfjörður Þéttbýli Bjarkargötu 4
|
||||||
|
451 Patreksfirði Patreksfjörður, dreifbýli Dreifbýli Bjarkargötu 4, Patreksfirði
|
||||||
|
460 Tálknafirði Tálknafjörður Þéttbýli Bjarkargötu 4, Patreksfirði
|
||||||
|
461 Tálknafirði Tálknafjörður, dreifbýli Dreifbýli Bjarkargötu 4, Patreksfirði
|
||||||
|
465 Bíldudal Bíldudalur Þéttbýli Bjarkargötu 4, Patreksfirði
|
||||||
|
466 Bíldudal Bíldudalur, dreifbýli Dreifbýli Bjarkargötu 4, Patreksfirði
|
||||||
|
470 Þingeyri Þingeyri Þéttbýli Hafnarstræti 9-13, Ísafirði
|
||||||
|
471 Þingeyri Dýrafjörður, dreifbýli Dreifbýli Hafnarstræti 9-13, Ísafirði
|
||||||
|
500 Stað Staður Dreifbýli Lækjargötu 2, 530 Hvammstanga
|
||||||
|
510 Hólmavík Hólmavík Þéttbýli Hafnarbraut 19
|
||||||
|
511 Hólmavík Hólmavík, dreifbýli Dreifbýli Hafnarbraut 19, 510 Hólmavík
|
||||||
|
512 Hólmavík Ísafjarðardjúp, dreifbýli (nær Hólmavík) Dreifbýli Hafnarbraut 19, 510 Hólmavík
|
||||||
|
520 Drangsnesi Drangsnes Þéttbýli Hafnarbraut 19, 510 Hólmavík
|
||||||
|
524 Árneshreppi Árneshreppur Dreifbýli Hafnarbraut 19, 510 Hólmavík
|
||||||
|
530 Hvammstanga Hvammstangi Þéttbýli Lækjargötu 2
|
||||||
|
531 Hvammstanga Hvammstangi, dreifbýli Dreifbýli Lækjargötu 2, Hvammstanga
|
||||||
|
540 Blönduósi Blönduós Þéttbýli Hnjúkabyggð 32
|
||||||
|
541 Blönduósi Blönduós, dreifbýli Dreifbýli Hnjúkabyggð 32, Blönduósi
|
||||||
|
545 Skagaströnd Skagaströnd Þéttbýli Höfða
|
||||||
|
546 Skagaströnd Skagaströnd, dreifbýli Dreifbýli Hnjúkabyggð 32, Blönduósi
|
||||||
|
550 Sauðárkróki Sauðárkrókur Þéttbýli Kirkjutorgi 5
|
||||||
|
551 Sauðárkróki Sauðárkrókur, dreifbýli Dreifbýli Kirkjutorgi 5, Sauðárkróki
|
||||||
|
560 Varmahlíð Varmahlíð Þéttbýli Kirkjutorgi 5, Sauðárkróki
|
||||||
|
561 Varmahlíð Varmahlíð, dreifbýli Dreifbýli Kirkjutorgi 5, Sauðárkróki
|
||||||
|
565 Hofsósi Hofsós Þéttbýli Kirkjutorgi 5, Sauðárkróki
|
||||||
|
566 Hofsósi Hofsós, dreifbýli Dreifbýli Kirkjutorgi 5, Sauðárkróki
|
||||||
|
570 Fljótum Fljót Dreifbýli Kirkjutorgi 5, Sauðárkróki
|
||||||
|
580 Siglufirði Siglufjörður Þéttbýli Aðalgötu 24
|
||||||
|
581 Siglufirði Siglufjörður, dreifbýli Dreifbýli Aðalgötu 24, Siglufirði
|
||||||
|
600 Akureyri Akureyri Þéttbýli Strandgötu 3
|
||||||
|
601 Akureyri Akureyri, dreifbýli Dreifbýli Strandgötu 3, 600 Akureyri
|
||||||
|
602 Akureyri Akureyri, pósthólf Pósthólf Strandgötu 3, 600 Akureyri
|
||||||
|
603 Akureyri Akureyri Þéttbýli Norðurtanga 3, 600 Akureyri
|
||||||
|
604 Akureyri Akureyri, dreifbýli (Hörgársveit) Dreifbýli Norðurtanga 3
|
||||||
|
605 Akureyri Akureyri, dreifbýli (Eyjafjarðarsveit) Dreifbýli Norðurtanga 3
|
||||||
|
606 Akureyri Akureyri, dreifbýli (Svalbarðsströnd) Dreifbýli Norðurtanga 3
|
||||||
|
607 Akureyri Akureyri, dreifbýli (Þingeyjarsveit) Dreifbýli Norðurtanga 3
|
||||||
|
610 Grenivík Grenivík Þéttbýli Túngötu 3
|
||||||
|
611 Grímsey Grímsey Þéttbýli Vallargata 9
|
||||||
|
616 Grenivík Grenivík, dreifbýli Dreifbýli Túngötu 3, 610 Grenivík
|
||||||
|
620 Dalvík Dalvík Þéttbýli Hafnarbraut 26
|
||||||
|
621 Dalvík Dalvík, dreifbýli Dreifbýli Hafnarbraut 26, 620 Dalvík
|
||||||
|
625 Ólafsfirði Ólafsfjörður Þéttbýli Aðalgötu 14
|
||||||
|
626 Ólafsfirði Ólafsfjörður, dreifbýli Dreifbýli Aðalgötu 14, 625 Ólafsfirði
|
||||||
|
630 Hrísey Hrísey Þéttbýli Norðurvegi 6-8
|
||||||
|
640 Húsavík Húsavík Þéttbýli Garðarsbraut 70
|
||||||
|
641 Húsavík Húsavík, dreifbýli Dreifbýli Garðarsbraut 70, 640 Húsavík
|
||||||
|
645 Fosshóli Fosshóll, dreifbýli Dreifbýli Garðarsbraut 70, 640 Húsavík
|
||||||
|
650 Laugum Laugar Þéttbýli Kjarna
|
||||||
|
660 Mývatni Mývatn Dreifbýli Helluhrauni 3
|
||||||
|
670 Kópaskeri Kópasker Þéttbýli Bakkagötu 2
|
||||||
|
671 Kópaskeri Kópasker, dreifbýli Dreifbýli Bakkagötu 2, 670 Kópaskeri
|
||||||
|
675 Raufarhöfn Raufarhöfn Þéttbýli Aðalbraut 19
|
||||||
|
676 Raufarhöfn Raufarhöfn, dreifbýli Dreifbýli Aðalbraut 19, 675 Raufarhöfn
|
||||||
|
680 Þórshöfn Þórshöfn Þéttbýli Fjarðarvegi 5
|
||||||
|
681 Þórshöfn Þórshöfn, dreifbýli Dreifbýli Fjarðarvegi 5, 680 Þórshöfn
|
||||||
|
685 Bakkafirði Bakkafjörður Þéttbýli Fjarðarvegi 5, 680 Þórshöfn
|
||||||
|
686 Bakkafirði Bakkafjörður, dreifbýli Dreifbýli Fjarðarvegi 5, 680 Þórshöfn
|
||||||
|
690 Vopnafirði Vopnafjörður Þéttbýli Kolbeinsgötu 10
|
||||||
|
691 Vopnafirði Vopnafjörður, dreifbýli Dreifbýli Kolbeinsgötu 10, 690 Vopnafirði
|
||||||
|
700 Egilsstöðum Egilsstaðir Þéttbýli Kaupvangi 6
|
||||||
|
701 Egilsstöðum Egilsstaðir, dreifbýli Dreifbýli Kaupvangi 6, 700 Egilsstöðum
|
||||||
|
710 Seyðisfirði Seyðisfjörður Þéttbýli Hafnargötu 4
|
||||||
|
711 Seyðisfirði Seyðisfjörður, dreifbýli Dreifbýli Hafnargötu 6, 710 Seyðisfirði
|
||||||
|
715 Mjóafirði Mjóifjörður, dreifbýli Dreifbýli Brekku
|
||||||
|
720 Borgarfirði (eystri) Bakkagerði Þéttbýli Kaupvangi 6, 700 Egilsstöðum
|
||||||
|
721 Borgarfirði (eystri) Borgarfjörður eystri Dreifbýli Kaupvangi 6, 700 Egilsstöðum
|
||||||
|
730 Reyðarfirði Reyðarfjörður Þéttbýli Búðareyri 35
|
||||||
|
731 Reyðarfirði Reyðarfjörður, dreifbýli Dreifbýli Búðareyri 35, 720 Reyðarfirði
|
||||||
|
735 Eskifirði Eskifjörður Þéttbýli Strandgötu 55
|
||||||
|
736 Eskifirði Eskifjörður, dreifbýli Dreifbýli Strandgötu 55, 735 Eskifirði
|
||||||
|
740 Neskaupstað Neskaupstaður Þéttbýli Miðstræti 26
|
||||||
|
741 Neskaupstað Neskaupstaður, dreifbýli Dreifbýli Miðstræti 26, 740 Neskaupstað
|
||||||
|
750 Fáskrúðsfirði Fáskrúðsfjörður Þéttbýli Skólavegi 59
|
||||||
|
751 Fáskrúðsfirði Fáskrúðsfjörður, dreifbýli Dreifbýli Skólavegi 59, 750, Fáskrúðsfirði
|
||||||
|
755 Stöðvarfirði Stöðvarfjörður Þéttbýli Búðareyri 35, 720 Reiðarfirði
|
||||||
|
756 Stöðvarfirði Stöðvarfjörður, dreifbýli Dreifbýli Búðareyri 35, 720 Reiðarfirði
|
||||||
|
760 Breiðdalsvík Breiðdalsvík Þéttbýli Selnesi 38
|
||||||
|
761 Breiðdalsvík Breiðdalsvík, dreifbýli Dreifbýli Selnesi 38, 760 Breiðdalsvík
|
||||||
|
765 Djúpavogi Djúpivogur Þéttbýli Kambi 1
|
||||||
|
766 Djúpavogi Djúpivogur, dreifbýli Dreifbýli Kambi 1, 765 Djúpavog
|
||||||
|
780 Höfn í Hornafirði Höfn Þéttbýli Hafnarbraut 21
|
||||||
|
781 Höfn í Hornafirði Höfn, dreifbýli Dreifbýli Hafnarbraut 21, 780 Höfn
|
||||||
|
785 Öræfum Öræfi, dreifbýli Dreifbýli Hafnarbraut 21, 780 Höfn
|
||||||
|
800 Selfossi Selfoss Þéttbýli Larsenstræti 1
|
||||||
|
801 Selfossi Selfoss, dreifbyli (Árborg) Dreifbýli Larsenstræti 1, 800 Selfossi
|
||||||
|
802 Selfossi Selfoss, pósthólf Pósthólf Larsenstræti 1, 800 Selfossi
|
||||||
|
803 Selfossi Selfoss, dreifbýli (Flóahreppur) Dreifbýli Larsenstræti 1, 800 Selfossi
|
||||||
|
804 Selfossi Selfoss, dreifbýli (Skeiða- og Gnúpverjahreppur) Dreifbýli Larsenstræti 1, 800 Selfossi
|
||||||
|
805 Selfossi Selfoss, dreifbýli (Grímsnes- og Grafningshreppur) Dreifbýli Larsenstræti 1, 800 Selfossi
|
||||||
|
806 Selfossi Selfoss (Bláskógabyggð) Dreifbýli Larsenstræti 1, 800 Selfossi
|
||||||
|
810 Hveragerði Hveragerði Þéttbýli Sunnumörk 2-4
|
||||||
|
815 Þorlákshöfn Þorlákshöfn Þéttbýli Hafnarberg 1
|
||||||
|
816 Ölfusi Ölfus, dreifbýli Dreifbýli Larsenstræti 1, 800 Selfossi
|
||||||
|
820 Eyrarbakka Eyrarbakki Þéttbýli Larsenstræti 1, 800 Selfossi
|
||||||
|
825 Stokkseyri Stokkseyri Þéttbýli Larsenstræti 1, 800 Selfossi
|
||||||
|
840 Laugarvatni Laugarvatn Þéttbýli Larsenstræti 1, 800 Selfossi
|
||||||
|
845 Flúðum Flúðir Þéttbýli Larsenstræti 1, 800 Selfossi
|
||||||
|
846 Flúðum Flúðir, dreifbýli Dreifbýli Larsenstræti 1, 800 Selfossi
|
||||||
|
850 Hellu Hella Þéttbýli Þrúðvangi 10
|
||||||
|
851 Hellu Hella, dreifbyli Dreifbýli Þrúðvangi 10, 850 Hella
|
||||||
|
860 Hvolsvelli Hvolsvöllur Þéttbýli Austurvegi 2
|
||||||
|
861 Hvolsvelli Hvolsvöllur, dreifbýli Dreifbýli Austurvegi 2, 860 Hvolsvelli
|
||||||
|
870 Vík Vík Þéttbýli Austurvegi 2, 860 Hvolsvelli
|
||||||
|
871 Vík Vík, dreifbýli Dreifbýli Austurvegi 2, 860 Hvolsvelli
|
||||||
|
880 Kirkjubæjarklaustri Kirkjubæjarklaustur Þéttbýli Austurvegi 2, 860 Hvolsvelli
|
||||||
|
881 Kirkjubæjarklaustri Kirkjubæjarklaustur, dreifbýli Dreifbýli Austurvegi 2, 860 Hvolsvelli
|
||||||
|
900 Vestmannaeyjum Vestmannaeyjar Þéttbýli Vestmannabraut 22
|
||||||
|
902 Vestmannaeyjum Vestmannaeyjar, pósthólf Pósthólf Vestmannabraut 22, 900 Vestmannaeyjar
|
|
@ -50,7 +50,7 @@
|
||||||
"dot": "^2.0.0-beta.1",
|
"dot": "^2.0.0-beta.1",
|
||||||
"flaska": "^1.3.0",
|
"flaska": "^1.3.0",
|
||||||
"formidable": "^1.2.6",
|
"formidable": "^1.2.6",
|
||||||
"msnodesqlv8": "^2.4.7",
|
"msnodesqlv8": "^2.7.0",
|
||||||
"nconf-lite": "^2.0.0",
|
"nconf-lite": "^2.0.0",
|
||||||
"striptags": "^3.2.0"
|
"striptags": "^3.2.0"
|
||||||
},
|
},
|
||||||
|
|
|
@ -571,6 +571,38 @@ i.ic-plus {
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------------- icons ---------------- */
|
||||||
|
|
||||||
|
.combobox {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.combobox-list {
|
||||||
|
position: absolute;
|
||||||
|
top: 100%;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
border-radius: var(--form-radius);
|
||||||
|
border: var(--form-border);
|
||||||
|
background: var(--main-bg);
|
||||||
|
z-index: 5;
|
||||||
|
max-height: 530px;
|
||||||
|
overflow-y: scroll;
|
||||||
|
box-shadow: 0px 3px 10px #0004;
|
||||||
|
}
|
||||||
|
|
||||||
|
.combobox-list-item {
|
||||||
|
padding: 0.9rem 0.5rem;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.combobox-list-item:hover,
|
||||||
|
.combobox-list-item:active,
|
||||||
|
.combobox-list-item:focus {
|
||||||
|
background: var(--main-accent);
|
||||||
|
color: var(--main-accent-fg);
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
<link id="headstyle" rel="Stylesheet" href="/assets/app.css?v=2" type="text/css" media="none" />
|
<link id="headstyle" rel="Stylesheet" href="/assets/app.css?v=2" type="text/css" media="none" />
|
||||||
</head>
|
</head>
|
||||||
|
|
Loading…
Reference in a new issue