Compare commits

..

1 Commits

Author SHA1 Message Date
abcf82491e fixed typo, reformatted text
All checks were successful
continuous-integration/drone/push Build is passing
2020-12-18 16:56:53 +01:00
302 changed files with 5793 additions and 500 deletions

12
.drone.yml Normal file
View File

@ -0,0 +1,12 @@
kind: pipeline
name: Build Docker Image
steps:
- name: docker
image: plugins/docker
settings:
repo: fftdf/ffrs-fw-dl
username:
from_secret: docker_username
password:
from_secret: docker_password

21
.gitignore vendored
View File

@ -1,9 +1,12 @@
# image folder # Created by .ignore support plugin (hsz.mobi)
images .idea/
*.iws
# go checksums /out/
go.sum .idea_modules/
atlassian-ide-plugin.xml
# executable com_crashlytics_export_strings.xml
ffrs-fw-dl crashlytics.properties
ffrs-fw-dl.exe crashlytics-build.properties
fabric.properties
fwuploads
geojson/gemeinden_rsk.geojson

2
Dockerfile Normal file
View File

@ -0,0 +1,2 @@
FROM php:7.4.1-apache
COPY ./webroot/ /var/www/html/

101
README.md Normal file
View File

@ -0,0 +1,101 @@
# Freifunk Firmware Downloader inkl. Docker Image
## Beschreibung
Der Freifunk Firmware Downloader soll es Laien ermöglichen schneller und sicherer die zu ihrem Router passende Firmware zu finden. Der Freifunker kann nacheinander aus automatisch generierten Listen seinen Router auswählen: Hersteller -> Modell -> Version und dann festlegen ob es eine Erstinstallation ist oder nicht, sowie am Ende wählen welches Entwicklungsstadium die Firmware haben soll. Dabei wird automatisch gewarnt (Download Button verändert die Farbe) falls nicht "stable" ausgewählt wird. Zusätzlich werden etliche der Router auch als Grafik (Front & Back Ansicht) gezeigt, so dass der Freifunker auf den ersten Blick erkennen kann wenn er den falschen Router ausgewählt hat. Einmal anschauen kann man sich den Firmware Downloader unter http://downloader.freifunk-siegburg.de/.
Der Freifunk Firmware Downloader kann auch mit Metacommunities umgehen, bei der, vor der Auswahl der eigentlichen Firmware, noch eine Auswahl der Community/Subcommunity oder Technologie auszuwählen ist. Als Beispiel kann hier die Metacommunity Troisdorf dienen, unter http://downloader.freifunk-troisdorf.de/ könnt ihr euch das anschauen.
## Technik
Der Freifunk Firmware Downloader erzeugt auf Grund der angegebenen Metadaten in der community-config.inc.php eine Auswahlseite für die Metacommunity (oder bei nur einer vorhandenen Community Konfiguration überspringt er diese Vorauswahl). Nach der Auswahl der Community (plus optionaler Subauswahl) erscheint der Link der zum eigentlichen Firmware Downloader führt. Der Freifunk Firmware Downloader scannt dann das in der community-config.inc.php angegebene Verzeichnis auf Firmwares in den Unterverzeichnissen (beta/broken/experimental/stable) und dort in (factory/sysupgrade). Aus dem Ergebnis baut das PHP Script ein interaktives Javascript für die Auswahl und verwendet dabei Bootstrap für das Layout.
Bisher werden Router der folgenden Hersteller automatisch erkannt:
- 8devices
- Alfa
- Allnet
- AVM
- Buffalo
- D-Link
- GL-Inet
- LeMaker
- Linksys
- Meraki
- Netgear
- Nexx
- Onion
- Openmesh
- Raspberry Pi
- TP-Link
- Ubiquiti
- Western Digital
- x86
Soll eine Firmware für Router von anderen Herstellern angeboten werden muss erst das Script geändert werden! Bitte informiere uns dann über GitHub oder kontakt@freifunk-troisdorf.de.
## Bilder
Die Bilder der Router kommen von Daniel Krah und sind lizenziert unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz (CC-BY NC SA).
## Installation
Den Freifunk Firmware Downloader in ein eigenes Unterverzeichnis des Webservers kopieren/entpacken, auf dem auch die Firmwares liegen. In der community-config.inc.php werden dann diverse Variablen gesetzt:
- $texte ist das Array mit den einzelnen Überschriften/Texten für die Auswahlstufen
- $community ist das Array mit den Metadaten für die Metacommunity und die einzelnen Subcommunites. Wenn hier nur eine Community angegeben wird wird die Communtiyauswahl übersprungen und direkt auf die Firmware Downloader Seite verwiesen.
```
0 => array( // ID die bei 0 Anfängt und hochgezählt wird
"community_id" => 0, // ID der Community, wiederholt sich bei den zusammengehörigen Subcommunities
"name" => "Name der Community",
"head_titel" => "Header Titel",
"head_text" => "Header Text",
"link_text" => "Header Link Text",
"link_url" => "Header Link URL",
"logo_alt" => "Logo Alt Text",
"logo_url" => "Logo URL",
"lang_titel" => "Langtext Titel",
"lang_text" => "Langtext Text",
"download_path" => "Pfad zur Firmware", // Bleibt bei der Metacommunity leer
"sub_auswahl" => "Name der Subcommunity" // Wird nur verwendet wenn die Community Subcommunites/Technologien als Auswahl hat,
"geojson" => "geojson/filename.geojson"
),
```
In der config.inc.php sind die Angaben über die Hersteller, Entwicklungsstufen & Art der Firmware Installation. Hier muss man normalerweise nichts anpassen, außer man verwendet Firmwares für Router von Herstellern, die noch nicht integriert sind, dann bitten wir allerdings auch um Kontaktaufnahme (kontakt@freifunk-troisdorf.de, bzw. im github).
- $entwicklung = Entwicklungsstufen der Firmware (beta/broken/experimental/stable) - (sollte man in Ruhe lassen normalerweise)
- $installation = Art der Installation (factory/sysupgrade) - (sollte man in Ruhe lassen normalerweise)
- $hersteller = Array mit Informationen zu den Herstellern
- -> name = Name des Herstellers
- -> filename = Name des Herstellers wie er in den Dateinamen der Firmware auftaucht
- -> offset_modell = Offset für das Parsen des Modells im Dateinamen der Firmware
- -> offset_version = Offset für das Parsen der Version im Dateinamen der Firmware
- $offset_sysupgrade = Offset für "-sysupgrade" im Dateinamen der Firmware
Die Firmware liegt in folgenden Unterverzeichnissen:
* firmware/
* beta/
* factory/
* sysupgrade/
* broken/
* factory/
* sysupgrade/
* experimental/
* factory/
* sysupgrade/
* stable/
* factory/
* sysupgrade/
Das Layout der Seite baut auf Bootstrap (http://getbootstrap.com/) auf und kann mittels eigener angepaster StyleSheets sehr einfach verändert werden. Dank Bootstrap ist das Layout von sich aus direkt responsive.
## Code
Der Code ist nun halbwegs aufgeräumt und generiert aus dem PHP heraus ein Objekt ($router der Klasse: ffrouter) und übergibt ein daraus erzeugtes JSON an den Javascript Code zum erzeugen der Menustruktur.
## Lizenz
* author Leo Maroni Ursprung: Caspar Armster
* copyright 2017 by Leo Maroni, Caspar Armster, [Freifunk Hennef](http://www.freifunk-hennef.de/ "Freifunk Hennef") / [Freie Netzwerker e.V.](http://www.freie-netzwerker.de/ "Freie Netzwerker e.V.")
* license Licensed under GPLv3

View File

@ -1,81 +0,0 @@
cities:
- name: troisdorf
images:
- name: multi
prettyname: multi
- name: siegburg
images:
- name: flu
prettyname: soziale einrichtungen
manufacturers:
- name: 8devices
prettyname: 8devices
- name: a5
prettyname: a5
- name: aerohive
prettyname: Aerohive
- name: alfa-network
prettyname: Alfa
- name: allnet
prettyname: ALLNET
- name: aruba
prettyname: Aruba
- name: asus
prettyname: ASUS
- name: avm
prettyname: AVM
- name: buffalo
prettyname: Buffalo
- name: d-link
prettyname: D-Link
- name: devolo
prettyname: Devolo
- name: enterasys
prettyname: Enterasys Networks
- name: gl-inet
prettyname: GL Technologies
- name: gl.inet
prettyname: GL Technologies
- name: gl
prettyname: GL Technologies
- name: lemaker
prettyname: LeMaker
- name: linksys
prettyname: Linksys
- name: meraki
prettyname: Meraki
- name: netgear
prettyname: Netgear
- name: nexx
prettyname: Nexx
- name: ocedo
prettyname: Ocedo
- name: onion
prettyname: Onion Corporation
- name: openmesh
prettyname: Openmesh
- name: raspberrypi
prettyname: Raspberry Pi
- name: raspberry
prettyname: Raspberry Pi
- name: tp-link
prettyname: TP-Link
- name: ubiquiti
prettyname: Ubiquiti
- name: ubnt
prettyname: Ubiquiti
- name: vocore
prettyname: VoCore
- name: vocore2
prettyname: VoCore
- name: wd
prettyname: Western Digital
- name: x86
prettyname: x86
- name: xiaomi
prettyname: Xiaomi
- name: zbt
prettyname: ZBT
- name: zyxel
prettyname: Zyxel

9
go.mod
View File

@ -1,9 +0,0 @@
module git.freifunk-rhein-sieg.net/Freifunk-Rhein-Sieg/ffrs-fw-dl
go 1.14
require (
git.nils.zone/nils/prettify v0.0.1
github.com/sergi/go-diff v1.1.0
gopkg.in/yaml.v2 v2.2.8
)

367
main.go
View File

@ -1,367 +0,0 @@
package main
import (
"io/ioutil"
"log"
"net/http"
"os"
"path/filepath"
"regexp"
"strings"
"text/template"
"git.nils.zone/nils/prettify"
"github.com/sergi/go-diff/diffmatchpatch"
"gopkg.in/yaml.v2"
)
// constants
const (
//root = "/srv/fwuploads/"
root = "./images/"
)
// structs
type branch struct {
Name string
}
type method struct {
Name string
branch []branch
}
type version struct {
Name string
method []method
}
type model struct {
Name string
Version []version
}
type vendor struct {
Name string
Models []model
}
type firmware struct {
Community string
domain string
Hersteller string
Modell string
Version string
Erstinstallation string
Entwicklungsstadium string
}
type image struct {
Name string `json:"name"`
Prettyname string `json:"prettyname"`
}
type city struct {
Name string `json:"name"`
Images []image `json:"images"`
}
type manufacturer struct {
Name string `json:"name"`
Prettyname string `json:"prettyname"`
}
type assignments struct {
Cities []city `json:"cities"`
Manufacturers []manufacturer `json:"manufacturers"`
}
type data struct {
Name string
Title string
Body string
Skills skills
}
type skills []struct {
Name string
}
// global variables
var branches = []string{"stable", "beta", "experimental"}
var installMethod = []string{"sysupgrade", "factory"}
var community string
var domains []string
var assign assignments
var currentBranch string // holds info of the current branch
var currentMethod string // holds info of the current install method
var firmwares []firmware
func stringInSlice(a string, list []string) bool {
for _, b := range list {
if b == a {
return true
}
}
return false
}
func getFirmwareImages(folder string) {
// get all files in folder
files := getFilesOrFolders(folder)
// check if files exist
//fmt.Println(files)
if files != nil {
prefix := getImagePrefix(folder)
//fmt.Println(folder)
// loop through all files
for _, file := range files {
// check if file really is a file
if !file.IsDir() {
// check if file starts with gluon
if strings.HasPrefix(file.Name(), "gluon") {
// get Firmware Data for file
getFirmwareData(file.Name(), prefix)
}
}
}
}
}
func getFirmwareData(image string, prefix string) {
// create firmware variable
var fw firmware
//fmt.Println(">" + prefix + "<")
//fmt.Println(image)
//fmt.Println(currentBranch, currentMethod)
// set the branch of firmware
fw.Entwicklungsstadium = currentBranch
// set install method of firmware
fw.Erstinstallation = currentMethod
// cut away the prefix of this folder
fw.Modell = strings.Split(image, prefix)[1]
// cut away the extension
fw.Modell = strings.TrimSuffix(fw.Modell, filepath.Ext(fw.Modell)) // this has issues with img.gz use below until we have an image with a "." in it
// quickfix for .img.gz
if filepath.Ext(fw.Modell) == ".img" {
// remove .img as well
fw.Modell = strings.TrimSuffix(fw.Modell, filepath.Ext(fw.Modell))
}
// remove sysupgrade suffix
if strings.HasSuffix(fw.Modell, "-sysupgrade") {
fw.Modell = strings.TrimSuffix(fw.Modell, "-sysupgrade")
}
//fmt.Println(fw.Modell)
//fw.Modell = strings.Split(fw.Modell, ".")[0]
for _, manufacturer := range assign.Manufacturers {
// check if image is from manufacturer
if strings.HasPrefix(fw.Modell, manufacturer.Name) {
// image is from manufacturer
fw.Hersteller = manufacturer.Name
break
}
}
// debug output message
var out bool
// check if manufacturer was not found
if fw.Hersteller == "" {
// guess the manufacturer (word(s) before first "-")
fw.Hersteller = strings.Split(fw.Modell, "-")[0]
log.Printf("I had to guess the manufacturer, sorry! I think it is >%v<\nIf you think this is wrong please change assignments.yml on our git repository\n\n", fw.Hersteller)
// set debug output message to true
out = true
}
if strings.Contains(fw.Modell, "-") {
// assemble new image name (cut away manufacturer)
fw.Modell = strings.Split(fw.Modell, fw.Hersteller+"-")[1]
} else {
fw.Modell = strings.Split(fw.Modell, fw.Hersteller)[1]
}
// compile regex for hw revisions
r, err := regexp.Compile("(v[0-9]{1,2}$)|([-]*rev-\\w*$)|(-[a-zA-Z][0-9]{0,1}$)")
if err != nil {
panic(err)
}
// find hardware revision in image name
fw.Version = r.FindString(fw.Modell)
if fw.Version != "" {
// cut hardware version from image name
fw.Modell = strings.Split(fw.Modell, fw.Version)[0]
} else {
fw.Version = "Alle"
}
// check if hardware version starts with a dash
if strings.HasPrefix(fw.Version, "-") {
// cut away "-"
fw.Version = fw.Version[1:]
}
//out, err := yaml.Marshal(fw)
//if err != nil {
// panic(err)
//}
//fmt.Println(len(out))
//fmt.Println(string(out))
//fmt.Println(image)
/*
os.Exit(0)
// compile regex for branches
r, err := regexp.Compile("(stable\\b|beta\\b|experimental\\b)")
if err != nil {
panic(err)
}
branch := r.Find([]byte(image))
fmt.Println(string(branch))
os.Exit(0)
*/
// check if out was set and if so print out all info we have on the device
if out {
log.Println(image)
prettify.Print(fw)
}
firmwares = append(firmwares, fw)
}
func getSubdirectory(folder string) {
subFolders := getFilesOrFolders(folder)
// go through all subFolder
for _, f := range subFolders {
// check if entry is a directory
if f.IsDir() {
// check if we are at root
if folder == root {
community = f.Name()
//fmt.Println(community)
}
//fmt.Println(f.Name())
// check if we are a branch
if stringInSlice(f.Name(), branches) {
//fmt.Println(f.Name())
currentBranch = f.Name()
domain := filepath.Base(folder)
domains = append(domains, domain)
//fmt.Println("\t" + f.Name())
} else if stringInSlice(f.Name(), installMethod) {
// check if we are stable/beta/experimental
currentMethod = f.Name()
}
// recursive call
getSubdirectory(folder + "/" + f.Name())
}
}
// at the end of the tunnel
if stringInSlice(filepath.Base(folder), installMethod) {
//fmt.Println("\t\t" + filepath.Base(folder))
firmwareFolder, err := filepath.Abs(folder)
if err != nil {
panic(err)
}
//fmt.Println(firmwareFolder)
getFirmwareImages(firmwareFolder)
}
}
func getFilesOrFolders(folder string) []os.FileInfo {
// get all files in folder
files, err := ioutil.ReadDir(folder)
if err != nil {
log.Fatal(err)
}
if len(files) == 0 {
//fmt.Println(len(files))
return nil
}
return files
}
func getImagePrefix(folder string) string {
files := getFilesOrFolders(folder)
//fmt.Printf("there are %v files in folder %v\n", len(files), folder)
var prefix string
for _, file := range files {
// check if file starts with gluon
if strings.HasPrefix(file.Name(), "gluon") {
// set prefix as file name first
if prefix == "" {
prefix = file.Name()
}
// diff the prefix until it is correct
prefix = diffStrings(file.Name(), prefix)
}
}
return prefix
}
func diffStrings(text1 string, text2 string) string {
dmp := diffmatchpatch.New()
length := dmp.DiffCommonPrefix(text1, text2)
return text1[0:length]
}
func getAssignments() assignments {
// declare returning variable
var a assignments
// load assignments from file
file, err := ioutil.ReadFile("assignments.yml")
if err != nil {
panic(err)
}
// unmarshal file onto assignment
err = yaml.Unmarshal(file, &a)
if err != nil {
panic(err)
}
return a
}
func handler(w http.ResponseWriter, r *http.Request) {
t, _ := template.ParseFiles("tmpl/index.html")
//t.Execute(w, assign)
t.Execute(w, firmwares)
}
func startServer() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
func main() {
// get all assignments from file
assign = getAssignments()
// start script in images folder
getSubdirectory(root)
//fmt.Println(branches)
//prettify.Print(assign)
startServer()
}

View File

@ -1,34 +0,0 @@
<html>
<body>
<h1>Test</h1>
<h2>Firmwares</h2>
{{ range . }}
{{ .Hersteller }}
{{ end }}
<h1>Test</h1>
<h2>Cities range</h2>
{{ range .Cities }}
<h3>{{ .Name }}</h3>
{{ range .Images }}
&emsp;<b>Name:</b> {{ .Name }}<br>
&emsp;<b>Prettyname:</b> {{ .Prettyname }}<br>
{{ end }}
</p>
{{ end }}
<form>
<fieldset>
<legend>Select Manufacturer</legend>
<p>
<label>Select list</label>
<select id = "manufacturers">
{{ range .Manufacturers }}
<option value = "{{ .Name }}">{{ .Name }}</option>
{{ end }}
</select>
</p>
</fieldset>
</form>
</body>
</html>

View File

@ -0,0 +1,275 @@
<?php
/**
* @author Leo Maroni, Caspar Armster
* @copyright 2017 Leo Maroni, Caspar Armster, Freifunk Hennef/Freie Netzwerker e.V. (www.freifunk-hennef.de / www.freie-netzwerker.de)
* @license Licensed under GPLv3
*/
/** Texte für die 2 Stufige Auswahl einer Meta-Community.
*/
$texte = array(
"ebene1_titel" => "Freifunk Community",
"ebene1_text" => "Freifunk Community auswählen",
"ebene2_titel" => "Bereich der Community",
"ebene2_text" => "Bereich der Community auswählen",
"ebene3_titel" => "Firmware Downloader",
"ebene3_text" => "Zur Firmware-Download Seite"
);
$community = array(
0 => array(
"community_id" => 0,
"shortlinkname" => 'alfter',
"name" => "Alfter",
"linktoseite" => "https://kbu.freifunk.net/",
"geojson" => "geojson/alfter.geojson",
"show" => true
),
1 => array(
"community_id" => 1,
"shortlinkname" => 'altenkirchen',
"name" => "Altenkirchen",
"head_titel" => "Freifunk Altenkirchen Firmware",
"link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-siegburg.de/",
"lang_titel" => "Freifunk Altenkirchen Firmware Auswahl",
"lang_text" => "Bitte suchen Sie den passenden Router aus, indem Sie den Hersteller, das Modell und die Version auswählen.<br />Legen Sie anschließend fest, ob sie den Router zum ersten Mal auf dem Router eine Freifunk Firmware installieren und welches Entwicklungsstadium die Firmware haben soll.",
"download_path" => "../fwuploads/altenkirchen/",
"modules_path" => "http://images.freifunk-rhein-sieg.net/altenkirchen/packages",
"geojson" => "geojson/altenkirchen.geojson",
"show" => true
),
2 => array(
"community_id" => 2,
"shortlinkname" => 'badhonnef',
"name" => "Bad Honnef",
"linktoseite" => "https://kbu.freifunk.net/",
"geojson" => "geojson/badhonnef.geojson",
"show" => true
),
3 => array(
"community_id" => 3,
"shortlinkname" => 'bonn',
"name" => "Bonn",
"linktoseite" => "https://kbu.freifunk.net/",
"geojson" => "geojson/bonn.geojson",
"show" => true
),
4 => array(
"community_id" => 4,
"name" => "Bornheim",
"shortlinkname" => 'bornheim',
"linktoseite" => "https://kbu.freifunk.net/",
"geojson" => "geojson/bornheim.geojson",
"show" => true
),
5 => array(
"community_id" => 5,
"name" => "Hennef",
"shortlinkname" => 'hennef',
"linktoseite" => "https://firmware.freifunk-hennef.de/firmware.php?id=0",
"geojson" => "geojson/hennef.geojson",
"show" => true
),
6 => array(
"community_id" => 6,
"name" => "Königswinter",
"shortlinkname" => 'koenigswinter',
"linktoseite" => 'https://freifunk-koenigswinter.de',
"geojson" => "geojson/koenigswinter.geojson",
"show" => true
),
7 => array(
"community_id" => 7,
"name" => "Lohmar",
"shortlinkname" => 'lohmar',
"head_titel" => "Freifunk Lohmar Firmware",
"link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-siegburg.de/",
"lang_titel" => "Freifunk Lohmar Firmware Auswahl",
"lang_text" => "Bitte suchen Sie den passenden Router aus, indem Sie den Hersteller, das Modell und die Version auswählen.<br />Legen Sie anschließend fest, ob sie den Router zum ersten Mal auf dem Router eine Freifunk Firmware installieren und welches Entwicklungsstadium die Firmware haben soll.",
"download_path" => "../fwuploads/lohmar/",
"modules_path" => "http://images.freifunk-rhein-sieg.net/lohmar/packages",
"geojson" => "geojson/lohmar.geojson",
"sub_auswahl" => array(7,16),
"show" => true
),
8 => array(
"community_id" => 8,
"shortlinkname" => 'meckenheim',
"name" => "Meckenheim",
"head_titel" => "Freifunk Meckenheim Firmware",
"link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-siegburg.de/",
"lang_titel" => "Freifunk Meckenheim Firmware Auswahl",
"lang_text" => "Bitte suchen Sie den passenden Router aus, indem Sie den Hersteller, das Modell und die Version auswählen.<br />Legen Sie anschließend fest, ob sie den Router zum ersten Mal auf dem Router eine Freifunk Firmware installieren und welches Entwicklungsstadium die Firmware haben soll.",
"download_path" => "../fwuploads/meckenheim/",
"modules_path" => "http://images.freifunk-rhein-sieg.net/meckenheim/packages",
"geojson" => "geojson/meckenheim.geojson",
"show" => true
),
9 => array(
"community_id" => 9,
"name" => "Much",
"shortlinkname" => 'much',
"head_titel" => "Freifunk Much Firmware",
"link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-siegburg.de/",
"lang_titel" => "Freifunk Much Firmware Auswahl",
"lang_text" => "Bitte suchen Sie den passenden Router aus, indem Sie den Hersteller, das Modell und die Version auswählen.<br />Legen Sie anschließend fest, ob sie den Router zum ersten Mal auf dem Router eine Freifunk Firmware installieren und welches Entwicklungsstadium die Firmware haben soll.",
"download_path" => "../fwuploads/much/",
"modules_path" => "http://images.freifunk-rhein-sieg.net/much/packages",
"geojson" => "geojson/much.geojson",
"show" => true
),
10 => array(
"community_id" => 10,
"name" => "Neunkirchen",
"shortlinkname" => 'neunkirchen',
"head_titel" => "Freifunk Neunkirchen Firmware",
"link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-siegburg.de/",
"lang_titel" => "Freifunk Neunkirchen Firmware Auswahl",
"lang_text" => "Bitte suchen Sie den passenden Router aus, indem Sie den Hersteller, das Modell und die Version auswählen.<br />Legen Sie anschließend fest, ob sie den Router zum ersten Mal auf dem Router eine Freifunk Firmware installieren und welches Entwicklungsstadium die Firmware haben soll.",
"download_path" => "../fwuploads/neunkirchen/",
"modules_path" => "http://images.freifunk-rhein-sieg.net/neunkirchen/packages",
"geojson" => "geojson/neunkirchen.geojson",
"show" => true
),
11 => array(
"community_id" => 11,
"name" => "Niederkassel",
"shortlinkname" => 'niederkassel',
"head_titel" => "Freifunk Niederkassel Firmware",
"link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-siegburg.de/",
"lang_titel" => "Freifunk Niederkassel Firmware Auswahl",
"lang_text" => "Bitte suchen Sie den passenden Router aus, indem Sie den Hersteller, das Modell und die Version auswählen.<br />Legen Sie anschließend fest, ob sie den Router zum ersten Mal auf dem Router eine Freifunk Firmware installieren und welches Entwicklungsstadium die Firmware haben soll.",
"download_path" => "../fwuploads/niederkassel/",
"modules_path" => "http://images.freifunk-rhein-sieg.net/niederkassel/packages",
"geojson" => "geojson/niederkassel.geojson",
"show" => true
),
12 => array(
"community_id" => 12,
"name" => "Rheinbach",
"shortlinkname" => 'rheinbach',
"head_titel" => "Freifunk Rheinbach Firmware",
"link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-siegburg.de/",
"lang_titel" => "Freifunk Niederkassel Firmware Auswahl",
"lang_text" => "Bitte suchen Sie den passenden Router aus, indem Sie den Hersteller, das Modell und die Version auswählen.<br />Legen Sie anschließend fest, ob sie den Router zum ersten Mal auf dem Router eine Freifunk Firmware installieren und welches Entwicklungsstadium die Firmware haben soll.",
"download_path" => "../fwuploads/rheinbach/",
"modules_path" => "http://images.freifunk-rhein-sieg.net/rheinbach/packages",
"geojson" => "geojson/rheinbach.geojson",
"show" => true
),
13 => array(
"community_id" => 13,
"shortlinkname" => 'ruppichteroth',
"name" => "Ruppichteroth",
"head_titel" => "Freifunk Ruppichteroth Firmware",
"link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-siegburg.de/",
"lang_titel" => "Freifunk Ruppichteroth Firmware Auswahl",
"lang_text" => "Bitte suchen Sie den passenden Router aus, indem Sie den Hersteller, das Modell und die Version auswählen.<br />Legen Sie anschließend fest, ob sie den Router zum ersten Mal auf dem Router eine Freifunk Firmware installieren und welches Entwicklungsstadium die Firmware haben soll.",
"download_path" => "../fwuploads/ruppichteroth/",
"modules_path" => "http://images.freifunk-rhein-sieg.net/ruppichteroth/packages",
"geojson" => "geojson/ruppichteroth.geojson",
"show" => true
),
14 => array(
"community_id" => 14,
"shortlinkname" => 'staugustin',
"name" => "Sankt Augustin",
"head_titel" => "Freifunk Sankt Augustin Firmware",
"link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-siegburg.de/",
"lang_titel" => "Freifunk Sankt Augustin Firmware Auswahl",
"lang_text" => "Bitte suchen Sie den passenden Router aus, indem Sie den Hersteller, das Modell und die Version auswählen.<br />Legen Sie anschließend fest, ob sie den Router zum ersten Mal auf dem Router eine Freifunk Firmware installieren und welches Entwicklungsstadium die Firmware haben soll.",
"download_path" => "../fwuploads/sanktaugustin/",
"modules_path" => "http://images.freifunk-rhein-sieg.net/sanktaugustin/packages",
"geojson" => "geojson/staugustin.geojson",
"show" => true
),
15 => array(
"community_id" => 15,
"shortlinkname" => 'siegburg',
"name" => "Siegburg",
"head_titel" => "Freifunk Siegburg Firmware",
"link_text" => "Zurück zur Startseite",
"link_url" => "http://www.freifunk-siegburg.de/",
"lang_titel" => "Freifunk Siegburg Firmware Auswahl",
"lang_text" => "Bitte suchen Sie den passenden Router aus, indem Sie den Hersteller, das Modell und die Version auswählen.<br />Legen Sie anschließend fest, ob sie den Router zum ersten Mal auf dem Router eine Freifunk Firmware installieren und welches Entwicklungsstadium die Firmware haben soll.",
"download_path" => "../fwuploads/siegburg/",
"modules_path" => "http://images.freifunk-rhein-sieg.net/siegburg/packages",
"geojson" => "geojson/siegburg.geojson",
"sub_auswahl" => array(15,16),
"show" => true
),
16 => array(
"community_id" => 16,
"shortlinkname" => 'snw',
"name" => "Soziale Netzwerke",
"head_titel" => "Freifunk für Soziale Netzwerke Firmware",
"link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-siegburg.de/",
"lang_titel" => "Freifunk SULO SNW Firmware Auswahl",
"lang_text" => "Bitte suchen Sie den passenden Router aus, indem Sie den Hersteller, das Modell und die Version auswählen.<br />Legen Sie anschließend fest, ob sie den Router zum ersten Mal auf dem Router eine Freifunk Firmware installieren und welches Entwicklungsstadium die Firmware haben soll.",
"download_path" => "../fwuploads/sozialenetzwerke/",
"modules_path" => "http://images.freifunk-rhein-sieg.net/sozialenetzwerke/packages",
"geojson" => "",
"show" => false
),
17 => array(
"community_id" => 17,
"shortlinkname" => 'swisttal',
"name" => "Swisttal",
"linktoseite" => "https://kbu.freifunk.net/",
"geojson" => "geojson/swisttal.geojson",
"show" => true
),
18 => array(
"community_id" => 18,
"shortlinkname" => 'troisdorf',
"name" => "Troisdorf",
"head_titel" => "Freifunk Troisdorf Firmware",
"link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-siegburg.de/",
"lang_titel" => "Freifunk Troisdorf Firmware Auswahl",
"lang_text" => "Bitte suchen Sie den passenden Router aus, indem Sie den Hersteller, das Modell und die Version auswählen.<br />Legen Sie anschließend fest, ob sie den Router zum ersten Mal auf dem Router eine Freifunk Firmware installieren und welches Entwicklungsstadium die Firmware haben soll.",
"download_path" => "../fwuploads/troisdorf/multi/",
"modules_path" => "http://images.freifunk-rhein-sieg.net/troisdorf/multi/packages",
"geojson" => "geojson/troisdorf.geojson",
"show" => true,
),
19 => array(
"community_id" => 19,
"shortlinkname" => 'wachtberg',
"name" => "Wachtberg",
"head_titel" => "Freifunk Wachtberg Firmware",
"link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-siegburg.de/",
"lang_titel" => "Freifunk Wachtberg Firmware Auswahl",
"lang_text" => "Bitte suchen Sie den passenden Router aus, indem Sie den Hersteller, das Modell und die Version auswählen.<br />Legen Sie anschließend fest, ob sie den Router zum ersten Mal auf dem Router eine Freifunk Firmware installieren und welches Entwicklungsstadium die Firmware haben soll.",
"download_path" => "../fwuploads/wachtberg/",
"modules_path" => "http://images.freifunk-rhein-sieg.net/wachtberg/packages",
"geojson" => "geojson/wachtberg.geojson",
"show" => true
),
20 => array(
"community_id" => 20,
"shortlinkname" => 'windeck',
"name" => "Windeck",
"head_titel" => "Freifunk Windeck Firmware",
"link_text" => "Zurück zur Startseite",
"link_url" => "http://downloader.freifunk-siegburg.de/",
"lang_titel" => "Freifunk Windeck Firmware Auswahl",
"lang_text" => "Bitte suchen Sie den passenden Router aus, indem Sie den Hersteller, das Modell und die Version auswählen.<br />Legen Sie anschließend fest, ob sie den Router zum ersten Mal auf dem Router eine Freifunk Firmware installieren und welches Entwicklungsstadium die Firmware haben soll.",
"download_path" => "../fwuploads/altenkirchen/",
"modules_path" => "http://images.freifunk-rhein-sieg.net/altenkirchen/packages",
"geojson" => "geojson/windeck.geojson",
"show" => true
),
);

199
webroot/config.inc.php Normal file
View File

@ -0,0 +1,199 @@
<?php
/**
* @author Caspar Armster, Leo Maroni
* @copyright 2017 Leo Maroni, Caspar Armster Freifunk Hennef/Freie Netzwerker e.V. (www.freifunk-hennef.de / www.freie-netzwerker.de), Freifunk Siegburg (www.frefunk-siegburg.de)
* @license Licensed under GPLv3
*/
$entwicklung = array(
"beta",
"experimental",
"stable"
);
$installation = array(
"factory",
"sysupgrade"
);
for ($i = 0; $i < count($entwicklung); $i++) {
for ($j = 0; $j < count($installation); $j++) {
$variante[$entwicklung[$i]][$installation[$j]] = 0;
}
}
$hersteller = array(
array(
"name" => "8devices",
"filename" => "8devices",
"offset_modell" => 9,
"offset_version" => 4
),
array(
"name" => "Aerohive",
"filename" => "aerohive",
"offset_modell" => 9,
"offset_version" => 4
),
array(
"name" => "Alfa",
"filename" => "alfa",
"offset_modell" => 5,
"offset_version" => 4
),
array(
"name" => "Allnet",
"filename" => "allnet",
"offset_modell" => 7,
"offset_version" => 4
),
array(
"name" => "Asus",
"filename" => "asus",
"offset_modell" => 4,
"offset_version" => 4
),
array(
"name" => "AVM",
"filename" => "avm",
"offset_modell" => 4,
"offset_version" => 4
),
array(
"name" => "Buffalo",
"filename" => "buffalo",
"offset_modell" => 8,
"offset_version" => 4
),
array(
"name" => "China",
"filename" => "zbt",
"offset_modell" => 4,
"offset_version" => 4
),
array(
"name" => "China (alt)",
"filename" => "-a5-",
"offset_modell" => 0,
"offset_version" => 4
),
array(
"name" => "D-Link",
"filename" => "d-link",
"offset_modell" => 7,
"offset_version" => -1
),
array(
"name" => "GL-Inet",
"filename" => "gl",
"offset_modell" => 3,
"offset_version" => 4
),
array(
"name" => "GL-Inet (alt)",
"filename" => "gl-inet",
"offset_modell" => 8,
"offset_version" => -1
),
array(
"name" => "LeMaker",
"filename" => "lemaker",
"offset_modell" => 8,
"offset_version" => 4
),
array(
"name" => "Linksys",
"filename" => "linksys",
"offset_modell" => 8,
"offset_version" => 4
),
array(
"name" => "Meraki",
"filename" => "meraki",
"offset_modell" => 7,
"offset_version" => 4
),
array(
"name" => "Netgear",
"filename" => "netgear",
"offset_modell" => 8,
"offset_version" => 4
),
array(
"name" => "Nexx",
"filename" => "nexx",
"offset_modell" => 5,
"offset_version" => 4
),
array(
"name" => "Ocedo",
"filename" => "ocedo",
"offset_modell" => 6,
"offset_version" => 4
),
array(
"name" => "Onion",
"filename" => "onion",
"offset_modell" => 6,
"offset_version" => 4
),
array(
"name" => "Openmesh",
"filename" => "openmesh",
"offset_modell" => 9,
"offset_version" => 4
),
array(
"name" => "Raspberry Pi",
"filename" => "raspberry-pi",
"offset_modell" => 13,
"offset_version" => 4
),
array(
"name" => "TP-Link",
"filename" => "tp-link",
"offset_modell" => 8,
"offset_version" => -1
),
array(
"name" => "Ubiquiti",
"filename" => "ubiquiti",
"offset_modell" => 9,
"offset_version" => 4
),
array(
"name" => "UBNT",
"filename" => "ubnt",
"offset_modell" => 5,
"offset_version" => 4
),
array(
"name" => "VoCore",
"filename" => "vocore",
"offset_modell" => 0,
"offset_version" => 4
),
array(
"name" => "Western Digital",
"filename" => "-wd-",
"offset_modell" => 3,
"offset_version" => 4
),
array(
"name" => "x86",
"filename" => "x86",
"offset_modell" => 4,
"offset_version" => 4
),
array(
"name" => "Zyxel",
"filename" => "zyxel",
"offset_modell" => 6,
"offset_version" => 4
)
);
$anzahl_hersteller = count($hersteller);
$offset_sysupgrade = array(
0 => 0,
1 => 11
);

View File

@ -0,0 +1,24 @@
header {
min-height: 10vh;
}
#outer-container {
border-top: 5px solid $ff_color;
margin: 5vh auto 0 auto;
.row {
margin-left: auto;
margin-right: auto;
}
}
.dropdown-content li>a, .dropdown-content li>span {
color: $ff_color;
}
.input-field {
padding: 0 !important;
}
.thin {
font-weight: 100;
}
.page-footer {
padding-top: 0;
background-color: $ff_color;
}

View File

@ -0,0 +1 @@
$ff_color: #df316c;

5
webroot/css/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

36
webroot/css/community.css Normal file
View File

@ -0,0 +1,36 @@
header {
min-height: 10vh; }
#outer-container {
border-top: 5px solid #df316c;
margin: 5vh auto 0 auto; }
#outer-container .row {
margin-left: auto;
margin-right: auto; }
.dropdown-content li > a, .dropdown-content li > span {
color: #df316c; }
.input-field {
padding: 0 !important; }
.thin {
font-weight: 100; }
.page-footer {
padding-top: 0;
background-color: #df316c; }
#backtohome, #backtomap, #download {
background-color: #df316c; }
header {
border-bottom: 1px solid rgba(0, 0, 0, 0.2); }
.btn.navigation.next {
background-color: #df316c; }
#img_router_front, #img_router_back {
max-width: 200px; }
/*# sourceMappingURL=community.css.map */

View File

@ -0,0 +1,7 @@
{
"version": 3,
"mappings": "AAAA,MAAO;EACL,UAAU,EAAE,IAAI;;AAElB,gBAAiB;EACf,UAAU,EAAE,iBAAmB;EAC/B,MAAM,EAAE,eAAe;EACvB,qBAAK;IACH,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;;AAGtB,qDAAkD;EAChD,KAAK,ECZI,OAAO;;ADclB,YAAa;EACX,OAAO,EAAE,YAAY;;AAEvB,KAAM;EACJ,WAAW,EAAE,GAAG;;AAElB,YAAa;EACX,WAAW,EAAE,CAAC;EACd,gBAAgB,ECtBP,OAAO;;ACElB,kCAAmC;EACjC,gBAAgB,EDHP,OAAO;;ACKlB,MAAO;EACL,aAAa,EAAE,4BAAwB;;AAEzC,oBAAqB;EACnB,gBAAgB,EDTP,OAAO;;ACWlB,mCAAoC;EAClC,SAAS,EAAE,KAAK",
"sources": ["_application.scss","_variables.scss","community.scss"],
"names": [],
"file": "community.css"
}

View File

@ -0,0 +1,14 @@
@import "variables";
@import "application";
#backtohome, #backtomap, #download {
background-color: $ff_color;
}
header {
border-bottom: 1px solid rgba(0,0,0,.2);
}
.btn.navigation.next {
background-color: $ff_color;
}
#img_router_front, #img_router_back {
max-width: 200px;
}

33
webroot/css/index.css Normal file
View File

@ -0,0 +1,33 @@
header {
min-height: 10vh; }
#outer-container {
border-top: 5px solid #df316c;
margin: 5vh auto 0 auto; }
#outer-container .row {
margin-left: auto;
margin-right: auto; }
.dropdown-content li > a, .dropdown-content li > span {
color: #df316c; }
.input-field {
padding: 0 !important; }
.thin {
font-weight: 100; }
.page-footer {
padding-top: 0;
background-color: #df316c; }
#inner-container {
padding: 1.5rem; }
#map {
height: 40vh; }
.leaflet-top, .leaflet-bottom {
z-index: 400; }
/*# sourceMappingURL=index.css.map */

View File

@ -0,0 +1,7 @@
{
"version": 3,
"mappings": "AAAA,MAAO;EACL,UAAU,EAAE,IAAI;;AAElB,gBAAiB;EACf,UAAU,EAAE,iBAAmB;EAC/B,MAAM,EAAE,eAAe;EACvB,qBAAK;IACH,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;;AAGtB,qDAAkD;EAChD,KAAK,ECZI,OAAO;;ADclB,YAAa;EACX,OAAO,EAAE,YAAY;;AAEvB,KAAM;EACJ,WAAW,EAAE,GAAG;;AAElB,YAAa;EACX,WAAW,EAAE,CAAC;EACd,gBAAgB,ECtBP,OAAO;;ACElB,gBAAiB;EACf,OAAO,EAAE,MAAM;;AAEjB,IAAK;EACH,MAAM,EAAE,IAAI;;AAEd,6BAA8B;EAC5B,OAAO,EAAE,GAAG",
"sources": ["_application.scss","_variables.scss","index.scss"],
"names": [],
"file": "index.css"
}

11
webroot/css/index.scss Normal file
View File

@ -0,0 +1,11 @@
@import "variables";
@import "application";
#inner-container {
padding: 1.5rem;
}
#map {
height: 40vh;
}
.leaflet-top, .leaflet-bottom {
z-index: 400;
}

49
webroot/css/styles.css Normal file
View File

@ -0,0 +1,49 @@
/**
* @author Caspar Armster
* @copyright 2016 Caspar Armster, Freifunk Hennef
* @license Licensed under GPLv3
*
*/
@import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,400italic");
body {
font-family: "Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;
color:#555555;
}
.panel-default > .panel-heading {
background-color: #111;
color: #fff;
}
.panel-footer {
font-size: 80%;
}
.btn {
font-variant: small-caps;
font-weight: bold;
}
.btn-primary {
background-color: #dc0067 !important;
border-color: #cc0057 !important;
}
.img-box {
height: 175px;
width: 175px;
object-fit: contain;
margin: 5px;
}
.logo-box {
height: 200px;
width: 400px;
object-fit: contain;
margin: 5px;
}
@media (min-width: 1200px) {
.container{
width:auto;
max-width: 1550px;
}
}

BIN
webroot/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -0,0 +1,34 @@
<?php
/**
* @author Caspar Armster
* @copyright 2016 Caspar Armster, Freifunk Hennef/Freie Netzwerker e.V. (www.freifunk-hennef.de / www.freie-netzwerker.de)
* @license Licensed under GPLv3
*/
class ffrouter {
function __construct() {
$this->hersteller = "";
$this->modell = "";
$this->version = "";
$this->imagefront = "";
$this->imageback = "";
$this->betafactory = 0;
$this->betasysupgrade = 0;
$this->brokenfactory = 0;
$this->brokensysupgrade = 0;
$this->experimentalfactory = 0;
$this->experimentalsysupgrade = 0;
$this->stablefactory = 0;
$this->stablesysupgrade = 0;
$this->betafactorylink = "";
$this->betasysupgradelink = "";
$this->brokenfactorylink = "";
$this->brokensysupgradelink = "";
$this->experimentalfactorylink = "";
$this->experimentalsysupgradelink = "";
$this->stablefactorylink = "";
$this->stablesysupgradelink = "";
}
}

View File

@ -0,0 +1,129 @@
<?php
/**
* @author Caspar Armster
* @copyright 2016 Caspar Armster, Freifunk Hennef/Freie Netzwerker e.V. (www.freifunk-hennef.de / www.freie-netzwerker.de)
* @license Licensed under GPLv3
*/
if(!is_dir($firmware_download_path)) {
throw new Exception("Firmwareverzeichnis existiert nicht!");
}
$err = 0;
for( $i=0; $i<count($entwicklung); $i++ ) {
for( $j=0; $j<count($installation); $j++ ) {
if(is_dir($firmware_download_path.$entwicklung[$i]."/")) {
if(is_dir($firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/")) {
$variante[$entwicklung[$i]][$installation[$j]] = 1;
$files[$entwicklung[$i]][$installation[$j]] = array_slice(scandir($firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/"), 2);
for( $x=0; $x<count($files[$entwicklung[$i]][$installation[$j]]); $x++ ) {
if(is_dir($firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/".$files[$entwicklung[$i]][$installation[$j]][$x])) {
array_splice($files[$entwicklung[$i]][$installation[$j]], $x, 1);
$x--;
} else {
$pos = stripos($files[$entwicklung[$i]][$installation[$j]][$x], 'manifest');
if($pos !== false) {
array_splice($files[$entwicklung[$i]][$installation[$j]], $x, 1);
$x--;
}
}
}
}
}
}
}
for( $i=0; $i<count($entwicklung); $i++ ) {
for( $j=0; $j<count($installation); $j++ ) {
if($variante[$entwicklung[$i]][$installation[$j]] == 1) {
$x = 0;
while($files[$entwicklung[$i]][$installation[$j]][$x] !== false) {
$pos_hersteller[$entwicklung[$i]][$installation[$j]] = stripos($files[$entwicklung[$i]][$installation[$j]][$x], "tp-link");
if ($pos_hersteller[$entwicklung[$i]][$installation[$j]] !== false) {
break;
}
$x++;
}
} else {
$pos_hersteller[$entwicklung[$i]][$installation[$j]] = 0;
}
}
}
$router = array();
for( $i=0; $i<count($entwicklung); $i++ ) {
for( $j=0; $j<count($installation); $j++ ) {
if($variante[$entwicklung[$i]][$installation[$j]] == 1) {
for( $x=0; $x<count($files[$entwicklung[$i]][$installation[$j]]); $x++) {
for( $y=0; $y<$anzahl_hersteller; $y++) {
if($pos = stripos($files[$entwicklung[$i]][$installation[$j]][$x], $hersteller[$y]['filename'], $pos_hersteller[$entwicklung[$i]][$installation[$j]]-1) !== false) {
$router_tmp[$x]['hersteller'] = $hersteller[$y]['name'];
switch($router_tmp[$x]['hersteller']) {
case "D-Link":
$router_tmp[$x]['version'] = substr($files[$entwicklung[$i]][$installation[$j]][$x], strripos($files[$entwicklung[$i]][$installation[$j]][$x], "rev"), -4-$offset_sysupgrade[$j]);
break;
case "GL-Inet (alt)":
$router_tmp[$x]['version'] = substr($files[$entwicklung[$i]][$installation[$j]][$x], strripos($files[$entwicklung[$i]][$installation[$j]][$x], "v"), -4-$offset_sysupgrade[$j]);
break;
case "TP-Link":
$router_tmp[$x]['version'] = substr($files[$entwicklung[$i]][$installation[$j]][$x], strripos($files[$entwicklung[$i]][$installation[$j]][$x], "v"), -4-$offset_sysupgrade[$j]);
if(strlen($router_tmp[$x]['version']) >= 5) {
$router_tmp[$x]['version'] = "Alle";
}
break;
default:
$router_tmp[$x]['version'] = "Alle";
}
$router_tmp[$x]['modell'] = strtoupper(substr($files[$entwicklung[$i]][$installation[$j]][$x], $pos_hersteller[$entwicklung[$i]][$installation[$j]]+$hersteller[$y]['offset_modell'], strripos($files[$entwicklung[$i]][$installation[$j]][$x], ".", -4)-strlen($files[$entwicklung[$i]][$installation[$j]][$x])-strlen($router_tmp[$x]['version'])+$hersteller[$y]['offset_version']-$offset_sysupgrade[$j]));
if($router_tmp[$x]['modell'] == "" && $router_tmp[$x]['hersteller'] != "Raspberry Pi") {
$router_tmp[$x]['modell'] = strtoupper(substr($files[$entwicklung[$i]][$installation[$j]][$x], $pos_hersteller[$entwicklung[$i]][$installation[$j]]+$hersteller[$y]['offset_modell'], strripos($files[$entwicklung[$i]][$installation[$j]][$x], ".", -4)-strlen($files[$entwicklung[$i]][$installation[$j]][$x])-$hersteller[$y]['offset_version']-1-$offset_sysupgrade[$j]));
}
}
}
if(isset($router_tmp[$x]['hersteller']) != true) {
$error_text[$err]="Unbekannten Hersteller im Dateinamen gefunden, bitte Script updaten! (".$files[$entwicklung[$i]][$installation[$j]][$x].")";
$err++;
} else {
$router_neu = 1;
for( $z=0; $z<count($router); $z++) {
if(isset($router[$z])) {
if((strcasecmp($router[$z]->hersteller, $router_tmp[$x]['hersteller']) == 0) && (strcasecmp($router[$z]->modell, $router_tmp[$x]['modell']) == 0) && (strcasecmp($router[$z]->version, $router_tmp[$x]['version']) == 0)) {
$entinst = $entwicklung[$i].$installation[$j];
$entinstlink = $entwicklung[$i].$installation[$j]."link";
$router[$z]->$entinst = 1;
$router[$z]->$entinstlink = $firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/".$files[$entwicklung[$i]][$installation[$j]][$x];
$router_neu = 0;
break;
}
}
}
if($router_neu == 1) {
$z = count($router);
$router[$z] = new ffrouter();
$router[$z]->hersteller = $router_tmp[$x]['hersteller'];
$router[$z]->version = $router_tmp[$x]['version'];
$router[$z]->modell = $router_tmp[$x]['modell'];
$entinst = $entwicklung[$i].$installation[$j];
$entinstlink = $entwicklung[$i].$installation[$j]."link";
$router[$z]->$entinst = 1;
$router[$z]->$entinstlink = $firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/".$files[$entwicklung[$i]][$installation[$j]][$x];
}
}
}
}
$router_tmp = array();
}
}
for( $i=0; $i<count($router); $i++ ) { // Routerbilder einbauen
if(is_dir(strtolower("router_images/".$router[$i]->hersteller))) {
if(is_file(strtolower("router_images/".$router[$i]->hersteller."/".$router[$i]->modell."-".$router[$i]->version.".jpg"))) {
$router[$i]->imagefront = strtolower("router_images/".$router[$i]->hersteller."/".$router[$i]->modell."-".$router[$i]->version.".jpg");
} else {
$router[$i]->imagefront = "router_images/keinbild.jpg";
}
if(is_file(strtolower("router_images/".$router[$i]->hersteller."/".$router[$i]->modell."-".$router[$i]->version."_back.jpg"))) {
$router[$i]->imageback = strtolower("router_images/".$router[$i]->hersteller."/".$router[$i]->modell."-".$router[$i]->version."_back.jpg");
} else {
$router[$i]->imageback = "router_images/keinbild.jpg";
}
} else {
$router[$i]->imagefront = "router_images/keinbild.jpg";
$router[$i]->imageback = "router_images/keinbild.jpg";
}
}

155
webroot/firmware.php Normal file
View File

@ -0,0 +1,155 @@
<?php
/**
* @author Leo Maroni, Caspar Armster
* @copyright 2017 Leo Maroni, Caspar Armster, Freifunk Hennef/Freie Netzwerker e.V. (www.freifunk-hennef.de / www.freie-netzwerker.de)
* @license Licensed under GPLv3
*/
error_reporting (E_ALL ^ E_NOTICE);
require_once('community-config.inc.php');
require_once('config.inc.php');
require_once('ffrouter.class.php');
$community_id = $_REQUEST['id'];
?>
<!DOCTYPE html>
<html lang="de" xmlns:target="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title><?php echo $community[$community_id]["head_titel"]?></title>
<meta name="author" content="Leo Maroni, Caspar Armster" />
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.labcode.de/libs/materialize/0.100.2/css/materialize.min.css" integrity="sha256-e22BQKCF7bb/h/4MFJ1a4lTRR2OuAe8Hxa/3tgU5Taw=" crossorigin="anonymous" /> <link rel="stylesheet" href="css/community.css">
<script src="https://cdn.labcode.de/libs/jquery/3.3.1/jquery.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script src="https://cdn.labcode.de/libs/materialize/0.100.2/js/materialize.min.js" integrity="sha256-uWtSXRErwH9kdJTIr1swfHFJn/d/WQ6s72gELOHXQGM=" crossorigin="anonymous"></script>
<script src="js/firmware.js"></script>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="icon" href="favicon.ico" type="image/x-icon">
<?php
if($community[$community_id]["linktoseite"] != null) {
header("Location: ".$community[$community_id]['linktoseite']);
die();
}
$firmware_download_path = $community[$community_id]["download_path"];
try {
require_once('ffrouter_parsen.function.php');
} catch(Exception $e) {
echo("Fehler: ".$e->getMessage());
echo(" Bitte kontaktiere leo@freifunk-siegburg.de");
die();
}
?>
<script>
<?php
echo "var router_json = ".json_encode($router)."\n";
echo "var texte_json = ".json_encode($texte)."\n";
echo "var anzahl_hersteller = ".$anzahl_hersteller."\n";
$manufacturer = array();
foreach ($hersteller as $i => $value) {
array_push($manufacturer, $value['name']);
}
echo "var herstellername = ".json_encode($manufacturer)."\n";
$modelle = array();
for ($i = 0; $anzahl_hersteller > $i; $i++) {
if($manufacturer == '<script>$("#hersteller").value</script>') {
$x = 0;
while ($x < sizeof($router)) {
if($manufacturer[$i] == $router[$x]['hersteller']) {
array_push($modelle, $router[$x]['modell']);
}
}
}
}
?>
</script>
</head>
<body>
<div class="container z-depth-3" id="outer-container">
<header class="center">
<h3 class="thin"><?php echo $community[$community_id]['head_titel']?></h3>
<p>
<a id="backtohome" class="btn waves-effect waves-light" href="<?php echo $community[$community_id]['link_url']?>"><?php echo $community[$community_id]['link_text']?></a>
<a id="backtomap" class="btn waves-effect waves-light" href="/">Zur&uuml;ck zur Auswahl</a>
</p>
</header>
<div class="container row" id="inner-container">
<?php for ($i = 0; $i < $err; $i++): ?>
<div class="alert alert-warning alert-dismissible" role="alert">
<span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>
<span class="sr-only">Warning:</span>
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<strong>Warning!</strong> <?php echo $error_text[$i] ?>
</div>
<?php endfor ?>
<div class="row">
<div class="col s12 m6">
<h5>Beschreibung</h5>
<p><?php echo $community[$community_id]["lang_text"]?></p>
</div>
<div class="col s12 m6">
<div class="row">
<img class="col s6 m12" src="router_images/keinbild.jpg" id="img_router_front" alt="Router Vorderseite" />
<img class="col s6 m12" src="router_images/keinbild.jpg" id="img_router_back" alt="Router Rückseite" />
</div>
<div class="row">
<img src="images/ccbyncsa.png" alt="CC BY-NC-SA" style="width: 60px; margin-right: 15px;" />
</div>
</div>
</div>
<div class="col s12 m6">
<h5>Hersteller</h5>
<select id="hersteller" onchange="change('hersteller', this)">
<option disabled selected value="">Hersteller auswählen</option>
<?php foreach ($hersteller as $value): ?>
<option value="<?php echo $value['name']?>"><?php echo $value['name']?></option>
<?php endforeach ?>
</select>
</div>
<div class="col s12 m6">
<h5>Modell</h5>
<select disabled onchange="change('modell', this)" id="modell">
<option disabled selected value="">Modell auswählen</option>
</select>
</div>
<div class="col s12 m6">
<h5>Version</h5>
<select disabled onchange="change('version', this)" id="version">
<option disabled selected value="">Version auswählen</option>
</select>
</div>
<div class="col s12 m6">
<h5>Erstinstallation</h5>
<select disabled onchange="change('erstinstallation', this)" id="erstinstallation">
<option disabled selected value="">Firmware Erstinstallation?</option>
</select>
</div>
<div class="col s12 m6">
<h5>Entwicklungsstadium</h5>
<select disabled onchange="change('entwicklungsstadium', this)" id="entwicklungsstadium">
<option disabled selected value="">Entwicklungsstadium auswählen</option>
</select>
</div>
<div class="col s12 center">
<a disabled id="download" class="waves-effect waves-light btn-large"><i class="material-icons left">file_download</i>Herunterladen</a>
<br><span>Passende Kernelmodule bitte seperat laden von <a class="blue-grey-text text-darken-4" href="<?php echo $community[$community_id]['modules_path']?>"><?php echo $community[$community_id]['modules_path']?></a></span>
</div>
</div>
<footer class="page-footer">
<div class="footer-copyright">
<div class="container">
© 2018 <a class="grey-text text-lighten-4" href="https://labcode.de">Leo Maroni</a>, Caspar Armster / Licensed under GPLv3 / Die Router Bilder sind von Daniel Krah und unter <a href="http://creativecommons.org/licenses/by-nc-sa/4.0/" class="grey-text text-lighten-4" target="_blank">Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz</a> lizensiert. Dies ist ein Community-Projekt von Freifunk Siegburg und Freifunk Troisdorf. Alle Firmwares sind Eigenentwicklungen der jeweiligen Communities. <a href="http://www.freifunk-siegburg.de/impressum/" class="grey-text text-lighten-4">Impressum</a>
</div>
</div>
</footer>
</div>
</body>
</html>

View File

@ -0,0 +1,134 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"© GeoBasis-DE / BKG 2013 (Daten verändert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id":"0",
"color":"#0FA3B1"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
7.029871343452771,
50.75657527144183
],
[
7.040359268497073,
50.753213920196245
],
[
7.029793034960393,
50.72607449826665
],
[
7.040284265648467,
50.7192172053215
],
[
7.028916532786433,
50.71314799337683
],
[
7.023486323874297,
50.70472497388864
],
[
7.031426026188501,
50.70057656063367
],
[
7.030360320724697,
50.69468965664956
],
[
7.039260745561086,
50.68874024285856
],
[
7.031343309555846,
50.6778388764734
],
[
7.044293391365702,
50.67427663296409
],
[
7.03774665833277,
50.66181177162897
],
[
7.018918052152416,
50.66652115986528
],
[
7.010309779514896,
50.671711312273395
],
[
6.996749427429424,
50.6733460039899
],
[
6.988057974923348,
50.68562128014954
],
[
6.992336155699622,
50.68699419362447
],
[
6.977802201472648,
50.697515128184975
],
[
6.96829675358706,
50.6960542859128
],
[
6.965287000618864,
50.71069943161587
],
[
6.963707915466751,
50.70864579244295
],
[
6.95823661893979,
50.714429366649135
],
[
6.964377951704645,
50.72494032055338
],
[
6.978817474248211,
50.728794473172776
],
[
6.989975497023011,
50.742663113468375
],
[
7.006052201951227,
50.744329325511565
],
[
7.029871343452771,
50.75657527144183
]
]
]
}
}
]
}

View File

@ -0,0 +1,802 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"\u00a9 GeoBasis-DE \/ BKG 2013 (Daten ver\u00e4ndert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id":"1",
"color":"#f44336"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
7.808788401220583,
50.9388044526899
],
[
7.813265981384604,
50.940027244636674
],
[
7.828498720652848,
50.9288897314374
],
[
7.835785479104175,
50.929563828594056
],
[
7.838306960417486,
50.9262875677696
],
[
7.846528597218638,
50.93074303073695
],
[
7.851495862006642,
50.92583240908314
],
[
7.833709738023687,
50.90834653428892
],
[
7.834964820447053,
50.901856855509656
],
[
7.826699861653405,
50.890835915675936
],
[
7.82926358435423,
50.88238662032318
],
[
7.850833319147456,
50.877707354297115
],
[
7.869002340066146,
50.87907078070731
],
[
7.872827786232592,
50.87559206526959
],
[
7.882458169775111,
50.874891135880425
],
[
7.887103903220597,
50.86539832185387
],
[
7.893955751179649,
50.86473298173619
],
[
7.892998209765262,
50.85948064821847
],
[
7.905851426965089,
50.84810944335776
],
[
7.922851854970482,
50.84466176324271
],
[
7.938303447455071,
50.84837987129838
],
[
7.952896069320929,
50.84600905755082
],
[
7.957688480650591,
50.848868992206405
],
[
7.966981799913537,
50.84403951540331
],
[
7.968071052673247,
50.83604172419107
],
[
7.978313123341388,
50.83331176276865
],
[
7.971959957055569,
50.81469969020495
],
[
7.973937841822852,
50.8041734170975
],
[
7.967312566880147,
50.798249086365104
],
[
7.968979052971702,
50.785618405059246
],
[
7.964248180921246,
50.78382248812627
],
[
7.968861797548623,
50.77392108722933
],
[
7.98402780123609,
50.76099008450697
],
[
8.000229496272032,
50.75508077559619
],
[
8.040325986839502,
50.72565709111106
],
[
8.043045796429137,
50.71171577783464
],
[
8.039689942322912,
50.697375345810855
],
[
8.028441040150033,
50.69700061180718
],
[
8.005207629891839,
50.68827354949177
],
[
7.992885741401021,
50.67598844126103
],
[
7.974325653257398,
50.676241886214946
],
[
7.963922604604977,
50.67812996251773
],
[
7.968224844726712,
50.69390729868549
],
[
7.946515369880095,
50.70910452005895
],
[
7.931085456073174,
50.71045568853974
],
[
7.902630847899856,
50.71880589791523
],
[
7.889053144263271,
50.71383680401512
],
[
7.882199726647379,
50.695459368106185
],
[
7.87513995596048,
50.69042864519586
],
[
7.87450046169728,
50.68819031416889
],
[
7.892900687235657,
50.68177293133204
],
[
7.883613940065699,
50.67907835946435
],
[
7.854766482320994,
50.685282881125666
],
[
7.85309294131972,
50.693554761422554
],
[
7.859955205642283,
50.69678168838638
],
[
7.836416804438325,
50.71180931665372
],
[
7.814839292142401,
50.703837817945555
],
[
7.8182561369379,
50.70852687001658
],
[
7.807095883551902,
50.70952826573956
],
[
7.800431157666562,
50.71639586557433
],
[
7.80821781517544,
50.72990252806661
],
[
7.786931806317831,
50.731242526853485
],
[
7.773841368514402,
50.73748983683438
],
[
7.768366307338304,
50.732615835942426
],
[
7.742885385340373,
50.74007047119349
],
[
7.74236705785835,
50.7370778383286
],
[
7.749981829393248,
50.7330630955158
],
[
7.738222722685182,
50.729911001669095
],
[
7.726857863768662,
50.734231418867566
],
[
7.726899255383696,
50.72709225359627
],
[
7.72016234140159,
50.73111757711528
],
[
7.71762972326327,
50.724105645530464
],
[
7.721570592103276,
50.72248051657109
],
[
7.733291110861152,
50.72719113469644
],
[
7.731626914481244,
50.720812569896246
],
[
7.724580878214059,
50.71598880606331
],
[
7.707845606372774,
50.713146257498934
],
[
7.695889199758395,
50.70467247849286
],
[
7.700270907753745,
50.69379354378034
],
[
7.716550216457756,
50.6931077226123
],
[
7.725613162817444,
50.68884850160801
],
[
7.726540095744332,
50.68379644117263
],
[
7.720727852633765,
50.672578034039546
],
[
7.702500979887508,
50.67479479754548
],
[
7.69610572895874,
50.672983174052426
],
[
7.691532748031426,
50.666794410155525
],
[
7.694679861941401,
50.6655832072902
],
[
7.692695044480106,
50.66042067924181
],
[
7.704027895610605,
50.65473456717237
],
[
7.703223585535669,
50.6227415296512
],
[
7.689603303987893,
50.62916413046176
],
[
7.678845827507631,
50.64415512606254
],
[
7.672406653871252,
50.64666303560923
],
[
7.656590768673769,
50.64522154573616
],
[
7.652998066279357,
50.651427143042476
],
[
7.63824633655776,
50.64900988404938
],
[
7.634200610269273,
50.653781049331414
],
[
7.624617566367895,
50.65184124337853
],
[
7.61385634858548,
50.64330691100803
],
[
7.610101843486046,
50.64722912229745
],
[
7.591743693949991,
50.65252263325001
],
[
7.586900243992239,
50.64615144589671
],
[
7.571674945427771,
50.64526244488777
],
[
7.569868944772471,
50.63634700243786
],
[
7.576206396298355,
50.63033028983786
],
[
7.572870640921765,
50.62584362027318
],
[
7.579080578489249,
50.619678388104795
],
[
7.57147148138349,
50.614839293205456
],
[
7.563904374010535,
50.61386377240825
],
[
7.564288626602268,
50.626453204473954
],
[
7.558626641218878,
50.626444266173934
],
[
7.561192715833756,
50.62345694506072
],
[
7.557918506844347,
50.621725728870196
],
[
7.550913004994804,
50.62641871774835
],
[
7.53873834052257,
50.62731396094389
],
[
7.544188273319664,
50.62284302575653
],
[
7.542812741796943,
50.6096787132726
],
[
7.558908498662144,
50.598788704865974
],
[
7.537649445918929,
50.580829760462215
],
[
7.539981455669018,
50.57705350745009
],
[
7.533420747121149,
50.57012235846942
],
[
7.536173297822498,
50.56617690125528
],
[
7.531908410081374,
50.56387006933872
],
[
7.51605376722888,
50.571286466725205
],
[
7.495381450200224,
50.57193873071813
],
[
7.488688766120693,
50.57596067254941
],
[
7.488792276474743,
50.580285842003434
],
[
7.474682291620987,
50.582618412915124
],
[
7.465887555991416,
50.606350553752605
],
[
7.470711522426533,
50.61096180494081
],
[
7.453887406764662,
50.61145284232464
],
[
7.450034912915205,
50.617468792105676
],
[
7.457419138684443,
50.616231693608576
],
[
7.455519459498895,
50.62301666941949
],
[
7.460055786941662,
50.6218303655516
],
[
7.463663111340995,
50.625572373763355
],
[
7.4711477359718,
50.62345449985074
],
[
7.481603143103,
50.62552018444411
],
[
7.47423874606746,
50.63518825302995
],
[
7.484928940187,
50.644851065001355
],
[
7.479044666359733,
50.657881011125596
],
[
7.485429613694628,
50.668043406611105
],
[
7.468282802911108,
50.672214802658054
],
[
7.465034137436838,
50.68404354784479
],
[
7.452348234053964,
50.69294045648771
],
[
7.440772222127835,
50.711438164718025
],
[
7.448619767425206,
50.717444761592226
],
[
7.479816338232133,
50.718253910224504
],
[
7.501940671590177,
50.730013317243
],
[
7.520123910656926,
50.72899687944899
],
[
7.51938788300207,
50.73740659061157
],
[
7.521534042666314,
50.733655422016575
],
[
7.551900377325675,
50.74634314496176
],
[
7.580246126517786,
50.738137490239176
],
[
7.591521558557222,
50.740276160238366
],
[
7.595297177492973,
50.750969326551875
],
[
7.591505261381609,
50.755781698964036
],
[
7.59985087094254,
50.76584191018413
],
[
7.618168809410952,
50.77017082780352
],
[
7.645393592113547,
50.77088137756525
],
[
7.655450742486003,
50.76786954395592
],
[
7.662161360059336,
50.77315629604618
],
[
7.658550526898369,
50.78370188640278
],
[
7.661945527689926,
50.78602711145476
],
[
7.669881494047608,
50.78562683263681
],
[
7.675944870216716,
50.77932768469345
],
[
7.682222418599937,
50.795368529370954
],
[
7.675047644466114,
50.80266927124949
],
[
7.679510539182871,
50.81004670587801
],
[
7.664109173067756,
50.81535286028657
],
[
7.661003633112155,
50.8203643031954
],
[
7.67462827739734,
50.81919510291081
],
[
7.700016708247848,
50.82541823289692
],
[
7.706390791797354,
50.8338555788233
],
[
7.713613872861948,
50.83361503976557
],
[
7.714285524724176,
50.8404471850332
],
[
7.729342105278951,
50.85052278912818
],
[
7.75804337937234,
50.84348242444966
],
[
7.762187497503389,
50.845134406837296
],
[
7.753187095359069,
50.851368511654286
],
[
7.765973968659978,
50.85681947827799
],
[
7.748309881166158,
50.867216792961244
],
[
7.758767439044576,
50.87977223459712
],
[
7.753021566030458,
50.88837918273855
],
[
7.760427259896,
50.900393946292986
],
[
7.750604338818219,
50.90566329755655
],
[
7.745064030130164,
50.905198977016894
],
[
7.746872127509461,
50.91239199917908
],
[
7.735459231714069,
50.91776539126454
],
[
7.757281421632989,
50.920164000038504
],
[
7.776218913422718,
50.92903657418395
],
[
7.785898055946699,
50.939914116315606
],
[
7.792810758565112,
50.94233509200108
],
[
7.808788401220583,
50.9388044526899
]
]
]
}
}
]
}

View File

@ -0,0 +1,138 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"© GeoBasis-DE / BKG 2013 (Daten verändert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id":"2",
"color":"#992741"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
7.29958905154646,
50.686815887434165
],
[
7.320407610822264,
50.679029851349064
],
[
7.318457206198076,
50.67206218223426
],
[
7.333245090727209,
50.670504804857885
],
[
7.340681979675172,
50.674112465559396
],
[
7.342627770216047,
50.67153588732737
],
[
7.362946105954975,
50.67119798107543
],
[
7.355167212437085,
50.661682992421994
],
[
7.358976516209164,
50.64949362023121
],
[
7.333480804094751,
50.63839606845412
],
[
7.322175247748111,
50.64171541341142
],
[
7.313097427009887,
50.63700713937899
],
[
7.305099529211726,
50.637578811246286
],
[
7.297323120168676,
50.63181575459909
],
[
7.270054732652263,
50.62642740760304
],
[
7.256579924083707,
50.62468025665609
],
[
7.251955077264071,
50.627838769399155
],
[
7.217027615985182,
50.628066850697486
],
[
7.212399645217203,
50.623404919825276
],
[
7.211464004606567,
50.648160172742024
],
[
7.200170656738829,
50.662048307536004
],
[
7.209850098416473,
50.66579367273513
],
[
7.214320951588994,
50.66354789369184
],
[
7.224399169135247,
50.67219193701357
],
[
7.247920566628346,
50.67084742139868
],
[
7.268710987722357,
50.676996161589656
],
[
7.288871351981606,
50.67445057428043
],
[
7.29958905154646,
50.686815887434165
]
]
]
}
}
]
}

View File

@ -0,0 +1,234 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"© GeoBasis-DE / BKG 2013 (Daten verändert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id":"3",
"color":"#2962ff"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
7.132213394040407,
50.77185443737477
],
[
7.152489927594899,
50.76003796335712
],
[
7.156681239926158,
50.753918746788344
],
[
7.162994368356174,
50.75637051875951
],
[
7.18258567762452,
50.75173376635224
],
[
7.194960773577625,
50.74376603541352
],
[
7.198575927383396,
50.7475638018129
],
[
7.20910622998096,
50.736931027156174
],
[
7.191262592081926,
50.72659467341673
],
[
7.196577745091191,
50.71305632943136
],
[
7.19396780408392,
50.71045092369741
],
[
7.174971638245492,
50.707700013470934
],
[
7.168237685458138,
50.70348964302292
],
[
7.176563878575886,
50.687114469613675
],
[
7.210871863698702,
50.64954362372206
],
[
7.198485710421648,
50.64820873532703
],
[
7.194148580910829,
50.64267364884345
],
[
7.18116837749634,
50.652288167476165
],
[
7.17344532565691,
50.65112043013336
],
[
7.156430690284973,
50.65468256279831
],
[
7.128048493073197,
50.64726487495967
],
[
7.1240276330048,
50.65507371967986
],
[
7.105341569450315,
50.659692359928265
],
[
7.076663672842178,
50.642760008384485
],
[
7.068919533825873,
50.63310892052369
],
[
7.0560982867468,
50.63186602981456
],
[
7.060008559766892,
50.63888119867724
],
[
7.050659280246245,
50.63962725833799
],
[
7.03248204073807,
50.65430012419505
],
[
7.026879245740833,
50.65495159085289
],
[
7.024341991575346,
50.662009381215405
],
[
7.027070449016924,
50.665609812928174
],
[
7.03774665833277,
50.66181177162897
],
[
7.044293391365702,
50.67427663296409
],
[
7.031343309555846,
50.6778388764734
],
[
7.039260745561086,
50.68874024285856
],
[
7.030360320724697,
50.69468965664956
],
[
7.031426026188501,
50.70057656063367
],
[
7.023486323874297,
50.70472497388864
],
[
7.028916532786433,
50.71314799337683
],
[
7.040284265648467,
50.7192172053215
],
[
7.029793034960393,
50.72607449826665
],
[
7.040359268497073,
50.753213920196245
],
[
7.03655090539037,
50.75764892001314
],
[
7.048730628273394,
50.76422761631534
],
[
7.056525284280213,
50.76426139527427
],
[
7.065658279092976,
50.7717654261705
],
[
7.098686033671748,
50.76161572855177
],
[
7.106758396344927,
50.763482747852436
],
[
7.112695173852172,
50.771096360566695
],
[
7.125265297984769,
50.774435466448885
],
[
7.132213394040407,
50.77185443737477
]
]
]
}
}
]
}

View File

@ -0,0 +1,198 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"© GeoBasis-DE / BKG 2013 (Daten verändert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id":"4",
"color":"#E0BE36"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
6.952142566503855,
50.80257564621366
],
[
6.958428106444713,
50.804037940965216
],
[
6.966070916427912,
50.799235692258314
],
[
6.96940497909267,
50.80154383632071
],
[
6.975506972029664,
50.798440475871175
],
[
6.983051793148265,
50.8002384793546
],
[
6.988602965479647,
50.79832306717335
],
[
6.989590714618996,
50.792404206455465
],
[
7.00642006350105,
50.79783175280997
],
[
7.010540037283192,
50.79665528614116
],
[
7.020224422445963,
50.80247706382252
],
[
7.030181392182286,
50.800667691527934
],
[
7.035915787927577,
50.78549030279549
],
[
7.065658279092976,
50.7717654261705
],
[
7.056525284280213,
50.76426139527427
],
[
7.040140578844926,
50.760368381067146
],
[
7.037017936111417,
50.7551858050936
],
[
7.029871343452771,
50.75657527144183
],
[
7.005180032765881,
50.74403277455167
],
[
6.992307333946967,
50.74402076854013
],
[
6.978817474248211,
50.728794473172776
],
[
6.964377951704645,
50.72494032055338
],
[
6.962153344748012,
50.718751442389035
],
[
6.937356119870455,
50.72737271297492
],
[
6.941506577357909,
50.73026587374726
],
[
6.938909355620514,
50.73212275663494
],
[
6.917708350798725,
50.73243252800334
],
[
6.903812770477187,
50.74346932900316
],
[
6.902152557702992,
50.75026410491987
],
[
6.895485942072285,
50.74649848557145
],
[
6.880653559006959,
50.746432216270726
],
[
6.867194146184074,
50.76154151302862
],
[
6.859804628282767,
50.76449857457746
],
[
6.868096557846426,
50.77256024401043
],
[
6.870259543092555,
50.78053751926948
],
[
6.864216435161323,
50.78496046388886
],
[
6.870322905119068,
50.79066509224341
],
[
6.882682903207805,
50.79328558017323
],
[
6.883925343611901,
50.795954811320556
],
[
6.908726247148725,
50.80154917874192
],
[
6.913264247362652,
50.79906429565758
],
[
6.933826409559566,
50.80526565557477
],
[
6.952142566503855,
50.80257564621366
]
]
]
}
}
]
}

View File

@ -0,0 +1,202 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"\u00a9 GeoBasis-DE \/ BKG 2013 (Daten ver\u00e4ndert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id":"5",
"color":"#607d8b"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
7.305992215845735,
50.813068776849896
],
[
7.336354566762565,
50.80931691439563
],
[
7.341620893832444,
50.80355260946186
],
[
7.337924661987926,
50.799174088990384
],
[
7.340800175257225,
50.79574918918861
],
[
7.363189793034723,
50.804255121498386
],
[
7.371423293103076,
50.793184389315286
],
[
7.367731073696625,
50.79188693581975
],
[
7.369203128348476,
50.77949880496719
],
[
7.380803936378155,
50.779136156489486
],
[
7.382839225289939,
50.770158241871016
],
[
7.39338488256011,
50.76130074638236
],
[
7.413296131126293,
50.76315672680434
],
[
7.412501643601504,
50.75478745473475
],
[
7.419360567267763,
50.7463788326096
],
[
7.415001320479061,
50.74254353472322
],
[
7.425130520670566,
50.73353730954724
],
[
7.424241137471139,
50.720806973547816
],
[
7.439129236937861,
50.711187601503276
],
[
7.423396633125697,
50.70995095897779
],
[
7.407050971009926,
50.718187622324784
],
[
7.397282413114079,
50.714269920096434
],
[
7.374010755091872,
50.718218641349644
],
[
7.362433949846745,
50.70111747342069
],
[
7.349305043544935,
50.69628598701886
],
[
7.341526039257555,
50.697253656871794
],
[
7.332792448704192,
50.7005812597693
],
[
7.32674591454942,
50.70999695835716
],
[
7.319643814663089,
50.712279641152335
],
[
7.314726826703526,
50.718439635577546
],
[
7.29527615030896,
50.725745143203696
],
[
7.289958659320702,
50.73367828736359
],
[
7.262332685706536,
50.73463830008586
],
[
7.242720087661549,
50.741338388382616
],
[
7.229644730919691,
50.75331775359523
],
[
7.23077514521109,
50.75764574954088
],
[
7.24205163668085,
50.76106163560774
],
[
7.245320384702853,
50.78379556066008
],
[
7.242500016308063,
50.79060622272115
],
[
7.262968832913181,
50.79743893988545
],
[
7.279501390976368,
50.79057729302333
],
[
7.279555096597982,
50.80171944048642
],
[
7.297484750584827,
50.812759340789434
],
[
7.305992215845735,
50.813068776849896
]
]
]
}
}
]
}

View File

@ -0,0 +1,186 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"\u00a9 GeoBasis-DE \/ BKG 2013 (Daten ver\u00e4ndert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id":"6",
"color":"#e91e63"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
7.241180658121503,
50.745086779668455
],
[
7.242720087661549,
50.741338388382616
],
[
7.256415185600453,
50.73565251386789
],
[
7.289958659320702,
50.73367828736359
],
[
7.29527615030896,
50.725745143203696
],
[
7.314726826703526,
50.718439635577546
],
[
7.319643814663089,
50.712279641152335
],
[
7.32674591454942,
50.70999695835716
],
[
7.332792448704192,
50.7005812597693
],
[
7.341526039257555,
50.697253656871794
],
[
7.36830787202213,
50.69709009589077
],
[
7.364635414797967,
50.692235585572924
],
[
7.372062798617264,
50.68210706420175
],
[
7.366175165584966,
50.68070489552597
],
[
7.369315910682903,
50.67254968931046
],
[
7.342627770216047,
50.67153588732737
],
[
7.340681979675172,
50.674112465559396
],
[
7.333245090727209,
50.670504804857885
],
[
7.318457206198076,
50.67206218223426
],
[
7.320407610822264,
50.679029851349064
],
[
7.298041374938018,
50.68689641984818
],
[
7.288871351981606,
50.67445057428043
],
[
7.268710987722357,
50.676996161589656
],
[
7.247920566628346,
50.67084742139868
],
[
7.224399169135247,
50.67219193701357
],
[
7.214320951588994,
50.66354789369184
],
[
7.209850098416473,
50.66579367273513
],
[
7.200170656738829,
50.662048307536004
],
[
7.176563878575886,
50.687114469613675
],
[
7.168237685458138,
50.70348964302292
],
[
7.174971638245492,
50.707700013470934
],
[
7.19396780408392,
50.71045092369741
],
[
7.196577745091191,
50.71305632943136
],
[
7.191262592081926,
50.72659467341673
],
[
7.20910622998096,
50.736931027156174
],
[
7.207041656483143,
50.73945568841583
],
[
7.220559293135089,
50.7444236238164
],
[
7.239305422057518,
50.744719893472336
],
[
7.238146385423169,
50.747228650707775
],
[
7.241180658121503,
50.745086779668455
]
]
]
}
}
]
}

View File

@ -0,0 +1,166 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"\u00a9 GeoBasis-DE \/ BKG 2013 (Daten ver\u00e4ndert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id": "7",
"color":"#9c27b0"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
7.258330339131851,
50.92021785820883
],
[
7.268149748895372,
50.91854592245513
],
[
7.275086208242106,
50.910984273808694
],
[
7.301693107945642,
50.90689224099543
],
[
7.304739448918386,
50.87957979855253
],
[
7.293631438292942,
50.87943580140051
],
[
7.28159395759392,
50.875239249652935
],
[
7.275824225655047,
50.86791931736017
],
[
7.27926236099566,
50.86143123153995
],
[
7.289810600078698,
50.862407819869205
],
[
7.299395041961212,
50.8552694450659
],
[
7.289283963186543,
50.843858694333065
],
[
7.288486165434747,
50.83419106925503
],
[
7.28314996984564,
50.82806317480935
],
[
7.268054099484099,
50.822861327844734
],
[
7.269413031561724,
50.82089979605111
],
[
7.256787528436739,
50.81907162222906
],
[
7.249361727512685,
50.813017492977735
],
[
7.221312508966276,
50.81344383586508
],
[
7.202171757723171,
50.818825801641545
],
[
7.190962056263616,
50.82728558940535
],
[
7.202849774405916,
50.84570442313858
],
[
7.213414669256135,
50.852218570031376
],
[
7.209624086372428,
50.859544098033915
],
[
7.190982639562185,
50.873341296233356
],
[
7.198402726407084,
50.87529075559071
],
[
7.205090991781846,
50.881749255406156
],
[
7.207169361410264,
50.89079670823735
],
[
7.228275301988433,
50.900264310895075
],
[
7.234327470758853,
50.90736945860316
],
[
7.232050927934562,
50.91442050116752
],
[
7.235958339031076,
50.91385767903485
],
[
7.242130632342521,
50.924150044671805
],
[
7.248960616531137,
50.92819844435175
],
[
7.258330339131851,
50.92021785820883
]
]
]
}
}
]
}

View File

@ -0,0 +1,150 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"\u00a9 GeoBasis-DE \/ BKG 2013 (Daten ver\u00e4ndert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id":"8",
"color":"#673ab7"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
7.024341991575346,
50.662009381215405
],
[
7.026879245740833,
50.65495159085289
],
[
7.03248204073807,
50.65430012419505
],
[
7.050659280246245,
50.63962725833799
],
[
7.060008559766892,
50.63888119867724
],
[
7.0560982867468,
50.63186602981456
],
[
7.064028160374225,
50.632264289164695
],
[
7.064222163633812,
50.624424590906244
],
[
7.042523429371555,
50.616652133215545
],
[
7.03794917384514,
50.605390737576954
],
[
7.043162529312359,
50.60245735572736
],
[
7.04889554024381,
50.60532211809885
],
[
7.04900905451604,
50.603208745403165
],
[
7.015911208263798,
50.57698842226416
],
[
6.998096294634187,
50.56504990464773
],
[
6.985679764710591,
50.56485245908502
],
[
6.983515147382838,
50.571074000834464
],
[
6.957829219473759,
50.57323222521432
],
[
6.956317640416278,
50.577015858078624
],
[
6.997189379538712,
50.596719190226686
],
[
7.005897543128913,
50.60702990875373
],
[
7.007811394438509,
50.611492159073904
],
[
7.000028221381486,
50.620686641314194
],
[
6.988461084649442,
50.62560512285415
],
[
6.987157852965328,
50.63013248653379
],
[
7.014095253850654,
50.642082035036275
],
[
7.0011339002272,
50.6443475761548
],
[
6.992756610941499,
50.6495073216453
],
[
7.018918052152416,
50.66652115986528
],
[
7.024932056205366,
50.66512575276486
],
[
7.024341991575346,
50.662009381215405
]
]
]
}
}
]
}

View File

@ -0,0 +1,210 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"\u00a9 GeoBasis-DE \/ BKG 2013 (Daten ver\u00e4ndert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id":"9",
"color":"#795548"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
7.406419358919639,
50.94762177214607
],
[
7.444177064316765,
50.94747608089462
],
[
7.443827246638047,
50.94282919868853
],
[
7.461384683332916,
50.935688841276495
],
[
7.46200520106736,
50.92968961434931
],
[
7.47076550167368,
50.924713198650316
],
[
7.479297465839325,
50.91095029085512
],
[
7.467964056348522,
50.89800299364093
],
[
7.469178022519014,
50.88965087573533
],
[
7.461272685737134,
50.881213644199526
],
[
7.460946662405227,
50.87444221431993
],
[
7.453048568848511,
50.87399214394727
],
[
7.446609940040791,
50.86735726796638
],
[
7.438630322831201,
50.867084144848434
],
[
7.442755844122638,
50.854333263675365
],
[
7.436959185941786,
50.849029418539814
],
[
7.430272218715795,
50.85120317774715
],
[
7.430614153295672,
50.847961281513896
],
[
7.420583036559062,
50.84628174981604
],
[
7.417296472509351,
50.84221410721538
],
[
7.413351670978029,
50.84228937339726
],
[
7.411584716890175,
50.84619576935323
],
[
7.406383593791248,
50.845264780306096
],
[
7.402815017968845,
50.854427276987835
],
[
7.367042530639538,
50.86485959518831
],
[
7.372192091236665,
50.87017667299169
],
[
7.367241181785757,
50.8739516879785
],
[
7.362439633402658,
50.87275939927224
],
[
7.36157020811188,
50.875518671625805
],
[
7.353286038282118,
50.874889263488086
],
[
7.341587157588179,
50.88409084899788
],
[
7.343692321143735,
50.8962788673375
],
[
7.336505383265026,
50.901234750776084
],
[
7.330883308589399,
50.900766361338185
],
[
7.331250597240318,
50.90436070438452
],
[
7.322753217566687,
50.9032371185296
],
[
7.303434363552256,
50.90725535576976
],
[
7.324164368736081,
50.91697363227077
],
[
7.335209510796221,
50.91106084296655
],
[
7.345756755984745,
50.91223010945857
],
[
7.359150503584523,
50.92271518979834
],
[
7.363255228860568,
50.93472248062191
],
[
7.385784027677973,
50.93434635203072
],
[
7.394602538374291,
50.94334450555901
],
[
7.393766701350992,
50.94880652731814
],
[
7.406419358919639,
50.94762177214607
]
]
]
}
}
]
}

View File

@ -0,0 +1,190 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"\u00a9 GeoBasis-DE \/ BKG 2013 (Daten ver\u00e4ndert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id":"10",
"color":"#3f51b5"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
7.303434363552256,
50.90725535576976
],
[
7.322753217566687,
50.9032371185296
],
[
7.331250597240318,
50.90436070438452
],
[
7.330883308589399,
50.900766361338185
],
[
7.336505383265026,
50.901234750776084
],
[
7.343692321143735,
50.8962788673375
],
[
7.341587157588179,
50.88409084899788
],
[
7.353286038282118,
50.874889263488086
],
[
7.367241181785757,
50.8739516879785
],
[
7.372383135392335,
50.86902909443342
],
[
7.367042530639538,
50.86485959518831
],
[
7.402815017968845,
50.854427276987835
],
[
7.407417929065137,
50.84682327676014
],
[
7.376101699640399,
50.845453346714876
],
[
7.367813293046154,
50.83144225119181
],
[
7.361831946844559,
50.83030801920326
],
[
7.36505496800773,
50.828269794130414
],
[
7.35605768313278,
50.82190242214491
],
[
7.355723220960213,
50.81675106120364
],
[
7.347470655847153,
50.81622987669719
],
[
7.34831047108749,
50.81243423282748
],
[
7.337817589192693,
50.808285114677304
],
[
7.316990036663177,
50.81313695555621
],
[
7.298818536105567,
50.81191553412008
],
[
7.30920425230506,
50.820442802983116
],
[
7.303793850671669,
50.81979740675673
],
[
7.305121345900579,
50.8234303246292
],
[
7.296630530305391,
50.82248313319438
],
[
7.28314996984564,
50.82806317480935
],
[
7.288486165434747,
50.83419106925503
],
[
7.289283963186543,
50.843858694333065
],
[
7.299395041961212,
50.8552694450659
],
[
7.289810600078698,
50.862407819869205
],
[
7.27926236099566,
50.86143123153995
],
[
7.275824225655047,
50.86791931736017
],
[
7.28159395759392,
50.875239249652935
],
[
7.293631438292942,
50.87943580140051
],
[
7.304739448918386,
50.87957979855253
],
[
7.306581843678129,
50.88633092520841
],
[
7.299743008813436,
50.90066944000722
],
[
7.303434363552256,
50.90725535576976
]
]
]
}
}
]
}

View File

@ -0,0 +1,158 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"\u00a9 GeoBasis-DE \/ BKG 2013 (Daten ver\u00e4ndert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id":"11",
"color":"#8bc34a"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
7.051627632196581,
50.84925413338691
],
[
7.057926072816302,
50.84912583576175
],
[
7.061270096198355,
50.84417398212247
],
[
7.062354846414035,
50.82963003266808
],
[
7.090617567690088,
50.83327427826498
],
[
7.100675564261434,
50.820004608657925
],
[
7.084984905791411,
50.817192816947404
],
[
7.086368754434594,
50.809955697355925
],
[
7.09456068291731,
50.80485527276785
],
[
7.085387281666537,
50.798721772792106
],
[
7.08887013322298,
50.79638333348472
],
[
7.084119293523362,
50.793532263101135
],
[
7.088912428844838,
50.78979127532057
],
[
7.078509482084868,
50.785359334500484
],
[
7.082976447791324,
50.777537680019456
],
[
7.075575319350539,
50.76748321020391
],
[
7.035915787927577,
50.78549030279549
],
[
7.030164643196852,
50.793751275583446
],
[
7.029696150651235,
50.810039064523906
],
[
7.024995452271911,
50.81827754665219
],
[
7.012774650829347,
50.823516239761375
],
[
6.988511318124263,
50.82673104635717
],
[
6.979741973678567,
50.83401566224452
],
[
6.984081152791151,
50.844128602798556
],
[
6.987075659526433,
50.8392201991631
],
[
6.998204337603468,
50.83614264401872
],
[
7.011766927380783,
50.83993873402836
],
[
7.013401660204016,
50.83801450870805
],
[
7.023335571815643,
50.839256349293734
],
[
7.027095184479434,
50.84700036998108
],
[
7.033119510196793,
50.846730108669924
],
[
7.032549711669224,
50.848838864906156
],
[
7.051627632196581,
50.84925413338691
]
]
]
}
}
]
}

View File

@ -0,0 +1,254 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"\u00a9 GeoBasis-DE \/ BKG 2013 (Daten ver\u00e4ndert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id":"12",
"color":"#00bcd4"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
7.018918052152416,
50.66652115986528
],
[
6.992756610941499,
50.6495073216453
],
[
7.0011339002272,
50.6443475761548
],
[
7.014095253850654,
50.642082035036275
],
[
6.987157852965328,
50.63013248653379
],
[
6.988461084649442,
50.62560512285415
],
[
7.000028221381486,
50.620686641314194
],
[
7.008061199946837,
50.61115651836055
],
[
7.006551043257339,
50.607907674275225
],
[
6.997189379538712,
50.596719190226686
],
[
6.956317640416278,
50.577015858078624
],
[
6.957829219473759,
50.57323222521432
],
[
6.983515147382838,
50.571074000834464
],
[
6.983576971721074,
50.56573420622005
],
[
6.976577608174789,
50.56282380799722
],
[
6.976104596681484,
50.55777571569976
],
[
6.960440820664792,
50.556223553257134
],
[
6.947315423271744,
50.5636682683991
],
[
6.927901086851827,
50.55861862427332
],
[
6.921798146041551,
50.56612249765864
],
[
6.934746954787824,
50.57103652518883
],
[
6.927039603450465,
50.57527517149176
],
[
6.927208677720539,
50.57843328577509
],
[
6.917114567385822,
50.57815632236784
],
[
6.919247042293335,
50.57210590301573
],
[
6.914625951150856,
50.57112461243836
],
[
6.913208193598393,
50.5778097486131
],
[
6.909327186526462,
50.57860788842512
],
[
6.899332353424194,
50.57042309058513
],
[
6.896881843985692,
50.57450846436384
],
[
6.891174068128942,
50.57533000681453
],
[
6.891320542493101,
50.587369863995356
],
[
6.887480953489432,
50.58834877046226
],
[
6.884192141029039,
50.59940728802615
],
[
6.898406893437475,
50.60413065165014
],
[
6.908767557059572,
50.60230041208507
],
[
6.91377929183279,
50.605978456559455
],
[
6.904795319551288,
50.60849163531892
],
[
6.915439233935653,
50.62933079778513
],
[
6.898502445556818,
50.63571167334177
],
[
6.899998702717041,
50.64180717317698
],
[
6.905795427206003,
50.64421856426005
],
[
6.898375200093015,
50.65066705195579
],
[
6.911176414426366,
50.661650080164684
],
[
6.922494638619264,
50.660613659012824
],
[
6.923799600384821,
50.65689760260098
],
[
6.93388081612744,
50.65552455928771
],
[
6.93743282539648,
50.66190378416156
],
[
6.962573844852167,
50.65723504804175
],
[
6.965507089518519,
50.66004519897349
],
[
6.976748920261315,
50.65398376458053
],
[
6.988488631120365,
50.662745382903466
],
[
6.982646611691348,
50.668242744972254
],
[
6.984932755689483,
50.67044714457948
],
[
6.996749427429424,
50.6733460039899
],
[
7.010309779514896,
50.671711312273395
],
[
7.018918052152416,
50.66652115986528
]
]
]
}
}
]
}

View File

@ -0,0 +1,214 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"\u00a9 GeoBasis-DE \/ BKG 2013 (Daten ver\u00e4ndert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id":"13",
"color":"#009688"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
7.462246567416919,
50.878726669051375
],
[
7.490877633180306,
50.87422195350074
],
[
7.506198195636633,
50.85975065152975
],
[
7.504372791137341,
50.852526593649316
],
[
7.512558128448573,
50.853989204110086
],
[
7.518308731546449,
50.851939836028336
],
[
7.52924817286363,
50.84213482841392
],
[
7.528921790556902,
50.83343676521588
],
[
7.502065729411038,
50.82806345794377
],
[
7.473714072040115,
50.81757486511265
],
[
7.463482836864802,
50.81817200460106
],
[
7.457259553825356,
50.81399259682418
],
[
7.440725549951226,
50.81317047063385
],
[
7.399328894519925,
50.80193097858689
],
[
7.39201705895656,
50.79906057749747
],
[
7.392492306820071,
50.79236414769722
],
[
7.38185278188053,
50.78829611135124
],
[
7.381424820034707,
50.777711958507574
],
[
7.376838004764001,
50.78087552295886
],
[
7.369203128348476,
50.77949880496719
],
[
7.367731073696625,
50.79188693581975
],
[
7.371423293103076,
50.793184389315286
],
[
7.363189793034723,
50.804255121498386
],
[
7.340800175257225,
50.79574918918861
],
[
7.337817589192693,
50.808285114677304
],
[
7.34831047108749,
50.81243423282748
],
[
7.347470655847153,
50.81622987669719
],
[
7.355723220960213,
50.81675106120364
],
[
7.35605768313278,
50.82190242214491
],
[
7.36505496800773,
50.828269794130414
],
[
7.361831946844559,
50.83030801920326
],
[
7.367813293046154,
50.83144225119181
],
[
7.376101699640399,
50.845453346714876
],
[
7.391131796210546,
50.84765800444239
],
[
7.411584716890175,
50.84619576935323
],
[
7.413351670978029,
50.84228937339726
],
[
7.417296472509351,
50.84221410721538
],
[
7.420583036559062,
50.84628174981604
],
[
7.430614153295672,
50.847961281513896
],
[
7.430272218715795,
50.85120317774715
],
[
7.437657369633509,
50.84922794603284
],
[
7.442854689876239,
50.854560999182645
],
[
7.438630322831201,
50.867084144848434
],
[
7.44730312874024,
50.86763664500249
],
[
7.453048568848511,
50.87399214394727
],
[
7.460946662405227,
50.87444221431993
],
[
7.462246567416919,
50.878726669051375
]
]
]
}
}
]
}

View File

@ -0,0 +1,126 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"\u00a9 GeoBasis-DE \/ BKG 2013 (Daten ver\u00e4ndert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id": "15",
"color":"#2196f3"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
7.2934262804234,
50.825447677302
],
[
7.2966305303054,
50.822483133194
],
[
7.3051213459006,
50.823430324629
],
[
7.3026320352968,
50.820281700237
],
[
7.3094435752974,
50.819238045613
],
[
7.279555096598,
50.801719440486
],
[
7.2779885906592,
50.790057928837
],
[
7.2656226971162,
50.79708070131
],
[
7.2576868580311,
50.796967126111
],
[
7.2447831536842,
50.790670355488
],
[
7.2319213358412,
50.791722493888
],
[
7.2203382284423,
50.779650886715
],
[
7.200367726022,
50.789639804685
],
[
7.1898614573067,
50.791321744524
],
[
7.1750122952692,
50.80047998115
],
[
7.1825434587297,
50.810873288346
],
[
7.1924410019182,
50.815425138322
],
[
7.1947524866919,
50.823614051547
],
[
7.2213125089663,
50.813443835865
],
[
7.2493617275127,
50.813017492978
],
[
7.2567875284367,
50.819071622229
],
[
7.2694130315617,
50.820899796051
],
[
7.2680540994841,
50.822861327845
],
[
7.2831499698456,
50.828063174809
],
[
7.2934262804234,
50.825447677302
]
]
]
}
}
]
}

View File

@ -0,0 +1,126 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"\u00a9 GeoBasis-DE \/ BKG 2013 (Daten ver\u00e4ndert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id":"14",
"color":"#4caf50"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
7.180251270856724,
50.79796410613954
],
[
7.189861457306718,
50.791321744524055
],
[
7.200367726022041,
50.7896398046852
],
[
7.220338228442328,
50.77965088671494
],
[
7.231921335841183,
50.791722493887995
],
[
7.242500016308063,
50.79060622272115
],
[
7.245320384702853,
50.78379556066008
],
[
7.24205163668085,
50.76106163560774
],
[
7.23077514521109,
50.75764574954088
],
[
7.229644730919691,
50.75331775359523
],
[
7.239305422057518,
50.744719893472336
],
[
7.220559293135089,
50.7444236238164
],
[
7.207041656483143,
50.73945568841583
],
[
7.198575927383396,
50.7475638018129
],
[
7.194960773577625,
50.74376603541352
],
[
7.18258567762452,
50.75173376635224
],
[
7.162994368356174,
50.75637051875951
],
[
7.156681239926158,
50.753918746788344
],
[
7.139730062814289,
50.76905795687381
],
[
7.125265297984769,
50.774435466448885
],
[
7.131201084192273,
50.7834980986866
],
[
7.143910406367107,
50.787334472805405
],
[
7.147213792937443,
50.795725439109
],
[
7.175012295269184,
50.80047998115016
],
[
7.180251270856724,
50.79796410613954
]
]
]
}
}
]
}

View File

@ -0,0 +1,226 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"© GeoBasis-DE / BKG 2013 (Daten verändert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id":"17",
"color":"#9E2A2B"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
6.919439314441298,
50.731702360090715
],
[
6.938909355620514,
50.73212275663494
],
[
6.941506577357909,
50.73026587374726
],
[
6.937356119870455,
50.72737271297492
],
[
6.961049075519357,
50.71895601865106
],
[
6.95823661893979,
50.714429366649135
],
[
6.963707915466751,
50.70864579244295
],
[
6.965287000618864,
50.71069943161587
],
[
6.96829675358706,
50.6960542859128
],
[
6.977802201472648,
50.697515128184975
],
[
6.982651042889373,
50.692645264079566
],
[
6.985821446171495,
50.69366943798533
],
[
6.996749427429424,
50.6733460039899
],
[
6.982646611691348,
50.668242744972254
],
[
6.988488631120365,
50.662745382903466
],
[
6.976748920261315,
50.65398376458053
],
[
6.965507089518519,
50.66004519897349
],
[
6.962573844852167,
50.65723504804175
],
[
6.93743282539648,
50.66190378416156
],
[
6.93388081612744,
50.65552455928771
],
[
6.923799600384821,
50.65689760260098
],
[
6.922494638619264,
50.660613659012824
],
[
6.911176414426366,
50.661650080164684
],
[
6.898375200093015,
50.65066705195579
],
[
6.905795427206003,
50.64421856426005
],
[
6.899998702717041,
50.64180717317698
],
[
6.898502445556818,
50.63571167334177
],
[
6.878987814669077,
50.63663850316092
],
[
6.870947235605898,
50.6407643644878
],
[
6.87204450984597,
50.64724895202189
],
[
6.863325938905262,
50.65149721053035
],
[
6.859693928820747,
50.65046397606272
],
[
6.85704602896242,
50.65407407831873
],
[
6.863471403397596,
50.655816911453975
],
[
6.861069532332037,
50.660452820747395
],
[
6.865668902163406,
50.66090382212866
],
[
6.866754488983585,
50.669721323091174
],
[
6.874967603625574,
50.67275377545006
],
[
6.871261819449435,
50.68012363610298
],
[
6.876190499809886,
50.69042180005227
],
[
6.854292878795828,
50.69188669945004
],
[
6.863265049356723,
50.70451094095119
],
[
6.857879071603962,
50.70753957663296
],
[
6.892649887518968,
50.71416004111826
],
[
6.898970529320885,
50.71793323066608
],
[
6.894898346543534,
50.72196833229568
],
[
6.900822955364486,
50.72831444757877
],
[
6.907003975521488,
50.72803803549329
],
[
6.915831923661663,
50.73413106214199
],
[
6.919439314441298,
50.731702360090715
]
]
]
}
}
]
}

View File

@ -0,0 +1,146 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"\u00a9 GeoBasis-DE \/ BKG 2013 (Daten ver\u00e4ndert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id":"18",
"color":"#ff9800"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
7.185665241668919,
50.87445059285362
],
[
7.209624086372428,
50.859544098033915
],
[
7.213396412215248,
50.85347427025695
],
[
7.202849774405916,
50.84570442313858
],
[
7.19132176293663,
50.82921179307591
],
[
7.194752486691901,
50.82361405154672
],
[
7.191567832154012,
50.81450857587173
],
[
7.182543458729692,
50.81087328834576
],
[
7.175012295269184,
50.80047998115016
],
[
7.146208953295146,
50.79527305002401
],
[
7.143910406367107,
50.787334472805405
],
[
7.131201084192273,
50.7834980986866
],
[
7.125265297984769,
50.774435466448885
],
[
7.111600274936293,
50.77072207725781
],
[
7.105116089568329,
50.76263299652406
],
[
7.096009165832547,
50.76190639999705
],
[
7.076943661753612,
50.76857750200691
],
[
7.082976447791324,
50.777537680019456
],
[
7.078509482084868,
50.785359334500484
],
[
7.088912428844838,
50.78979127532057
],
[
7.084119293523362,
50.793532263101135
],
[
7.08887013322298,
50.79638333348472
],
[
7.085387281666537,
50.798721772792106
],
[
7.09456068291731,
50.80485527276785
],
[
7.086368754434594,
50.809955697355925
],
[
7.084984905791411,
50.817192816947404
],
[
7.100675564261434,
50.820004608657925
],
[
7.090617567690088,
50.83327427826498
],
[
7.137641813901699,
50.85803312105547
],
[
7.185665241668919,
50.87445059285362
]
]
]
}
}
]
}

View File

@ -0,0 +1,138 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"\u00a9 GeoBasis-DE \/ BKG 2013 (Daten ver\u00e4ndert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id":"21",
"color":"#ff5722"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
7.125599963976668,
50.65115651977844
],
[
7.128048493073197,
50.64726487495967
],
[
7.156430690284973,
50.65468256279831
],
[
7.184027571925204,
50.651127300728156
],
[
7.195200521214145,
50.64272321032323
],
[
7.189838907797947,
50.62389544364724
],
[
7.173981968717001,
50.618909518667
],
[
7.173019848639377,
50.61255228387663
],
[
7.154717366986707,
50.61470533746364
],
[
7.149216780537222,
50.609483967570895
],
[
7.147851587133212,
50.600293280365086
],
[
7.135429964682132,
50.602169056696994
],
[
7.119386718944817,
50.6123074126252
],
[
7.115121105360966,
50.61178614459459
],
[
7.104723509323127,
50.59239465255774
],
[
7.093399822826473,
50.586035158910484
],
[
7.069025677549422,
50.59274423432447
],
[
7.066347430470023,
50.600699207917046
],
[
7.059252758802113,
50.60037088156727
],
[
7.056131464348486,
50.60624075925606
],
[
7.043162529312359,
50.60245735572736
],
[
7.03794917384514,
50.605390737576954
],
[
7.042523429371555,
50.616652133215545
],
[
7.064222163633812,
50.624424590906244
],
[
7.064028160374225,
50.632264289164695
],
[
7.105341569450315,
50.659692359928265
],
[
7.120594305251571,
50.65670275248725
],
[
7.125599963976668,
50.65115651977844
]
]
]
}
}
]
}

View File

@ -0,0 +1,282 @@
{
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"source":"© GeoBasis-DE / BKG 2013 (Daten verändert)",
"features":[
{
"type":"Feature",
"properties":{
"community_id":"22",
"color":"#00684A"
},
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
7.576384365813825,
50.841611789471585
],
[
7.582382981814392,
50.833946722941086
],
[
7.595505926739953,
50.82872909599124
],
[
7.599522854878789,
50.82769500056437
],
[
7.599496186218758,
50.831773390215005
],
[
7.603341031282098,
50.83236467522902
],
[
7.619144082347761,
50.828129773687955
],
[
7.615241917843387,
50.82502533731497
],
[
7.620441014970734,
50.820265070245206
],
[
7.625826037485104,
50.825369039409544
],
[
7.635448682483513,
50.827269684384085
],
[
7.639391885897445,
50.83387122570346
],
[
7.647391655139963,
50.83488753015798
],
[
7.645189404650778,
50.83207805705123
],
[
7.660063194519656,
50.823663856502314
],
[
7.664109173067756,
50.81535286028657
],
[
7.679510539182871,
50.81004670587801
],
[
7.67499134458191,
50.806533145851034
],
[
7.682222418599937,
50.795368529370954
],
[
7.677830079445286,
50.7817326959084
],
[
7.675944870216716,
50.77932768469345
],
[
7.668455510173667,
50.78618629252221
],
[
7.660013497998004,
50.78556560272455
],
[
7.662161360059336,
50.77315629604618
],
[
7.655450742486003,
50.76786954395592
],
[
7.645393592113547,
50.77088137756525
],
[
7.618168809410952,
50.77017082780352
],
[
7.59985087094254,
50.76584191018413
],
[
7.591505261381609,
50.755781698964036
],
[
7.595297177492973,
50.750969326551875
],
[
7.593785002738923,
50.74175570724325
],
[
7.583311314847943,
50.7379085687264
],
[
7.551900377325675,
50.74634314496176
],
[
7.534598055601347,
50.74033644679008
],
[
7.531893419111552,
50.74715591898292
],
[
7.525980471887592,
50.74862514080449
],
[
7.523826819053987,
50.74389625840765
],
[
7.516593783950781,
50.7431518637246
],
[
7.51603124660268,
50.749953515711816
],
[
7.509453000944666,
50.75778996465266
],
[
7.50480274931166,
50.7574717260293
],
[
7.499811111489344,
50.76731117387159
],
[
7.503622750168937,
50.772074406529576
],
[
7.486912666520276,
50.7803491135906
],
[
7.483722844071639,
50.785741272829085
],
[
7.489179273915806,
50.79492507634108
],
[
7.485021121217464,
50.79641009643748
],
[
7.486929574095262,
50.79985463083089
],
[
7.47565105978827,
50.80285691596022
],
[
7.477202641480407,
50.80631932897654
],
[
7.472848666383967,
50.804431745514286
],
[
7.473888645225758,
50.81007811402708
],
[
7.468525257689449,
50.81168506510916
],
[
7.473849320467743,
50.81352606795262
],
[
7.473714072040115,
50.81757486511265
],
[
7.502065729411038,
50.82806345794377
],
[
7.528921790556902,
50.83343676521588
],
[
7.528895342347377,
50.83140098449265
],
[
7.539924321458752,
50.833042572257824
],
[
7.548374655498387,
50.830736472670026
],
[
7.555501552119769,
50.83562701908395
],
[
7.564735524709164,
50.83644624088031
],
[
7.562114266216028,
50.84102634797037
],
[
7.576384365813825,
50.841611789471585
]
]
]
}
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
webroot/images/ccbyncsa.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

83
webroot/index.php Normal file
View File

@ -0,0 +1,83 @@
<?php
/**
* @author Leo Maroni, Caspar Armster
* @copyright 2017 Leo Maroni, Caspar Armster, Freifunk Hennef/Freie Netzwerker e.V. (www.freifunk-hennef.de / www.freie-netzwerker.de)
* @license Licensed under GPLv3
*/
error_reporting (E_ALL ^ E_NOTICE);
require_once('community-config.inc.php');
require_once('config.inc.php');
if (count($community) == 1) {
header('Location: firmware.php?id=0');
exit;
}
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Freifunk Rhein-Sieg Firmware Downloader</title>
<meta name="author" content="Leo Maroni, Caspar Armster" />
<link rel="stylesheet" href="https://cdn.labcode.de/libs/materialize/0.100.2/css/materialize.min.css" integrity="sha256-e22BQKCF7bb/h/4MFJ1a4lTRR2OuAe8Hxa/3tgU5Taw=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdn.labcode.de/libs/leaflet/1.0.3/leaflet.css" integrity="sha256-bOWY8F32FGGbNDMPAnwWl/Lv9CKen4IQsNZ4RU9rcs0=" crossorigin="anonymous"/>
<link rel="stylesheet" href="css/index.css">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="icon" href="favicon.ico" type="image/x-icon">
<script>
function selectChangeCommunity(x) {
var id = $(x).find('option:selected').attr("id")
location.href = 'subauswahl.php?id=' + id
}
</script>
</head>
<body>
<div class="container z-depth-3" id="outer-container">
<div id="inner-container">
<header class="center">
<h3 class="thin">Freifunk Rhein-Sieg Firmware Downloader</h3>
</header>
<div class="row">
<h5>W&auml;hle von der Karte: </h5>
<div id="map"></div>
</div>
<div class="row">
<h5>oder :</h5>
<div class="input-field col s12">
<select onchange="selectChangeCommunity(this)">
<option disabled selected value=""><?php echo $texte["ebene1_text"]?></option>
<?php $lastName = "" ?>
<?php foreach (array_slice($community, 0) as $i => $value): ?>
<?php if ($value['name'] != $lastName and $value['show']): ?>
<option id="<?php echo $value['community_id'] ?>" value="<?php echo $value['name']?>"><?php echo $value['name']?></option>
<?php endif ?>
<?php $lastName = $value['name'] ?>
<?php endforeach ?>
</select>
</div>
</div>
</div>
<footer class="page-footer">
<div class="footer-copyright">
<div class="container">
© 2017 <a class="grey-text text-lighten-4" href="https://labcode.de">Leo Maroni</a>, Caspar Armster / Licensed under GPLv3. Dies ist ein Community-Projekt von Freifunk Siegburg und Freifunk Troisdorf. Alle Firmwares sind Eigenentwicklungen der jeweiligen Communities.
<a href="http://www.freifunk-siegburg.de/impressum/" class="grey-text text-lighten-4">Impressum</a>
</div>
</div>
</footer>
</div>
<script src="https://cdn.labcode.de/libs/jquery/3.3.1/jquery.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script src="https://cdn.labcode.de/libs/leaflet/1.0.3/leaflet.js" integrity="sha256-GXUdrV9FHGDyzoSGD3O+jR3eYZaZZsjbsMvFhK3C0qg=" crossorigin="anonymous"></script>
<script src="https://cdn.labcode.de/libs/materialize/0.100.2/js/materialize.min.js" integrity="sha256-uWtSXRErwH9kdJTIr1swfHFJn/d/WQ6s72gELOHXQGM=" crossorigin="anonymous"></script><script>
var communityiesGeoJson = []
<?php foreach (array_slice($community, 0) as $i => $value):?>
communityiesGeoJson.push({"geojson": "<?php echo $value['geojson'] ?>", "name": "<?php echo $value['name'] ?>"})
<?php endforeach ?>
</script>
<script src="js/comunitychoose.js"></script>
</body>
</html>

View File

@ -0,0 +1,35 @@
$(document).ready(function() {
$('select').material_select();
var mapChangeCommunity = function (event) {
var communityid = event.layer.feature.properties.community_id
location.href = 'subauswahl.php?id=' + communityid
}
var map = L.map('map').setView([50.75600670286445, 7.390810699462891], 9.5)
L.tileLayer('https://{s}.basemaps.cartocdn.com/{style}/{z}/{x}/{y}.png', {
attribution: 'Map data &copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap-Mitwirkende</a>, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="https://carto.com/location-data-services/basemaps">Carto</a>',
maxZoom: 18,
style: 'light_all'
}).addTo(map);
communityiesGeoJson.forEach(function (i) {
$.getJSON( i.geojson, function( data ) {
var community = L.geoJSON(data, {
style: {
fillColor: data.features[0].properties.color,
fillOpacity: 0.25,
color: data.features[0].properties.color,
opacity: 1,
weight: 2
}
}).addTo(map)
community.on('click', mapChangeCommunity);
community.bindPopup(i.name)
community.on('mouseover', function (e) {
this.openPopup();
});
community.on('mouseout', function (e) {
this.closePopup();
});
})
})
});

198
webroot/js/firmware.js Normal file
View File

@ -0,0 +1,198 @@
function change (origin, select) {
if (origin === 'hersteller') {
$('#img_router_front').attr("src", "router_images/keinbild.jpg")
$('#img_router_back').attr("src", "router_images/keinbild.jpg")
$('#version')
.attr('disabled', '')
.material_select()
$('#erstinstallation')
.attr('disabled', '')
.material_select()
$('#entwicklungsstadium')
.attr('disabled', '')
.material_select()
var modelle = []
for (var i = 0; i < anzahl_hersteller; i++) {
if ($(select).find('option:selected').html() === herstellername[i]) {
var j = 0
while (j < router_json.length) {
if (router_json[j].hersteller === herstellername[i]) {
modelle[j] = router_json[j].modell
if (j < router_json.length - 1) {
while (router_json[j].modell === router_json[j + 1].modell) {
if (j < router_json.length - 1) {
j++
} else {
break
}
}
}
}
j++
}
}
}
$('#modell').html("<option disabled selected value=''>Modell auswählen</option>")
for (var modell in modelle) {
var newOption = document.createElement('option')
newOption.value = modelle[modell]
newOption.innerHTML = modelle[modell]
$('#modell').append(newOption)
}
$('#modell')
.removeAttr('disabled')
.material_select()
}
else if (origin === "modell") {
$('#img_router_front').attr("src", "router_images/keinbild.jpg")
$('#img_router_back').attr("src", "router_images/keinbild.jpg")
$('#erstinstallation')
.attr('disabled', '')
.material_select()
$('#entwicklungsstadium')
.attr('disabled', '')
.material_select()
var versionen = []
var i = 0
while (i < router_json.length) {
if (router_json[i].modell == $(select).val()) {
versionen[i] = i + '|' + router_json[i].version
if (i < router_json.length - 1) {
while (router_json[i].modell == router_json[i + 1].modell) {
if (i < router_json.length - 1) {
i++
versionen[i] = i + '|' + router_json[i].version
} else {
break
}
}
}
}
i++
}
$('#version').html("<option disabled selected value=''>Modell auswählen</option>")
for (var version in versionen) {
var pair = versionen[version].split('|')
var newOption = document.createElement('option')
newOption.value = pair[0]
newOption.innerHTML = pair[1]
$('#version').append(newOption)
}
$('#version')
.removeAttr('disabled')
.material_select();
}
else if(origin === 'version') {
var id = $('#version').val()
$('#entwicklungsstadium')
.attr('disabled', '')
.material_select()
$('#erstinstallation').html("<option disabled selected value=''>Firmware Erstinstallation?</option>")
if(router_json[id].stablefactory === 1) {
$('#erstinstallation').append('<option value="' + $(select).val() + 'J">Ja</option>');
}
if(router_json[id].stablesysupgrade === 1) {
$('#erstinstallation').append('<option value="' + $(select).val() + 'N">Nein</option>');
}
$('#erstinstallation').removeAttr('disabled')
$('#erstinstallation').material_select()
$('#img_router_front').attr("src", router_json[$(select).val()].imagefront)
$('#img_router_back').attr("src", router_json[$(select).val()].imageback)
}
else if (origin === 'erstinstallation') {
var erstinstallation;
if($('#erstinstallation').val().lastIndexOf('N') < 0) {
erstinstallation = true;
} else if($('#erstinstallation').val().lastIndexOf('Y') < 0) {
erstinstallation = false;
}
var stadium = $('#entwicklungsstadium')
stadium.html("<option disabled value=''>Firmware Entwicklungsstadium?</option>")
var id = $('#version').val()
if(erstinstallation) {
if (router_json[id].stablefactory === 1) {
stadium.append("<option selected value='" + $(select).val() +"stable'>Stabil &#040;empfohlen&#041;</option>")
}
if (router_json[id].betafactory === 1) {
stadium.append("<option value='" + $(select).val() +"beta'>Beta</option>")
}
if (router_json[id].experimentalfactory === 1) {
stadium.append("<option value='" + $(select).val() +"exp'>Experimental</option>")
}
if (router_json[id].brokenfactory === 1) {
stadium.append("<option value='" + $(select).val() +"broken'>Fehlerhaft</option>")
}
} else if (!erstinstallation) {
if (router_json[id].stablesysupgrade === 1) {
stadium.append("<option selected value='" + $(select).val() +"stable'>Stabil &#040;empfohlen&#041;</option>")
}
if (router_json[id].betasysupgrade === 1) {
stadium.append("<option value='" + $(select).val() +"beta'>Beta</option>")
}
if (router_json[id].experimentalsysupgrade === 1) {
stadium.append("<option value='" + $(select).val() +"exp'>Experimental</option>")
}
if (router_json[id].brokensysupgrade === 1) {
stadium.append("<option value='" + $(select).val() +"broken'>Fehlerhaft</option>")
}
}
stadium.removeAttr('disabled')
stadium.material_select()
}
else if (origin === 'entwicklungsstadium') {
var id = 0
var link = '#'
var linkclass = ''
if ($(select).val().lastIndexOf('Jbeta') != -1) {
console.log('xxx')
id = parseInt($(select).val().slice(0, $(select).val().length - 4))
link = router_json[id].betafactorylink
linkclass = 'btn-warning'
}
if ($(select).val().lastIndexOf('Jbroken') != -1) {
id = parseInt($(select).val().slice(0, $(select).val().length - 6))
link = router_json[id].brokenfactorylink
linkclass = 'btn-danger'
}
if ($(select).val().lastIndexOf('Jexp') != -1) {
id = parseInt($(select).val().slice(0, $(select).val().length - 3))
link = router_json[id].experimentalfactorylink
linkclass = 'btn-warning'
}
if ($(select).val().lastIndexOf('Jstable') != -1) {
console.log("xxxx")
id = parseInt($(select).val().slice(0, $(select).val().length - 6))
link = router_json[id].stablefactorylink
linkclass = 'btn-success'
}
if ($(select).val().lastIndexOf('Nbeta') != -1) {
id = parseInt($(select).val().slice(0, $(select).val().length - 4))
link = router_json[id].betasysupgradelink
linkclass = 'btn-warning'
}
if ($(select).val().lastIndexOf('Nbroken') != -1) {
id = parseInt($(select).val().slice(0, $(select).val().length - 6))
link = router_json[id].brokensysupgradelink
linkclass = 'btn-danger'
}
if ($(select).val().lastIndexOf('Nexp') != -1) {
id = parseInt($(select).val().slice(0, $(select).val().length - 3))
link = router_json[id].experimentalsysupgradelink
linkclass = 'btn-warning'
}
if ($(select).val().lastIndexOf('Nstable') != -1) {
id = parseInt($(select).val().slice(0, $(select).val().length - 6))
link = router_json[id].stablesysupgradelink
linkclass = 'btn-success'
}
$('#download').attr("href", link)
$('#download').removeAttr('disabled')
}
else if (origin === "stadtteil") {
location.href = "firmware.php?id=" + $(select).val()
}
}
$(function () {
$('select').material_select();
})

13
webroot/link.php Normal file
View File

@ -0,0 +1,13 @@
<?php
/**
* @author Leo Maroni
* @copyright 2017 Leo Maroni
* @license Licensed under GPLv3
*/
require_once('community-config.inc.php');
$community_shortlink = $_REQUEST['name'];
foreach ($community as $item) {
if ($community_shortlink == $item['shortlinkname']) {
header("Location: subauswahl.php?id=" . $item['community_id']);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Some files were not shown because too many files have changed in this diff Show More