Compare commits
25 Commits
720f492ed9
...
6d26952307
Author | SHA1 | Date | |
---|---|---|---|
6d26952307 | |||
74a3757e1e | |||
|
c6590415a3 | ||
73bfac679a | |||
61b1235c97 | |||
7eb95a1641 | |||
adbe90bc87 | |||
fad649c8eb | |||
247c76e038 | |||
88ad804268 | |||
fa89c90c28 | |||
|
d3860eb81e | ||
1f35ea213a | |||
4e7d3aa157 | |||
b9cfcfcfb5 | |||
987add5308 | |||
0ded17fee2 | |||
d9ec8da925 | |||
c9fc73ddbf | |||
529b7d48de | |||
12e327552d | |||
229c16df3b | |||
f80bf34605 | |||
47ce4803f5 | |||
b0bf280ee8 |
40
CHANGELOG.md
@ -1,4 +1,5 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
@ -350,23 +351,23 @@ This version introduces a new way to install and host Mobilizon : Elixir releas
|
||||
|
||||
### Special operations
|
||||
|
||||
* **Reattach media files to their entity.**
|
||||
- **Reattach media files to their entity.**
|
||||
When media files were uploaded and added in events and posts bodies, they were only attached to the profile that uploaded them, not to the event or post. This task attaches them back to their entity so that the command to clean orphan media files doesn't remove them.
|
||||
|
||||
* Source install
|
||||
- Source install
|
||||
`MIX_ENV=prod mix mobilizon.maintenance.fix_unattached_media_in_body`
|
||||
* Docker
|
||||
- Docker
|
||||
`docker-compose exec mobilizon mobilizon_ctl maintenance.fix_unattached_media_in_body`
|
||||
|
||||
* **Refresh remote profiles to save avatars locally**
|
||||
- **Refresh remote profiles to save avatars locally**
|
||||
Profile avatars and banners were previously only proxified and cached. Now we save them locally. Refreshing all remote actors will save profile media locally instead.
|
||||
|
||||
* Source install
|
||||
- Source install
|
||||
`MIX_ENV=prod mix mobilizon.actors.refresh --all`
|
||||
* Docker
|
||||
- Docker
|
||||
`docker-compose exec mobilizon mobilizon_ctl actors.refresh --all`
|
||||
|
||||
* **imagemagick and webp are now a required dependency** to build Mobilizon.
|
||||
- **imagemagick and webp are now a required dependency** to build Mobilizon.
|
||||
Optimized versions of Mobilizon's pictures are now produced during front-end build.
|
||||
See [the documentation](https://docs.joinmobilizon.org/administration/dependencies/#misc) to make sure these dependencies are installed.
|
||||
|
||||
@ -418,6 +419,7 @@ This version introduces a new way to install and host Mobilizon : Elixir releas
|
||||
### Translations
|
||||
|
||||
Updated translations:
|
||||
|
||||
- Catalan
|
||||
- Dutch
|
||||
- English
|
||||
@ -590,14 +592,15 @@ Updated translations:
|
||||
|
||||
### Special operations
|
||||
|
||||
* We added `application/ld+json` as acceptable MIME type for ActivityPub requests, so you'll need to recompile the `mime` library we use before recompiling Mobilizon:
|
||||
- We added `application/ld+json` as acceptable MIME type for ActivityPub requests, so you'll need to recompile the `mime` library we use before recompiling Mobilizon:
|
||||
|
||||
```
|
||||
MIX_ENV=prod mix deps.clean mime --build
|
||||
```
|
||||
|
||||
* The [nginx configuration](https://framagit.org/framasoft/mobilizon/-/blob/master/support/nginx/mobilizon.conf) has been changed with improvements and support for custom error pages.
|
||||
- The [nginx configuration](https://framagit.org/framasoft/mobilizon/-/blob/master/support/nginx/mobilizon.conf) has been changed with improvements and support for custom error pages.
|
||||
|
||||
* The cmake dependency has been added (see [our documentation](https://docs.joinmobilizon.org/administration/dependencies/#basic-tools))
|
||||
- The cmake dependency has been added (see [our documentation](https://docs.joinmobilizon.org/administration/dependencies/#basic-tools))
|
||||
|
||||
### Added
|
||||
|
||||
@ -632,6 +635,7 @@ Updated translations:
|
||||
## [1.0.0-beta.3] - 2020-06-24
|
||||
|
||||
### Special operations
|
||||
|
||||
Config has moved from `.env` files to a more traditional way to handle things in the Elixir world, with `.exs` files.
|
||||
|
||||
To migrate existing configuration, you can simply run `mix mobilizon.instance gen` and fill in the adequate values previously in `.env` files (you don't need to perform the operations to create the database).
|
||||
@ -641,6 +645,7 @@ A minimal file template [is available](https://framagit.org/framasoft/mobilizon/
|
||||
Also make sure to remove the `EnvironmentFile=` line from the systemd service and set `Environment=MIX_ENV=prod` instead. See [the updated file](https://framagit.org/framasoft/mobilizon/blob/master/support/systemd/mobilizon.service).
|
||||
|
||||
### Added
|
||||
|
||||
- Possibility to participate to an event without an account (confirmation through email required)
|
||||
- Possibility to participate to a remote event (being redirected by providing federated identity)
|
||||
- Possibility to add a note as a participant when event participation is manually validated (required when participating without an account)
|
||||
@ -657,6 +662,7 @@ Also make sure to remove the `EnvironmentFile=` line from the systemd service an
|
||||
- Allow user to change language
|
||||
|
||||
### Changed
|
||||
|
||||
- Configuration handling (see above)
|
||||
- Improved a bit color theme
|
||||
- Signature validation also now checks if `Date` header has acceptable values
|
||||
@ -667,6 +673,7 @@ Also make sure to remove the `EnvironmentFile=` line from the systemd service an
|
||||
- Improved public event page
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed URL search
|
||||
- Fixed content accessed through URL search being public
|
||||
- Fix event links in some emails
|
||||
@ -674,17 +681,21 @@ Also make sure to remove the `EnvironmentFile=` line from the systemd service an
|
||||
## [1.0.0-beta.2] - 2019-12-18
|
||||
|
||||
### Special operations
|
||||
|
||||
These two operations couldn't be handled during migrations.
|
||||
They are optional, but you won't be able to search or get participant stats on existing events if they are not executed.
|
||||
These commands will be removed in Mobilizon 1.0.0-beta.3.
|
||||
|
||||
In order to populate search index for existing events, you need to run the following command (with prod environment):
|
||||
* `mix mobilizon.setup_search`
|
||||
|
||||
- `mix mobilizon.setup_search`
|
||||
|
||||
In order to move participant stats to the event table for existing events, you need to run the following command (with prod environment):
|
||||
* `mix mobilizon.move_participant_stats`
|
||||
|
||||
- `mix mobilizon.move_participant_stats`
|
||||
|
||||
### Added
|
||||
|
||||
- Federation is active
|
||||
- Added an interface for admins to view and manage instance followers and followings
|
||||
- Ability to comment below events
|
||||
@ -709,6 +720,7 @@ In order to move participant stats to the event table for existing events, you n
|
||||
- Upgraded frontend and backend dependencies
|
||||
|
||||
### Changed
|
||||
|
||||
- Move participant stats to event table **(read special instructions above)**
|
||||
- Limit length (20 characters) and number (10) of tags allowed
|
||||
- Added some backend changes and validation for field length
|
||||
@ -722,6 +734,7 @@ In order to move participant stats to the event table for existing events, you n
|
||||
- Also consider the PeerTube `CommentsEnabled` property to know if you can reply to an event
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix event URL validation and check if hostname is correct before showing it
|
||||
- Fix participations stats on the MyEvents page
|
||||
- Fix event description lists margin
|
||||
@ -751,8 +764,11 @@ In order to move participant stats to the event table for existing events, you n
|
||||
- Fixed event HTML representation when `GET` request has no `Accept` header
|
||||
|
||||
### Security
|
||||
|
||||
- Sanitize event title to avoid XSS
|
||||
|
||||
## [1.0.0-beta.1] - 2019-10-15
|
||||
|
||||
### Added
|
||||
|
||||
- Initial release
|
||||
|
23
README.md
@ -20,7 +20,7 @@ Mobilizon is your federated organization and mobilization platform. Gather peopl
|
||||
|
||||
Mobilizon is a tool designed to create platforms for managing communities and events. Its purpose is to help as many people as possible to free themselves from Facebook groups and events, from Meetup, etc.
|
||||
|
||||
The Mobilizon software is under a Free licence, so anyone can host a Mobilizon server, called an instance. These instances may federate with each other, so any person with an account on *ExampleMeet* will be able to register to an event created on *SpecimenEvent*.
|
||||
The Mobilizon software is under a Free licence, so anyone can host a Mobilizon server, called an instance. These instances may federate with each other, so any person with an account on _ExampleMeet_ will be able to register to an event created on _SpecimenEvent_.
|
||||
|
||||
## ✨ Features
|
||||
|
||||
@ -46,23 +46,26 @@ We appreciate any contribution to Mobilizon. Check our [CONTRIBUTING](CONTRIBUTI
|
||||
## Links
|
||||
|
||||
### Learn more
|
||||
* 🌐 Official website: [https://joinmobilizon.org](https://joinmobilizon.org)
|
||||
* 🔢 Pick an instance [https://mobilizon.org](https://mobilizon.org)
|
||||
* 💻 Source: [https://framagit.org/framasoft/mobilizon](https://framagit.org/framasoft/mobilizon)
|
||||
* 📜 Documentation [https://docs.joinmobilizon.org](https://docs.joinmobilizon.org)
|
||||
|
||||
- 🌐 Official website: [https://joinmobilizon.org](https://joinmobilizon.org)
|
||||
- 🔢 Pick an instance [https://mobilizon.org](https://mobilizon.org)
|
||||
- 💻 Source: [https://framagit.org/framasoft/mobilizon](https://framagit.org/framasoft/mobilizon)
|
||||
- 📜 Documentation [https://docs.joinmobilizon.org](https://docs.joinmobilizon.org)
|
||||
|
||||
### Discuss
|
||||
* 💬 Element/Matrix: [https://matrix.to/#/#Mobilizon:matrix.org](https://matrix.to/#/#Mobilizon:matrix.org)
|
||||
* 🗣️ Forum: [https://framacolibri.org/c/mobilizon](https://framacolibri.org/c/mobilizon)
|
||||
|
||||
- 💬 Element/Matrix: [https://matrix.to/#/#Mobilizon:matrix.org](https://matrix.to/#/#Mobilizon:matrix.org)
|
||||
- 🗣️ Forum: [https://framacolibri.org/c/mobilizon](https://framacolibri.org/c/mobilizon)
|
||||
|
||||
### Follow
|
||||
* 🐘 Mastodon: [https://framapiaf.org/@mobilizon](https://framapiaf.org/@mobilizon)
|
||||
* 🐦 Twitter [https://twitter.com/@joinmobilizon](https://twitter.com/@joinmobilizon)
|
||||
|
||||
- 🐘 Mastodon: [https://framapiaf.org/@mobilizon](https://framapiaf.org/@mobilizon)
|
||||
- 🐦 Twitter [https://twitter.com/@joinmobilizon](https://twitter.com/@joinmobilizon)
|
||||
|
||||
Note: Most federation code comes from [Pleroma](https://pleroma.social), which is `Copyright © 2017-2018 Pleroma Authors - AGPL-3.0`.
|
||||
|
||||
|
||||
## ❤️ Supports of our crowdfunding
|
||||
|
||||
---
|
||||
|
||||
We have run [a crowdfunding campaign](https://framablog.org/2019/05/14/mobilizon-lets-finance-a-software-to-free-our-events-from-facebook/) to pave the road to the version 1.0.0 of Mobilizon. Thanks to everyone who pitched in and shared the news around! The list of [everyone who donated is available here](https://joinmobilizon.org/hall-of-fame).
|
||||
|
32
SECURITY.md
@ -5,15 +5,15 @@ Framasoft, the Mobilizon maintainer team and community take all security bugs in
|
||||
|
||||
### Goals
|
||||
|
||||
* Mobilizon users can understand the distinctions between public data and private data/metadata on Mobilizon.
|
||||
- Mobilizon users can understand the distinctions between public data and private data/metadata on Mobilizon.
|
||||
|
||||
* Users always know where their private data/metadata resides, who has access to it, and are able to access, export, and delete it.
|
||||
- Users always know where their private data/metadata resides, who has access to it, and are able to access, export, and delete it.
|
||||
|
||||
* Protect private user data/metadata, not just from hackers but also (as much as is possible) from other users, instance admins, community moderators, and external applications.
|
||||
- Protect private user data/metadata, not just from hackers but also (as much as is possible) from other users, instance admins, community moderators, and external applications.
|
||||
|
||||
* Secure from malicious creation, alteration or deletion of public data.
|
||||
- Secure from malicious creation, alteration or deletion of public data.
|
||||
|
||||
* GDPR compliance.
|
||||
- GDPR compliance.
|
||||
|
||||
Framasoft is both a developer of open-source/free/libre self-hosted software, and a service provider with users in the European Union. As a result, we are putting user privacy, data sovereignty, and GDPR compliance into our security plans, including asking both the Framasoft community and outside hackers to review our approaches and implementations.
|
||||
|
||||
@ -21,11 +21,11 @@ Framasoft is both a developer of open-source/free/libre self-hosted software, an
|
||||
|
||||
[Mobilizon](https://joinmobilizon.org) will be challenging to keep secure, as it is:
|
||||
|
||||
* open source, both back-end and front-end
|
||||
- open source, both back-end and front-end
|
||||
|
||||
* self-hosted by diverse organisations and individuals
|
||||
- self-hosted by diverse organisations and individuals
|
||||
|
||||
* federated (data is transmitted between different hosted instances)
|
||||
- federated (data is transmitted between different hosted instances)
|
||||
|
||||
This means there are more attack surfaces compared to typical proprietary, centralised platforms, but also means that hackers and even users can review every part of Mobilizon and make sure that it works as expected. This should result in more secure software, and higher trust in the application and its ecosystem.
|
||||
|
||||
@ -33,14 +33,14 @@ This means there are more attack surfaces compared to typical proprietary, centr
|
||||
|
||||
We are committed to working with security researchers to verify, reproduce, and respond to legitimate reported vulnerabilities. You can help us by following these simple guidelines:
|
||||
|
||||
* Alert us about the vulnerability as soon as you become aware of it by emailing the lead maintainer at tcit+mobilizon@framasoft.org.
|
||||
* Provide details needed to reproduce and validate the vulnerability and a Proof of Concept (PoC) as soon as possible
|
||||
* Act in good faith to avoid privacy violations, destruction of data, and interruption or degradation of services
|
||||
* Do not access or modify users’ private data, without explicit permission of the owner. Only interact with your own accounts or test accounts for security research purposes;
|
||||
* Contact Framasoft or a maintainer of the Mobilizon project (or the instance admin) immediately if you do inadvertently encounter user data. Do not view, alter, save, store, transfer, or otherwise access the data, and immediately purge any local information upon reporting the vulnerability;
|
||||
* The lead maintainer will acknowledge your email within 48 hours, and will send a more detailed response within 48 hours indicating the next steps in handling your report. After the initial reply to your report, the security team will endeavor to keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance.
|
||||
* Give us time to confirm, determine the affected versions and prepare fixes to correct the issue before disclosing it to other parties (if after waiting a reasonable amount of time, we are clearly unable or unwilling to do anything about it, please do hold us accountable!)
|
||||
* Please test against a local instance of the software, and refrain from running any Denial of Service or automated testing tools against Framasoft's (and our partners') infrastructure
|
||||
- Alert us about the vulnerability as soon as you become aware of it by emailing the lead maintainer at tcit+mobilizon@framasoft.org.
|
||||
- Provide details needed to reproduce and validate the vulnerability and a Proof of Concept (PoC) as soon as possible
|
||||
- Act in good faith to avoid privacy violations, destruction of data, and interruption or degradation of services
|
||||
- Do not access or modify users’ private data, without explicit permission of the owner. Only interact with your own accounts or test accounts for security research purposes;
|
||||
- Contact Framasoft or a maintainer of the Mobilizon project (or the instance admin) immediately if you do inadvertently encounter user data. Do not view, alter, save, store, transfer, or otherwise access the data, and immediately purge any local information upon reporting the vulnerability;
|
||||
- The lead maintainer will acknowledge your email within 48 hours, and will send a more detailed response within 48 hours indicating the next steps in handling your report. After the initial reply to your report, the security team will endeavor to keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance.
|
||||
- Give us time to confirm, determine the affected versions and prepare fixes to correct the issue before disclosing it to other parties (if after waiting a reasonable amount of time, we are clearly unable or unwilling to do anything about it, please do hold us accountable!)
|
||||
- Please test against a local instance of the software, and refrain from running any Denial of Service or automated testing tools against Framasoft's (and our partners') infrastructure
|
||||
|
||||
Note : Please report security bugs in third-party modules to the person or team maintaining the module.
|
||||
|
||||
|
@ -13,13 +13,13 @@ config :mobilizon,
|
||||
config :mobilizon, Mobilizon.Storage.Repo, types: Mobilizon.Storage.PostgresTypes
|
||||
|
||||
config :mobilizon, :instance,
|
||||
name: "My Mobilizon Instance",
|
||||
description: "Change this to a proper description of your instance",
|
||||
name: "mobilizon du chapril",
|
||||
description: "instance du chapril",
|
||||
hostname: "localhost",
|
||||
registrations_open: false,
|
||||
registrations_open: true,
|
||||
registration_email_allowlist: [],
|
||||
languages: [],
|
||||
default_language: "en",
|
||||
default_language: "fr",
|
||||
demo: false,
|
||||
repository: Mix.Project.config()[:source_url],
|
||||
allow_relay: true,
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: '3'
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
postgres:
|
||||
|
Before Width: | Height: | Size: 507 B After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 668 B After Width: | Height: | Size: 11 KiB |
BIN
js/public/img/icons/favicon_chapril_mobilizon.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
js/public/img/icons/original/favicon-16x16.png
Normal file
After Width: | Height: | Size: 507 B |
BIN
js/public/img/icons/original/favicon-32x32.png
Normal file
After Width: | Height: | Size: 668 B |
BIN
js/public/img/long_logo_chapril_mobilizon.png
Normal file
After Width: | Height: | Size: 6.3 KiB |
BIN
js/public/img/mobilizon_default_card.png
Normal file → Executable file
Before Width: | Height: | Size: 8.8 KiB After Width: | Height: | Size: 185 KiB |
BIN
js/public/img/mobilizon_default_card_original.png
Normal file
After Width: | Height: | Size: 8.8 KiB |
BIN
js/public/img/mobilizon_logo.png
Normal file → Executable file
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 12 KiB |
11
js/public/img/mobilizon_logo.svg
Normal file
@ -0,0 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 248.16 46.78">
|
||||
<title>Mobilizon Logo</title>
|
||||
<g data-name="header">
|
||||
<path d="M0 45.82l3.18-40.8a29.88 29.88 0 015.07-.36 27.74 27.74 0 014.95.36l4.86 17.16a92.19 92.19 0 012.34 10.08h.36a92.19 92.19 0 012.34-10.08L28 5.02a29.23 29.23 0 015-.36 29.23 29.23 0 015 .36l3.18 40.8a13.61 13.61 0 01-3.63.42 23.41 23.41 0 01-3.63-.24l-1.2-19.92q-.36-5.52-.48-12.84h-.44l-7.32 26.51a25.62 25.62 0 01-4 .3 23.36 23.36 0 01-3.84-.3L9.36 13.24H9q-.3 8.94-.48 12.84L7.26 46a22.47 22.47 0 01-3.6.24A13.75 13.75 0 010 45.82zM74 31.06q0 8-4.26 12.3a12.21 12.21 0 01-9 3.42 12.21 12.21 0 01-9-3.42q-4.26-4.26-4.26-12.3t4.24-12.31a12.21 12.21 0 019-3.42 12.21 12.21 0 019 3.42Q74 23.02 74 31.06zM60.75 20.98q-5.67 0-5.67 10.08t5.67 10.08q5.67 0 5.67-10.08t-5.67-10.08zM103.2 19.75q2.7 4.11 2.7 11.28T102 42.31a13.18 13.18 0 01-10 4.11 31.41 31.41 0 01-11.34-2V2.2l.4-.45h2.76A4 4 0 0187 2.83a5.38 5.38 0 01.93 3.57v11.94a12.08 12.08 0 017.56-2.7 8.71 8.71 0 017.71 4.11zm-9.72 2a7.28 7.28 0 00-5.58 2.82v16a15 15 0 004.08.54 5.25 5.25 0 004.68-2.67q1.68-2.67 1.68-7.59 0-9.03-4.86-9.1zM121 22v23.94a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3V24.75q0-3.24-2.7-3.24h-.72a9.32 9.32 0 01-.3-2.58 10.7 10.7 0 01.3-2.7 39.63 39.63 0 014.38-.24h1a5.19 5.19 0 014 1.62A6.27 6.27 0 01121 22z" />
|
||||
<path d="M119.82.84a7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.93 7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.93z" fill="#fff" />
|
||||
<path d="M139.08 40.42h2a10.23 10.23 0 01.6 3.18 9.24 9.24 0 01-.18 2.1 38.47 38.47 0 01-5.64.54q-6.48 0-6.48-7v-37l.36-.42h2.88a3.94 3.94 0 013.12 1.05 5.52 5.52 0 01.9 3.57v31.31q-.02 2.67 2.44 2.67zM155.94 22v23.94a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3V24.75q0-3.24-2.7-3.24h-.72a9.32 9.32 0 01-.3-2.58 10.7 10.7 0 01.3-2.7 39.63 39.63 0 014.38-.24h1a5.19 5.19 0 014.05 1.62 6.27 6.27 0 011.43 4.39z" />
|
||||
<path d="M154.8 2.84a7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.93 7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.93z" fill="#fff" />
|
||||
<path d="M163.08 39.22l8.76-11.82q1.32-1.8 4.8-5.7l-.18-.3a63.09 63.09 0 01-7.74.42H163a9.79 9.79 0 01-.24-2.34 15.8 15.8 0 01.42-3.3h20.4a16.31 16.31 0 011 4.26 4.1 4.1 0 01-.78 2.34L175 34.66a64.65 64.65 0 01-4.56 5.7l.18.24q3.12-.3 5.22-.3h2.58a15.35 15.35 0 006.12-.9 9.4 9.4 0 01.72 3.12q0 3.42-4.32 3.42h-18a14.27 14.27 0 01-.9-3.93 5.08 5.08 0 011.04-2.79zM215.88 31.06q0 8-4.26 12.3a13.63 13.63 0 01-18.06 0q-4.26-4.26-4.26-12.3t4.26-12.31a13.63 13.63 0 0118.06 0q4.26 4.27 4.26 12.31zm-13.29-10.08q-5.67 0-5.67 10.08t5.67 10.08q5.67 0 5.67-10.08t-5.67-10.08zM247 25.84v13.32a11 11 0 001.2 5.64 7 7 0 01-4.41 1.56q-2.43 0-3.33-1.14a5.69 5.69 0 01-.9-3.54V27.4a7.74 7.74 0 00-.72-3.87 2.78 2.78 0 00-2.58-1.17 8.62 8.62 0 00-6.3 3v20.58a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3v-29.7l.42-.36h2.76q3.42 0 4.08 3.6 4.38-3.84 8.73-3.84t6.42 2.82a12.17 12.17 0 012.07 7.38z" />
|
||||
<path d="M57.26 10.75a7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.84 7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.84zM198.26 10.75a7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.84 7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.84z" fill="#fff" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.4 KiB |
BIN
js/public/img/mobilizon_logo_original.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
js/public/img/pics/logo_chapril_mobilizon.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
js/src/assets/chapril_mobilizon_logo_long.xcf
Normal file
BIN
js/src/assets/logo_chapril_mobilizon.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
js/src/assets/long_logo_chapril_mobilizon.png
Normal file
After Width: | Height: | Size: 6.3 KiB |
11
js/src/assets/mobilizon_logo_original.svg
Normal file
@ -0,0 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 248.16 46.78">
|
||||
<title>Mobilizon Logo</title>
|
||||
<g data-name="header">
|
||||
<path d="M0 45.82l3.18-40.8a29.88 29.88 0 015.07-.36 27.74 27.74 0 014.95.36l4.86 17.16a92.19 92.19 0 012.34 10.08h.36a92.19 92.19 0 012.34-10.08L28 5.02a29.23 29.23 0 015-.36 29.23 29.23 0 015 .36l3.18 40.8a13.61 13.61 0 01-3.63.42 23.41 23.41 0 01-3.63-.24l-1.2-19.92q-.36-5.52-.48-12.84h-.44l-7.32 26.51a25.62 25.62 0 01-4 .3 23.36 23.36 0 01-3.84-.3L9.36 13.24H9q-.3 8.94-.48 12.84L7.26 46a22.47 22.47 0 01-3.6.24A13.75 13.75 0 010 45.82zM74 31.06q0 8-4.26 12.3a12.21 12.21 0 01-9 3.42 12.21 12.21 0 01-9-3.42q-4.26-4.26-4.26-12.3t4.24-12.31a12.21 12.21 0 019-3.42 12.21 12.21 0 019 3.42Q74 23.02 74 31.06zM60.75 20.98q-5.67 0-5.67 10.08t5.67 10.08q5.67 0 5.67-10.08t-5.67-10.08zM103.2 19.75q2.7 4.11 2.7 11.28T102 42.31a13.18 13.18 0 01-10 4.11 31.41 31.41 0 01-11.34-2V2.2l.4-.45h2.76A4 4 0 0187 2.83a5.38 5.38 0 01.93 3.57v11.94a12.08 12.08 0 017.56-2.7 8.71 8.71 0 017.71 4.11zm-9.72 2a7.28 7.28 0 00-5.58 2.82v16a15 15 0 004.08.54 5.25 5.25 0 004.68-2.67q1.68-2.67 1.68-7.59 0-9.03-4.86-9.1zM121 22v23.94a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3V24.75q0-3.24-2.7-3.24h-.72a9.32 9.32 0 01-.3-2.58 10.7 10.7 0 01.3-2.7 39.63 39.63 0 014.38-.24h1a5.19 5.19 0 014 1.62A6.27 6.27 0 01121 22z" />
|
||||
<path d="M119.82.84a7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.93 7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.93z" fill="#fff" />
|
||||
<path d="M139.08 40.42h2a10.23 10.23 0 01.6 3.18 9.24 9.24 0 01-.18 2.1 38.47 38.47 0 01-5.64.54q-6.48 0-6.48-7v-37l.36-.42h2.88a3.94 3.94 0 013.12 1.05 5.52 5.52 0 01.9 3.57v31.31q-.02 2.67 2.44 2.67zM155.94 22v23.94a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3V24.75q0-3.24-2.7-3.24h-.72a9.32 9.32 0 01-.3-2.58 10.7 10.7 0 01.3-2.7 39.63 39.63 0 014.38-.24h1a5.19 5.19 0 014.05 1.62 6.27 6.27 0 011.43 4.39z" />
|
||||
<path d="M154.8 2.84a7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.93 7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.93z" fill="#fff" />
|
||||
<path d="M163.08 39.22l8.76-11.82q1.32-1.8 4.8-5.7l-.18-.3a63.09 63.09 0 01-7.74.42H163a9.79 9.79 0 01-.24-2.34 15.8 15.8 0 01.42-3.3h20.4a16.31 16.31 0 011 4.26 4.1 4.1 0 01-.78 2.34L175 34.66a64.65 64.65 0 01-4.56 5.7l.18.24q3.12-.3 5.22-.3h2.58a15.35 15.35 0 006.12-.9 9.4 9.4 0 01.72 3.12q0 3.42-4.32 3.42h-18a14.27 14.27 0 01-.9-3.93 5.08 5.08 0 011.04-2.79zM215.88 31.06q0 8-4.26 12.3a13.63 13.63 0 01-18.06 0q-4.26-4.26-4.26-12.3t4.26-12.31a13.63 13.63 0 0118.06 0q4.26 4.27 4.26 12.31zm-13.29-10.08q-5.67 0-5.67 10.08t5.67 10.08q5.67 0 5.67-10.08t-5.67-10.08zM247 25.84v13.32a11 11 0 001.2 5.64 7 7 0 01-4.41 1.56q-2.43 0-3.33-1.14a5.69 5.69 0 01-.9-3.54V27.4a7.74 7.74 0 00-.72-3.87 2.78 2.78 0 00-2.58-1.17 8.62 8.62 0 00-6.3 3v20.58a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3v-29.7l.42-.36h2.76q3.42 0 4.08 3.6 4.38-3.84 8.73-3.84t6.42 2.82a12.17 12.17 0 012.07 7.38z" />
|
||||
<path d="M57.26 10.75a7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.84 7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.84zM198.26 10.75a7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.84 7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.84z" fill="#fff" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.4 KiB |
@ -8,24 +8,65 @@
|
||||
// color: $violet-2;
|
||||
// }
|
||||
|
||||
.title {
|
||||
margin: 30px auto 45px;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
background: $secondary;
|
||||
display: inline;
|
||||
padding: 3px 8px;
|
||||
margin: 15px auto 30px;
|
||||
}
|
||||
|
||||
main > .container {
|
||||
background: $whitest;
|
||||
min-height: 70vh;
|
||||
}
|
||||
.step-content {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
a.out,
|
||||
.content a,
|
||||
.ProseMirror a {
|
||||
text-decoration: underline;
|
||||
text-decoration-color: #ed8d07;
|
||||
text-decoration-color: $secondary;
|
||||
text-decoration-thickness: 2px;
|
||||
}
|
||||
|
||||
// input.input {
|
||||
// border-color: $input-border-color !important;
|
||||
// }
|
||||
main {
|
||||
> section > .columns {
|
||||
min-height: 50vh;
|
||||
}
|
||||
> section {
|
||||
&.container {
|
||||
min-height: 80vh;
|
||||
}
|
||||
}
|
||||
> #homepage {
|
||||
background: $whitest;
|
||||
#featured_events {
|
||||
background: $whitest;
|
||||
}
|
||||
#picture {
|
||||
.container,
|
||||
.section {
|
||||
background: $whitest;
|
||||
}
|
||||
}
|
||||
> .container {
|
||||
min-height: 25vh;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.section {
|
||||
padding: 1rem 1% 4rem;
|
||||
}
|
||||
|
||||
figure img.is-rounded {
|
||||
border: 1px solid #cdcaea;
|
||||
border: 1px solid $chapril_blue;
|
||||
}
|
||||
|
||||
$color-black: #000;
|
||||
@ -64,21 +105,21 @@ $color-black: #000;
|
||||
}
|
||||
|
||||
body {
|
||||
// background: #f7f8fa;
|
||||
background: $body-background-color;
|
||||
font-family: BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, Cantarell, "Segoe UI",
|
||||
"Fira Sans", "Droid Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
|
||||
/*main {*/
|
||||
/* margin: 1rem auto 0;*/
|
||||
/*}*/
|
||||
}
|
||||
|
||||
#mobilizon > .container > .message {
|
||||
#mobilizon {
|
||||
> main {
|
||||
background: $body-background-color;
|
||||
}
|
||||
> .container > .message {
|
||||
margin: 1rem auto auto;
|
||||
.message-header {
|
||||
button.delete {
|
||||
background: #4a4a4a;
|
||||
background: $chapril_grey;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -95,7 +136,7 @@ $list-radius: $radius !default;
|
||||
|
||||
$list-item-border: 1px solid $border !default;
|
||||
$list-item-color: $text !default;
|
||||
$list-item-active-background-color: $link !default;
|
||||
$list-item-active-background-color: $purple-1 !default;
|
||||
$list-item-active-color: $link-invert !default;
|
||||
$list-item-hover-background-color: $background !default;
|
||||
|
||||
@ -130,12 +171,70 @@ a.list-item {
|
||||
.setting-title {
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 1rem;
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
background: $secondary;
|
||||
color: $white;
|
||||
span {
|
||||
background: $secondary !important;
|
||||
color: $white !important;
|
||||
}
|
||||
}
|
||||
h2 {
|
||||
display: inline;
|
||||
background: $secondary;
|
||||
|
||||
padding: 2px 7.5px;
|
||||
text-transform: uppercase;
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
}
|
||||
|
||||
.hero-body {
|
||||
background-color: $chapril_blue_light;
|
||||
}
|
||||
|
||||
.columns {
|
||||
background: $whitest;
|
||||
}
|
||||
.setting-menu-item {
|
||||
background-color: $yellow-4;
|
||||
|
||||
.router-link-active,
|
||||
.router-link-active {
|
||||
background-color: $info;
|
||||
color: $white;
|
||||
|
||||
a {
|
||||
color: $white;
|
||||
font-weight: 600 !important;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.date-component-container {
|
||||
.datetime-container {
|
||||
margin-right: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
.time.datetime-container {
|
||||
color: $white;
|
||||
background: $chapril_blue_light;
|
||||
span.month {
|
||||
color: $whitest;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
footer
|
||||
|
||||
*/
|
||||
footer.footer[data-v-40ab164b] span.select select {
|
||||
background: $chapril_blue_light;
|
||||
color: $footer-text-color;
|
||||
}
|
||||
|
@ -40,8 +40,8 @@
|
||||
)
|
||||
}}
|
||||
</p>
|
||||
<div class="has-text-centered">
|
||||
<code>{{ `${currentActor.preferredUsername}@${domain}` }}</code>
|
||||
<div class="has-text-centered has-text-primary has-background-success">
|
||||
<pre>{{ `${currentActor.preferredUsername}@${domain}` }}</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -43,13 +43,12 @@ export default class DateCalendarIcon extends Vue {
|
||||
|
||||
<style lang="scss" scoped>
|
||||
time.datetime-container {
|
||||
background: $backgrounds;
|
||||
background: $chapril_blue_light;
|
||||
border: 1px solid $borders;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
/*height: 50px;*/
|
||||
width: 50px;
|
||||
padding: 8px;
|
||||
text-align: center;
|
||||
|
@ -344,10 +344,39 @@ article.box {
|
||||
.list-card {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 1.5em;
|
||||
|
||||
.actions {
|
||||
padding-right: 7.5px;
|
||||
cursor: pointer;
|
||||
ul li {
|
||||
margin: 0 auto;
|
||||
|
||||
.is-link {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.button.is-text {
|
||||
text-decoration: none;
|
||||
|
||||
::v-deep span:first-child i.mdi::before {
|
||||
font-size: 24px !important;
|
||||
}
|
||||
|
||||
::v-deep span:last-child {
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: #f5f5f5;
|
||||
}
|
||||
}
|
||||
|
||||
* {
|
||||
font-size: 0.8rem;
|
||||
color: $background-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
div.content {
|
||||
@ -407,4 +436,11 @@ article.box {
|
||||
}
|
||||
padding: 0;
|
||||
}
|
||||
.content h3.event-title-card {
|
||||
line-height: 1em;
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
.participation-actor {
|
||||
margin-top: 1em;
|
||||
}
|
||||
</style>
|
||||
|
@ -23,7 +23,6 @@ export default class EventMetadataBlock extends Vue {
|
||||
h2 {
|
||||
font-size: 1.8rem;
|
||||
font-weight: 500;
|
||||
color: #f7ba30;
|
||||
}
|
||||
|
||||
div.eventMetadataBlock {
|
||||
|
@ -34,6 +34,11 @@
|
||||
$t("About")
|
||||
}}</router-link>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.chapril.org/Mentions-legales.html">
|
||||
Mentions légales
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<router-link :to="{ name: RouteName.TERMS }">{{
|
||||
$t("Terms")
|
||||
@ -42,11 +47,14 @@
|
||||
<li>
|
||||
<a
|
||||
hreflang="en"
|
||||
href="https://framagit.org/framasoft/mobilizon/blob/master/LICENSE"
|
||||
href="https://forge.april.org/Chapril/mobilizon.chapril.org-mobilizon/src/branch/chapril/LICENSE"
|
||||
>
|
||||
{{ $t("License") }}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="mailto:mobilizon-support@chapril.org">{{ $t("Contact") }}</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="content has-text-centered">
|
||||
<i18n
|
||||
|
@ -1,34 +1,12 @@
|
||||
<template>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 248.16 46.78">
|
||||
<title>Mobilizon Logo</title>
|
||||
<g data-name="header">
|
||||
<path
|
||||
d="M0 45.82l3.18-40.8a29.88 29.88 0 015.07-.36 27.74 27.74 0 014.95.36l4.86 17.16a92.19 92.19 0 012.34 10.08h.36a92.19 92.19 0 012.34-10.08L28 5.02a29.23 29.23 0 015-.36 29.23 29.23 0 015 .36l3.18 40.8a13.61 13.61 0 01-3.63.42 23.41 23.41 0 01-3.63-.24l-1.2-19.92q-.36-5.52-.48-12.84h-.44l-7.32 26.51a25.62 25.62 0 01-4 .3 23.36 23.36 0 01-3.84-.3L9.36 13.24H9q-.3 8.94-.48 12.84L7.26 46a22.47 22.47 0 01-3.6.24A13.75 13.75 0 010 45.82zM74 31.06q0 8-4.26 12.3a12.21 12.21 0 01-9 3.42 12.21 12.21 0 01-9-3.42q-4.26-4.26-4.26-12.3t4.24-12.31a12.21 12.21 0 019-3.42 12.21 12.21 0 019 3.42Q74 23.02 74 31.06zM60.75 20.98q-5.67 0-5.67 10.08t5.67 10.08q5.67 0 5.67-10.08t-5.67-10.08zM103.2 19.75q2.7 4.11 2.7 11.28T102 42.31a13.18 13.18 0 01-10 4.11 31.41 31.41 0 01-11.34-2V2.2l.4-.45h2.76A4 4 0 0187 2.83a5.38 5.38 0 01.93 3.57v11.94a12.08 12.08 0 017.56-2.7 8.71 8.71 0 017.71 4.11zm-9.72 2a7.28 7.28 0 00-5.58 2.82v16a15 15 0 004.08.54 5.25 5.25 0 004.68-2.67q1.68-2.67 1.68-7.59 0-9.03-4.86-9.1zM121 22v23.94a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3V24.75q0-3.24-2.7-3.24h-.72a9.32 9.32 0 01-.3-2.58 10.7 10.7 0 01.3-2.7 39.63 39.63 0 014.38-.24h1a5.19 5.19 0 014 1.62A6.27 6.27 0 01121 22z"
|
||||
/>
|
||||
<path
|
||||
d="M119.82.84a7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.93 7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.93z"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
d="M139.08 40.42h2a10.23 10.23 0 01.6 3.18 9.24 9.24 0 01-.18 2.1 38.47 38.47 0 01-5.64.54q-6.48 0-6.48-7v-37l.36-.42h2.88a3.94 3.94 0 013.12 1.05 5.52 5.52 0 01.9 3.57v31.31q-.02 2.67 2.44 2.67zM155.94 22v23.94a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3V24.75q0-3.24-2.7-3.24h-.72a9.32 9.32 0 01-.3-2.58 10.7 10.7 0 01.3-2.7 39.63 39.63 0 014.38-.24h1a5.19 5.19 0 014.05 1.62 6.27 6.27 0 011.43 4.39z"
|
||||
/>
|
||||
<path
|
||||
d="M154.8 2.84a7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.93 7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.93z"
|
||||
fill="#fff"
|
||||
/>
|
||||
<path
|
||||
d="M163.08 39.22l8.76-11.82q1.32-1.8 4.8-5.7l-.18-.3a63.09 63.09 0 01-7.74.42H163a9.79 9.79 0 01-.24-2.34 15.8 15.8 0 01.42-3.3h20.4a16.31 16.31 0 011 4.26 4.1 4.1 0 01-.78 2.34L175 34.66a64.65 64.65 0 01-4.56 5.7l.18.24q3.12-.3 5.22-.3h2.58a15.35 15.35 0 006.12-.9 9.4 9.4 0 01.72 3.12q0 3.42-4.32 3.42h-18a14.27 14.27 0 01-.9-3.93 5.08 5.08 0 011.04-2.79zM215.88 31.06q0 8-4.26 12.3a13.63 13.63 0 01-18.06 0q-4.26-4.26-4.26-12.3t4.26-12.31a13.63 13.63 0 0118.06 0q4.26 4.27 4.26 12.31zm-13.29-10.08q-5.67 0-5.67 10.08t5.67 10.08q5.67 0 5.67-10.08t-5.67-10.08zM247 25.84v13.32a11 11 0 001.2 5.64 7 7 0 01-4.41 1.56q-2.43 0-3.33-1.14a5.69 5.69 0 01-.9-3.54V27.4a7.74 7.74 0 00-.72-3.87 2.78 2.78 0 00-2.58-1.17 8.62 8.62 0 00-6.3 3v20.58a20.85 20.85 0 01-3.66.3 23 23 0 01-3.78-.3v-29.7l.42-.36h2.76q3.42 0 4.08 3.6 4.38-3.84 8.73-3.84t6.42 2.82a12.17 12.17 0 012.07 7.38z"
|
||||
/>
|
||||
<path
|
||||
d="M57.26 10.75a7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.84 7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.84zM198.26 10.75a7.37 7.37 0 01-.6-3 7.37 7.37 0 01.6-3 8.09 8.09 0 013.87-.84 7.05 7.05 0 013.69.84 7.37 7.37 0 01.6 3 7.37 7.37 0 01-.6 3 7.46 7.46 0 01-3.87.84 6.49 6.49 0 01-3.69-.84z"
|
||||
fill="#fff"
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
||||
<img src="img/pics/logo_chapril_mobilizon.png" alt="logo chapril" />
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { Component, Prop, Vue } from "vue-property-decorator";
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
import MobilizonLogo from "../assets/logo_chapril_mobilizon.png";
|
||||
|
||||
@Component
|
||||
export default class Logo extends Vue {
|
||||
|
38
js/src/components/NavBar.vue
Normal file → Executable file
@ -7,25 +7,30 @@
|
||||
<template slot="brand">
|
||||
<b-navbar-item
|
||||
tag="router-link"
|
||||
:to="{ name: RouteName.HOME }"
|
||||
:aria-label="$t('Home')"
|
||||
:to="{ name: RouteName.HOME }"
|
||||
>
|
||||
<logo />
|
||||
<img
|
||||
src="/img/long_logo_chapril_mobilizon.png"
|
||||
alt="logo mobilizon"
|
||||
style="width: 5em"
|
||||
/>
|
||||
</b-navbar-item>
|
||||
</template>
|
||||
<template slot="start">
|
||||
<b-navbar-item tag="router-link" :to="{ name: RouteName.SEARCH }">{{
|
||||
$t("Explore")
|
||||
}}</b-navbar-item>
|
||||
<b-navbar-item tag="router-link" :to="{ name: RouteName.MY_EVENTS }">{{
|
||||
$t("My events")
|
||||
}}</b-navbar-item>
|
||||
<b-navbar-item tag="router-link" :to="{ name: RouteName.SEARCH }"
|
||||
>{{ $t("Explore") }}
|
||||
</b-navbar-item>
|
||||
<b-navbar-item tag="router-link" :to="{ name: RouteName.MY_EVENTS }"
|
||||
>{{ $t("My events") }}
|
||||
</b-navbar-item>
|
||||
<b-navbar-item
|
||||
tag="router-link"
|
||||
:to="{ name: RouteName.MY_GROUPS }"
|
||||
v-if="config && config.features.groups"
|
||||
>{{ $t("My groups") }}</b-navbar-item
|
||||
>
|
||||
>{{ $t("My groups") }}
|
||||
</b-navbar-item>
|
||||
|
||||
<b-navbar-item tag="span" v-if="config && config.features.eventCreation">
|
||||
<b-button
|
||||
tag="router-link"
|
||||
@ -36,6 +41,15 @@
|
||||
</b-navbar-item>
|
||||
</template>
|
||||
<template slot="end">
|
||||
<b-navbar-item
|
||||
href="https://www.chapril.org"
|
||||
:aria-label="'www.chapril.org'"
|
||||
>
|
||||
<img
|
||||
src="/img/pics/logo_chapril_mobilizon.png"
|
||||
alt="logo chapril mobilizon"
|
||||
/>
|
||||
</b-navbar-item>
|
||||
<b-navbar-item tag="div">
|
||||
<search-field @navbar-search="mobileNavbarActive = false" />
|
||||
</b-navbar-item>
|
||||
@ -98,8 +112,8 @@
|
||||
v-if="currentUser.role === ICurrentUserRole.ADMINISTRATOR"
|
||||
tag="router-link"
|
||||
:to="{ name: RouteName.ADMIN_DASHBOARD }"
|
||||
>{{ $t("Administration") }}</b-navbar-item
|
||||
>
|
||||
>{{ $t("Administration") }}
|
||||
</b-navbar-item>
|
||||
|
||||
<b-navbar-item tag="span">
|
||||
<span @click="logout">{{ $t("Log out") }}</span>
|
||||
|
@ -17,10 +17,8 @@ h2 {
|
||||
margin: 15px 0 30px;
|
||||
|
||||
span {
|
||||
background: $secondary;
|
||||
display: inline;
|
||||
padding: 3px 8px;
|
||||
color: #3a384c;
|
||||
font-family: "Liberation Sans", "Helvetica Neue", Roboto, Helvetica, Arial,
|
||||
serif;
|
||||
font-weight: 400;
|
||||
|
@ -1,7 +1,14 @@
|
||||
@import "~bulma/sass/utilities/functions.sass";
|
||||
@import "~bulma/sass/utilities/initial-variables.sass";
|
||||
@import "~bulma/sass/utilities/derived-variables.sass";
|
||||
|
||||
// chapril colors
|
||||
$chapril_blue: #2e5281;
|
||||
$chapril_blue_light: #bcd0e5;
|
||||
$white: mix(#fff, #bcd0e5);
|
||||
$whitest: #fff;
|
||||
$chapril_orange: #ff5e00;
|
||||
$chapril_grey: #5f5f5f;
|
||||
// other
|
||||
$bleuvert: #1e7d97;
|
||||
$jaune: #ffd599;
|
||||
$violet: #424056;
|
||||
@ -20,44 +27,45 @@ $violet-3: #3c376e;
|
||||
/**
|
||||
* Borders
|
||||
*/
|
||||
$borders: #d7d6de;
|
||||
$backgrounds: #ecebf2;
|
||||
$borders: mix($chapril_blue, #d7d6de);
|
||||
$backgrounds: mix($chapril_blue, #ecebf2);
|
||||
|
||||
/**
|
||||
* Text
|
||||
*/
|
||||
$purple-1: #757199;
|
||||
$purple-1: mix($chapril_blue, #757199);
|
||||
|
||||
/**
|
||||
* Background
|
||||
*/
|
||||
$purple-2: #cdcaea;
|
||||
$purple-3: #e6e4f4;
|
||||
$purple-2: mix($chapril_blue, #cdcaea);
|
||||
$purple-3: mix($chapril_blue, #e6e4f4);
|
||||
|
||||
$orange-2: #ed8d07;
|
||||
$orange-3: #d35204;
|
||||
$orange-2: mix($chapril_blue, #ed8d07);
|
||||
$orange-3: mix($chapril_blue, #d35204);
|
||||
|
||||
$yellow-1: #ffd599;
|
||||
$yellow-2: #fff1de;
|
||||
$yellow-3: #fbd5cb;
|
||||
$yellow-4: #f7ba30;
|
||||
$yellow-1: mix($chapril_blue, #fff1e8);
|
||||
$yellow-2: mix($chapril_blue, #fff1de);
|
||||
$yellow-3: mix($chapril_blue, #fff8f6);
|
||||
$yellow-4: mix($chapril_blue, #b4f0ff);
|
||||
|
||||
$primary: $bleuvert;
|
||||
$primary: $chapril_blue;
|
||||
$primary-invert: findColorInvert($primary);
|
||||
$secondary: $jaune;
|
||||
$secondary: lighten($chapril_blue, 20%);
|
||||
$secondary-invert: findColorInvert($secondary);
|
||||
|
||||
$background-color: $violet-2;
|
||||
$background-color: mix($chapril_blue, $violet-2);
|
||||
$background-color-darker: darken($background-color, 10%);
|
||||
|
||||
$success: #0d8758;
|
||||
$success: mix($chapril_blue, #0d8758);
|
||||
$success-invert: findColorInvert($success);
|
||||
$info: #36bcd4;
|
||||
$info: mix($chapril_blue, #36bcd4);
|
||||
$info-invert: findColorInvert($info);
|
||||
$danger: #ff2e54;
|
||||
$danger: mix($chapril_blue, #ff2e54);
|
||||
$danger-invert: findColorInvert($danger);
|
||||
$link: $primary;
|
||||
$link-invert: $primary-invert;
|
||||
$text: $violet-1;
|
||||
$text: mix($chapril_blue, $violet-1);
|
||||
|
||||
$colors: map-merge(
|
||||
$colors,
|
||||
@ -100,18 +108,14 @@ $navbar-height: 4rem;
|
||||
|
||||
// Footer
|
||||
$footer-padding: 3rem 1.5rem 1rem;
|
||||
$footer-background-color: $background-color;
|
||||
$footer-background-color: $violet-2;
|
||||
$footer-text-color: mix(#000, $violet-2);
|
||||
|
||||
$body-background-color: #efeef4;
|
||||
$body-background-color: mix($chapril_blue, #efeef4);
|
||||
$fullhd-enabled: false;
|
||||
$hero-body-padding-medium: 6rem 1.5rem;
|
||||
|
||||
main > .container {
|
||||
background: $body-background-color;
|
||||
min-height: 70vh;
|
||||
}
|
||||
|
||||
$title-color: #3c376e;
|
||||
$title-color: $chapril_blue;
|
||||
$title-family: "Liberation Sans", "Helvetica Neue", Roboto, Helvetica, Arial,
|
||||
serif;
|
||||
$title-weight: 700;
|
||||
@ -119,7 +123,7 @@ $title-size: 40px;
|
||||
$title-sub-size: 45px;
|
||||
$title-sup-size: 30px;
|
||||
|
||||
$subtitle-color: #3a384c;
|
||||
$subtitle-color: $chapril_grey;
|
||||
$subtitle-family: "Liberation Sans", "Helvetica Neue", Roboto, Helvetica, Arial,
|
||||
serif;
|
||||
$subtitle-weight: 400;
|
||||
@ -127,18 +131,7 @@ $subtitle-size: 32px;
|
||||
$subtitle-sub-size: 30px;
|
||||
$subtitle-sup-size: 15px;
|
||||
|
||||
.title {
|
||||
margin: 30px auto 45px;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
background: $secondary;
|
||||
display: inline;
|
||||
padding: 3px 8px;
|
||||
margin: 15px auto 30px;
|
||||
}
|
||||
|
||||
//$input-border-color: #dbdbdb;
|
||||
$breadcrumb-item-color: $primary;
|
||||
$checkbox-background-color: #fff;
|
||||
$title-color: $violet-3;
|
||||
$title-color: $chapril_blue;
|
||||
|
140
js/src/variables_original.scss
Normal file
@ -0,0 +1,140 @@
|
||||
@import "~bulma/sass/utilities/functions.sass";
|
||||
@import "~bulma/sass/utilities/initial-variables.sass";
|
||||
@import "~bulma/sass/utilities/derived-variables.sass";
|
||||
|
||||
$bleuvert: #1e7d97;
|
||||
$jaune: #ffd599;
|
||||
$violet: #424056;
|
||||
|
||||
/**
|
||||
* Text body, paragraphs
|
||||
*/
|
||||
$violet-1: #3a384c;
|
||||
$violet-2: #474467;
|
||||
|
||||
/**
|
||||
* Titles, dark borders, buttons
|
||||
*/
|
||||
$violet-3: #3c376e;
|
||||
|
||||
/**
|
||||
* Borders
|
||||
*/
|
||||
$borders: #d7d6de;
|
||||
$backgrounds: #ecebf2;
|
||||
|
||||
/**
|
||||
* Text
|
||||
*/
|
||||
$purple-1: #757199;
|
||||
|
||||
/**
|
||||
* Background
|
||||
*/
|
||||
$purple-2: #cdcaea;
|
||||
$purple-3: #e6e4f4;
|
||||
|
||||
$orange-2: #ed8d07;
|
||||
$orange-3: #d35204;
|
||||
|
||||
$yellow-1: #ffd599;
|
||||
$yellow-2: #fff1de;
|
||||
$yellow-3: #fbd5cb;
|
||||
$yellow-4: #f7ba30;
|
||||
|
||||
$primary: $bleuvert;
|
||||
$primary-invert: findColorInvert($primary);
|
||||
$secondary: $jaune;
|
||||
$secondary-invert: findColorInvert($secondary);
|
||||
|
||||
$background-color: $violet-2;
|
||||
|
||||
$success: #0d8758;
|
||||
$success-invert: findColorInvert($success);
|
||||
$info: #36bcd4;
|
||||
$info-invert: findColorInvert($info);
|
||||
$danger: #ff2e54;
|
||||
$danger-invert: findColorInvert($danger);
|
||||
$link: $primary;
|
||||
$link-invert: $primary-invert;
|
||||
$text: $violet-1;
|
||||
|
||||
$colors: map-merge(
|
||||
$colors,
|
||||
(
|
||||
"primary": (
|
||||
$primary,
|
||||
$primary-invert,
|
||||
),
|
||||
"secondary": (
|
||||
$secondary,
|
||||
$secondary-invert,
|
||||
),
|
||||
"success": (
|
||||
$success,
|
||||
$success-invert,
|
||||
),
|
||||
"info": (
|
||||
$info,
|
||||
$info-invert,
|
||||
),
|
||||
"danger": (
|
||||
$danger,
|
||||
$danger-invert,
|
||||
),
|
||||
"link": (
|
||||
$link,
|
||||
$link-invert,
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
// Navbar
|
||||
$navbar-background-color: $secondary;
|
||||
$navbar-item-color: $background-color;
|
||||
$navbar-height: 4rem;
|
||||
|
||||
// Footer
|
||||
$footer-padding: 3rem 1.5rem 1rem;
|
||||
$footer-background-color: $background-color;
|
||||
|
||||
$body-background-color: #efeef4;
|
||||
$fullhd-enabled: false;
|
||||
$hero-body-padding-medium: 6rem 1.5rem;
|
||||
|
||||
main > .container {
|
||||
background: $body-background-color;
|
||||
min-height: 70vh;
|
||||
}
|
||||
|
||||
$title-color: #3c376e;
|
||||
$title-family: "Liberation Sans", "Helvetica Neue", Roboto, Helvetica, Arial,
|
||||
serif;
|
||||
$title-weight: 700;
|
||||
$title-size: 40px;
|
||||
$title-sub-size: 45px;
|
||||
$title-sup-size: 30px;
|
||||
|
||||
$subtitle-color: #3a384c;
|
||||
$subtitle-family: "Liberation Sans", "Helvetica Neue", Roboto, Helvetica, Arial,
|
||||
serif;
|
||||
$subtitle-weight: 400;
|
||||
$subtitle-size: 32px;
|
||||
$subtitle-sub-size: 30px;
|
||||
$subtitle-sup-size: 15px;
|
||||
|
||||
.title {
|
||||
margin: 30px auto 45px;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
background: $secondary;
|
||||
display: inline;
|
||||
padding: 3px 8px;
|
||||
margin: 15px auto 30px;
|
||||
}
|
||||
|
||||
//$input-border-color: #dbdbdb;
|
||||
$breadcrumb-item-color: $primary;
|
||||
$checkbox-background-color: #fff;
|
||||
$title-color: $violet-3;
|
@ -377,7 +377,6 @@ h2.subtitle {
|
||||
span {
|
||||
padding: 5px 7px;
|
||||
display: inline;
|
||||
background: $secondary;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -895,7 +895,6 @@ div.container {
|
||||
|
||||
.media-content {
|
||||
h2 {
|
||||
color: #3c376e;
|
||||
font-family: "Liberation Sans", "Helvetica Neue", Roboto,
|
||||
Helvetica, Arial, serif;
|
||||
font-size: 1.5rem;
|
||||
|
@ -12,9 +12,9 @@
|
||||
</h1>
|
||||
<p
|
||||
v-html="
|
||||
$t('Join <b>{instance}</b>, a Mobilizon instance', {
|
||||
`${$t('Join <b>{instance}</b>, a Mobilizon instance', {
|
||||
instance: config.name,
|
||||
})
|
||||
})}.`
|
||||
"
|
||||
/>
|
||||
<p class="instance-description">{{ config.description }}</p>
|
||||
@ -31,7 +31,15 @@
|
||||
tag="router-link"
|
||||
:to="{ name: RouteName.REGISTER }"
|
||||
v-if="config.registrationsOpen"
|
||||
>{{ $t("Create an account") }}</b-button
|
||||
>
|
||||
<i class="mdi mdi-account"></i>
|
||||
{{ $t("Create an account") }}</b-button
|
||||
>
|
||||
<a
|
||||
class="button is-light"
|
||||
:title="config.contact"
|
||||
href="mailto:mobilizon-support@chapril.org"
|
||||
>{{ $t("Contact") }}</a
|
||||
>
|
||||
<!-- We don't invite to find other instances yet -->
|
||||
<!-- <b-button v-else type="is-link" tag="a" href="https://joinmastodon.org">{{ $t('Find an instance') }}</b-button> -->
|
||||
@ -593,7 +601,7 @@ export default class Home extends Vue {
|
||||
@import "~bulma/sass/utilities/mixins.sass";
|
||||
|
||||
main > div > .container {
|
||||
background: $white;
|
||||
background: $whitest;
|
||||
padding: 1rem 1.5rem 3rem;
|
||||
}
|
||||
|
||||
@ -717,8 +725,6 @@ section.hero {
|
||||
}
|
||||
|
||||
.container.section {
|
||||
background: $white;
|
||||
|
||||
@include tablet {
|
||||
margin-top: -4rem;
|
||||
}
|
||||
|
@ -443,6 +443,8 @@ export default class Search extends Vue {
|
||||
}
|
||||
|
||||
private prepareLocation(value: string | undefined): void {
|
||||
console.info("geohash location", this.location);
|
||||
|
||||
if (value !== undefined) {
|
||||
// decode
|
||||
const latlon = ngeohash.decode(value);
|
||||
|
@ -290,10 +290,8 @@ export default class Register extends Vue {
|
||||
}
|
||||
|
||||
h2.title {
|
||||
color: $primary;
|
||||
font-size: 2.5rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-color: $secondary;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
|
@ -90,11 +90,13 @@ export default class ResendConfirmation extends Vue {
|
||||
e.preventDefault();
|
||||
this.error = false;
|
||||
|
||||
console.log("this.credentials.email", this.credentials.email);
|
||||
console.log("this.email", this.email);
|
||||
try {
|
||||
await this.$apollo.mutate({
|
||||
mutation: RESEND_CONFIRMATION_EMAIL,
|
||||
variables: {
|
||||
email: this.credentials.email,
|
||||
email: this.credentials.email || this.email,
|
||||
},
|
||||
});
|
||||
} catch (err) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="section container">
|
||||
<div class="section container bg-white">
|
||||
<h1 class="title">{{ $t("Let's define a few settings") }}</h1>
|
||||
<b-steps v-model="realActualStepIndex" :has-navigation="false">
|
||||
<b-step-item step="1" :label="$t('Settings')">
|
||||
@ -90,6 +90,7 @@ export default class SettingsOnboard extends Vue {
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.section.container {
|
||||
background: white;
|
||||
.has-text-centered.section.buttons {
|
||||
justify-content: center;
|
||||
}
|
||||
|
@ -50,9 +50,7 @@
|
||||
"type": "Hashtag"
|
||||
}
|
||||
],
|
||||
"to": [
|
||||
"https://www.w3.org/ns/activitystreams#Public"
|
||||
],
|
||||
"to": ["https://www.w3.org/ns/activitystreams#Public"],
|
||||
"type": "Note",
|
||||
"url": "https://framapiaf.org/@admin/99512778738411822"
|
||||
},
|
||||
@ -63,8 +61,6 @@
|
||||
"signatureValue": "rnNfcopkc6+Ju73P806popcfwrK9wGYHaJVG1/ZvrlEbWVDzaHjkXqj9Q3/xju5l8CSn9tvSgCCtPFqZsFQwn/pFIFUcw7ZWB2xi4bDm3NZ3S4XQ8JRaaX7og5hFxAhWkGhJhAkfxVnOg2hG+w2d/7d7vRVSC1vo5ip4erUaA/PkWusZvPIpxnRWoXaxJsFmVx0gJgjpJkYDyjaXUlp+jmaoseeZ4EPQUWqHLKJ59PRG0mg8j2xAjYH9nQaN14qMRmTGPxY8gfv/CUFcatA+8VJU9KEsJkDAwLVvglydNTLGrxpAJU78a2eaht0foV43XUIZGe3DKiJPgE+UOKGCJw==",
|
||||
"type": "RsaSignature2017"
|
||||
},
|
||||
"to": [
|
||||
"https://www.w3.org/ns/activitystreams#Public"
|
||||
],
|
||||
"to": ["https://www.w3.org/ns/activitystreams#Public"],
|
||||
"type": "Create"
|
||||
}
|
||||
|
8
test/fixtures/mastodon-post-activity.json
vendored
@ -45,9 +45,7 @@
|
||||
"type": "Mention"
|
||||
}
|
||||
],
|
||||
"to": [
|
||||
"https://www.w3.org/ns/activitystreams#Public"
|
||||
],
|
||||
"to": ["https://www.w3.org/ns/activitystreams#Public"],
|
||||
"type": "Note",
|
||||
"url": "https://framapiaf.org/@admin/99512778738411822"
|
||||
},
|
||||
@ -58,8 +56,6 @@
|
||||
"signatureValue": "rnNfcopkc6+Ju73P806popcfwrK9wGYHaJVG1/ZvrlEbWVDzaHjkXqj9Q3/xju5l8CSn9tvSgCCtPFqZsFQwn/pFIFUcw7ZWB2xi4bDm3NZ3S4XQ8JRaaX7og5hFxAhWkGhJhAkfxVnOg2hG+w2d/7d7vRVSC1vo5ip4erUaA/PkWusZvPIpxnRWoXaxJsFmVx0gJgjpJkYDyjaXUlp+jmaoseeZ4EPQUWqHLKJ59PRG0mg8j2xAjYH9nQaN14qMRmTGPxY8gfv/CUFcatA+8VJU9KEsJkDAwLVvglydNTLGrxpAJU78a2eaht0foV43XUIZGe3DKiJPgE+UOKGCJw==",
|
||||
"type": "RsaSignature2017"
|
||||
},
|
||||
"to": [
|
||||
"https://www.w3.org/ns/activitystreams#Public"
|
||||
],
|
||||
"to": ["https://www.w3.org/ns/activitystreams#Public"],
|
||||
"type": "Create"
|
||||
}
|
||||
|
4
test/fixtures/mastodon-undo-announce.json
vendored
@ -8,9 +8,7 @@
|
||||
},
|
||||
"object": {
|
||||
"type": "Announce",
|
||||
"to": [
|
||||
"http://www.w3.org/ns/activitystreams#Public"
|
||||
],
|
||||
"to": ["http://www.w3.org/ns/activitystreams#Public"],
|
||||
"published": "2018-05-11T16:23:37Z",
|
||||
"object": "https://framapiaf.org/@Framasoft/statuses/102501959686438400",
|
||||
"id": "https://framapiaf.org/users/Framasoft/statuses/102501959686438400/activity",
|
||||
|
8
test/fixtures/prismo-url-map.json
vendored
@ -7,9 +7,7 @@
|
||||
"id": "https://prismo.news/@mxb"
|
||||
}
|
||||
],
|
||||
"to": [
|
||||
"https://www.w3.org/ns/activitystreams#Public"
|
||||
],
|
||||
"to": ["https://www.w3.org/ns/activitystreams#Public"],
|
||||
"object": {
|
||||
"id": "https://prismo.news/posts/83",
|
||||
"type": "Article",
|
||||
@ -28,9 +26,7 @@
|
||||
"id": "https://prismo.news/@mxb"
|
||||
}
|
||||
],
|
||||
"to": [
|
||||
"https://www.w3.org/ns/activitystreams#Public"
|
||||
],
|
||||
"to": ["https://www.w3.org/ns/activitystreams#Public"],
|
||||
"tags": [
|
||||
{
|
||||
"type": "Hashtag",
|
||||
|