Initial commit.

This commit is contained in:
Andreas Baldeau 2014-05-12 20:08:19 +02:00
commit 0335f5aa93
1168 changed files with 261999 additions and 0 deletions

View file

@ -0,0 +1,2 @@
<i class="help-icon" ng-click="toggleHelp()"></i>
<p ng-if="showHelp" class="help-block">{{text}}</p>

View file

@ -0,0 +1,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="javascript:;" ng-click="goHome()">Freifunk Hamburg - Knotenverwaltung</a>
</div>
</div>
</nav>

View file

@ -0,0 +1,96 @@
<form method="post" role="form" ng-submit="onSubmit(node)" ng-disabled="hasAnyError()" novalidate>
<div class="main-error" ng-if="error">{{error}}</div>
<fieldset>
<div class="node-data">
<h3>Knotendaten</h3>
<div class="hostname">
<label for="hostname">Knotenname</label>
<f-help text="Das ist der Name, der auch auf der Karte auftaucht."></f-help>
<input type="text" id="hostname" placeholder="z. B. Lisas-Freifunk" ng-model="node.hostname" />
<span class="feedback" ng-if="hasError('hostname')">
Knotennamen dürfen maximal 32 Zeichen lang sein und nur Klein- und Großbuchstaben, sowie Ziffern, - und _ enthalten.
</span>
</div>
<div class="key">
<label for="key">VPN-Schlüssel (bitte nur weglassen, wenn Du weisst, was Du tust)</label>
<f-help text="Dieser Schlüssel wird verwendet, um die Verbindung Deines Routers zu den Gateway-Servern abzusichern."></f-help>
<input type="text" id="key" placeholder="Dein 64-stelliger VPN-Schlüssel" ng-model="node.key" />
<span class="feedback" ng-if="hasError('key')">
Der angegebene VPN-Schlüssel ist ungültig.
</span>
</div>
<div class="mac">
<label for="mac">MAC-Adresse</label>
<f-help text="
Die MAC-Adresse (kurz &quot;MAC&quot;) steht üblicherweise auf dem Aufkleber auf der Unterseite deines Routers.
Sie wird verwendet, um die Daten Deines Routers auf der Karte korrekt zuzuordnen.
"></f-help>
<input type="text" id="mac" placeholder="z. B. 12:34:56:78:9a:bc oder 123456789abc" ng-model="node.mac" />
<span class="feedback" ng-if="hasError('mac')">
Die angegebene MAC-Adresse ist ungültig.
</span>
</div>
</div>
<div class="node-position">
<h3>Koordinaten</h3>
<div class="row">
<div class="coords col-md-4">
<!--<label for="coords">Koordinaten des Knotens (freiwillig)</label>-->
<p class="help-block">
Wenn Du möchtest, dass Dein Knoten an der richtigen Stelle auf der
<a href="http://graph.hamburg.freifunk.net/geomap.html" target="_blank">Knotenkarte</a> angezeigt wird,
kannst Du seine Koordinaten hier eintragen. Klicke einfach in der auf dieser Seite angezeigten Karte
an die Stelle, wo Dein Knoten erscheinen soll. Durch erneutes Klicken kannst Du die Position jederzeit
anpassen.
</p>
<input type="text" id="coords" class="{{node.coords ? 'has-coords' : ''}}" placeholder="z. B. 53.59784 10.01821" ng-model="node.coords" ng-blur="updateMap" />
<i class="reset-coords" ng-if="node.coords" ng-click="resetCoords()"></i>
<span class="feedback" ng-if="hasError('coords')">
Bitte gib die Koordinaten wie folgt an, Beispiel: 53.59784 10.01821
</span>
</div>
<div class="col-md-8">
<leaflet class="map" center="center" layers="layers" markers="markers"></leaflet>
</div>
</div>
</div>
<div class="contact-data">
<h3>Kontaktdaten</h3>
<p class="help-block">
Deinen Namen und Deine E-Mail-Adresse verwenden wir ausschließlich, um bei Problemen mit Deinem Router oder
bei wichtigen Änderungen Kontakt zu Dir aufzunehmen. Bitte trage eine gültige E-Mail-Adresse ein, damit wir
Dich im Zweifel erreichen können. Deine persönlichen Daten sind selbstverständlich nicht öffentlich
einsehbar und werden von uns nicht weitergegeben oder anderweitig verwendet. Versprochen!
</p>
<div class="row">
<div class="col-md-6">
<div class="nickname">
<label for="nickname">Nickname / Name</label>
<input type="text" id="nickname" placeholder="z. B. Lisa" ng-model="node.nickname" />
<span class="feedback" ng-if="hasError('nickname')">
Nicknames dürfen maximal 64 Zeichen lang sein und nur Klein- und Großbuchstaben, sowie Ziffern, - und _ enthalten. Umlaute sind erlaubt.
</span>
</div>
</div>
<div class="col-md-6">
<div class="email">
<label for="email">E-Mail-Adresse</label>
<input type="email" id="email" placeholder="z. B. lisa@hamburg.freifunk.net" ng-model="node.email" />
<span class="feedback" ng-if="hasError('email')">
Die angegebene E-Mail-Adresse ist ungültig.
</span>
</div>
</div>
</div>
</div>
<div class="buttons">
<button class="save {{action}}" type="submit" ng-disabled="hasAnyError()" popover="I appeared on mouse enter!" popover-trigger="mouseenter" ng-switch="action">
<span ng-switch-when="create"><i class="fa fa-dot-circle-o"></i> Knoten anmelden</span>
<span ng-switch-when="update"><i class="fa fa-pencil"></i> Daten ändern</span>
</button>
<button class="cancel" type="reset" ng-click="cancel()">
<i class="fa fa-times"></i> Abbrechen
</button>
</div>
</fieldset>
</form>

View file

@ -0,0 +1,13 @@
<p>
Um die Daten deines Knotens später selber ändern zu können, <strong>notiere Dir bitte folgendes Token</strong>:
</p>
<div class="summary">
<span class="token">
<i class="fa fa-pencil"></i>
{{token}}
</span>
</div>
<div class="actions">
<button class="back-button" ng-click="goHome()"><i class="fa fa-reply"></i> Zurück zum Anfang</button>
</div>

View file

@ -0,0 +1,20 @@
<form method="post" role="form" ng-submit="doSubmit(token)" ng-disabled="hasError()" novalidate>
<div class="main-error" ng-if="error">{{error}}</div>
<fieldset>
<div class="token">
<label for="token">Token</label>
<input type="text" id="token" placeholder="Dein 16-stelliger Token" ng-model="token" />
<span class="feedback" ng-if="hasError()">
Das Token ist ein 16-stelliger Wert bestehend aus 0-9 und a-f.
</span>
</div>
<div class="buttons">
<button class="submit" type="submit" ng-disabled="!token || hasError()">
<i class="fa fa-pencil"></i> Knotendaten ändern
</button>
<button class="cancel" type="reset" ng-click="onCancel()">
<i class="fa fa-times"></i> Abbrechen
</button>
</div>
</fieldset>
</form>

16
app/views/main.html Normal file
View file

@ -0,0 +1,16 @@
<div class="welcome">
<h1>Willkommen!</h1>
<p>
Du hast einen neuen Freifunk Hamburg Router (Knoten), den Du in Betrieb nehmen möchtest? Du hast schon einen Knoten in
Betrieb und möchtest seine Daten ändern? Dann bist Du hier richtig!
</p>
<div class="select-action">
<div class="new-node">
<button ng-click="newNode()"><i class="fa fa-dot-circle-o"></i> Melde einen neuen Knoten an</button>
</div>
<div class="or">oder</div>
<div class="update-node">
<button ng-click="updateNode()"><i class="fa fa-pencil"></i> Ändere die Daten Deines Knotens</button>
</div>
</div>
</div>

View file

@ -0,0 +1,25 @@
<div class="new-node-form" ng-if="!saved">
<h2>Neuen Knoten anmelden</h2>
<p>
Damit Dein neuer Freifunk-Router erfolgreich ins Netz eingebunden werden kann, benötigen wir noch ein paar
angaben von Dir. Sobald Du fertig bist, kannst Du durch einen Klick auf "Knoten anmelden" die Anmeldung
abschließen.
</p>
<p>
Und keine Sorge: Datenschutz ist uns genauso wichtig, wie Dir.
</p>
<f-node-form class="new-node" f-save="save" f-cancel="cancel" f-node="node" f-action="create"></f-node-form>
</div>
<div class="node-created" ng-if="saved">
<h1>Geschafft!</h1>
<p>
Dein Freifunk-Knoten ist erfolgreich angemeldet worden. Es kann jetzt noch bis zu 20 Minuten dauern, bis
Dein Knoten funktioniert und im <a href="http://graph.hamburg.freifunk.net/graph.html" target="_blank">Knotengraph</a>
und in der <a href="http://graph.hamburg.freifunk.net/geomap.html" target="_blank">Knotenkarte</a> auftaucht.
</p>
<f-node-saved f-node="node" f-token="token"></f-node-saved>
</div>

View file

@ -0,0 +1,38 @@
<div class="update-node-form" ng-if="!saved">
<h2>Knotendaten ändern</h2>
<div ng-if="!hasData()">
<p>
Um die Daten Deines Knoten ändern zu können, benötigen wir den passenden Token (eine 16-stellige Folge aus
Ziffern und Buchstaben). Diesen hast Du beim ersten Anmelden Deines Knotens erhalten. Sinn des Tokens ist,
Dich davor zu schützen, dass Dritte unbefugt Deine Daten einsehen oder ändern können.
</p>
<p>
<strong>
Solltest Du den Token nicht mehr haben, wende Dich einfach per E-Mail an
<a href="mailto:kontakt@hamburg.freifunk.net">kontakt@hamburg.freifunk.net</a>.
</strong>
</p>
<f-token-form f-submit="onSubmitToken" f-cancel="cancel"></f-token-form>
</div>
<div ng-if="hasData()">
<p>
Du kannst die Daten Deines Knotens jetzt anpassen. Sobald Du fertig bist, klicke einfach auf "Daten ändern",
um Deine Änderungen zu speichern.
</p>
<f-node-form class="update-node" f-save="save" f-cancel="cancel" f-node="node" f-action="update"></f-node-form>
</div>
</div>
<div class="node-updated" ng-if="saved">
<h1>Geschafft!</h1>
<p>
Die Daten Deines Freifunk-Knotens sind erfolgreich geändert worden. Es kann jetzt noch bis zu 20 Minuten dauern,
bis die Änderungen überall wirksam werden und sich im <a href="http://graph.hamburg.freifunk.net/graph.html" target="_blank">Knotengraph</a>
und in der <a href="http://graph.hamburg.freifunk.net/geomap.html" target="_blank">Knotenkarte</a> auswirken.
</p>
<f-node-saved f-node="node" f-token="token"></f-node-saved>
</div>