Made site mobile friendly

This commit is contained in:
Jonatan Nilsson 2019-12-23 02:38:56 +00:00
parent c94c37369f
commit 64b69505bf
8 changed files with 590 additions and 207 deletions

View File

@ -1,21 +1,43 @@
const m = require('mithril') var m = require('mithril')
var Helper = require('./helper')
const Footer = { var Footer = {
oninit: function() { oninit: function(vnode) {
vnode.state.scrollListenerWaiting = []
}, },
view: function() { view: function(vnode) {
return [ return [
m('div.innerbox', [ m('div.outerbox', [
m('div.image'), m('div.innerbox', [
m('aside', [ m('div.image', {
m('h3', 'Hafðu samband'), oncreate: function(subnode) {
m('p', ` Helper.scrollAddItem(vnode, {
Sendu okkur email og lýstu þínum þörfum og við munum koma til móts dom: subnode.dom,
við þín. Við erum ekki feimnir og höfum alltaf gaman því className: 'visible',
hefja nýja vináttusambönd við alla okkar viðskiptavini. threshold: -100,
`), img: '/assets/images/contact.svg',
m('h5', 'nfp@nfp.is'), })
},
}),
m('aside', [
m('h3', 'Hafðu samband'),
m('p', `
Sendu okkur tölvupóst og lýstu þínum þörfum. Við munum setja okkur
inn í málin og finna lausnir. Við bjóðum persónulega og
metnaðarfulla þjónustu fyrir alla okkar viðskiptavini.
`),
m('h5', 'nfp@nfp.is'),
]),
]),
m('div.meta', [
m('span', 'NFP ehf.'),
m('span', 'nfp@nfp.is'),
m('span', 'kt. 410915-1380'),
m('span', [
'Bakgrunnsmyndir frá ',
m('a', { href: 'https://www.freepik.com/pikisuperstar' }, 'pikisuperstar úr freepik.com'),
]),
]), ]),
]), ]),
] ]

View File

@ -1,10 +1,10 @@
const m = require('mithril') var m = require('mithril')
const Helper = require('../helper') var Helper = require('../helper')
const Front = { var Front = {
oninit: function(vnode) { oninit: function(vnode) {
Helper.init(vnode, 'frontpage', { Helper.init(vnode, 'frontpage', {
ratio: 0.85, ratio: 0.91,
}) })
}, },
@ -20,7 +20,7 @@ const Front = {
}) })
}, },
}, m('div.container', [ }, m('div.container', [
m('video', { !vnode.state.isMobile ? m('video', {
oncreate: function(subnode) { oncreate: function(subnode) {
vnode.state.domVideo = subnode.dom vnode.state.domVideo = subnode.dom
Helper.checkCreated(vnode) Helper.checkCreated(vnode)
@ -39,7 +39,12 @@ const Front = {
type: 'video/webm', type: 'video/webm',
}), }),
] ]
), ) : m('div', {
oncreate: function(subnode) {
vnode.state.domVideo = subnode.dom
Helper.checkCreated(vnode)
},
}),
m('div', m('div',
m('img', { m('img', {
oncreate: function(subnode) { oncreate: function(subnode) {
@ -58,8 +63,8 @@ const Front = {
m(m.route.Link, { href: '/video-solutions' }, [ 'Videólausnir', m('div') ]), m(m.route.Link, { href: '/video-solutions' }, [ 'Videólausnir', m('div') ]),
]), ]),
m('div.content', [ m('div.content', [
m('h1', 'Næsta kynslóð'), m('h1', 'Nýjir tímar kalla á nýjar lausnir'),
m('h2', 'með nútíma lausnir!'), m('h2', '...og við erum með þær'),
]), ]),
]) ])
), ),
@ -67,7 +72,7 @@ const Front = {
// Solutions // Solutions
m('article.solution', [ m('article.solution', [
m('h3', [ m('h3', [
'Við erum með lausnina', 'Hvað getum við gert fyrir þig?',
m('div.left'), m('div.left'),
m('div.right'), m('div.right'),
]), ]),
@ -84,12 +89,10 @@ const Front = {
}, [ }, [
m('h5', 'Þínar þarfir'), m('h5', 'Þínar þarfir'),
m('p', ` m('p', `
Hvað svo sem þarfir þínar kunna vera, þá munt Þarfir fólks og fyrirtækja eru margvíslegar og krefjast
komast í samband við lið sem hefur tugi ára reynslu oft sérstæðrar nálgunar. Starfslið okkar hefur víðtæka
í vinna með fólki og leysa vandamál. Við erum reynslu í þarfagreiningu og útfærslum á ýmsum sviðum
stoltir koma alltaf með einfalda lausn en líka hins stafræna nútíma.
ódýra, allt til mæta hverjum og einum og þeirra
þarfir.
`), `),
]), ]),
m('div.item', { m('div.item', {
@ -103,10 +106,10 @@ const Front = {
}, [ }, [
m('h5', 'Okkar lausnir'), m('h5', 'Okkar lausnir'),
m('p', ` m('p', `
Hvort heldur sem þú ert leitast eftir hugbúnað, Hvort sem þú ert leitast eftir hýsingu, hugbúnaðargerð,
hýsingu, vefsíðu eða forritunarlausnum þá erum vefhönnun, streymi- eða upptökulausnum, þá erum við með
við fjölhæfir og alltaf tilbúnir til leiks. Við þekkinguna og reynsluna. Við erum alltaf tilbúnir til
elskum taka okkur krefjandi verkefni. leiks og elskum taka okkur krefjandi verkefni.
`), `),
]), ]),
]), ]),
@ -116,11 +119,9 @@ const Front = {
dom: subnode.dom, dom: subnode.dom,
className: 'visible', className: 'visible',
threshold: -100, threshold: -100,
img: '/assets/images/solutions.svg',
}) })
}, },
style: {
backgroundImage: 'url("/assets/images/solutions.svg")',
},
}), }),
]), ]),
]), ]),
@ -137,11 +138,10 @@ const Front = {
}) })
}, },
}, [ }, [
m('h3', 'Hýsingarlausnir sniðnar að þínum þörfum'), m('h3', 'Hýsingarlausnir'),
m('p', ` m('p', `
Hvort heldur sem þig vantar vefsíðuhýsingu, Hvort heldur sem þig vantar vefhýsingu, sýndarvélar eða
sýndarvélar, gagnageymslu eða einhvers konar vennsl geymslu og meðhöndlun gagna þá getum við fundið lausn sem
á myndagögnum, þá getum við fundið lausn sem
hentar þér. hentar þér.
`), `),
m(m.route.Link, { class: 'next', href: '/hosting-solutions' }, 'Lesa meira'), m(m.route.Link, { class: 'next', href: '/hosting-solutions' }, 'Lesa meira'),
@ -153,11 +153,9 @@ const Front = {
dom: subnode.dom, dom: subnode.dom,
className: 'visible', className: 'visible',
threshold: -100, threshold: -100,
img: '/assets/images/hosting.svg',
}) })
}, },
style: {
backgroundImage: 'url("/assets/images/hosting.svg")',
},
}), }),
]), ]),
]), ]),
@ -176,9 +174,9 @@ const Front = {
}, [ }, [
m('h3', 'Forritunarlausnir'), m('h3', 'Forritunarlausnir'),
m('p', ` m('p', `
Við höfum með okkur yfir 20 ára reynslu í forritun og Ef þig vantar sérlausn eða aðstoð með þín verkefni þá
hugbúnaðargerð. Ef þig vantar sérlausn eða aðstoð með getum við hjálpað þér. Við höfum yfir 20 ára reynslu í
þín verkefni þá getum við hjálpað þér leysa úr því. forritun og hugbúnaðargerð.
`), `),
m(m.route.Link, { class: 'next', href: '/programming-solutions' }, 'Lesa meira'), m(m.route.Link, { class: 'next', href: '/programming-solutions' }, 'Lesa meira'),
]), ]),
@ -189,11 +187,9 @@ const Front = {
dom: subnode.dom, dom: subnode.dom,
className: 'visible', className: 'visible',
threshold: -100, threshold: -100,
img: '/assets/images/programming.svg',
}) })
}, },
style: {
backgroundImage: 'url("/assets/images/programming.svg")',
},
}), }),
]), ]),
]), ]),
@ -210,13 +206,11 @@ const Front = {
}) })
}, },
}, [ }, [
m('h3', 'Streymi og vídeólausnir'), m('h3', 'Streymi- og upptökulausnir'),
m('p', ` m('p', `
Það skiptir engu þó þú sért með þúsund manna Hvort sem er ræða fundi eða ráðstefnur þá tökum við
ráðstefnur eða litla hádegisfundi í fundarsölum. okkur upptökur og streymingu á þeim. Við höfum margra ára
Það getur alltaf borgað sig bjóða upp á streymi reynslu og getum unnið í hvaða sal sem er.
fyrir þá sem ekki geta komist. Við höfum mörg ára
reynslu í því og getum unnið í hvaða sal sem er.
`), `),
m(m.route.Link, { class: 'next', href: '/video-solutions' }, 'Lesa meira'), m(m.route.Link, { class: 'next', href: '/video-solutions' }, 'Lesa meira'),
]), ]),
@ -227,11 +221,9 @@ const Front = {
dom: subnode.dom, dom: subnode.dom,
className: 'visible', className: 'visible',
threshold: -100, threshold: -100,
img: '/assets/images/video.svg',
}) })
}, },
style: {
backgroundImage: 'url("/assets/images/video.svg")',
},
}), }),
]), ]),
]), ]),

View File

@ -1,8 +1,9 @@
const Helper = { var Helper = {
init: function(vnode, filename, options) { init: function(vnode, filename, options) {
vnode.state.domImg = null vnode.state.domImg = null
vnode.state.domVideo = null vnode.state.domVideo = null
vnode.state.domContainer = null vnode.state.domContainer = null
vnode.state.isMobile = Helper.isMobile()
vnode.state.videoShow = false vnode.state.videoShow = false
vnode.state.videoFilename = filename vnode.state.videoFilename = filename
@ -10,7 +11,6 @@ const Helper = {
vnode.state.resizeTimeout = null vnode.state.resizeTimeout = null
vnode.state.videoResizeThrottler = Helper.resizeThrottler.bind(vnode.state, vnode) vnode.state.videoResizeThrottler = Helper.resizeThrottler.bind(vnode.state, vnode)
vnode.state.scrollListener = null vnode.state.scrollListener = null
vnode.state.scrollListenerTicking = false
vnode.state.scrollListenerWaiting = [] vnode.state.scrollListenerWaiting = []
vnode.state.videoVisibilityHidden = '' vnode.state.videoVisibilityHidden = ''
vnode.state.videoVisibilityEvent = null vnode.state.videoVisibilityEvent = null
@ -21,6 +21,14 @@ const Helper = {
: '/assets/cover/' + filename + '_720.mp4' : '/assets/cover/' + filename + '_720.mp4'
}, },
isMobile: function() {
var check = false;
(function(a) {
if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true
})(navigator.userAgent || navigator.vendor || window.opera);
return check
},
clear: function(vnode) { clear: function(vnode) {
vnode.state.scrollListenerWaiting.splice(0, vnode.state.scrollListenerWaiting.length) vnode.state.scrollListenerWaiting.splice(0, vnode.state.scrollListenerWaiting.length)
window.removeEventListener('resize', vnode.state.videoResizeThrottler) window.removeEventListener('resize', vnode.state.videoResizeThrottler)
@ -31,8 +39,8 @@ const Helper = {
scrollListener: function(vnode) { scrollListener: function(vnode) {
if (!vnode.state.scrollListenerWaiting.length) return if (!vnode.state.scrollListenerWaiting.length) return
let scrollTop = window.pageYOffset var scrollTop = window.pageYOffset
let height = window.innerHeight var height = window.innerHeight
for (var i = 0; i < vnode.state.scrollListenerWaiting.length; i++) { for (var i = 0; i < vnode.state.scrollListenerWaiting.length; i++) {
Helper.scrollItemIsVisible(vnode, vnode.state.scrollListenerWaiting[i], scrollTop, height) Helper.scrollItemIsVisible(vnode, vnode.state.scrollListenerWaiting[i], scrollTop, height)
@ -47,14 +55,16 @@ const Helper = {
}, },
scrollAddItem: function(vnode, options) { scrollAddItem: function(vnode, options) {
let bound = options.dom.getBoundingClientRect() var bound = options.dom.getBoundingClientRect()
let scrollTop = window.pageYOffset var scrollTop = window.pageYOffset
let item = { var item = {
dom: options.dom, dom: options.dom,
threshold: options.threshold || 100, threshold: options.threshold || 100,
top: Math.round(bound.top) + Math.round(scrollTop), top: Math.round(bound.top) + Math.round(scrollTop),
bottom: Math.round(bound.bottom) + Math.round(scrollTop),
className: ' ' + options.className, className: ' ' + options.className,
img: options.img || null,
ticking: false, ticking: false,
} }
@ -68,10 +78,10 @@ const Helper = {
}, },
scrollResetBound: function(vnode) { scrollResetBound: function(vnode) {
let scrollTop = window.pageYOffset var scrollTop = window.pageYOffset
vnode.state.scrollListenerWaiting.forEach(function (item) { vnode.state.scrollListenerWaiting.forEach(function (item) {
let bound = item.dom.getBoundingClientRect() var bound = item.dom.getBoundingClientRect()
item.top = Math.round(bound.top) + Math.round(scrollTop) item.top = Math.round(bound.top) + Math.round(scrollTop)
}) })
}, },
@ -82,15 +92,31 @@ const Helper = {
if (item.top - item.threshold < scrollTop + height) { if (item.top - item.threshold < scrollTop + height) {
item.ticking = true item.ticking = true
requestAnimationFrame(function() { if (item.img) {
item.dom.className += item.className Helper.lazyLoadImage(vnode, null, item.img, function() {
let index = vnode.state.scrollListenerWaiting.indexOf(item) item.dom.style.backgroundImage = 'url("' + item.img + '")'
if (index >= 0) { requestAnimationFrame(function() {
vnode.state.scrollListenerWaiting.splice(index, 1) item.dom.className += item.className
} var index = vnode.state.scrollListenerWaiting.indexOf(item)
Helper.scrollCheckEmpty(vnode)
}) if (index >= 0) {
vnode.state.scrollListenerWaiting.splice(index, 1)
}
Helper.scrollCheckEmpty(vnode)
})
})
} else {
requestAnimationFrame(function() {
item.dom.className += item.className
var index = vnode.state.scrollListenerWaiting.indexOf(item)
if (index >= 0) {
vnode.state.scrollListenerWaiting.splice(index, 1)
}
Helper.scrollCheckEmpty(vnode)
})
}
} }
}, },
@ -165,12 +191,16 @@ const Helper = {
Helper.scaleContainerContent(vnode, 'domVideo', false, width, height) Helper.scaleContainerContent(vnode, 'domVideo', false, width, height)
}, },
lazyLoadImage: function(vnode, name, url) { lazyLoadImage: function(vnode, name, url, cb) {
if (!vnode.state[name]) return if (!vnode.state[name] && !cb) return
var img = document.createElement('img') var img = document.createElement('img')
img.onload = function() { img.onload = function() {
vnode.state[name].src = url if (cb) {
cb()
} else {
vnode.state[name].src = url
}
} }
img.src = url img.src = url
}, },

View File

@ -1,7 +1,7 @@
const m = require('mithril') var m = require('mithril')
const Helper = require('../helper') var Helper = require('../helper')
const Hosting = { var Hosting = {
oninit: function(vnode) { oninit: function(vnode) {
Helper.init(vnode, 'hosting') Helper.init(vnode, 'hosting')
}, },
@ -60,8 +60,8 @@ const Hosting = {
m(m.route.Link, { href: '/video-solutions' }, [ 'Videólausnir', m('div') ]), m(m.route.Link, { href: '/video-solutions' }, [ 'Videólausnir', m('div') ]),
]), ]),
m('div.content', [ m('div.content', [
m('h1', 'Hýsingar sem þú getur treyst'), m('h1', 'Hýsingarlausnir sem þú getur treyst'),
m('h2', 'Sýndarvélar, Wordpress, geymsluhýsing, og hvað eina!'), m('h2', 'SÝNDARVÉLAR, WORDPRESS, GEYMSLUHÝSING, OG HVAÐ EINA!'),
]), ]),
]) ])
), ),
@ -75,11 +75,9 @@ const Hosting = {
dom: subnode.dom, dom: subnode.dom,
className: 'visible', className: 'visible',
threshold: -100, threshold: -100,
img: '/assets/images/hostintro.svg',
}) })
}, },
style: {
backgroundImage: 'url("/assets/images/hostintro.svg")',
},
}), }),
m('aside', [ m('aside', [
m('div.item', { m('div.item', {
@ -93,21 +91,20 @@ const Hosting = {
}, [ }, [
m('h3', 'Vefhýsing'), m('h3', 'Vefhýsing'),
m('p', ` m('p', `
Við höfum boðið okkar viðskiptavinum upp á Við getum boðið okkar viðskiptavinum upp á margskonar
margskonar lausnir þegar kemur hýsa þeirra vefi. lausnir þegar kemur hýsa þeirra vefi. Meðal þess sem
Meðal þess sem við höfum reynslu af er bæði við höfum reynslu af er setja upp sýndarvélar sem þú
setja upp sýndarvélar sem þú getur haft fulla umsjá getur haft fulla umsjá með og gert hvað svo sem þig lystir
með og gert hvað svo sem þig lystir með en við með en einnig sérhæfum okkur í bjóða upp á
einnig sérhæfum okkur í bjóða upp á lausnir alsherjarlausnir þar sem við sjáum um alla uppsetningu og
þar sem við setjum allt upp og sjáum um allan umsjá umsjón svo þú getir haft athyglina á öðrum þáttum
og leyft þér hafa athyglina frekar á þín málefni. reksturs þíns.
`), `),
m('p', ` m('p', `
Ef þig vantar Wordpress/PHP uppsetningu eða Ef þig vantar Wordpress/PHP uppsetningu eða hefur sérhæfða
kannski ert með sérhæfari síðu og vilt nota síðu og vilt nota docker eða node þá munar okkur ekki um
docker eða node þá skiptir það okkur ekki það. Okkar kerfi geta séð um mæta þínum þörfum hverjar
neinu máli. Okkar kerfi geta séð um mæta þínum sem þær eru.
þörfum.
`), `),
]), ]),
]), ]),
@ -121,11 +118,9 @@ const Hosting = {
dom: subnode.dom, dom: subnode.dom,
className: 'visible', className: 'visible',
threshold: -100, threshold: -100,
img: '/assets/images/hostfile.svg',
}) })
}, },
style: {
backgroundImage: 'url("/assets/images/hostfile.svg")',
},
}), }),
m('aside', [ m('aside', [
m('div.item', { m('div.item', {
@ -137,21 +132,20 @@ const Hosting = {
}) })
}, },
}, [ }, [
m('h3', 'Gagnageymslur og myndavennsl'), m('h3', 'Gagnageymslur og skölun myndefnis'),
m('p', ` m('p', `
vera með örugga geymslu fyrir gögn getur verið mjög Örugg geymsla gagna er sífellt mikilvægari þáttur fyrir
mikilvægt fyrir fyrirtæki. NFP ehf. hefur boðið upp á fyrirtæki. NFP ehf. hefur boðið upp á gagnageymslu fyrir
stórar gagnageymslur á okkar vélbúnaði fyrir fyrirtæki fyrirtæki til geyma sín afrit eða vinnslugögn sem
til geyma sín afrit eða vinnlugögn sem þeirra starfsmenn geta haft aðgang og unnið með hvar sem
starfsmanna þurfa hafa aðgang og vinna með hvar þeir eru staddir í heiminum.
svo sem þeir eru staddir í heiminum.
`), `),
m('p', ` m('p', `
Við höfum líka haft góða reynslu sjá um vinnslu og Við getum einnig séð um hvers kyns meðhöndlun myndgagna
hýsingu á myndum og þess háttar og séð um öll vennsl svo sem endurkóðun upptökuefnis til lágmarka rýmisþörf
sem krafist er til þeirra. Hvort heldur sem það er með bestu mögulegu gæðum eða skölun á myndum fyrir
enkóða vídeó fæla eða ljósmyndir í mismunandi upplausnum vefsíðubirtingar. Lausnir okkar eru skilvirkar og
fyrir vefsíðubirtingar hvað svo sem þarf gera. afkastamiklar.
`), `),
]), ]),
]), ]),
@ -165,11 +159,9 @@ const Hosting = {
dom: subnode.dom, dom: subnode.dom,
className: 'visible', className: 'visible',
threshold: -100, threshold: -100,
img: '/assets/images/hostmanaged.svg',
}) })
}, },
style: {
backgroundImage: 'url("/assets/images/hostmanaged.svg")',
},
}), }),
m('aside', [ m('aside', [
m('div.item', { m('div.item', {
@ -183,18 +175,16 @@ const Hosting = {
}, [ }, [
m('h3', 'Láttu okkur sjá um viðhaldið'), m('h3', 'Láttu okkur sjá um viðhaldið'),
m('p', ` m('p', `
Það getur reynst kúnst viðhalda sýndarvélum og Það getur verið kúnst viðhalda sýndarvélum og
heimasíðum. Það er alls ekki fyrir alla gera heimasíðum og Það er ekki á allra hendi framkvæma
Wordpress uppfærslur eða gera prófanir á öryggisafrit Wordpress uppfærslur eða prófanir á öryggisafritum.
og þau séu afritast rétt.
`), `),
m('p', ` m('p', `
Viðhald á búnaði ætti alls ekki vera eitthvað sem Þú átt geta einbeitt þér þínu sérsviði. Þess vegna
allir kunna. Þess vegna höfum við boðið upp á þann bjóðum við upp á sjá um allt sem kemur viðhaldi og
valkost sjá um allt svoleiðis eftir aðstæðum fyrir gæðaeftirliti. Við fylgjumst vel með þróuninni, gerum
þá sem vilja eignast þann kost. Við gerum reglulegar reglulegar uppfærslur og tryggjum allt virki sem
uppfærslur og fylgjumst með netheiminum og því sem skildi.
er gerast þar.
`), `),
]), ]),
]), ]),

View File

@ -12,7 +12,7 @@
//in the console. //in the console.
window.components = {} window.components = {}
const m = require('mithril') var m = require('mithril')
m.route.setOrig = m.route.set m.route.setOrig = m.route.set
m.route.set = function(path, data, options){ m.route.set = function(path, data, options){
@ -26,11 +26,11 @@ m.route.link = function(vnode){
window.scrollTo(0, 0) window.scrollTo(0, 0)
} }
const Front = require('./front') var Front = require('./front')
const Hosting = require('./hosting') var Hosting = require('./hosting')
const Programming = require('./programming') var Programming = require('./programming')
const Streaming = require('./streaming') var Streaming = require('./streaming')
const Footer = require('./footer') var Footer = require('./footer')
m.route.prefix = '' m.route.prefix = ''
m.route(document.getElementById('container'), '/', { m.route(document.getElementById('container'), '/', {

View File

@ -1,7 +1,7 @@
const m = require('mithril') var m = require('mithril')
const Helper = require('../helper') var Helper = require('../helper')
const Programming = { var Programming = {
oninit: function(vnode) { oninit: function(vnode) {
Helper.init(vnode, 'programming') Helper.init(vnode, 'programming')
}, },
@ -75,11 +75,9 @@ const Programming = {
dom: subnode.dom, dom: subnode.dom,
className: 'visible', className: 'visible',
threshold: -100, threshold: -100,
img: '/assets/images/programmingintro.svg',
}) })
}, },
style: {
backgroundImage: 'url("/assets/images/programmingintro.svg")',
},
}), }),
m('aside', [ m('aside', [
m('div.item', { m('div.item', {
@ -93,18 +91,18 @@ const Programming = {
}, [ }, [
m('h3', 'Vefsíðuforritun'), m('h3', 'Vefsíðuforritun'),
m('p', ` m('p', `
Með margra ára reynslu í forritun og mikla þekkingu þegar Með margra ára reynslu í forritun og yfirgripsmikla
kemur vefsíðugerð, þá er ekkert sem hefur stoppað okkur þekkingu þegar kemur vefsíðugerð, er ekkert sem stoppar
í leysa krefjandi verkefni. Hvort heldur sem það er flókin okkur í leysa krefjandi verkefni. Hvort heldur sem um
útfærsla á hönnun og innleiðing þess í HTML/CSS eða setja er ræða útfærslu á hönnun og innleiðing hennar í
upp greiðslugáttir og áskriftaleiðir hjá mismunandi aðilum HTML/CSS eða uppsetningu greiðslugátta og áskriftaleiða
þá erum við sérfræðingar í þeim hlutum. hjá mismunandi aðilum þá erum við sérfræðingar á því
sviði.
`), `),
m('p', ` m('p', `
Forritunartungumál skipta okkur ekki máli enda er það bara Við getum unnið með hvaða forritunartungumál sem er.
tól til vinna með. Hvaða tækni sem þú notar, node eða Hvaða tækni sem þú notar, node, python, C# eða hvað
python eða C# eða hvað svo sem það er, þá lætur það ekkert annað tungumál, þá látum við ekkert stoppa okkur.
stoppa okkur.
`), `),
]), ]),
]), ]),
@ -118,11 +116,9 @@ const Programming = {
dom: subnode.dom, dom: subnode.dom,
className: 'visible', className: 'visible',
threshold: -100, threshold: -100,
img: '/assets/images/programmingstore.svg',
}) })
}, },
style: {
backgroundImage: 'url("/assets/images/programmingstore.svg")',
},
}), }),
m('aside', [ m('aside', [
m('div.item', { m('div.item', {
@ -136,18 +132,17 @@ const Programming = {
}, [ }, [
m('h3', 'Sölukerfi og vefverslun'), m('h3', 'Sölukerfi og vefverslun'),
m('p', ` m('p', `
Okkar mesta stolt var búa til sölukerfi frá grunni í Við höfum hannað og þróað sölukerfi frá grunni í síðuformi.
síðuformi, byggt frá grunni til vera einföld í notkun Það er byggt til vera einfalt í notkun og henta fyrir
og henta lítil fyrirtæki. Sölukerfið býður upp á pantana- lítil og meðalstór fyrirtæki. Sölukerfið býður upp á
og birgðakerfi sem og vefverslunarframenda. Allt kerfið er pantanakerfi, verkbókhald og birgðakerfi sem og
svo hægt í einum pakka, með eða án posa og tilbúið til vefverslunarframenda og tengingu við posa.
notkunar.
`), `),
m('p', ` m('p', `
Við höfum einnig breytt vefverslunarframendanum til passa Við getum aðlagað vefverslunarframendanum til passa
fyrir hvert fyrirtæki og þeirra vörumerki. Við vinnum með fyrir hvert fyrirtæki og þeirra vöruframboði. Við vinnum
hverjum og einum og pössum upp á skilja aldrei frá hlutum náið með hverjum og einum viðskiptavini og skilum af okkur
fyrr en allir eru sáttir. lausn sem uppfyllir þarfir þeirra.
`), `),
]), ]),
]), ]),
@ -161,11 +156,9 @@ const Programming = {
dom: subnode.dom, dom: subnode.dom,
className: 'visible', className: 'visible',
threshold: -100, threshold: -100,
img: '/assets/images/programmingcontractor.svg',
}) })
}, },
style: {
backgroundImage: 'url("/assets/images/programmingcontractor.svg")',
},
}), }),
m('aside', [ m('aside', [
m('div.item', { m('div.item', {
@ -177,18 +170,19 @@ const Programming = {
}) })
}, },
}, [ }, [
m('h3', 'Verktakavinna heim til þín'), m('h3', 'Verktakavinna'),
m('p', ` m('p', `
Ef það er tímapressa hjá þér, þá erum við alltaf tilbúnir Ef það er tímapressa hjá þér, þá getum við komið beint
koma beint inn í hús til ykkar og vinna verktakavinnu til ykkar og unnið verktakavinnu á ykkar vinnustað. Við
á ykkar vinnustað. Við vinnum alltaf með ykkar fólki og getum unnið náið með ykkar fólki og aðlagast hvaða
getum aðlagast hvaða vinnureglum sem er. vinnureglum sem er.
`), `),
m('p', ` m('p', `
Okkar fólk hefur verið vel tekið hvert sem við förum og Okkar fólki hefur verið vel tekið hvert sem við förum og
höfum alltaf skilið hlutum frá okkur í tilbúnu formi. við höfum ætíð kappkostað skila frá okkur góðu verki.
Hverjar svo sem sem vandamálin kunna liggja þá geturðu Hverjar svo sem sem vandamálin kunna liggja þá
treyst því við munum finna lausn saman og redda málunum. geturðu treyst því við munum finna lausn á þeim
saman og redda málunum.
`), `),
]), ]),
]), ]),

View File

@ -1,7 +1,7 @@
const m = require('mithril') var m = require('mithril')
const Helper = require('../helper') var Helper = require('../helper')
const Streaming = { var Streaming = {
oninit: function(vnode) { oninit: function(vnode) {
Helper.init(vnode, 'streaming') Helper.init(vnode, 'streaming')
}, },
@ -60,8 +60,8 @@ const Streaming = {
m(m.route.Link, { class: 'active', href: '/video-solutions' }, [ 'Videólausnir', m('div') ]), m(m.route.Link, { class: 'active', href: '/video-solutions' }, [ 'Videólausnir', m('div') ]),
]), ]),
m('div.content', [ m('div.content', [
m('h1', 'Ráðstefnur og fundir'), m('h1', 'Streymi- og upptökulausnir'),
m('h2', 'Streymi- og vídeóupptökulausnir!'), m('h2', 'Fyrir ráðstefnur og fundi á tækniöld'),
]), ]),
]) ])
), ),
@ -75,11 +75,9 @@ const Streaming = {
dom: subnode.dom, dom: subnode.dom,
className: 'visible', className: 'visible',
threshold: -100, threshold: -100,
img: '/assets/images/videoconference.svg',
}) })
}, },
style: {
backgroundImage: 'url("/assets/images/videoconference.svg")',
},
}), }),
m('aside', [ m('aside', [
m('div.item', { m('div.item', {
@ -91,17 +89,19 @@ const Streaming = {
}) })
}, },
}, [ }, [
m('h3', 'Það er ekkert eins leiðinglegt og að missa af viðburði'), m('h3', 'Ekki missa af neinu!'),
m('p', ` m('p', `
Fyrir þá sem ekki komast eða fyrir þá sem eiga við fötlun Aðstæður fólks eru æði ólíkar og ekki geta allir komist á
stríða, getur verið erfitt fyrir þá komast á fundi eða alla viðburði, hvort sem er vegna fjarlægðar, fötlunar eða
viðburði. Þessvegna höfum við boðið upp á fundarstreymi og tímaleysis. Við bjóðum upp á upptöku og streymiþjónustu
ráðstefnustreymi fyrir hvaða viðburð sem er. fyrir hvers kyns viðburði til færa þá nær fólki í tíma
og rúmi.
`), `),
m('p', ` m('p', `
Innifalið er alltaf streymigluggi, upptöku og úrvinnslu Innifalið í þjónustunni er streymigluggi, upptaka og
gagna með sundurbrotið vídeó eftir ræðumanni eða umræðuefni, úrvinnsla myndefnis með sundurgreiningu eftir ræðumanni
tilbúið til birtingar á netinu eða henda í youtube. eða umræðuefni, tilbúið til birtingar á netinu og/eða
í varðveislu á stafrænu formi.
`), `),
]), ]),
]), ]),

File diff suppressed because one or more lines are too long