aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--index.html1
-rw-r--r--src/components/chat_panel/chat_panel.js2
-rw-r--r--src/components/post_status_form/post_status_form.js3
-rw-r--r--src/components/timeline/timeline.js3
-rw-r--r--src/i18n/messages.js241
-rw-r--r--src/main.js8
-rw-r--r--src/modules/statuses.js4
-rw-r--r--static/config.json3
-rw-r--r--test/unit/specs/modules/statuses.spec.js2
9 files changed, 258 insertions, 9 deletions
diff --git a/index.html b/index.html
index b7654cc1..f0872ec9 100644
--- a/index.html
+++ b/index.html
@@ -4,6 +4,7 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Pleroma</title>
+ <link rel="icon" type="image/png" href="/favicon.png">
<link rel="stylesheet" href="/static/font/css/fontello.css">
<link rel="stylesheet" href="/static/font/css/animation.css">
</head>
diff --git a/src/components/chat_panel/chat_panel.js b/src/components/chat_panel/chat_panel.js
index d528d0a1..d8736d17 100644
--- a/src/components/chat_panel/chat_panel.js
+++ b/src/components/chat_panel/chat_panel.js
@@ -3,7 +3,7 @@ const chatPanel = {
return {
currentMessage: '',
channel: null,
- collapsed: false
+ collapsed: true
}
},
computed: {
diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js
index 6c95873c..6bcf1c66 100644
--- a/src/components/post_status_form/post_status_form.js
+++ b/src/components/post_status_form/post_status_form.js
@@ -32,7 +32,8 @@ const PostStatusForm = {
this.resize(this.$refs.textarea)
},
data () {
- let statusText = ''
+ const preset = this.$route.query.message
+ let statusText = preset || ''
if (this.replyTo) {
const currentUser = this.$store.state.users.currentUser
diff --git a/src/components/timeline/timeline.js b/src/components/timeline/timeline.js
index 74ab85d3..f24626f9 100644
--- a/src/components/timeline/timeline.js
+++ b/src/components/timeline/timeline.js
@@ -105,7 +105,8 @@ const Timeline = {
.then((friends) => this.$store.dispatch('addFriends', { friends }))
},
scrollLoad (e) {
- const height = Math.max(document.body.offsetHeight, document.body.scrollHeight)
+ const bodyBRect = document.body.getBoundingClientRect()
+ const height = Math.max(bodyBRect.height, -(bodyBRect.y))
if (this.timeline.loading === false &&
this.$store.state.config.autoLoad &&
this.$el.offsetHeight > 0 &&
diff --git a/src/i18n/messages.js b/src/i18n/messages.js
index 7e17c931..168548cf 100644
--- a/src/i18n/messages.js
+++ b/src/i18n/messages.js
@@ -328,6 +328,125 @@ const en = {
}
}
+const eo = {
+ chat: {
+ title: 'Babilo'
+ },
+ nav: {
+ chat: 'Loka babilo',
+ timeline: 'Tempovido',
+ mentions: 'Mencioj',
+ public_tl: 'Publika tempovido',
+ twkn: 'Tuta konata reto'
+ },
+ user_card: {
+ follows_you: 'Abonas vin!',
+ following: 'Abonanta!',
+ follow: 'Aboni',
+ blocked: 'Barita!',
+ block: 'Bari',
+ statuses: 'Statoj',
+ mute: 'Silentigi',
+ muted: 'Silentigita',
+ followers: 'Abonantoj',
+ followees: 'Abonatoj',
+ per_day: 'tage',
+ remote_follow: 'Fora abono'
+ },
+ timeline: {
+ show_new: 'Montri novajn',
+ error_fetching: 'Eraro ĝisdatigante',
+ up_to_date: 'Ĝisdata',
+ load_older: 'Enlegi pli malnovajn statojn',
+ conversation: 'Interparolo',
+ collapse: 'Maletendi',
+ repeated: 'ripetata'
+ },
+ settings: {
+ user_settings: 'Uzulaj agordoj',
+ name_bio: 'Nomo kaj prio',
+ name: 'Nomo',
+ bio: 'Prio',
+ avatar: 'Profilbildo',
+ current_avatar: 'Via nuna profilbildo',
+ set_new_avatar: 'Agordi novan profilbildon',
+ profile_banner: 'Profila rubando',
+ current_profile_banner: 'Via nuna profila rubando',
+ set_new_profile_banner: 'Agordi novan profilan rubandon',
+ profile_background: 'Profila fono',
+ set_new_profile_background: 'Agordi novan profilan fonon',
+ settings: 'Agordoj',
+ theme: 'Haŭto',
+ presets: 'Antaŭmetaĵoj',
+ theme_help: 'Uzu deksesumajn kolorkodojn (#rrvvbb) por adapti vian koloran haŭton.',
+ radii_help: 'Agordi fasadan rondigon de randoj (rastrumere)',
+ background: 'Fono',
+ foreground: 'Malfono',
+ text: 'Teksto',
+ links: 'Ligiloj',
+ cBlue: 'Blua (Respondo, abono)',
+ cRed: 'Ruĝa (Nuligo)',
+ cOrange: 'Orange (Ŝato)',
+ cGreen: 'Verda (Kunhavigo)',
+ btnRadius: 'Butonoj',
+ panelRadius: 'Paneloj',
+ avatarRadius: 'Profilbildoj',
+ avatarAltRadius: 'Profilbildoj (Sciigoj)',
+ tooltipRadius: 'Ŝpruchelpiloj/avertoj',
+ attachmentRadius: 'Kunsendaĵoj',
+ filtering: 'Filtrado',
+ filtering_explanation: 'Ĉiuj statoj kun tiuj ĉi vortoj silentiĝos, po unu linie',
+ attachments: 'Kunsendaĵoj',
+ hide_attachments_in_tl: 'Kaŝi kunsendaĵojn en tempovido',
+ hide_attachments_in_convo: 'Kaŝi kunsendaĵojn en interparoloj',
+ nsfw_clickthrough: 'Ŝalti traklakan kaŝon de konsternaj kunsendaĵoj',
+ stop_gifs: 'Movi GIF-bildojn dum ŝvebo',
+ autoload: 'Ŝalti memfaran enlegadon ĉe subo de paĝo',
+ streaming: 'Ŝalti memfaran fluigon de novaj afiŝoj ĉe supro de paĝo',
+ reply_link_preview: 'Ŝalti respond-ligilan antaŭvidon dum ŝvebo',
+ follow_import: 'Abona enporto',
+ import_followers_from_a_csv_file: 'Enporti abonojn de CSV-dosiero',
+ follows_imported: 'Abonoj enportiĝis! Traktado daŭros iom.',
+ follow_import_error: 'Eraro enportante abonojn'
+ },
+ notifications: {
+ notifications: 'Sciigoj',
+ read: 'Legita!',
+ followed_you: 'ekabonis vin',
+ favorited_you: 'ŝatis vian staton',
+ repeated_you: 'ripetis vian staton'
+ },
+ login: {
+ login: 'Saluti',
+ username: 'Salutnomo',
+ password: 'Pasvorto',
+ register: 'Registriĝi',
+ logout: 'Adiaŭi'
+ },
+ registration: {
+ registration: 'Registriĝo',
+ fullname: 'Vidiga nomo',
+ email: 'Retpoŝtadreso',
+ bio: 'Prio',
+ password_confirm: 'Konfirmo de pasvorto'
+ },
+ post_status: {
+ posting: 'Afiŝanta',
+ default: 'Ĵus alvenis la universalan kongreson!'
+ },
+ finder: {
+ find_user: 'Trovi uzulon',
+ error_fetching_user: 'Eraro alportante uzulon'
+ },
+ general: {
+ submit: 'Sendi',
+ apply: 'Apliki'
+ },
+ user_profile: {
+ timeline_title: 'Uzula tempovido'
+ }
+}
+
const et = {
nav: {
timeline: 'Ajajoon',
@@ -1426,11 +1545,130 @@ const ru = {
timeline_title: 'Лента пользователя'
}
}
+const nb = {
+ chat: {
+ title: 'Chat'
+ },
+ nav: {
+ chat: 'Lokal Chat',
+ timeline: 'Tidslinje',
+ mentions: 'Nevnt',
+ public_tl: 'Offentlig Tidslinje',
+ twkn: 'Det hele kjente nettverket'
+ },
+ user_card: {
+ follows_you: 'Følger deg!',
+ following: 'Følger!',
+ follow: 'Følg',
+ blocked: 'Blokkert!',
+ block: 'Blokker',
+ statuses: 'Statuser',
+ mute: 'Demp',
+ muted: 'Dempet',
+ followers: 'Følgere',
+ followees: 'Følger',
+ per_day: 'per dag',
+ remote_follow: 'Følg eksternt'
+ },
+ timeline: {
+ show_new: 'Vis nye',
+ error_fetching: 'Feil ved henting av oppdateringer',
+ up_to_date: 'Oppdatert',
+ load_older: 'Last eldre statuser',
+ conversation: 'Samtale',
+ collapse: 'Sammenfold',
+ repeated: 'gjentok'
+ },
+ settings: {
+ user_settings: 'Brukerinstillinger',
+ name_bio: 'Navn & Biografi',
+ name: 'Navn',
+ bio: 'Biografi',
+ avatar: 'Profilbilde',
+ current_avatar: 'Ditt nåværende profilbilde',
+ set_new_avatar: 'Rediger profilbilde',
+ profile_banner: 'Profil-banner',
+ current_profile_banner: 'Din nåværende profil-banner',
+ set_new_profile_banner: 'Sett ny profil-banner',
+ profile_background: 'Profil-bakgrunn',
+ set_new_profile_background: 'Rediger profil-bakgrunn',
+ settings: 'Innstillinger',
+ theme: 'Tema',
+ presets: 'Forhåndsdefinerte fargekoder',
+ theme_help: 'Bruk heksadesimale fargekoder (#rrggbb) til å endre farge-temaet ditt.',
+ radii_help: 'Bestem hvor runde hjørnene i brukergrensesnittet skal være (i piksler)',
+ background: 'Bakgrunn',
+ foreground: 'Framgrunn',
+ text: 'Tekst',
+ links: 'Linker',
+ cBlue: 'Blå (Svar, følg)',
+ cRed: 'Rød (Avbryt)',
+ cOrange: 'Oransje (Lik)',
+ cGreen: 'Grønn (Gjenta)',
+ btnRadius: 'Knapper',
+ panelRadius: 'Panel',
+ avatarRadius: 'Profilbilde',
+ avatarAltRadius: 'Profilbilde (Varslinger)',
+ tooltipRadius: 'Verktøytips/advarsler',
+ attachmentRadius: 'Vedlegg',
+ filtering: 'Filtrering',
+ filtering_explanation: 'Alle statuser som inneholder disse ordene vil bli dempet, en kombinasjon av tegn per linje',
+ attachments: 'Vedlegg',
+ hide_attachments_in_tl: 'Gjem vedlegg på tidslinje',
+ hide_attachments_in_convo: 'Gjem vedlegg i samtaler',
+ nsfw_clickthrough: 'Krev trykk for å vise statuser som kan være upassende',
+ stop_gifs: 'Spill av GIFs når du holder over dem',
+ autoload: 'Automatisk lasting når du blar ned til bunnen',
+ streaming: 'Automatisk strømming av nye statuser når du har bladd til toppen',
+ reply_link_preview: 'Vis en forhåndsvisning når du holder musen over svar til en status',
+ follow_import: 'Importer følginger',
+ import_followers_from_a_csv_file: 'Importer følginger fra en csv fil',
+ follows_imported: 'Følginger imported! Det vil ta litt tid å behandle de.',
+ follow_import_error: 'Feil ved importering av følginger.'
+ },
+ notifications: {
+ notifications: 'Varslinger',
+ read: 'Les!',
+ followed_you: 'fulgte deg',
+ favorited_you: 'likte din status',
+ repeated_you: 'Gjentok din status'
+ },
+ login: {
+ login: 'Logg inn',
+ username: 'Brukernavn',
+ password: 'Passord',
+ register: 'Registrer',
+ logout: 'Logg ut'
+ },
+ registration: {
+ registration: 'Registrering',
+ fullname: 'Visningsnavn',
+ email: 'Epost-adresse',
+ bio: 'Biografi',
+ password_confirm: 'Bekreft passord'
+ },
+ post_status: {
+ posting: 'Publiserer',
+ default: 'Landet akkurat i L.A.'
+ },
+ finder: {
+ find_user: 'Finn bruker',
+ error_fetching_user: 'Feil ved henting av bruker'
+ },
+ general: {
+ submit: 'Legg ut',
+ apply: 'Bruk'
+ },
+ user_profile: {
+ timeline_title: 'Bruker-tidslinje'
+ }
+}
const messages = {
de,
fi,
en,
+ eo,
et,
hu,
ro,
@@ -1441,7 +1679,8 @@ const messages = {
pl,
es,
pt,
- ru
+ ru,
+ nb
}
export default messages
diff --git a/src/main.js b/src/main.js
index 5c74da3a..a40c51f2 100644
--- a/src/main.js
+++ b/src/main.js
@@ -99,7 +99,13 @@ window.fetch('/static/config.json')
}
const routes = [
- { name: 'root', path: '/', redirect: data['defaultPath'] || '/main/all' },
+ { name: 'root',
+ path: '/',
+ redirect: to => {
+ var redirectRootLogin = data['redirectRootLogin']
+ var redirectRootNoLogin = data['redirectRootNoLogin']
+ return (store.state.users.currentUser ? redirectRootLogin : redirectRootNoLogin) || '/main/all'
+ }},
{ path: '/main/all', component: PublicAndExternalTimeline },
{ path: '/main/public', component: PublicTimeline },
{ path: '/main/friends', component: FriendsTimeline },
diff --git a/src/modules/statuses.js b/src/modules/statuses.js
index bd52f161..b493c212 100644
--- a/src/modules/statuses.js
+++ b/src/modules/statuses.js
@@ -45,7 +45,7 @@ export const prepareStatus = (status) => {
if (status.nsfw === undefined) {
status.nsfw = isNsfw(status)
if (status.retweeted_status) {
- status.retweeted_status.nsfw = status.nsfw
+ status.nsfw = status.retweeted_status.nsfw
}
}
@@ -136,7 +136,7 @@ const addNewStatuses = (state, { statuses, showImmediately = false, timeline, us
if (result.new) {
if (statusType(status) === 'retweet' && status.retweeted_status.user.id === user.id) {
- addNotification({ type: 'repeat', status: status.retweeted_status, action: status })
+ addNotification({ type: 'repeat', status: status, action: status })
}
// We are mentioned in a post
diff --git a/static/config.json b/static/config.json
index fc1b0795..2c495142 100644
--- a/static/config.json
+++ b/static/config.json
@@ -2,7 +2,8 @@
"theme": "pleroma-dark",
"background": "/static/aurora_borealis.jpg",
"logo": "/static/logo.png",
- "defaultPath": "/main/all",
+ "redirectRootNoLogin": "/main/all",
+ "redirectRootLogin": "/main/friends",
"chatDisabled": false,
"showWhoToFollowPanel": false,
"showInstanceSpecificPanel": false
diff --git a/test/unit/specs/modules/statuses.spec.js b/test/unit/specs/modules/statuses.spec.js
index 372d1aaa..f929192b 100644
--- a/test/unit/specs/modules/statuses.spec.js
+++ b/test/unit/specs/modules/statuses.spec.js
@@ -297,7 +297,7 @@ describe('The Statuses module', () => {
mutations.addNewStatuses(state, { statuses: [retweet], user })
expect(state.notifications.length).to.eql(1)
- expect(state.notifications[0].status).to.eql(status)
+ expect(state.notifications[0].status).to.eql(retweet)
expect(state.notifications[0].action).to.eql(retweet)
expect(state.notifications[0].type).to.eql('repeat')
})