mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-01-06 07:40:43 +01:00
Merge remote-tracking branch 'origin/develop' into activitypub
This commit is contained in:
44
CHANGELOG.md
44
CHANGELOG.md
@@ -1,3 +1,47 @@
|
||||
#### v3.6.1 (2023-12-22)
|
||||
|
||||
##### Chores
|
||||
|
||||
* incrementing version number - v3.6.0 (4cdf85f8)
|
||||
* update changelog for v3.6.0 (eb92cee6)
|
||||
* incrementing version number - v3.5.3 (ed0e8783)
|
||||
* incrementing version number - v3.5.2 (52fbb2da)
|
||||
* incrementing version number - v3.5.1 (4c543488)
|
||||
* incrementing version number - v3.5.0 (d06fb4f0)
|
||||
* incrementing version number - v3.4.3 (5c984250)
|
||||
* incrementing version number - v3.4.2 (3f0dac38)
|
||||
* incrementing version number - v3.4.1 (01e69574)
|
||||
* incrementing version number - v3.4.0 (fd9247c5)
|
||||
* incrementing version number - v3.3.9 (5805e770)
|
||||
* incrementing version number - v3.3.8 (a5603565)
|
||||
* incrementing version number - v3.3.7 (b26f1744)
|
||||
* incrementing version number - v3.3.6 (7fb38792)
|
||||
* incrementing version number - v3.3.4 (a67f84ea)
|
||||
* incrementing version number - v3.3.3 (f94d239b)
|
||||
* incrementing version number - v3.3.2 (ec9dac97)
|
||||
* incrementing version number - v3.3.1 (151cc68f)
|
||||
* incrementing version number - v3.3.0 (fc1ad70f)
|
||||
* incrementing version number - v3.2.3 (b06d3e63)
|
||||
* incrementing version number - v3.2.2 (758ecfcd)
|
||||
* incrementing version number - v3.2.1 (20145074)
|
||||
* incrementing version number - v3.2.0 (9ecac38e)
|
||||
* incrementing version number - v3.1.7 (0b4e81ab)
|
||||
* incrementing version number - v3.1.6 (b3a3b130)
|
||||
* incrementing version number - v3.1.5 (ec19343a)
|
||||
* incrementing version number - v3.1.4 (2452783c)
|
||||
* incrementing version number - v3.1.3 (3b4e9d3f)
|
||||
* incrementing version number - v3.1.2 (40fa3489)
|
||||
* incrementing version number - v3.1.1 (40250733)
|
||||
* incrementing version number - v3.1.0 (0cb386bd)
|
||||
* incrementing version number - v3.0.1 (26f6ea49)
|
||||
* incrementing version number - v3.0.0 (224e08cd)
|
||||
|
||||
##### Bug Fixes
|
||||
|
||||
* #12243, don' set process.env.config if it doesnt exist (788404c1)
|
||||
* lang key for move notification closes #12241 (48a2b5f7)
|
||||
* dont send topic notification to poster (e72b26f5)
|
||||
|
||||
#### v3.6.0 (2023-12-20)
|
||||
|
||||
##### Chores
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "nodebb",
|
||||
"license": "GPL-3.0",
|
||||
"description": "NodeBB Forum",
|
||||
"version": "3.6.0",
|
||||
"version": "3.6.1",
|
||||
"homepage": "https://www.nodebb.org",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -34,7 +34,7 @@
|
||||
"@fortawesome/fontawesome-free": "6.5.1",
|
||||
"@isaacs/ttlcache": "1.4.1",
|
||||
"@popperjs/core": "2.11.8",
|
||||
"ace-builds": "1.32.2",
|
||||
"ace-builds": "1.32.3",
|
||||
"archiver": "6.0.1",
|
||||
"async": "3.2.5",
|
||||
"autoprefixer": "10.4.16",
|
||||
@@ -63,7 +63,7 @@
|
||||
"csrf-sync": "4.0.3",
|
||||
"daemon": "1.1.0",
|
||||
"diff": "5.1.0",
|
||||
"esbuild": "0.19.10",
|
||||
"esbuild": "0.19.11",
|
||||
"express": "4.18.2",
|
||||
"express-session": "1.17.3",
|
||||
"express-useragent": "1.0.15",
|
||||
@@ -103,12 +103,12 @@
|
||||
"nodebb-plugin-ntfy": "1.7.3",
|
||||
"nodebb-plugin-spam-be-gone": "2.2.0",
|
||||
"nodebb-rewards-essentials": "1.0.0",
|
||||
"nodebb-theme-harmony": "1.1.105",
|
||||
"nodebb-theme-lavender": "7.1.5",
|
||||
"nodebb-theme-peace": "2.1.25",
|
||||
"nodebb-theme-persona": "13.2.49",
|
||||
"nodebb-theme-harmony": "1.1.107",
|
||||
"nodebb-theme-lavender": "7.1.7",
|
||||
"nodebb-theme-peace": "2.1.26",
|
||||
"nodebb-theme-persona": "13.2.50",
|
||||
"nodebb-widget-essentials": "7.0.14",
|
||||
"nodemailer": "6.9.7",
|
||||
"nodemailer": "6.9.8",
|
||||
"nprogress": "0.2.0",
|
||||
"passport": "0.7.0",
|
||||
"passport-http-bearer": "1.0.1",
|
||||
@@ -124,7 +124,7 @@
|
||||
"rss": "1.2.2",
|
||||
"rtlcss": "4.1.1",
|
||||
"sanitize-html": "2.11.0",
|
||||
"sass": "1.69.5",
|
||||
"sass": "1.69.6",
|
||||
"semver": "7.5.4",
|
||||
"serve-favicon": "2.5.0",
|
||||
"sharp": "0.33.1",
|
||||
@@ -135,7 +135,7 @@
|
||||
"sortablejs": "1.15.1",
|
||||
"spdx-license-list": "6.8.0",
|
||||
"spider-detector": "2.0.1",
|
||||
"terser-webpack-plugin": "5.3.9",
|
||||
"terser-webpack-plugin": "5.3.10",
|
||||
"textcomplete": "0.18.2",
|
||||
"textcomplete.contenteditable": "0.1.1",
|
||||
"timeago": "1.6.7",
|
||||
@@ -172,7 +172,7 @@
|
||||
"smtp-server": "3.13.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"sass-embedded": "1.69.5"
|
||||
"sass-embedded": "1.69.6"
|
||||
},
|
||||
"resolutions": {
|
||||
"*/jquery": "3.7.1"
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
"folder-exists": "Ordner existiert",
|
||||
"invalid-pagination-value": "Ungültige Seitennummerierung, muss mindestens %1 und maximal %2 sein",
|
||||
"username-taken": "Der Benutzername ist bereits vergeben",
|
||||
"email-taken": "Email address is already taken.",
|
||||
"email-taken": "Die E-Mail-Adresse ist bereits vergeben.",
|
||||
"email-nochange": "Die eingegebene E-Mail ist die gleiche wie die bereits hinterlegte E-Mail.",
|
||||
"email-invited": "E-Mail wurde bereits eingeladen",
|
||||
"email-not-confirmed": "Das Schreiben von Beiträgen in einigen Kategorien oder Themen ist erst möglich, wenn Ihre E-Mail bestätigt wurde. Bitte klicken Sie hier, um eine Bestätigungs-E-Mail zu senden.",
|
||||
|
||||
@@ -4,15 +4,15 @@
|
||||
|
||||
"acp-title": "%1 | NodeBB Admin Kontrollpanel",
|
||||
"settings-header-contents": "Innhold",
|
||||
"changes-saved": "Changes Saved",
|
||||
"changes-saved": "Endringer lagret",
|
||||
"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
|
||||
"changes-not-saved": "Endringer ikke lagret",
|
||||
"changes-not-saved-message": "NodeBB støtte på et problem ved lagring av endringer. (%1)",
|
||||
"save-changes": "Save changes",
|
||||
"save-changes": "Lagre endringer",
|
||||
"min": "Min:",
|
||||
"max": "Max:",
|
||||
"view": "View",
|
||||
"edit": "Edit",
|
||||
"add": "Add",
|
||||
"select-icon": "Select Icon"
|
||||
"view": "Se",
|
||||
"edit": "Rediger",
|
||||
"add": "Legg til",
|
||||
"select-icon": "Velg ikon"
|
||||
}
|
||||
@@ -79,7 +79,7 @@
|
||||
"follow-replied-topics": "Følg tråder du svarer på",
|
||||
"default-notification-settings": "Standard varslingsinnstillinger",
|
||||
"categoryWatchState": "Default category watch state",
|
||||
"categoryWatchState.tracking": "Tracking",
|
||||
"categoryWatchState.tracking": "Sporing",
|
||||
"categoryWatchState.notwatching": "Overvåker ikke",
|
||||
"categoryWatchState.ignoring": "Ignorerer",
|
||||
"restrictions-new": "Nye brukerbegrensninger ",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"watch": "Overvåk",
|
||||
"ignore": "Ignorer",
|
||||
"watching": "Følger",
|
||||
"tracking": "Tracking",
|
||||
"tracking": "Sporing",
|
||||
"not-watching": "Følger ikke",
|
||||
"ignoring": "Ignorerer",
|
||||
"watching.description": "Notify me of new topics.<br/>Show topics in unread & recent",
|
||||
|
||||
@@ -13,14 +13,14 @@
|
||||
"all": "Alle",
|
||||
"topics": "Emner",
|
||||
"tags": "Tags",
|
||||
"categories": "Categories",
|
||||
"categories": "Kategorier",
|
||||
"replies": "Svar",
|
||||
"chat": "Samtaler",
|
||||
"group-chat": "Gruppesamtaler",
|
||||
"public-chat": "Public Chats",
|
||||
"follows": "Følger",
|
||||
"upvote": "Oppstemmer",
|
||||
"awards": "Awards",
|
||||
"awards": "Tildelninger",
|
||||
"new-flags": "Nye flagg",
|
||||
"my-flags": "Flagg som er tildelt til meg",
|
||||
"bans": "Forbud",
|
||||
@@ -56,7 +56,7 @@
|
||||
"user-posted-topic-with-tag-dual": "<strong>%1</strong> has posted a new topic with tags <strong>%2</strong> and <strong>%3</strong>",
|
||||
"user-posted-topic-with-tag-triple": "<strong>%1</strong> has posted a new topic with tags <strong>%2</strong>, <strong>%3</strong> and <strong>%4</strong>",
|
||||
"user-posted-topic-with-tag-multiple": "<strong>%1</strong> has posted a new topic with tags <strong>%2</strong>",
|
||||
"user-posted-topic-in-category": "<strong>%1</strong> has posted a new topic in <strong>%2</strong>",
|
||||
"user-posted-topic-in-category": "<strong>%1</strong> har publisert et nytt innlegg i <strong>%2</strong>",
|
||||
"user-started-following-you": "<strong>%1</strong> begynte å følge deg.",
|
||||
"user-started-following-you-dual": "<strong>%1</strong> og <strong>2%</strong> har begynt å følge deg.",
|
||||
"user-started-following-you-triple": "<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> started following you.",
|
||||
@@ -83,7 +83,7 @@
|
||||
"notificationType-upvote": "Når noen stemmer opp innlegget ditt",
|
||||
"notificationType-new-topic": "Når noen du følger følger legger ut et emne",
|
||||
"notificationType-new-topic-with-tag": "When a topic is posted with a tag you follow",
|
||||
"notificationType-new-topic-in-category": "When a topic is posted in a category you are watching",
|
||||
"notificationType-new-topic-in-category": "Når et emne er lagt ut i en kategori du ser på",
|
||||
"notificationType-new-reply": "Når et nytt svar er lagt ut i et emne du overvåker",
|
||||
"notificationType-post-edit": "Når et innlegg er redigert i et emne du overvåker",
|
||||
"notificationType-follow": "Når noen starter å følge deg",
|
||||
@@ -97,5 +97,5 @@
|
||||
"notificationType-post-queue": "Når et nytt innlegg er satt i kø",
|
||||
"notificationType-new-post-flag": "Når ett nytt innlegg er flagget",
|
||||
"notificationType-new-user-flag": "Når en bruker er flagget",
|
||||
"notificationType-new-reward": "When you earn a new reward"
|
||||
"notificationType-new-reward": "Når du får en ny tildelning "
|
||||
}
|
||||
@@ -48,7 +48,7 @@
|
||||
"account/topics": "Emner opprettet av %1",
|
||||
"account/groups": "%1 sine grupper",
|
||||
"account/watched-categories": "%1's overvåkede kategorier",
|
||||
"account/watched-tags": "%1's Watched Tags",
|
||||
"account/watched-tags": "%1's overvåkede tagger",
|
||||
"account/bookmarks": "%1's bokmerkede innlegg",
|
||||
"account/settings": "Brukerinnstillinger",
|
||||
"account/settings-of": "Changing settings of %1",
|
||||
@@ -62,7 +62,7 @@
|
||||
"account/uploads": "Opplastninger av %1",
|
||||
"account/sessions": "Påloggingsøkter",
|
||||
"confirm": "E-post bekreftet",
|
||||
"maintenance.text": "%1 is currently undergoing maintenance.<br/>Please come back another time.",
|
||||
"maintenance.text": "%1 er for øyeblikket under vedlikehold. <br/>Vennligst kom tilbake en annen gang.",
|
||||
"maintenance.messageIntro": "I tillegg har administratoren skrevet denne meldingen:",
|
||||
"throttled.text": "%1 er for øyeblikket ikke tilgjengelig på grunn av overdreven belastning. Kom tilbake en annen gang."
|
||||
}
|
||||
@@ -40,11 +40,11 @@
|
||||
"copy-ip": "Kopier IP",
|
||||
"ban-ip": "Forby IP",
|
||||
"view-history": "Redigere historie",
|
||||
"wrote-ago": "wrote <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
|
||||
"wrote-on": "wrote on <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
|
||||
"replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
|
||||
"replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
|
||||
"user-locked-topic-ago": "%1 locked this topic %2",
|
||||
"wrote-ago": "skrev <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
|
||||
"wrote-on": "skrev på <a href=\"%1\" class=\"timeago text-muted\" title=\"%2\"></a>",
|
||||
"replied-to-user-ago": "svarte på <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
|
||||
"replied-to-user-on": "svarte på <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> på <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
|
||||
"user-locked-topic-ago": "%1 låste dette emnet %2",
|
||||
"user-locked-topic-on": "%1 locked this topic on %2",
|
||||
"user-unlocked-topic-ago": "%1 unlocked this topic %2",
|
||||
"user-unlocked-topic-on": "%1 unlocked this topic on %2",
|
||||
@@ -123,14 +123,14 @@
|
||||
"post-restore-confirm": "Er du sikker på at du vil gjenopprette dette innlegget?",
|
||||
"post-purge-confirm": "Er du sikker på at du vil renske dette innlegget?",
|
||||
"pin-modal-expiry": "Utløpsdato",
|
||||
"pin-modal-help": "Du kan eventuelt angi en utløpsdato for de festede emnene her. Alternativt kan du la dette feltet stå tomt for å holde emnet festet til det manuelt løsnes.",
|
||||
"pin-modal-help": "Du kan eventuelt angi en utløpsdato for de festede emne(ne) her. Alternativt kan du la dette feltet stå tomt for å holde emnet festet til det manuelt løsnes.",
|
||||
"load-categories": "Laster kategorier",
|
||||
"confirm-move": "Flytt",
|
||||
"confirm-fork": "Forgren",
|
||||
"bookmark": "Bokmerke",
|
||||
"bookmarks": "Bokmerker",
|
||||
"bookmarks.has-no-bookmarks": "Du har ikke bokmerket noen innlegg ennå.",
|
||||
"copy-permalink": "Copy Permalink",
|
||||
"copy-permalink": "Kopier permalink",
|
||||
"loading-more-posts": "Laster flere innlegg",
|
||||
"move-topic": "Flytt tård",
|
||||
"move-topics": "Flytt tråder",
|
||||
@@ -138,7 +138,7 @@
|
||||
"post-moved": "Innlegg flyttet!",
|
||||
"fork-topic": "Forgren tråd",
|
||||
"enter-new-topic-title": "Tast inn tittel på emne",
|
||||
"fork-topic-instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
|
||||
"fork-topic-instruction": "Klikk på innleggene du vil dele, skriv inn en tittel for det nye emnet og klikk på emnet",
|
||||
"fork-no-pids": "Ingen innlegg valgt!",
|
||||
"no-posts-selected": "Ingen innlegg valgt.",
|
||||
"x-posts-selected": "%1 innlegg valgt",
|
||||
@@ -157,7 +157,7 @@
|
||||
"change-owner-instruction": "Klikk på innleggene du vil tildele til en annen bruker",
|
||||
"composer.title-placeholder": "Skriv din tråd-tittel her",
|
||||
"composer.handle-placeholder": "Skriv inn navnet ditt / signatur her",
|
||||
"composer.hide": "Hide",
|
||||
"composer.hide": "Gjem",
|
||||
"composer.discard": "Forkast",
|
||||
"composer.submit": "Send",
|
||||
"composer.additional-options": "Ytterligere alternativer",
|
||||
@@ -204,7 +204,7 @@
|
||||
"last-post": "Seneste innlegg",
|
||||
"go-to-my-next-post": "Gå til mitt neste innlegg",
|
||||
"no-more-next-post": "Du har ikke flere innlegg i dette emnet",
|
||||
"post-quick-reply": "Quick reply",
|
||||
"navigator.index": "Post %1 of %2",
|
||||
"navigator.unread": "%1 unread"
|
||||
"post-quick-reply": "Raskt svar",
|
||||
"navigator.index": "Innlegg %1 av %2",
|
||||
"navigator.unread": "%1 ulest"
|
||||
}
|
||||
@@ -22,7 +22,7 @@
|
||||
"delete-account-confirm": "Er du sikker på at du vil anonymisere alle innleggene dine og slette brukerkonten?<br /><strong>Denne handlingen er irreversibel, og du vil ikke kunne gjenopprette noen av dataene dine</strong><br /><br />Skriv inn passordet ditt for å bekrefte at du ønsker å slette denne brukerkontoen.",
|
||||
"delete-this-account-confirm": "Er du sikker på at du vil slette denne brukerkontoen og la innholdet ligge igjen?<br /><strong>Denne handlingen er irreversibel, innlegg blir anonymisert, og du vil ikke kunne gjenopprette innleggsassosiasjoner med den slettede kontoen</strong><br /><br />",
|
||||
"delete-account-content-confirm": "Er du sikker på at du vil slette innholdet på denne brukerkontoen (innlegg / emner / opplastinger)? <br /><strong>Denne handlingen er irreversibel, og du vil ikke kunne gjenopprette data</strong><br /><br />",
|
||||
"delete-all-confirm": "<br />Er du sikker på at du vil slette denne kontoen og alt innholdet (innlegg / emner / opplastinger)?<strong>Denne handlingen er irreversibel, og du vil ikke kunne gjenopprette data\n</strong><br /><br />",
|
||||
"delete-all-confirm": "<br />Er du sikker på at du vil slette denne kontoen og alt innholdet (innlegg / emner / opplastinger)?<strong>Denne handlingen er irreversibel, og du vil ikke kunne gjenopprette data</strong><br /><br />",
|
||||
"account-deleted": "Konto slettet",
|
||||
"account-content-deleted": "Kontoinnhold slettet",
|
||||
"fullname": "Fullt navn",
|
||||
@@ -62,7 +62,7 @@
|
||||
"change-picture": "Bytt bilde",
|
||||
"change-username": "Endre brukernavn",
|
||||
"change-email": "Endre e-post",
|
||||
"email-updated": "Email Updated",
|
||||
"email-updated": "E-post oppdatert",
|
||||
"email-same-as-password": "Skriv inn ditt nåværende passord for å fortsette – du har skrevet inn den nye e-posten din igjen",
|
||||
"edit": "Endre",
|
||||
"edit-profile": "Rediger profil",
|
||||
@@ -71,7 +71,7 @@
|
||||
"upload-new-picture": "Last opp nytt bidle",
|
||||
"upload-new-picture-from-url": "Last opp nytt bilde fra URL",
|
||||
"current-password": "Gjeldende passord",
|
||||
"new-password": "New Password",
|
||||
"new-password": "Nytt passord",
|
||||
"change-password": "Endre passord",
|
||||
"change-password-error": "Ugyldig passord!",
|
||||
"change-password-error-wrong-current": "Ditt gjeldende passord er ikke korrekt!",
|
||||
@@ -119,8 +119,8 @@
|
||||
"paginate-description": "Bruk sidevelger for tråder og innlegg istedet for uendelig scrolling",
|
||||
"topics-per-page": "Tråd per side",
|
||||
"posts-per-page": "Innlegg per side",
|
||||
"category-topic-sort": "Category topic sort",
|
||||
"topic-post-sort": "Topic post sort",
|
||||
"category-topic-sort": "Kategorsortering",
|
||||
"topic-post-sort": "Sortering av emneinnlegg",
|
||||
"max-items-per-page": "Maksimum %1",
|
||||
"acp-language": "Administrer sidespråk",
|
||||
"notifications": "Notifikasjoner",
|
||||
@@ -143,14 +143,14 @@
|
||||
"group-order-help": "Velg en gruppe og bruk pilene for å gi titler",
|
||||
"no-group-title": "Ingen gruppetittel",
|
||||
"select-skin": "Velg et skin",
|
||||
"default": "Default (%1)",
|
||||
"no-skin": "No Skin",
|
||||
"default": "Normalverdi (%1)",
|
||||
"no-skin": "Ingen skin",
|
||||
"select-homepage": "Velg en hjemmeside",
|
||||
"homepage": "Hjemmeside",
|
||||
"homepage-description": "Velg en side du vil bruke som forumets hjemmeside, eller 'Ingen' for å bruke standardhjemmesiden.",
|
||||
"custom-route": "Tilpasset hjemmeside-rute",
|
||||
"custom-route-help": "Skriv inn et rutenavn her uten noen forrige skråstrek (f.eks. \"Nylig\" eller \"kategori / 2 / generell diskusjon\")",
|
||||
"sso.title": "Single Sign-on Services",
|
||||
"sso.title": "Enkel innloggingstjenester",
|
||||
"sso.associated": "Assosiert med",
|
||||
"sso.not-associated": "Klikk her for å assosiere med",
|
||||
"sso.dissociate": "Separer",
|
||||
@@ -176,8 +176,8 @@
|
||||
"info.moderation-note.success": "Moderasjonsnotat ikke lagret",
|
||||
"info.moderation-note.add": "Legg til notat",
|
||||
"sessions.description": "Denne siden lar deg se alle aktivitetsøkter på dette forumet og tilbakekalle dem om nødvendig. Du kan tilbakekalle din egen økt ved å logge av brukerkontoen din.",
|
||||
"revoke-session": "Revoke Session",
|
||||
"browser-version-on-platform": "%1 %2 on %3",
|
||||
"revoke-session": "Gjenopprett økten",
|
||||
"browser-version-on-platform": "%1 %2 på %3",
|
||||
"consent.title": "Dine rettigheter & amp; Samtykke",
|
||||
"consent.lead": "Dette forumet samler inn og behandler dine personopplysninger.",
|
||||
"consent.intro": "Vi bruker kun denne informasjonen for å tilpasse brukeropplevelsen din i dette nettforumet, og for å knytte innleggene du lager til brukerkontoen din. Under registreringstrinnet i Felles brukerhåndtering ble du bedt om å oppgi fullt navn og en e-postadresse. Du kan også velge å oppgi tilleggsinformasjon for å fullføre brukerprofilen din på dette nettstedet.<br /><br />Vi oppbevarer denne informasjonen så lenge brukerprofilen din er aktiv, og du kan når som helst trekke tilbake samtykke ved å slette kontoen din. Du kan når som helst be om en kopi av ditt bidrag til dette nettstedet, via dine rettigheter & Samtykkeside.<br /><br />Hvis du har spørsmål eller bekymringer, oppfordrer vi deg til å ta kontakt med forumets administrative team.",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"all-users": "All Users",
|
||||
"all-users": "Alle brukere",
|
||||
"latest-users": "Seneste brukere",
|
||||
"top-posters": "Flest innlegg",
|
||||
"most-reputation": "Best omdømme",
|
||||
|
||||
@@ -127,7 +127,6 @@ define('forum/category', [
|
||||
hooks.fire('action:topics.loading');
|
||||
const params = utils.params();
|
||||
infinitescroll.loadMore(`/categories/${ajaxify.data.cid}/topics`, {
|
||||
cid: ajaxify.data.cid,
|
||||
after: after,
|
||||
direction: direction,
|
||||
query: params,
|
||||
|
||||
@@ -10,7 +10,8 @@ define('forum/topic/events', [
|
||||
'components',
|
||||
'translator',
|
||||
'hooks',
|
||||
], function (postTools, threadTools, posts, images, components, translator, hooks) {
|
||||
'helpers',
|
||||
], function (postTools, threadTools, posts, images, components, translator, hooks, helpers) {
|
||||
const Events = {};
|
||||
|
||||
const events = {
|
||||
@@ -152,7 +153,7 @@ define('forum/topic/events', [
|
||||
editorEl.replaceWith(html);
|
||||
postContainer.find('[component="post/edit-indicator"]')
|
||||
.removeClass('hidden')
|
||||
.translateAttr('title', `[[global:edited-timestamp, ${editData.editedISO}]]`);
|
||||
.translateAttr('title', `[[global:edited-timestamp, ${helpers.isoTimeToLocaleString(editData.editedISO, config.userLang)}]]`);
|
||||
postContainer.find('[component="post/editor"] .timeago').timeago();
|
||||
hooks.fire('action:posts.edited', data);
|
||||
});
|
||||
|
||||
@@ -12,8 +12,8 @@ define('sort', ['components'], function (components) {
|
||||
currentSetting.find('i').addClass('fa-check');
|
||||
|
||||
$('body')
|
||||
.off('click', '[component="thread/sort"] a')
|
||||
.on('click', '[component="thread/sort"] a', function () {
|
||||
.off('click', '[component="thread/sort"] a[data-sort]')
|
||||
.on('click', '[component="thread/sort"] a[data-sort]', function () {
|
||||
const newSetting = $(this).attr('data-sort');
|
||||
const urlParams = utils.params();
|
||||
urlParams.sort = newSetting;
|
||||
|
||||
@@ -128,7 +128,7 @@ categoriesAPI.getTopics = async (caller, data) => {
|
||||
|
||||
let start = Math.max(0, parseInt(data.after || 0, 10));
|
||||
|
||||
if (data.direction === -1) {
|
||||
if (parseInt(data.direction, 10) === -1) {
|
||||
start -= infScrollTopicsPerPage;
|
||||
}
|
||||
|
||||
|
||||
@@ -236,7 +236,6 @@ module.exports = function (Categories) {
|
||||
const notification = await notifications.create({
|
||||
type: 'new-topic-in-category',
|
||||
nid: `new_topic:tid:${postData.topic.tid}:uid:${exceptUid}`,
|
||||
subject: bodyShort,
|
||||
bodyShort: bodyShort,
|
||||
bodyLong: postData.content,
|
||||
pid: postData.pid,
|
||||
|
||||
@@ -30,7 +30,7 @@ module.exports = function (SocketTopics) {
|
||||
parseInt(data.count, 10) || meta.config.postsPerPage || 20
|
||||
));
|
||||
|
||||
if (data.direction === -1) {
|
||||
if (parseInt(data.direction, 10) === -1) {
|
||||
start -= infScrollPostsPerPage;
|
||||
}
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ module.exports = function (Topics) {
|
||||
tids = await Topics.filterWatchedTids(tids, params.uid);
|
||||
}
|
||||
} else if (params.filter === 'watched') {
|
||||
tids = await db.getSortedSetRevRange(`uid:${params.uid}:followed_tids`, 0, -1);
|
||||
tids = await getWatchedTopics(params);
|
||||
} else if (params.cids) {
|
||||
tids = await getCidTids(params);
|
||||
} else if (params.tags.length) {
|
||||
@@ -63,6 +63,17 @@ module.exports = function (Topics) {
|
||||
return tids;
|
||||
}
|
||||
|
||||
async function getWatchedTopics(params) {
|
||||
const sortSet = ['recent', 'old'].includes(params.sort) ? 'topics:recent' : `topics:${params.sort}`;
|
||||
const method = params.sort === 'old' ? 'getSortedSetIntersect' : 'getSortedSetRevIntersect';
|
||||
return await db[method]({
|
||||
sets: [sortSet, `uid:${params.uid}:followed_tids`],
|
||||
weights: [1, 0],
|
||||
start: 0,
|
||||
stop: meta.config.recentMaxTopics - 1,
|
||||
});
|
||||
}
|
||||
|
||||
async function getTagTids(params) {
|
||||
const sets = [
|
||||
params.sort === 'old' ?
|
||||
|
||||
@@ -620,7 +620,6 @@ module.exports = function (Topics) {
|
||||
const notification = await notifications.create({
|
||||
type: 'new-topic-with-tag',
|
||||
nid: `new_topic:tid:${postData.topic.tid}:uid:${exceptUid}`,
|
||||
subject: bodyShort,
|
||||
bodyShort: bodyShort,
|
||||
bodyLong: postData.content,
|
||||
pid: postData.pid,
|
||||
|
||||
@@ -210,15 +210,13 @@ module.exports = function (Topics) {
|
||||
}
|
||||
|
||||
async function getFollowedTids(params) {
|
||||
let tids = await db.getSortedSetMembers(`uid:${params.uid}:followed_tids`);
|
||||
const filterCids = params.cid && params.cid.map(cid => parseInt(cid, 10));
|
||||
if (filterCids) {
|
||||
const topicData = await Topics.getTopicsFields(tids, ['tid', 'cid']);
|
||||
tids = topicData.filter(t => filterCids.includes(t.cid)).map(t => t.tid);
|
||||
}
|
||||
const scores = await db.sortedSetScores('topics:recent', tids);
|
||||
const data = tids.map((tid, index) => ({ value: String(tid), score: scores[index] }));
|
||||
return data.filter(item => item.score > params.cutoff);
|
||||
const keys = params.cid ?
|
||||
params.cid.map(cid => `cid:${cid}:tids:lastposttime`) :
|
||||
'topics:recent';
|
||||
|
||||
const recentTopicData = await db.getSortedSetRevRangeByScoreWithScores(keys, 0, -1, '+inf', params.cutoff);
|
||||
const isFollowed = await db.isSortedSetMembers(`uid:${params.uid}:followed_tids`, recentTopicData.map(t => t.tid));
|
||||
return recentTopicData.filter((t, i) => isFollowed[i]);
|
||||
}
|
||||
|
||||
async function filterTidsThatHaveBlockedPosts(params) {
|
||||
|
||||
Reference in New Issue
Block a user