map added

This commit is contained in:
simon 2020-08-20 15:25:14 +03:00
parent cd312207b8
commit 75934afc32
24 changed files with 19276 additions and 1 deletions

View file

@ -0,0 +1,110 @@
body {
margin:0;
padding:20px;
max-width: 1250px;
}
table {
border-collapse: collapse;
}
.send-private-giveaway, .register-giveaway, .access-server-logs, .update-btc-report {
margin: 20px 0px;
border: 1px solid #e6e6e6;
width: 50%;
}
.wrapper {
list-style-type: none;
padding: 0;
border-radius: 3px;
}
.form-row {
display: flex;
justify-content: flex-start;
align-items: flex-start;
padding: 5px;
text-align: left;
}
.form-row > label {
flex: 1;
}
.form-row > input {
flex: 1;
width: auto;
}
.form-row > button {
flex: 1;
}
th, td {
text-align: left;
padding: 8px;
}
tr:nth-child(even){background-color: #f2f2f2}
tr:hover {background-color: #d5d5d5;}
th {
background-color: #4CAF50;
color: white;
}
.loader,
.loader:before,
.loader:after {
border-radius: 50%;
width: 2.5em;
height: 2.5em;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
-webkit-animation: load7 1.8s infinite ease-in-out;
animation: load7 1.8s infinite ease-in-out;
}
.loader {
color: #00ffff;
font-size: 10px;
margin: 25px auto;
position: relative;
text-indent: -9999em;
-webkit-transform: translateZ(0);
-ms-transform: translateZ(0);
transform: translateZ(0);
-webkit-animation-delay: -0.16s;
animation-delay: -0.16s;
}
.loader:before,
.loader:after {
content: '';
position: absolute;
top: 0;
}
.loader:before {
left: -3.5em;
-webkit-animation-delay: -0.32s;
animation-delay: -0.32s;
}
.loader:after {
left: 3.5em;
}
@-webkit-keyframes load7 {
0%,
80%,
100% {
box-shadow: 0 2.5em 0 -1.3em;
}
40% {
box-shadow: 0 2.5em 0 0;
}
}
@keyframes load7 {
0%,
80%,
100% {
box-shadow: 0 2.5em 0 -1.3em;
}
40% {
box-shadow: 0 2.5em 0 0;
}
}

View file

@ -0,0 +1,606 @@
::-webkit-input-placeholder {color:#000;}
::-moz-placeholder {color:#000;}
:-moz-placeholder {color:#000;}
:-ms-input-placeholder {color:#000;}
h2, h3 {
font-size: 20px;
}
.nav-holder {
padding: 0 20px;
background: #ff8e01;
}
.navigation {
max-width: 1100px;
margin: 0 auto;
}
.navigation li {
margin-right: 30px;
}
.navigation a {
display: block;
padding: 30px 0;
color: rgba(255, 255, 255, 0.5);
font-size: 15px;
font-weight: bold;
text-decoration: none;
text-transform: uppercase;
border-bottom: 4px solid #ff8e01;
outline: none;
}
.navigation a:hover {
color: #fff;
}
.navigation li {
display: inline-block;
vertical-align: middle;
}
.navigation li.active a,
.navigation li.active a:focus,
.navigation li.active a:hover {
color: #fff;
border-bottom: 4px solid #4464ad;
}
#month-selection {
margin-bottom: 10px;
}
#region-selection {
margin-bottom: 10px;
}
.infobox {
font-size: 16px;
line-height: 150%;
}
.infobox h2 {
font-size: 33px;
}
.infobox h3 {
margin-top: 35px;
font-weight: bold;
}
.infobox ul {
list-style-type: disc;
list-style-position: inside;
}
.report-period-group {
padding: 20px;
background: #f2f2f2;
}
.report-period-group.supporters {
float: left;
width: 30%;
height: 120px;
}
.supporters-total {
float: right;
width: 70%;
height: 120px;
border: 1px solid #ddd;
border-left: 0 none;
}
.supporters-total-holder:after {
content: '';
display: table;
clear: both;
float: none;
}
.report-group {
display: inline-block;
vertical-align: top;
}
.report-group.period {
width: 100%;
max-width: 250px;
margin-right: 40px;
}
.supporters .report-group.period {
margin-right: 0;
}
.report-group.region {
width: 100%;
max-width: 420px;
}
.styled-select {
position: relative;
width: 100%;
height: 42px;
overflow: hidden;
background: #fff;
border: 1px solid #ccc;
border-radius: 2px;
}
.styled-select:before {
z-index: 0;
content: '';
position: absolute;
top: 10px;
left: 10px;
width: 20px;
height: 20px;
background: url('../images/main-sprite.png') no-repeat;
}
.styled-select:after {
z-index: 0;
content: '';
position: absolute;
top: 12px;
right: 10px;
width: 20px;
height: 20px;
background: url('../images/main-sprite.png') no-repeat -200px -80px;
}
.report-group.period .styled-select:before {
background-position: -251px -110px;
}
.report-group.region .styled-select:before {
background-position: -290px -110px;
}
.report-group.round .styled-select:before {
background-position: -290px -110px;
}
.styled-select select {
position: relative;
z-index: 1;
display: block;
width: 110%;
height: 42px;
padding: 10px 45px 10px 35px;
border: 0 none;
border-radius: 0;
background: transparent;
text-overflow: ellipsis;
}
select {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
select:-moz-focusring {
color: transparent;
text-shadow: 0 0 0 #000;
}
.report-total-div {
border: 1px solid #e6e6e6;
border-top: 0 none;
}
.overview-body {
padding: 15px 15px 0;
}
.overview-hint {
font-weight: bold;
margin: 5px 0 20px;
}
.overview-hint span {
color: #484dde;
}
.overview {
position: relative;
display: inline-block;
vertical-align: top;
padding-left: 50px;
margin-right: 80px;
margin-bottom: 20px;
text-align: left;
}
.overview:last-child {
margin-right: 0;
}
.overview:before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 40px;
height: 40px;
background: url('../images/main-sprite.png') no-repeat;
}
.overview-changes:before {
background-position: -0px -280px;
}
.overview-users:before {
background-position: -40px -280px;
}
.overview-region:before {
background-position: -80px -280px;
}
.overview-active_supporters:before {
background-position: -40px -280px;
}
.overview-register_supporters:before {
background-position: -120px -280px;
}
.overview-btc:before {
background-position: -160px -280px;
}
.overview-total_weight:before {
background-position: -200px -280px;
}
.overview p {
margin: 0;
margin-bottom: -10px;
font-size: 30px;
font-weight: bold;
line-height: 1.2;
}
.overview span {
color: #999;
font-size: 11px;
text-transform: uppercase;
letter-spacing: 2px;
}
#report-ranking,
#users-ranking,
#support-country-table-header,
#support-table-header,
#recipients-table-header {
margin-top: 50px;
font-size: 20px;
}
#report-ranking span {
display: block;
font-size: 13px;
font-weight: normal;
color: #999;
text-transform: uppercase;
}
.table {
font-size: 14px;
}
.table thead span {
display: block;
color: #999;
font-size: 11px;
text-transform: uppercase;
}
.table tbody tr td {
padding: 12px;
font-weight: bold;
}
.table-bordered > thead > tr > td,
.table-bordered > thead > tr > th {
vertical-align: middle;
border-bottom-color: #ff8f00;
font-weight: normal;
}
.table-controls.hidden {
display: none;
}
.table-controls {
position: relative;
padding-right: 185px;
}
.tc.search {
position: relative;
}
.tc.search:before {
content: '';
position: absolute;
top: 10px;
left: 12px;
width: 20px;
height: 20px;
background: url('../images/main-sprite.png') no-repeat -300px -80px;
}
.tc.search input {
max-width: 350px;
height: 42px;
padding-left: 40px;
border-radius: 2px;
}
.tc.entries {
position: absolute;
top: 0;
right: 0;
width: 100%;
max-width: 180px;
font-size: 14px;
}
.tc.entries .styled-select {
display: inline-block;
vertical-align: middle;
width: 80px;
}
.tc.entries .styled-select:before {
content: none;
}
.tc.entries label {
display: block;
text-align: right;
}
.tc.entries select {
display: inline-block;
vertical-align: middle;
width: 125%;
padding: 10px 0 10px 10px;
}
.sorting_desc,
.sorting_asc,
.sorting {
position: relative;
}
.sorting_desc:after,
.sorting_asc:after {
content: '' !important;
position: absolute;
top: 50%;
right: 0;
width: 20px;
height: 20px;
background: url('../images/main-sprite.png') no-repeat;
transform: translate(0, -50%);
}
.sorting_asc:after {
background-position: -160px -140px;
}
.sorting_desc:after {
background-position: -200px -140px;
}
.sorting:after {
content: '' !important;
position: absolute;
top: 50%;
right: 0;
width: 20px;
height: 20px;
background: url('../images/main-sprite.png') no-repeat -180px -140px;
transform: translate(0, -50%);
}
.pagination > .active > a,
.pagination > .active > a:focus,
.pagination > .active > a:hover,
.pagination > .active > span,
.pagination > .active > span:focus,
.pagination > .active > span:hover {
background-color: #ff8f00;
border-color: #ff8f00;
}
.pagination > li > a,
.pagination > li > span {
color: #000;
}
.pagination > li > a:hover,
.pagination > li > span:hover {
background-color: rgba(255, 143, 0, 0.5);
border-color: #ff8f00;
color: #fff;
}
.registration {
display: inline-block;
vertical-align: top;
width: 49%;
min-height: 420px;
padding: 20px;
margin-top: 20px;
margin-right: 1%;
background: #f2f2f2;
}
.registration.contributor-registration {
margin-right: 0;
}
.registration h4 {
margin-top: 0;
font-size: 20px;
}
.recipient-registration label {
margin-top: 10px;
font-size: 14px;
font-weight: normal;
}
.recipient-registration .form-control {
margin: 0;
border-radius: 2px;
height: 42px;
padding-left: 40px;
}
.recipient-registration .input-holder {
position: relative;
}
#agree_osm_live {
margin-left: 5px;
margin-top: 3px;
}
.agree_osm_live_label {
position: relative;
cursor: pointer;
font-size: 14px;
margin-left: 7px;
margin-bottom: 15px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
}
.recipient-registration .input-holder:before {
content: '';
position: absolute;
top: 10px;
left: 12px;
width: 20px;
height: 20px;
background: url('../images/main-sprite.png') no-repeat;
}
.recipient-registration .input-holder.input-user:before {
background-position: -180px -80px;
}
.recipient-registration .input-holder.input-pass:before {
height: 21px;
background-position: -172px -109px;
}
.recipient-registration .input-holder.input-bitcoin:before {
background-position: -210px -110px;
}
.recipient-registration .input-hint {
color: #999;
line-height: 1.4;
}
.recipient-registration .btn,
.recipient-registration .btn:active {
background: #575bde;
border: 1px solid #3d42bf;
color: #fff;
font-weight: bold;
}
.registration-badges img {
border: none;
height: 45px;
margin-bottom: 20px;
}
.contributor-registration p {
font-size: 14px;
line-height: 1.4;
}
.contributor-registration .btc-address {
padding: 15px 10px;
margin-bottom: 10px;
background: #ff8f00;
border-radius: 2px;
color: #fff;
font-size: 14px;
font-weight: bold;
}
#recipients-info-div {
margin-top: 20px;
margin-bottom: 20px;
}
.maincontainer {
background-color: white;
}
.full-width-banner {
width: 100%;
margin: 20px auto;
}
.full-width-banner img {
display: block;
max-width: 100%;
}
.vlabel {
font-size: 16px;
font-weight: bold;
}
.form-control {
margin-bottom: 10px;
}
.tab-content {
margin-top: 25px;
}
.container {
max-width: 1135px;
margin: 10px auto 50px;
}
#recipients-table td:nth-child(7) {
word-break: break-all;
padding: 8px 5px !important;
}
@media screen and (max-width: 1200px) {
.nav-holder .navigation{
max-width: 940px;
}
}
@media screen and (max-width: 991px) {
.nav-holder .navigation{
max-width: 720px;
}
.report-group.period {
max-width: 420px;
margin-right: 0;
}
.supporters-total .overview {
margin-right: 20px;
}
}
@media screen and (max-width: 770px) {
.report-period-group.supporters {
float: none;
width: 100%;
height: 120px;
}
.supporters-total {
float: none;
width: 100%;
height: auto;
border: 1px solid #ddd;
border-top: 0 none;
}
.supporters-total:after {
content: '';
display: table;
clear: both;
float: none;
}
.registration {
width: 100%;
min-height: auto;
margin-right: 0;
margin-bottom: 20px;
}
}
@media screen and (max-width: 650px) {
#recipients-table th:nth-child(4),
#recipients-table td:nth-child(4),
#recipients-table th:nth-child(3),
#recipients-table td:nth-child(3) {
display: none;
}
.navigation li a,
.navigation li.active a,
.navigation li.active a:focus,
.navigation li.active a:hover {
border-bottom: 0 none;
padding: 15px 0;
}
}
@media screen and (max-width: 550px) {
.table {
font-size: 13px;
}
.table thead {
font-size: 11px;
}
.table thead span {
text-transform: lowercase;
}
.table th,
.table td {
padding: 8px 2px !important;
vertical-align: middle !important;
font-weight: normal !important;
text-align: center;
}
.table th.sorting_asc:before,
.table th.sorting_desc:before {
content: '';
position: absolute;
left: 50%;
margin-left: -2px;
border: 4px solid transparent;
}
.table th.sorting_asc:before {
bottom: 1px;
border-top-color: #ff8f00;
}
.table th.sorting_desc:before {
top: 1px;
border-bottom-color: #ff8f00;
}
.table th:after {
content: none !important;
}
.table-controls {
padding-right: 145px;
}
.tc.entries {
font-size: 12px;
}
.tc.entries span {
display: inline-block;
vertical-align: middle;
width: 30%;
text-align: center;
}
.contributor-registration .btc-address {
word-break: break-all;
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,117 @@
/* Slider */
.slick-slider
{
position: relative;
display: block;
box-sizing: border-box;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-touch-callout: none;
-khtml-user-select: none;
-ms-touch-action: pan-y;
touch-action: pan-y;
-webkit-tap-highlight-color: transparent;
}
.slick-list
{
position: relative;
display: block;
overflow: hidden;
margin: 0;
padding: 0;
}
.slick-list:focus
{
outline: none;
}
.slick-list.dragging
{
cursor: pointer;
cursor: hand;
}
.slick-slider .slick-track,
.slick-slider .slick-list
{
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.slick-track
{
position: relative;
top: 0;
left: 0;
display: block;
}
.slick-track:before,
.slick-track:after
{
display: table;
content: '';
}
.slick-track:after
{
clear: both;
}
.slick-loading .slick-track
{
visibility: hidden;
}
.slick-slide
{
display: none;
float: left;
height: 100%;
min-height: 1px;
}
[dir='rtl'] .slick-slide
{
float: right;
}
.slick-slide img
{
display: block;
}
.slick-slide.slick-loading img
{
display: none;
}
.slick-slide.dragging img
{
pointer-events: none;
}
.slick-initialized .slick-slide
{
display: block;
}
.slick-loading .slick-slide
{
visibility: hidden;
}
.slick-vertical .slick-slide
{
display: block;
height: auto;
border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
display: none;
}

View file

@ -0,0 +1,98 @@
/* Slider */
.slick-slider {
position: relative;
display: block;
box-sizing: border-box;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-action: pan-y;
touch-action: pan-y;
-webkit-tap-highlight-color: transparent;
}
.slick-list {
position: relative;
overflow: hidden;
display: block;
margin: 0;
padding: 0;
&:focus {
outline: none;
}
&.dragging {
cursor: pointer;
cursor: hand;
}
}
.slick-slider .slick-track,
.slick-slider .slick-list {
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.slick-track {
position: relative;
left: 0;
top: 0;
display: block;
&:before,
&:after {
content: "";
display: table;
}
&:after {
clear: both;
}
.slick-loading & {
visibility: hidden;
}
}
.slick-slide {
float: left;
height: 100%;
min-height: 1px;
[dir="rtl"] & {
float: right;
}
img {
display: block;
}
&.slick-loading img {
display: none;
}
display: none;
&.dragging img {
pointer-events: none;
}
.slick-initialized & {
display: block;
}
.slick-loading & {
visibility: hidden;
}
.slick-vertical & {
display: block;
height: auto;
border: 1px solid transparent;
}
}
.slick-arrow.slick-hidden {
display: none;
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,43 @@
@font-family: 'Roboto Regular';
@text-color: #000;
@oposite-text-color: #fff;
@header-color: #536dfe;
@read-more-color: #adadad;
@brand-orange: #ff8f00;
@opacity-orange-overlay: 0.9;
@separator-bg: #ffbb00;
@badge-free: #f3f3f3;
@badge-free-text: #737373;
@badge-paid: #62c452;
@badge-paid-text: #fff;
@footer-bg: #292f33;
@footer-text-color: #fff;
@footer-header-color: #698d8f;
@footer-header-underline-color: #2f4445;
@footer-copyright-color: #525e66;
@footer-font-family: Arial;
@footer-contact-btn-border: #394247;
@index-app-features-header: #ffa516;
@index-app-features-subheader: #c1c1c1;
@index-banner-btn-bg: #ffa516;
@index-header-color: #000;
@index-subheader-color: #737373;
@index-slider-btn-active: #ffa516;
@index-slider-btn-passive: #d4d4d4;
@index-recomendations-username: #212121;
@index-recomendations-service: #9e9e9e;
@index-news-link-color: #266ce0;
@index-news-read-more-link: #adadad;
@index-news-timestamp: #adadad;
@index-poll-btn-bg: #ff8f00;
@index-poll-result-btn-bg: #ff6c00;
@index-poll-radio-btn-active: #ff8f00;
@index-poll-radio-btn-border: #bbb;
@blog-article-header: #536dfe;
@help-question-link: #454ade;
@help-question-border: #e6e7ec;

View file

@ -0,0 +1,2 @@
/***********************EMPTY USED BY HELP inlining but already defined in site.css
*********************************************/

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

View file

@ -0,0 +1,86 @@
var blogArticles = [
{title:'OsmAnd for iPhone is released', url:'blog.html?id=osmand-ios', id:'osmand-ios', gatag:'osmand_ios'},
{title:'Nautical charts', url:'blog.html?id=nautical-charts', id:'nautical-charts', gatag:'nautical_charts'},
{title:'OsmAnd DVR goes live', url:'blog.html?id=osmand-dvr-goes-live', id:'osmand-dvr-goes-live', gatag:'osmand_dvr_goes_live'},
{title:'OsmAnd 1.9', url:'blog.html?id=osmand-1-9-released', id:'osmand-1-9-released', gatag:'osmand_1_9'},
{title:'OsmAnd 1.8', url:'blog.html?id=osmand-1-8-released', id:'osmand-1-8-released', gatag:'osmand_1_8'},
{title:'OsmAnd 1.7', url:'blog.html?id=osmand-1-7-released', id:'osmand-1-7-released', gatag:'osmand_1_7'},
{title:'OsmAnd 1.6 Released', url:'blog.html?id=osmand-1-6-released', id:'osmand-1-6-released', gatag:'osmand_1_6'},
{title:'OsmAnd 1.5 Released', url:'blog.html?id=osmand-1-5-released', id:'osmand-1-5-released', gatag:'osmand_1_5'}
];
var webSiteUrl = "http://osmand.net";
$.urlParam = function(url, name){
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(url);
if (results==null){
return null;
}
else{
return results[1] || 0;
}
}
function blog(container){
var getFullArticleUrl = function(articleObj){
return webSiteUrl + "/" + articleObj.url;
}
var fixTwitter =function (){
$('#___plusone_0 iframe').css('height', '21px');
}
var updateMetaTags = function(articleObj){
if (articleObj && articleObj != null){
var articleFullUrl = getFullArticleUrl(articleObj);
$('meta[property="og:title"]').attr('content', articleObj.title);
$('meta[property="og:url"]').attr('content', articleFullUrl);
$('meta[property="og:description"]').attr('content', articleObj.title);
$('link[rel="canonical"]').attr('href', articleFullUrl);
$('div.fb-like').attr('data-href', articleFullUrl);
$('.twitter-share-button').attr('data-url', articleFullUrl);
}
}
var getArticleById = function(articleid){
for(var i=0; i < blogArticles.length;++i){
if (blogArticles[i].id === articleid){
return blogArticles[i];
}
}
return null;
}
var init = function(){
container.empty();
for(var i=0; i < blogArticles.length; ++i){
var link = blogArticles[i];
container.append('<li><a data-gatag="' +link.gatag+ '" data-index="' + link.index+ '" href="' + link.url + '">' + link.title + '</a></li>');
}
var articleid = $.urlParam(window.location.href, 'id');
if (!articleid || articleid == null){
articleid = blogArticles[0].id;
}
//hide share buttons
$('.share_buttons').css('display', 'none');
updateMetaTags(getArticleById(articleid));
var url = 'blog_articles' + '/' + articleid + ".html";
$( ".article" ).load(url, function( response, status, xhr) {
if ( status != "error" ) {
$('.share_buttons').css('display', 'block');
setTimeout(fixTwitter, 5000);
}
});
}
init();
}

View file

@ -0,0 +1,242 @@
var requestUtils={
'getParamValue':function(paramName){
let value= (location.search.split(paramName + '=')[1]||'').split('&')[0];
if (value && value.length > 0){
return value;
}
return null;
},
'isIOS':function(){
return /(iPad|iPhone|iPod)/g.test( navigator.userAgent );
},
'redirect':function(newUrl){
document.location = newUrl;
}
};
var goMap = {
'config':{
'containerid': 'gocontainer',
'defaults':{
'lat':51.505,
'lon':-0.09,
'zoom':13
}
},
'utils':{
'getPointFromUrl':function(){
let point = {};
point.lat = requestUtils.getParamValue('lat');
point.lon = requestUtils.getParamValue('lon');
point.zoom = requestUtils.getParamValue('z');
return point;
},
'isPointComplete':function(point){
if (!point.lat || !point.lon){
return false;
}
return true;
},
'extendPoint':function(initialPoint, newPoint){
let point={};
point.lat=newPoint.lat;
if (!point.lat || point.lat == null){
point.lat = initialPoint.lat;
}
point.lon=newPoint.lon;
if (!point.lon || point.lon == null){
point.lon = initialPoint.lon;
}
point.zoom=newPoint.zoom;
if (!point.zoom || point.zoom == null){
point.zoom = initialPoint.zoom;
}
return point;
}
},
'init': function(config){
if (config && typeof (config) == 'object') {
$.extend(goMap.config, config);
}
goMap.$container = $('#' + goMap.config.containerid);
goMap.$footer = goMap.$container.find('.gofooter');
goMap.$latitude = goMap.$container.find('.latitude');
goMap.$longitude = goMap.$container.find('.longitude');
let inputPoint = goMap.utils.getPointFromUrl();
goMap.point = goMap.utils.extendPoint(goMap.config.defaults, inputPoint);
goMap.refreshCoordinates();
goMap.map =$.mapwidget();
goMap.map.showPoint(goMap.point);
let inputComplete = goMap.utils.isPointComplete(inputPoint);
if (inputComplete){
goMap.map.addMarker(goMap.point);
}
goMap.point = goMap.utils.getPointFromUrl();
},
'refreshCoordinates':function(){
goMap.$latitude.text(goMap.point.lat);
goMap.$longitude.text(goMap.point.lon);
}
};
(function($) {
$.mapwidget = function(config) {
var loc = goMap.point.lat + '/' + goMap.point.lon;
var lparams = '?mlat='+goMap.point.lat + '&mlon=' + goMap.point.lon;
var mapobj={
config: $.extend({
'mapid':'map',
'maxzoom':20,
'maxnativezoom':19,
'sourceurl':'https://tile.osmand.net/hd/{z}/{x}/{y}.png',
'attribution':'&copy; <a href="https://www.openstreetmap.org/'+lparams+'#map=15/'+loc+'">OpenStreetMap</a> contributors'
}, config),
init:function(){
mapobj.map = L.map(mapobj.config.mapid);
L.tileLayer(mapobj.config.sourceurl, {
attribution: mapobj.config.attribution,
maxZoom: mapobj.config.maxzoom,
maxNativeZoom: mapobj.config.maxnativezoom
}).addTo(mapobj.map);
},
showPoint:function(point){
mapobj.map.setView([point.lat, point.lon], point.zoom);
},
addMarker:function(point){
L.marker([point.lat, point.lon]).addTo(mapobj.map);
}
};
mapobj.init();
return {
showPoint: mapobj.showPoint,
addMarker: mapobj.addMarker
};
};
})(jQuery);
(function($) {
$.timer=function(config){
var timerobj={
config: $.extend({
'timeoutInMs':300,
'maxActionDelayInMs':2000,
'action':function(){},
'actionparams':null
}, config),
init:function(){
timerobj.timer = null;
timerobj.startDate = null;
},
start:function(){
timerobj.cancel();
timerobj.startDate = new Date();
timerobj.timer=setTimeout(timerobj.onTimer, timerobj.config.timeoutInMs);
},
cancel:function(){
if (timerobj.timer != null){
clearTimeout(timerobj.timer);
timerobj.timer = null;
timerobj.startDate = null;
}
},
onTimer:function(){
timerobj.timer= null;
let now = new Date();
if(now - timerobj.startDate < timerobj.config.maxActionDelayInMs){
timerobj.config.action(timerobj.config.actionparams);
}
}
};
timerobj.init();
return {
start:timerobj.start,
cancel:timerobj.cancel
};
};
})(jQuery);
var iosAppRedirect = {
config:{
appPrefix:'osmandmaps://',
containerid:'gocontainer',
cookieName:'OsmAndInstalled',
cookieNoExpirationTimeoutInDays:30
},
init:function(config){
if (config && typeof (config) == 'object') {
$.extend(iosAppRedirect.config, config);
}
if (!requestUtils.isIOS()){
return;
}
iosAppRedirect.$container = $('#' + iosAppRedirect.config.containerid);
iosAppRedirect.$overlay = iosAppRedirect.$container.find('.overlay');
iosAppRedirect.$popup = iosAppRedirect.$container.find('.popup');
iosAppRedirect.$yesBtn = iosAppRedirect.$container.find('.yes');
iosAppRedirect.$noBtn = iosAppRedirect.$container.find('.no');
iosAppRedirect.$cancelBtn = iosAppRedirect.$container.find('.cancel');
iosAppRedirect.applestorelink = iosAppRedirect.$container.find('.gobadges .apple a').attr('href');
iosAppRedirect.applink = iosAppRedirect.config.appPrefix + document.location.search;
if (iosAppRedirect.isAppInstalled() === "yes"){
iosAppRedirect.redirectToApp();
return;
}
if (iosAppRedirect.isAppInstalled() === "no"){
return;
}
iosAppRedirect.$yesBtn.on('click', function(){
iosAppRedirect.redirectToApp();
iosAppRedirect.closePopup();
});
iosAppRedirect.$noBtn.on('click', function(){
iosAppRedirect.setCookie(true);
iosAppRedirect.closePopup();
window.open(iosAppRedirect.applestorelink , '_blank');
});
iosAppRedirect.$cancelBtn.on('click', function(){
iosAppRedirect.setCookie(false);
iosAppRedirect.closePopup();
});
iosAppRedirect.openPopup();
},
isAppInstalled:function(){
return Cookies.get('OsmAndInstalled');
},
redirectToApp:function(){
iosAppRedirect.timer = $.timer({action:iosAppRedirect.clearCookie});
iosAppRedirect.timer.start();
requestUtils.redirect(iosAppRedirect.applink);
},
setCookie:function(appInstalled){
if (appInstalled === true){
Cookies.set(iosAppRedirect.config.cookieName, "yes");
}else{
Cookies.set(iosAppRedirect.config.cookieName, "no", { expires: iosAppRedirect.config.cookieNoExpirationTimeoutInDays });
}
},
clearCookie:function(){
Cookies.remove('OsmAndInstalled');
},
openPopup:function(){
iosAppRedirect.$overlay.show();
iosAppRedirect.$popup.show();
},
closePopup:function(){
iosAppRedirect.$overlay.hide();
iosAppRedirect.$popup.hide();
}
};
$( document ).ready(function() {
goMap.init();
iosAppRedirect.init();
});

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,38 @@
(function($) {
$.fn.ellipsis = function()
{
return this.each(function()
{
var el = $(this);
if(el.css("overflow") == "hidden")
{
var text = el.html();
var multiline = el.hasClass('multiline');
var t = $(this.cloneNode(true))
.hide()
.css('position', 'absolute')
.css('overflow', 'visible')
.width(multiline ? el.width() : 'auto')
.height(multiline ? 'auto' : el.height())
;
el.after(t);
function height() { return t.height() > el.height(); };
function width() { return t.width() > el.width(); };
var func = multiline ? height : width;
while (text.length > 0 && func())
{
text = text.substr(0, text.length - 1);
t.html(text + "...");
}
el.html(t.html());
t.remove();
}
});
};
})(jQuery);

View file

@ -0,0 +1,165 @@
/*!
* JavaScript Cookie v2.1.4
* https://github.com/js-cookie/js-cookie
*
* Copyright 2006, 2015 Klaus Hartl & Fagner Brack
* Released under the MIT license
*/
;(function (factory) {
var registeredInModuleLoader = false;
if (typeof define === 'function' && define.amd) {
define(factory);
registeredInModuleLoader = true;
}
if (typeof exports === 'object') {
module.exports = factory();
registeredInModuleLoader = true;
}
if (!registeredInModuleLoader) {
var OldCookies = window.Cookies;
var api = window.Cookies = factory();
api.noConflict = function () {
window.Cookies = OldCookies;
return api;
};
}
}(function () {
function extend () {
var i = 0;
var result = {};
for (; i < arguments.length; i++) {
var attributes = arguments[ i ];
for (var key in attributes) {
result[key] = attributes[key];
}
}
return result;
}
function init (converter) {
function api (key, value, attributes) {
var result;
if (typeof document === 'undefined') {
return;
}
// Write
if (arguments.length > 1) {
attributes = extend({
path: '/'
}, api.defaults, attributes);
if (typeof attributes.expires === 'number') {
var expires = new Date();
expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);
attributes.expires = expires;
}
// We're using "expires" because "max-age" is not supported by IE
attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';
try {
result = JSON.stringify(value);
if (/^[\{\[]/.test(result)) {
value = result;
}
} catch (e) {}
if (!converter.write) {
value = encodeURIComponent(String(value))
.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
} else {
value = converter.write(value, key);
}
key = encodeURIComponent(String(key));
key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);
key = key.replace(/[\(\)]/g, escape);
var stringifiedAttributes = '';
for (var attributeName in attributes) {
if (!attributes[attributeName]) {
continue;
}
stringifiedAttributes += '; ' + attributeName;
if (attributes[attributeName] === true) {
continue;
}
stringifiedAttributes += '=' + attributes[attributeName];
}
return (document.cookie = key + '=' + value + stringifiedAttributes);
}
// Read
if (!key) {
result = {};
}
// To prevent the for loop in the first place assign an empty array
// in case there are no cookies at all. Also prevents odd result when
// calling "get()"
var cookies = document.cookie ? document.cookie.split('; ') : [];
var rdecode = /(%[0-9A-Z]{2})+/g;
var i = 0;
for (; i < cookies.length; i++) {
var parts = cookies[i].split('=');
var cookie = parts.slice(1).join('=');
if (cookie.charAt(0) === '"') {
cookie = cookie.slice(1, -1);
}
try {
var name = parts[0].replace(rdecode, decodeURIComponent);
cookie = converter.read ?
converter.read(cookie, name) : converter(cookie, name) ||
cookie.replace(rdecode, decodeURIComponent);
if (this.json) {
try {
cookie = JSON.parse(cookie);
} catch (e) {}
}
if (key === name) {
result = cookie;
break;
}
if (!key) {
result[name] = cookie;
}
} catch (e) {}
}
return result;
}
api.set = api;
api.get = function (key) {
return api.call(api, key);
};
api.getJSON = function () {
return api.apply({
json: true
}, [].slice.call(arguments));
};
api.defaults = {};
api.remove = function (key, attributes) {
api(key, '', extend(attributes, {
expires: -1
}));
};
api.withConverter = init;
return api;
}
return init(function () {});
}));

View file

@ -0,0 +1,29 @@
function mapselector(container){
var $cnt = $(container);
var $selectbox = $cnt.find(".selectbox");
$cnt.find("label").on('click', function(){
refreshMap();
});
var refreshMap = function(){
var selectedStyle = getSelectedStyle().val();
var selectedMap = getSelectedMap().val();
if (selectedStyle && selectedMap){
var imageName = selectedMap + "-" + selectedStyle + ".png";
$cnt.css('background-image', "url('/images/" + imageName + "')");
}
}
var getSelectedStyle = function(){
return $selectbox.find("input[name='style']:checked");
}
var getSelectedMap = function(){
return $selectbox.find("input[name='show']:checked");
}
refreshMap();
}

View file

@ -0,0 +1,35 @@
function applyPolStyles(){
if ($('.pds-box').length > 0){
$('.pds-box').css('border', 'none');
$('.pds-vote-button').css('float', 'left');
$('.pds-vote-button').css('background', 'none');
$('.pds-vote-button').css('background-color', '#FF8F00');
$('.pds-vote-button').css('color', '#fff');
$('.pds-vote-button').css('border', 'none');
$('.pds-vote-button').css('border-radius', '5px');
$('.pds-box-outer').css('padding', '0');
$('.pds-view-results').on('click', function(){
subscribeToReturnToPoll();
});
}else{
setTimeout(applyPolStyles, timeout);
}
}
function subscribeToReturnToPoll(){
if ($('.pds-return-poll').length > 0){
$('.pds-return-poll').on('click', function(){applyStyleOnBackToPoll();});
applyPolStyles();
}else{
setTimeout(subscribeToReturnToPoll, timeout);
}
}
function applyStyleOnBackToPoll(){
if ($('.pds-view-results').length >0){
applyPolStyles();
}else{
setTimeout(applyStyleOnBackToPoll, timeout);
}
}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,129 @@
var images_android=[
"promo-1s.png",
"promo-2s.png",
"promo-3s.png",
"promo-4s.png",
"promo-5s.png",
"promo-6s.png",
"promo-7s.png",
"promo-8s.png",
"promo-9s.png",
"promo-10s.png",
"promo-11s.png",
"promo-12s.png"
];
var images_ios=[
"ios-1s.png",
"ios-2s.png",
"ios-3s.png",
"ios-4s.png",
"ios-5s.png"
];
function slider(container){
var $cnt = $(container);
var $img1 = $cnt.find("#screenshot1");
var $img2 =$cnt.find("#screenshot2");
var $img3 = $cnt.find("#screenshot3");
var $img4 = $cnt.find("#screenshot4");
var $leftarrow = $cnt.find(".arrow.left");
var $rightarrow = $cnt.find(".arrow.right");
var $btnleft = $cnt.find(".button.left");
var $btnright = $cnt.find(".button.right");
var currentPosition =0;
var count =4;
var images = images_android;
var init = function(){
updatePictures();
updateArrows();
$leftarrow.on('click', function(){
if (currentPosition > 0){
currentPosition-=count;
updatePictures();
updateArrows();
}
});
$rightarrow.on('click', function(){
if (currentPosition + count < images.length){
currentPosition+=count;
updatePictures();
updateArrows();
}
});
$btnleft.on('click', function(){
if (!$btnleft.hasClass("active")){
$btnleft.addClass("active");
$btnright.removeClass("active");
$btnright.addClass
images = images_android;
currentPosition = 0;
updatePictures();
updateArrows();
}
});
$btnright.on('click', function(){
if (!$btnright.hasClass("active")){
$btnright.addClass("active");
$btnleft.removeClass("active");
images = images_ios;
currentPosition = 0;
updatePictures();
updateArrows();
}
});
}
var changePicture = function(img, index){
if (index < images.length){
img.attr("src", "images/" + images[index]);
}else{
img.attr("src", "images/empty.png");
}
}
var updatePictures = function(){
changePicture( $img1, currentPosition);
changePicture( $img2, currentPosition+1);
changePicture( $img3, currentPosition+2);
changePicture( $img4, currentPosition+3);
}
var updateArrows = function(){
if (currentPosition + count < images.length){
enableRightArrow();
}else{
disableRightArrow();
}
if (currentPosition== 0 ){
disableLeftArrow();
}else{
enableLeftArrow();
}
}
var enableLeftArrow = function(){
$leftarrow.attr("src", "images/left_arrow_orange.png");
while ($leftarrow.hasClass("disabled")){
$leftarrow.removeClass("disabled");
}
}
var disableLeftArrow = function(){
$leftarrow.attr("src", "images/left_arrow_grey.png");
$leftarrow.addClass("disabled");
}
var enableRightArrow = function(){
$rightarrow.attr("src", "images/right_arrow_orange.png");
while ($rightarrow.hasClass("disabled")){
$rightarrow.removeClass("disabled");
}
}
var disableRightArrow = function(){
$rightarrow.attr("src", "images/right_arrow_grey.png");
$rightarrow.addClass("disabled");
}
init();
}

View file

@ -1,6 +1,7 @@
package net.osmand.plus.server;
import android.util.Log;
import android.webkit.MimeTypeMap;
import net.osmand.plus.OsmandApplication;
@ -40,6 +41,7 @@ public class ApiRouter {
public NanoHTTPD.Response getStatic(String uri) {
InputStream is = null;
String mimeType = parseMimeType(uri);
if (androidContext != null) {
try {
is = androidContext.getAssets().open("server" + uri);
@ -48,7 +50,7 @@ public class ApiRouter {
}
return newFixedLengthResponse(
NanoHTTPD.Response.Status.OK,
"text/plain",
mimeType,
is,
is.available());
} catch (IOException e) {
@ -58,6 +60,16 @@ public class ApiRouter {
return ErrorResponses.response500;
}
private String parseMimeType(String url) {
String type = null;
if (url.endsWith(".js")) return "text/javascript";
String extension = MimeTypeMap.getFileExtensionFromUrl(url);
if (extension != null) {
type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
}
return type;
}
public NanoHTTPD.Response getGoHtml() {
String responseText = "";
if (androidContext != null) {