Merge branch 'master' into use-attohttpc
This commit is contained in:
commit
74c5380975
12 changed files with 99 additions and 42 deletions
2
ansible/VERSION
vendored
2
ansible/VERSION
vendored
|
@ -1 +1 @@
|
|||
v0.6.71
|
||||
v0.6.73
|
||||
|
|
2
docker/prod/docker-compose.yml
vendored
2
docker/prod/docker-compose.yml
vendored
|
@ -12,7 +12,7 @@ services:
|
|||
restart: always
|
||||
|
||||
lemmy:
|
||||
image: dessalines/lemmy:v0.6.71
|
||||
image: dessalines/lemmy:v0.6.73
|
||||
ports:
|
||||
- "127.0.0.1:8536:8536"
|
||||
restart: always
|
||||
|
|
70
docs/src/contributing_local_development.md
vendored
70
docs/src/contributing_local_development.md
vendored
|
@ -1,31 +1,61 @@
|
|||
#### Requirements
|
||||
### Ubuntu
|
||||
|
||||
- [Rust](https://www.rust-lang.org/)
|
||||
- [Yarn](https://yarnpkg.com/en/)
|
||||
- [Postgres](https://www.postgresql.org/)
|
||||
|
||||
#### Set up Postgres DB
|
||||
#### Build requirements:
|
||||
```
|
||||
sudo apt install git cargo libssl-dev pkg-config libpq-dev yarn curl gnupg2 git
|
||||
# install yarn
|
||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
|
||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
|
||||
sudo apt update && sudo apt install yarn
|
||||
```
|
||||
|
||||
```bash
|
||||
#### Get the source code
|
||||
```
|
||||
git clone https://github.com/LemmyNet/lemmy.git
|
||||
# or alternatively from gitea
|
||||
# git clone https://yerbamate.dev/LemmyNet/lemmy.git
|
||||
```
|
||||
|
||||
All the following commands need to be run either in `lemmy/server` or `lemmy/ui`, as indicated
|
||||
by the `cd` command.
|
||||
|
||||
#### Build the backend (Rust)
|
||||
```
|
||||
cd server
|
||||
./db-init.sh
|
||||
cargo build
|
||||
# for development, use `cargo check` instead)
|
||||
```
|
||||
|
||||
Or run the commands manually:
|
||||
#### Build the frontend (Typescript)
|
||||
```
|
||||
cd ui
|
||||
yarn
|
||||
yarn build
|
||||
```
|
||||
|
||||
```bash
|
||||
psql -c "create user lemmy with password 'password' superuser;" -U postgres
|
||||
psql -c 'create database lemmy with owner lemmy;' -U postgres
|
||||
#### Setup postgresql
|
||||
```
|
||||
sudo apt install postgresql
|
||||
sudo systemctl start postgresql
|
||||
# initialize postgres database
|
||||
sudo -u postgres psql -c "create user lemmy with password 'password' superuser;" -U postgres
|
||||
sudo -u postgres psql -c 'create database lemmy with owner lemmy;' -U postgres
|
||||
export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy
|
||||
# or execute server/db-init.sh
|
||||
```
|
||||
|
||||
#### Running
|
||||
|
||||
```bash
|
||||
git clone https://github.com/LemmyNet/lemmy
|
||||
cd lemmy
|
||||
./install.sh
|
||||
# For live coding, where both the front and back end, automagically reload on any save, do:
|
||||
# cd ui && yarn start
|
||||
# cd server && cargo watch -x run
|
||||
#### Run a local development instance
|
||||
```
|
||||
# run each of these in a seperate terminal
|
||||
cd server && cargo run
|
||||
ui & yarn start
|
||||
```
|
||||
|
||||
Then open [localhost:4444](http://localhost:4444) in your browser. It will auto-refresh if you edit
|
||||
any frontend files. For backend coding, you will have to rerun `cargo run`. You can use
|
||||
`cargo check` as a faster way to find compilation errors.
|
||||
|
||||
Note that this setup doesn't include image uploads or link previews (provided by pict-rs and
|
||||
iframely respectively). If you want to test those, you should use the
|
||||
[Docker development](contributing_docker_development.md).
|
||||
|
|
|
@ -1 +1 @@
|
|||
pub const VERSION: &str = "v0.6.71";
|
||||
pub const VERSION: &str = "v0.6.73";
|
||||
|
|
1
ui/src/components/login.tsx
vendored
1
ui/src/components/login.tsx
vendored
|
@ -111,6 +111,7 @@ export class Login extends Component<any, State> {
|
|||
required
|
||||
/>
|
||||
<button
|
||||
type="button"
|
||||
disabled={!validEmail(this.state.loginForm.username_or_email)}
|
||||
onClick={linkEvent(this, this.handlePasswordReset)}
|
||||
className="btn p-0 btn-link d-inline-block float-right text-muted small font-weight-bold"
|
||||
|
|
2
ui/src/components/user.tsx
vendored
2
ui/src/components/user.tsx
vendored
|
@ -922,7 +922,7 @@ export class User extends Component<any, UserState> {
|
|||
|
||||
handleUserSettingsThemeChange(i: User, event: any) {
|
||||
i.state.userSettingsForm.theme = event.target.value;
|
||||
setTheme(event.target.value);
|
||||
setTheme(event.target.value, true);
|
||||
i.setState(i.state);
|
||||
}
|
||||
|
||||
|
|
3
ui/src/index.html
vendored
3
ui/src/index.html
vendored
|
@ -15,7 +15,8 @@
|
|||
<link rel="stylesheet" type="text/css" href="/static/assets/css/toastify.css" />
|
||||
<link rel="stylesheet" type="text/css" href="/static/assets/css/selectr.min.css" />
|
||||
<link rel="stylesheet" type="text/css" href="/static/assets/css/tippy.css" />
|
||||
<link rel="stylesheet" type="text/css" href="/static/assets/css/themes/darkly.min.css" id="darkly" />
|
||||
<link rel="stylesheet" type="text/css" href="/static/assets/css/themes/united.min.css" id="default-light" media="(prefers-color-scheme: light)" />
|
||||
<link rel="stylesheet" type="text/css" href="/static/assets/css/themes/darkly.min.css" id="default-dark" media="(prefers-color-scheme: no-preference), (prefers-color-scheme: dark)" />
|
||||
<link rel="stylesheet" type="text/css" href="/static/assets/css/main.css" />
|
||||
|
||||
<!-- Scripts -->
|
||||
|
|
4
ui/src/services/UserService.ts
vendored
4
ui/src/services/UserService.ts
vendored
|
@ -41,9 +41,7 @@ export class UserService {
|
|||
|
||||
private setUser(jwt: string) {
|
||||
this.user = jwt_decode(jwt);
|
||||
if (this.user.theme != 'darkly') {
|
||||
setTheme(this.user.theme);
|
||||
}
|
||||
setTheme(this.user.theme, true);
|
||||
this.sub.next({ user: this.user });
|
||||
console.log(this.user);
|
||||
}
|
||||
|
|
22
ui/src/utils.ts
vendored
22
ui/src/utils.ts
vendored
|
@ -404,7 +404,7 @@ export function getMomentLanguage(): string {
|
|||
return lang;
|
||||
}
|
||||
|
||||
export function setTheme(theme: string = 'darkly') {
|
||||
export function setTheme(theme: string = 'darkly', loggedIn: boolean = false) {
|
||||
// unload all the other themes
|
||||
for (var i = 0; i < themes.length; i++) {
|
||||
let styleSheet = document.getElementById(themes[i]);
|
||||
|
@ -413,10 +413,19 @@ export function setTheme(theme: string = 'darkly') {
|
|||
}
|
||||
}
|
||||
|
||||
// Load the theme dynamically
|
||||
let cssLoc = `/static/assets/css/themes/${theme}.min.css`;
|
||||
loadCss(theme, cssLoc);
|
||||
document.getElementById(theme).removeAttribute('disabled');
|
||||
// if the user is not logged in, we load the default themes and let the browser decide
|
||||
if(!loggedIn) {
|
||||
document.getElementById("default-light").removeAttribute('disabled')
|
||||
document.getElementById("default-dark").removeAttribute('disabled')
|
||||
} else {
|
||||
document.getElementById("default-light").setAttribute('disabled', 'disabled');
|
||||
document.getElementById("default-dark").setAttribute('disabled', 'disabled');
|
||||
|
||||
// Load the theme dynamically
|
||||
let cssLoc = `/static/assets/css/themes/${theme}.min.css`;
|
||||
loadCss(theme, cssLoc);
|
||||
document.getElementById(theme).removeAttribute('disabled');
|
||||
}
|
||||
}
|
||||
|
||||
export function loadCss(id: string, loc: string) {
|
||||
|
@ -501,7 +510,7 @@ export function messageToastify(
|
|||
text: `${body}<br />${creator}`,
|
||||
avatar: avatar,
|
||||
backgroundColor: backgroundColor,
|
||||
className: 'text-body',
|
||||
className: 'text-dark',
|
||||
close: true,
|
||||
gravity: 'top',
|
||||
position: 'right',
|
||||
|
@ -887,7 +896,6 @@ function canUseWebP() {
|
|||
return false;
|
||||
|
||||
// var elem = document.createElement('canvas');
|
||||
|
||||
// if (!!(elem.getContext && elem.getContext('2d'))) {
|
||||
// var testString = !(window.mozInnerScreenX == null) ? 'png' : 'webp';
|
||||
// // was able or not to get WebP representation
|
||||
|
|
2
ui/src/version.ts
vendored
2
ui/src/version.ts
vendored
|
@ -1 +1 @@
|
|||
export const version: string = 'v0.6.71';
|
||||
export const version: string = 'v0.6.73';
|
||||
|
|
12
ui/translations/fr.json
vendored
12
ui/translations/fr.json
vendored
|
@ -28,7 +28,7 @@
|
|||
"community_reqs": "en minuscule, sans espace et avec tiret du bas.",
|
||||
"create_private_message": "Créer un message privé",
|
||||
"send_secure_message": "Envoyer le message sécurisé",
|
||||
"send_message": "Enovyer le message",
|
||||
"send_message": "Envoyer le message",
|
||||
"message": "Message",
|
||||
"edit": "éditer",
|
||||
"reply": "répondre",
|
||||
|
@ -58,14 +58,14 @@
|
|||
"remove_as_admin": "Supprimer comme admin",
|
||||
"appoint_as_admin": "Nommer comme admin",
|
||||
"remove": "retirer",
|
||||
"removed": "retiré",
|
||||
"removed": "retiré par le modérateur",
|
||||
"locked": "bloqué",
|
||||
"stickied": "épinglé",
|
||||
"reason": "Raison",
|
||||
"mark_as_read": "marquer comme lu",
|
||||
"mark_as_unread": "marquer comme non-lu",
|
||||
"delete": "supprimer",
|
||||
"deleted": "supprimé",
|
||||
"deleted": "supprimé par le créateur",
|
||||
"delete_account": "Supprimer le compte",
|
||||
"delete_account_confirm": "Avertissement : cette action supprimera toutes vos données de façons permanente ! Saisissez votre mot de passe pour confirmer.",
|
||||
"restore": "restaurer",
|
||||
|
@ -171,7 +171,7 @@
|
|||
"theme": "Thème",
|
||||
"sponsors": "Sponsors",
|
||||
"sponsors_of_lemmy": "Sponsors de Lemmy",
|
||||
"sponsor_message": "Lemmy est un logiciel libre et <1>open-source</1>, c’est à dire, il fonctionne sans publicité et sans monétisation aucune. Vos dons soutiennent directement le développement du projet à temps plein. Merci à toutes ces personnes :",
|
||||
"sponsor_message": "Lemmy est un logiciel libre et <1>open-source</1>, sans jamais aucune publicité, ni monétisation ou capital-risque. Vos dons soutiennent directement le développement du projet à temps plein. Merci à toutes ces personnes :",
|
||||
"support_on_patreon": "Soutenir sur Patreon",
|
||||
"support_on_liberapay": "Soutenir sur Liberapay",
|
||||
"donate_to_lemmy": "Faire un don à Lemmy",
|
||||
|
@ -251,5 +251,7 @@
|
|||
"number_of_downvotes_plural": "{{count}} votes contre",
|
||||
"downvote": "Voter contre",
|
||||
"emoji_picker": "Sélecteur d’émojis",
|
||||
"silver_sponsors": "Les sponsors argent sont ceux et celles qui ont fait une donation de 40$ à Lemmy."
|
||||
"silver_sponsors": "Les sponsors argent sont ceux et celles qui ont fait une donation de 40$ à Lemmy.",
|
||||
"select_a_community": "Sélectionner une communauté",
|
||||
"invalid_username": "Nom d'utilisateur invalide."
|
||||
}
|
||||
|
|
19
ui/translations/hu.json
vendored
19
ui/translations/hu.json
vendored
|
@ -1 +1,18 @@
|
|||
{}
|
||||
{
|
||||
"post": "Elküld",
|
||||
"remove_post": "Bejegyzés eltávolítása",
|
||||
"no_posts": "Nincs bejegyzés.",
|
||||
"create_post": "Új bejegyzés létrehozása",
|
||||
"create_a_post": "Új bejegyzés létrehozása",
|
||||
"number_of_posts": "{{count}} bejegyzés",
|
||||
"number_of_posts_plural": "{{count}} bejegyzés",
|
||||
"posts": "Bejegyzések",
|
||||
"related_posts": "Ezek a bejegyzések kapcsolódhatnak",
|
||||
"cross_posts": "Ez a hivatkozás itt is be lett küldve:",
|
||||
"cross_post": "keresztbejegyzés",
|
||||
"comments": "Hozzászólások",
|
||||
"remove_comment": "Hozzászólások eltávolítása",
|
||||
"cross_posted_to": "beküldve ide is: ",
|
||||
"number_of_comments": "{{count}} hozzászólás",
|
||||
"number_of_comments_plural": "{{count}} hozzászólás"
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue