Browse Source

Merge pull request 'Ajout intermédiaire' (#1) from poi-dev into master

Reviewed-on: #1
master
Léo Serre 5 months ago
parent
commit
5715280b87
62 changed files with 2987 additions and 1350 deletions
  1. +2
    -0
      .gitignore
  2. +0
    -0
      _ressources/db_model.dbm
  3. +3
    -6
      _ressources/sql_skeleton.sql
  4. +1
    -1
      controllers/d.admin.php
  5. +152
    -0
      controllers/d.poi.php
  6. +6
    -2
      includes/routes.php
  7. +0
    -0
      models/d.locales.php
  8. +183
    -0
      models/d.poi.php
  9. +1
    -0
      models/d.users.php
  10. +1
    -1
      models/d.wiki.php
  11. +5
    -5
      third/Md/Markdown.inc.php
  12. +858
    -565
      third/Md/Markdown.php
  13. +5
    -5
      third/Md/MarkdownExtra.inc.php
  14. +972
    -704
      third/Md/MarkdownExtra.php
  15. +5
    -5
      third/Md/MarkdownInterface.inc.php
  16. +32
    -28
      third/Md/MarkdownInterface.php
  17. +52
    -1
      views/css/d.index.css
  18. +19
    -19
      views/css/d.map.css
  19. +231
    -0
      views/css/d.poi.css
  20. +65
    -0
      views/d.community.html
  21. +1
    -1
      views/d.index.html
  22. +55
    -0
      views/d.poi.edit.html
  23. +29
    -0
      views/img/alpine_hut.svg
  24. +27
    -0
      views/img/basic_hut.svg
  25. +27
    -0
      views/img/bivouac.svg
  26. +110
    -0
      views/img/campsite.svg
  27. +30
    -0
      views/img/halt.svg
  28. +28
    -0
      views/img/wilderness_hut.svg
  29. +12
    -7
      views/js/d.map.js
  30. +75
    -0
      views/js/d.poi_map.js
  31. +0
    -0
      views/third/fontawesome-free-5.4.1-web/css/all.css
  32. +0
    -0
      views/third/fontawesome-free-5.4.1-web/css/all.min.css
  33. +0
    -0
      views/third/fontawesome-free-5.4.1-web/webfonts/fa-brands-400.eot
  34. +0
    -0
      views/third/fontawesome-free-5.4.1-web/webfonts/fa-brands-400.svg
  35. +0
    -0
      views/third/fontawesome-free-5.4.1-web/webfonts/fa-brands-400.ttf
  36. +0
    -0
      views/third/fontawesome-free-5.4.1-web/webfonts/fa-brands-400.woff
  37. +0
    -0
      views/third/fontawesome-free-5.4.1-web/webfonts/fa-brands-400.woff2
  38. +0
    -0
      views/third/fontawesome-free-5.4.1-web/webfonts/fa-regular-400.eot
  39. +0
    -0
      views/third/fontawesome-free-5.4.1-web/webfonts/fa-regular-400.svg
  40. +0
    -0
      views/third/fontawesome-free-5.4.1-web/webfonts/fa-regular-400.ttf
  41. +0
    -0
      views/third/fontawesome-free-5.4.1-web/webfonts/fa-regular-400.woff
  42. +0
    -0
      views/third/fontawesome-free-5.4.1-web/webfonts/fa-regular-400.woff2
  43. +0
    -0
      views/third/fontawesome-free-5.4.1-web/webfonts/fa-solid-900.eot
  44. +0
    -0
      views/third/fontawesome-free-5.4.1-web/webfonts/fa-solid-900.svg
  45. +0
    -0
      views/third/fontawesome-free-5.4.1-web/webfonts/fa-solid-900.ttf
  46. +0
    -0
      views/third/fontawesome-free-5.4.1-web/webfonts/fa-solid-900.woff
  47. +0
    -0
      views/third/fontawesome-free-5.4.1-web/webfonts/fa-solid-900.woff2
  48. +0
    -0
      views/third/jquery-3.3.1.min.js
  49. +0
    -0
      views/third/leaflet-easybutton/easy-button.css
  50. +0
    -0
      views/third/leaflet-easybutton/easy-button.js
  51. +0
    -0
      views/third/leaflet-fullscreen/Leaflet.fullscreen.js
  52. +0
    -0
      views/third/leaflet-fullscreen/Leaflet.fullscreen.min.js
  53. +0
    -0
      views/third/leaflet-fullscreen/fullscreen.png
  54. +0
    -0
      views/third/leaflet-fullscreen/fullscreen@2x.png
  55. +0
    -0
      views/third/leaflet-fullscreen/leaflet.fullscreen.css
  56. +0
    -0
      views/third/leaflet/images/layers-2x.png
  57. +0
    -0
      views/third/leaflet/images/layers.png
  58. +0
    -0
      views/third/leaflet/images/marker-icon-2x.png
  59. +0
    -0
      views/third/leaflet/images/marker-icon.png
  60. +0
    -0
      views/third/leaflet/images/marker-shadow.png
  61. +0
    -0
      views/third/leaflet/leaflet.css
  62. +0
    -0
      views/third/leaflet/leaflet.js

+ 2
- 0
.gitignore View File

@ -1,5 +1,7 @@
/includes/config.php
/medias/*
/_maps
_ressources/dump.sql
*.sublime-project
*.sublime-workspace
*.log

+ 0
- 0
_ressources/db_model.dbm View File


+ 3
- 6
_ressources/sql_skeleton.sql View File

@ -6,10 +6,7 @@
-- object: kabano | type: ROLE --
-- DROP ROLE IF EXISTS kabano;
CREATE ROLE kabano WITH
INHERIT
LOGIN
ENCRYPTED PASSWORD '********';
-- ddl-end --
@ -42,7 +39,7 @@ SET search_path TO pg_catalog,public,topology;
-- DROP EXTENSION IF EXISTS postgis CASCADE;
CREATE EXTENSION postgis
WITH SCHEMA public
VERSION '2.5.1';
VERSION '3.0.1';
-- ddl-end --
COMMENT ON EXTENSION postgis IS 'PostGIS geometry, geography, and raster spatial types and functions';
-- ddl-end --
@ -51,7 +48,7 @@ COMMENT ON EXTENSION postgis IS 'PostGIS geometry, geography, and raster spatial
-- DROP EXTENSION IF EXISTS postgis_topology CASCADE;
CREATE EXTENSION postgis_topology
WITH SCHEMA topology
VERSION '2.5.1';
VERSION '3.0.1';
-- ddl-end --
COMMENT ON EXTENSION postgis_topology IS 'PostGIS topology spatial types and functions';
-- ddl-end --


+ 1
- 1
controllers/d.admin.php View File

@ -34,7 +34,7 @@ if(isset($controller->splitted_url[1]) && $user->rankIsHigher("moderator")) {
}
chdir($config['logs_folder']);
exec("tail -n 200 ".$files_list[$filenb+2]." | tac", $output);
//exec("tail -n 200 ".$files_list[$filenb+2]." | tac", $output);
include ($config['views_folder']."d.admin.logs.html");
}


+ 152
- 0
controllers/d.poi.php View File

@ -0,0 +1,152 @@
<?
require_once($config['models_folder']."d.poi.php");
require_once($config['models_folder']."d.users.php");
$head['css'] = "d.index.css;d.poi.css";
$poi = new Kabano\Poi();
switch ($controller->splitted_url[1]) {
case "new":
if($user->rankIsHigher("registered")) {
if(isset($_POST['submit'])) {
$poi->name = $_POST['name'];
$poi->locale = $_POST['locale'];
$poi->poi_type = $_POST['poi_type'];
$poi->lat = $_POST['lat'];
$poi->lon = $_POST['lon'];
$poi->alt = $_POST['alt'];
$poi->author = $user->id;
if(!$blogArticle->checkPermalink($_POST['permalink'],1)) {
$blogArticle->permalink = $_POST['permalink'];
$blogArticle->insert();
header('Location: '.$config['rel_root_folder']."blog/".$blogArticle->permalink);
}
else {
$head['title'] = $blogArticle->name;
$error = "permalink";
}
}
else {
$head['title'] = "Nouvel hébergement";
}
$locales = new Kabano\Locales();
$locales->getAll();
$head['third'] = "leaflet/leaflet.js;leaflet-fullscreen/Leaflet.fullscreen.min.js;leaflet-easybutton/easy-button.js";
$head['css'] .= ";../third/leaflet/leaflet.css;../third/leaflet-fullscreen/leaflet.fullscreen.css;../third/leaflet-easybutton/easy-button.css";
$head['js'] = "d.poi_map.js";
$poi->lat = ""; $poi->lon = ""; $poi->alt = "";
$new = 1;
include ($config['views_folder']."d.poi.edit.html");
break;
}
else {
$notfound = 1;
}
default:
// // If the page exists
// if ($blogArticle->checkPermalink($controller->splitted_url[1],$user->rankIsHigher("premium"))) {
// if (isset($controller->splitted_url[2]) && $controller->splitted_url[2] == "delete" && $user->rankIsHigher("moderator")) {
// $blogArticle->delete();
// header('Location: '.$config['rel_root_folder']."blog/".$blogArticle->permalink);
// }
// else if (isset($controller->splitted_url[2]) && $controller->splitted_url[2] == "restore" && $user->rankIsHigher("moderator")) {
// $blogArticle->restore();
// header('Location: '.$config['rel_root_folder']."blog/".$blogArticle->permalink);
// }
// else if (isset($controller->splitted_url[2]) && $controller->splitted_url[2] == "edit" && $user->rankIsHigher("moderator")) {
// if(isset($_POST['submit'])) {
// $blogArticle->content = $_POST['content'];
// $blogArticle->locale = $_POST['locale'];
// $blogArticle->name = $_POST['name'];
// $blogArticle->is_commentable = isset($_POST['is_commentable'])?'t':'f';
// $blogArticle->author = $user->id;
// $blogArticle->update();
// header('Location: '.$config['rel_root_folder']."blog/".$blogArticle->permalink);
// }
// else {
// $locales = new Kabano\Locales();
// $locales->getAll();
// $head['title'] = $blogArticle->name;
// include ($config['views_folder']."d.blog.edit.html");
// }
// }
// else {
// // Manage history of an article
// if($user->rankIsHigher("premium")) {
// $blogHistory = new Kabano\BlogArticles();
// $blogHistory->getHistory($controller->splitted_url[1]);
// }
// if (isset($controller->splitted_url[2]) && is_numeric($controller->splitted_url[2]))
// $blogArticle->checkPermalink($controller->splitted_url[1],$user->rankIsHigher("premium"),$controller->splitted_url[2]);
// // Manage comment creation
// if (isset($controller->splitted_url[2]) && $controller->splitted_url[2]=="new_comment") {
// if (isset($_POST['submit']) && $user->rankIsHigher("registered")) {
// $blogComment = new Kabano\BlogComment();
// $blogComment->locale = $user->locale;
// $blogComment->author = $user->id;
// $blogComment->content = $blogArticle->content_id;
// $blogComment->comment = $_POST['comment'];
// $blogComment->insert();
// }
// }
// // Manage comment deletion
// if (isset($controller->splitted_url[2]) && $controller->splitted_url[2]=="delete_comment") {
// if (isset($controller->splitted_url[3]) && is_numeric($controller->splitted_url[3])) {
// $blogComment = new Kabano\BlogComment();
// if($blogComment->checkId($controller->splitted_url[3]))
// if ($user->rankIsHigher("moderator") || $user->id == $blogComment->author)
// $blogComment->delete();
// }
// }
// // Manage comment restoration
// if (isset($controller->splitted_url[2]) && $controller->splitted_url[2]=="restore_comment") {
// if (isset($controller->splitted_url[3]) && is_numeric($controller->splitted_url[3])) {
// $blogComment = new Kabano\BlogComment();
// if($blogComment->checkId($controller->splitted_url[3]))
// if ($user->rankIsHigher("moderator") || $user->id == $blogComment->author)
// $blogComment->restore();
// }
// }
// $blogArticle->md2html();
// // Manage comments
// if ($blogArticle->is_commentable == "t") {
// $blogArticles_comments = new Kabano\BlogComments();
// $blogArticles_comments->listComments($blogArticle->content_id, ($user->rankIsHigher("premium")));
// $i = 0;
// foreach ($blogArticles_comments->objs as $comment) {
// $comment->md2html();
// $comment->author_obj = new Kabano\User();
// $comment->author_obj->checkId($comment->author);
// }
// }
// $tempUser = new Kabano\User();
// $tempUser->checkId($blogArticle->author);
// $blogArticle->author_name = $tempUser->name;
// unset($tempUser);
// $head['title'] = $blogArticle->name;
// include ($config['views_folder']."d.blog.view.html");
// }
// }
// else {
// $notfound = 1;
// }
// break;
}
?>

+ 6
- 2
includes/routes.php View File

@ -20,12 +20,15 @@ $controller->prefix = "d.";
$notfound = 0;
$session = 1;
if($controller->splitted_url[0]=="") $controller->splitted_url[0]="index";
// Routing to the correct page from the correct link
switch ($controller->splitted_url[0])
{
case "index": case "" :
case "index":
case "community" :
$controller->name="";
$view->name="index";
$view->name=$controller->splitted_url[0];
break;
case "user" :
$controller->name="users";
@ -35,6 +38,7 @@ switch ($controller->splitted_url[0])
case "wiki" :
case "blog" :
case "map" :
case "poi" :
case "admin" :
$controller->name=$controller->splitted_url[0];
$view->name="";


+ 0
- 0
models/d.locales.php View File


+ 183
- 0
models/d.poi.php View File

@ -0,0 +1,183 @@
<?
namespace Kabano;
/**********************************************************
***********************************************************
**
** This class is to manage a poi object
**
***********************************************************
**********************************************************/
require_once($config['third_folder']."Md/MarkdownExtra.inc.php");
// This array is related to the defined SQL enum, do not touch.
$poi_types = array(
"basic_hut" => array("Abri sommaire", "Abri", "#ef2929", "basic_hut"),
"wilderness_hut" => array("Cabane non gardée", "Cabane", "#ef2929", "wilderness_hut"),
"alpine_hut" => array("Refuge gardé", "Refuge", "#ef2929", "alpine_hut"),
"halt" => array("Gîte d'étape", "Gîte", "#4e9a06", "halt"),
"bivouac" => array("Zone de bivouac", "Bivouac", "#ef2929", "bivouac"),
"campsite" => array("Camping", "Camping", "#4e9a06", "campsite")
);
class Poi
{
public $poi_id = NULL;
public $locale_id = NULL;
public $source_id = NULL;
public $version_id = NULL;
public $is_public = NULL;
public $permalink = NULL;
public $creation_date = NULL;
public $name = NULL;
public $position = NULL;
public $type = NULL;
public $locale = NULL;
public $source = NULL;
public $remote_source_id = NULL;
public $author = NULL;
public $version = NULL;
public $update_date = NULL;
public $is_archive = NULL;
public $alt_type = NULL;
public $is_destroyed = NULL;
public $alt_name = NULL;
public $alt_position = NULL;
public $parameters = NULL;
/*****
** Checks if a page at this URL exists and return the ID
*****/
public function checkPermalink($permalink, $withArchive=0, $elementNb=0) {
global $config;
$con = pg_connect("host=".$config['SQL_host']." dbname=".$config['SQL_db']." user=".$config['SQL_user']." password=".$config['SQL_pass'])
or die ("Could not connect to server\n");
$query = "SELECT poi_versions.id AS version_id, * FROM pois INNER JOIN poi_locales ON pois.id = poi_locales.poi_id INNER JOIN poi_sources ON poi_locales.id = poi_sources.locale_id INNER JOIN poi_versions ON poi_sources.id = poi_versions.source_id WHERE permalink=$1";
if($withArchive==0) {
$query .= " AND is_archive=FALSE AND is_public=TRUE";
}
$query .= " ORDER BY update_date DESC LIMIT 1 OFFSET $2";
pg_prepare($con, "prepare1", $query)
or die ("Cannot prepare statement\n");
$result = pg_execute($con, "prepare1", array($permalink, $elementNb))
or die ("Cannot execute statement\n");
pg_close($con);
if(pg_num_rows($result) == 1) {
$row = pg_fetch_assoc($result);
$this->populate($row);
return 1;
}
else {
return 0;
}
}
/*****
** Populate the object using its ID
*****/
public function populate($row) {
$this->$poi_id = $row['poi_id'];
$this->$locale_id = $row['locale_id'];
$this->$source_id = $row['source_id'];
$this->$version_id = $row['version_id'];
$this->$is_public = $row['is_public'];
$this->$permalink = $row['permalink'];
$this->$creation_date = $row['creation_date'];
$this->$name = $row['name'];
$this->$position = $row['position'];
$this->$type = $row['type'];
$this->$locale = $row['locale'];
$this->$source = $row['source'];
$this->$remote_source_id = $row['remote_source_id'];
$this->$author = $row['author'];
$this->$version = $row['version'];
$this->$update_date = $row['update_date'];
$this->$is_archive = $row['is_archive'];
$this->$alt_type = $row['alt_type'];
$this->$is_destroyed = $row['is_destroyed'];
$this->$alt_name = $row['alt_name'];
$this->$alt_position = $row['alt_position'];
$this->$parameters = $row['parameters'];
}
/*****
** Create a new poi, all field required except alt_*, *_id
*****/
public function insert() {
global $config;
global $user;
$con = pg_connect("host=".$config['SQL_host']." dbname=".$config['SQL_db']." user=".$config['SQL_user']." password=".$config['SQL_pass'])
or die ("Could not connect to server\n");
// Because it is the first insert.
$this->alt_type = $this->type;
$this->alt_name = $this->name;
$this->alt_position = $this->position;
$query = "INSERT INTO pois (is_public, permalink, creation_date, name, position, type) VALUES
(TRUE, $1, $2, $3, $4, $5) RETURNING id";
pg_prepare($con, "prepare1", $query)
or die ("Cannot prepare statement\n");
$result = pg_execute($con, "prepare1", array($this->permalink, date('r'), $this->name, $this->position, $this->type))
or die ("Cannot execute statement\n");
$this->poi_id = pg_fetch_assoc($result)['id'];
$query = "INSERT INTO poi_locales (locale, poi_id) VALUES
($1, $2) RETURNING id";
pg_prepare($con, "prepare2", $query)
or die ("Cannot prepare statement\n");
$result = pg_execute($con, "prepare2", array($this->locale, $this->poi_id))
or die ("Cannot execute statement\n");
$this->locale_id = pg_fetch_assoc($result)['id'];
$query = "INSERT INTO poi_sources (source, remote_source_id, author, locale_id) VALUES
($1, $2, $3, $4) RETURNING id";
pg_prepare($con, "prepare3", $query)
or die ("Cannot prepare statement\n");
$result = pg_execute($con, "prepare3", array($this->source, $this->remote_source_id, $this->author, $this->locale_id))
or die ("Cannot execute statement\n");
$this->source_id = pg_fetch_assoc($result)['id'];
$query = "INSERT INTO poi_versions (version, update_date, is_archive, alt_type, is_destroyed, alt_name, alt_position, parameters, source_id) VALUES
('0', $1, FALSE, $2, $3, $4, $5, $6, $7) RETURNING id";
pg_prepare($con, "prepare4", $query)
or die ("Cannot prepare statement\n");
$result = pg_execute($con, "prepare4", array(date('r'), $this->alt_type, $this->is_destroyed, $this->alt_name, $this->alt_position, $this->parameters, $this->source_id))
or die ("Cannot execute statement\n");
$this->version_id = pg_fetch_assoc($result)['id'];
$query = "INSERT INTO poi_contributors (poi, contributor) VALUES
($1, $2)";
pg_prepare($con, "prepare5", $query)
or die ("Cannot prepare statement\n");
$result = pg_execute($con, "prepare5", array($this->source_id, $user->id))
or die ("Cannot execute statement\n");
pg_close($con);
error_log(
date('r')." \t".$user->name." (".$user->id.") \tINSERT \tCreate new poi '".$this->permalink."'\r\n",
3,
$config['logs_folder'].'wiki.log');
}
}
?>

+ 1
- 0
models/d.users.php View File

@ -12,6 +12,7 @@ namespace Kabano;
require_once($config['models_folder']."d.locales.php");
// This array is related to the defined SQL enum, do not touch.
$ranks = array(
"administrator" => array(1000,"Administrateur", "red", "administrator"),
"moderator" => array(800,"Modérateur", "orangered", "moderator"),


+ 1
- 1
models/d.wiki.php View File

@ -182,7 +182,7 @@ class WikiPage
}
/*****
** Create a page by archiving the current one and inserting a new one ID
** Create a new page, fails if permalink already exists
*****/
public function insert() {
global $config;


+ 5
- 5
third/Md/Markdown.inc.php View File

@ -1,10 +1,10 @@
<?php
# Use this file if you cannot use class autoloading. It will include all the
# files needed for the Markdown parser.
#
# Take a look at the PSR-0-compatible class autoloading implementation
# in the Readme.php file if you want a simple autoloader setup.
// Use this file if you cannot use class autoloading. It will include all the
// files needed for the Markdown parser.
//
// Take a look at the PSR-0-compatible class autoloading implementation
// in the Readme.php file if you want a simple autoloader setup.
require_once dirname(__FILE__) . '/MarkdownInterface.php';
require_once dirname(__FILE__) . '/Markdown.php';

+ 858
- 565
third/Md/Markdown.php
File diff suppressed because it is too large
View File


+ 5
- 5
third/Md/MarkdownExtra.inc.php View File

@ -1,10 +1,10 @@
<?php
# Use this file if you cannot use class autoloading. It will include all the
# files needed for the MarkdownExtra parser.
#
# Take a look at the PSR-0-compatible class autoloading implementation
# in the Readme.php file if you want a simple autoloader setup.
// Use this file if you cannot use class autoloading. It will include all the
// files needed for the MarkdownExtra parser.
//
// Take a look at the PSR-0-compatible class autoloading implementation
// in the Readme.php file if you want a simple autoloader setup.
require_once dirname(__FILE__) . '/MarkdownInterface.php';
require_once dirname(__FILE__) . '/Markdown.php';


+ 972
- 704
third/Md/MarkdownExtra.php
File diff suppressed because it is too large
View File


+ 5
- 5
third/Md/MarkdownInterface.inc.php View File

@ -1,9 +1,9 @@
<?php
# Use this file if you cannot use class autoloading. It will include all the
# files needed for the MarkdownInterface interface.
#
# Take a look at the PSR-0-compatible class autoloading implementation
# in the Readme.php file if you want a simple autoloader setup.
// Use this file if you cannot use class autoloading. It will include all the
// files needed for the MarkdownInterface interface.
//
// Take a look at the PSR-0-compatible class autoloading implementation
// in the Readme.php file if you want a simple autoloader setup.
require_once dirname(__FILE__) . '/MarkdownInterface.php';

+ 32
- 28
third/Md/MarkdownInterface.php View File

@ -1,34 +1,38 @@
<?php
#
# Markdown - A text-to-HTML conversion tool for web writers
#
# PHP Markdown
# Copyright (c) 2004-2015 Michel Fortin
# <https://michelf.ca/projects/php-markdown/>
#
# Original Markdown
# Copyright (c) 2004-2006 John Gruber
# <https://daringfireball.net/projects/markdown/>
#
namespace Michelf;
/**
* Markdown - A text-to-HTML conversion tool for web writers
*
* @package php-markdown
* @author Michel Fortin <michel.fortin@michelf.com>
* @copyright 2004-2019 Michel Fortin <https://michelf.com/projects/php-markdown/>
* @copyright (Original Markdown) 2004-2006 John Gruber <https://daringfireball.net/projects/markdown/>
*/
#
# Markdown Parser Interface
#
namespace Michelf;
/**
* Markdown Parser Interface
*/
interface MarkdownInterface {
/**
* Initialize the parser and return the result of its transform method.
* This will work fine for derived classes too.
*
* @api
*
* @param string $text
* @return string
*/
public static function defaultTransform($text);
#
# Initialize the parser and return the result of its transform method.
# This will work fine for derived classes too.
#
public static function defaultTransform($text);
#
# Main function. Performs some preprocessing on the input text
# and pass it through the document gamut.
#
public function transform($text);
/**
* Main function. Performs some preprocessing on the input text
* and pass it through the document gamut.
*
* @api
*
* @param string $text
* @return string
*/
public function transform($text);
}

+ 52
- 1
views/css/d.index.css View File

@ -138,6 +138,7 @@ header .icon {
}
header .icon.avatar {
margin: -4px 0;
padding: 0;
height: 28px;
}
@ -238,11 +239,14 @@ section {
background: white;
margin: auto;
width: 820px;
min-height: calc(100% - 94px);
min-height: calc(100% - 98px);
z-index: 10;
padding: 15px;
text-align: justify;
}
section#index {
min-height: calc(100% - 98px - 320px);
}
section h1 {
font-weight: 300;
@ -275,6 +279,8 @@ footer {
color: #c1c1c1;
text-align: left;
}
footer {
}
footer #footernav {
float: right;
@ -343,4 +349,49 @@ footer a:hover {
section .thumb {
margin: 0 10px;
border: 1px solid #aaa;
}
/*********************************/
/** Community portal page **/
/*********************************/
.action {
clear: both;
margin: 50px auto 0 auto;
width: 90%;
background: #efefef;
}
.action p {
margin: 0;
}
.action .title {
background: #ccc;
cursor: pointer;
font-weight: 500;
font-size: 1.1em;
}
.action .title a, .action .title p {
padding: 15px 10px 15px 71px;
margin: 0;
color: inherit;
display: block;
}
.action .title i {
float: left;
width: 56px;
line-height: 56px;
text-align: center;
font-size: 30px;
background: #333;
color: #ccc;
}
.action .description {
display: none;
border: solid #ccc;
border-width: 0px 1px 3px 1px;
}
.action .description p {
padding: 10px 20px;
}

+ 19
- 19
views/css/d.map.css View File

@ -33,7 +33,7 @@ footer {
}
.leaflet-bottom.leaflet-left {
margin-bottom: 60px !important;
margin-bottom: 60px;
}
.leaflet-fullscreen-on .leaflet-bottom.leaflet-left {
margin-bottom: 15px !important;
@ -41,7 +41,7 @@ footer {
}
.leaflet-bottom.leaflet-right {
margin-bottom: 60px !important;
margin-bottom: 60px;
}
.leaflet-fullscreen-on .leaflet-bottom.leaflet-right {
margin-bottom: 15px !important;
@ -127,6 +127,23 @@ footer {
background: #212121 !important;
}
/* Scale */
.leaflet-control-scale-line {
height: 30px !important;
top: 2px !important;
position: relative !important;
background: #212121 !important;
color: #c1c1c1 !important;
text-align: center !important;
border: none !important;
font-size: 12px !important;
line-height: 30px !important;
}
.leaflet-control-scale {
opacity: 0.8 !important;
}
/* Credit / Legend */
.leaflet-control button {
@ -162,21 +179,4 @@ footer {
.leaflet-fullscreen-on .easy-button-container {
display: none;
}
/* Scale */
.leaflet-control-scale-line {
height: 30px !important;
top: 2px !important;
position: relative !important;
background: #212121 !important;
color: #c1c1c1 !important;
text-align: center !important;
border: none !important;
font-size: 12px !important;
line-height: 30px !important;
}
.leaflet-control-scale {
opacity: 0.8 !important;
}

+ 231
- 0
views/css/d.poi.css View File

@ -0,0 +1,231 @@
/*********************************/
/** Common **/
/*********************************/
html, body {
height: 100%;
}
#sticky {
position: relative;
min-height: 0;
top: 65%;
z-index: 10;
}
@keyframes fadeinfadeout {
0% {color: #444;}
50% {color: #999;}
100% {color: #444;}
}
#slide-icon {
position: absolute;
left: 400px;
top: -35px;
color: #000;
font-size: 60px;
color: #555;
animation-name: fadeinfadeout;
animation-duration: 2s;
animation-iteration-count: infinite;
cursor: pointer;
}
#mapid {
position: fixed;
height: 100%;
width: 100%;
top: 0;
}
/*********************************/
/** Editor page **/
/*********************************/
form.form input, form.form textarea, form.form input[type=radio]:checked+label, #locale {
background: #ddd;
border-bottom: 2px solid #ccc;
display: block;
padding: 10px;
}
form.form h1 input {
flex: 2 !important;
font-size: 18px;
}
form.form h1 {
padding: 10px 0;
margin: 0 0 10px 0;
}
#locale {
flex: 1;
margin: 10px 5px 0 5px;
font-size: 17px;
}
.flex_line {
display: flex;
flex-direction: row;
}
.flex_line input[type=text] {
flex: 1;
margin: 10px 5px 0 5px;
}
form.form input[type=submit] {
width: auto;
margin: 10px auto;
border-bottom: 2px solid blue;
}
form.form input[type=radio] {
display: none;
}
form.form input[type=radio]+label {
font-size: 13px;
flex: 1;
text-align: center;
padding: 10px;
vertical-align: middle;
border-bottom: 2px solid transparent;
}
form.form input[type=radio]+label img {
width: 32px;
height: 32px;
}
/*****************************************
Controls of the map
*****************************************/
/* General */
.leaflet-control-container {
position: absolute !important;
width: 850px !important;
height: 100%;
left: calc(50% - 425px) !important;
font-family: "Fira Sans", "Open Sans",Helvetica,Arial,sans-serif !important;
}
.leaflet-fullscreen-on .leaflet-control-container {
position: absolute !important;
width: 100% !important;
left: 0 !important;
}
.leaflet-bottom.leaflet-left {
bottom: 35% !important;
margin-bottom: -50px !important;
}
.leaflet-fullscreen-on .leaflet-bottom.leaflet-left {
margin-bottom: 15px !important;
margin-left: 15px !important;
bottom: 0 !important;
}
.leaflet-bottom.leaflet-right {
bottom: 35% !important;
margin-bottom: -50px !important;
}
.leaflet-fullscreen-on .leaflet-bottom.leaflet-right {
margin-bottom: 15px !important;
margin-right: 15px !important;
bottom: 0 !important;
}
.leaflet-control {
clear: none !important;
padding: 0 !important;
border-radius: 0 !important;
box-shadow: none !important;
color: #c1c1c1 !important;
}
.leaflet-right .leaflet-control {
margin: 0 0 0 15px !important;
}
.leaflet-left .leaflet-control {
margin: 0 15px 0 0 !important;
}
.leaflet-control a, .leaflet-control button {
display: inline-block !important;
float: none !important;
border: none !important;
background-color: #212121 !important;
border-radius: 0 !important;
color: #c1c1c1 !important;
border-right: 1px #3e3e3e solid !important;
}
.leaflet-control a:last-child, .leaflet-control button:last-child {
border-right: none !important;
}
/* Zoom */
.leaflet-control-zoom-in, .leaflet-control-zoom-out {
font-size: 10px !important;
}
.leaflet-disabled {
background-color: rgba(33, 33, 33, 0.8) !important;
opacity: 0.8 !important;
}
/* Fullscreen */
.leaflet-control-fullscreen a {
background: #212121 !important;
}
.leaflet-control-fullscreen a:before {
content: "\f065";
font-family: "Font Awesome 5 Free";
font-weight: 900;
background: none !important;
}
.leaflet-fullscreen-on .leaflet-control-fullscreen a:before {
content: "\f066";
font-family: "Font Awesome 5 Free";
font-weight: 900;
}
/* Baselayers */
.leaflet-control-layers a {
background: #212121 !important;
width: 26px !important;
height: 26px !important;
line-height: 26px !important;
text-align: center !important;
border-right: none !important;
}
.leaflet-control-layers a:before {
content: "\f5fd";
font-family: "Font Awesome 5 Free";
font-weight: 900;
background: none !important;
}
.leaflet-control-layers-expanded a {
display: none !important;
}
.leaflet-control-layers-list {
padding: 3px 8px !important;
color: white !important;
background: #212121 !important;
}
/* Scale */
.leaflet-control-scale-line {
height: 30px !important;
top: 2px !important;
position: relative !important;
background: #212121 !important;
color: #c1c1c1 !important;
text-align: center !important;
border: none !important;
font-size: 12px !important;
line-height: 30px !important;
}
.leaflet-control-scale {
opacity: 0.8 !important;
}

+ 65
- 0
views/d.community.html View File

@ -0,0 +1,65 @@
<!DOCTYPE html>
<html lang="fr">
<? include('blocks/d.head.html'); ?>
<body>
<? include('blocks/d.nav.html'); ?>
<section>
<h1>Contribuer au projet Kabano.</h1>
<p>&Eacute;tant un projet collaboratif, Kabano se repose sur vos contributions pour diffuser des informations au plus proche de la réalité. En participant au projet Kabano, vous acceptez de placer vos collaborations sous <a href="<?=$config['rel_root_folder']?>wiki/licences">nos licences libres</a>.</p>
<br>
<div class="action">
<? if($user->rankIsHigher("registered")) { ?>
<div class="title"><i class="fas fa-home"></i>
<a href="<?=$config['rel_root_folder']?>poi/new">Ajouter un hébergement de montagne</a>
</div>
<? } else { ?>
<div class="title" id="js_open_1"><i class="fas fa-home"></i>
<p>Ajouter un hébergement de montagne</p>
</div>
<div class="description" id="js_openned_1">
<p>Vous devez être connecté pour pouvoir ajouter un hébergement. &Ccedil;a nous permet de laisser les robots à la porte.</p>
</div>
<? } ?>
</div>
<div class="action">
<div class="title" id="js_open_2"><i class="fas fa-comment"></i>
<p>Ajouter un commentaire sur un hébergement</p>
</div>
<div class="description" id="js_openned_2">
<p>Rendez-vous sur la page hébergement où vous souhaitez laisser un commentaire, puis ajoutez un commentaire en bas de page.</p>
</div>
</div>
<div class="action">
<div class="title" id="js_open_3"><i class="fas fa-wrench"></i>
<p>Faire une demande de travaux</p>
</div>
<div class="description" id="js_openned_3">
<p>Cette fonctionnalité n'est pas encore disponible, mais n'hésitez pas à laisser un commentaire pour faire savoir le besoin d'entretien.</p>
</div>
</div>
</section>
<script type="text/javascript">
$( "#js_open_1" ).click(function() {
$( "#js_openned_1" ).show(400);
});
$( "#js_open_2" ).click(function() {
$( "#js_openned_2" ).show(400);
});
$( "#js_open_3" ).click(function() {
$( "#js_openned_3" ).show(400);
});
</script>
<? include('blocks/d.footer.html'); ?>
</body>
</html>

+ 1
- 1
views/d.index.html View File

@ -16,7 +16,7 @@
</div> -->
</aside>
<section>
<section id="index">
<h1>Cabanes et bivouac en montagne.</h1>
<p><abbr title="Cabane en espéranto">Kabano</abbr> est une plateforme collaborative sur laquelle vous pouvez récupérer toutes les informations nécessaires relatives aux hébergements en montagne. Ces informations ont été ajoutées par vous, pour vous, c'est pourquoi il est primordial de ne pas cesser d'ajouter des commentaires, cabanes, refuges ou emplacements de bivouac. Attention toutefois, ces données ne sont en aucun cas garanties et des précautions dues à l'environnement montagnard sont à prendre.</p>
<br>


+ 55
- 0
views/d.poi.edit.html View File

@ -0,0 +1,55 @@
<!DOCTYPE html>
<html lang="fr">
<? include('blocks/d.head.html'); ?>
<body>
<? include('blocks/d.nav.html'); ?>
<div id="mapid"></div>
<div id="sticky">
<section>
<i id="slide-icon" class="fas fa-chevron-up"></i>
<? if(isset($new) AND $new==1) { ?>
<form class="form" action="<?=$config['rel_root_folder']?>poi/new" method="post">
<? }
else { ?>
<form class="form" action="<?=$config['rel_root_folder']?>poi/<?=$poi->permalink?>/edit" method="post">
<? } ?> <h1 class="flex_line">
<input type="text" value="<?=$poi->name?>" name="name" id="name" placeholder="Nom de l'hébergement">
<select name="locale" id="locale">
<? foreach($locales->objs as $locale) { ?>
<option <?=$poi->locale==$locale->name?'selected':''?> value="<?=$locale->name?>"><?=$locale->display_name?></option>
<? } ?>
</select>
</h1>
<div class="flex_line" id="type_selector">
<? foreach($poi_types as $type) { ?>
<input type="radio" name="poi_type" value="<?=$type[3]?>" id="<?=$type[3]?>">
<label for="<?=$type[3]?>"><img src="<?=$config['views_url']?>img/<?=$type[3]?>.svg"><br><?=$type[0]?></label>
<? } ?>
</div>
<div class="flex_line">
<input type="text" value="<?=$poi->lat?>" name="lat" id="lat" placeholder="Latitude">
<input type="text" value="<?=$poi->lon?>" name="lon" id="lon" placeholder="Longitude">
<input type="text" value="<?=$poi->alt?>" name="alt" id="alt" placeholder="Altitude">
</div>
<input name="submit" id="submit" type="submit" value="Ajouter l'hébergement">
</form>
</section>
<script type="text/javascript">
$( "#slide-icon" ).click(function() {
$( "html, body" ).animate({scrollTop: "300px"});
});
</script>
<? include('blocks/d.footer.html'); ?>
</div>
</body>
</html>

+ 29
- 0
views/img/alpine_hut.svg View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="32" height="32" viewBox="0 0 31.999999 31.999998" id="svg4371" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="refuge-garde.svg">
<defs id="defs4373"/>
<sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="15.839192" inkscape:cx="20.352187" inkscape:cy="10.481553" inkscape:document-units="px" inkscape:current-layer="g4689" showgrid="false" inkscape:window-width="1366" inkscape:window-height="745" inkscape:window-x="0" inkscape:window-y="23" inkscape:window-maximized="1" units="px"/>
<metadata id="metadata4376">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<g inkscape:label="Calque 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1020.3622)">
<g transform="translate(-41.001273,2.4589125)" id="g4668" style="fill:#ef2929;fill-opacity:1">
<g transform="translate(-22.998727,-2.4589163)" style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="g4689-8">
<path style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 66,1034.3622 6,0 8,-6 8,6 6,0 0,-2 -14,-10 -14,10 z" id="path4462-1-2" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccc"/>
<path style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 80,1050.3622 -10,0 0,-18 10,-7 10,7 0,18 z" id="path4460-7-7" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccc"/>
<path style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 71,1029.3622 0,-6 4,0 0,3 z" id="path4464-3-6" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
</g>
<g transform="translate(-22.998727,-2.4589163)" id="g4689" style="fill:#ef2929;fill-opacity:1">
<path sodipodi:nodetypes="ccccccccc" inkscape:connector-curvature="0" id="path4462-1" d="m 66,1034.3622 6,0 8,-6 8,6 6,0 0,-2 -14,-10 -14,10 z" style="fill:#ef2929;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
<path sodipodi:nodetypes="ccccccc" inkscape:connector-curvature="0" id="path4460-7" d="m 80,1050.3622 -10,0 0,-18 10,-7 10,7 0,18 z" style="fill:#ef2929;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
<path sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" id="path4464-3" d="m 71,1029.3622 0,-6 4,0 0,3 z" style="fill:#ef2929;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
</g>
</g>
</g>
</svg>

+ 27
- 0
views/img/basic_hut.svg View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="32" height="32" viewBox="0 0 31.999999 31.999998" id="svg4371" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="abri.svg">
<defs id="defs4373"/>
<sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="7.9195959" inkscape:cx="33.591252" inkscape:cy="15.994383" inkscape:document-units="px" inkscape:current-layer="g4668" showgrid="false" inkscape:window-width="1366" inkscape:window-height="745" inkscape:window-x="0" inkscape:window-y="23" inkscape:window-maximized="1" units="px"/>
<metadata id="metadata4376">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<g inkscape:label="Calque 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1020.3622)">
<g transform="translate(-32,-3.8146968e-6)" style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="g4668-0">
<path style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 34,1034.3622 6,0 8,-6 8,6 6,0 0,-2 -14,-10 -14,10 z" id="path4462-3-8" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccc"/>
<path style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 38,1050.3622 0,-18 4,0 0,18 z" id="path4489-64" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
<path style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 54,1050.3622 0,-18 4,0 0,18 z" id="path4489-6-3" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
</g>
<g transform="translate(-32,-3.8146968e-6)" id="g4668" style="fill:#ef2929;fill-opacity:1">
<path sodipodi:nodetypes="ccccccccc" inkscape:connector-curvature="0" id="path4462-3" d="m 34,1034.3622 6,0 8,-6 8,6 6,0 0,-2 -14,-10 -14,10 z" style="fill:#ef2929;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
<path sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" id="path4489" d="m 38,1050.3622 0,-18 4,0 0,18 z" style="fill:#ef2929;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
<path sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" id="path4489-6" d="m 54,1050.3622 0,-18 4,0 0,18 z" style="fill:#ef2929;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
</g>
</g>
</svg>

+ 27
- 0
views/img/bivouac.svg View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="32" height="32" viewBox="0 0 31.999999 31.999998" id="svg4371" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="bivouac.svg">
<defs id="defs4373"/>
<sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="12.5625" inkscape:cx="19.992835" inkscape:cy="5.4636994" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" inkscape:window-width="1366" inkscape:window-height="745" inkscape:window-x="0" inkscape:window-y="23" inkscape:window-maximized="1" units="px"/>
<metadata id="metadata4376">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<g inkscape:label="Calque 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1020.3622)">
<g transform="translate(-128,-3.814697e-6)" inkscape:export-ydpi="44.365292" inkscape:export-xdpi="44.365292" inkscape:export-filename="/home/leo/Projets/WRI/images/icones/bivouac.png" style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="g4682-8">
<path style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 130,1050.3622 4,0 17,-28 -5,0 -16,26 z" id="path4554-2" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccc"/>
<path style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 158,1050.3622 -4,0 -17,-28 5,0 16,26 z" id="path4554-6-4" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccc"/>
<path style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 134,1050.3622 0,-4 7,0 3,-5 3,5 7,0 0,4 z" id="path4571-6" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccc"/>
</g>
<g transform="translate(-128,-3.814697e-6)" id="g4682" style="fill:#ef2929;fill-opacity:1" inkscape:export-filename="/home/leo/Projets/WRI/images/icones/bivouac.png" inkscape:export-xdpi="44.365292" inkscape:export-ydpi="44.365292">
<path sodipodi:nodetypes="cccccc" inkscape:connector-curvature="0" id="path4554" d="m 130,1050.3622 4,0 17,-28 -5,0 -16,26 z" style="fill:#ef2929;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
<path sodipodi:nodetypes="cccccc" inkscape:connector-curvature="0" id="path4554-6" d="m 158,1050.3622 -4,0 -17,-28 5,0 16,26 z" style="fill:#ef2929;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
<path sodipodi:nodetypes="cccccccc" inkscape:connector-curvature="0" id="path4571" d="m 134,1050.3622 0,-4 7,0 3,-5 3,5 7,0 0,4 z" style="fill:#ef2929;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
</g>
</g>
</svg>

+ 110
- 0
views/img/campsite.svg View File

@ -0,0 +1,110 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="32"
height="32"
viewBox="0 0 31.999999 31.999998"
id="svg4371"
version="1.1"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
sodipodi:docname="camping.svg">
<defs
id="defs4373" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="12.5625"
inkscape:cx="5.7838798"
inkscape:cy="11.195043"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1680"
inkscape:window-height="998"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
units="px" />
<metadata
id="metadata4376">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1020.3622)">
<g
transform="translate(-128,-3.814697e-6)"
inkscape:export-ydpi="44.365292"
inkscape:export-xdpi="44.365292"
inkscape:export-filename="/home/leo/Projets/WRI/images/icones/bivouac.png"
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="g4682-8">
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 130,1050.3622 h 4 l 17,-28 h -5 l -16,26 z"
id="path4554-2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 158,1050.3622 h -4 l -17,-28 h 5 l 16,26 z"
id="path4554-6-4"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 134,1050.3622 v -4 h 7 l 3,-5 3,5 h 7 v 4 z"
id="path4571-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc" />
</g>
<g
transform="translate(-128,-3.814697e-6)"
id="g4682"
style="fill:#4e9a06;fill-opacity:1"
inkscape:export-filename="/home/leo/Projets/WRI/images/icones/bivouac.png"
inkscape:export-xdpi="44.365292"
inkscape:export-ydpi="44.365292">
<path
sodipodi:nodetypes="cccccc"
inkscape:connector-curvature="0"
id="path4554"
d="m 130,1050.3622 h 4 l 17,-28 h -5 l -16,26 z"
style="fill:#4e9a06;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccccc"
inkscape:connector-curvature="0"
id="path4554-6"
d="m 158,1050.3622 h -4 l -17,-28 h 5 l 16,26 z"
style="fill:#4e9a06;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccccccc"
inkscape:connector-curvature="0"
id="path4571"
d="m 134,1050.3622 v -4 h 7 l 3,-5 3,5 h 7 v 4 z"
style="fill:#4e9a06;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</g>
</svg>

+ 30
- 0
views/img/halt.svg View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="32" height="32" viewBox="0 0 31.999999 31.999998" id="svg4371" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="gite-d-etape.svg">
<defs id="defs4373"/>
<sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="11.2" inkscape:cx="19.601284" inkscape:cy="15.042108" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" inkscape:window-width="1366" inkscape:window-height="745" inkscape:window-x="0" inkscape:window-y="23" inkscape:window-maximized="1" units="px"/>
<metadata id="metadata4376">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<g inkscape:label="Calque 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1020.3622)">
<g transform="translate(-41.001273,2.4589125)" id="g4668" style="fill:#ef2929;fill-opacity:1">
<g transform="translate(-22.998727,-2.4589163)" id="g4689" style="fill:#ef2929;fill-opacity:1"/>
<g transform="translate(-54.998727,-2.4589163)" style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="g4677-7">
<path style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 112,1050.3622 -10,0 0,-18 10,-7 9.99999,7 0,18 z" id="path4460-7-1-2" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccc"/>
<path style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 98,1034.3622 6,0 8,-6 7.99999,6 6,0 0,-2 -13.99999,-10 -14,10 z" id="path4462-1-5-9" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccc"/>
<path style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 103,1029.3622 0,-6 4,0 0,3 z" id="path4464-3-1-9" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
</g>
<g transform="translate(-54.998727,-2.4589163)" id="g4677" style="fill:#4e9a06;fill-opacity:1">
<path sodipodi:nodetypes="ccccccc" inkscape:connector-curvature="0" id="path4460-7-1" d="m 112,1050.3622 -10,0 0,-18 10,-7 9.99999,7 0,18 z" style="fill:#4e9a06;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
<path sodipodi:nodetypes="ccccccccc" inkscape:connector-curvature="0" id="path4462-1-5" d="m 98,1034.3622 6,0 8,-6 7.99999,6 6,0 0,-2 -13.99999,-10 -14,10 z" style="fill:#4e9a06;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
<path sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" id="path4464-3-1" d="m 103,1029.3622 0,-6 4,0 0,3 z" style="fill:#4e9a06;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
</g>
</g>
</g>
</svg>

+ 28
- 0
views/img/wilderness_hut.svg View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="32" height="32" viewBox="0 0 31.999999 31.999998" id="svg4371" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="cabane-non-gardee.svg">
<defs id="defs4373"/>
<sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="2.8" inkscape:cx="65.143784" inkscape:cy="39.340085" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" inkscape:window-width="1366" inkscape:window-height="745" inkscape:window-x="0" inkscape:window-y="23" inkscape:window-maximized="1" units="px"/>
<metadata id="metadata4376">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<g inkscape:label="Calque 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1020.3622)">
<g transform="translate(0,-3.8146968e-6)" style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="g4663-6">
<path style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 16,1050.3622 -10,0 0,-18 4,0 0,14 12,0 0,-14 4,0 0,18 z" id="path4460-73" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccc"/>
<path style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 2,1034.3622 6,0 8,-6 8,6 6,0 0,-2 -14,-10 -14,10 z" id="path4462-4" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccc"/>
<path style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 7,1029.3622 0,-6 4,0 0,3 z" id="path4464-1" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
<rect y="1028.9393" x="8.5736694" height="17.766058" width="15.467961" id="rect4328" style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"/>
</g>
<g transform="translate(0,-3.8146968e-6)" id="g4663" style="fill:#ef2929;fill-opacity:1">
<path sodipodi:nodetypes="cccccccccc" inkscape:connector-curvature="0" id="path4460" d="m 16,1050.3622 -10,0 0,-18 4,0 0,14 12,0 0,-14 4,0 0,18 z" style="fill:#ef2929;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
<path sodipodi:nodetypes="ccccccccc" inkscape:connector-curvature="0" id="path4462" d="m 2,1034.3622 6,0 8,-6 8,6 6,0 0,-2 -14,-10 -14,10 z" style="fill:#ef2929;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
<path sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" id="path4464" d="m 7,1029.3622 0,-6 4,0 0,3 z" style="fill:#ef2929;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
</g>
</g>
</svg>

+ 12
- 7
views/js/d.map.js View File

@ -2,20 +2,25 @@ var mymap;
$( document ).ready(function() {
// Differents layers for the map
var osmfr = L.tileLayer('//{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', {maxZoom: 20, attribution: 'Maps © <a href="http://www.openstreetmap.fr">OpenSreetMap France</a>, Data © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>'});
var wikimedia = L.tileLayer('//maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png', {maxZoom: 18, attribution: 'Maps © <a href="http://wikimedia.org">Wikimedia</a>, Data © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>'});
/* var osmfr = L.tileLayer('//{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', {tms: true, maxZoom: 20, attribution: 'Maps © <a href="http://www.openstreetmap.fr">OpenSreetMap France</a>, Data © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>'});
var wikimedia = L.tileLayer('//maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png', {tms: true, maxZoom: 18, attribution: 'Maps © <a href="http://wikimedia.org">Wikimedia</a>, Data © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>'});*/
var sat_cro = L.tileLayer('/_maps/sat_cro/{z}/{x}/{y}.png', {tms: true, maxZoom: 17, attribution: 'For dev purpose only'});
var osm_cro = L.tileLayer('/_maps/osm_cro/{z}/{x}/{y}.png', {tms: true, maxZoom: 17, attribution: 'For dev purpose only'});
var ign_cro = L.tileLayer('/_maps/ign_cro/{z}/{x}/{y}.jpg.tile', {tms: false, maxZoom: 13, attribution: 'For dev purpose only'});
// Base layers
var baseLayers = {
"OSM France": osmfr,
"OSM Wikimedia": wikimedia,
"Crozet IGN": ign_cro,
"Crozet satellite": sat_cro,
"Crozet OSM": osm_cro,
};
mymap = L.map('mapid', {
zoomControl: false,
layers: [wikimedia],
}).setView([47.018, 3.142], 6);
$("#map-credits").html(wikimedia.getAttribution());
layers: [sat_cro],
maxBounds: [[-46.32,51.60],[-46.50,51.90]]
}).setView([-46.407, 51.766], 13);
$("#map-credits").html(sat_cro.getAttribution());
L.control.scale({
position: "bottomleft",


+ 75
- 0
views/js/d.poi_map.js View File

@ -0,0 +1,75 @@
var mymap;
var poi_layer;
$( document ).ready(function() {
// Differents layers for the map
/* var osmfr = L.tileLayer('//{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', {tms: true, maxZoom: 20, attribution: 'Maps © <a href="http://www.openstreetmap.fr">OpenSreetMap France</a>, Data © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>'});
var wikimedia = L.tileLayer('//maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png', {tms: true, maxZoom: 18, attribution: 'Maps © <a href="http://wikimedia.org">Wikimedia</a>, Data © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>'});*/
var sat_cro = L.tileLayer('/_maps/sat_cro/{z}/{x}/{y}.png', {tms: true, maxZoom: 17, attribution: 'For dev purpose only'});
var osm_cro = L.tileLayer('/_maps/osm_cro/{z}/{x}/{y}.png', {tms: true, maxZoom: 17, attribution: 'For dev purpose only'});
var ign_cro = L.tileLayer('/_maps/ign_cro/{z}/{x}/{y}.jpg.tile', {tms: false, maxZoom: 13, attribution: 'For dev purpose only'});
// Base layers
var baseLayers = {
"Crozet IGN": ign_cro,
"Crozet satellite": sat_cro,
"Crozet OSM": osm_cro,
};
mymap = L.map('mapid', {
zoomControl: false,
layers: [sat_cro],
maxBounds: [[-46.32,51.60],[-46.50,51.90]]
}).setView([-46.407, 51.766], 13);
$("#map-credits").html(sat_cro.getAttribution());
L.control.scale({
position: "bottomleft",
imperial: false
}).addTo(mymap);
L.control.fullscreen({
position: "bottomleft"
}).addTo(mymap);
L.control.zoom({
zoomOutText: "<i class=\"fa fa-minus\" aria-hidden=\"true\"></i>",
zoomInText: "<i class=\"fa fa-plus\" aria-hidden=\"true\"></i>",
position: "bottomleft"
}).addTo(mymap);
L.control.layers(baseLayers,null,{
position: "bottomright"
}).addTo(mymap);
mymap.removeControl(mymap.attributionControl);
mymap.on('baselayerchange', function(e) {
$("#map-credits").html(e.layer.getAttribution());
});
poi_layer = L.marker([-46.407, 51.766], {draggable: true}).addTo(mymap);
poi_layer.bindTooltip("Glissez moi au bon endroit.", {permanent: true, direction: 'top'}).openTooltip();
mymap.on('click', function(e){
poi_layer.unbindTooltip();
poi_layer.setLatLng(e.latlng);
$("#lat").val(e.latlng.lat);
$("#lon").val(e.latlng.lng);
})
poi_layer.on('move', function(e){
poi_layer.unbindTooltip();
$("#lat").val(e.latlng.lat);
$("#lon").val(e.latlng.lng);
})
var poiicon = L.icon({
iconSize: [24, 24],
iconAnchor: [12, 12]
});
$("#type_selector label").click(function(e) {
poi_layer.unbindTooltip();
poiicon.options.iconUrl = e.currentTarget.firstChild.currentSrc;
poi_layer.setIcon(poiicon);
})
});

+ 0
- 0
views/third/fontawesome-free-5.4.1-web/css/all.css View File


+ 0
- 0
views/third/fontawesome-free-5.4.1-web/css/all.min.css View File


+ 0
- 0
views/third/fontawesome-free-5.4.1-web/webfonts/fa-brands-400.eot View File


+ 0
- 0
views/third/fontawesome-free-5.4.1-web/webfonts/fa-brands-400.svg View File


+ 0
- 0
views/third/fontawesome-free-5.4.1-web/webfonts/fa-brands-400.ttf View File


+ 0
- 0
views/third/fontawesome-free-5.4.1-web/webfonts/fa-brands-400.woff View File


+ 0
- 0
views/third/fontawesome-free-5.4.1-web/webfonts/fa-brands-400.woff2 View File


+ 0
- 0
views/third/fontawesome-free-5.4.1-web/webfonts/fa-regular-400.eot View File


+ 0
- 0
views/third/fontawesome-free-5.4.1-web/webfonts/fa-regular-400.svg View File


+ 0
- 0
views/third/fontawesome-free-5.4.1-web/webfonts/fa-regular-400.ttf View File


+ 0
- 0
views/third/fontawesome-free-5.4.1-web/webfonts/fa-regular-400.woff View File


+ 0
- 0
views/third/fontawesome-free-5.4.1-web/webfonts/fa-regular-400.woff2 View File


+ 0
- 0
views/third/fontawesome-free-5.4.1-web/webfonts/fa-solid-900.eot View File


+ 0
- 0
views/third/fontawesome-free-5.4.1-web/webfonts/fa-solid-900.svg View File


+ 0
- 0
views/third/fontawesome-free-5.4.1-web/webfonts/fa-solid-900.ttf View File


+ 0
- 0
views/third/fontawesome-free-5.4.1-web/webfonts/fa-solid-900.woff View File


+ 0
- 0
views/third/fontawesome-free-5.4.1-web/webfonts/fa-solid-900.woff2 View File


+ 0
- 0
views/third/jquery-3.3.1.min.js View File


+ 0
- 0
views/third/leaflet-easybutton/easy-button.css View File


+ 0
- 0
views/third/leaflet-easybutton/easy-button.js View File


+ 0
- 0
views/third/leaflet-fullscreen/Leaflet.fullscreen.js View File


+ 0
- 0
views/third/leaflet-fullscreen/Leaflet.fullscreen.min.js View File


+ 0
- 0
views/third/leaflet-fullscreen/fullscreen.png View File

Before After
Width: 26  |  Height: 52  |  Size: 299 B Width: 26  |  Height: 52  |  Size: 299 B

+ 0
- 0
views/third/leaflet-fullscreen/fullscreen@2x.png View File

Before After
Width: 52  |  Height: 104  |  Size: 420 B Width: 52  |  Height: 104  |  Size: 420 B

+ 0
- 0
views/third/leaflet-fullscreen/leaflet.fullscreen.css View File


+ 0
- 0
views/third/leaflet/images/layers-2x.png View File

Before After
Width: 52  |  Height: 52  |  Size: 1.2 KiB Width: 52  |  Height: 52  |  Size: 1.2 KiB

+ 0
- 0
views/third/leaflet/images/layers.png View File

Before After
Width: 26  |  Height: 26  |  Size: 696 B Width: 26  |  Height: 26  |  Size: 696 B

+ 0
- 0
views/third/leaflet/images/marker-icon-2x.png View File