whatever
@ -2,17 +2,30 @@ module.exports = function(mw) {
|
||||
return {
|
||||
public: [
|
||||
{
|
||||
title: 'Start',
|
||||
template: 'pages/index',
|
||||
title: 'Home',
|
||||
path: '/'
|
||||
}, {
|
||||
title: 'Spytext'
|
||||
}, {
|
||||
title: 'Playground'
|
||||
}, {
|
||||
title: 'CSS',
|
||||
name: 'css'
|
||||
},
|
||||
{
|
||||
title: 'Process'
|
||||
},
|
||||
{
|
||||
title: 'Services',
|
||||
pages: [
|
||||
{
|
||||
title: 'Entertainment',
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'Markets'
|
||||
},
|
||||
{
|
||||
title: 'About'
|
||||
},
|
||||
{
|
||||
title: 'Contact'
|
||||
}
|
||||
|
||||
],
|
||||
|
||||
//redirects: [
|
||||
|
||||
@ -1,27 +1,31 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>TCB IT & Development AB</title>
|
||||
<meta property="og:title" content="HomeTechnology" />
|
||||
<meta property="og:url" content="https://www.home-technology.com/" />
|
||||
<meta property="og:image" content="https://ww.home-technology.com/img/home-technology-logo.svg" />
|
||||
<meta property="og:description" content="We design, install and support modern technology for the modern home. We offer many services including but not limited to Home Entertainment, Security and Intergation" />
|
||||
<meta property="og:type" content="website" />
|
||||
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta charset="utf-8" />
|
||||
|
||||
<link rel="shortcut icon" href="/favicon.png" />
|
||||
|
||||
<link type="text/css" rel="stylesheet" href="/css/main.css" />
|
||||
|
||||
<link href='//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="company">
|
||||
<h1 class="logo"><span>TCB IT & Development</span></h1>
|
||||
</div>
|
||||
{>"partials/navigation":navigation page=page /}
|
||||
</div>
|
||||
<header data-view="BurgerHover">
|
||||
<div class="company">
|
||||
<a class="nav" href="/"><h1 class="logo"><img src="/img/home-technology-logo.svg"><strong>Home</strong>Technology</h1></a>
|
||||
</div>
|
||||
{>"partials/navigation":navigation page=page /}
|
||||
</header>
|
||||
<div class="snap-top-menu snap-top-persistant" data-view="SnapTop">
|
||||
<a class="nav entertainment col m-3" href="services/entertainment">Entertainment</a>
|
||||
<a class="nav security col m-3" href="services/security">Security</a>
|
||||
<a class="nav integration col m-3" href="services/integration">Integration</a>
|
||||
</div>
|
||||
<main>
|
||||
|
||||
{?error}
|
||||
@ -33,12 +37,6 @@
|
||||
{/error}
|
||||
|
||||
</main>
|
||||
<footer class="bottom">
|
||||
<div class="row">
|
||||
<div class="col m-6">Copyright TCB IT & Development AB</div>
|
||||
<div class="col m-6 text-right">Website by <a href="https://thecodebureau.com">TCB</a>.</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
|
||||
|
||||
95
server/templates/pages/about.dust
Normal file
@ -0,0 +1,95 @@
|
||||
<div class="page row">
|
||||
<section data-title="Welcome" class="welcome">
|
||||
<header class="col">
|
||||
<h1>Welcome / Välkommen!</h1>
|
||||
<h2><span>The Code Bureau:</span> Advanced Web Development & Design</h2>
|
||||
</header>
|
||||
<div class="col m-6">
|
||||
<p>The Code Bureau is a web development & design firm based in Lund,
|
||||
Sweden. Unlike most other web designers/developers, all our employees
|
||||
have a background in mathematics or computer science.</p>
|
||||
<p class="emph">We make it our business to stay up to date on the latest
|
||||
trends and technologies. The applications we create are always
|
||||
state-of-the-art and built for the future. When you employ us, you wont need to update your
|
||||
products for years.</p>
|
||||
</div>
|
||||
<div class="col m-6">
|
||||
<p>We cater a range of different services to our customers;
|
||||
always focusing on the development of code for the web. Our love for code
|
||||
and the new possibilities of the web enable us to do almost anything. Just ask.</p>
|
||||
<p class="emph">The Code Bureau is a fairly new venture, and as such we
|
||||
are still building a portfolio of show cases. During this time we
|
||||
are offering our services at greatly reduced prices.</p>
|
||||
</div>
|
||||
</section>
|
||||
<section data-title="What We Do" class="what-we-do">
|
||||
<header class="col">
|
||||
<h1>What We Do</h1>
|
||||
</header>
|
||||
<div class="item col m-4">
|
||||
<h2><span>Web Pages</span></h2>
|
||||
<p>Obviously we create websites. Essentially everything we create are
|
||||
web sites of varying complexity. However, we refer to web sites as our
|
||||
entry level products that mainly focus on presentation of information without excessive functionality.</p>
|
||||
</div>
|
||||
<div class="item col m-4">
|
||||
<h2><span>Web Apps</span></h2>
|
||||
<p>Web apps are advanced web sites that emulate functionality usually
|
||||
found in native apps or programs.</p>
|
||||
|
||||
<p>Web apps have, unlike native apps, the benefit of running on all
|
||||
computers and devices. The users only need a browser to access its
|
||||
functionality.</p>
|
||||
</div>
|
||||
<div class="item col m-4">
|
||||
<h2><span>Web Games</span></h2>
|
||||
<p>As the name suggests, web games are games made to run in a browser on any device.</p>
|
||||
</div>
|
||||
</section>
|
||||
<section data-title="Why Choose Us" class="why-choose-us">
|
||||
<header class="col">
|
||||
<h1>Why Choose Us?</h1>
|
||||
</header>
|
||||
<div class="col">
|
||||
<ol>
|
||||
<li>
|
||||
<h2>We know code</h2>
|
||||
<p>Most web designers or developers are artistically creative individuals. However,
|
||||
to create stable, reliable web sites and apps you need to know more than design. We
|
||||
are a collection of individuals that both truly love and know code, computers and the web.</p>
|
||||
</li>
|
||||
<li>
|
||||
<h2>SEO</h2>
|
||||
<p>Search Engine Optimization is probably the most important
|
||||
factor for a web sites success. It is also constantly changing, and your web sites
|
||||
need to be updated constantly to stay ahead of the competition.</p>
|
||||
<p>One of the most important factors for good SEO today is the speed
|
||||
of your website. Using a framework like WordPress will doom you to a
|
||||
slow web site with poor search engine performance. Our web sites
|
||||
are many, many times faster than those built with WordPress or similar.</p>
|
||||
</li>
|
||||
<li>
|
||||
<h2>Future Proof</h2>
|
||||
<p>The internet and web browsers have become infinately more advanced the last few years. Web sites are quickly becoming
|
||||
more like apps and the user experience can be greatly improved. Our love for code means we understand the trends, and can
|
||||
make decisions that ensure our products will be up to date for years to come. No WordPress or PHP here.</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</section>
|
||||
<section data-title="Contact" class="contact">
|
||||
<header class="col">
|
||||
<h1>Contact</h1>
|
||||
</header>
|
||||
<div typeof="Organization" class="col">
|
||||
<p property="telephone" class="phone">+46 (0) 708 922 122</p>
|
||||
<p property="email" class="email"><a href="mailto:info@thecodebureau.com">info@thecodebureau.com</a></p>
|
||||
<p class="address"><span property="legalName">TCB IT & Development AB</span><br />
|
||||
Ideon Agora<br />
|
||||
<span typeof="PostalAddress" property="address">
|
||||
<span property="streetAddress">Scheelevägen 15</span><br />
|
||||
<span property="postalCode">22363</span> <span property="addressLocality">Lund</span><br />
|
||||
<span property="addressCountry">Sweden</span></p>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
53
server/templates/pages/contact.dust
Normal file
@ -0,0 +1,53 @@
|
||||
<div class="row page contact">
|
||||
<div class="col minimummer s-12 m-10 l-8 s-centered">
|
||||
<div class="row">
|
||||
<div class="col m-12 l-6">
|
||||
<h1><strong>Contact</strong>Us</h1>
|
||||
<p>If you are thinking about starting a new project or already have one on the go, we wolud love to be involved. To discuss your best options, contact us using the details below and we will be happy to help.</p>
|
||||
<p>Alternatively, leave us your contact details and a message using the form and we'll get back to you.<br /></p>
|
||||
<p><strong>(+44) 1483 288 361</strong><br />
|
||||
<strong>hello@home-technology.com</strong><br /><br />
|
||||
<span>HomeTechnology<br>Steels Lane<br>Oxshott<br>Surrey KT22 0RT</span></p>
|
||||
</div>
|
||||
<div class="col m-12 l-6" data-view="ContactUs">
|
||||
<h1><strong>Message</strong>Us</h1>
|
||||
<span id='formStatus' class="bold" {^formStatus.message}hidden{/formStatus.message}>{formStatus.message}</span>
|
||||
<form method="POST">
|
||||
<div class="formCover">
|
||||
<span>Name: <span class="bold name"></span></span><br>
|
||||
<span>Phone/E-mail: <span class="bold phemail"></span></span><br>
|
||||
<span>Message: </span><br>
|
||||
<p class="message"></p>
|
||||
<img class="imgload" src="/img/loading.svg" />
|
||||
<img class="imgfail" src="/img/nope.svg" />
|
||||
<a class="tryAgain hideCover">Try again</a>
|
||||
<a class="sendAnother hideCover">Send another message</a>
|
||||
</div>
|
||||
<div class="empty input-container">
|
||||
<label for="name">Name</label>
|
||||
<input name='name' id='name' type='text' autocomplete="off"/>
|
||||
</div>
|
||||
<div class="empty input-container">
|
||||
<label for="respondTo">Phone or E-mail</label>
|
||||
<input name='respondTo' id='respondTo' type='text'/>
|
||||
</div>
|
||||
<div class="empty input-container">
|
||||
<label for="message">Your message</label>
|
||||
<textarea name='message' id='message'></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<button class="bluebutton mtb" id="contact-submit">Send</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col map">
|
||||
<div class="row">
|
||||
<a target="_blank" href="https://www.google.com/maps/search/HomeTechnology/@51.3309168,-0.3675903,18z"><img src="/img/map-marker.svg" /></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
{>"partials/footer"/}
|
||||
</div>
|
||||
</div>
|
||||
@ -1,23 +0,0 @@
|
||||
<div class="css page row">
|
||||
<div class="col">
|
||||
<h1>CSS playground</h1>
|
||||
<div class="container">
|
||||
<div>One</div>
|
||||
<div>Two</div>
|
||||
<div>Three</div>
|
||||
<div>Four</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div>One</div>
|
||||
<div>Two</div>
|
||||
<div>Three</div>
|
||||
<div>Four</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div>One</div>
|
||||
<div>Two</div>
|
||||
<div>Three</div>
|
||||
<div>Four</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -1,26 +0,0 @@
|
||||
<div class="css page row">
|
||||
<div class="col">
|
||||
<h1>D3 Testing Area</h1>
|
||||
|
||||
<div class="D3">
|
||||
<div class="container">
|
||||
<div>One</div>
|
||||
<div>Two</div>
|
||||
<div>Three</div>
|
||||
<div>Four</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div>One</div>
|
||||
<div>Two</div>
|
||||
<div>Three</div>
|
||||
<div>Four</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div>One</div>
|
||||
<div>Two</div>
|
||||
<div>Three</div>
|
||||
<div>Four</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -1,95 +1,14 @@
|
||||
<div class="page row">
|
||||
<section data-title="Welcome" class="welcome">
|
||||
<header class="col">
|
||||
<h1>Welcome / Välkommen!</h1>
|
||||
<h2><span>The Code Bureau:</span> Advanced Web Development & Design</h2>
|
||||
</header>
|
||||
<div class="col m-6">
|
||||
<p>The Code Bureau is a web development & design firm based in Lund,
|
||||
Sweden. Unlike most other web designers/developers, all our employees
|
||||
have a background in mathematics or computer science.</p>
|
||||
<p class="emph">We make it our business to stay up to date on the latest
|
||||
trends and technologies. The applications we create are always
|
||||
state-of-the-art and built for the future. When you employ us, you wont need to update your
|
||||
products for years.</p>
|
||||
</div>
|
||||
<div class="col m-6">
|
||||
<p>We cater a range of different services to our customers;
|
||||
always focusing on the development of code for the web. Our love for code
|
||||
and the new possibilities of the web enable us to do almost anything. Just ask.</p>
|
||||
<p class="emph">The Code Bureau is a fairly new venture, and as such we
|
||||
are still building a portfolio of show cases. During this time we
|
||||
are offering our services at greatly reduced prices.</p>
|
||||
</div>
|
||||
</section>
|
||||
<section data-title="What We Do" class="what-we-do">
|
||||
<header class="col">
|
||||
<h1>What We Do</h1>
|
||||
</header>
|
||||
<div class="item col m-4">
|
||||
<h2><span>Web Pages</span></h2>
|
||||
<p>Obviously we create websites. Essentially everything we create are
|
||||
web sites of varying complexity. However, we refer to web sites as our
|
||||
entry level products that mainly focus on presentation of information without excessive functionality.</p>
|
||||
</div>
|
||||
<div class="item col m-4">
|
||||
<h2><span>Web Apps</span></h2>
|
||||
<p>Web apps are advanced web sites that emulate functionality usually
|
||||
found in native apps or programs.</p>
|
||||
|
||||
<p>Web apps have, unlike native apps, the benefit of running on all
|
||||
computers and devices. The users only need a browser to access its
|
||||
functionality.</p>
|
||||
</div>
|
||||
<div class="item col m-4">
|
||||
<h2><span>Web Games</span></h2>
|
||||
<p>As the name suggests, web games are games made to run in a browser on any device.</p>
|
||||
</div>
|
||||
</section>
|
||||
<section data-title="Why Choose Us" class="why-choose-us">
|
||||
<header class="col">
|
||||
<h1>Why Choose Us?</h1>
|
||||
</header>
|
||||
<div class="col">
|
||||
<ol>
|
||||
<li>
|
||||
<h2>We know code</h2>
|
||||
<p>Most web designers or developers are artistically creative individuals. However,
|
||||
to create stable, reliable web sites and apps you need to know more than design. We
|
||||
are a collection of individuals that both truly love and know code, computers and the web.</p>
|
||||
</li>
|
||||
<li>
|
||||
<h2>SEO</h2>
|
||||
<p>Search Engine Optimization is probably the most important
|
||||
factor for a web sites success. It is also constantly changing, and your web sites
|
||||
need to be updated constantly to stay ahead of the competition.</p>
|
||||
<p>One of the most important factors for good SEO today is the speed
|
||||
of your website. Using a framework like WordPress will doom you to a
|
||||
slow web site with poor search engine performance. Our web sites
|
||||
are many, many times faster than those built with WordPress or similar.</p>
|
||||
</li>
|
||||
<li>
|
||||
<h2>Future Proof</h2>
|
||||
<p>The internet and web browsers have become infinately more advanced the last few years. Web sites are quickly becoming
|
||||
more like apps and the user experience can be greatly improved. Our love for code means we understand the trends, and can
|
||||
make decisions that ensure our products will be up to date for years to come. No WordPress or PHP here.</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</section>
|
||||
<section data-title="Contact" class="contact">
|
||||
<header class="col">
|
||||
<h1>Contact</h1>
|
||||
</header>
|
||||
<div typeof="Organization" class="col">
|
||||
<p property="telephone" class="phone">+46 (0) 708 922 122</p>
|
||||
<p property="email" class="email"><a href="mailto:info@thecodebureau.com">info@thecodebureau.com</a></p>
|
||||
<p class="address"><span property="legalName">TCB IT & Development AB</span><br />
|
||||
Ideon Agora<br />
|
||||
<span typeof="PostalAddress" property="address">
|
||||
<span property="streetAddress">Scheelevägen 15</span><br />
|
||||
<span property="postalCode">22363</span> <span property="addressLocality">Lund</span><br />
|
||||
<span property="addressCountry">Sweden</span></p>
|
||||
</span>
|
||||
<div class="page row index">
|
||||
<div class="black-band response-band col">
|
||||
<div class="set-btm">
|
||||
<div class="overpadd">
|
||||
<h1>Welcome</h1>
|
||||
<h2>We <strong>design</strong>, <strong>install</strong> and <strong>support</strong> modern technology for the modern home</h2>
|
||||
</div>
|
||||
<a href='services/entertainment' class="nav bluebutton entertainment"><img src="/img/icon-entertainment.svg">ENTERTAINMENT</a><a href='services/security' class="nav bluebutton security"><img src="/img/icon-security.svg">SECURITY</a><a href='services/integration' class="nav bluebutton integration"><img src="/img/icon-integration.svg">INTEGRATION</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
{>"partials/footer"/}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
67
server/templates/pages/markets.dust
Normal file
@ -0,0 +1,67 @@
|
||||
<div class="page row markets">
|
||||
<div class="head-splash">
|
||||
<h1>Here's how we help</h1>
|
||||
<nav class="row slide-picker" data-view="MarketsSlide">
|
||||
<a class="homeowners active">Homeowners</a>
|
||||
<a class="developers">Developers</a>
|
||||
<a class="designers">Designers</a>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="slide-container col s-12 m-10 l-8 s-centered">
|
||||
<div class="col s-12 homeowners slide active">
|
||||
<div class="row">
|
||||
<div class="col m-6 ratio-port">
|
||||
<h2>Preparing your home for the future</h2>
|
||||
<h3>Working together to help you understand what’s possible.</h3>
|
||||
<a class="bluebutton mtb nav" href="/services">What we do</a>
|
||||
<a class="bluebutton mtb nav" href="/process">How we do it</a>
|
||||
</div>
|
||||
<div class="col m-6 ratio-port">
|
||||
<h4>Flexible and reliable</h4>
|
||||
<p>We design our systems to adapt to your requirements whist ensuring dependability, and we work to the same exacting standards.</p>
|
||||
<h4>Communication is key</h4>
|
||||
<p>Full disclosure at every stage of your project allow us to be more efficient and effective at what we do, and keeps you better informed in the process.</p>
|
||||
<h4>Unrivalled support</h4>
|
||||
<p>Looking after your equipment once we’ve finished is an integral part of our service, keeping you and your system fully up to date.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s-12 developers slide">
|
||||
<div class="row">
|
||||
<div class="col m-6 ratio-port">
|
||||
<h2>Taking projects from inception to completion</h2>
|
||||
<h3>Our ability to work alongside your team increases efficiency.</h3>
|
||||
<a class="bluebutton mtb nav" href="/contact">Contact us</a>
|
||||
</div>
|
||||
<div class="col m-6 ratio-port">
|
||||
<h4>Spanning all markets</h4>
|
||||
<p>We work in a variety of demanding sectors, transferring the comfort, usability and functionally that you would expect at home, to projects all over the world.</p>
|
||||
<h4>Time management</h4>
|
||||
<p>Diligent planning and effective communication allows us to deliver the required technology on schedule, increasing job efficiency and productivity.</p>
|
||||
<h4>Exceptional results</h4>
|
||||
<p>Good quality cabling infrastructure is at the heart of our installs, and gives you the capacity to raise or lower the specification, whilst future-proofing the property in process.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s-12 designers slide">
|
||||
<div class="row">
|
||||
<div class="col m-6 ratio-port">
|
||||
<h2>Beautiful system design, seamlessly integrated</h2>
|
||||
<h3>Even cables can look good, whether visible or hidden</h3>
|
||||
<a class="bluebutton mtb nav" href="/contact">Contact us</a>
|
||||
</div>
|
||||
<div class="col m-6 ratio-port">
|
||||
<h4>Complimenting your vision</h4>
|
||||
<p>We work closely with interior designers to ensure that the technology perfectly matches the decor, for a modern look and sleek finish.</p>
|
||||
<h4>Client consultation</h4>
|
||||
<p>Technology exists in a variety of different styles, it’s important that it not only looks great but functions exactly as intended - this is achieved through detailed client consultation at every stage of the project.</p>
|
||||
<h4>Quality through design</h4>
|
||||
<p>Our experience in selecting the correct products for the desired application paired with meticulous attention to detail results in immaculate installations, perfectly placed.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
{>"partials/footer"/}
|
||||
</div>
|
||||
</div>
|
||||
@ -1,20 +0,0 @@
|
||||
<div class="mod page row">
|
||||
<div class="col">
|
||||
<h1>MOD</h1>
|
||||
|
||||
<div class="mod">
|
||||
<div class="container">
|
||||
<div>One</div>
|
||||
<div>Two</div>
|
||||
<div>Three</div>
|
||||
<div>Four</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div>One</div>
|
||||
<div>Two</div>
|
||||
<div>Three</div>
|
||||
<div>Four</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -1,9 +0,0 @@
|
||||
<div class="page row">
|
||||
<div class="col" data-view="TreeWalker">
|
||||
<h1>Playground</h1>
|
||||
<div id="tree-walker" contentEditable=true><p>aaa<u><b>bbb</b><i>ccc</i>ddd<b>eee</b><strike>fff<strong>ggg</strong></strike></u>hhh<b id="start">456</b></p><p><br/></p><p><br/></p><p><br/></p><p>aaa</p></div>
|
||||
<div id="walker" contentEditable=true><script>var a = 4</script><style>body { background: white !important; }</style><p>aaa<u><b>bbb</b><i>ccc</i>ddd<b>eee</b><strike>fff<strong>ggg</strong></strike></u>hhh<b id="start">456</b></p><p><br/></p><p><br/></p><p><br/></p><p>aaa</p></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
26
server/templates/pages/process.dust
Normal file
@ -0,0 +1,26 @@
|
||||
<div class="page row process">
|
||||
<div class="process-band response-band">
|
||||
<div class="cgbg title-box">
|
||||
<h1>Our Process</h1>
|
||||
</div>
|
||||
<div class="wbg">
|
||||
<h3 id="icon-design">DESIGN</h3>
|
||||
<p>Understanding your needs allows us to recommend and plan different concepts and solutions for your specific application.</p>
|
||||
<h3 id="icon-supply">SUPPLY</h3>
|
||||
<p>Carefully selected technology can integrate seamlessly into your home. We only purchase from our trusted suppliers and handle all aspects of the ordering process.</p>
|
||||
<h3 id="icon-install">INSTALL</h3>
|
||||
<p>Matching perfect placement with flawless functionality, our team only produce exceptional installations to the highest standards.</p>
|
||||
<h3 id="icon-support">SUPPORT</h3>
|
||||
<p>Ensuring that your system keeps operating as intended for years to come is extremely important to us. Our support network is personal and highly valued by our customers.</p>
|
||||
</div>
|
||||
<div class="cgbg btm-process">
|
||||
<h3>Have a project in mind?</h3>
|
||||
<p>Call us to speak with one of the team, or learn more about what we do.</p>
|
||||
<a class="bluebutton nav" href="contact">Contact Us</a>
|
||||
</div>
|
||||
<div class="square-bg"> </div>
|
||||
</div>
|
||||
<div class="col">
|
||||
{>"partials/footer"/}
|
||||
</div>
|
||||
</div>
|
||||
33
server/templates/pages/services.dust
Normal file
@ -0,0 +1,33 @@
|
||||
<div class="row page services">
|
||||
<h1><span>Our Services</span></h1>
|
||||
<div class="snap-top-static snap-top-menu">
|
||||
<a class="nav entertainment col m-3" href="services/entertainment">Entertainment</a>
|
||||
<a class="nav security col m-3" href="services/security">Security</a>
|
||||
<a class="nav integration col m-3" href="services/integration">Integration</a>
|
||||
</div>
|
||||
<div class="biggie cinema"></div>
|
||||
<div class="describe-service r">
|
||||
<h2><a class="nav" href="services/entertainment#video"><strong>Home</strong>Cinema</a></h2>
|
||||
<p>Fanatical about film? It’s time to bring that experience home. Our entertainment systems range from simple wall-mounted setups to fully immersive media rooms that are designed to deliver cutting-edge visuals and acoustics that will blow you away.</p>
|
||||
<a class="bluebutton mtb nav" href="services/entertainment#video">Read more...</a>
|
||||
</div>
|
||||
<div class="biggie audio"></div>
|
||||
<div class="describe-service">
|
||||
<h2><a class="nav" href="/services/entertainment#audio"><strong>Home</strong>Audio</a></h2>
|
||||
<p>Streaming music directly from your smartphone or tablet is an awesomely simple way to experience your media. Our multiroom audio systems allow you the freedom to play your music in any room of your home and with our seamless installation, you can experience high-fidelity audio with minimal visual impact.</p>
|
||||
<a class="bluebutton mtb nav" href="services/entertainment#audio">Read more...</a>
|
||||
</div>
|
||||
<div class="biggie security"></div>
|
||||
<div class="describe-service r">
|
||||
<h2><a class="nav" href="/services/security"><strong>Home</strong>Security</a></h2>
|
||||
<p>Looking after your home is important and necessary. Modern technology can be your eyes and ears, informing you when something’s not right and letting you know when everything is running smoothly. Smart security systems connect with your home network, giving you access to your property, wherever you are in the world.</p>
|
||||
<a class="bluebutton mtb nav" href="services/security">Read more...</a>
|
||||
</div>
|
||||
<div class="biggie automation"></div>
|
||||
<div class="describe-service">
|
||||
<h2><a class="nav" href="/services/integration"><strong>Home</strong>Automation</a></h2>
|
||||
<p>Connect your home and experience the comfort, convenience and simplicity of a smarter way of life. Control your entertainment, security, lighting and climate through your smartphone or tablet and prepare your property for the future of HomeTechnology.</p>
|
||||
<a class="bluebutton mtb nav" href="services/integration">Read more...</a>
|
||||
</div>
|
||||
{>"partials/footer"/}
|
||||
</div>
|
||||
20
server/templates/pages/services/entertainment.dust
Normal file
@ -0,0 +1,20 @@
|
||||
<div class="page row servicepage entertainment">
|
||||
<div class="col splash">
|
||||
<div class="splash-text">
|
||||
<div class="col">
|
||||
<h2>Beautiful entertainment, immaculately <i>installed</i>.</h2><p>Enjoy quality time with the people who matter. Intricate design, intuitive control and flawless functionality are at the heart of our entertainment systems; we’re redefining playtime, one home at a time.</p>
|
||||
<a href="#content"><img src="/img/scroll-hinter.svg" class="scroll2me"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col postsplash" id="content">
|
||||
<div class="row top-icon-row">
|
||||
<div class="col">
|
||||
<img class="icon" src="/img/icon-entertainment.svg">
|
||||
</div>
|
||||
</div>
|
||||
<h2>Entertainment</h2>
|
||||
<p>There are many different elements that make for great entertainment. Our expertise in perfectly matching the correct level of technology to the application leaves you with a personalised, unique setup that you’ll never want to turn off. Have a look at what we do below.</p>
|
||||
{>"partials/footer"/}
|
||||
</div>
|
||||
</div>
|
||||
20
server/templates/pages/services/integration.dust
Normal file
@ -0,0 +1,20 @@
|
||||
<div class="page row servicepage entertainment">
|
||||
<div class="col splash">
|
||||
<div class="splash-text">
|
||||
<div class="col">
|
||||
<h2>Beautiful entertainment, immaculately <i>installed</i>.</h2><p>Enjoy quality time with the people who matter. Intricate design, intuitive control and flawless functionality are at the heart of our entertainment systems; we’re redefining playtime, one home at a time.</p>
|
||||
<a href="#content"><img src="/img/scroll-hinter.svg" class="scroll2me"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col postsplash" id="content">
|
||||
<div class="row top-icon-row">
|
||||
<div class="col">
|
||||
<img class="icon" src="/img/icon-entertainment.svg">
|
||||
</div>
|
||||
</div>
|
||||
<h2>Entertainment</h2>
|
||||
<p>There are many different elements that make for great entertainment. Our expertise in perfectly matching the correct level of technology to the application leaves you with a personalised, unique setup that you’ll never want to turn off. Have a look at what we do below.</p>
|
||||
{>"partials/footer"/}
|
||||
</div>
|
||||
</div>
|
||||
20
server/templates/pages/services/security.dust
Normal file
@ -0,0 +1,20 @@
|
||||
<div class="page row servicepage entertainment">
|
||||
<div class="col splash">
|
||||
<div class="splash-text">
|
||||
<div class="col">
|
||||
<h2>Beautiful entertainment, immaculately <i>installed</i>.</h2><p>Enjoy quality time with the people who matter. Intricate design, intuitive control and flawless functionality are at the heart of our entertainment systems; we’re redefining playtime, one home at a time.</p>
|
||||
<a href="#content"><img src="/img/scroll-hinter.svg" class="scroll2me"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col postsplash" id="content">
|
||||
<div class="row top-icon-row">
|
||||
<div class="col">
|
||||
<img class="icon" src="/img/icon-entertainment.svg">
|
||||
</div>
|
||||
</div>
|
||||
<h2>Entertainment</h2>
|
||||
<p>There are many different elements that make for great entertainment. Our expertise in perfectly matching the correct level of technology to the application leaves you with a personalised, unique setup that you’ll never want to turn off. Have a look at what we do below.</p>
|
||||
{>"partials/footer"/}
|
||||
</div>
|
||||
</div>
|
||||
@ -1,128 +0,0 @@
|
||||
<div class="spytext page row">
|
||||
<div class="col">
|
||||
<h1>Spytext</h1>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col m-6">
|
||||
<div data-view="SpytextField">
|
||||
<p>AAA<b><u>BBB</u></b>CCC</p>
|
||||
<p>DDD<br><br></p>
|
||||
<p>EEE<b><u>FFF</u></b>GGG</p>
|
||||
<p>HHH<b>III<u>KKK</u>LLL</b>MMM</p>
|
||||
<ul>
|
||||
<li>NNN</li>
|
||||
<li><br></li>
|
||||
<li>OOO</li>
|
||||
</ul>
|
||||
<p>PPP</p>
|
||||
<ul>
|
||||
<li>RRR</li>
|
||||
<li>SSS</li>
|
||||
<li>TTT</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col m-6">
|
||||
<div data-view="SpytextField">
|
||||
<p>One lorem ipsum dolor sit amet, <b><u>consectetur adipiscing elit. Maecenas semper</u></b> turpis eros, sed rhoncus purus sodales sit amet.</p>
|
||||
<p>Two quisque lacus est, B TWO this is some bold molestie et diam id, varius sagittis nisi. Donec placerat mi egestas, congue ligula non, lacinia tortor.<br><br></p>
|
||||
<p>Three aecenas <b><u>B U THREE laskjdf</u></b> id sodales dui. Nulla ipsum justo, elementum in fermentum at, feugiat nec neque.</p>
|
||||
<p>Four vestibulum <b>B tempor <u>U dolor vitae</u> risus</b> faucibus elementum. Aliquam leo odio, convallis non luctus eu, faucibus vel lorem.</p>
|
||||
<ul>
|
||||
<li>Top Menu Item 1</li>
|
||||
<li>Top Menu Item 2</li>
|
||||
<li>Top Menu Item 3</li>
|
||||
<li>Top Menu Item 4</li>
|
||||
<li>Top Menu Item 5</li>
|
||||
</ul>
|
||||
<p>Paragraph 1<br><br></p>
|
||||
<p>Para<br>graph 2</p>
|
||||
<p>Paragraph 3<br><div></div></p>
|
||||
<p>Paragraph 4</p>
|
||||
<p>Paragraph 5</p>
|
||||
<p>Paragraph 6</p>
|
||||
<ul>
|
||||
<li>Middle Menu Item 1</li>
|
||||
<li>Middle Menu Item 2</li>
|
||||
<li>Middle Menu Item 3</li>
|
||||
<li>Middle Menu Item 4</li>
|
||||
<li>Middle Menu Item 5</li>
|
||||
</ul>
|
||||
<p>Paragraph 1</p>
|
||||
<p>Paragraph 2</p>
|
||||
<p>Paragraph 3</p>
|
||||
<p>Paragraph 4</p>
|
||||
<p>Paragraph 5</p>
|
||||
<p>Paragraph 6</p>
|
||||
<ul>
|
||||
<li>Bottom Menu Item 1</li>
|
||||
<li>Bottom Menu Item 2</li>
|
||||
<li>Bottom Menu Item 3</li>
|
||||
<li>Bottom Menu Item 4</li>
|
||||
<li>Bottom Menu Item 5</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col m-6">
|
||||
<div data-view="SpytextField">
|
||||
<p>One lorem ipsum dolor sit amet, <b><u>consectetur adipiscing elit. Maecenas semper</u></b> turpis eros, sed rhoncus purus sodales sit amet.</p>
|
||||
<p>Two quisque lacus est, B TWO this is some bold molestie et diam id, varius sagittis nisi. Donec placerat mi egestas, congue ligula non, lacinia tortor.<br><br></p>
|
||||
<p>Three aecenas <b><u>B U THREE laskjdf</u></b> id sodales dui. Nulla ipsum justo, elementum in fermentum at, feugiat nec neque.</p>
|
||||
<p>Four vestibulum <b>B tempor <u>U dolor vitae</u> risus</b> faucibus elementum. Aliquam leo odio, convallis non luctus eu, faucibus vel lorem.</p>
|
||||
<ul>
|
||||
<li>test</li>
|
||||
<li><br></li>
|
||||
<li>test</li>
|
||||
</ul>
|
||||
<p>Test</p>
|
||||
<ul>
|
||||
<li>test</li>
|
||||
<li>test</li>
|
||||
<li>test</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col m-6">
|
||||
<div data-view="SpytextField">
|
||||
<h1>Hello</h1>
|
||||
<ul>
|
||||
<li>List Item 1</li>
|
||||
<li>List Item 2</li>
|
||||
<li>List Item 3</li>
|
||||
<li>Sublist
|
||||
<ul>
|
||||
<li>Sublist Item 1</li>
|
||||
<li>Sublist Item 2</li>
|
||||
<li>Sublist Item 3</li>
|
||||
<li>Sublist
|
||||
<ul>
|
||||
<li>Sublist Item 1</li>
|
||||
<li>Sublist Item 2</li>
|
||||
<li>Sublist Item 3</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p>Test 1</p>
|
||||
<p>Test 2</p>
|
||||
<p>Test 3</p>
|
||||
<p>Test 4</p>
|
||||
<p>Test 5</p>
|
||||
<p>Test 6</p>
|
||||
<p>Test 7</p>
|
||||
<ul>
|
||||
<li>test</li>
|
||||
<li><br></li>
|
||||
<li>test</li>
|
||||
</ul>
|
||||
<p>Test</p>
|
||||
<ul>
|
||||
<li>test</li>
|
||||
<li>test</li>
|
||||
<li>test</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
32
server/templates/partials/footer.dust
Normal file
@ -0,0 +1,32 @@
|
||||
<footer class="row">
|
||||
<div class="col s-12 m-4 logo-to-the-left">
|
||||
<a href="/" class="nav">
|
||||
<img src="/img/home-technology-logo.svg"><span class="company-name"><strong>Home</strong>Technology</span><br>
|
||||
<span class="copyright">© 2015 Home-Tech Ltd.</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col s-4 m-2 company">
|
||||
<h3><a class="nav" href="/about">Company</a></h3>
|
||||
<ul>
|
||||
<li><a class="nav" href="/about">About us</a></li>
|
||||
<li><a class="nav" href="/process">Our Process</a></li>
|
||||
<li><a class="nav" href="/markets">Our Markets</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col s-4 m-2 services">
|
||||
<h3><a class="nav" href="/services">Services</a></h3>
|
||||
<ul>
|
||||
<li><a class="nav" href="/services/entertainment">Entertainment</a></li>
|
||||
<li><a class="nav" href="/services/security">Security</a></li>
|
||||
<li><a class="nav" href="/services/integration">Integration</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col s-4 m-2 contact">
|
||||
<h3><a class="nav" href="/contact">Contact</a></h3>
|
||||
<ul>
|
||||
<li><a class="nav" href="/contact">Email & Phone</a></li>
|
||||
<li><a class="nav" href="//twitter.com/YourHomeTech">Twitter</a></li>
|
||||
<li><a class="nav" href="//www.facebook.com/yourhometech">Facebook</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
@ -1,332 +0,0 @@
|
||||
module.exports = function() {
|
||||
events: {
|
||||
'click button': 'command'
|
||||
},
|
||||
|
||||
template: 'spytext-toolbar',
|
||||
|
||||
command: function() {
|
||||
var command = $(e.currentTarget).attr('data-command');
|
||||
}
|
||||
};
|
||||
var SpytextButton = function(config, spytext) {
|
||||
this.spytext = spytext;
|
||||
this.config = typeof config.preset === 'string' ? merge(this.presets[config.preset], config) : config;
|
||||
this.element = $('<button class="spytext-button" st-button-type="' + config.preset + '" tabindex="' + -1 + '">')[0];
|
||||
|
||||
for(var property in this.events)
|
||||
$(this.element).on(property, this.events[property].bind(this));
|
||||
|
||||
this.disable();
|
||||
};
|
||||
|
||||
SpytextButton.prototype = {
|
||||
setActive: function() {
|
||||
$(this.element).addClass('active');
|
||||
},
|
||||
|
||||
unsetActive: function() {
|
||||
$(this.element).removeClass('active');
|
||||
},
|
||||
|
||||
enable: function() {
|
||||
this.element.disabled = false;
|
||||
},
|
||||
|
||||
disable: function() {
|
||||
this.element.disabled = true;
|
||||
this.unsetActive();
|
||||
},
|
||||
|
||||
events: {
|
||||
click: function(e) {
|
||||
e.preventDefault();
|
||||
this.spytext.execute(this.config.action, this.config.options);
|
||||
}
|
||||
},
|
||||
|
||||
presets: {
|
||||
alignLeft: { title: 'Align Left', action: 'align', options: { alignment: 'left' }},
|
||||
alignRight: { title: 'Align Right', action: 'align', options: { alignment: 'right' }},
|
||||
alignCenter: { title: 'Align Center', action: 'align', options: { alignment: 'center' }},
|
||||
alignJustify: { title: 'Align Justify', action: 'align', options: { alignment: 'justify' }},
|
||||
bold: { title: 'Bold', action: 'format', options: { tag: 'B' }},
|
||||
strikeThrough: { title: 'Strike Through', action: 'format', options: { tag: 'STRIKE' }},
|
||||
underline: { title: 'Underline', action: 'format', options: { tag: 'U' }},
|
||||
italic: { title: 'Italic', action: 'format', options: { tag: 'I' }},
|
||||
removeFormat: { action: 'removeFormat' },
|
||||
typeHeading1: { title: 'Heading 1', action: 'block', options: { tag: 'H1' }},
|
||||
typeHeading2: { title: 'Heading 2', action: 'block', options: { tag: 'H2' }},
|
||||
typeHeading3: { title: 'Heading 3', action: 'block', options: { tag: 'H3' }},
|
||||
typeHeading4: { title: 'Heading 4', action: 'block', options: { tag: 'H4' }},
|
||||
typeHeading5: { title: 'Heading 5', action: 'block', options: { tag: 'H5' }},
|
||||
typeHeading6: { title: 'Heading 6', action: 'block', options: { tag: 'H6' }},
|
||||
typeParagraph: { title: 'Paragraph', action: 'block', options: { tag: 'P' }},
|
||||
orderedList: { title: 'Ordered List', action: 'list', options: { tag: 'OL' }},
|
||||
unorderedList: { title: 'Unordered List', action: 'list', options: { tag: 'UL' }},
|
||||
indent: { title: 'Indent', action: 'indent', options: { outdent: false }},
|
||||
outdent: { title: 'Outdent', action: 'indent', options: { outdent: true }}
|
||||
}
|
||||
};
|
||||
|
||||
var SpytextDropdown = function(config, spytext) {
|
||||
this.spytext = spytext;
|
||||
this.config = typeof config.preset === 'string' ? merge(this.presets[config.preset], config) : config;
|
||||
this.items = [];
|
||||
this.element = $('<ul class="spytext-dropdown">')[0];
|
||||
|
||||
var property;
|
||||
|
||||
this.config.items.forEach(function(item) {
|
||||
var $el = $('<li><span>' + item.title + '</span></li>');
|
||||
$(this.element).append($el);
|
||||
|
||||
for(property in this.events.item)
|
||||
$el.on(property, this.events.item[property].bind(this));
|
||||
|
||||
this.items.push(item);
|
||||
}.bind(this));
|
||||
|
||||
for(property in this.events.dropdown)
|
||||
$(this.element).on(property, this.events.dropdown[property].bind(this));
|
||||
|
||||
this.index = 0;
|
||||
this.length = $(this.element).children().length;
|
||||
this.disable();
|
||||
};
|
||||
|
||||
SpytextDropdown.prototype = {
|
||||
setIndex: function(index) {
|
||||
this.index = index;
|
||||
var liHeight = this.element.children[0].offsetHeight;
|
||||
var children = this.element.children;
|
||||
|
||||
for(var i = 0; i < children.length; i++) {
|
||||
$(children[i]).css('top', '-' + (index * liHeight) + 'px');
|
||||
|
||||
if(i === index) $(children[i]).addClass('active');
|
||||
else $(children[i]).removeClass('active');
|
||||
}
|
||||
},
|
||||
|
||||
setNoActive: function() {
|
||||
this.index = 0;
|
||||
var children = this.element.children;
|
||||
|
||||
for(var i = 0; i < children.length; i++) {
|
||||
$(children[i]).css('top', '0');
|
||||
$(children[i]).removeClass('active');
|
||||
}
|
||||
},
|
||||
|
||||
setActive: function(options) {
|
||||
for(var i = 0; i < this.items.length; i++)
|
||||
for(var prop in options)
|
||||
if(options[prop] === this.items[i].options[prop])
|
||||
return this.setIndex(i);
|
||||
},
|
||||
|
||||
enable: function() {
|
||||
$(this.element).removeClass('disabled');
|
||||
},
|
||||
|
||||
disable: function() {
|
||||
$(this.element).addClass('disabled').removeClass('expanded');
|
||||
this.setNoActive();
|
||||
},
|
||||
|
||||
events: {
|
||||
dropdown: {
|
||||
click: function(e) {
|
||||
if(this.spytext.currentField) {
|
||||
$(this.element).toggleClass('expanded');
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
item: {
|
||||
click: function(e) {
|
||||
if($(this.element).hasClass('expanded')) {
|
||||
var index = $(this.element).children().index(e.currentTarget);
|
||||
this.spytext.execute(this.config.action, this.items[index].options);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
presets: {
|
||||
type: {
|
||||
action: 'block',
|
||||
items: [
|
||||
{ title: 'Heading 1', options: { tag: 'H1' }},
|
||||
{ title: 'Heading 2', options: { tag: 'H2' }},
|
||||
{ title: 'Heading 3', options: { tag: 'H3' }},
|
||||
{ title: 'Heading 4', options: { tag: 'H4' }},
|
||||
{ title: 'Heading 5', options: { tag: 'H5' }},
|
||||
{ title: 'Heading 6', options: { tag: 'H6' }},
|
||||
{ title: 'Paragraph', options: { tag: 'P' }}
|
||||
]
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var SpytextToolbar = function(config, spytext) {
|
||||
this.dropdowns = [];
|
||||
this.buttons = [];
|
||||
this.spytext = spytext;
|
||||
this.config = typeof config.preset === 'string' ? merge(this.presets[config.preset], config) : config;
|
||||
this.element = $('<div class="spytext-toolbar">')[0];
|
||||
|
||||
for(var property in this.config.dropdowns)
|
||||
this.addDropdown.call(this, this.config.dropdowns[property], property);
|
||||
|
||||
for(property in this.config.buttonGroups)
|
||||
this.addButtonGroup.call(this, this.config.buttonGroups[property], property);
|
||||
|
||||
for(property in this.events)
|
||||
$(this.element).on(property, this.events[property].bind(this));
|
||||
};
|
||||
|
||||
SpytextToolbar.prototype = {
|
||||
addButtonGroup: function(group) {
|
||||
var $ul = $('<UL>').addClass('spytext-button-group ' + group.name);
|
||||
group.buttons.forEach(function(buttonType) {
|
||||
var $li = $('<LI>');
|
||||
var button = this.addButton({ preset: buttonType }, this.spytext);
|
||||
$ul.append($li);
|
||||
$li.append(button.element);
|
||||
}.bind(this));
|
||||
$(this.element).append($ul);
|
||||
},
|
||||
|
||||
addButton: function(config) {
|
||||
var button = new SpytextButton(config, this.spytext);
|
||||
this.buttons[config.preset] = button;
|
||||
return button;
|
||||
},
|
||||
|
||||
addDropdown: function(config) {
|
||||
config = typeof config === 'string' ? { preset: config } : config;
|
||||
var dropdown = new SpytextDropdown(config, this.spytext);
|
||||
this.dropdowns[config.preset] = dropdown;
|
||||
$(this.element).append(dropdown.element);
|
||||
return dropdown;
|
||||
},
|
||||
|
||||
enable: function() {
|
||||
for(var i in this.buttons) {
|
||||
var button = this.buttons[i];
|
||||
//button.element.setAttribute('disabled');
|
||||
button.enable();
|
||||
}
|
||||
for(var j in this.dropdowns) {
|
||||
this.dropdowns[j].enable();
|
||||
//button.element.setAttribute('disabled');
|
||||
}
|
||||
$(this.element).addClass('active');
|
||||
},
|
||||
|
||||
disable: function() {
|
||||
for(var i in this.buttons) {
|
||||
this.buttons[i].disable();
|
||||
}
|
||||
for(var j in this.dropdowns) {
|
||||
this.dropdowns[j].disable();
|
||||
}
|
||||
$(this.element).removeClass('active');
|
||||
},
|
||||
|
||||
setActiveStyles: function() {
|
||||
function setBlock(tag) {
|
||||
switch(tag) {
|
||||
case 'P':
|
||||
case 'H1':
|
||||
case 'H2':
|
||||
case 'H3':
|
||||
case 'H4':
|
||||
case 'H5':
|
||||
case 'H6':
|
||||
if(that.dropdowns.type) {
|
||||
that.dropdowns.type.setActive({ tag: tag });
|
||||
}
|
||||
break;
|
||||
case 'UL':
|
||||
that.buttons.unorderedList.setActive();
|
||||
that.dropdowns.type.setNoActive();
|
||||
break;
|
||||
case 'OL':
|
||||
that.buttons.orderedList.setActive();
|
||||
that.dropdowns.type.setNoActive();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
var that = this;
|
||||
var tags = [];
|
||||
var blocks = [];
|
||||
var rng;
|
||||
var s = 0;
|
||||
|
||||
while(!rng) {
|
||||
rng = this.spytext.currentField.selectron.range();
|
||||
if(s++ > 10000) return;
|
||||
}
|
||||
|
||||
if(!rng) return;
|
||||
|
||||
if(rng.collapsed) {
|
||||
tags = ancestors(rng.startContainer, null, this.spytext.currentField.element);
|
||||
|
||||
// The last element should always be the block element, such as P or UL.
|
||||
} else {
|
||||
var el = rng.commonAncestorContainer;
|
||||
tags = ancestors(el, null, this.spytext.element);
|
||||
}
|
||||
|
||||
if(tags.length > 0) blocks.push(tags.pop());
|
||||
|
||||
for(var i in this.buttons) {
|
||||
var button = this.buttons[i];
|
||||
if(button.config.options && $(tags).is(button.config.options.tag).length > 0) {
|
||||
button.setActive();
|
||||
} else button.unsetActive();
|
||||
}
|
||||
|
||||
var blockTag;
|
||||
for(var j = 0; j < blocks.length; j++) {
|
||||
if(blockTag && blockTag !== blocks[j].tagName) {
|
||||
blockTag = null;
|
||||
break;
|
||||
} else {
|
||||
blockTag = blocks[j].tagName || null;
|
||||
}
|
||||
}
|
||||
if(blockTag) setBlock(blockTag);
|
||||
},
|
||||
|
||||
presets: {
|
||||
standard: {
|
||||
dropdowns: [ 'type' ],
|
||||
buttonGroups: [
|
||||
//{ name: 'block', buttons: ['typeHeading1', 'typeHeading2', 'typeHeading3', 'typeHeading4', 'typeHeading5', 'typeHeading6', 'typeParagraph']},
|
||||
{ name: 'format', buttons: ['bold', 'italic', 'underline', 'strikeThrough', 'removeFormat']},
|
||||
{ name: 'align', buttons: ['alignLeft', 'alignCenter', 'alignRight', 'alignJustify']},
|
||||
{ name: 'list', buttons: ['unorderedList', 'orderedList']},
|
||||
{ name: 'indent', buttons: ['indent', 'outdent']}
|
||||
]
|
||||
},
|
||||
format: {
|
||||
buttonGroups: [
|
||||
{ name: 'format', buttons: ['bold', 'underline', 'strikeThrough', 'removeFormat']},
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
events: {
|
||||
mousedown: function(e) {
|
||||
// this is needed to prevent toolbar from stealing focus
|
||||
e.preventDefault();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@ -1,72 +0,0 @@
|
||||
<div class="spytext-toolbar">
|
||||
<ul class="spytext-dropdown">
|
||||
<li style="top: 0px;">
|
||||
<button data-command="block" data-option="h1">Heading 1</button>
|
||||
</li>
|
||||
<li style="top: 0px;">
|
||||
<button data-command="block" data-option="h2">Heading 2</button>
|
||||
</li>
|
||||
<li style="top: 0px;">
|
||||
<button data-command="block" data-option="h3">Heading 3</button>
|
||||
</li>
|
||||
<li style="top: 0px;">
|
||||
<button data-command="block" data-option="h4">Heading 4</button>
|
||||
</li>
|
||||
<li style="top: 0px;">
|
||||
<button data-command="block" data-option="h5">Heading 5</button>
|
||||
</li>
|
||||
<li style="top: 0px;">
|
||||
<button data-command="block" data-option="h6">Heading 6</button>
|
||||
</li>
|
||||
<li style="top: 0px;">
|
||||
<button data-command="block" data-option="p">Paragraph</button>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="spytext-button-group format">
|
||||
<li>
|
||||
<button class="spytext-button bold" data-command="format" data-option="strong" tabindex="-1"></button>
|
||||
</li>
|
||||
<li>
|
||||
<button class="spytext-button italic" data-command="format" data-option="em" tabindex="-1"></button>
|
||||
</li>
|
||||
<li>
|
||||
<button class="spytext-button underline" data-command="format" data-option="u" tabindex="-1"></button>
|
||||
</li>
|
||||
<li>
|
||||
<button class="spytext-button strike-through" data-command="format" data-option="strike" tabindex="-1"></button>
|
||||
</li>
|
||||
<li>
|
||||
<button class="spytext-button remove-format" data-command="format" tabindex="-1"></button>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="spytext-button-group align">
|
||||
<li>
|
||||
<button class="spytext-button align-left" data-command="align" data-option="left" tabindex="-1"></button>
|
||||
</li>
|
||||
<li>
|
||||
<button class="spytext-button align-center" data-command="align" data-option="center" tabindex="-1"></button>
|
||||
</li>
|
||||
<li>
|
||||
<button class="spytext-button align-right" data-command="align" data-option="right" tabindex="-1"></button>
|
||||
</li>
|
||||
<li>
|
||||
<button class="spytext-button align-justify" data-command="align" data-option="justify" tabindex="-1"></button>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="spytext-button-group list">
|
||||
<li>
|
||||
<button class="spytext-button unordered-list" data-command="list" data-option="ul" tabindex="-1"></button>
|
||||
</li>
|
||||
<li>
|
||||
<button class="spytext-button ordered-list" data-command="list" data-option="ol" tabindex="-1"></button>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="spytext-button-group indent">
|
||||
<li>
|
||||
<button class="spytext-button indent" data-command="indent" tabindex="-1"></button>
|
||||
</li>
|
||||
<li>
|
||||
<button class="spytext-button outdent" data-command="outdent" tabindex="-1"></button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -10,7 +10,9 @@ app.module(require('spytext'));
|
||||
|
||||
$(function() {
|
||||
app.navigation = new app.views.Navigation({ el: app.$('nav') });
|
||||
app.snaptop = new app.views.SnapTop({ el: app.$('.snap-top-persistant') });
|
||||
|
||||
Backbone.history.start({ silent: true, pushState: true });
|
||||
console.log(app)
|
||||
});
|
||||
|
||||
|
||||
118
src/js/views/contact-us.js
Normal file
@ -0,0 +1,118 @@
|
||||
module.exports = {
|
||||
events:
|
||||
{
|
||||
"click #contact-submit": "validateAndSend",
|
||||
"click .hideCover": "hc",
|
||||
"keydown": "blockKeyDownArrow",
|
||||
"input input, textarea": "validateMe",
|
||||
"focus input, textarea": "becameActive",
|
||||
"onactivate input, textarea": "becameActive",
|
||||
"focusout input, textarea": "notActive",
|
||||
},
|
||||
blockKeyDownArrow: function(e)
|
||||
{
|
||||
if(e.keyCode == 39 || e.keyCode == 37)
|
||||
{
|
||||
e.stopPropagation();
|
||||
}
|
||||
},
|
||||
validateAndSend: function(e)
|
||||
{
|
||||
$('#formStatus').addClass('show');
|
||||
e.preventDefault();
|
||||
out = {}
|
||||
var inputs = $('input, textarea', this.el);
|
||||
var dontSend = false;
|
||||
for(var ip=0;ip<inputs.length;ip++)
|
||||
{
|
||||
out[inputs[ip].id] = inputs[ip].value || inputs[ip].textContent
|
||||
if(out[inputs[ip].id] == "" && inputs[ip].id != "contact-submit")
|
||||
{
|
||||
$(inputs[ip]).parent().addClass('invalid');
|
||||
//$('#formStatus').show().text('You have to fill out all fields')
|
||||
dontSend = true;
|
||||
}
|
||||
}
|
||||
if(!dontSend)
|
||||
{
|
||||
this.lastOut = out;
|
||||
var that = this;
|
||||
this.msgPending();
|
||||
$.ajax({
|
||||
timeout: 10000,
|
||||
type: "POST",
|
||||
url: '/contact',
|
||||
data: out,
|
||||
success: function(data)
|
||||
{
|
||||
$('#formStatus').show().text(data.data.formStatus.message);
|
||||
that.msgSent()
|
||||
},
|
||||
error: function(xhr, textStatus, errorThrown)
|
||||
{
|
||||
that.msgSendFailed(textStatus, errorThrown)
|
||||
},
|
||||
dataType: "json"
|
||||
});
|
||||
}
|
||||
},
|
||||
hc: function()
|
||||
{
|
||||
if(this.$el.hasClass('success'))
|
||||
{
|
||||
$('input,textarea').val("");
|
||||
$('div.input-container').removeClass('active').removeClass('valid');
|
||||
}
|
||||
this.$el.removeClass('fail pending success');
|
||||
$('#formStatus').hide();
|
||||
},
|
||||
msgPending: function()
|
||||
{
|
||||
$('#formStatus').show().text("Sending message");
|
||||
this.$el.addClass('pending');
|
||||
$(".formCover .name").text(this.lastOut.name)
|
||||
$(".formCover .phemail").text(this.lastOut.respondTo)
|
||||
$(".formCover .message").text(this.lastOut.message)
|
||||
},
|
||||
msgSent: function()
|
||||
{
|
||||
var inputs = $('input:not([type=submit]), textarea', this.el);
|
||||
inputs.val("");
|
||||
this.$el.removeClass('fail pending success').addClass('success');
|
||||
},
|
||||
msgSendFailed: function(e1, e2)
|
||||
{
|
||||
if(!e1 && !e2)
|
||||
{
|
||||
$('#formStatus').show().text("Message send failed for unknown reason. Try again or contact us at hello@home-technology.com");
|
||||
}
|
||||
else if(e1)
|
||||
{
|
||||
$('#formStatus').show().text("Message send failed (Error: " + e1 + "). Try again or contact us at hello@home-technology.com");
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#formStatus').show().text("Message send failed (Server Error: " + e2 + "). Try again or contact us at hello@home-technology.com");
|
||||
}
|
||||
this.$el.removeClass('fail pending success').addClass('fail');
|
||||
},
|
||||
validateMe: function(e)
|
||||
{
|
||||
var targetVal = $(e.target).val();
|
||||
var $containerDiv = $(e.target).parent()
|
||||
if(targetVal != "") {
|
||||
$containerDiv.removeClass('invalid').addClass('valid');
|
||||
}else{
|
||||
$containerDiv.removeClass('valid invalid') .addClass('empty');
|
||||
}
|
||||
},
|
||||
becameActive: function(e)
|
||||
{
|
||||
$('div.input-container').removeClass('active');
|
||||
$(e.target).parent().addClass('active');
|
||||
},
|
||||
notActive: function(e)
|
||||
{
|
||||
$(e.target).parent().removeClass('active');
|
||||
}
|
||||
}
|
||||
@ -2,5 +2,7 @@ module.exports = {
|
||||
Page: require('ridge/views/page'),
|
||||
Message: require('ridge/views/message'),
|
||||
Navigation: require('./navigation'),
|
||||
TreeWalker: require('./tree-walker')
|
||||
SnapTop: require('./snap-top'),
|
||||
MarketsSlide: require('./markets-slide'),
|
||||
ContactUs: require('./contact-us')
|
||||
};
|
||||
|
||||
17
src/js/views/markets-slide.js
Normal file
@ -0,0 +1,17 @@
|
||||
module.exports = {
|
||||
events: {
|
||||
"click a": "slideChange"
|
||||
},
|
||||
initialize: function(options) {
|
||||
console.log("init")
|
||||
},
|
||||
attach: function() {
|
||||
console.log("att")
|
||||
},
|
||||
slideChange: function(e) {
|
||||
$(".slide").removeClass('active');
|
||||
$(".slide." + e.target.classList[0]).addClass('active');
|
||||
$("a",this.el).removeClass('active');
|
||||
$(e.target).addClass('active');
|
||||
}
|
||||
};
|
||||
29
src/js/views/snap-top.js
Normal file
@ -0,0 +1,29 @@
|
||||
module.exports = {
|
||||
forceHidden: true,
|
||||
initialize: function(options) {
|
||||
this.listenTo(this.app.router, 'route', this.onRouteChange);
|
||||
this.onRouteChange(null,window.location.pathname.split("/").slice(1))
|
||||
},
|
||||
attach: function() {
|
||||
console.log("att")
|
||||
var thisView = this;
|
||||
$(window).scroll(function(e){
|
||||
console.log($('.snap-top-static').offset().top < window.pageYOffset)
|
||||
if(!thisView.forceHidden && $('.snap-top-static').offset().top < window.pageYOffset){
|
||||
thisView.$el.addClass('fixed')
|
||||
$('.snap-top-static').addClass('hidden')
|
||||
}
|
||||
else {
|
||||
thisView.$el.removeClass('fixed')
|
||||
$('.snap-top-static').removeClass('hidden')
|
||||
}
|
||||
});
|
||||
},
|
||||
onRouteChange: function(route, params) {
|
||||
if(params[0] != 'services'){
|
||||
this.forceHidden = true;
|
||||
}else{
|
||||
this.forceHidden = false;
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -1,18 +0,0 @@
|
||||
var Spytext = require('spytext');
|
||||
|
||||
module.exports = {
|
||||
events: {
|
||||
},
|
||||
|
||||
attach: function() {
|
||||
var _view = this;
|
||||
|
||||
_view.$('[data-spytext]').each(function(i, el) {
|
||||
// TODO clear previous spytext fields
|
||||
if(!_view.spytext) _view.spytext = new Spytext();
|
||||
|
||||
_view.spytext.addField(el);
|
||||
});
|
||||
|
||||
}
|
||||
};
|
||||
@ -1,53 +0,0 @@
|
||||
var s = window.getSelection;
|
||||
var selectron = require('spytext/selectron');
|
||||
|
||||
function offsetold(node, value, root) {
|
||||
value = value || 0;
|
||||
root = root || document.body;
|
||||
|
||||
var tw = document.createTreeWalker(root);
|
||||
var last = tw.currentNode = node;
|
||||
|
||||
while(tw.previousNode() !== tw.root) {
|
||||
//!getComputedStyle(node).display.match(/inline/);
|
||||
var nodeType = tw.currentNode.nodeType;
|
||||
if(nodeType === 1 && (
|
||||
last.nodeType === 1 && last === tw.currentNode.nextSibling ||
|
||||
last.nodeType === 3 && last === tw.currentNode.firstChild
|
||||
) ||
|
||||
nodeType === 3 && last !== tw.currentNode.nextSibling)
|
||||
value++;
|
||||
|
||||
if(tw.currentNode.nodeType === 3) {
|
||||
value += tw.currentNode.textContent.length;
|
||||
}
|
||||
|
||||
//console.log(tw.currentNode);
|
||||
//console.log('value: ' + value);
|
||||
last = tw.currentNode;
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
module.exports = {
|
||||
attach: function() {
|
||||
console.log('attach');
|
||||
var $root = this.$('#tree-walker');
|
||||
$root.on('keydown', function(e) {
|
||||
if (e.ctrlKey && e.keyCode === 65) {
|
||||
e.preventDefault();
|
||||
console.log(selectron.getOffset($root[0]));
|
||||
//console.log(selectron.restore($root[0], selectron.getOffset($root[0]) + 1));
|
||||
var positions = selectron.get($root[0]);
|
||||
s().removeAllRanges();
|
||||
setTimeout(function() {
|
||||
selectron.set(positions);
|
||||
}, 1000);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
};
|
||||
BIN
src/raster/about-background-1024.jpg
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
src/raster/about-background-1280.jpg
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
src/raster/about-background-1440.jpg
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
src/raster/about-background-1680.jpg
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
src/raster/about-background-1920.jpg
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
src/raster/about-background-360.jpg
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
src/raster/about-background-420.jpg
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
src/raster/about-background-768.jpg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
src/raster/about-background-full.jpg
Normal file
|
After Width: | Height: | Size: 322 KiB |
BIN
src/raster/index-background-1024.jpg
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
src/raster/index-background-1280.jpg
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
src/raster/index-background-1440.jpg
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
src/raster/index-background-1680.jpg
Normal file
|
After Width: | Height: | Size: 97 KiB |
BIN
src/raster/index-background-1920.jpg
Normal file
|
After Width: | Height: | Size: 118 KiB |
BIN
src/raster/index-background-360.jpg
Normal file
|
After Width: | Height: | Size: 9.9 KiB |
BIN
src/raster/index-background-420.jpg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
src/raster/index-background-768.jpg
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
src/raster/index-background-full.jpg
Normal file
|
After Width: | Height: | Size: 455 KiB |
BIN
src/raster/map.png
Normal file
|
After Width: | Height: | Size: 508 KiB |
BIN
src/raster/markets-background-header-1024.jpg
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
src/raster/markets-background-header-1280.jpg
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
src/raster/markets-background-header-1440.jpg
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
src/raster/markets-background-header-1680.jpg
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
src/raster/markets-background-header-1920.jpg
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
src/raster/markets-background-header-360.jpg
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
src/raster/markets-background-header-420.jpg
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
src/raster/markets-background-header-768.jpg
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
src/raster/markets-background-header-full.jpg
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
src/raster/process-background-1024.jpg
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
src/raster/process-background-1280.jpg
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
src/raster/process-background-1440.jpg
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
src/raster/process-background-1680.jpg
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
src/raster/process-background-1920.jpg
Normal file
|
After Width: | Height: | Size: 122 KiB |
BIN
src/raster/process-background-360.jpg
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
src/raster/process-background-420.jpg
Normal file
|
After Width: | Height: | Size: 9.6 KiB |
BIN
src/raster/process-background-768.jpg
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
src/raster/process-background-full.jpg
Normal file
|
After Width: | Height: | Size: 517 KiB |
BIN
src/raster/process-background-square.jpg
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
src/raster/services-entertainment-splash-1024.jpg
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
src/raster/services-entertainment-splash-1280.jpg
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
src/raster/services-entertainment-splash-1440.jpg
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
src/raster/services-entertainment-splash-1680.jpg
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
src/raster/services-entertainment-splash-1920.jpg
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
src/raster/services-entertainment-splash-360.jpg
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
src/raster/services-entertainment-splash-420.jpg
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
src/raster/services-entertainment-splash-768.jpg
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
src/raster/services-entertainment-splash-full.jpg
Normal file
|
After Width: | Height: | Size: 263 KiB |
BIN
src/raster/services-home-background-audio-1024.jpg
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
src/raster/services-home-background-audio-1280.jpg
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
src/raster/services-home-background-audio-1440.jpg
Normal file
|
After Width: | Height: | Size: 79 KiB |
BIN
src/raster/services-home-background-audio-1680.jpg
Normal file
|
After Width: | Height: | Size: 99 KiB |
BIN
src/raster/services-home-background-audio-1920.jpg
Normal file
|
After Width: | Height: | Size: 122 KiB |
BIN
src/raster/services-home-background-audio-360.jpg
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
src/raster/services-home-background-audio-420.jpg
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
src/raster/services-home-background-audio-768.jpg
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
src/raster/services-home-background-audio-full.jpg
Normal file
|
After Width: | Height: | Size: 318 KiB |
BIN
src/raster/services-home-background-automation-1024.jpg
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
src/raster/services-home-background-automation-1280.jpg
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
src/raster/services-home-background-automation-1440.jpg
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
src/raster/services-home-background-automation-1680.jpg
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
src/raster/services-home-background-automation-1920.jpg
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
src/raster/services-home-background-automation-360.jpg
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
src/raster/services-home-background-automation-420.jpg
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
src/raster/services-home-background-automation-768.jpg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
src/raster/services-home-background-automation-full.jpg
Normal file
|
After Width: | Height: | Size: 295 KiB |
BIN
src/raster/services-home-background-cinema-1024.jpg
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
src/raster/services-home-background-cinema-1280.jpg
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
src/raster/services-home-background-cinema-1440.jpg
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
src/raster/services-home-background-cinema-1680.jpg
Normal file
|
After Width: | Height: | Size: 126 KiB |
BIN
src/raster/services-home-background-cinema-1920.jpg
Normal file
|
After Width: | Height: | Size: 158 KiB |
BIN
src/raster/services-home-background-cinema-360.jpg
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
src/raster/services-home-background-cinema-420.jpg
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
src/raster/services-home-background-cinema-768.jpg
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
src/raster/services-home-background-cinema-full.jpg
Normal file
|
After Width: | Height: | Size: 433 KiB |