This commit is contained in:
a-ill 2023-07-14 22:27:11 +03:00
parent 54042ca875
commit 52ab70d0de
46 changed files with 244 additions and 93 deletions

View File

@ -31,10 +31,12 @@ for (let c of communes) {
} }
} }
export let communesMarkersLayer = L.layerGroup()
export function addMarkersCommunes(map,content) { export function addMarkersCommunes(map,content) {
for (let g of communes) { for (let g of communes) {
let coordinates let coordinates
let text = "" let text = "<b>Commune</b><br>"
for (let field in g) { for (let field in g) {
let fieldText = content[field] + ": " let fieldText = content[field] + ": "
if (field=="contact") { if (field=="contact") {
@ -62,6 +64,7 @@ export function addMarkersCommunes(map,content) {
shadowSize: [41, 41] shadowSize: [41, 41]
}); });
let marker = L.marker(coordinates, {icon: markerIcon}) let marker = L.marker(coordinates, {icon: markerIcon})
marker.addTo(map).bindPopup(text) marker.addTo(communesMarkersLayer).bindPopup(text)
} }
communesMarkersLayer.addTo(map)
} }

View File

@ -34,10 +34,12 @@ for (let g of coops) {
} }
} }
export let coopsMarkersLayer = L.layerGroup()
export function addMarkersCoops(map,content) { export function addMarkersCoops(map,content) {
for (let g of coops) { for (let g of coops) {
let coordinates let coordinates
let text = "" let text = "<b>Cooperative</b><br>"
for (let field in g) { for (let field in g) {
let fieldText let fieldText
if (field!="logo") { if (field!="logo") {
@ -65,6 +67,7 @@ export function addMarkersCoops(map,content) {
text += fieldText + g[field] + "<br>" text += fieldText + g[field] + "<br>"
} }
} }
L.marker(coordinates).addTo(map).bindPopup(text) L.marker(coordinates).addTo(coopsMarkersLayer).bindPopup(text)
} }
coopsMarkersLayer.addTo(map)
} }

View File

@ -47,15 +47,15 @@ for (let g of groups) {
} }
} }
let groupsLoaded = false export let groupsMarkersLayer = L.layerGroup()
let groupsMarkersLayerOut = L.layerGroup() let groupsMarkersLayerOut = L.layerGroup()
let groupsMarkersLayerIn = L.layerGroup() let groupsMarkersLayerIn = L.layerGroup()
let contactGeneral =["https://discord.gg/4BUau4AZre","DiscordInviteLink"] let contactGeneral =["https://discord.gg/4BUau4AZre","DiscordInviteLink"]
function addMarkerGroups(g,layer,content) { function addMarkersToLayer(g,layer,content) {
let coordinates let coordinates
let text = "" let text = "<b>Group</b><br>"
for (let field in g) { for (let field in g) {
let fieldText = content[field] + ": " let fieldText = content[field] + ": "
if (field=="contact") { if (field=="contact") {
@ -85,13 +85,13 @@ function addMarkerGroups(g,layer,content) {
export function addMarkersGroups(map,content) { export function addMarkersGroups(map,content) {
for (let g of groups) { for (let g of groups) {
addMarkerGroups(g,groupsMarkersLayerIn,content) addMarkersToLayer(g,groupsMarkersLayerIn,content)
} }
for (let gs of Object.values(groupsByCountry)) { for (let gs of Object.values(groupsByCountry)) {
if (gs.length==1) { if (gs.length==1) {
let g = {...gs[0]} let g = {...gs[0]}
g.location[0][1] = "" g.location[0][1] = ""
addMarkerGroups(g,groupsMarkersLayerOut,content) addMarkersToLayer(g,groupsMarkersLayerOut,content)
} }
else { else {
let locationName = [gs[0].location[0][0],""] let locationName = [gs[0].location[0][0],""]
@ -114,21 +114,22 @@ export function addMarkersGroups(map,content) {
contact: contact contact: contact
} }
addMarkerGroups(gNew,groupsMarkersLayerOut,content) addMarkersToLayer(gNew,groupsMarkersLayerOut,content)
} }
} }
groupsMarkersLayerOut.addTo(map) groupsMarkersLayerOut.addTo(groupsMarkersLayer)
groupsMarkersLayer.addTo(map)
map.on("zoomend", () => onZoomEnd(map)) map.on("zoomend", () => onZoomEnd(map))
} }
function onZoomEnd(map) { function onZoomEnd(map) {
let zoomLevel = map.getZoom() let zoomLevel = map.getZoom()
if (zoomLevel==3) { if (zoomLevel==3) {
map.removeLayer(groupsMarkersLayerIn) groupsMarkersLayer.removeLayer(groupsMarkersLayerIn)
groupsMarkersLayerOut.addTo(map) groupsMarkersLayerOut.addTo(groupsMarkersLayer)
} }
else if (zoomLevel==4) { else if (zoomLevel==4) {
map.removeLayer(groupsMarkersLayerOut) groupsMarkersLayer.removeLayer(groupsMarkersLayerOut)
groupsMarkersLayerIn.addTo(map) groupsMarkersLayerIn.addTo(groupsMarkersLayer)
} }
} }

View File

@ -20,10 +20,12 @@ for (let g of parties) {
} }
} }
export let partiesMarkersLayer = L.layerGroup()
export function addMarkersParties(map,content) { export function addMarkersParties(map,content) {
for (let g of parties) { for (let g of parties) {
let coordinates let coordinates
let text = "" let text = "<b>Party</b><br>"
for (let field in g) { for (let field in g) {
let fieldText let fieldText
if (field!="logo") { if (field!="logo") {
@ -58,6 +60,7 @@ export function addMarkersParties(map,content) {
shadowSize: [41, 41] shadowSize: [41, 41]
}); });
let marker = L.marker(coordinates, {icon: markerIcon}) let marker = L.marker(coordinates, {icon: markerIcon})
marker.addTo(map).bindPopup(text) marker.addTo(partiesMarkersLayer).bindPopup(text)
} }
partiesMarkersLayer.addTo(map)
} }

View File

@ -1,5 +1,5 @@
{ {
"heading": "Communes", "communes": "Communes",
"p1": "We establish libertarian socialist communes by buying land, housing and the means of production which are then owned by the members of these communes. There is no private property within the communes and, therefore, exploitation and suffering that comes with it. Decisions are made using direct democracy with a focus on consensus, ensuring that each commune member has power over decisions that affect their life. Communes try to establish their own cooperatives in order to finance their development becoming financially independent and sustainable, which allows for their survival and growth. Within communes the gift economy is utilized whenever possible. Each commune is a small beacon of socialism within the dark capitalist world showing us how good life can be if only we achieve our goal.", "p1": "We establish libertarian socialist communes by buying land, housing and the means of production which are then owned by the members of these communes. There is no private property within the communes and, therefore, exploitation and suffering that comes with it. Decisions are made using direct democracy with a focus on consensus, ensuring that each commune member has power over decisions that affect their life. Communes try to establish their own cooperatives in order to finance their development becoming financially independent and sustainable, which allows for their survival and growth. Within communes the gift economy is utilized whenever possible. Each commune is a small beacon of socialism within the dark capitalist world showing us how good life can be if only we achieve our goal.",
"subheading1": "Our Communes", "subheading1": "Our Communes",
"subheading2": "Europe", "subheading2": "Europe",

View File

@ -1,5 +1,5 @@
{ {
"heading": "Cooperatives", "cooperatives": "Cooperatives",
"p1": "We establish worker cooperatives, which is a business model where employees own and control the enterprise. Each worker has a voice in decision-making, and profits are distributed based on individual contributions. This participatory structure fosters ownership, motivation, and job satisfaction, creating a more fulfilling work experience as well as challenging the wealth concentration in traditional capitalist businesses. By focusing on employees' needs, our cooperatives create supportive and sustainable work environments that foster social cohesion and job security. We also prioritize the interests of local communities, taking a long-term perspective.", "p1": "We establish worker cooperatives, which is a business model where employees own and control the enterprise. Each worker has a voice in decision-making, and profits are distributed based on individual contributions. This participatory structure fosters ownership, motivation, and job satisfaction, creating a more fulfilling work experience as well as challenging the wealth concentration in traditional capitalist businesses. By focusing on employees' needs, our cooperatives create supportive and sustainable work environments that foster social cohesion and job security. We also prioritize the interests of local communities, taking a long-term perspective.",
"subheading1": "Our Cooperatives", "subheading1": "Our Cooperatives",
"subheading2": "Europe", "subheading2": "Europe",

View File

@ -1,5 +1,5 @@
{ {
"heading": "Groups", "groups": "Groups",
"p1": "We aim to raise awareness about the negative impact of current politico-economic systems on our well-being. We engage in mutual aid and collective action to address immediate challenges within capitalism. Through mutual aid, we support each other by sharing resources, knowledge, and skills, fostering solidarity and resilience. Whether it's community gardens, food cooperatives, or support networks, our goal is to make life under capitalism more bearable and create pockets of resistance and alternatives within the system.", "p1": "We aim to raise awareness about the negative impact of current politico-economic systems on our well-being. We engage in mutual aid and collective action to address immediate challenges within capitalism. Through mutual aid, we support each other by sharing resources, knowledge, and skills, fostering solidarity and resilience. Whether it's community gardens, food cooperatives, or support networks, our goal is to make life under capitalism more bearable and create pockets of resistance and alternatives within the system.",
"subheading1": "Our Groups", "subheading1": "Our Groups",
"subheading2": "Europe", "subheading2": "Europe",

View File

@ -7,5 +7,9 @@
"cooperativesTitle": "COOPERATIVES", "cooperativesTitle": "COOPERATIVES",
"cooperativesText": "We form worker cooperatives to finance the operations of our groups and communes. Recognizing that economic power influences political power, we consider the establishment of cooperatives to be one of the initial steps towards achieving socialism.", "cooperativesText": "We form worker cooperatives to finance the operations of our groups and communes. Recognizing that economic power influences political power, we consider the establishment of cooperatives to be one of the initial steps towards achieving socialism.",
"partiesTitle": "PARTIES", "partiesTitle": "PARTIES",
"partiesText": "We create political parties in order to push for reforms allowing us to easier further our goals, to move the Overton window as well as to gain popularity. However, we recognize that we cannot achieve libertarian socialism through institutions which act contrary to our goals." "partiesText": "We create political parties in order to push for reforms allowing us to easier further our goals, to move the Overton window as well as to gain popularity. However, we recognize that we cannot achieve libertarian socialism through institutions which act contrary to our goals.",
"findUs": "Find Us",
"whatNow": "What Now?",
"joinUs": "Join Us",
"talkWithUs": "Talk With Us"
} }

View File

@ -1,5 +1,5 @@
{ {
"heading": "Parties", "parties": "Parties",
"p1": "We create political parties in order to push for reforms allowing us to easier further our goals, to move the Overton window as well as to gain popularity. However, we recognize that we cannot achieve libertarian socialism through institutions which act contrary to our goals. Nevertheless, we must strategically utilize any opportunity that we have in order to succeed.", "p1": "We create political parties in order to push for reforms allowing us to easier further our goals, to move the Overton window as well as to gain popularity. However, we recognize that we cannot achieve libertarian socialism through institutions which act contrary to our goals. Nevertheless, we must strategically utilize any opportunity that we have in order to succeed.",
"subheading1": "Our Parties", "subheading1": "Our Parties",
"name": "Name", "name": "Name",

View File

@ -1,5 +1,5 @@
{ {
"heading": "Коммуны", "communes": "Коммуны",
"p1": "Мы создаем либертарные социалистические коммуны, покупая землю, жилье и средства производства, которые затем принадлежат членам этих коммун. В коммунах нет частной собственности и, следовательно, эксплуатации и страданий, которые с ней связаны. Решения принимаются с использованием прямой демократии с упором на консенсус, гарантируя, что каждый член сообщества имеет право принимать решения, влияющие на его жизнь. Сообщества пытаются создавать свои собственные кооперативы, чтобы финансировать свое развитие, становясь финансово независимыми и устойчивыми, что позволяет им выживать и расти. В сообществах по возможности используется экономика дарения. Каждая коммуна — это маленький маяк социализма в темном капиталистическом мире, показывающий нам, насколько хорошей может быть жизнь, если мы только достигнем своей цели.", "p1": "Мы создаем либертарные социалистические коммуны, покупая землю, жилье и средства производства, которые затем принадлежат членам этих коммун. В коммунах нет частной собственности и, следовательно, эксплуатации и страданий, которые с ней связаны. Решения принимаются с использованием прямой демократии с упором на консенсус, гарантируя, что каждый член сообщества имеет право принимать решения, влияющие на его жизнь. Сообщества пытаются создавать свои собственные кооперативы, чтобы финансировать свое развитие, становясь финансово независимыми и устойчивыми, что позволяет им выживать и расти. В сообществах по возможности используется экономика дарения. Каждая коммуна — это маленький маяк социализма в темном капиталистическом мире, показывающий нам, насколько хорошей может быть жизнь, если мы только достигнем своей цели.",
"subheading1": "Наши коммуны", "subheading1": "Наши коммуны",
"location": "Локация", "location": "Локация",

View File

@ -1,5 +1,5 @@
{ {
"heading": "Кооперативы", "cooperatives": "Кооперативы",
"p1": "Мы создаем рабочие кооперативы, которые представляют собой бизнес-модель, в которой работники владеют предприятием. Каждый работник имеет право голоса при принятии решений, а прибыль распределяется на основе индивидуальных вкладов. Эта структура способствует мотивации и удовлетворенности работой, создавая более приятные условия труда, а также бросает вызов концентрации богатства в традиционных капиталистических предприятиях. Сосредоточив внимание на потребностях сотрудников, наши кооперативы создают благоприятную и устойчивую рабочую среду, которая способствует социальной сплоченности и гарантиям занятости. Мы также уделяем первостепенное внимание интересам местных сообществ, ориентируясь на долгосрочную перспективу.", "p1": "Мы создаем рабочие кооперативы, которые представляют собой бизнес-модель, в которой работники владеют предприятием. Каждый работник имеет право голоса при принятии решений, а прибыль распределяется на основе индивидуальных вкладов. Эта структура способствует мотивации и удовлетворенности работой, создавая более приятные условия труда, а также бросает вызов концентрации богатства в традиционных капиталистических предприятиях. Сосредоточив внимание на потребностях сотрудников, наши кооперативы создают благоприятную и устойчивую рабочую среду, которая способствует социальной сплоченности и гарантиям занятости. Мы также уделяем первостепенное внимание интересам местных сообществ, ориентируясь на долгосрочную перспективу.",
"subheading1": "Наши кооперативы", "subheading1": "Наши кооперативы",
"subheading2": "Европа", "subheading2": "Европа",

View File

@ -1,5 +1,5 @@
{ {
"heading": "Группы", "groups": "Группы",
"p1": "Мы стремимся повышать осведомленность о негативном влиянии нынешних политико-экономических систем на наше благополучие. Мы участвуем во взаимопомощи и коллективных действиях для решения насущных проблем. Посредством взаимопомощи мы поддерживаем друг друга, делясь ресурсами, знаниями и навыками, укрепляя солидарность и устойчивость к негодам. Будь то общественные сады, продовольственные кооперативы или сети поддержки, наша цель — сделать жизнь при капитализме более терпимой и создать очаги сопротивления и альтернатив внутри системы.", "p1": "Мы стремимся повышать осведомленность о негативном влиянии нынешних политико-экономических систем на наше благополучие. Мы участвуем во взаимопомощи и коллективных действиях для решения насущных проблем. Посредством взаимопомощи мы поддерживаем друг друга, делясь ресурсами, знаниями и навыками, укрепляя солидарность и устойчивость к негодам. Будь то общественные сады, продовольственные кооперативы или сети поддержки, наша цель — сделать жизнь при капитализме более терпимой и создать очаги сопротивления и альтернатив внутри системы.",
"subheading1": "Наши группы", "subheading1": "Наши группы",
"location": "Локация", "location": "Локация",

View File

@ -7,5 +7,9 @@
"cooperativesTitle": "КООПЕРАТИВЫ", "cooperativesTitle": "КООПЕРАТИВЫ",
"cooperativesText": "Мы формируем рабочие кооперативы для финансирования операций наших групп и коммун, а также формирования основы новой социалистической экономики. Признавая, что экономическая власть влияет на политическую власть, мы считаем создание кооперативов одним из первых шагов на пути к социализму.", "cooperativesText": "Мы формируем рабочие кооперативы для финансирования операций наших групп и коммун, а также формирования основы новой социалистической экономики. Признавая, что экономическая власть влияет на политическую власть, мы считаем создание кооперативов одним из первых шагов на пути к социализму.",
"partiesTitle": "ПАРТИИ", "partiesTitle": "ПАРТИИ",
"partiesText": "Мы создаем политические партии, чтобы продвигать реформы, которые позволят легче достичь наших целей, сдвигать окно Овертона и увеличивать нашу популярность. Однако мы признаем, что мы не можем достичь либертарианского социализма с помощью институтов, действующих против наших целей." "partiesText": "Мы создаем политические партии, чтобы продвигать реформы, которые позволят легче достичь наших целей, сдвигать окно Овертона и увеличивать нашу популярность. Однако мы признаем, что мы не можем достичь либертарианского социализма с помощью институтов, действующих против наших целей.",
"findUs": "Найди нас",
"whatNow": "Что теперь?",
"joinUs": "Присоединяйся",
"talkWithUs": "Напиши нам"
} }

View File

@ -1,5 +1,5 @@
{ {
"heading": "Партии", "parties": "Партии",
"p1": "Мы создаем политические партии, чтобы продвигать реформы, которые позволят легче достичь наших целей, сдвигать окно Овертона и увеличивать нашу популярность. Однако мы признаем, что мы не можем достичь либертарного социализма с помощью институтов, действующих против наших целей. Тем не менее, мы должны стратегически использовать любую возможность, которая у нас есть, чтобы добиться успеха.", "p1": "Мы создаем политические партии, чтобы продвигать реформы, которые позволят легче достичь наших целей, сдвигать окно Овертона и увеличивать нашу популярность. Однако мы признаем, что мы не можем достичь либертарного социализма с помощью институтов, действующих против наших целей. Тем не менее, мы должны стратегически использовать любую возможность, которая у нас есть, чтобы добиться успеха.",
"subheading1": "Наши партии", "subheading1": "Наши партии",
"name": "Имя", "name": "Имя",

View File

@ -32,7 +32,7 @@
<div id="container"> <div id="container">
<!--<img src="img/crowd.png" id="crowd" alt="crowd">--> <!--<img src="img/crowd.png" id="crowd" alt="crowd">-->
<div id="text-container"> <div id="text-container">
<h1>{$content.heading}</h1> <h1>{$content.communes}</h1>
<img id="commune-img" src="/img/common/commune.svg" alt="commune"> <img id="commune-img" src="/img/common/commune.svg" alt="commune">
<p>{$content.p1}</p> <p>{$content.p1}</p>
<h3>{$content.subheading1}</h3> <h3>{$content.subheading1}</h3>

View File

@ -8,6 +8,7 @@
// Export statements // Export statements
export let callback = null export let callback = null
export let colors = null
// Main code // Main code
let mapContainer let mapContainer
@ -21,14 +22,20 @@
attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors', attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
minNativeZoom: 2, minNativeZoom: 2,
minZoom: 2, minZoom: 2,
maxNativeZoom: 16, maxNativeZoom: 14,
maxZoom: 16, maxZoom: 14,
}).addTo(map); }).addTo(map);
return map return map
} }
onMount(() => { onMount(() => {
callback(createMap) callback(createMap)
if (colors!=null) {
let els = mapContainer.getElementsByClassName("leaflet-control-layers-overlays")[0].children
for (let i=0;i<els.length;i++) {
els[i].children[0].children[0].style.accentColor = colors[i]
}
}
}) })
</script> </script>
@ -41,7 +48,8 @@
#map { #map {
height: var(--height); height: var(--height);
width: var(--width,100%); width: var(--width,100%);
margin-bottom: var(--margin-bottom,0) margin-top: var(--margin-top,0);
margin-bottom: var(--margin-bottom,0);
} }
</style> </style>

View File

@ -31,7 +31,7 @@
{#if $loaded==2} {#if $loaded==2}
<div id="container"> <div id="container">
<div id="text-container"> <div id="text-container">
<h1>{$content.heading}</h1> <h1>{$content.cooperatives}</h1>
<img id="coops-img" src="/img/common/coops.svg" alt="coops"> <img id="coops-img" src="/img/common/coops.svg" alt="coops">
<p>{$content.p1}</p> <p>{$content.p1}</p>
<h3>{$content.subheading1}</h3> <h3>{$content.subheading1}</h3>
@ -113,7 +113,7 @@
.location-info { .location-info {
position: relative; position: relative;
margin-bottom: 1rem; margin-bottom: 2rem;
} }
.location-info p { .location-info p {

View File

@ -37,7 +37,7 @@
</g> </g>
</svg> </svg>
</button> </button>
<p id="footer-copyright">Licensed under a Creative Commons <a href="https://creativecommons.org/licenses/by/4.0/legalcode " target="_blank" rel=noreferrer >CC BY 4.0 license.</a></p> <p id="footer-copyright">Licensed under a Creative Commons <a href="https://creativecommons.org/licenses/by/4.0/legalcode " target="_blank" rel=noreferrer >CC BY 4.0 license</a></p>
</div> </div>
</footer> </footer>
{/if} {/if}

View File

@ -32,7 +32,7 @@
<div id="container"> <div id="container">
<!--<img src="img/crowd.png" id="crowd" alt="crowd">--> <!--<img src="img/crowd.png" id="crowd" alt="crowd">-->
<div id="text-container"> <div id="text-container">
<h1>{$content.heading}</h1> <h1>{$content.groups}</h1>
<img id="groups-img" src="/img/common/groups.svg" alt="groups"> <img id="groups-img" src="/img/common/groups.svg" alt="groups">
<p>{$content.p1}</p> <p>{$content.p1}</p>
<h3>{$content.subheading1}</h3> <h3>{$content.subheading1}</h3>

View File

@ -4,10 +4,10 @@
// Import statements // Import statements
import { onMount } from 'svelte' import { onMount } from 'svelte'
import { writable } from 'svelte/store'; import { writable } from 'svelte/store';
import { addMarkersGroups } from '/js/groups.js' import { addMarkersGroups, groupsMarkersLayer } from '/js/groups.js'
import { addMarkersCoops } from '/js/coops.js' import { addMarkersCoops, coopsMarkersLayer } from '/js/coops.js'
import { addMarkersCommunities } from '/js/communities.js' import { addMarkersCommunes, communesMarkersLayer } from '/js/communes.js'
import { addMarkersParties } from '/js/parties.js' import { addMarkersParties, partiesMarkersLayer } from '/js/parties.js'
import { loadLocaleContent } from "/js/libraries/serverTools.js" import { loadLocaleContent } from "/js/libraries/serverTools.js"
// Import components // Import components
@ -18,7 +18,7 @@
let content = writable({}) let content = writable({})
loadLocaleContent(content,"groups-component",loaded) loadLocaleContent(content,"groups-component",loaded)
loadLocaleContent(content,"communities-component",loaded) loadLocaleContent(content,"communes-component",loaded)
loadLocaleContent(content,"cooperatives-component",loaded) loadLocaleContent(content,"cooperatives-component",loaded)
loadLocaleContent(content,"parties-component",loaded) loadLocaleContent(content,"parties-component",loaded)
loadLocaleContent(content,"countries",loaded) loadLocaleContent(content,"countries",loaded)
@ -27,9 +27,17 @@
function mapCallback(createMap,content) { function mapCallback(createMap,content) {
let map = createMap([22, 0],2) let map = createMap([22, 0],2)
addMarkersGroups(map,content) addMarkersGroups(map,content)
addMarkersCommunities(map,content) addMarkersCommunes(map,content)
addMarkersCoops(map,content) addMarkersCoops(map,content)
addMarkersParties(map,content) addMarkersParties(map,content)
let overlayMaps = {
"Groups": groupsMarkersLayer,
"Communes": communesMarkersLayer,
"Coops": coopsMarkersLayer,
"Parties": partiesMarkersLayer,
}
L.control.layers(null, overlayMaps).addTo(map)
} }
onMount(() => { onMount(() => {

View File

@ -3,11 +3,15 @@
<script> <script>
// Import statements // Import statements
import { onMount } from 'svelte' import { onMount } from 'svelte'
import { loadLocaleContent } from "/js/libraries/serverTools.js"
import { writable } from 'svelte/store'; import { writable } from 'svelte/store';
import { addMarkersGroups, groupsMarkersLayer } from '/js/groups.js'
import { addMarkersCoops, coopsMarkersLayer } from '/js/coops.js'
import { addMarkersCommunes, communesMarkersLayer } from '/js/communes.js'
import { addMarkersParties, partiesMarkersLayer } from '/js/parties.js'
import { loadLocaleContent } from "/js/libraries/serverTools.js"
// Import components // Import components
import "/js/components/map-component.js"
// Main code // Main code
let grid let grid
@ -24,17 +28,37 @@
} }
} }
loadLocaleContent(content,"groups-component",loaded)
loadLocaleContent(content,"communes-component",loaded)
loadLocaleContent(content,"cooperatives-component",loaded)
loadLocaleContent(content,"parties-component",loaded)
loadLocaleContent(content,"countries",loaded) loadLocaleContent(content,"countries",loaded)
let locale = loadLocaleContent(content,"landing-component",loaded,changeWidth) let locale = loadLocaleContent(content,"landing-component",loaded,changeWidth)
changeWidth(locale) changeWidth(locale)
function mapCallback(createMap,content) {
let map = createMap([22, 0],2)
addMarkersGroups(map,content)
addMarkersCommunes(map,content)
addMarkersCoops(map,content)
addMarkersParties(map,content)
let overlayMaps = {}
overlayMaps[content.groups] = groupsMarkersLayer
overlayMaps[content.communes] = communesMarkersLayer
overlayMaps[content.cooperatives] = coopsMarkersLayer
overlayMaps[content.parties] = partiesMarkersLayer
L.control.layers(null, overlayMaps).addTo(map)
}
onMount(() => { onMount(() => {
}) })
</script> </script>
{#key $loaded} {#key $loaded}
{#if $loaded==2} {#if $loaded==6}
<div id="container"> <div id="container">
<picture> <picture>
<source srcset="/img/crowd.webp"> <source srcset="/img/crowd.webp">
@ -46,26 +70,33 @@
<p>{$content.top}</p> <p>{$content.top}</p>
<div bind:this={grid} id="container-grid" style="--grid-width: {gridWidth}"> <div bind:this={grid} id="container-grid" style="--grid-width: {gridWidth}">
<div> <div>
<h2>{$content.groupsTitle}</h2> <a href={"/" + locale + "/groups"}><h2>{$content.groupsTitle}</h2></a>
<img id="groups-img" src="/img/common/groups.svg" alt="groups"> <img id="groups-img" src="/img/common/groups.svg" alt="groups">
<p>{$content.groupsText}</p> <p>{$content.groupsText}</p>
</div> </div>
<div> <div>
<h2>{$content.communesTitle}</h2> <a href={"/" + locale + "/communes"}><h2>{$content.communesTitle}</h2></a>
<img id="communes-img" src="/img/common/commune.svg" alt="communes"> <img id="communes-img" src="/img/common/commune.svg" alt="communes">
<p>{$content.communesText}</p> <p>{$content.communesText}</p>
</div> </div>
<div> <div>
<h2>{$content.cooperativesTitle}</h2> <a href={"/" + locale + "/coops"}><h2>{$content.cooperativesTitle}</h2></a>
<img id="coops-img" src="/img/common/coops.svg" alt="coops"> <img id="coops-img" src="/img/common/coops.svg" alt="coops">
<p>{$content.cooperativesText}</p> <p>{$content.cooperativesText}</p>
</div> </div>
<div> <div>
<h2>{$content.partiesTitle}</h2> <a href={"/" + locale + "/parties"}><h2>{$content.partiesTitle}</h2></a>
<img id="parties-img" src="/img/common/parties.svg" alt="coops"> <img id="parties-img" src="/img/common/parties.svg" alt="coops">
<p>{$content.partiesText}</p> <p>{$content.partiesText}</p>
</div> </div>
</div> </div>
<h1>{$content.findUs}</h1>
<map-component id="map" callback={(createMap) => mapCallback(createMap,$content)} colors={["#23AC20","#CA2437","#217BC9","#FFD326"]}></map-component>
<h1>{$content.whatNow}</h1>
<div id="action-container">
<a class="link-button" href={"/" + locale + "/join-us"}>{$content.joinUs}</a>
<a class="link-button" href="https://discord.gg/xAPZmyr8B6" target="_blank" rel=noreferrer >{$content.talkWithUs}</a>
</div>
</div> </div>
</div> </div>
{/if} {/if}
@ -74,7 +105,38 @@
<style> <style>
@import '/css/common.css'; @import '/css/common.css';
#container-grid > div > h2 { #action-container {
display: flex;
justify-content: space-between;
margin: auto;
margin-top: 2rem;
max-width: 34rem;
}
.link-button {
display: inline-block;
font-size: 1.6rem;
font-family: var(--sans-serif,sans-serif);
width: 14rem;
line-height: 4rem;
background: #cb1816;
color: white;
text-align: center;
}
#map {
--margin-top: 1rem;
--height: 30rem;
--width: 100%;
--margin-bottom: 3rem;
}
h1 {
font-size: 2rem;
text-align: center;
}
#container-grid > div > a > h2 {
text-align: center; text-align: center;
} }
@ -124,6 +186,7 @@
grid-gap: 4rem; grid-gap: 4rem;
row-gap: 3rem; row-gap: 3rem;
margin-top: 2rem; margin-top: 2rem;
margin-bottom: 3rem;
} }
#container-grid > div { #container-grid > div {
@ -138,10 +201,21 @@
@media only screen and (max-width: 1060px) { @media only screen and (max-width: 1060px) {
#container-grid { #container-grid {
display: grid; display: flex;
grid-template-columns: 1fr; flex-direction: column;
grid-gap: 2rem; gap: 2rem;
} }
#action-container {
flex-direction: column;
align-items: center;
gap: 2.5rem;
}
#container-grid >:nth-child(2) {
height: calc(100% - 2rem);
}
} }
</style> </style>

View File

@ -13,6 +13,7 @@
let localesDropdown let localesDropdown
let loaded = writable(0) let loaded = writable(0)
let content = writable({}) let content = writable({})
let logoText
let locale = loadLocaleContent(content,"navbar-component",loaded) let locale = loadLocaleContent(content,"navbar-component",loaded)
@ -50,6 +51,31 @@
location.href = loc location.href = loc
} }
function fixHeading() {
if (locale=="ru") {
let func = () => {
if (logoText==undefined) {
setTimeout(func,100)
}
else {
if (window.innerWidth < 400 && logoText.style.lineHeight!="100%") {
logoText.style.lineHeight = "120%"
logoText.style.top = "1rem"
logoText.style.width = "16rem"
}
else if (window.innerWidth > 400 && logoText.style.lineHeight!="400%") {
logoText.style.lineHeight = "400%"
logoText.style.top = "0rem"
logoText.style.width = "auto"
}
}
}
func()
addEventListener("resize", func)
}
}
onMount(() => { onMount(() => {
}) })
@ -59,6 +85,7 @@
<!-- Navigation bar --> <!-- Navigation bar -->
{#key loaded} {#key loaded}
{#if Object.keys($content).length!=0} {#if Object.keys($content).length!=0}
{fixHeading()}
<header bind:this={navbar} id="navbar"> <header bind:this={navbar} id="navbar">
<!-- Hamburger icon --> <!-- Hamburger icon -->
<input bind:this={hambInput} type="checkbox" id="side-menu" on:click={changeNavbar}> <input bind:this={hambInput} type="checkbox" id="side-menu" on:click={changeNavbar}>
@ -66,7 +93,7 @@
<!-- Logo --> <!-- Logo -->
<a id=logo-container href={"/" + locale + "/"}> <a id=logo-container href={"/" + locale + "/"}>
<img src="/img/common/flag.png" id="navbar-logo" alt="logo"> <img src="/img/common/flag.png" id="navbar-logo" alt="logo">
<span id="navbar-logo-text">{$content.orgName}</span> <span bind:this={logoText} id="navbar-logo-text" >{@html $content.orgName}</span>
</a> </a>
<!-- Menu --> <!-- Menu -->
<nav id="nav"> <nav id="nav">
@ -139,11 +166,9 @@
#navbar-logo-text { #navbar-logo-text {
position: relative; position: relative;
width: auto; word-wrap: normal;
height: 100%; height: 100%;
line-height: 400%; line-height: 400%;
white-space: nowrap;
text-align: center;
font-size: 1.4rem; font-size: 1.4rem;
color: #292222; color: #292222;
font-family: var(--sans-serif, sans-serif); font-family: var(--sans-serif, sans-serif);

View File

@ -32,7 +32,7 @@
<div id="container"> <div id="container">
<!--<img src="img/crowd.png" id="crowd" alt="crowd">--> <!--<img src="img/crowd.png" id="crowd" alt="crowd">-->
<div id="text-container"> <div id="text-container">
<h1>{$content.heading}</h1> <h1>{$content.parties}</h1>
<img id="party-img" src="/img/common/parties.svg" alt="party"> <img id="party-img" src="/img/common/parties.svg" alt="party">
<p>{$content.p1}</p> <p>{$content.p1}</p>
<h3>{$content.subheading1}</h3> <h3>{$content.subheading1}</h3>

View File

@ -31,10 +31,12 @@ for (let c of communes) {
} }
} }
export let communesMarkersLayer = L.layerGroup()
export function addMarkersCommunes(map,content) { export function addMarkersCommunes(map,content) {
for (let g of communes) { for (let g of communes) {
let coordinates let coordinates
let text = "" let text = "<b>Commune</b><br>"
for (let field in g) { for (let field in g) {
let fieldText = content[field] + ": " let fieldText = content[field] + ": "
if (field=="contact") { if (field=="contact") {
@ -62,6 +64,7 @@ export function addMarkersCommunes(map,content) {
shadowSize: [41, 41] shadowSize: [41, 41]
}); });
let marker = L.marker(coordinates, {icon: markerIcon}) let marker = L.marker(coordinates, {icon: markerIcon})
marker.addTo(map).bindPopup(text) marker.addTo(communesMarkersLayer).bindPopup(text)
} }
communesMarkersLayer.addTo(map)
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{S as t,i as e,a as o,b as r,s as a,e as i,n,d as s,c as m,f as c,t as f,g as d,h as l,v as g,l as h,q as p,m as u}from"./index-4348483d.js";import{w as b}from"./index-71440b21.js";import{loadLocaleContent as w}from"../../../../../../../../../js/libraries/serverTools.js";function v(t){let e,o,a,i,n,m,b,w,v,y,x,k,L,j,_,z,B,C,T,U,A,H,M=t[1].contactUs+"",R=t[1].inviteLink+"",D=t[1].inviteLink+"";return{c(){e=c("footer"),o=c("div"),a=c("div"),i=c("div"),n=c("h2"),m=f(M),b=d(),w=c("p"),v=f("Discord: "),y=c("a"),x=f(R),k=d(),L=c("p"),j=f("WhatsApp: "),_=c("a"),z=f(D),B=d(),C=c("button"),C.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="42.545" height="72.601" viewBox="0 0 42.545 72.601"><g id="Group_268" data-name="Group 268" transform="translate(-6.177 -2.399)"><rect id="Rectangle_146" data-name="Rectangle 146" width="11" height="51" rx="5.5" transform="translate(22 24)" fill="#cb1816"></rect><path id="Path_1145" data-name="Path 1145" d="M23.814,4.021a5,5,0,0,1,7.372,0l16.134,17.6c2.94,3.207,1.046,10.4-3.686,8.379S28.02,14.081,28.391,13.524,16.544,27.976,11.366,30,4.741,24.828,7.68,21.621Z" fill="#DD1C1A"></path></g></svg>',T=d(),U=c("p"),U.innerHTML='Licensed under a Creative Commons <a href="https://creativecommons.org/licenses/by/4.0/legalcode " target="_blank" rel="noreferrer">CC BY 4.0 license.</a>',l(y,"href","https://discord.gg/xAPZmyr8B6"),l(y,"target","_blank"),l(y,"rel","noreferrer"),g(y,"margin-left","1.8rem"),l(_,"href","https://chat.whatsapp.com/BhnmUNljUxJ2AjeHUwyTKh"),l(_,"target","_blank"),l(_,"rel","noreferrer"),g(_,"margin-left","0.5rem"),l(i,"id","contact-us-container"),l(a,"id","footer-grid-content-container"),l(a,"class","logged"),l(C,"id","footer-up"),l(C,"aria-label","go up"),l(U,"id","footer-copyright"),l(o,"id","footer-content-container")},m(s,c){r(s,e,c),h(e,o),h(o,a),h(a,i),h(i,n),h(n,m),h(i,b),h(i,w),h(w,v),h(w,y),h(y,x),h(i,k),h(i,L),h(L,j),h(L,_),h(_,z),h(o,B),h(o,C),h(o,T),h(o,U),A||(H=p(C,"click",t[4]),A=!0)},p(t,e){2&e&&M!==(M=t[1].contactUs+"")&&u(m,M),2&e&&R!==(R=t[1].inviteLink+"")&&u(x,R),2&e&&D!==(D=t[1].inviteLink+"")&&u(z,D)},d(t){t&&s(e),A=!1,H()}}}function y(t){let e,o=2==t[0]&&v(t);return{c(){o&&o.c(),e=i()},m(t,a){o&&o.m(t,a),r(t,e,a)},p(t,r){2==t[0]?o?o.p(t,r):(o=v(t),o.c(),o.m(e.parentNode,e)):o&&(o.d(1),o=null)},d(t){o&&o.d(t),t&&s(e)}}}function x(t){let e,o=t[0],m=y(t);return{c(){m.c(),e=i(),this.c=n},m(t,o){m.m(t,o),r(t,e,o)},p(t,[r]){1&r&&a(o,o=t[0])?(m.d(1),m=y(t),m.c(),m.m(e.parentNode,e)):m.p(t,r)},i:n,o:n,d(t){t&&s(e),m.d(t)}}}function k(t,e,o){let r,a,i=b(0);m(t,i,(t=>o(0,r=t)));let n=b({});m(t,n,(t=>o(1,a=t))),w(n,"countries",i),w(n,"footer-component",i);return[r,a,i,n,()=>{location.href="#"}]}class L extends t{constructor(t){super(),this.shadowRoot.innerHTML="<style>@import '/css/common.css';footer{position:relative;bottom:0;width:100%;height:auto;background:#5B6970;border-top:#cb1816 solid 0.5rem}footer p,footer a{font-family:var(--sans-serif)}#footer-content-container{position:relative;margin:auto;padding-top:2rem;max-width:116rem;width:97vw}#footer-grid-content-container{display:grid;margin-left:2rem;margin-right:2rem;margin-bottom:1rem}.logged{grid-template-columns:auto auto 2rem}footer h2{color:#ffffff;font-size:1.3rem;margin-bottom:0.5rem}#footer-copyright{position:relative;margin:auto;width:100%;bottom:0rem;height:3rem;top:0rem;margin-bottom:0;font-size:1rem;text-align:center}#footer-copyright *{font-size:1rem}footer a{font-size:1.1rem;color:#ffffff}footer p{display:block;font-size:1.1rem;color:#d8d8d8;font-family:var(--sans-serif,sans-serif);margin-bottom:0.5rem}#contact-us-container{width:16rem}#footer-up{position:absolute;width:4.8rem;height:4.8rem;border-radius:3.4rem;top:4rem;right:2rem;background:#ffffff}#footer-up svg{width:40%;height:auto}@media only screen and (max-width: 1170px){.logged{grid-template-rows:auto auto auto;grid-template-columns:auto;row-gap:2rem}#footer-copyright{height:1rem;top:-2rem}}</style>",e(this,{target:this.shadowRoot,props:o(this.attributes),customElement:!0},k,x,a,{},null),t&&t.target&&r(t.target,this,t.anchor)}}customElements.define("footer-component",L);export{L as default}; import{S as t,i as e,a as o,b as r,s as a,e as i,n,d as s,c as m,f as c,t as f,g as d,h as l,v as g,l as h,q as p,m as u}from"./index-4348483d.js";import{w as b}from"./index-71440b21.js";import{loadLocaleContent as w}from"../../../../../../../../../js/libraries/serverTools.js";function v(t){let e,o,a,i,n,m,b,w,v,y,x,k,L,j,_,z,B,C,T,U,A,H,M=t[1].contactUs+"",R=t[1].inviteLink+"",D=t[1].inviteLink+"";return{c(){e=c("footer"),o=c("div"),a=c("div"),i=c("div"),n=c("h2"),m=f(M),b=d(),w=c("p"),v=f("Discord: "),y=c("a"),x=f(R),k=d(),L=c("p"),j=f("WhatsApp: "),_=c("a"),z=f(D),B=d(),C=c("button"),C.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="42.545" height="72.601" viewBox="0 0 42.545 72.601"><g id="Group_268" data-name="Group 268" transform="translate(-6.177 -2.399)"><rect id="Rectangle_146" data-name="Rectangle 146" width="11" height="51" rx="5.5" transform="translate(22 24)" fill="#cb1816"></rect><path id="Path_1145" data-name="Path 1145" d="M23.814,4.021a5,5,0,0,1,7.372,0l16.134,17.6c2.94,3.207,1.046,10.4-3.686,8.379S28.02,14.081,28.391,13.524,16.544,27.976,11.366,30,4.741,24.828,7.68,21.621Z" fill="#DD1C1A"></path></g></svg>',T=d(),U=c("p"),U.innerHTML='Licensed under a Creative Commons <a href="https://creativecommons.org/licenses/by/4.0/legalcode " target="_blank" rel="noreferrer">CC BY 4.0 license</a>',l(y,"href","https://discord.gg/xAPZmyr8B6"),l(y,"target","_blank"),l(y,"rel","noreferrer"),g(y,"margin-left","1.8rem"),l(_,"href","https://chat.whatsapp.com/BhnmUNljUxJ2AjeHUwyTKh"),l(_,"target","_blank"),l(_,"rel","noreferrer"),g(_,"margin-left","0.5rem"),l(i,"id","contact-us-container"),l(a,"id","footer-grid-content-container"),l(a,"class","logged"),l(C,"id","footer-up"),l(C,"aria-label","go up"),l(U,"id","footer-copyright"),l(o,"id","footer-content-container")},m(s,c){r(s,e,c),h(e,o),h(o,a),h(a,i),h(i,n),h(n,m),h(i,b),h(i,w),h(w,v),h(w,y),h(y,x),h(i,k),h(i,L),h(L,j),h(L,_),h(_,z),h(o,B),h(o,C),h(o,T),h(o,U),A||(H=p(C,"click",t[4]),A=!0)},p(t,e){2&e&&M!==(M=t[1].contactUs+"")&&u(m,M),2&e&&R!==(R=t[1].inviteLink+"")&&u(x,R),2&e&&D!==(D=t[1].inviteLink+"")&&u(z,D)},d(t){t&&s(e),A=!1,H()}}}function y(t){let e,o=2==t[0]&&v(t);return{c(){o&&o.c(),e=i()},m(t,a){o&&o.m(t,a),r(t,e,a)},p(t,r){2==t[0]?o?o.p(t,r):(o=v(t),o.c(),o.m(e.parentNode,e)):o&&(o.d(1),o=null)},d(t){o&&o.d(t),t&&s(e)}}}function x(t){let e,o=t[0],m=y(t);return{c(){m.c(),e=i(),this.c=n},m(t,o){m.m(t,o),r(t,e,o)},p(t,[r]){1&r&&a(o,o=t[0])?(m.d(1),m=y(t),m.c(),m.m(e.parentNode,e)):m.p(t,r)},i:n,o:n,d(t){t&&s(e),m.d(t)}}}function k(t,e,o){let r,a,i=b(0);m(t,i,(t=>o(0,r=t)));let n=b({});m(t,n,(t=>o(1,a=t))),w(n,"countries",i),w(n,"footer-component",i);return[r,a,i,n,()=>{location.href="#"}]}class L extends t{constructor(t){super(),this.shadowRoot.innerHTML="<style>@import '/css/common.css';footer{position:relative;bottom:0;width:100%;height:auto;background:#5B6970;border-top:#cb1816 solid 0.5rem}footer p,footer a{font-family:var(--sans-serif)}#footer-content-container{position:relative;margin:auto;padding-top:2rem;max-width:116rem;width:97vw}#footer-grid-content-container{display:grid;margin-left:2rem;margin-right:2rem;margin-bottom:1rem}.logged{grid-template-columns:auto auto 2rem}footer h2{color:#ffffff;font-size:1.3rem;margin-bottom:0.5rem}#footer-copyright{position:relative;margin:auto;width:100%;bottom:0rem;height:3rem;top:0rem;margin-bottom:0;font-size:1rem;text-align:center}#footer-copyright *{font-size:1rem}footer a{font-size:1.1rem;color:#ffffff}footer p{display:block;font-size:1.1rem;color:#d8d8d8;font-family:var(--sans-serif,sans-serif);margin-bottom:0.5rem}#contact-us-container{width:16rem}#footer-up{position:absolute;width:4.8rem;height:4.8rem;border-radius:3.4rem;top:4rem;right:2rem;background:#ffffff}#footer-up svg{width:40%;height:auto}@media only screen and (max-width: 1170px){.logged{grid-template-rows:auto auto auto;grid-template-columns:auto;row-gap:2rem}#footer-copyright{height:1rem;top:-2rem}}</style>",e(this,{target:this.shadowRoot,props:o(this.attributes),customElement:!0},k,x,a,{},null),t&&t.target&&r(t.target,this,t.anchor)}}customElements.define("footer-component",L);export{L as default};

View File

@ -1 +1 @@
import{S as t,i as o,a as n,b as e,s as r,e as i,n as a,d as c,c as s,o as m,f as l,t as g,g as p,h as u,j as h,k as d,l as f,m as b,p as x}from"./index-4348483d.js";import{w as j}from"./index-71440b21.js";import{addMarkersGroups as v,groupsByCountry as w}from"../../../../../../../../../js/groups.js";import{loadLocaleContent as y}from"../../../../../../../../../js/libraries/serverTools.js";import"../../../../../../../../../js/components/map-component.js";function k(t,o,n){const e=t.slice();return e[6]=o[n][0],e[7]=o[n][1],e}function z(t,o,n){const e=t.slice();return e[10]=o[n],e}function D(t){let o,n,r,i,a,s,m,j,v,y,z,D,E,O,R,T,A,C=t[1].heading+"",H=t[1].p1+"",L=t[1].subheading1+"",M=Object.entries(w),S=[];for(let o=0;o<M.length;o+=1)S[o]=N(k(t,M,o));return{c(){o=l("div"),n=l("div"),r=l("h1"),i=g(C),a=p(),s=l("img"),j=p(),v=l("p"),y=g(H),z=p(),D=l("h3"),E=g(L),O=p(),R=l("map-component"),A=p();for(let t=0;t<S.length;t+=1)S[t].c();u(s,"id","groups-img"),h(s.src,m="/img/common/groups.svg")||u(s,"src","/img/common/groups.svg"),u(s,"alt","groups"),d(R,"id","map"),d(R,"callback",T=t[5]),u(n,"id","text-container"),u(o,"id","container")},m(t,c){e(t,o,c),f(o,n),f(n,r),f(r,i),f(n,a),f(n,s),f(n,j),f(n,v),f(v,y),f(n,z),f(n,D),f(D,E),f(n,O),f(n,R),f(n,A);for(let t=0;t<S.length;t+=1)S[t].m(n,null)},p(t,o){if(2&o&&C!==(C=t[1].heading+"")&&b(i,C),2&o&&H!==(H=t[1].p1+"")&&b(y,H),2&o&&L!==(L=t[1].subheading1+"")&&b(E,L),2&o&&T!==(T=t[5])&&d(R,"callback",T),2&o){let e;for(M=Object.entries(w),e=0;e<M.length;e+=1){const r=k(t,M,e);S[e]?S[e].p(r,o):(S[e]=N(r),S[e].c(),S[e].m(n,null))}for(;e<S.length;e+=1)S[e].d(1);S.length=M.length}},d(t){t&&c(o),x(S,t)}}}function E(t){let o,n,r,i,a,s,m,h,d,x,j,v,w,y,k,z,D,E,N,O=t[1].location+"",R=t[1][t[10].location[0][0]]+(""==t[10].location[0][1]?"":", "+t[1][t[10].location[0][1]]),T=t[1].members+"",A=t[10].members+"",C=t[1].contact+"",H=t[1][t[10].contact[1]]+"";return{c(){o=l("div"),n=l("p"),r=l("b"),i=g(O),a=g(": "),s=g(R),m=p(),h=l("p"),d=l("b"),x=g(T),j=g(": "),v=g(A),w=p(),y=l("p"),k=l("b"),z=g(C),D=g(": "),E=l("a"),N=g(H),u(E,"href",t[10].contact[0]),u(E,"target",";_blank;"),u(E,"rel","noreferrer"),u(o,"class","location-info")},m(t,c){e(t,o,c),f(o,n),f(n,r),f(r,i),f(r,a),f(n,s),f(o,m),f(o,h),f(h,d),f(d,x),f(d,j),f(h,v),f(o,w),f(o,y),f(y,k),f(k,z),f(k,D),f(y,E),f(E,N)},p(t,o){2&o&&O!==(O=t[1].location+"")&&b(i,O),2&o&&R!==(R=t[1][t[10].location[0][0]]+(""==t[10].location[0][1]?"":", "+t[1][t[10].location[0][1]]))&&b(s,R),2&o&&T!==(T=t[1].members+"")&&b(x,T),2&o&&C!==(C=t[1].contact+"")&&b(z,C),2&o&&H!==(H=t[1][t[10].contact[1]]+"")&&b(N,H)},d(t){t&&c(o)}}}function N(t){let o,n,r,i,a,s=t[1][t[6]]+"",m=t[7],h=[];for(let o=0;o<m.length;o+=1)h[o]=E(z(t,m,o));return{c(){o=l("h4"),n=g(s),r=p(),i=l("div");for(let t=0;t<h.length;t+=1)h[t].c();a=p(),u(o,"class","country-name"),u(i,"class","country-block")},m(t,c){e(t,o,c),f(o,n),e(t,r,c),e(t,i,c);for(let t=0;t<h.length;t+=1)h[t].m(i,null);f(i,a)},p(t,o){if(2&o&&s!==(s=t[1][t[6]]+"")&&b(n,s),2&o){let n;for(m=t[7],n=0;n<m.length;n+=1){const e=z(t,m,n);h[n]?h[n].p(e,o):(h[n]=E(e),h[n].c(),h[n].m(i,a))}for(;n<h.length;n+=1)h[n].d(1);h.length=m.length}},d(t){t&&c(o),t&&c(r),t&&c(i),x(h,t)}}}function O(t){let o,n=2==t[0]&&D(t);return{c(){n&&n.c(),o=i()},m(t,r){n&&n.m(t,r),e(t,o,r)},p(t,e){2==t[0]?n?n.p(t,e):(n=D(t),n.c(),n.m(o.parentNode,o)):n&&(n.d(1),n=null)},d(t){n&&n.d(t),t&&c(o)}}}function R(t){let o,n=t[0],s=O(t);return{c(){s.c(),o=i(),this.c=a},m(t,n){s.m(t,n),e(t,o,n)},p(t,[e]){1&e&&r(n,n=t[0])?(s.d(1),s=O(t),s.c(),s.m(o.parentNode,o)):s.p(t,e)},i:a,o:a,d(t){t&&c(o),s.d(t)}}}function T(t,o,n){let e,r,i=j(0);s(t,i,(t=>n(0,e=t)));let a=j({});function c(t,o){let n=t([22,0],2);v(n,o)}s(t,a,(t=>n(1,r=t))),y(a,"groups-component",i),y(a,"countries",i),m((()=>{}));return[e,r,i,a,c,t=>c(t,r)]}class A extends t{constructor(t){super(),this.shadowRoot.innerHTML="<style>@import '/css/common.css';#groups-img{position:absolute;width:14rem;left:50%;transform:translate(-50%);z-index:0;opacity:0.2}#text-container>:nth-child(3){margin-top:8rem}.country-name{margin-bottom:0.5rem}.country-block{margin-bottom:2rem}.location-info{margin-bottom:0.75rem}.location-info p{margin-bottom:0}a{color:#DD1C1A}#map{--height:30rem;--width:100%;--margin-bottom:3rem}#text-container{position:relative;max-width:calc(100vw - 4rem);margin:auto}h1{margin-bottom:1rem;font-size:2.2rem;text-align:center}h3{margin-bottom:1rem}#container{margin:auto;max-width:800px;margin-top:1rem;margin-bottom:4rem}#container>div>p{margin-bottom:1rem}#container p{text-align:justify}</style>",o(this,{target:this.shadowRoot,props:n(this.attributes),customElement:!0},T,R,r,{},null),t&&t.target&&e(t.target,this,t.anchor)}}customElements.define("groups-component",A);export{A as default}; import{S as t,i as o,a as n,b as e,s as r,e as i,n as a,d as s,c,o as m,f as l,t as p,g,h as u,j as h,k as d,l as f,m as b,p as x}from"./index-4348483d.js";import{w as j}from"./index-71440b21.js";import{addMarkersGroups as v,groupsByCountry as w}from"../../../../../../../../../js/groups.js";import{loadLocaleContent as y}from"../../../../../../../../../js/libraries/serverTools.js";import"../../../../../../../../../js/components/map-component.js";function k(t,o,n){const e=t.slice();return e[6]=o[n][0],e[7]=o[n][1],e}function z(t,o,n){const e=t.slice();return e[10]=o[n],e}function D(t){let o,n,r,i,a,c,m,j,v,y,z,D,E,O,R,T,A,C=t[1].groups+"",H=t[1].p1+"",L=t[1].subheading1+"",M=Object.entries(w),S=[];for(let o=0;o<M.length;o+=1)S[o]=N(k(t,M,o));return{c(){o=l("div"),n=l("div"),r=l("h1"),i=p(C),a=g(),c=l("img"),j=g(),v=l("p"),y=p(H),z=g(),D=l("h3"),E=p(L),O=g(),R=l("map-component"),A=g();for(let t=0;t<S.length;t+=1)S[t].c();u(c,"id","groups-img"),h(c.src,m="/img/common/groups.svg")||u(c,"src","/img/common/groups.svg"),u(c,"alt","groups"),d(R,"id","map"),d(R,"callback",T=t[5]),u(n,"id","text-container"),u(o,"id","container")},m(t,s){e(t,o,s),f(o,n),f(n,r),f(r,i),f(n,a),f(n,c),f(n,j),f(n,v),f(v,y),f(n,z),f(n,D),f(D,E),f(n,O),f(n,R),f(n,A);for(let t=0;t<S.length;t+=1)S[t].m(n,null)},p(t,o){if(2&o&&C!==(C=t[1].groups+"")&&b(i,C),2&o&&H!==(H=t[1].p1+"")&&b(y,H),2&o&&L!==(L=t[1].subheading1+"")&&b(E,L),2&o&&T!==(T=t[5])&&d(R,"callback",T),2&o){let e;for(M=Object.entries(w),e=0;e<M.length;e+=1){const r=k(t,M,e);S[e]?S[e].p(r,o):(S[e]=N(r),S[e].c(),S[e].m(n,null))}for(;e<S.length;e+=1)S[e].d(1);S.length=M.length}},d(t){t&&s(o),x(S,t)}}}function E(t){let o,n,r,i,a,c,m,h,d,x,j,v,w,y,k,z,D,E,N,O=t[1].location+"",R=t[1][t[10].location[0][0]]+(""==t[10].location[0][1]?"":", "+t[1][t[10].location[0][1]]),T=t[1].members+"",A=t[10].members+"",C=t[1].contact+"",H=t[1][t[10].contact[1]]+"";return{c(){o=l("div"),n=l("p"),r=l("b"),i=p(O),a=p(": "),c=p(R),m=g(),h=l("p"),d=l("b"),x=p(T),j=p(": "),v=p(A),w=g(),y=l("p"),k=l("b"),z=p(C),D=p(": "),E=l("a"),N=p(H),u(E,"href",t[10].contact[0]),u(E,"target",";_blank;"),u(E,"rel","noreferrer"),u(o,"class","location-info")},m(t,s){e(t,o,s),f(o,n),f(n,r),f(r,i),f(r,a),f(n,c),f(o,m),f(o,h),f(h,d),f(d,x),f(d,j),f(h,v),f(o,w),f(o,y),f(y,k),f(k,z),f(k,D),f(y,E),f(E,N)},p(t,o){2&o&&O!==(O=t[1].location+"")&&b(i,O),2&o&&R!==(R=t[1][t[10].location[0][0]]+(""==t[10].location[0][1]?"":", "+t[1][t[10].location[0][1]]))&&b(c,R),2&o&&T!==(T=t[1].members+"")&&b(x,T),2&o&&C!==(C=t[1].contact+"")&&b(z,C),2&o&&H!==(H=t[1][t[10].contact[1]]+"")&&b(N,H)},d(t){t&&s(o)}}}function N(t){let o,n,r,i,a,c=t[1][t[6]]+"",m=t[7],h=[];for(let o=0;o<m.length;o+=1)h[o]=E(z(t,m,o));return{c(){o=l("h4"),n=p(c),r=g(),i=l("div");for(let t=0;t<h.length;t+=1)h[t].c();a=g(),u(o,"class","country-name"),u(i,"class","country-block")},m(t,s){e(t,o,s),f(o,n),e(t,r,s),e(t,i,s);for(let t=0;t<h.length;t+=1)h[t].m(i,null);f(i,a)},p(t,o){if(2&o&&c!==(c=t[1][t[6]]+"")&&b(n,c),2&o){let n;for(m=t[7],n=0;n<m.length;n+=1){const e=z(t,m,n);h[n]?h[n].p(e,o):(h[n]=E(e),h[n].c(),h[n].m(i,a))}for(;n<h.length;n+=1)h[n].d(1);h.length=m.length}},d(t){t&&s(o),t&&s(r),t&&s(i),x(h,t)}}}function O(t){let o,n=2==t[0]&&D(t);return{c(){n&&n.c(),o=i()},m(t,r){n&&n.m(t,r),e(t,o,r)},p(t,e){2==t[0]?n?n.p(t,e):(n=D(t),n.c(),n.m(o.parentNode,o)):n&&(n.d(1),n=null)},d(t){n&&n.d(t),t&&s(o)}}}function R(t){let o,n=t[0],c=O(t);return{c(){c.c(),o=i(),this.c=a},m(t,n){c.m(t,n),e(t,o,n)},p(t,[e]){1&e&&r(n,n=t[0])?(c.d(1),c=O(t),c.c(),c.m(o.parentNode,o)):c.p(t,e)},i:a,o:a,d(t){t&&s(o),c.d(t)}}}function T(t,o,n){let e,r,i=j(0);c(t,i,(t=>n(0,e=t)));let a=j({});function s(t,o){let n=t([22,0],2);v(n,o)}c(t,a,(t=>n(1,r=t))),y(a,"groups-component",i),y(a,"countries",i),m((()=>{}));return[e,r,i,a,s,t=>s(t,r)]}class A extends t{constructor(t){super(),this.shadowRoot.innerHTML="<style>@import '/css/common.css';#groups-img{position:absolute;width:14rem;left:50%;transform:translate(-50%);z-index:0;opacity:0.2}#text-container>:nth-child(3){margin-top:8rem}.country-name{margin-bottom:0.5rem}.country-block{margin-bottom:2rem}.location-info{margin-bottom:0.75rem}.location-info p{margin-bottom:0}a{color:#DD1C1A}#map{--height:30rem;--width:100%;--margin-bottom:3rem}#text-container{position:relative;max-width:calc(100vw - 4rem);margin:auto}h1{margin-bottom:1rem;font-size:2.2rem;text-align:center}h3{margin-bottom:1rem}#container{margin:auto;max-width:800px;margin-top:1rem;margin-bottom:4rem}#container>div>p{margin-bottom:1rem}#container p{text-align:justify}</style>",o(this,{target:this.shadowRoot,props:n(this.attributes),customElement:!0},T,R,r,{},null),t&&t.target&&e(t.target,this,t.anchor)}}customElements.define("groups-component",A);export{A as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{S as t,i as a,a as e,b as s,u as o,s as r,f as i,n,h as c,d as l,o as p,w as m}from"./index-4348483d.js";function h(t){let a;return{c(){a=i("div"),this.c=n,c(a,"id","map")},m(e,o){s(e,a,o),t[2](a)},p:n,i:n,o:n,d(e){e&&l(a),t[2](null)}}}function u(t,a,e){let s,{callback:o=null}=a;function r(t,a){let e=L.map(s,{center:t,zoom:a});return L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',minNativeZoom:2,minZoom:2,maxNativeZoom:16,maxZoom:16}).addTo(e),e}return p((()=>{o(r)})),t.$$set=t=>{"callback"in t&&e(1,o=t.callback)},[s,o,function(t){m[t?"unshift":"push"]((()=>{s=t,e(0,s)}))}]}class d extends t{constructor(t){super(),this.shadowRoot.innerHTML="<style>@import 'https://unpkg.com/leaflet@1.9.4/dist/leaflet.css';#map{height:var(--height);width:var(--width,100%);margin-bottom:var(--margin-bottom,0)\n }</style>",a(this,{target:this.shadowRoot,props:e(this.attributes),customElement:!0},u,h,r,{callback:1},null),t&&(t.target&&s(t.target,this,t.anchor),t.props&&(this.$set(t.props),o()))}static get observedAttributes(){return["callback"]}get callback(){return this.$$.ctx[1]}set callback(t){this.$$set({callback:t}),o()}}customElements.define("map-component",d);export{d as default}; import{S as t,i as e,a as o,b as s,u as a,s as r,f as l,n,h as i,d as c,o as m,w as h}from"./index-4348483d.js";function p(t){let e;return{c(){e=l("div"),this.c=n,i(e,"id","map")},m(o,a){s(o,e,a),t[3](e)},p:n,i:n,o:n,d(o){o&&c(e),t[3](null)}}}function u(t,e,o){let s,{callback:a=null}=e,{colors:r=null}=e;function l(t,e){let o=L.map(s,{center:t,zoom:e});return L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',minNativeZoom:2,minZoom:2,maxNativeZoom:14,maxZoom:14}).addTo(o),o}return m((()=>{if(a(l),null!=r){let t=s.getElementsByClassName("leaflet-control-layers-overlays")[0].children;for(let e=0;e<t.length;e++)t[e].children[0].children[0].style.accentColor=r[e]}})),t.$$set=t=>{"callback"in t&&o(1,a=t.callback),"colors"in t&&o(2,r=t.colors)},[s,a,r,function(t){h[t?"unshift":"push"]((()=>{s=t,o(0,s)}))}]}class d extends t{constructor(t){super(),this.shadowRoot.innerHTML="<style>@import 'https://unpkg.com/leaflet@1.9.4/dist/leaflet.css';#map{height:var(--height);width:var(--width,100%);margin-top:var(--margin-top,0);margin-bottom:var(--margin-bottom,0)}</style>",e(this,{target:this.shadowRoot,props:o(this.attributes),customElement:!0},u,p,r,{callback:1,colors:2},null),t&&(t.target&&s(t.target,this,t.anchor),t.props&&(this.$set(t.props),a()))}static get observedAttributes(){return["callback","colors"]}get callback(){return this.$$.ctx[1]}set callback(t){this.$$set({callback:t}),a()}get colors(){return this.$$.ctx[2]}set colors(t){this.$$set({colors:t}),a()}}customElements.define("map-component",d);export{d as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -34,10 +34,12 @@ for (let g of coops) {
} }
} }
export let coopsMarkersLayer = L.layerGroup()
export function addMarkersCoops(map,content) { export function addMarkersCoops(map,content) {
for (let g of coops) { for (let g of coops) {
let coordinates let coordinates
let text = "" let text = "<b>Cooperative</b><br>"
for (let field in g) { for (let field in g) {
let fieldText let fieldText
if (field!="logo") { if (field!="logo") {
@ -65,6 +67,7 @@ export function addMarkersCoops(map,content) {
text += fieldText + g[field] + "<br>" text += fieldText + g[field] + "<br>"
} }
} }
L.marker(coordinates).addTo(map).bindPopup(text) L.marker(coordinates).addTo(coopsMarkersLayer).bindPopup(text)
} }
coopsMarkersLayer.addTo(map)
} }

View File

@ -47,15 +47,15 @@ for (let g of groups) {
} }
} }
let groupsLoaded = false export let groupsMarkersLayer = L.layerGroup()
let groupsMarkersLayerOut = L.layerGroup() let groupsMarkersLayerOut = L.layerGroup()
let groupsMarkersLayerIn = L.layerGroup() let groupsMarkersLayerIn = L.layerGroup()
let contactGeneral =["https://discord.gg/4BUau4AZre","DiscordInviteLink"] let contactGeneral =["https://discord.gg/4BUau4AZre","DiscordInviteLink"]
function addMarkerGroups(g,layer,content) { function addMarkersToLayer(g,layer,content) {
let coordinates let coordinates
let text = "" let text = "<b>Group</b><br>"
for (let field in g) { for (let field in g) {
let fieldText = content[field] + ": " let fieldText = content[field] + ": "
if (field=="contact") { if (field=="contact") {
@ -85,13 +85,13 @@ function addMarkerGroups(g,layer,content) {
export function addMarkersGroups(map,content) { export function addMarkersGroups(map,content) {
for (let g of groups) { for (let g of groups) {
addMarkerGroups(g,groupsMarkersLayerIn,content) addMarkersToLayer(g,groupsMarkersLayerIn,content)
} }
for (let gs of Object.values(groupsByCountry)) { for (let gs of Object.values(groupsByCountry)) {
if (gs.length==1) { if (gs.length==1) {
let g = {...gs[0]} let g = {...gs[0]}
g.location[0][1] = "" g.location[0][1] = ""
addMarkerGroups(g,groupsMarkersLayerOut,content) addMarkersToLayer(g,groupsMarkersLayerOut,content)
} }
else { else {
let locationName = [gs[0].location[0][0],""] let locationName = [gs[0].location[0][0],""]
@ -114,21 +114,22 @@ export function addMarkersGroups(map,content) {
contact: contact contact: contact
} }
addMarkerGroups(gNew,groupsMarkersLayerOut,content) addMarkersToLayer(gNew,groupsMarkersLayerOut,content)
} }
} }
groupsMarkersLayerOut.addTo(map) groupsMarkersLayerOut.addTo(groupsMarkersLayer)
groupsMarkersLayer.addTo(map)
map.on("zoomend", () => onZoomEnd(map)) map.on("zoomend", () => onZoomEnd(map))
} }
function onZoomEnd(map) { function onZoomEnd(map) {
let zoomLevel = map.getZoom() let zoomLevel = map.getZoom()
if (zoomLevel==3) { if (zoomLevel==3) {
map.removeLayer(groupsMarkersLayerIn) groupsMarkersLayer.removeLayer(groupsMarkersLayerIn)
groupsMarkersLayerOut.addTo(map) groupsMarkersLayerOut.addTo(groupsMarkersLayer)
} }
else if (zoomLevel==4) { else if (zoomLevel==4) {
map.removeLayer(groupsMarkersLayerOut) groupsMarkersLayer.removeLayer(groupsMarkersLayerOut)
groupsMarkersLayerIn.addTo(map) groupsMarkersLayerIn.addTo(groupsMarkersLayer)
} }
} }

View File

@ -20,10 +20,12 @@ for (let g of parties) {
} }
} }
export let partiesMarkersLayer = L.layerGroup()
export function addMarkersParties(map,content) { export function addMarkersParties(map,content) {
for (let g of parties) { for (let g of parties) {
let coordinates let coordinates
let text = "" let text = "<b>Party</b><br>"
for (let field in g) { for (let field in g) {
let fieldText let fieldText
if (field!="logo") { if (field!="logo") {
@ -58,6 +60,7 @@ export function addMarkersParties(map,content) {
shadowSize: [41, 41] shadowSize: [41, 41]
}); });
let marker = L.marker(coordinates, {icon: markerIcon}) let marker = L.marker(coordinates, {icon: markerIcon})
marker.addTo(map).bindPopup(text) marker.addTo(partiesMarkersLayer).bindPopup(text)
} }
partiesMarkersLayer.addTo(map)
} }

View File

@ -1,5 +1,5 @@
{ {
"heading": "Communes", "communes": "Communes",
"p1": "We establish libertarian socialist communes by buying land, housing and the means of production which are then owned by the members of these communes. There is no private property within the communes and, therefore, exploitation and suffering that comes with it. Decisions are made using direct democracy with a focus on consensus, ensuring that each commune member has power over decisions that affect their life. Communes try to establish their own cooperatives in order to finance their development becoming financially independent and sustainable, which allows for their survival and growth. Within communes the gift economy is utilized whenever possible. Each commune is a small beacon of socialism within the dark capitalist world showing us how good life can be if only we achieve our goal.", "p1": "We establish libertarian socialist communes by buying land, housing and the means of production which are then owned by the members of these communes. There is no private property within the communes and, therefore, exploitation and suffering that comes with it. Decisions are made using direct democracy with a focus on consensus, ensuring that each commune member has power over decisions that affect their life. Communes try to establish their own cooperatives in order to finance their development becoming financially independent and sustainable, which allows for their survival and growth. Within communes the gift economy is utilized whenever possible. Each commune is a small beacon of socialism within the dark capitalist world showing us how good life can be if only we achieve our goal.",
"subheading1": "Our Communes", "subheading1": "Our Communes",
"subheading2": "Europe", "subheading2": "Europe",

View File

@ -1,5 +1,5 @@
{ {
"heading": "Cooperatives", "cooperatives": "Cooperatives",
"p1": "We establish worker cooperatives, which is a business model where employees own and control the enterprise. Each worker has a voice in decision-making, and profits are distributed based on individual contributions. This participatory structure fosters ownership, motivation, and job satisfaction, creating a more fulfilling work experience as well as challenging the wealth concentration in traditional capitalist businesses. By focusing on employees' needs, our cooperatives create supportive and sustainable work environments that foster social cohesion and job security. We also prioritize the interests of local communities, taking a long-term perspective.", "p1": "We establish worker cooperatives, which is a business model where employees own and control the enterprise. Each worker has a voice in decision-making, and profits are distributed based on individual contributions. This participatory structure fosters ownership, motivation, and job satisfaction, creating a more fulfilling work experience as well as challenging the wealth concentration in traditional capitalist businesses. By focusing on employees' needs, our cooperatives create supportive and sustainable work environments that foster social cohesion and job security. We also prioritize the interests of local communities, taking a long-term perspective.",
"subheading1": "Our Cooperatives", "subheading1": "Our Cooperatives",
"subheading2": "Europe", "subheading2": "Europe",

View File

@ -1,5 +1,5 @@
{ {
"heading": "Groups", "groups": "Groups",
"p1": "We aim to raise awareness about the negative impact of current politico-economic systems on our well-being. We engage in mutual aid and collective action to address immediate challenges within capitalism. Through mutual aid, we support each other by sharing resources, knowledge, and skills, fostering solidarity and resilience. Whether it's community gardens, food cooperatives, or support networks, our goal is to make life under capitalism more bearable and create pockets of resistance and alternatives within the system.", "p1": "We aim to raise awareness about the negative impact of current politico-economic systems on our well-being. We engage in mutual aid and collective action to address immediate challenges within capitalism. Through mutual aid, we support each other by sharing resources, knowledge, and skills, fostering solidarity and resilience. Whether it's community gardens, food cooperatives, or support networks, our goal is to make life under capitalism more bearable and create pockets of resistance and alternatives within the system.",
"subheading1": "Our Groups", "subheading1": "Our Groups",
"subheading2": "Europe", "subheading2": "Europe",

View File

@ -7,5 +7,9 @@
"cooperativesTitle": "COOPERATIVES", "cooperativesTitle": "COOPERATIVES",
"cooperativesText": "We form worker cooperatives to finance the operations of our groups and communes. Recognizing that economic power influences political power, we consider the establishment of cooperatives to be one of the initial steps towards achieving socialism.", "cooperativesText": "We form worker cooperatives to finance the operations of our groups and communes. Recognizing that economic power influences political power, we consider the establishment of cooperatives to be one of the initial steps towards achieving socialism.",
"partiesTitle": "PARTIES", "partiesTitle": "PARTIES",
"partiesText": "We create political parties in order to push for reforms allowing us to easier further our goals, to move the Overton window as well as to gain popularity. However, we recognize that we cannot achieve libertarian socialism through institutions which act contrary to our goals." "partiesText": "We create political parties in order to push for reforms allowing us to easier further our goals, to move the Overton window as well as to gain popularity. However, we recognize that we cannot achieve libertarian socialism through institutions which act contrary to our goals.",
"findUs": "Find Us",
"whatNow": "What Now?",
"joinUs": "Join Us",
"talkWithUs": "Talk With Us"
} }

View File

@ -1,5 +1,5 @@
{ {
"heading": "Parties", "parties": "Parties",
"p1": "We create political parties in order to push for reforms allowing us to easier further our goals, to move the Overton window as well as to gain popularity. However, we recognize that we cannot achieve libertarian socialism through institutions which act contrary to our goals. Nevertheless, we must strategically utilize any opportunity that we have in order to succeed.", "p1": "We create political parties in order to push for reforms allowing us to easier further our goals, to move the Overton window as well as to gain popularity. However, we recognize that we cannot achieve libertarian socialism through institutions which act contrary to our goals. Nevertheless, we must strategically utilize any opportunity that we have in order to succeed.",
"subheading1": "Our Parties", "subheading1": "Our Parties",
"name": "Name", "name": "Name",

View File

@ -1,5 +1,5 @@
{ {
"heading": "Коммуны", "communes": "Коммуны",
"p1": "Мы создаем либертарные социалистические коммуны, покупая землю, жилье и средства производства, которые затем принадлежат членам этих коммун. В коммунах нет частной собственности и, следовательно, эксплуатации и страданий, которые с ней связаны. Решения принимаются с использованием прямой демократии с упором на консенсус, гарантируя, что каждый член сообщества имеет право принимать решения, влияющие на его жизнь. Сообщества пытаются создавать свои собственные кооперативы, чтобы финансировать свое развитие, становясь финансово независимыми и устойчивыми, что позволяет им выживать и расти. В сообществах по возможности используется экономика дарения. Каждая коммуна — это маленький маяк социализма в темном капиталистическом мире, показывающий нам, насколько хорошей может быть жизнь, если мы только достигнем своей цели.", "p1": "Мы создаем либертарные социалистические коммуны, покупая землю, жилье и средства производства, которые затем принадлежат членам этих коммун. В коммунах нет частной собственности и, следовательно, эксплуатации и страданий, которые с ней связаны. Решения принимаются с использованием прямой демократии с упором на консенсус, гарантируя, что каждый член сообщества имеет право принимать решения, влияющие на его жизнь. Сообщества пытаются создавать свои собственные кооперативы, чтобы финансировать свое развитие, становясь финансово независимыми и устойчивыми, что позволяет им выживать и расти. В сообществах по возможности используется экономика дарения. Каждая коммуна — это маленький маяк социализма в темном капиталистическом мире, показывающий нам, насколько хорошей может быть жизнь, если мы только достигнем своей цели.",
"subheading1": "Наши коммуны", "subheading1": "Наши коммуны",
"location": "Локация", "location": "Локация",

View File

@ -1,5 +1,5 @@
{ {
"heading": "Кооперативы", "cooperatives": "Кооперативы",
"p1": "Мы создаем рабочие кооперативы, которые представляют собой бизнес-модель, в которой работники владеют предприятием. Каждый работник имеет право голоса при принятии решений, а прибыль распределяется на основе индивидуальных вкладов. Эта структура способствует мотивации и удовлетворенности работой, создавая более приятные условия труда, а также бросает вызов концентрации богатства в традиционных капиталистических предприятиях. Сосредоточив внимание на потребностях сотрудников, наши кооперативы создают благоприятную и устойчивую рабочую среду, которая способствует социальной сплоченности и гарантиям занятости. Мы также уделяем первостепенное внимание интересам местных сообществ, ориентируясь на долгосрочную перспективу.", "p1": "Мы создаем рабочие кооперативы, которые представляют собой бизнес-модель, в которой работники владеют предприятием. Каждый работник имеет право голоса при принятии решений, а прибыль распределяется на основе индивидуальных вкладов. Эта структура способствует мотивации и удовлетворенности работой, создавая более приятные условия труда, а также бросает вызов концентрации богатства в традиционных капиталистических предприятиях. Сосредоточив внимание на потребностях сотрудников, наши кооперативы создают благоприятную и устойчивую рабочую среду, которая способствует социальной сплоченности и гарантиям занятости. Мы также уделяем первостепенное внимание интересам местных сообществ, ориентируясь на долгосрочную перспективу.",
"subheading1": "Наши кооперативы", "subheading1": "Наши кооперативы",
"subheading2": "Европа", "subheading2": "Европа",

View File

@ -1,5 +1,5 @@
{ {
"heading": "Группы", "groups": "Группы",
"p1": "Мы стремимся повышать осведомленность о негативном влиянии нынешних политико-экономических систем на наше благополучие. Мы участвуем во взаимопомощи и коллективных действиях для решения насущных проблем. Посредством взаимопомощи мы поддерживаем друг друга, делясь ресурсами, знаниями и навыками, укрепляя солидарность и устойчивость к негодам. Будь то общественные сады, продовольственные кооперативы или сети поддержки, наша цель — сделать жизнь при капитализме более терпимой и создать очаги сопротивления и альтернатив внутри системы.", "p1": "Мы стремимся повышать осведомленность о негативном влиянии нынешних политико-экономических систем на наше благополучие. Мы участвуем во взаимопомощи и коллективных действиях для решения насущных проблем. Посредством взаимопомощи мы поддерживаем друг друга, делясь ресурсами, знаниями и навыками, укрепляя солидарность и устойчивость к негодам. Будь то общественные сады, продовольственные кооперативы или сети поддержки, наша цель — сделать жизнь при капитализме более терпимой и создать очаги сопротивления и альтернатив внутри системы.",
"subheading1": "Наши группы", "subheading1": "Наши группы",
"location": "Локация", "location": "Локация",

View File

@ -7,5 +7,9 @@
"cooperativesTitle": "КООПЕРАТИВЫ", "cooperativesTitle": "КООПЕРАТИВЫ",
"cooperativesText": "Мы формируем рабочие кооперативы для финансирования операций наших групп и коммун, а также формирования основы новой социалистической экономики. Признавая, что экономическая власть влияет на политическую власть, мы считаем создание кооперативов одним из первых шагов на пути к социализму.", "cooperativesText": "Мы формируем рабочие кооперативы для финансирования операций наших групп и коммун, а также формирования основы новой социалистической экономики. Признавая, что экономическая власть влияет на политическую власть, мы считаем создание кооперативов одним из первых шагов на пути к социализму.",
"partiesTitle": "ПАРТИИ", "partiesTitle": "ПАРТИИ",
"partiesText": "Мы создаем политические партии, чтобы продвигать реформы, которые позволят легче достичь наших целей, сдвигать окно Овертона и увеличивать нашу популярность. Однако мы признаем, что мы не можем достичь либертарианского социализма с помощью институтов, действующих против наших целей." "partiesText": "Мы создаем политические партии, чтобы продвигать реформы, которые позволят легче достичь наших целей, сдвигать окно Овертона и увеличивать нашу популярность. Однако мы признаем, что мы не можем достичь либертарианского социализма с помощью институтов, действующих против наших целей.",
"findUs": "Найди нас",
"whatNow": "Что теперь?",
"joinUs": "Присоединяйся",
"talkWithUs": "Напиши нам"
} }

View File

@ -1,5 +1,5 @@
{ {
"heading": "Партии", "parties": "Партии",
"p1": "Мы создаем политические партии, чтобы продвигать реформы, которые позволят легче достичь наших целей, сдвигать окно Овертона и увеличивать нашу популярность. Однако мы признаем, что мы не можем достичь либертарного социализма с помощью институтов, действующих против наших целей. Тем не менее, мы должны стратегически использовать любую возможность, которая у нас есть, чтобы добиться успеха.", "p1": "Мы создаем политические партии, чтобы продвигать реформы, которые позволят легче достичь наших целей, сдвигать окно Овертона и увеличивать нашу популярность. Однако мы признаем, что мы не можем достичь либертарного социализма с помощью институтов, действующих против наших целей. Тем не менее, мы должны стратегически использовать любую возможность, которая у нас есть, чтобы добиться успеха.",
"subheading1": "Наши партии", "subheading1": "Наши партии",
"name": "Имя", "name": "Имя",