This commit is contained in:
Juho Teperi
2013-05-15 09:36:03 +03:00
parent 23f27ced27
commit 8936480bce
10 changed files with 153 additions and 68 deletions

1
.gitignore vendored
View File

@@ -3,3 +3,4 @@ dist
.tmp .tmp
app/components app/components
*.sublime-workspace *.sublime-workspace
app/api/config.php

BIN
app/images/bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
app/images/ekokumppanit.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@@ -3,75 +3,118 @@
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]--> <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]--> <!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]--> <!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Lentolaskuri 2</title> <title>Lentolaskuri</title>
<meta name="description" content=""> <meta name="description" content="">
<meta name="viewport" content="width=device-width"> <metaname="viewport" content="width=device-width">
<link rel="stylesheet" href="styles/main.css"> <link rel="stylesheet" href="styles/main.css">
</head> </head>
<body data-views="calculator maps"> <body>
<div class="container calculator"> <div class="container calculator">
<div class="row"> <div class="row">
<div class="span12"> <div class="span12">
<h1>Lentolaskuri2</h1> <h1>Lentolaskuri</h1>
</div>
</div> </div>
</div>
<div class="row"> <div class="row">
<div class="span3 passengersWidget"> <div class="span6">
<legend>
Matkustajia <div class="row-fluid">
</legend> <div class="span4 passengersWidget">
<input type="number" placeholder="1" class="span3" /> <legend>
</div> Matkustajia
<div class="span3 roundtripWidget"> </legend>
<!-- <legend>Meno-paluu</legend> --> <input type="number" placeholder="1" class="span12" />
<legend>&nbsp;</legend> </div>
<div class="btn-group"> <div class="span8 roundtripWidget">
<button type="button" class="btn active">Meno</button> <!-- <legend>Meno-paluu</legend> -->
<button type="button" class="btn roundtrip">Meno-paluu</button> <legend>&nbsp;</legend>
<div class="btn-group">
<button type="button" class="btn active">Meno</button>
<button type="button" class="btn roundtrip">Meno-paluu</button>
</div>
</div> </div>
</div> </div>
</div>
<div class="row">
<div class="span6"> <div class="row-fluid">
<legend>Reitti</legend> <div class="span12">
<div class="route"></div> <legend>Reitti</legend>
<div class="route"></div>
</div>
</div> </div>
</div>
<div class="controls row-fluid"> <div class="controls row-fluid">
<div class="span6 legInputWidget"> <div class="span12 legInputWidget">
<button class="btn btn-block"><span>Valitse lentokenttä</span> <i class="caret"></i></button> <button class="btn btn-block"><span>Valitse lentokenttä</span> <i class="caret"></i></button>
<input type="hidden"/> <input type="hidden"/>
</div>
</div> </div>
</div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span6 totalWidget"></div> <div class="span12 totalWidget"></div>
</div> </div>
<div class="row-fluid"> <div class="row-fluid">
<div class="span6"> <div class="span12">
<ul class="nav nav-tabs"> <ul class="nav nav-tabs">
<li class="active"><a href="#map" data-toggle="tab">Kartta</a></li> <li class="active"><a href="#map" data-toggle="tab">Kartta</a></li>
<li><a href="#operation" data-toggle="tab">Laskurin toiminta</a></li> <li><a href="#operation" data-toggle="tab">Laskurin toiminta</a></li>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
<div class="tab-pane active" id="map"> <div class="tab-pane active" id="map">
<div id="gmap" class="map"></div> <div id="gmap" class="map"></div>
</div> </div>
<div class="tab-pane" id="operation"> <div class="tab-pane" id="operation"></div>
</div> </div>
</div>
</div> </div>
</div> </div>
<!-- build:js scripts/main.js --> <div class="span6">
<script data-main="scripts/main" src="components/requirejs/require.js"></script> <legend>Maksu</legend>
<!-- endbuild -->
</body> <p>
Lentolipun hintaan ei sisälly lentomatkasta syntyvien ilmastovaikutusten kustannuksia vaan ne jäävät nykyisten ja
tulevien polvien maksettavaksi. Tarjoamme sinulle tamperelaisen päästömaksun, jolla voit osoittaa ottavasi
vastuuta kulutuksesi ympäristövaikutuksista. Maksu ei kompensoi päästöjäsi, koska emme voi taata, että
rahoitettavilla hankkeilla saavutetaan lentosi päästöjä vastaavat päästövähennykset. Sen sijaan maksu tukee
kestävän kehityksen arvojen mukaista yleishyödyllistä kohdetta, joka suoraan ja välillisesti auttaa saavuttamaan
päästövähennyksiä. Vapaaehtoisen päästömaksun tarkoitus on herätellä huomaamaan lentoliikenteen ilmastovaikutuksia
ja kannustaa pohtimaan liikkumisvalintoja.</p><p><a href="/index.php">Lentolaskurilla</a> saat selville, kuinka
paljon lentomatkasi tuottaa päästöjä. Laskuri laskee sinulle päästömäärään perusteella päästömaksun. Yhden
kasvihuonekaasutonnin hinta on asetettu 25 euroksi.</p><p>Voit halutessasi lahjoittaa päästömaksun esimerkiksi
toiselle Tampereen kaupungin tämän vuotisista kohteista, <a href="/../">Onandjokwen lähetyssairaalan</a>
peruskorjaukseen. Lahjoituksen voit tehdä <a href="http://www.martinus.fi/?sid=12">Martinus-säätiön kautta</a>.
</p>
<p>
Voit myös valita päästömaksullesi jonkin muun kohteen käyttämällä muiden tarjoamia vapaaehtoisia päästömaksupalveluja.
Kun pohdit, millaista toimintaa rahoitat vapaaehtoisella päästömaksulla, tutustu, miten paljon rahoitettavista
kohteista, rahojen käytöstä ja toiminnan valvonnasta on tietoa tarjolla. Jos aiot käyttää palveluja, jotka lupaavat
hyvittää aiheuttamasi päästöt, selvitä, miten tämä lupaus toteutetaan.
</p>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<a href="http://www.ekokumppanit.fi/" title="Ekokumppanit" rel="home" class="ekokumppanit">
<img src="images/ekokumppanit.png" />
</a>
</div>
</footer>
<a href="https://github.com/Ekokumppanit/Lentolaskuri"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png" alt="Fork me on GitHub"></a>
<!-- build:js scripts/main.js -->
<script data-main="scripts/main" src="components/requirejs/require.js"></script>
<!-- endbuild -->
</body>
</html> </html>

View File

@@ -14,6 +14,28 @@ define([
var App = function () { var App = function () {
this.initialize = function () { this.initialize = function () {
if (!Function.prototype.bind) {
Function.prototype.bind = function (oThis) {
if (typeof this !== 'function') {
// closest thing possible to the ECMAScript 5 internal IsCallable function
throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');
}
var aArgs = Array.prototype.slice.call(arguments, 1),
fToBind = this,
FNOP = function () {},
fBound = function () {
return fToBind.apply(this instanceof FNOP && oThis ? this : oThis,
aArgs.concat(Array.prototype.slice.call(arguments)));
};
FNOP.prototype = this.prototype;
fBound.prototype = new FNOP();
return fBound;
};
}
this.route = new Route(); this.route = new Route();
this.legInput = new LegInput({collection: this.route}); this.legInput = new LegInput({collection: this.route});

View File

@@ -10,11 +10,11 @@ define([
initialize: function (model, opts) { initialize: function (model, opts) {
this.route = opts.route; this.route = opts.route;
this.total = new Total();
this.route.on('add', this.newLeg, this); this.route.on('add', this.newLeg, this);
this.route.on('remove', this.calculate, this); this.route.on('remove', this.calculate, this);
this.route.on('sort', this.calculate, this); this.route.on('sort', this.calculate, this);
this.total = new Total();
}, },
newLeg: function (model, collection, options) { newLeg: function (model, collection, options) {
if (this.route.length < 2) { if (this.route.length < 2) {

View File

@@ -27,20 +27,20 @@ define([
var num = i; var num = i;
deferred.done(function () { deferred.done(function () {
maps[num] = new gmaps.Map(el, { maps[num] = new gmaps.Map(el, {
center: glatlng([0, 0]), center: glatlng([0, 0]),
mapTypeId: gmaps.MapTypeId.ROADMAP, mapTypeId: gmaps.MapTypeId.ROADMAP,
zoom: 0, zoom: 0,
streetViewControl: false, streetViewControl: false,
mapTypeControl: false, mapTypeControl: false,
draggable: false, draggable: false,
scrollwheel: false, scrollwheel: false,
zoomControl: false zoomControl: false
}); });
}); });
return { return {
id: i++ id: i++
} };
}; };
var Line = function (attr) { var Line = function (attr) {

View File

@@ -1,4 +1,5 @@
@import 'bootstrap/less/bootstrap'; @import 'bootstrap/less/bootstrap';
@import 'bootstrap/less/responsive';
@import 'font-awesome/build/assets/font-awesome/less/font-awesome'; @import 'font-awesome/build/assets/font-awesome/less/font-awesome';
@import (less) 'select2/select2.css'; @import (less) 'select2/select2.css';
@@ -139,3 +140,17 @@ input[type=number] {
.map { .map {
height: 300px; height: 300px;
} }
footer {
text-align: center;
margin-top: 10px;
padding: 10px 0;
background: #f5f5f5;
border-top: 1px solid #e5e5e5;
a:hover {
text-decoration: none;
}
i {
font-size: 87px;
}
}

View File

@@ -5,7 +5,7 @@
<p> <p>
Lähtö- ja kohdekentälle valitaan lentoalue niiden <abbr title="International Civil Aviation Organization">ICAO</abbr>-tunnusten perusteella. Lähtö- ja kohdekentälle valitaan lentoalue niiden <abbr title="International Civil Aviation Organization">ICAO</abbr>-tunnusten perusteella.
Mikäli toinen kenttä on esimerkiksi Suomessa ja toinen Pohjois-Euroopassa, valitaan muuttujat jälkimmäisen mukaan. Mikäli toinen kenttä on esimerkiksi Suomessa ja toinen Pohjois-Euroopassa, muuttujat valitaan taulukossa jälkimmäisenä olevan alueen mukaan.
</p> </p>
<ul> <ul>
@@ -56,3 +56,7 @@
{{/each}} {{/each}}
</table> </table>
<p>
Lähdekoodi löytyy <a href="https://github.com/Ekokumppanit/Lentolaskuri">GitHubista</a>.
</p>